
Instalei recentemente duas máquinas Ubuntu Server e gostaria de encontrar as portas abertas na máquina.
Quando executo nmap
na minha máquina (Ubuntu 11.10) observei que ambos os servidores possuem
135/tcp filtered msrpc
4444/tcp filtered krb524
4662/tcp filtered edonkey
5000/tcp filtered upnp
5631/tcp filtered pcanywheredata
Eu nunca abri essas portas. Instalei apenas LAMP e SAMBA. Por que essas portas estão abertas?
A lista completa das portas abertas é:
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
135/tcp filtered msrpc
139/tcp open netbios-ssn
143/tcp open imap
445/tcp open microsoft-ds
993/tcp open imaps
995/tcp open pop3s
4444/tcp filtered krb524
4662/tcp filtered edonkey
5000/tcp filtered upnp
5631/tcp filtered pcanywheredata
A questão é por que essas portas estão abertas: 135/tcp filtered msrpc
, 4444/tcp filtered krb524
, 4662/tcp filtered edonkey
. 5000/tcp filtered upnp
, 5631/tcp filtered pcanywheredata
. Eu nunca abri essas portas. Instalei apenas LAMP e SAMBA.
Essa lista parece segura?
Responder1
Você pode obter uma lista de portas do arquivo chamado /etc/services
cat /etc/services | grep 137 (example)
Exemplo
Quais portas precisam estar abertas para o Samba se comunicar
netbios-ns - 137 # NETBIOS Name Service
netbios-dgm - 138 # NETBIOS Datagram Service
netbios-ssn - 139 # NETBIOS session service
microsoft-ds - 445 # if you are using Active Directory
execute este comando
netstat -anltp | grep "LISTEN"
O servidor web típico que executa FTP, SSH e MySQL terá resultados como:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 21432/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4090/apache2
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7213/sshd
tcp6 0 0 :::21 :::* LISTEN 19023/proftpd
tcp6 0 0 :::22 :::* LISTEN 7234/sshd
Responder2
Sua pergunta é bastante ampla e "seguro" é relativo.
Quando você instala um servidor e abre uma porta, sempre haverá vulnerabilidades potenciais.
Quando você instala um servidor (ssh, samba) e inicia o servidor (eles geralmente iniciam por padrão quando você inicializa), você abre uma porta.
Com cada servidor (ssh, samba, http) existem alterações nas configurações que você pode fazer para aumentar a segurança.
para ssh, isso pode incluir o uso de chaves (e a desativação de senhas), tcpwrapper, firewall, etc.
Ao usar um firewall, existem 3 estratégias amplas
1) Permitir todos e colocar IP de má ação na lista negra. Um exemplo disso seria http. Em geral, você executa http como um servidor público, permite todos os IPs e coloca na lista negra aqueles que enviam spam para seu servidor.
2) Negar tudo e permitir uma lista branca. Um exemplo disso seria ssh.
3) Limite. Às vezes você limita a taxa de uma conexão ou # pings/segundo.
Espero que isso ajude você a começar, você pode querer ver
https://help.ubuntu.com/11.10/serverguide/C/index.html
https://help.ubuntu.com/community/Security
Ou faça uma pergunta específica sobre um servidor específico.
Responder3
"filtrado" não significa necessariamente uma porta aberta no host de destino.
Na verdade, pode não significar absolutamente nada.
Se, por exemplo, houver um firewall entre onde quer que você esteja executando nmap
e o destino, e esse firewall estiver filtrando ativamente a porta 5000, então 5000 aparecerá como "filtrado" na sua lista, sem que o host de destino veja qualquer tráfego para essa porta - portanto, se a porta está aberta ou não no destino torna-se totalmente irrelevante.
Para obter uma lista definitiva de portas abertas em um servidor, tente:
sudo netstat -lnp --tcp --udp
-l : only show listening ports
-n : don't bother looking up DNS hostnames
-p : show which processes have the port open
--tcp : show tcp ports
--udp : show udp ports
Você pode omitir --tcp
, --udp
mas obterá muitas informações irrelevantes sobre soquetes do sistema de arquivos locais que são inacessíveis em uma rede.
sudo
é necessário para -p
funcionar corretamente ou será impresso apenas -
para qualquer processo que não seja de propriedade do usuário.
Responder4
Como netstat
não está mais instalado por padrão, ao contrário do lsof
, pensei em adicionar uma opção que funciona imediatamente:
sudo lsof -nP -iTCP -sTCP:LISTEN