Mám otázku ohledně uzavírání přístavu, myslím, že mám nějaké divné věci.
Když použiji spustit
nmap --top-ports 10 192.168.1.1
ukazuje, že 23/TCP port je otevřený.
Ale když popravím
nmap --top-ports 10 localhost
ukazuje, že port 23/tcp je uzavřen.
Která z nich je pravdivá? Chci zavřít tento port na celém svém systému, jak to mohu udělat?
Přijatá odpověď:
Nmap je skvělý skener portů, ale někdy chcete něco autoritativnějšího. Můžete se zeptat jádra, jaké procesy mají které porty otevřené pomocí netstat
nástroj:
[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
Možnosti, které jsem dal, jsou:
-t
Pouze TCP-l
Pouze naslouchací porty-n
Nehledejte názvy služeb a hostitelů, pouze zobrazte čísla-p
Zobrazit informace o procesu (vyžaduje oprávnění root)
V tomto případě vidíme, že sshd
naslouchá na libovolném rozhraní (0.0.0.0
) port 22 a cupsd
poslouchá ve smyčce (127.0.0.1
) port 631. Váš výstup může ukazovat, že telnetd
má místní adresu 192.168.1.1:23
, což znamená, že nebude odpovídat na připojení na adaptéru zpětné smyčky (např. nemůžete telnet 127.0.0.1
).
Existují další nástroje, které zobrazí podobné informace (např. lsof
nebo /proc
), ale nejdostupnější je netstat. Funguje dokonce i ve Windows (netstat -anb
). BSD netstat je trochu jiný:místo toho budete muset použít sockstat(1), abyste získali informace o procesu.
Jakmile budete mít ID procesu a název programu, můžete se pustit do hledání procesu a jeho ukončení, pokud chcete zavřít port. Pro jemnější kontrolu můžete použít firewall (iptables na Linuxu) k omezení přístupu pouze na určité adresy. Možná budete muset zakázat spouštění služby. Pokud je PID na Linuxu „-“, jde pravděpodobně o proces jádra (to je běžné například u NFS), takže hodně štěstí, abyste zjistili, co to je.
Poznámka:Řekl jsem „autoritativní“, protože vám nebrání podmínky sítě a brány firewall. Pokud svému počítači důvěřujete, je to skvělé. Pokud však máte podezření, že jste byli napadeni, možná nebudete moci důvěřovat nástrojům ve svém počítači. Nahrazení standardních utilit (a někdy i systémových volání) těmi, které skrývají určité procesy nebo porty (také známé jako rootkity), je mezi útočníky standardní praxí. V tuto chvíli je nejlepší udělat si forenzní kopii disku a obnovit ze zálohy; pak pomocí kopie určete způsob, jakým se dostali dovnitř, a zavřete ji.
Související:Jak naprogramovat AVR Raven s Linuxem nebo Macem?