Página 2 de 2 PrimeiroPrimeiro 12
+ Responder ao Tópico



  1. #6
    guardian_metal

  2. iptables.under-linux.org



  3. #8
    MarceloRibeiro
    Pessoal,

    Mais uma vez OBRIGADO!!! por toda ajuda, ok?

    Bom, venho aqui pedir p/ que todos colaborem, coloquei o script de Firewall abaixo, para podermos deixalo o mais seguro possível, que conheçe bem de firewall e poder ajudar, com certeza estará contribuindo e muito com a comunidade, depois que todos comentarem, vou passar a limpo e publicar aqui mesma na sessão de "proxy/nat/firewall", ok?

    Abração!!!

    Aí vai... o script....

    Firewall rápido e seguro com iptables
    Enviado em Terça, 13 de julho 2004 as 11:45:12
    Neste artigo mostrarei um script de firewall utilizando iptables com regras que julgo necessárias para a segurança da sua rede, além de opções de NATs, proxy transparente, logs, etc...


    A configuração do meu servidor é a seguinte:

    - Ambiente testado:
    - Distro: Fedora Core 2

    - A máquina possui 2 interfaces de rede:
    - Intranet: eth1 – 10.0.0.0/24
    - ADSL: eth0 – 192.168.200.1/24 – GW: 192.168.200.254

    Neste exemplo todo o tráfego da minha rede sai para a Internet através do gateway (roteador) 192.168.200.254, passando antes pelo meu firewall. Abaixo segue o script detalhado e comentado. Provavelmente você só precisará alterar o conteúdo das variáveis IF_EXTERNA e IF_INTERNA, correspondente às interfaces do seu firewall, e mais no final do script as regras que tratam de possíveis NATs, proxy transparente e etc... Estas regras estão comentadas:

    #!/bin/sh

    # Variaveis
    # -------------------------------------------------------
    iptables=/sbin/iptables
    IF_EXTERNA=eth0
    IF_INTERNA=eth1


    # Ativa modulos
    # -------------------------------------------------------
    /sbin/modprobe iptable_nat
    /sbin/modprobe ip_conntrack
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe ip_nat_ftp
    /sbin/modprobe ipt_LOG
    /sbin/modprobe ipt_REJECT
    /sbin/modprobe ipt_MASQUERADE


    # Ativa roteamento no kernel
    # -------------------------------------------------------
    echo "1" > /proc/sys/net/ipv4/ip_forward


    # Protecao contra IP spoofing
    # -------------------------------------------------------
    echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter


    # Zera regras
    # -------------------------------------------------------
    $iptables -F
    $iptables -X
    $iptables -F -t nat
    $iptables -X -t nat
    $iptables -F -t mangle
    $iptables -X -t mangle


    # Determina a politica padrao
    # -------------------------------------------------------
    $iptables -P INPUT DROP
    $iptables -P OUTPUT DROP
    $iptables -P FORWARD DROP


    #########################################################
    # Tabela FILTER
    #########################################################


    # Dropa pacotes TCP indesejaveis
    # -------------------------------------------------------
    $iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "FIREWALL: NEW sem syn: "
    $iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP


    # Dropa pacotes mal formados
    # -------------------------------------------------------
    $iptables -A INPUT -i $IF_EXTERNA -m unclean -j LOG --log-level 6 --log-prefix "FIREWALL: pacote mal formado: "
    $iptables -A INPUT -i $IF_EXTERNA -m unclean -j DROP


    # Aceita os pacotes que realmente devem entrar
    # -------------------------------------------------------
    $iptables -A INPUT -i ! $IF_EXTERNA -j ACCEPT
    $iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    $iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT


    # Protecao contra trinoo
    # -------------------------------------------------------
    $iptables -N TRINOO
    $iptables -A TRINOO -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trinoo: "
    $iptables -A TRINOO -j DROP
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 27444 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 27665 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 31335 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 34555 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 35555 -j TRINOO


    # Protecao contra tronjans
    # -------------------------------------------------------
    $iptables -N TROJAN
    $iptables -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
    $iptables -A TROJAN -j DROP
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 666 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 666 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 4000 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 6000 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 6006 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 16660 -j TROJAN


    # Protecao contra worms
    # -------------------------------------------------------
    $iptables -A FORWARD -p tcp --dport 135 -i $IF_INTERNA -j REJECT


    # Protecao contra syn-flood
    # -------------------------------------------------------
    $iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT


    # Protecao contra ping da morte
    # -------------------------------------------------------
    $iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT


    # Protecao contra port scanners
    # -------------------------------------------------------
    $iptables -N SCANNER
    $iptables -A SCANNER -m limit --limit 15/m -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 $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $IF_EXTERNA -j SCANNER


    # Loga tentativa de acesso a determinadas portas
    # -------------------------------------------------------
    $iptables -A INPUT -p tcp --dport 21 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
    $iptables -A INPUT -p tcp --dport 23 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
    $iptables -A INPUT -p tcp --dport 25 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
    $iptables -A INPUT -p tcp --dport 80 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
    $iptables -A INPUT -p tcp --dport 110 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
    $iptables -A INPUT -p udp --dport 111 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: rpc: "
    $iptables -A INPUT -p tcp --dport 113 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: identd: "
    $iptables -A INPUT -p tcp --dport 137:139 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    $iptables -A INPUT -p udp --dport 137:139 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    $iptables -A INPUT -p tcp --dport 161:162 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
    $iptables -A INPUT -p tcp --dport 6667:6668 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
    $iptables -A INPUT -p tcp --dport 3128 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "


    # Libera acesso externo a determinadas portas
    # -------------------------------------------------------
    $iptables -A INPUT -p tcp --dport 22 -i $IF_EXTERNA -j ACCEPT


    # Libera acesso de smtp para fora apenas para o IP XXX.XXX.XXX.XXX
    # -------------------------------------------------------
    #$iptables -A FORWARD -p tcp -d ! XXX.XXX.XXX.XXX --dport 25 -j LOG --log-level 6 --log-prefix "FIREWALL: SMTP proibido: "
    #$iptables -A FORWARD -p tcp -d ! XXX.XXX.XXX.XXX --dport 25 -j REJECT


    #########################################################
    # Tabela NAT
    #########################################################


    # Ativa mascaramento de saida
    # -------------------------------------------------------
    $iptables -A POSTROUTING -t nat -o $IF_EXTERNA -j MASQUERADE


    # Proxy transparente
    # -------------------------------------------------------
    #$iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128
    #$iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 8080 -j REDIRECT --to-port 3128


    # Redireciona portas para outros servidores
    # -------------------------------------------------------
    #$iptables -t nat -A PREROUTING -d 192.168.200.1 -p tcp --dport 22 -j DNAT --to-destination 10.0.0.1


    # Redireciona portas na propria maquina
    # -------------------------------------------------------
    #$iptables -A PREROUTING -t nat -d 192.168.200.1 -p tcp --dport 5922 -j REDIRECT --to-ports 22


    Links relacionados e consultados:

    http://iptables.under-linux.org/


    Dúvidas, mail me: ricardo@jacomel.com.br

    Ricardo Jacomel
    http://www.jacomel.com.br
    ricardo@jacomel.com.br

    Valeu Galera!!!

    Marcelo Ribeiro






Tópicos Similares

  1. Respostas: 12
    Último Post: 23-01-2008, 11:47
  2. sequência de regras no script de firewall
    Por roggy no fórum Servidores de Rede
    Respostas: 13
    Último Post: 26-05-2005, 10:33
  3. Sequência no Firewall
    Por MarceloRibeiro no fórum Servidores de Rede
    Respostas: 5
    Último Post: 08-07-2004, 09:21
  4. firewall x webmail ou firewall x php?
    Por eclaudin no fórum Segurança
    Respostas: 3
    Último Post: 23-08-2002, 04:14
  5. Não consigo configurar firewall
    Por buosinet no fórum Servidores de Rede
    Respostas: 1
    Último Post: 28-03-2002, 21:44

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L