iptables log conexões estabelecidas

1

Eu tenho uma regra no meu iptables que registra as conexões negadas, por exemplo, -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

Eu quero uma regra semelhante que registre todas as conexões estabelecidas, ou seja, não negadas, em todas as portas. Como posso fazer isso, tentei pesquisar no google e experimentar, mas não consigo encontrar a string para corresponder

    
por doesnt_matter 18.02.2015 / 06:01

1 resposta

3

Uma maneira barata e alegre é procurar o pacote segundo no handshake triplo. É fácil identificá-lo, já que é incomum que ele tenha flags SYN e ACK definidas, o que geralmente é exclusivo para uma determinada conexão. Embora ainda seja possível para o originador não responder com o terceiro e último pacote, isso é inteiramente pela graça do criador: neste ponto, você indicou que está disposto a ter essa conversa, e até onde você re preocupado, é estabelecido.

Eu registrei aqueles com

iptables -A OUTPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -j LOG --log-prefix "Connection established: "

E você pode ver isso funcionando com, por exemplo, sshd:

client% telnet 192.168.3.1 22
Trying 192.168.3.1...
Connected to 192.168.3.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3

server% tail -1 /var/log/facility/kern
Feb 18 05:06:29 server kernel: Connection established: IN= OUT=eth0.11 SRC=192.168.3.1 DST=192.168.3.11 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=22 DPT=59292 WINDOW=14480 RES=0x00 ACK SYN URGP=0 

Uma nota rápida: o que você está registrando no momento não é negado conexões , mas negado pacotes ; não é a mesma coisa. Mas eu assumi que você pediu exatamente o que você quer e respondeu de acordo.

    
por 18.02.2015 / 06:10