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

Wie schließt man Ports unter Linux?

Ich habe einige Fragen zum Schließen des Ports, ich glaube, ich habe einige seltsame Dinge.

Wenn ich execute verwende

nmap --top-ports 10 192.168.1.1

es zeigt, dass der Port 23/TCP offen ist.

Aber wenn ich ausführe

nmap --top-ports 10 localhost

es zeigt, dass Port 23/tcp geschlossen ist.

Welche davon ist wahr? Ich möchte diesen Port auf meinem gesamten System schließen, wie kann ich das tun?

Akzeptierte Antwort:

Nmap ist ein großartiger Port-Scanner, aber manchmal möchten Sie etwas Maßgebenderes. Sie können den Kernel fragen, welche Prozesse welche Ports geöffnet haben, indem Sie netstat verwenden Dienstprogramm:

[email protected]:~$ sudo netstat -tlnp
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:53    0.0.0.0:*         LISTEN   1004/dnsmasq    
tcp        0      0 0.0.0.0:22      0.0.0.0:*         LISTEN   380/sshd        
tcp        0      0 127.0.0.1:631   0.0.0.0:*         LISTEN   822/cupsd       
tcp6       0      0 :::22           :::*              LISTEN   380/sshd        
tcp6       0      0 ::1:631         :::*              LISTEN   822/cupsd       

Die Optionen, die ich gegeben habe, sind:

  • -t Nur TCP
  • -l Nur Listening-Ports
  • -n Suchen Sie nicht nach Dienst- und Hostnamen, sondern zeigen Sie nur Nummern an
  • -p Prozessinformationen anzeigen (erfordert Root-Rechte)

In diesem Fall können wir diesen sshd sehen auf irgendeiner Schnittstelle lauscht (0.0.0.0 ) Port 22 und cupsd hört auf loopback (127.0.0.1 ) Port 631. Ihre Ausgabe zeigt möglicherweise, dass telnetd hat die lokale Adresse 192.168.1.1:23 , was bedeutet, dass er nicht auf Verbindungen auf dem Loopback-Adapter antwortet (z. B. können Sie nicht telnet 127.0.0.1 ).

Es gibt andere Tools, die ähnliche Informationen anzeigen (z. B. lsof oder /proc ), aber netstat ist am weitesten verbreitet. Es funktioniert sogar unter Windows (netstat -anb ). BSD netstat ist ein wenig anders:Sie müssen stattdessen sockstat(1) verwenden, um die Prozessinformationen zu erhalten.

Sobald Sie die Prozess-ID und den Programmnamen haben, können Sie den Prozess finden und beenden, wenn Sie den Port schließen möchten. Für eine feinere Kontrolle können Sie eine Firewall (iptables unter Linux) verwenden, um den Zugriff auf nur bestimmte Adressen zu beschränken. Möglicherweise müssen Sie einen Dienststart deaktivieren. Wenn die PID unter Linux „-“ ist, handelt es sich wahrscheinlich um einen Kernelprozess (dies ist beispielsweise bei NFS üblich), also viel Glück beim Herausfinden, was es ist.

Hinweis:Ich habe „autoritativ“ gesagt, weil Sie nicht durch Netzwerkbedingungen und Firewalls behindert werden. Wenn Sie Ihrem Computer vertrauen, ist das großartig. Wenn Sie jedoch vermuten, dass Sie gehackt wurden, können Sie den Tools auf Ihrem Computer möglicherweise nicht vertrauen. Das Ersetzen von Standarddienstprogrammen (und manchmal sogar Systemaufrufen) durch solche, die bestimmte Prozesse oder Ports verbergen (alias Rootkits), ist eine gängige Praxis unter Angreifern. An diesem Punkt ist es am besten, eine forensische Kopie Ihrer Festplatte zu erstellen und aus dem Backup wiederherzustellen. Verwenden Sie dann die Kopie, um festzustellen, wie sie hineingekommen sind, und schließen Sie sie ab.

Verwandte:Wie programmiere ich einen AVR Raven mit Linux oder einem Mac?
Linux
  1. So verwenden Sie BusyBox unter Linux

  2. So installieren Sie Python unter Linux

  3. Wie ich Cron unter Linux verwende

  4. So installieren Sie Java unter Linux

  5. So partitionieren Sie eine Festplatte unter Linux

So installieren Sie FFmpeg unter Linux

So prüfen (scannen) Sie offene Ports in Linux

So führen Sie einen Port-Scan unter Linux durch

So überprüfen Sie offene Ports in Linux

So finden und schließen Sie offene Ports in Linux

Wie überprüfe ich offene Ports in Linux?