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?