Página 2 de 3 PrimeiroPrimeiro 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. #6
    sambaloco40
    Ai galera resolvi... era uma regra do iptables mesmo... achei estranho pq já existia a regra, mas estava mais para baixo, vai era a ordem mesmo.... Em todo caso segue como ficou:

    #!/bin/bash

    # Autor: RENAN DE SOUZA RODRIGUES - jamanta44@bol.com.br
    # Agradecimentos: www.guiadohardware.net ; under-linux.org

    firewall_start()
    {
    # Altera a politica de INPUT FORWARD OUTPUT
    /usr/sbin/iptables -P INPUT DROP
    /usr/sbin/iptables -P FORWARD DROP
    /usr/sbin/iptables -P OUTPUT DROP

    # Abre para o DHCPD
    /usr/sbin/iptables -A INPUT -i eth1 -p udp --sport 68 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth1 -p udp --dport 68 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth1 -p udp --sport 67 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth1 -p udp --dport 67 -j ACCEPT

    # Abre o HTTPD
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT

    # Abre para uma faixa de endereços da rede local
    /usr/sbin/iptables -A INPUT -i eth0 -p all -s 134.41.35.0/255.255.255.0 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p all -d 134.41.35.0/255.255.255.0 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth0 -p all -s 192.168.0.0/255.255.255.0 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p all -d 192.168.0.0/255.255.255.0 -j ACCEPT

    /usr/sbin/iptables -A INPUT -i eth1 -p all -s 134.41.35.0/255.255.255.0 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth1 -p all -d 134.41.35.0/255.255.255.0 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth1 -p all -s 192.168.0.0/255.255.255.0 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth1 -p all -d 192.168.0.0/255.255.255.0 -j ACCEPT

    # Abre para a interface de loopback.
    /usr/sbin/iptables -A INPUT -i lo -s 127.0.0.1/255.255.255.255 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o lo -d 127.0.0.1/255.255.255.255 -j ACCEPT

    # FTP Cliente
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --sport 20 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 20 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --sport 21 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 21 -j ACCEPT

    #FTP Servidor
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --sport 20 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --sport 21 -j ACCEPT

    # SSH Servidor
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT

    # SSH Cliente
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 22 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --sport 22 -j ACCEPT

    # DNS Cliente
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --sport 53 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 53 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT

    # Libera o HTTP e o HTTPS
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i eth0 -p tcp --sport 443 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 443 -j ACCEPT

    # Ignora mais algumas coisas ruins
    echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
    echo "1" > /proc/sys/net/ipv4/tcp_syncookies
    echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_source_route

    # Compartilha a internet com proxy e carrega modulos necessarios
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe iptable_nat
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
    }

    firewall_stop()
    {
    /usr/sbin/iptables -F
    /usr/sbin/iptables -t nat -F
    /usr/sbin/iptables -X
    /usr/sbin/iptables -P INPUT ACCEPT
    /usr/sbin/iptables -P FORWARD ACCEPT
    /usr/sbin/iptables -P OUTPUT ACCEPT

    # Compartilha a internet com proxy
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe iptable_nat
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
    }

    case "$1" in
    "start")firewall_start;
    echo "Firewall is runnig.";;

    "stop")firewall_stop;
    echo "Firewall is NOT runnig.";;

    "restart")firewall_stop;
    sleep 1;
    firewall_start;
    echo "Firewall was restarted and it is runnig.";;

    *)/usr/sbin/iptables -L -n;;
    esac

    Acho que ficou bem seguro. Quem tiver sugestões manda ai, fico muito agradecido! Valeu geral!

  2. #7
    felco
    Muito legal seu ruleset... fazer OUTPUT com politica de DROP eh bem trabalhoso mais fica muito bom! :good:
    Vi algumas regras duplicadas de HTTP e reparei que voce não tem rules no FORWARD, porque?



  3. #8
    sambaloco40
    Ai, alarme falso. Tentei abrir meu server em outra sub net e não abriu. Ai voltei a prancheta. Olha só: dentro do proprio server abre soh o localhost; na subnet onde esta contida abre normal; em outra subnet ainda não abre; obs: todos os outros servers funfam. Quando aos fowards, não abri porque achei que não precisava, vai ver é isso mesmo..... Help!!

  4. cara..

    tipo.. FORWARD eh a tabela dos pacotes q vão passar pelo firewall, se vc nao fizer forward de pacotes o firewall nao vai distribuir para a rede...

    bem provável q seja soh isso...

    valew
    []'s



  5. #10
    sambaloco40
    Bom, abri o forward deixando ACCEPT como regra e ainda nada... Testei agora e deixei só o output com ACCEPT (mantendo as regras e ainda o DROP no forward) tudo funciona bem... acho que tenho que fazer um redirecionamento de portas para o output... é coisinha trabalhosa. Ai, quanto ao forward acho pode ficar fechado, desde que sempre eu abra a entrada e a saida. O mais estranho é que consigo, mesmo quando o httpd não funfa, acessar via sshd. Ai olhando com o netstat -a, percebo as portas abertas... o ssh abre uma porta aleatória assim como o http, mas o httpd não funfa e sshd sim... que coisa não/ Mais idéias?






Tópicos Similares

  1. Problemas com IPTABLES
    Por no fórum Servidores de Rede
    Respostas: 4
    Último Post: 20-01-2004, 10:35
  2. Problema com Iptables em Cache Server
    Por no fórum Servidores de Rede
    Respostas: 0
    Último Post: 04-10-2003, 00:53
  3. Problemas com IPTABLES
    Por no fórum Servidores de Rede
    Respostas: 1
    Último Post: 11-07-2003, 16:38
  4. Problemas com IPTABLES
    Por no fórum Servidores de Rede
    Respostas: 0
    Último Post: 26-06-2003, 10:00
  5. problemas com iptables
    Por no fórum Servidores de Rede
    Respostas: 15
    Último Post: 05-02-2003, 18:00

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L