Fedora 25并禁用在端口111上监听的任何内容


9

我有一个Fedora 25 x86_64独立工作站。正在侦听端口111(通过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

我使用以下命令禁用了端口上的Sun设备:

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

重新启动后,端口仍处于打开状态。

它似乎不是Sun Gear想要监听端口111的东西。或者也许systemd是不尊重我禁用未使用服务的愿望。也许还有其他...

如何确定试图在端口上侦听的内容以及如何禁用它?


从下面:

$ 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

Answers:


8

当您继续跑步时sudo systemctl disable rpcbindFedora 25我认为会有警告:

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

因此,您可以尝试以下操作:

sudo systemctl stop rpcbind.socket
sudo systemctl disable rpcbind.socket

1
我自己测试时没有看到该消息。我认为问题是rpcbind.service未启用或未首先启动(默认情况下,除非被激活)?因此,它看到该服务已被禁用,并在到达消息之前终止。应该有待改善。
sourcejedi

更正:我没有看到该消息,因为我只跑了disable。该消息仅出现在stop(如果该服务已经停止,则确实会出现)。我仍然可以理解,但是我不确定改善这种体验的最佳方法是什么。
sourcejedi

8

这是套接字激活:)。而且您应该保持可疑。

您需要禁用rpcbind.socket。禁用rpcbind.service-这是systemctl disable rpcbind假定的-没有任何效果。

另外,disable这里只会影响启动时发生的情况。因此,如果您希望立即看到更改,则需要运行systemctl stop rpcbind.socket

编辑:这个问题看起来与我非常相似。Jeff Schaller指出,您可以使用命令systemctl list-sockets,查看systemd正在实现套接字激活的端口和服务。


我回去看看Fedora-Workstation-Live-x86_64-25-1.3.iso

rpcbind.service的状态显示为indirect; vendor preset; disabled。(也Active: inactive (dead))。因此很明显再次禁用(或停止)它不会更改任何内容。

我想indirect这是一个提示,以寻找激活该单元的其他单元(包括但不限于套接字单元)。插座单元也一旦停止,它就会从indirect变为disabled

奇怪的是插座单元显示为enabled; vendor preset: disabled。这表示已在Fedora 25映像中启用了rpcbind.socket,但未通过/lib/systemd/system-preset/80-workstation.preset或启用90-default.preset。这似乎违反了https://fedoraproject.org/wiki/Packaging:DefaultServices上的(当前)策略,该策略链接到90-default.preset-

如果默认情况下应启用该服务,则必须将其添加到分发预设文件之一中。

这在某些时候已经解决。rpcbind.socket已在中不再启用Fedora-Workstation-Live-x86_64-28-1.1.iso

(这并不意味着从Fedora 25磁盘安装的系统上可以从网络上自动访问rpcbind /端口111。安装还包括不允许端口111 的防火墙


谢谢@sourcejedi。禁用sunrpcrpcbind没有停止侦听器。

@jww 您需要禁用rpcbind.socket。禁用rpcbind.service不会执行任何操作。
sourcejedi

谢谢@sourcejedi。我必须开始工作,所以我现在没有时间深入研究这一点。你得到我的支持。人们为什么认为打破已经存在多年并且始终“有效”的简单流程是一个好主意... xkcd.com/927


1
@jww套接字激活是我最不喜欢的系统功能之一;这实际上很有意义。(没有意义的是将它们分别归类到正常服务中)
user253751,2013年

4

端口111链接到portmap。如果您使用NFS,您将需要它。您可以systemctl -a | grep -E "rpc|port"用来查看相应服务的名称并将其禁用(我当时无法访问Fedora框)。


1
嘈杂的浏览-13行输出,输出遭受无法直接访问tty的困扰。
sourcejedi

0

此端口由nfsnfs-utils包装中安装的服务激活。如果您不需要它,则最好将其卸载。nfs-utils并且iscsi-initiator-utils通常作为libvirt软件包的依赖项安装。这两个软件包都可以激活您可能不需要的大量服务和套接字。可以使用此命令来禁用nfsiscsi-initiator-utils服务。

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.