Tips en Trucs 2021

Netwerkverbindingen onderzoeken met ss

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.

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.

Aantal netwerkverbindingen naar de webserver bepalen

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

Netwerkverbindingen naar de webserver weergeven

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

Aantal verbindingen naar webserver per IP adres

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 *

Momenteel naar de webserver gemaakte verbindingen

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]

Aantal actieve webserver processen tellen

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

Details webserver processen weergeven

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

Raadpleeg de manuals

Wil je alle hier gebruikte opdrachten beter leren kennen, aarzel dan niet om hun man pagina's te raadplegen.

ss