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

10 networking fedora systemd

我有一个 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
Run Code Online (Sandbox Code Playgroud)

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

$ sudo systemctl disable rpcbind
$ sudo systemctl disable sunrpc
Failed to disable unit: No such file or directory
Run Code Online (Sandbox Code Playgroud)

重启后端口仍然打开。

看起来 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
Run Code Online (Sandbox Code Playgroud)

tal*_*zin 11

当你继续运行时sudo systemctl disable rpcbindFedora 25我认为有一个警告:

Warning: Stopping rpcbind.service, but it can still be activated by:
rpcbind.socket
Run Code Online (Sandbox Code Playgroud)

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

sudo systemctl stop rpcbind.socket
sudo systemctl disable rpcbind.socket
Run Code Online (Sandbox Code Playgroud)


sou*_*edi 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的防火墙

  • 或 [xkcd.com/1172](https://xkcd.com/1172/) (2认同)

sch*_*iba 7

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