Porta 111 aberta no servidor? É o rpcbind. Veja quando ele é necessário, como desativá-lo de vez com o systemd e como conferir de fora que a porta fechou.
A porta 111 (TCP e UDP) pertence ao rpcbind, o antigo portmapper. Ele funciona como uma lista telefônica para serviços RPC, e quase sempre está lá por causa do NFS versão 3. Em servidor exposto na internet, deixá-lo aberto é má ideia: revela quais serviços RPC existem e pode ser usado em ataques de amplificação (DDoS) por UDP. Por isso varreduras de segurança e notificações de abuso costumam apontar essa porta.
Antes de começar
- Acesso SSH como
root(veja como acessar o SSH). - Descubra se você usa NFS. Se o servidor monta compartilhamentos NFS versão 3 (por exemplo, um disco de backup em rede) ou é servidor NFS, não desative o rpcbind: feche a porta no firewall, como mostrado mais abaixo. Para conferir:
Se o primeiro comando não listar nada e o segundo responderfindmnt -t nfs,nfs4 systemctl is-active nfs-serverinactive, o rpcbind pode ser desativado.
1. Veja quem está escutando na porta 111
sudo ss -tulpn | grep ':111 '
Uma resposta típica:
udp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=812,fd=5),("systemd",pid=1,fd=58))
tcp LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=812,fd=4),("systemd",pid=1,fd=56))
Repare no systemd com pid=1. Ele segura a porta pelo rpcbind.socket e liga o rpcbind de novo sempre que alguém se conecta. É por isso que só parar o serviço não resolve: minutos depois a porta está aberta outra vez.
2. Desative o serviço e o socket
sudo systemctl disable --now rpcbind.service rpcbind.socket
O --now para os dois na hora e o disable impede que voltem no próximo boot. Para garantir que nenhum outro pacote ligue o rpcbind de novo, mascare as duas unidades:
sudo systemctl mask rpcbind.service rpcbind.socket
3. Confira
sudo ss -tulpn | grep ':111 '
systemctl status rpcbind.socket
O primeiro comando não deve mostrar nada, e o status deve aparecer como masked ou inactive (dead). Para testar de fora, a partir de outra máquina:
rpcinfo -p 203.0.113.10
Se a porta estiver fechada, o comando falha com erro de conexão em vez de listar os programas RPC. Com o nmap, o teste completo é sudo nmap -sT -sU -p 111 203.0.113.10.
sudo dnf remove rpcbind no AlmaLinux e no Rocky, ou sudo apt purge rpcbind no Ubuntu e no Debian. O gerenciador de pacotes vai propor remover junto o nfs-utils ou o nfs-common; leia a lista antes de confirmar.Precisa do NFS? Feche a porta no firewall
Libere a 111 só para os IPs que usam o NFS e bloqueie o resto. Exemplo para um servidor de backup em 203.0.113.20:
# AlmaLinux e Rocky (firewalld): a porta só abre para o IP liberado
sudo firewall-cmd --permanent --remove-service=rpc-bind
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.20" service name="rpc-bind" accept'
sudo firewall-cmd --reload
# Ubuntu (ufw)
sudo ufw allow from 203.0.113.20 to any port 111
sudo ufw deny 111
No firewalld, o primeiro comando pode avisar que o serviço já não estava liberado; é normal. Em servidores com CSF, a 111 só fica aberta se estiver em TCP_IN ou UDP_IN; para liberar só um IP, use o arquivo /etc/csf/csf.allow. O NFS versão 4 usa só a porta 2049 e não depende do rpcbind para montar, o que facilita o firewall.
Problemas comuns
Parei o rpcbind e a porta 111 voltou sozinha
Faltou desativar o rpcbind.socket. Rode o passo 2 completo, com as duas unidades.
Depois de desativar, a montagem NFS falhou
Montagens NFS versão 3 precisam do rpcbind. Reative com sudo systemctl unmask rpcbind.service rpcbind.socket e sudo systemctl enable --now rpcbind.socket, e proteja a porta pelo firewall. Outra saída é montar com NFS versão 4 (opção vers=4.2 no /etc/fstab), se o servidor NFS suportar.
Failed to disable unit: Unit file rpcbind.socket does not exist
O rpcbind não está instalado nessa máquina. Veja com o ss do passo 1 qual programa está, de fato, na porta 111.