Firewall - Squid

1. Firewall - Squid

Hudson
hudsonebert

(usa Debian)

Enviado em 19/11/2009 - 14:33h

Pessoal meu problema é o seguinte: Tinha um firewall que funcionava junto com squid, porem está muito aberto, então resolvi modificar e renovar, por isso estou com esse script abaixo. Preciso de duas ajuda que ainda não consegui resolver, como faço e onde inserir no sricpt a regra para tirar um IP do proxy, navegando sem proxy, o anterior tinha e tambem para liberar para toda rede a porta 25 e 110.
E se tiver alguma coisa para melhorar. Agradeço, segue meu script

#!/bin/sh
#
# rc.firewall .By Hudson Ebert

# Variaveis
IFNET=eth0
IFLAN=eth1
IFLOCAL=lo
rede=10.1.1.0/24


#
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_REDIRECT
modprobe ipt_owner
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_gre

#Limpa as Regras
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/all/log_martians
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/tcp_ecn
echo "1" > /proc/sys/net/ipv4/tcp_timestamps
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "=========================================================|"
echo "|:INICIANDO A CONFIGURAÇÃO DO FIREWALL NETFILTER ATRAVÉS:|"
echo "|: DO IPTABLES :|"
echo "=========================================================|"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"

#Politicas Padrao
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


### Ativando Protecoes Contra Ataques ###
# 1 - Protecao contra Trinoo
iptables -N TRINOO
iptables -A TRINOO -m limit --limit 1/s -j LOG --log-level 6 --log-prefix "FIREWALL(Prot. Trinoo): "
iptables -A TRINOO -j DROP
iptables -A INPUT -p tcp -i $IFNET --dport 27444 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 27665 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 31335 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 34555 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 35555 -j TRINOO
echo "ativado o bloqueio a tentativa de ataque do tipo Trinoo"
echo "ON .................................................[ OK ]"

# 2 - Protecao contra Trojans
iptables -N TROJAN
iptables -A TROJAN -m limit --limit 1/s -j LOG --log-level 6 --log-prefix "FIREWALL(Prot. Trojan): "
iptables -A TROJAN -j DROP
iptables -A INPUT -p tcp -i $IFNET --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 4000 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 6000 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 6006 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 16660 -j TROJAN
echo "ativado o bloqueio a tentativa de ataque do tipo Trojan"
echo "ON .................................................[ OK ]"

# 3 - Protecao contra Worms
iptables -A FORWARD -p tcp --dport 135 -i $IFNET -j REJECT
echo "ativado o bloqueio a tentativa de ataque do tipo Worms"
echo "ON .................................................[ OK ]"

# 4 - Protecao contra Syn-Flood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
echo "ativado o bloqueio a tentativa de ataque do tipo Syn-Flood"
echo "ON .................................................[ OK ]"

# 5 - Protecao contra Ping da Morte
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
echo "ativado o bloqueio a tentativa de ataque do tipo ping "
echo "ON .................................................[ OK ]"

# 6 - Protecao contra Port Scanners
iptables -N SCANNER
iptables -A SCANNER -m limit --limit 1/s -j LOG --log-level 6 --log-prefix "FIREWALL(Port Scanner): "
iptables -A SCANNER -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $IFNET -j SCANNER
iptables -A INPUT -p udp -s 0/0 -i $IFNET --dport 33435:33525 -j REJECT
iptables -A INPUT -m state --state INVALID -j REJECT
echo "ativado o bloqueio a tentativa de ataque do tipo Scanners"
echo "ON .................................................[ OK ]"

#iptables -t nat -A PREROUTING -s 10.1.1.2 -j ACCEPT


#Rotiamento e redirecionamento
iptables -A POSTROUTING -t nat -o $IFNET -s $rede -j MASQUERADE
iptables -t nat -A PREROUTING -i $IFLAN -p udp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $IFLAN -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "ativado o Roteamento"
echo "ON .................................................[ OK ]"

###########Aqui diz o que vai aceitar na rede###################
iptables -A INPUT -i $IFLOCAL -j ACCEPT
iptables -A INPUT -i $IFLAN -s $rede -j ACCEPT

#Mantendo a conexao
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#DNS necessario resolucao de nomes
iptables -A FORWARD -s $rede -d 0/0 -i $IFLAN -o $IFNET -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s $rede -d 0/0 -i $IFLAN -o $IFNET -p udp --dport 53 -j ACCEPT


# BLOQUEA O QUE NAO SE ENCAIXA NAS REGRAS ACIMA
iptables -A INPUT -p tcp --syn -j DROP
iptables -P FORWARD DROP
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "=========================================================|"
echo "|: CARREGAMENTO BEM SUSSEDIDO :|"
echo "|: DO IPTABLES :|"
echo "=========================================================|"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"



  


2. Re: Firewall - Squid

Pedro Pereira
pogo

(usa Fedora)

Enviado em 19/11/2009 - 14:56h

Cara, a posição da regra que libera um determinado IP me parece OK. Talvez você deva trocar o ACCEPT por MASQUERADE nessa regra, acho que é por isso que ela não está funcionando (também não esqueça de remover o # antes da regra).

Quanto a liberar as portas 110 e 25, tente o seguinte (considerando que o servidor de e-mails não seja o que está executando esse firewall):

iptables -t filter -A FORWARD -p tcp --dport 110 -j ACCEPT
iptables -t filter -A FORWARD -p tcp --dport 25 -j ACCEPT

Não tenho certeza pois não tenho como testar aqui, mas acho que isso resolveria o seu problema.

[]'s

Pedro Pereira
www.pedropereira.net


3. Re: Firewall - Squid

Daniel Fernandes
volcom

(usa Debian)

Enviado em 19/11/2009 - 15:12h

Tente algo assim:

iptables -t nat -A POSTROUTING -p tcp -s ! 192.168.0.xxx --dport 80 -j REDIRECT --to-port 3128




4. Re: Firewall - Squid

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 19/11/2009 - 15:19h

Só troque, no final, o "SUSSEDIDO" por "SUCEDIDO", ok?


5. squid

HELIO BATISTA DA SILVA
helio_bs

(usa Ubuntu)

Enviado em 19/11/2009 - 15:28h

Boa Tarde .... pelo o que eu entendir esta configuração que esta no proxy do navegador vc tem que colocar o ip do seu firewall e isto...
se vc quiser retirar esta opçao e que o mesmo funcione vc tem que colocar no squid.conf na linha do http_port 3128 "transparent"
o nome que esta entre parentese








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts