Webservers bedienen dagelijks miljoenen websites. Indien een webserver zwaar belast wordt of een DDOS aanval ondergaat, merk je dit aan het aantal gelijktijdige netwerkverbindingen naar de webserver. Om een overbelasting te vermijden, wil je het aantal netwerkverbindingen naar de webserver bepalen en vanaf welk IP adres ze afkomstig zijn. Dit gaan we na met de ss opdracht.
Socket statistics is de volledige naam voor de ss opdracht. Het wordt gebruikt om socket statistieken weer te geven van netwerk/socket verbindingen.
Het toont informatie zoals de netstat opdracht, maar het werkt beter en sneller. Het geeft meer TCP en state informatie weer dan andere vergelijkbare opdrachten.
De ss opdracht krijgt de informatie rechtstreeks uit de kernel space, waardoor deze sneller dan netstat werkt.
Gebruik de ss opdracht met de volgende opties om het aantal verbindingen naar een webserver te achterhalen:
dany@pindabook:~> ss -ant | grep :80 | wc -l
30
Om gedetailleerde informatie weer te geven, gebruik je de volgende opdracht:
dany@pindabook:~> ss -ant | grep :80
TIME-WAIT 0 0 192.168.1.8:36424 192.168.1.38:80
ESTAB 0 0 192.168.1.53:54918 34.107.221.82:80
ESTAB 0 0 192.168.1.53:43712 93.184.220.29:80
ESTAB 0 0 192.168.1.53:43674 93.184.220.29:80
TIME-WAIT 0 0 192.168.1.8:36426 192.168.1.38:80
TIME-WAIT 0 0 192.168.1.8:36428 192.168.1.38:80
LISTEN 0 128 *:80 *:*
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:52064 [2600:1901:0:38d7::]:80
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:52070 [2600:1901:0:38d7::]:80
TIME-WAIT 0 0 [::ffff:192.168.1.8]:80 [::ffff:192.168.1.8]:36606
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:41938 [2a00:1450:400e:803::2003]:80
TIME-WAIT 0 0 [::1]:80 [::1]:56710
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:55642 [2606:2800:234:59:254c:406:2366:268c]:80
TIME-WAIT 0 0 [::1]:80 [::1]:56708
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:35202 [2a00:1450:400e:804::2004]:443
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:35502 [2a02:a000:1:213::51f3:17b]:80
TIME-WAIT 0 0 [::ffff:192.168.1.8]:80 [::ffff:192.168.1.8]:36608
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:41912 [2a00:1450:400e:803::2003]:80
TIME-WAIT 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]%eth0:55356 [2001:67c:2178:8::16]:80
ESTAB 0 0 [2a02:a03f:f03e:3000:8200:f51a:4abe:cea]:34148 [2a00:1450:400e:801::200a]:443
TIME-WAIT 0 0 [::1]:80 [::1]:56700
Met de volgende opdracht worden de verbindingen naar de webserver per IP adres geteld:
dany@pindabook:~> ss -ant | grep :80 | awk '{print $5}'| tail -n +2 | rev | cut -d":" -f2- | rev | sort | uniq -c | sort -nr
10 [::1]
3 [::ffff:192.168.1.24]
2 [::ffff:192.168.1.8]
1 [2a00:1450:400e:801::200a]
1 [2001:67c:2178:8::16]
1 192.168.1.8
1 *
Gebruik het commando ss met de volgende opties om het aantal verbindingen te tellen dat momenteel naar de webserver vanaf elk IP-adres wordt gemaakt:
dany@pindabook:~> ss -ant | grep :80 | grep ESTAB | awk '{print $5}'| tail -n +2 | rev | cut -d":" -f2- | rev | sort | uniq -c | sort -nr
12 [::1]
2 [::ffff:192.168.1.24]
1 [::ffff:192.168.1.53]
We gebruiken de opdracht ps om de lopende processen weer te geven, waaruit we dan de webserver processen (httpd) filteren:
dany@pindabook:~> ps -auxw | grep httpd | grep -v grep | wc -l
11
Met de volgende opdracht bekijk je de webserver processen gedetailleerde informatie:
dany@pindabook:~> ps -auxw | grep httpd | grep -v grep
root 13075 0.0 0.4 307324 33488 ? Ss 13:43 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 13087 0.0 0.2 307476 19004 ? S 13:43 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 13088 0.0 0.2 307476 19192 ? S 13:43 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 13089 0.0 0.2 307468 19012 ? S 13:43 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 13091 0.0 0.2 307476 19192 ? S 13:43 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 13928 0.0 0.2 307468 19064 ? S 14:05 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 14388 0.0 0.2 307468 19124 ? S 14:07 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 14389 0.0 0.2 307476 19112 ? S 14:07 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 14390 0.0 0.2 307476 19128 ? S 14:07 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 16801 0.0 0.2 307476 19124 ? S 15:04 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
dany 18228 0.0 0.2 307468 19128 ? S 15:15 0:00 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache2/httpd.conf -c Include /etc/apache2/sysconfig.d//include.conf -DSYSTEMD -DFOREGROUND -k start
Wil je alle hier gebruikte opdrachten beter leren kennen, aarzel dan niet om hun man pagina's te raadplegen.