Digitalna papazjanija

Kako odrediti broj aktivnih konekcija na server?

Bilo da imate kućni server za multimedijalne i sl fajlove ili u firmi imate računar koji ima funkciju servera za skladištenje podataka ili čak web server. moglo bi vas zanimati koliko ima aktivnih konekcija sa tim računarom. Kad god se neki klijent poveže sa serverom, ostvaruje se (min) jedna konekcija između ta dva računara, a ukoliko je vašem serveru dozvoljen javni pristup sa Interneta može se desiti da u nekom trenutku server bude preopterećen brojem konekcija koji treba da opsluži. Ovo je posebno značajno za web servere. Sve ovo važi i ukoliko imate dedicated hosting za sajt.

Daću vam par primera kako možete pratiti broj trenutno aktivnih konekcija na server, za koji imate SSH prastup. Moći ćete da pratite broj i da vidite listu konekcija svakog klijenta po IP adresama, što može poslužiti za eventualnu detekciju i analizu u DoS napada na vaš server. Ukoliko jedan IP ostvaruje ogroman broj konekcija, verovatno se radi upravo o ovakvom DoS napadu na vaš server. Za ovakve stvari, koristi se alat pod nazivom netstat.

Za detaljniji opis rada komande netstat ukucajte u konzoli:

[bash]
man netstat
[/bash]

Ukoliko nemate instaliran netstat, on obično dolazi u kompletu sa nekim drugim alatima. Za Fedoru linux, dovoljno je instalirati net-tools komandom:

[bash]
yum install net-tools
[/bash]

Ukoliko imate netstat, evo i par korisnih komandi koje bi valjalo znati:

Korisne netstat komande

[bash]
netstat -na
[/bash]
Prikazuje sve aktivne konekcije sa Internetom i broji samo uspostavljene veze.
[bash]
netstat -an | grep :80 | sort
[/bash]
Prikazuje (sortitano) aktivne konekcije na portu 80. Zgodno za proveru da li ima puno konekcija sa jedne IP adrese.
[bash]
netstat -n -p | grep SYN_REC | wc -l
[/bash]
Prikazuje koliko ima aktivnih SYNC_REC-ova na serveru. Ovaj broj bi trebao da je jako mali, po mogućstvu manji od 5. Ova vrednost obično skače u slučaju DoS ili mail bomb napada.
[bash]
netstat -n -p | grep SYN_REC | sort -u
[/bash]
Lista svih IP adresa, umesto samo brojnog stanja iz prethodnog slučaja.
[bash]
netstat -n -p | grep SYN_REC | awk ‘{print $5}’ | awk -F: ‘{print $1}’
[/bash]
Lista svih jedinstvenih IP adresa, klijenata koji šalju SYN_REC konekcije.
[bash]
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
[/bash]
Prikazuje broj konekcija koju svaki IP uspostavlja sa serverom.
[bash]
netstat -anp | grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
[/bash]
Izlistava broj konekcija koje klijenata (IP) povezanih putem TCP ili UDP protokola.
[bash]
netstat -ntu | grep ESTAB | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr
[/bash]
Prikazuje samo broj uspostavljenih umesto svih konekcija, kao i broj za svaki IP posebno.
[bash]
netstat -plan | grep :80 | awk {‘print $5’} | cut -d: -f 1 | sort | uniq -c | sort -nk 1
[/bash]
Prikazuje listu IP adresa i broj konekcija koji svaka uspostavlja sa serverom na portu 80.