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

So suchen Sie unter Linux mit netstat, lsof und nmap nach offenen Ports

In diesem Artikel wird erläutert, wie Sie mithilfe der Befehle netstat, lsof und nmap nach offenen Ports suchen, um herauszufinden, welche Dienste welche Ports überwachen.

Bei der Behebung von Problemen mit der Netzwerkkonnektivität oder anwendungsspezifischen Problemen sollte eines der ersten Dinge überprüft werden, welche Ports tatsächlich auf Ihrem System verwendet werden und welche Anwendung einen bestimmten Port abhört.

Der Netzwerkport wird durch seine Nummer, die zugehörige IP-Adresse und den Typ des Kommunikationsprotokolls wie TCP oder UDP identifiziert. Vor allem ist ein offener Port ein Netzwerkport, an dem eine Anwendung oder ein Prozess lauscht und als Kommunikationsendpunkt fungiert.

Jeder Listening-Port kann mithilfe einer Firewall geöffnet oder geschlossen (gefiltert) werden. Im Allgemeinen ist ein offener Port ein Netzwerkport, der eingehende Pakete von entfernten Standorten akzeptiert.

Mit netstat nach offenen Ports suchen

netstat (Netzwerkstatistiken ) ist ein Befehlszeilentool zum Überwachen von eingehenden und ausgehenden Netzwerkverbindungen sowie zum Anzeigen von Routing-Tabellen, Schnittstellenstatistiken usw. Dieses Tool ist sehr wichtig und sehr nützlich für Linux-Netzwerkadministratoren sowie Systemadministratoren, um ihr Netzwerk zu überwachen und Fehler zu beheben -bezogene Probleme und Bestimmung der Leistung des Netzwerkverkehrs.

Verwenden Sie den folgenden Befehl, um alle TCP- oder UDP-Ports aufzulisten, die überwacht werden, einschließlich der Dienste, die die Ports und den Socket-Status verwenden:

$ sudo netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:10024         0.0.0.0:*               LISTEN      24919/amavisd    
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      967/master   
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      800/tinyproxy       
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      967/master          
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      844/pure-ftpd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      768/sshd            
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      967/master          
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      1001/dovecot  
tcp6       0      0 :::3306                 :::*                    LISTEN      823/mysqld       
tcp6       0      0 ::1:783                 :::*                    LISTEN      24911/spamd.pid -d  
tcp6       0      0 :::80                   :::*                    LISTEN      781/httpd         
tcp6       0      0 :::21                   :::*                    LISTEN      844/pure-ftpd 
tcp6       0      0 :::22                   :::*                    LISTEN      768/sshd            
tcp6       0      0 :::25                   :::*                    LISTEN      967/master        
tcp6       0      0 :::993                  :::*                    LISTEN      1001/dovecot        
tcp6       0      0 :::995                  :::*                    LISTEN      1001/dovecot        
udp        0      0 0.0.0.0:47967           0.0.0.0:*                           460/avahi-daemon: r 
udp        0      0 127.0.0.1:123           0.0.0.0:*                           472/ntpd            
udp        0      0 0.0.0.0:123             0.0.0.0:*                           472/ntpd     
udp6       0      0 :::123                  :::*                                472/ntpd 

Die in diesem Befehl verwendeten Optionen haben folgende Bedeutung:

  • -t :TCP-Ports anzeigen.
  • -u :UDP-Ports anzeigen.
  • -l :Nur Listening Ports anzeigen.
  • -n :Numerische Adressen anzeigen statt Hosts aufzulösen.
  • -p :Zeigt die PID und den Namen des Listener-Prozesses an. Diese Informationen werden nur angezeigt, wenn Sie den Befehl als Root- oder sudo-Benutzer ausführen.

Die wichtigen Spalten in unserem Fall sind:

  • Proto – Das vom Socket verwendete Protokoll.
  • Lokale Adresse – Die IP-Adresse und Portnummer, die der Prozess überwacht.
  • PID/Programmname – Die PID und der Name des Prozesses.

Wenn Sie die Ergebnisse filtern möchten, verwenden Sie außerdem grep Befehl. Um beispielsweise herauszufinden, welcher Prozess auf TCP-Port 22 lauscht, würden Sie Folgendes eingeben:

$ sudo netstat -tulnp | grep :22
tcp     0      0 0.0.0.0:22        0.0.0.0:*         LISTEN      768/sshd            
tcp6    0      0 :::22             :::*              LISTEN      768/sshd

Wenn die Ausgabe leer ist, bedeutet dies, dass nichts auf dem Port lauscht.

Weitere Informationen zu netstat Befehl unter Linux finden Sie auf der Handbuchseite.

Mit lsof nach offenen Ports suchen

lsof bedeutet "Geöffnete Dateien auflisten" wird verwendet, um herauszufinden, welche Dateien von welchem ​​Prozess geöffnet sind. Unter Linux ist alles eine Datei. Sie können sich einen Socket als eine Datei vorstellen, die in das Netzwerk schreibt.

Um eine Liste aller lauschenden TCP-Ports mit lsof zu erhalten, geben Sie Folgendes ein:

$ sudo lsof -nP -iTCP -sTCP:LISTEN
COMMAND     PID      USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
sshd        768      root    3u  IPv4    16112      0t0  TCP *:22 (LISTEN)
sshd        768      root    4u  IPv6    16114      0t0  TCP *:22 (LISTEN)
httpd       781      root    4u  IPv6    16328      0t0  TCP *:80 (LISTEN)
httpd       781      root    6u  IPv6    16336      0t0  TCP *:443 (LISTEN)
tinyproxy   800 tinyproxy    0u  IPv4    16750      0t0  TCP *:8080 (LISTEN)
tinyproxy   805 tinyproxy    0u  IPv4    16750      0t0  TCP *:8080 (LISTEN)
mysqld      823     mysql   20u  IPv6    17479      0t0  TCP *:3306 (LISTEN)
pure-ftpd   844      root    4u  IPv4    16289      0t0  TCP *:21 (LISTEN)
pure-ftpd   844      root    5u  IPv6    16290      0t0  TCP *:21 (LISTEN)
master      967      root   13u  IPv4    17225      0t0  TCP *:25 (LISTEN)
master      967      root  103u  IPv4    17319      0t0  TCP 127.0.0.1:10025 (LISTEN)
dovecot    1001      root   24u  IPv4    18600      0t0  TCP *:995 (LISTEN)
dovecot    1001      root   37u  IPv6    18623      0t0  TCP *:993 (LISTEN)
httpd     24344    apache    4u  IPv6    16328      0t0  TCP *:80 (LISTEN)
httpd     24344    apache    6u  IPv6    16336      0t0  TCP *:443 (LISTEN)
/usr/bin/ 24911      root    5u  IPv4 25208447      0t0  TCP 127.0.0.1:783 (LISTEN)
/usr/bin/ 24911      root    6u  IPv6 25208449      0t0  TCP [::1]:783 (LISTEN)
spamd     24913      root    5u  IPv4 25208447      0t0  TCP 127.0.0.1:783 (LISTEN)
spamd     24913      root    6u  IPv6 25208449      0t0  TCP [::1]:783 (LISTEN)
/usr/sbin 24919    amavis    5u  IPv4 25208583      0t0  TCP 127.0.0.1:10024 (LISTEN)
/usr/sbin 24919    amavis    6u  IPv6 25208584      0t0  TCP [::1]:10024 (LISTEN)
smtpd     28403   postfix    6u  IPv4    17225      0t0  TCP *:25 (LISTEN)
smtpd     28403   postfix    7u  IPv6    17226      0t0  TCP *:25 (LISTEN)

Die verwendeten Optionen lauten wie folgt:

  • -n :Portnummern nicht in Portnamen umwandeln.
  • -P :Hostnamen nicht auflösen, numerische Adressen anzeigen.
  • -iTCP -sTCP:LISTEN :Nur Netzwerkdateien mit TCP-Status LISTEN anzeigen.

Um herauszufinden, welcher Prozess an einem bestimmten Port lauscht, beispielsweise Port 3306 verwenden Sie:

$ sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
COMMAND PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  823 mysql   20u  IPv6  17479      0t0  TCP *:3306 (LISTEN)

Die Ausgabe zeigt, dass der MySQL-Server Port 3306 verwendet.

Weitere Informationen zu lsof Befehl unter Linux finden Sie auf der Handbuchseite.

Mit nmap nach offenen Ports suchen

nmap , oder Network Mapper , ist ein Open-Source-Linux-Befehlszeilentool für die Netzwerkerkundung und Sicherheitsüberwachung. Mit nmap können Serveradministratoren schnell Hosts und Dienste anzeigen, nach Sicherheitsproblemen suchen und nach offenen Ports suchen.

nmap Befehle können verwendet werden, um zu prüfen, ob ein einzelner Port oder eine Reihe von Ports offen sind.

So scannen Sie Port 80 auf dem Zielsystem:

$ sudo nmap -p 80 192.168.0.1
Nmap scan report for 192.168.0.1
Host is up (0.000073s latency).
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds

Scannen Sie die Ports 1 bis 200 auf dem Zielsystem:

$ sudo nmap -p 1-200 192.168.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2020-08-21 16:42 EEST
Nmap scan report for 192.168.0.1
Host is up (0.0000080s latency).
Not shown: 196 closed ports
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
25/tcp open  smtp
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 1.45 seconds

Scanne (schnell) die gängigsten Ports:

$ sudo nmap -F 192.168.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2020-08-21 16:44 EEST
Nmap scan report for 192.168.0.1
Host is up (0.000014s latency).
Not shown: 89 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
443/tcp  open  https
465/tcp  open  smtps
587/tcp  open  submission
993/tcp  open  imaps
995/tcp  open  pop3s
3306/tcp open  mysql
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 1.46 seconds

Unterm Strich

Wenn Sie abschließend prüfen, welche Ports offen sind und welche Informationen von den Diensten abgerufen werden können, die Verbindungen an diesen Ports akzeptieren, erhalten Sie die Informationen, die Sie benötigen, um Ihren Server zu sperren.

Beispielsweise können alle überflüssigen Informationen, die von Ihrem Computer durchgesickert sind, von einem böswilligen Benutzer verwendet werden, um zu versuchen, bekannte Schwachstellen auszunutzen oder neue zu entwickeln. Je weniger sie herausfinden können, desto besser.


Linux
  1. So suchen Sie unter Linux mit netstat, lsof und nmap nach offenen Ports

  2. So überprüfen Sie die Betriebssystem- und Linux-Version

  3. So überprüfen Sie das Abhören / Öffnen von Ports mit Netstat unter Linux

  4. So überprüfen Sie den offenen Port auf einem Remote-Linux-System

  5. Überprüfen Sie die Listening-Ports mit netstat

Wie man unter Debian 10 nach offenen Ports sucht

So überprüfen Sie, ob ein Port auf einem Remote-Linux-System geöffnet ist

So finden und schließen Sie offene Ports in Linux

So überprüfen Sie die Betriebssystemversion mit der Linux-Befehlszeile

So überprüfen Sie alle offenen Ports in Ihrem Linux-System

Wie überprüfe ich offene Ports in Linux?