GNU/Linux >> Linux Esercitazione >  >> Linux

Monitora il traffico TCP su una porta specifica

modifica :Sto ancora ricevendo voti positivi per questo anni dopo. Per favore, non scegliere questa risposta, la risposta che utilizza iptables qui è di gran lunga superiore secondo me.

tcpdump port 443 and '(tcp-syn|tcp-ack)!=0'

o solo tcp-syn , o solo tcp-ack (la mia ipotesi sarebbe quella), a seconda di ciò di cui hai bisogno.


Puoi utilizzare il supporto iptables nel kernel Linux per questo. Il lato positivo è che non richiede alcun software aggiuntivo per essere moderatamente utile. Lo svantaggio è che richiede i privilegi di root per essere configurato (ma dato che stai parlando della porta 443, che è una porta privilegiata, probabilmente avrai bisogno dei privilegi di root con la maggior parte delle soluzioni).

Aggiungi una regola iptables con qualcosa come:

sudo iptables -I INPUT -p tcp --dport 443 --syn -j LOG --log-prefix "HTTPS SYN: "

(Regola il -I INPUT parte secondo i tuoi gusti.)

Quando la regola viene attivata, il kernel emetterà una voce syslog. Ad esempio, con una regola di input, la voce di log potrebbe essere simile a:

Dic 5 09:10:56 nome host kernel:[1023963.185332] HTTPS SYN:IN=ifX OUT=MAC=80:80:80:80:80:80:80:80:80:80:80:80:08:00 SRC=A.B.C.D DST=W.X.Y.Z LEN=52 TOS=0x00 PREC=0x20 TTL=119 ID=11901 DF PROTO=TCP SPT=37287 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0

È quindi possibile utilizzare qualsiasi strumento di monitoraggio dei registri ordinario per fare qualcosa di utile con queste informazioni. Se la tua implementazione syslog lo supporta, puoi persino indirizzarli in un file di registro separato, soddisfacendo efficacemente il tuo requisito di scrivere i dati di connessione in un file con timestamp al secondo senza software aggiuntivo.

Nota che il LOG target è un target non terminante, il che significa che tutte le regole che lo seguono verranno comunque valutate e il pacchetto non verrà né rifiutato né accettato dalla regola LOG stessa. Questo fa il LOG target utile anche per il debug delle regole del firewall.

Per evitare di sovraccaricare il tuo log, prendi in considerazione l'utilizzo del limit modulo insieme a questo. Vedere la pagina man di iptables(8) per i dettagli.


Risoluzione in microsecondi

Per impostazione predefinita, l'utilità tcpdump riporterà l'ora con una risoluzione di microsecondi. Ad esempio:

$ sudo tcpdump -i any port 443

mostrerà un output simile al seguente:

12:08:14.028945 IP localhost.33255> localhost.https:Flags [S], seq 1828376761, win 43690, options [mss 65495,sackOK,TS val 108010971 ecr 0,nop,wscale 7], length 0
12:08:14.028959 IP localhost.https> localhost.33255:Flags [R.], seq 0, ack 1828376762, win 0, length 0

Consulta tcpdump(8) per un elenco completo delle opzioni di tcpdump e pcap-filter(7) per la sintassi completa dei filtri che puoi utilizzare.


Linux
  1. Come bloccare una porta specifica su CentOS 8 come 22

  2. Come monitorare il traffico TCP tra l'host locale e l'indirizzo IP?

  3. Consenti il ​​traffico web nel firewall del software iptables

  4. Misura il traffico dal registro degli accessi di Apache

  5. Come posso eliminare la porta TCP 16969 in Bash?

Monitoraggio della larghezza di banda

Come eseguire il ping di un numero di porta specifico

Installa Ntopng per monitorare il traffico di rete su Ubuntu 20.04

Significato delle voci di registro da una configurazione di iptables

Controlla il traffico di rete in uscita

Uccidi il processo in esecuzione sulla porta 80