Ho qualche domanda sulla chiusura del porto, penso di avere delle cose strane.
Quando uso esegui
nmap --top-ports 10 192.168.1.1
mostra che la porta 23/TCP è aperta.
Ma quando eseguo
nmap --top-ports 10 localhost
mostra che la porta 23/tcp è chiusa.
Quale di loro è vero? Voglio chiudere questa porta su tutto il mio sistema, come posso farlo?
Risposta accettata:
Nmap è un ottimo port scanner, ma a volte vuoi qualcosa di più autorevole. Puoi chiedere al kernel quali processi hanno e quali porte si aprono usando netstat
utilità:
[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
Le opzioni che ho fornito sono:
-t
Solo TCP-l
Solo porte di ascolto-n
Non cercare nomi di servizi e host, mostra solo numeri-p
Mostra le informazioni sul processo (richiede il privilegio di root)
In questo caso, possiamo vedere che sshd
è in ascolto su qualsiasi interfaccia (0.0.0.0
) porta 22 e cupsd
è in ascolto in loopback (127.0.0.1
) porta 631. Il tuo output potrebbe mostrare che telnetd
ha un indirizzo locale di 192.168.1.1:23
, il che significa che non risponderà alle connessioni sull'adattatore di loopback (ad es. non puoi telnet 127.0.0.1
).
Esistono altri strumenti che mostreranno informazioni simili (ad es. lsof
o /proc
), ma netstat è il più ampiamente disponibile. Funziona anche su Windows (netstat -anb
). BSD netstat è leggermente diverso:dovrai invece usare socksstat(1) per ottenere le informazioni sul processo.
Una volta che hai l'ID del processo e il nome del programma, puoi cercare il processo e ucciderlo se desideri chiudere la porta. Per un controllo più dettagliato, puoi utilizzare un firewall (iptables su Linux) per limitare l'accesso solo a determinati indirizzi. Potrebbe essere necessario disabilitare l'avvio di un servizio. Se il PID è "-" su Linux, è probabilmente un processo del kernel (questo è comune ad esempio con NFS), quindi buona fortuna per scoprire di cosa si tratta.
Nota:ho detto "autorevole" perché non sei ostacolato dalle condizioni della rete e dai firewall. Se ti fidi del tuo computer, è fantastico. Tuttavia, se sospetti di essere stato violato, potresti non essere in grado di fidarti degli strumenti sul tuo computer. Sostituire le utility standard (e talvolta anche le chiamate di sistema) con quelle che nascondono determinati processi o porte (dette anche rootkit) è una pratica standard tra gli aggressori. La soluzione migliore a questo punto è eseguire una copia forense del disco e ripristinarla dal backup; quindi usa la copia per determinare il modo in cui sono entrati e chiudila.
Correlati:come programmare un AVR Raven con Linux o Mac?