GNU/Linux >> Znalost Linux >  >> Linux

Jak zavřít porty v Linuxu?

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?
Linux
  1. Jak nainstalovat Python na Linux

  2. Jak nainstalovat Javu na Linux

  3. Jak zjistit seznam všech otevřených portů v Linuxu

  1. Jak používat BusyBox na Linuxu

  2. Jak používám cron v Linuxu

  3. Jak zobrazit seznam otevřených portů na serveru Linux/Unix

  1. Jak nainstalovat Linux ve 3 krocích

  2. Jak přesunout soubor v Linuxu

  3. Jak rozdělit disk v Linuxu