usando iptables para evitar RST relacionado a uma porta específica

0

Eu tenho um programa que usa libpcap para capturar pacotes TCP SYN recebidos, estes pacotes SYN são destinados a uma porta específica.

Mas eu não tenho tcp soquete de escuta para essa porta, então, na prática, o Kernel OS (é o kernel ou a pilha tcp? Eu não tenho certeza, alguém pode me dizer) irá emitir um RST para o ip de origem do TCP SYN.

agora eu quero evitar o RST, eu não quero que o RST seja enviado para o ip de origem. Eu acho que talvez o iptables possa fazer isso? Então, como definir as regras com o iptables para evitar esses RSTs (que são disparados pelo TCP SYN de entrada para uma porta específica)?

se houver outras soluções melhores, melhor! obrigado!

    
por misteryes 18.04.2013 / 14:21

1 resposta

1

Uma configuração básica de bloqueio de entrada é a seguinte:

# Set default policy to 'drop everything'
iptables -P INPUT DROP
# Allow lo traffic
iptables -A INPUT -i lo -j ACCEPT
# Allow icmp
iptables -A INPUT -p icmp -j ACCEPT
# Allow packets sent in response to an outgoing connection
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Allow outgoing connections
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

Isso deve eliminar todas as tentativas de estabelecer uma conexão com seu host.

Se você quiser ser mais específico, tente adicionar um destes:

# Block request from being handled further by the TCP stack
iptables -A INPUT -p tcp --dport <port> -j DROP
# Send an ICMP 'administratively prohibited' response
iptables -A INPUT -p tcp --dport <port> -j REJECT
# Don't send any RESETs upon a request to this port
iptables -A OUTPUT -p tcp -o <outgoing interface> --sport <port> --tcp-flags RST RST -j DROP
    
por 18.04.2013 / 17:06