+ Responder ao Tópico



  1. #1
    daniel_martins
    Visitante

    Padrão Iptables não reconhece o comando SYN

    Alguém pode me ajudar??
    O iptables me retorna um erro quando tento usar a seguinte regra:

    # iptables -A INPUT -i eth0 --syn -j DROP
    iptables v1.2.11: Unknown arg `--syn'
    Try `iptables -h' or 'iptables --help' for more information.

    Obrigado

  2. #2
    daniel_martins
    Visitante

    Padrão Iptables não reconhece o comando SYN

    Ninguém usa esse comando?? "--syn" ???
    Será que é problema da minha instalação??

  3. #3

    Padrão Iptables não reconhece o comando SYN

    Extensões TCP

    As extensões TCP são automaticamente carregadas se é especificada a opção `-p tcp'. Elas provêm as seguintes opções (nenhuma associa-se com fragmentos).

    --tcp-flags

    seguida por uma opcional `!', e por duas strings indicando flags, permite que sejam filtradas flags TCP específicas. A primeira string de flags é a máscara: uma lista de flags que serão examinadas. A segunda string diz quais flags devem estar ativas para que a regra se aplique. Por exemplo:

    # iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

    Essa regra indica que todas as flags devem ser examinadas (`ALL' é sinônimo de `SYN,ACK,FIN,RST,URG,PSH'), mas apenas SYN e ACK devem estar ativadas. Também há um argumento `NONE' que significa nenhuma flag.
    --syn

    opcionalmente precedido por `!', é um atalho para `--tcp-flags SYN,RST,ACK SYN'.



    iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,ACK -j DROP
    ou
    iptables -A INPUT -i eth0 -p tcp -m tcp --syn -j DROP

    ASSYN deve funcionar !

  4. #4
    daniel_martins
    Visitante

    Padrão Iptables não reconhece o comando SYN

    Muito obrigado pela ajuda

    Funcionou o comando sim, mas ainda não consegui fazer o que eu quero.
    Montei um script no iptables bloqueando tudo por padrão e vou liberando as portas que vão ser usadas, como esta abaixo:

    iptables -t filter -A FORWARD -p icmp -j ACCEPT #Pacotes ICMP
    iptables -t filter -A FORWARD -p tcp --dport 80 -j ACCEPT #HTTP
    iptables -t filter -A FORWARD -p tcp --sport 80 -j ACCEPT
    iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT #DNS
    iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT
    iptables -t filter -A FORWARD -p tcp --dport 110 -j ACCEPT #POP
    iptables -t filter -A FORWARD -p tcp --sport 110 -j ACCEPT
    iptables -t filter -A FORWARD -p tcp --dport 25 -j ACCEPT #SMTP
    iptables -t filter -A FORWARD -p tcp --sport 25 -j ACCEPT
    #iptables -t filter -A FORWARD -p tcp ! --syn -j ACCEPT
    #iptables -t filter -A INPUT -i eth0 -p tcp -m tcp ! --syn -j ACCEPT
    #iptables -t filter -A FORWARD -m state --state ESTABLISHED -j ACCEPT

    Desse jeito funciona, ó que tenho que fazer duas regras para cada porta, queria deixar só uma regra liberando a porta de destino e uma regra no final que libere todos conexões estabelecidas por isso to tentando usar esse --syn
    Quero deixar mais ou menos assin:

    iptables -t filter -A FORWARD -p icmp -j ACCEPT #Pacotes ICMP
    iptables -t filter -A FORWARD -p tcp --dport 80 -j ACCEPT #HTTP
    iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT #DNS
    iptables -t filter -A FORWARD -p tcp --dport 110 -j ACCEPT #POP
    iptables -t filter -A FORWARD -p tcp --dport 25 -j ACCEPT #SMTP
    iptables -t filter -A FORWARD -p tcp --dport 443 -j ACCEPT #SSL
    iptables -t filter -A FORWARD -i eth0 -p tcp ! --syn -j ACCEPT

    Mais assim não funcionou direito, o que estou fazendo de errado???

  5. #5

    Padrão Iptables não reconhece o comando SYN

    Meu pequeno padawan vc tem que criar uma chain para isso exemplo:

    #!/bin/sh

    iptables -N validar_input # ==> nova chain que vai validar conexoes
    iptables -N validar_forward # ==> nova chain que vai validar conexoes
    iptables -N validar_output # ==> nova chain que vai validar conexoes
    iptables -N log-drop # ==> nova chain que vai logar e dropar

    #FAZENDO A CHAIN LOG DROP

    #CRIANDO NA REGRA LOG-DROP COLOCANDO SEUS PROCEDIMENTOS
    iptables -A log-drop -j LOG #logou
    iptables -A log-drop -j DROP #dropou

    #CRIANDO A REGRA DE VALIDACAO DA ENTRADA E SEUS PROCEDIMENTOS
    iptables -A validar_input -p tcp --tcp-flags SYN,FIN SYN,FIN -j log-drop #PORT SCCANER
    iptables -A validar -p tcp_input --tcp-flags SYN,RST SYN,RST -j log-drop #PORT SCANNER
    iptables -A validar_input -p tcp --tcp-flags ACK,FIN FIN -j log-drop #FIN
    iptables -A validar_input -p tcp --tcp-flags ACK,URG URG -j log-drop #URG



    iptables -A validar_input -p tcp --dport 80 -i eth0 -m state --state NEW -j ACCEPT #VALIDANDO ACESSO EXTERNO AO WEBSITE HOSPEDADO NO FIREWALL

    iptables -A validar_input -p tcp -s 192.168.1.0/24 -i eth1 -m state --state NEW -j ACCEPT #VALIDANDO REDE LOCAL ENTRANDO PELA ETH1


    #CRIANDO A REGRA DE VALIDACAO DA TRANSICAO (forward) E SEUS PROCEDIMENTOS
    iptables -A validar_forward -p tcp -s 192.168.1.0/24 -i eth1 -j log-drop #PACOTES COM ENDERECO DA REDE LOCAL ENTRANDO PELA ETH1 SPOOFING

    iptables -A validar_forward -p tcp -s 192.168.1.0/24 -m state --state NEW -j ACCEPT #VALIDANDO PASSAGEM DE PACOTES DA REDE LOCAL


    #MUDANDO A POLITICA PARA DROPAR TUDO
    #POR DEFINICAO SE O PACOTE CHEGAR NO FINAL DA CHAIN SEM SER AVALIADO POR NEHUMA CONDIÇÃO ELE TERÁ O DESTINO DA POLITICA !!!!
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    #FAZENDO ACOMPANHAMENTO DO PACOTE (state fulllllll)!
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

    #COLOCANDO CADA PACOTE EM SUA CHAIN
    iptables -A INPUT -j validar_input
    iptables -A OUTPUT -j validar_output
    iptables -A FORWARD -j validar_forward

    Dessa forma vai funcionar assim:

    Chain input
    \ --> SE O PACOTE ESTIVER ESTABILIZADO E RELATADO ACEITA
    \ --> SE O PACOTE NAO ESTIVER ESTABILIZADO E RELATADO CAI PARA DENTRO DA CHAIN valida_input
    \ --> dentro da chain faz as chegagens para dropar/aceitar se passar por tudo e nao "bater" com nenhum a POLICE dropa o pacote POLICE == politica ! nao policia !

    Espero ter ajudado

  6. #6
    daniel_martins
    Visitante

    Padrão Iptables não reconhece o comando SYN

    Valeu mesmo a ajuda.
    Agora vou estudar um pouco esse código pra poder entender direito e arrumar o meu.
    Valeu