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のギア以外がポート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
それはソケットの活性化です:)。そして、あなたは疑わしいことは正しかった。
_rpcbind.socket
_を無効にする必要があります。 _rpcbind.service
_を無効にしても、これは_systemctl disable rpcbind
_が想定していることですが、効果はありません。
また、ここでのdisable
は、起動時の動作にのみ影響します。したがって、すぐに変更を確認したい場合は、また_systemctl stop rpcbind.socket
_を実行する必要があります。
編集: この質問 は私に非常に似ています。 Jeff Schallerは、_systemd
がソケットのアクティブ化を実装しているポートとサービスを確認するために、コマンド_systemctl list-sockets
_を使用できることを指摘しています。
私は戻って_Fedora-Workstation-Live-x86_64-25-1.3.iso
_を見ました。
Rpcbind.serviceのステータスは_indirect; vendor preset; disabled
_を示します。 (また、Active: inactive (dead)
)。したがって、無効化(または停止)しても、何も変更されないことは明らかです。
ここでindirect
は、これをアクティブにする他のユニット(ソケットユニットを含むがこれに限定されない)を探すためのヒントだと思います。ソケットユニットも停止すると、indirect
からdisabled
に変わります。
奇妙な部分は、socketユニットが_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からリンクされています-
サービスをデフォルトで有効にする必要がある場合は、配布プリセットファイルの1つに追加する必要があります。
これはある時点で解決されました。 _rpcbind.socket
_で_Fedora-Workstation-Live-x86_64-28-1.1.iso
_が無効になりました。
(これは、Fedora 25ディスクからインストールされたシステムのネットワークからrpcbind /ポート111に自動的にアクセスできることを意味しません。インストールには、ポート111を許可しない firewall も含まれます)
このポートは、nfs-utils
パッケージからインストールされたnfs
サービスによってアクティブ化されます。必要ない場合は、アンインストールすることをお勧めします。 nfs-utils
およびiscsi-initiator-utils
は通常、libvirt
パッケージの依存関係としてインストールされます。どちらのパッケージも、必要のないサービスやソケットをたくさんアクティブにします。このコマンドは、nfs
およびiscsi-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