+ Responder ao Tópico



  1. #1
    fisiconuclear18
    Visitante

    Padrão Firewall default drop, problemas...

    Pessoal, por acaso alguem poderia dar uma olhada no meu firewall para ver se está tudo ok, por favor...Eu fui implementando mas nao entendi bem a politica default drop, pois se eu dropar tudo de inicio e depois eu liberar as portas, ele via conseguir ter acesso a net?
    Presciso liberar a porta do dhcpd?
    Pro favor presciso muito disso para poder melhorar o firewall...O pessoal está me combrando entao se puderem me ajudar...


    #!/bin/bash

    echo " Iniciando novo firewall onde a politica default ................................. ok "
    ###Eliminando regras da memoria
    iptables -F
    iptables -X
    iptables -t nat -F
    iptables -t nat -X
    iptables -t mangle -F
    iptables -t mangle -X

    ###Colocando politica default drop
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    ###Permissao para acessos em loopback e originados pelo firewall
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    ###Roteamento para acessos e snat
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 200.x.x.x
    iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to 200.x.x.x
    iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to 200.x.x.x
    iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -j SNAT --to 200.x.x.x

    ###Liberando portas para rede interna
    iptables -A FORWARD -s 192.168.0.0/24 -m multiport -p tcp --dport 80,25,110,53,3128 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -p udp --dport 53 -j ACCEPT
    iptables -A FORWARD -p tcp -s 192.168.1.0/24 --dport 443 -j ACCEPT


    ###Redirecionamento para o squid
    iptables -t nat -A PREROUTING -s 192.168.1.0/24 -m multiport -p tcp --dport 80,8080 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -s 192.168.3.0/24 -m multiport -p tcp --dport 80,8080,443 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -s 192.168.4.0/24 -m multiport -p tcp --dport 80,8080 -j REDIRECT --to-port 3128

    ###Bloqueando pacotes mal formados
    iptables -A INPUT -m unclean -j DROP
    iptables -A FORWARD -m unclean -j DROP

    ###Para logar e bloquear as diferentes tecnicas de portscanners
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix "nmap-xmas scan:" --log-tcp-options --log-ip-options
    iptables -t mangle -A PREEROUTING -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "nmap-null scan:" --log-tcp-options --log-ip-options
    iptables -t mangle -A PREROUTING -p tcp --tcp-flgas SYN,RST SYN,RST -j LOG --log-prefix "syn/rst scan:" --log-tcp-options --log-ip-options

    ###Dificultando a acao de portscanners
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "syn/fin scan:" --log-tcp-options --log-ip-options
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

    ###Flags FIN e RST ativados simultaneamente
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
    ###Flag FIN ativado sem o respectivo ACK
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP
    ###Flag PSH ativado sem o respectivo ACK
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP
    ###Flag URG stivado sem o respectivo ACK
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP
    ###Logando pacotes de origem suspeita
    echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

    ###Limitando o tempo de resposta do ping
    iptables -A INPUT -p icmp -m limit --limit 1/s -limit-burst 3 -j ACCEPT
    ###Protecao contra syn-flood
    iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
    ###Protecao contra portscanner suspeito
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    ###Protecao contra ping da morte
    iptables -A FORWARD -p icmp -m limit --limit 1/s -j ACCEPT


  2. #2

    Padrão Re: Firewall default drop, problemas...

    Citação Postado originalmente por fisiconuclear18
    Pessoal, por acaso alguem poderia dar uma olhada no meu firewall para ver se está tudo ok, por favor...Eu fui implementando mas nao entendi bem a politica default drop, pois se eu dropar tudo de inicio e depois eu liberar as portas, ele via conseguir ter acesso a net?
    Presciso liberar a porta do dhcpd?
    Pro favor presciso muito disso para poder melhorar o firewall...O pessoal está me combrando entao se puderem me ajudar...


    #!/bin/bash

    echo " Iniciando novo firewall onde a politica default ................................. ok "
    ###Eliminando regras da memoria
    iptables -F
    iptables -X
    iptables -t nat -F
    iptables -t nat -X
    iptables -t mangle -F
    iptables -t mangle -X

    ###Colocando politica default drop
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    ###Permissao para acessos em loopback e originados pelo firewall
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    ###Roteamento para acessos e snat
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 200.x.x.x
    iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to 200.x.x.x
    iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to 200.x.x.x
    iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -j SNAT --to 200.x.x.x

    ###Liberando portas para rede interna
    iptables -A FORWARD -s 192.168.0.0/24 -m multiport -p tcp --dport 80,25,110,53,3128 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -p udp --dport 53 -j ACCEPT
    iptables -A FORWARD -p tcp -s 192.168.1.0/24 --dport 443 -j ACCEPT


    ###Redirecionamento para o squid
    iptables -t nat -A PREROUTING -s 192.168.1.0/24 -m multiport -p tcp --dport 80,8080 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -s 192.168.3.0/24 -m multiport -p tcp --dport 80,8080,443 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -s 192.168.4.0/24 -m multiport -p tcp --dport 80,8080 -j REDIRECT --to-port 3128

    ###Bloqueando pacotes mal formados
    iptables -A INPUT -m unclean -j DROP
    iptables -A FORWARD -m unclean -j DROP

    ###Para logar e bloquear as diferentes tecnicas de portscanners
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix "nmap-xmas scan:" --log-tcp-options --log-ip-options
    iptables -t mangle -A PREEROUTING -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "nmap-null scan:" --log-tcp-options --log-ip-options
    iptables -t mangle -A PREROUTING -p tcp --tcp-flgas SYN,RST SYN,RST -j LOG --log-prefix "syn/rst scan:" --log-tcp-options --log-ip-options

    ###Dificultando a acao de portscanners
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "syn/fin scan:" --log-tcp-options --log-ip-options
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

    ###Flags FIN e RST ativados simultaneamente
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
    ###Flag FIN ativado sem o respectivo ACK
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP
    ###Flag PSH ativado sem o respectivo ACK
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP
    ###Flag URG stivado sem o respectivo ACK
    iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP
    ###Logando pacotes de origem suspeita
    echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

    ###Limitando o tempo de resposta do ping
    iptables -A INPUT -p icmp -m limit --limit 1/s -limit-burst 3 -j ACCEPT
    ###Protecao contra syn-flood
    iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
    ###Protecao contra portscanner suspeito
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    ###Protecao contra ping da morte
    iptables -A FORWARD -p icmp -m limit --limit 1/s -j ACCEPT
    As politicas padroes do firewall funcionan apos o pacote não bater com nenhuma regra que vc colocou.

    Algumas dicas.

    De uma olhada na estrutura do iptables. Sobre as CHAINS. tipo.
    filter -> INPUT
    filter -> OUTPUT
    filter -> FORWARD
    nat -> PREROUTING
    nat -> POSTROUTING

    nessas CHAINS é aonde funciona seu firewall basico.
    exemplo: dentro da chain INPUT voce tem diversas regras (rules) que cada vez que um pacote chega, ele vai de regra em regra, e se não bater com nenhuma regra, ele acaba caindo na politica default;

    exemplo:
    iptables -t filter -a INPUT -i eth0 -p tcp --dport 25 -j ACCEPT # aceita tudo na porta 25 entrando
    iptables -t filter -a INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # aceita tudo na porta 80 entrando
    iptables -t filter -P INPUT DROP # nega tudo

    Isto fara com que pacotes que tenham destinos diferente a porta 25 e 80 sejam negados pelo seu firewall.