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

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

我有一个 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

我使用以下命令禁用了端口上的太阳齿轮:

$ 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

答案1

当你继续运行时,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

答案2

这是套接字激活:)。你的怀疑是对的。

您需要禁用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)

答案3

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

答案4

nfs此端口由从包中安装的服务激活nfs-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

相关内容