Server talk to me - Ports
Heute möchte ich eine kleine neue Serie beginnen, die sich um Linux Server und deren Verwaltung dreht. Es geht konkret darum, dass sich der Server bei euch meldet wie es “ihm geht”. Er soll euch also z.B. sagen welche Ports offen sind, wer sich in der letzten Zeit angemeldet hat und so weiter. Um dies zu erreichen habe ich mir ein paar kleine Scripte geschrieben und diese will ich jetzt mit euch teilen. Sie sind zum Teil sicherlich nicht optimal und der eine oder andere Linux Scripter wird die Hände über dem Kopf zusammenschlagen aber ich bitte um Nachsicht, denn sie tun was sie sollen. Trotzdem gilt natürlich Verwendung auf eigene Gefahr und ihr solltet nur anwenden was ihr versteht! Ich beginne heute mit den Ports, denn zu wissen welche offen sind und ob sich dort etwas nicht gewünschtes eingeschlichen hat ist ziemlich wichtig.
Ich nutze das folgende Script:
#Netstat Befehl als Root ausführen um alle Informationen zu erhalten
sudo netstat -tulpn |
#Unnötige Loopback Ausgabe deaktivieren
grep -v '127.0.0.1' |
#Gewünschte Felder filtern
awk '{ print $4,$6,$7,"("$1")" }' |
#Für mich nicht nötige "Listen" Ausgabe deaktivieren
sed s/LISTEN//g |
#Unnötige IPv4 Ausgaben deaktivieren
sed s/0.0.0.0://g |
#Unnötige IPv6 Ausgaben deaktivieren
sed s/::://g |
#Unnötige Ausgabe der eigenen IP deaktivieren (durch Server IP ersetzen)
sed s/12.34.56.78://g |
#Ausgabe der Spaltenüberschriften deaktivieren
tail -n+3 |
#Nach Port Nummer aufsteigend sortieren
sort -n
Die Parameter beim “netstat” Befehl haben den folgenden Nutzen:
- t - TCP Sockets anzeigen
- u - UDP Sockets anzeigen
- l - Nur offene Ports zeigen
- p - Zeigt die Prozess-ID an (nur mit Root Rechten möglich)
- n - Ausgabe von Nummern, keine Übersetzung in Namen
- Alle Informationen open_in_new zum "netstat" Befehl auf UbuntuUsers.de open_in_new
Daraus ergibt sich dann eine Ausgabe der folgenden Art:
Port Prozess-ID/Dienstname (Protokoll Typ)
1337 31337/TeamspeakServer (tcp)
1338 31338/MailServerFilter (udp)
Im Beispiel bedeutet es also auf Port open_in_new 1337 läuft ein Teamspeak Server, der im System aktuell die Prozess-ID open_in_new 31337 hat und als Protokoll IPv4 open_in_new basiertes TCP open_in_new nutzt. Darunter befindet ein weiterer Dienst und auf diese Art werden alle offenen Ports aufgelistet.