+ Responder ao Tópico



  1. #1

    Padrão Problema com redirect em Iptables

    Não estou conseguindo fazer meu servidor de Firewall (Debian+Iptables) realizar um redirect.

    Script que roda na inicialização:

    Código :
    #!/bin/bash
     
    # Ativa modulos
    modprobe iptable_nat
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe ipt_LOG
    modprobe ipt_REJECT
    modprobe ipt_MASQUERADE
     
    # Proteção contra IP Spoofing
    for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
        echo 1 >$i
    done
     
    # Redirecionamento de pacotes (requerido para NAT)
    echo "1" >/proc/sys/net/ipv4/ip_forward
     
    # Limpa tudo
    iptables -F
    iptables -F -t nat
     
    # Tabela filter
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
     
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
     
    iptables -t mangle -P PREROUTING ACCEPT
    iptables -t mangle -P OUTPUT ACCEPT
     
    # Conexoes estabelecidas
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
     
    # Aceita trafego vindo de loopback
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
     
    # Autoriza SSH, O Fail2Ban realiza a regra de Brute-Force
    iptables -A INPUT -p tcp --dport 9876 -j ACCEPT 
     
    # Redirect
    iptables -t nat -A PREROUTING -p tcp --dport 9000 -j LOG
    iptables -t nat -A PREROUTING -p tcp --dport 9000 -j DNAT --to 10.1.1.5:80
    Do servidor de firewall consigo conectar no destino:

    Código :
    root@lm-firewall:~/iptables# telnet 10.1.1.5 80
    Trying 10.1.1.5...
    Connected to 10.1.1.5.
    Escape character is '^]'.
    ^[quit
    Debug:

    1. Da minha máquina tento abrir Telnet no firewall na porta 9000 sem sucesso

    Código :
    felipe@macafe:~$ telnet 10.1.1.4 9000
    Trying 10.1.1.4...
    2. No firewall chega o request

    Código :
    root@lm-firewall:/home/cardoso# tail -f /var/log/syslog; tail -f /var/log/fail2ban.log 
    Apr 16 09:52:24 lm-firewall kernel: IN=eth0 OUT= MAC=00:40:63:d9:2a:a1:00:1b:77:4a:a6:6a:08:00 SRC=10.1.1.28 DST=10.1.1.4 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=6562 DF PROTO=TCP SPT=43026 DPT=9000 WINDOW=5840 RES=0x00 SYN URGP=0
    3. E não chega nada no Apache do destino, porém uma hora chegou algo como o abaixo

    Código :
    cardoso@lm-devel:/var/log/apache2$ tail -f access.log error.log cardoso/access.log cardoso/error.log 
    10.1.1.4 - - [16/Apr/2008:09:50:47 -0300] "\x1bquit" 200 9749 "-" "-
    Para entenderem melhor meu ambiente:

    10.1.1.1 -> Gateway
    10.1.1.4 -> Servidor Debian (Firewall)
    10.1.1.5 -> Servidor Debian (Devel)
    10.1.1.28 -> Desktop Ubuntu

    Alguém sabe me indicar uma forma de fazer isto funcionar? Pois preciso colocar para o router redirecionar todo tráfego de chegada de 2 links para o firewall tratar e mandar para o servidor correto dependendo da porta.

    Como posso debugar isto?

  2. #2

    Padrão

    Citação Postado originalmente por macafe Ver Post
    3. E não chega nada no Apache do destino, porém uma hora chegou algo como o abaixo

    Código :
    cardoso@lm-devel:/var/log/apache2$ tail -f access.log error.log cardoso/access.log cardoso/error.log 
    10.1.1.4 - - [16/Apr/2008:09:50:47 -0300] "\x1bquit" 200 9749 "-" "-

    Pensando melhor agora vi que o que chegou no apache da outra máquina foi devido ao Telnet que fiz do firewall para ele...

    Alguma luz?

  3. #3

    Padrão

    Consegui ajuda no Viva O Linux e resolvi o problema, para quem tiver interesse de saber mais a respeito veja em:

    Linux: netfilter/iptables - Redirecionamento de portas

    Linux: Squid/Iptables - Problema com redirect em Iptables