Firewall no Fedora 11

1. Firewall no Fedora 11

João Paulo
coordti

(usa Fedora)

Enviado em 28/08/2009 - 11:43h

Fiz um Firewall no fedora 11... porem não entra na internet com o proxy nem envia email pelo programa de email do fedora... fiz o comando netstat -na ... e o mesmo aparece quando tento conectar mas fica como "SYN_ENVIANDO" e não estabelece a conexção. Diz que não tem rota no host...

Segue script do firewall...

ipt=/sbin/iptables
mod=/sbin/modprobe
#dnssmt=201.76.xx.xx # IP do Servidor de Correio SMT
#dnspop=201.76.xx.xx # IP do Servidor de Correio POP
rede_interna=192.168.10.0/24

#placa interna =eth1
#placa externa =eth0
# IP do Servidor Web 192.168.10.100

# ----------------------------------------------------------
# Zera regras
# ----------------------------------------------------------

$ipt -F
$ipt -X
$ipt -F -t nat
$ipt -X -t nat
$ipt -F -t mangle
$ipt -X -t mangle
echo "Zeramento das regras OK!"

# ----------------------------------------------------------
# Ativa modulos
# ----------------------------------------------------------
$mod iptable_nat
$mod ip_conntrack
$mod ip_conntrack_ftp
$mod ip_nat_ftp
$mod ipt_LOG
$mod ipt_REJECT
$mod ipt_MASQUERADE

echo "Carga dos Modulos OK!"

$ipt -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
$ipt -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j REDIRECT --to-port 3128

# ----------------------------------------------------------
# Mascaramento ( NAT )
# ----------------------------------------------------------
# Mascarar pacotes de saida para a internet
# Habilitando o recurso de IP forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

$ipt -t nat -A POSTROUTING -s $rede_interna -j MASQUERADE

#----------------------------------------------------------
# VNC regras de iptables pra repassar pra maquina local
# ----------------------------------------------------------
$ipt -A FORWARD -i eth0 -p tcp --dport 5800:5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -i eth0 -p udp --dport 5800:5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp -i eth0 --dport 5800:5900 -j DNAT --to 192.168.1.30:5800-5900
$ipt -t nat -A PREROUTING -p udp -i eth0 --dport 5800:5900 -j DNAT --to 192.168.1.30:5800-5900

# ----------------------------------------------------------
# Proteções Contra Ataques
# ----------------------------------------------------------

# bloqueia ping
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all

#Bloquear Trin00
$ipt -A INPUT -p tcp -i eth0 --dport 1524 -j DROP
$ipt -A INPUT -p tcp -i eth0 --dport 27665 -j DROP
$ipt -A INPUT -p udp -i eth0 --dport 27444 -j DROP
$ipt -A INPUT -p udp -i eth0 --dport 31335 -j DROP

# Proteção contra pacotes danificados ou suspeitos.
$ipt -A FORWARD -m unclean -j DROP

#Proteção contra Syn-floods
$ipt -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

# Protege contra os "Ping of Death"
$ipt -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Protege contra os ataques do tipo "Syn-flood, DoS, etc"
$ipt -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

# Protege contra port scanners avançados (Ex.: nmap)
$ipt -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# Protege AS PORTAS PROIBIDAS
$ipt -A INPUT -p tcp --dport 21 -j LOG --log-prefix "Porta do FTP "
$ipt -A INPUT -p tcp --dport 23 -j LOG --log-prefix "Porta do TELNET "
$ipt -A INPUT -p tcp --dport 22 -j LOG --log-prefix "Porta do SSH "
$ipt -A INPUT -p tcp --dport 137:139 -j LOG --log-prefix "Porta do NETBEUI "

# Protege contra BackDoors Wincrash e BackOrifice
$ipt -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "Porta do Wincrash "
$ipt -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "Porta do BackOrifice "

# ----------------------------------------------------------
#libera o loopback
# ----------------------------------------------------------
$ipt -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT

echo "Proteção das regras OK!"

# ----------------------------------------------------------
# libera conexões de fora pra dentro
# ----------------------------------------------------------
$ipt -A INPUT -p tcp --dport 443 -j ACCEPT
$ipt -A IMPUT -p tcp --dport 563 -j ACCEPT
$ipt -A INPUT -p tcp --dport 20 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
$ipt -A INPUT -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 25 -j ACCEPT
$ipt -A INPUT -p tcp --dport 110 -j ACCEPT
$ipt -A INPUT -p tcp --dport 443 -j ACCEPT
$ipt -A INPUT -p tcp --dport 563 -j ACCEPT

# ----------------------------------------------------------
#Liberar portas para minha Correio
# ----------------------------------------------------------
$ipt -A FORWARD -p tcp -s $rede_interna -d $dnssmt --dport 53 -j ACCEPT
$ipt -A FORWARD -p tcp -s $rede_interna -d $dnspop --dport 53 -j ACCEPT
$ipt -A FORWARD -p tcp -s $dnssmt --sport 53 -d $rede_interna -j ACCEPT
$ipt -A FORWARD -p tcp -s $dnspop --sport 53 -d $rede_interna -j ACCEPT
$ipt -A FORWARD -p TCP -s $rede_interna --dport 25 -j ACCEPT
$ipt -A FORWARD -p TCP -s $rede_interna --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp --sport 25 -j ACCEPT
$ipt -A FORWARD -p tcp --sport 110 -j ACCEPT

# ----------------------------------------------------------
#Libera porta para a Conectividade Social
# ----------------------------------------------------------
$ipt -A FORWARD -p tcp --dport 2631 -j ACCEPT
$ipt -A FORWARD -p udp --dport 2631 -j ACCEPT

# ----------------------------------------------------------
#Libera porta HTTPS
# ----------------------------------------------------------
$ipt -A FORWARD -p tcp --dport 443 -j ACCEPT
$ipt -A FORWARD -p tcp --dport 563 -j ACCEPT

# ----------------------------------------------------------
# Libera conexoes de dentro pra fora:
# ----------------------------------------------------------
$ipt -A OUTPUT -p tcp --dport 80 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 22 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 20 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 21 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 86 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 5190 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 1863 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 25 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 110 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 443 -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 563 -j ACCEPT



echo "Carga do Firewall OK!"



  


2. Re: Firewall no Fedora 11

Jefferson Diego
Diede

(usa Debian)

Enviado em 28/08/2009 - 15:45h

Certo mas, quais são suas políticas padrão? Se forem DROP, tá explicado, pois não há regras permitindo o acesso à porta 3128
Vou considerá-las como DROP, e output accept:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#Para bloquer o ping, deveria ser 1, não 0
#echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all

#PS: Trin00?? por que "se defender" de um malware de 10 anos? Não seria melhor algo recente e "contaminativo", como o Conficker?

#Isso não protege contra SynFloods... SynCookies protegem... essa regra só causa DoS...
#$ipt -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#Ping of Death é um pacote grande, não um pacote constante... essa regra não é para PoD:
#$ipt -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#Idem... regra ruim...
# Protege contra os ataques do tipo "Syn-flood, DoS, etc"
#$ipt -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

# Protege contra port scanners avançados (Ex.: nmap)
$ipt -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#Log não significa proteção...
# Protege AS PORTAS PROIBIDAS
$ipt -A INPUT -p tcp --dport 21 -j LOG --log-prefix "Porta do FTP "
$ipt -A INPUT -p tcp --dport 23 -j LOG --log-prefix "Porta do TELNET "
$ipt -A INPUT -p tcp --dport 22 -j LOG --log-prefix "Porta do SSH "
$ipt -A INPUT -p tcp --dport 137:139 -j LOG --log-prefix "Porta do NETBEUI "

#Log não significa proteção.
# Protege contra BackDoors Wincrash e BackOrifice
$ipt -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "Porta do Wincrash "
$ipt -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "Porta do BackOrifice "

# ----------------------------------------------------------
#libera o loopback
# ----------------------------------------------------------
#Isso não faz sentido. Todo Output já é caracteriza por ter source em lo (log, ip em 127/8).
#$ipt -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
#Troque por:
$ipt -A OUTPUT -j ACCEPT


#Adicione:
$ipt -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -m state -- state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT



echo "Carga do Firewall OK!"




#Adicione também:
iptables -A INPUT -p tcp -s $rede_interna -j ACCEPT

#Precisas dessa regra para o masquerade:
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts