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

CentOS / RHEL :Wie finde ich heraus, ob ein Netzwerkport offen ist oder nicht?

Eine TCP/IP-Netzwerkverbindung kann entweder blockiert, getrennt, geöffnet oder gefiltert werden. Diese Aktionen werden im Allgemeinen von der IPtables-Firewall gesteuert, die das System verwendet, und sind unabhängig von Prozessen oder Programmen, die möglicherweise an einem Netzwerkport lauschen. Jenseits der Firewall kann ein Programm oder Prozess (ein Server oder Daemon) an einem Port lauschen oder nicht lauschen. Dies kann mit den Programmen netstat oder ss überprüft werden. Es ist nicht einfach zu überprüfen, ob ein Port an der Firewall offen, blockiert, gelöscht oder gefiltert ist. Dafür gibt es zwei Möglichkeiten:

  • Port extern testen
  • Listen Sie die Firewall-Konfiguration auf und untersuchen Sie die Ausgabe

1. Verwenden von netstat zum Anzeigen der lauschenden Prozesse

Um zu sehen, ob ein Programm oder Prozess auf einem Port lauscht und bereit ist, ein Paket anzunehmen, verwenden Sie den Befehl netstat.

# netstat -tulnp

Die Argumente für den netstat-Befehl sind unten aufgeführt:

t – TCP
u anzeigen – UDP
l anzeigen – Nur zuhörende Prozesse anzeigen (netstat kann sowohl zuhörende als auch alle aufgebauten Verbindungen anzeigen, also auch als Client)
n – Keine Netzwerk-IP-Adressnamen oder Portnummern auflösen
p – Zeigen Sie den Prozessnamen an, der auf dem Port lauscht

Zum Beispiel:

# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1254/rpcbind
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1484/sshd
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1355/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1562/master
tcp        0      0 0.0.0.0:44349               0.0.0.0:*                   LISTEN      1274/rpc.statd
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1254/rpcbind
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               1355/cupsd
udp        0      0 0.0.0.0:44165               0.0.0.0:*                               1274/rpc.statd
udp        0      0 0.0.0.0:602                 0.0.0.0:*                               1274/rpc.statd
udp        0      0 0.0.0.0:1001                0.0.0.0:*                               1254/rpcbind

2. Verwenden von ss, um die lauschenden Prozesse zu sehen

Um zu sehen, ob ein Programm oder Prozess auf einem Port lauscht und bereit ist, ein Paket anzunehmen, verwenden Sie das Programm ss.

# ss -nutlp

Die Argumente für das ss-Programm sind unten aufgelistet:

t – TCP-Sockets anzeigen.
u – UDP-Sockets anzeigen.
l – Abhörsteckdosen
n anzeigen – Versuchen Sie jetzt, Namen aufzulösen
p – Prozess mit Socket anzeigen

Zum Beispiel:

# ss -nutlp
Netid State      Recv-Q Send-Q                                                        Local Address:Port                                                          Peer Address:Port
udp   UNCONN     0      0                                                                         *:111                                                                      *:*      users:(("rpcbind",1254,6))
udp   UNCONN     0      0                                                                         *:631                                                                      *:*      users:(("cupsd",1355,9))
udp   UNCONN     0      0                                                                         *:44165                                                                    *:*      users:(("rpc.statd",1274,8))
udp   UNCONN     0      0                                                                         *:602                                                                      *:*      users:(("rpc.statd",1274,5))
udp   UNCONN     0      0                                                                         *:1001                                                                     *:*      users:(("rpcbind",1254,7))
tcp   LISTEN     0      128                                                                       *:111                                                                      *:*      users:(("rpcbind",1254,8))
tcp   LISTEN     0      128                                                                       *:22                                                                       *:*      users:(("sshd",1484,3))
tcp   LISTEN     0      128                                                               127.0.0.1:631                                                                      *:*      users:(("cupsd",1355,7))
tcp   LISTEN     0      100                                                               127.0.0.1:25                                                                       *:*      users:(("master",1562,12))
tcp   LISTEN     0      128                                                                       *:44349                                                                    *:*      users:(("rpc.statd",1274,9))

3. mit lsof nach offenen Ports suchen

Um alle offenen Ports auf einem System aufzulisten, verwenden Sie den folgenden Befehl, um den Namen und die Nummer des Prozesses aufzulisten, der die Ports geöffnet hat.

# lsof -i

Hier ist eine Beispielausgabe:

# lsof -i
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   1254     rpc    6u  IPv4  12592      0t0  UDP *:sunrpc
rpcbind   1254     rpc    7u  IPv4  12596      0t0  UDP *:1001
rpcbind   1254     rpc    8u  IPv4  12597      0t0  TCP *:sunrpc (LISTEN)
rpc.statd 1274 rpcuser    5r  IPv4  12784      0t0  UDP *:xmlrpc-beep
rpc.statd 1274 rpcuser    8u  IPv4  12788      0t0  UDP *:44165
rpc.statd 1274 rpcuser    9u  IPv4  12792      0t0  TCP *:44349 (LISTEN)
cupsd     1355    root    7u  IPv4  13147      0t0  TCP localhost:ipp (LISTEN)
cupsd     1355    root    9u  IPv4  13150      0t0  UDP *:ipp
sshd      1484    root    3u  IPv4  13707      0t0  TCP *:ssh (LISTEN)
master    1562    root   12u  IPv4  13923      0t0  TCP localhost:smtp (LISTEN)
sshd      1657    root    3r  IPv4  14745      0t0  TCP 192.168.1.50:ssh->192.168.1.101:49549 (ESTABLISHED)

Externes Testen eines Ports

Die Telnet-Anwendung kann zum Testen einfacher Netzwerk-Socket-Verbindungen verwendet werden, aber nur für TCP-Verbindungen, nicht für UDP. Wenn ich beispielsweise sehen möchte, ob TCP-Port 80 auf einem System bereit ist, eine Verbindung anzunehmen, gebe ich die IP-Adresse und den Port für Telnet an:

# telnet 192.168.1.55 80
Trying 192.168.1.55...
Connected to example.redhat.com (192.168.1.55).
Escape character is '^]'.

Wenn der Server nicht zuhört, ist die Antwort anders:

# telnet 10.0.0.25 80
Trying 10.0.0.25...
telnet: connect to address 10.0.0.25: Connection refused
telnet: Unable to connect to remote host: Connection refused
  • Dies zeigt an, dass die Verbindung aktiv abgelehnt wurde. Das TCP-Subsystem empfing das Paket, untersuchte es und stellte fest, dass es sich um eine Anfrage zum Öffnen eines Sockets an Port 80 handelte, stellte fest, dass kein Prozess bereit war, die Verbindung anzunehmen, und antwortete mit einer Verweigerung.
  • Wenn die Firewall so konfiguriert war, dass sie die Verbindung blockiert oder filtert, würde Telnet etwas sehr Ähnliches wie oben anzeigen, selbst wenn ein Prozess bereit war, die Verbindung zu akzeptieren.
  • Wenn die Firewall so konfiguriert war, dass sie die Verbindungen unterbricht, würden wir überhaupt keine Antwort sehen und stattdessen würde Telnet eine Zeitüberschreitung aufweisen:
# telnet 10.0.0.25 80
Trying 10.0.0.25...
telnet: connect to address 10.0.0.25: Connection timed out

Auflisten der Firewall-Regeln

In Red Hat Enterprise Linux können Firewall-Regeln mithilfe des Dienstbefehls aufgelistet werden:

# service iptables status

Oder mit dem iptables-Befehl:

# iptables -xvn -L


Linux
  1. So erstellen Sie eine Netzwerkbrücke unter CentOS 7 / RHEL 7

  2. CentOS / RHEL 7 :Wie öffne ich einen Port in der Firewall mit Firewall-cmd?

  3. So deaktivieren Sie NetworkManager unter CentOS / RHEL 7

  4. So finden Sie heraus, welches spezifische Ethernet-Gerät einem bestimmten Port auf einer Multi-Interface-Netzwerkkarte in CentOS/RHEL entspricht

  5. CentOS / RHEL :So finden Sie die UUID eines Geräts oder Dateisystems

So konfigurieren Sie eine virtuelle Netzwerkschnittstelle auf RHEL 8 / CentOS 8

RHEL 8 / CentOS 8 öffnen FTP-Port 21 mit Firewalld

So öffnen und schließen Sie Ports unter RHEL 8 / CentOS 8 Linux

So überprüfen Sie offene Ports unter RHEL 8 / CentOS 8 Linux

So finden und schließen Sie offene Ports in Linux

CentOS / RHEL 6 :Wie finde ich meinen aktuellen Runlevel?