GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zeigen Sie die Netzwerkverbindungen Ihres Linux-Servers mit netstat an

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.

  1. Erkennen Sie häufig genutzte Ports und Dienste. Schließen Sie als allgemeine Regel die Ports, die Sie nicht wirklich verwenden.
  2. Halten Sie Ausschau nach ungewöhnlichen Portnummern und lernen Sie, legitime Ports zu erkennen, die auf Ihrem System verwendet werden.
  3. 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.


Linux
  1. Beginnen Sie mit NetworkManager unter Linux

  2. Erstellen Sie mit Fluxion unter Kali Linux einen bösen Zwilling Ihres Netzwerks

  3. Erstellen Sie Ihren Cloud-Speicher mit ownCloud 6 auf Linux Mint 17

  4. Beheben Sie Probleme in Ihrem Netzwerk mit tcpdump

  5. Synchronisieren Sie die Linux-Serverzeit mit dem Netzwerkzeitserver

Richten Sie einen VPN-Server auf Ihrem Linux-PC ein

Passen Sie Ihren Linux-Desktop mit FVWM an

Erstellen Sie Ihren eigenen Video-Streaming-Server mit Linux

Sichern Sie Ihr Linux-Netzwerk mit firewall-cmd

ReaR:Sichern und stellen Sie Ihren Linux-Server vertrauensvoll wieder her

Network Manager unter Linux mit Beispielen