quinta-feira, janeiro 31, 2008

Controlar as portas abertas no sistema

Para controlar as ligações que o computador estabelece e/ou saber as portas que estão a escutar por ligações num sistema Linux:

sudo netstat -tulp

Com este comando obtemos uma listagem das ligações. Este comando já é conhecido pelos utilizadores de windows (não sei se os argumentos serão os mesmos).

Existe outro comando mais complexo mas bastante poderoso na informação que oferece:

sudo lsof -i -n | egrep 'COMMAND|LISTEN|UDP'

Com este conjunto de comandos a informação é mais detalhada e melhor organizada. O comando principal é o lsof. O egrep apenas serve de filtro para o output conter apenas a informação que nos interessa. Este é o meu favorito juntamente com este:

sudo nmap -vO localhost

Este comando é nada mais nada menos que um port scanning à própria máquina. Provavelmente uma das melhores maneiras de saber que portas a máquina tem abertas. O parâmetro O é para tentar adivinhar o sistema operativo que está a correr na máquina, o que é sempre interessante. Além de localhost podem fornecer como argumento o IP da rede interna, se estiverem numa, ou também fornecer o IP externo. De notar que se puserem localhost  ou endereço interno poderão ver portas que externamente não se encontram abertas.

Nota: como já devem ter reparado pelo sudo, todos estes comandos para funcionarem na totalidade necessitam de privilégios root na máquina onde são executados.