+ Responder ao Tópico



  1. #1
    Dominum
    Visitante

    Padrão Estado de conexões

    Estou com dúvidas com relação às regras que condizem com o estado do pacote.
    ( NEW, ESTABLISHED, RELATED e INVALID)
    Isto acontece porque eu não sei quando é criada uma nova conexão, ou quando a
    conexão já existe, e outras coisas referentes a esse assunto.
    Registrei LOGs de todo o tráfego e analisei os CODE BITS que apareceram, mas isso
    fez uma zona na minha cabeça...hehehehe
    Alguém poderia dar-me uma explicação mais prática/acessível sobre a aplicação de regras ligadas ao estado das conexões?

    Obrigado.

  2. #2
    Danilo_Montagna
    Visitante

    Padrão Estado de conexões

    NEW - Confere com pacotes que criam novas conexões , ou seja, pacotes que estao com a Flag SYN acesas no pacote IP

    ESTABLISHED - Confere com conexões já estabelecidas, , ou seja, pacotes que retornarem com um acknowledgement do pacote SYN..

    RELATED - Confere com pacotes relacionados indiretamente a uma conexão, como mensagens de erro icmp, etc.

    INVALID - Confere com pacotes que não puderam ser identificados por algum motivo. Como respostas de conexões desconhecidas.

    uma boa idéia é vc somente usar eatados de conexoes como RELATED, ESTABLISHED

    a regra fica assim para todas as chains..

    IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT



    falow



    [ Esta mensagem foi editada por: Danilo_Montagna em 20-06-2003 17:27 ]

  3. #3
    Dominum
    Visitante

    Padrão Estado de conexões

    Danilo!

    Mas quando uma nova conexão (SYN) é criada, ou estabelecida?
    Ao analisar os logs, notei que boa parte dos pacotes (chain FORWARD) que continham a Flag SYN estavam relacionados à porta 110. Logo, eu poderia ter problemas no recebimento de e-mails. Certo???
    ---------------------
    FORFIL_log: IN=eth2 OUT=eth0 SRC=192.168.0.88 DST=200.221.4.7 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=46339 DF PROTO=TCP SPT=1128 DPT=110 WINDOW=8192 RES=0x00 SYN URGP=0
    ----------------------

    E as regras que você indicou deverão serem adicionadas no final de cada chain????

    Obrigado!

  4. #4
    Danilo_Montagna
    Visitante

    Padrão Estado de conexões

    Mas quando uma nova conexão (SYN) é criada, ou estabelecida?
    --------------------------------------------------------------------------------
    R.: por default, a porta estando aberta para a rede interna sair na porta 110, o SYN ja esta liberado.. apenas o retorno que tem que ser citado na regra.. que no caso ae será o ESBLISHED..

    E as regras que você indicou deverão serem adicionadas no final de cada chain????
    ----------------------------------------------------------------
    R.: conhece aquele ditado... a ordem dos tratores não altera a conheita.. pode ser em qualquer linha da chain..

    falow

  5. #5
    Dominum
    Visitante

    Padrão Estado de conexões

    Então, para o chain INPUT configurado como DROP, as regras abaixo estão corretas???

    ###########################################
    # Regras para a cadeia INPUT - FILTER #
    ###########################################

    echo -n " Definindo regras da cadeia INPUT........."

    #iptables -t filter -A INPUT -m limit --limit 12/m -j LOG --log-prefix "INFIL_log: "
    #iptables -t filter -A INPUT -j LOG --log-prefix "INFIL_log: "

    # Bloqueia o acesso de alguns computadores
    iptables -t filter -A INPUT -s 172.16.0.10 -j DROP

    # Aceita todo o tráfego "loopback para loopback"
    iptables -t filter -A INPUT -i $LOCALHOST_IF -d $LOCALHOST_IP -j ACCEPT

    # Aceita pedidos, via protocolo ICMP, mas com certa limitação
    iptables -t filter -A INPUT -p ICMP -m limit --limit 1/s -j ACCEPT

    # Aceita conexões via porta 21 (FTP)
    iptables -t filter -A INPUT -i $LAN192_IF -p TCP --dport 21 -j ACCEPT
    iptables -t filter -A INPUT -i $LAN172_IF -p TCP --dport 21 -j ACCEPT

    # Aceita conexões, das redes internas, destinadas à porta 22 (SSH)
    iptables -t filter -A INPUT -i $LAN192_IF -p TCP --dport 22 -j ACCEPT
    iptables -t filter -A INPUT -i $LAN172_IF -p TCP --dport 22 -j ACCEPT

    # Aceita conexões, das redes internas, destinadas à porta 53 (DNS)
    iptables -t filter -A INPUT -i $LAN192_IF -p UDP --dport 53 -j ACCEPT
    iptables -t filter -A INPUT -i $LAN172_IF -p UDP --dport 53 -j ACCEPT

    # Aceita conexões, da internet, originadas da porta 53 (DNS)
    iptables -t filter -A INPUT -i $MODEM_IF -p UDP --sport 53 -j ACCEPT

    # Aceita conexões, das redes internas, destinadas à porta 8080 (SQUID)
    iptables -t filter -A INPUT -i $LAN192_IF -p TCP --dport 8080 -j ACCEPT
    iptables -t filter -A INPUT -i $LAN172_IF -p TCP --dport 8080 -j ACCEPT

    # Aceita conexões, da internet, originadas da porta 80 (HTTP)
    iptables -t filter -A INPUT -i $MODEM_IF -p TCP --sport 80 -j ACCEPT

    # Aceita conexões, das redes internas, destinadas ao Broadcast
    iptables -t filter -A INPUT -i $LAN192_IF -d $BCAST192_IP -j ACCEPT
    iptables -t filter -A INPUT -i $LAN172_IF -d $BCAST172_IP -j ACCEPT
    iptables -t filter -A INPUT -s $ETH0_IP -d $BCAST10_IP -j ACCEPT

    # Bloqueia novos pacotes TCP que não contenham a flag SYN
    iptables -t filter -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

    # Aceita pacotes de conexões já estabelecidas ou relacionados a elas
    iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    echo "OK"

    ===========================

    e...valeu pela ajuda...

  6. #6
    Danilo_Montagna
    Visitante

    Padrão Estado de conexões

    SIm, esta ok.. porem.. alguns detalhes..

    # Aceita conexões, da internet, originadas da porta 53 (DNS)
    iptables -t filter -A INPUT -i $MODEM_IF -p UDP --sport 53 -j ACCEPT

    R- pq esta usando --sport? se vc ja tem uma regra de controle de pacotes ESTABLISHED,RELATED isso ae nem precisa... pois por default.. se vc tem uma regra de estado de conexoes.. vc nao precisa mais liberar o retorno dos pacotes de nenhuma regra.. sacou?

    # Aceita conexões, da internet, originadas da porta 80 (HTTP)
    iptables -t filter -A INPUT -i $MODEM_IF -p TCP --sport 80 -j ACCEPT

    R - mesma coisa que eu falei acima..


    # Bloqueia novos pacotes TCP que não contenham a flag SYN
    iptables -t filter -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

    R - essa regra ae pode tirar, ..pois se sua politica padrao esta em DROP, nao precisa fazer regras de DROP.. pois por default.. o que nao tiver regar de ACCEPT já estará bloqueado. incluindo conexoes SYN em portas que nao estarem liberadas..

    []´s

    [ Esta mensagem foi editada por: Danilo_Montagna em 23-06-2003 13:28 ]

  7. #7
    Dominum
    Visitante

    Padrão Estado de conexões

    Ok, Velhinho...

    Comentei aquelas regras e tudo funcionou corretamente...
    Valeu pelo esclarecimento sobre o estado das conexões e coisas referêntes a isso...
    Já estou pensando em algumas regras mais atrevidas...hehehe

    Obrigado!