In einem früheren Artikel habe ich einige wichtige erste Schritte zur Verwaltung Ihres persönlichen Linux-Servers geteilt. Ich habe kurz erwähnt, dass Netzwerkverbindungen auf Listening Ports überwacht werden, und ich möchte dies durch die Verwendung von netstat
erweitern Befehl für Linux-Systeme.
Dienstüberwachung und Port-Scanning sind branchenübliche Praktiken. Es gibt sehr gute Software wie Prometheus zur Automatisierung des Prozesses und SELinux zur Kontextualisierung und zum Schutz des Systemzugriffs. Ich glaube jedoch, dass das Verständnis, wie Ihr Server sich mit anderen Netzwerken und Geräten verbindet, der Schlüssel zum Erstellen einer Basislinie dessen ist, was für Ihren Server normal ist, was Ihnen hilft, Anomalien zu erkennen, die auf einen Fehler oder ein Eindringen hindeuten können. Als Anfänger habe ich entdeckt, dass die netstat
Der Befehl bietet wichtige Einblicke in meinen Server, sowohl für die Überwachung als auch für die Fehlerbehebung im Netzwerk.
Netstat und ähnliche Netzwerküberwachungstools, zusammengefasst im Paket net-tools, zeigen Informationen über aktive Netzwerkverbindungen an. Da Dienste, die auf offenen Ports ausgeführt werden, oft anfällig für Ausbeutung sind, kann eine regelmäßige Netzwerküberwachung Ihnen helfen, verdächtige Aktivitäten frühzeitig zu erkennen.
Installieren Sie netstat
Netstat ist häufig auf Linux-Distributionen vorinstalliert. Wenn netstat nicht auf Ihrem Server installiert ist, installieren Sie es mit Ihrem Paketmanager. Auf einem Debian-basierten System:
$ sudo apt-get install net-tools
Für Fedora-basierte Systeme:
$ dnf install net-tools
Verwenden Sie netstat
Allein die netstat
Befehl zeigt alle hergestellten Verbindungen an. Sie können die netstat
verwenden Optionen oben, um die beabsichtigte Ausgabe weiter zu spezifizieren. Um beispielsweise alle lauschenden und nicht lauschenden Verbindungen anzuzeigen, verwenden Sie --all
(-a
kurz) Option. Dies gibt viele Ergebnisse zurück, daher leite ich in diesem Beispiel die Ausgabe an head
weiter um nur die ersten 15 Zeilen der Ausgabe anzuzeigen:
$ netstat --all | head -n 15
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:27036 *:* LISTEN
tcp 0 0 localhost:27060 *:* LISTEN
tcp 0 0 *:16001 *:* LISTEN
tcp 0 0 localhost:6463 *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:57343 *:* LISTEN
tcp 0 0 *:ipp *:* LISTEN
tcp 0 0 *:4713 *:* LISTEN
tcp 0 0 10.0.1.222:48388 syd15s17-in-f5.1e:https ESTABLISHED
tcp 0 0 10.0.1.222:48194 ec2-35-86-38-2.us:https ESTABLISHED
tcp 0 0 10.0.1.222:56075 103-10-125-164.va:27024 ESTABLISHED
tcp 0 0 10.0.1.222:46680 syd15s20-in-f10.1:https ESTABLISHED
tcp 0 0 10.0.1.222:52730 syd09s23-in-f3.1e:https ESTABLISHED
Um nur TCP-Ports anzuzeigen, verwenden Sie --all
und --tcp
Optionen oder -at
kurz:
$ netstat -at | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:27036 *:* LISTEN
tcp 0 0 localhost:27060 *:* LISTEN
tcp 0 0 *:16001 *:* LISTEN
Um nur UDP-Ports anzuzeigen, verwenden Sie --all
und --udp
Optionen oder -au
kurz:
$ netstat -au | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:27036 *:*
udp 0 0 10.0.1.222:44741 224.0.0.56:46164 ESTABLISHED
udp 0 0 *:bootpc
Die Optionen für netstat sind oft intuitiv. Um beispielsweise alle lauschenden TCP- und UDP-Ports mit Prozess-ID (PID) und numerischer Adresse anzuzeigen:
$ sudo netstat --tcp --udp --listening --programs --numeric
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Addr State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2500/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1726/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1721/cupsd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 4023/sshd: tux@
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1726/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1721/cupsd
tcp6 0 0 ::1:6010 :::* LISTEN 4023/sshd: tux@
udp 0 0 0.0.0.0:40514 0.0.0.0:* 1499/avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 2500/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 2500/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1499/avahi-daemon:
udp6 0 0 :::111 :::* 1/systemd
udp6 0 0 :::44235 :::* 1499/avahi-daemon:
udp6 0 0 :::5353 :::* 1499/avahi-daemon:
Die Kurzversion dieser gebräuchlichen Kombination ist -tulpn
.
Um Informationen zu einem bestimmten Dienst anzuzeigen, filtern Sie mit grep
:
$ sudo netstat -anlp | grep cups
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1721/cupsd tcp6 0 0 ::1:631 :::* LISTEN 1721/cupsd
unix 2 [ ACC ] STREAM LISTENING 27251 1/systemd /var/run/cups/cups.sock
unix 2 [ ] DGRAM 59530 1721/cupsd
unix 3 [ ] STREAM CONNECTED 55196 1721/cupsd /var/run/cups/cups.sock
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Nächste Schritte
Nachdem Sie netstat
ausgeführt haben Befehl können Sie Schritte unternehmen, um Ihr System zu sichern, indem Sie sicherstellen, dass nur Dienste, die Sie aktiv nutzen, Ihr Netzwerk abhören.
- Erkennen Sie häufig genutzte Ports und Dienste. Schließen Sie als allgemeine Regel die Ports, die Sie nicht wirklich verwenden.
- Halten Sie Ausschau nach ungewöhnlichen Portnummern und lernen Sie, legitime Ports zu erkennen, die auf Ihrem System verwendet werden.
- Achten Sie genau auf SELinux-Fehler. Manchmal müssen Sie nur die Kontexte aktualisieren, damit sie einer legitimen Änderung entsprechen, die Sie an Ihrem System vorgenommen haben, aber lesen Sie die Fehler, um sicherzustellen, dass SELinux Sie nicht vor verdächtigen oder böswilligen Aktivitäten warnt.
Wenn Sie feststellen, dass ein Port einen verdächtigen Dienst ausführt, oder Sie einfach einen Port schließen möchten, den Sie nicht mehr verwenden, können Sie den Portzugriff manuell über Firewallregeln verweigern, indem Sie die folgenden Schritte ausführen:
Wenn Sie firewall-cmd
verwenden , führen Sie diese Befehle aus:
$ sudo firewall-cmd –remove-port=<port number>/tcp
$ sudo firewall-cmd –runtime-to-permanent
Wenn Sie UFW verwenden, führen Sie den folgenden Befehl aus:
$ sudo ufw deny <port number>
Stoppen Sie als Nächstes den Dienst selbst mit systemctl
:
$ systemctl stop <service>
Netstat lernen
Netstat ist ein nützliches Tool, um schnell Informationen über die Netzwerkverbindungen Ihres Servers zu sammeln. Regelmäßige Netzwerküberwachung ist ein wichtiger Bestandteil des Kennenlernens Ihres Systems und hilft Ihnen, Ihr System sicher zu halten. Um diesen Schritt in Ihre Verwaltungsroutine zu integrieren, können Sie Netzwerküberwachungstools wie netstat oder ss sowie Open-Source-Port-Scanner wie Nmap oder Sniffer wie Wireshark verwenden, die geplante Aufgaben ermöglichen.
Da auf Servern größere Mengen an personenbezogenen Daten gespeichert sind, wird es immer wichtiger, die Sicherheit von Personal Servern zu gewährleisten. Indem Sie verstehen, wie sich Ihr Server mit dem Internet verbindet, können Sie die Anfälligkeit Ihres Computers verringern und gleichzeitig von der wachsenden Konnektivität des digitalen Zeitalters profitieren.