Fedora 25 y desactivando lo que sea que esté escuchando en el puerto 111

9

Tengo una estación de trabajo independiente Fedora 25 x86_64. Algo está escuchando en el puerto 111 (identificado con un escaneo nmap):

$ sudo lsof -i :111
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd   1 root   36u  IPv4  15170      0t0  TCP *:sunrpc (LISTEN)
systemd   1 root   37u  IPv4  15171      0t0  UDP *:sunrpc
systemd   1 root   38u  IPv6  15172      0t0  TCP *:sunrpc (LISTEN)
systemd   1 root   39u  IPv6  15173      0t0  UDP *:sunrpc

Deshabilité el equipo Sun en el puerto con los siguientes comandos:

$ sudo systemctl disable rpcbind
$ sudo systemctl disable sunrpc
Failed to disable unit: No such file or directory

Después de reiniciar, el puerto aún está abierto.

Parece que algo más que el equipo Sun quiere escuchar en el puerto 111. O tal vez systemdno está respetando mis deseos de desactivar el servicio no utilizado. O tal vez algo más ...

¿Cómo determino qué está intentando escuchar en el puerto y cómo lo desactivo?


Desde abajo:

$ sudo systemctl -a | grep -E "rpc|port"
  var-lib-nfs-rpc_pipefs.mount          loaded    active   mounted   RPC Pipe File System
  abrtd.service                         loaded    active   running   ABRT Automated Bug Reporting Tool
  auth-rpcgss-module.service            loaded    inactive dead      Kernel Module supporting RPCSEC_GSS
  fedora-import-state.service           loaded    active   exited    Import network configuration from initramfs
  fedora-readonly.service               loaded    active   exited    Configure read-only root support
  rpc-gssd.service                      loaded    inactive dead      RPC security service for NFS client and server
  rpc-statd-notify.service              loaded    inactive dead      Notify NFS peers of a restart
  rpc-statd.service                     loaded    inactive dead      NFS status monitor for NFSv2/3 locking.
● rpc-svcgssd.service                   not-found inactive dead      rpc-svcgssd.service
  rpcbind.service                       loaded    inactive dead      RPC Bind
  rpcbind.socket                        loaded    active   listening RPCbind Server Activation Socket
  rpc_pipefs.target                     loaded    active   active    rpc_pipefs.target
  rpcbind.target                        loaded    active   active    RPC Port Mapper

fuente

Respuestas:

8

Cuando se ejecuta sudo systemctl disable rpcbindel Fedora 25pienso que hay una advertencia:

Warning: Stopping rpcbind.service, but it can still be activated by:
rpcbind.socket

Entonces puedes intentar lo siguiente:

sudo systemctl stop rpcbind.socket
sudo systemctl disable rpcbind.socket
taliezin
fuente
1
No vi ese mensaje cuando lo estaba probando yo mismo. Creo que el problema es que rpcbind.service no está habilitado o iniciado en primer lugar (de forma predeterminada, y a menos que se active). Por lo tanto, ve que el servicio ya está deshabilitado y finaliza antes de llegar al mensaje. Probablemente debería mejorarse.
sourcejedi
Corrección: no vi ese mensaje porque solo corrí disable. El mensaje solo aparece en stop(y aparece si el servicio ya está detenido). Todavía puedo sentir empatía, pero no estoy seguro de cuál sería la mejor manera de mejorar esta experiencia.
sourcejedi
8

Es la activación del socket :). Y tenías razón en sospechar.

Necesitas deshabilitarlo rpcbind.socket. La desactivación rpcbind.service, que es lo que se systemctl disable rpcbindsupone, no tiene ningún efecto.

Además, el disableaquí solo afectará lo que sucede en el momento del arranque. Entonces, si desea ver un cambio inmediato, también desea ejecutar systemctl stop rpcbind.socket.

EDITAR: Esta pregunta me parece muy similar. Jeff Schaller señala que puede usar el comando systemctl list-socketspara ver los puertos y servicios para los que systemdimplementa la activación de socket.


Regresé y eché un vistazo Fedora-Workstation-Live-x86_64-25-1.3.iso.

Se muestra el estado de rpcbind.service indirect; vendor preset; disabled. (También Active: inactive (dead)) Entonces, está claro que deshabilitar (o detener) nuevamente no cambiaría nada.

Supongo que indirectaquí hay una pista para buscar otras unidades que activen esta (incluidas, entre otras, las unidades de socket). Una vez que la unidad de socket también se detiene, cambia de indirecta disabled.

Lo extraño es que la unidad de socket se muestra como enabled; vendor preset: disabled. Esto significa que algo ha habilitado rpcbind.socket en la imagen de Fedora 25, pero no fue habilitado por /lib/systemd/system-preset/80-workstation.preseto 90-default.preset. Esto parece ir en contra de la política (actual) en https://fedoraproject.org/wiki/Packaging:DefaultServices que está vinculado a 90-default.preset -

Si el servicio debe habilitarse de manera predeterminada, debe agregarse a uno de los archivos de preajustes de distribución.

Esto se ha resuelto en algún momento. rpcbind.socketya no está habilitado en Fedora-Workstation-Live-x86_64-28-1.1.iso.

(Esto no significa que rpcbind / port 111 sea automáticamente accesible desde la red en sistemas instalados desde un disco Fedora 25. La instalación también incluye un firewall que no permite el puerto 111)

sourcejedi
fuente
Gracias @sourcejedi. Inhabilita sunrpcy rpcbindno detiene al oyente.
@jww Necesita deshabilitar rpcbind.socket. Deshabilitar rpcbind.service no hace nada.
sourcejedi
Gracias @sourcejedi. Tengo que ponerme a trabajar, así que no tengo tiempo para profundizar más en este momento. Tienes mi voto a favor. ¿Por qué la gente piensa que es una buena idea romper procesos simples que han existido durante años y siempre "simplemente funcionaron" ... xkcd.com/927
2
O xkcd.com/1172
gsc
1
@jww La activación de socket es una de mis características de systemd menos desfavorables; en realidad tiene mucho sentido. (Lo que no tiene sentido es que se clasifiquen por separado a los servicios normales)
user253751
4

El puerto 111 está vinculado al mapa de puertos . Si usa NFS, es probable que lo necesite. Puede usar systemctl -a | grep -E "rpc|port"para ver el nombre del servicio correspondiente y deshabilitarlo (no tengo acceso a un cuadro de Fedora en ese momento).

schaiba
fuente
1
Un poco ruidoso para mirar: 13 líneas de salida, y la salida sufre por no poder acceder al tty directamente.
sourcejedi
0

Este puerto es activado por el nfsservicio, instalado desde el nfs-utilspaquete. Si no lo necesita, será mejor que lo desinstale. nfs-utilsy iscsi-initiator-utilsgeneralmente se instalan como dependencias del libvirtpaquete. Ambos paquetes activan una gran cantidad de servicios y enchufes que quizás no haya deseado. Estos comandos se pueden usar para deshabilitar nfsy iscsi-initiator-utilsservicios.

systemctl disable nfs-client.target
systemctl stop nfs-client.target
systemctl disable rpcbind.socket
systemctl stop rpcbind.socket
systemctl stop rpc_pipefs.target
systemctl stop rpcbind.target
systemctl stop rpcbind.service
systemctl disable rpcbind.service
systemctl stop var-lib-nfs-rpc_pipefs.mount
systemctl stop proc-fs-nfsd.mount 
systemctl disable gssproxy.service
systemctl stop gssproxy.service
modprobe -r sunrpc
systemctl disable iscsid.socket
systemctl stop iscsid.socket
systemctl disable iscsiuio.socket
systemctl stop iscsiuio.socket
systemctl disable iscsid.service
systemctl stop iscsid.service
systemctl disable iscsiuio.service
systemctl stop iscsiuio.service
usuario3766846
fuente