Fedora 25 dan menonaktifkan apa pun yang sedang mendengarkan pada port 111

9

Saya punya workstation berdiri sendiri Fedora 25 x86_64. Sesuatu mendengarkan di port 111 (diidentifikasi dengan pemindaian 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

Saya menonaktifkan Sun gear di port dengan perintah berikut:

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

Setelah reboot port masih terbuka.

Tampaknya sesuatu selain Sun gear ingin mendengarkan pada port 111. Atau mungkin systemdtidak menghormati keinginan saya untuk menonaktifkan layanan yang tidak digunakan. Atau mungkin sesuatu yang lain ...

Bagaimana cara menentukan apa yang mencoba mendengarkan pada port, dan bagaimana cara menonaktifkannya?


Dari bawah:

$ 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

sumber

Jawaban:

8

Ketika Anda menjalankan sudo systemctl disable rpcbindpada Fedora 25saya pikir ada peringatan:

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

Jadi, Anda dapat mencoba yang berikut:

sudo systemctl stop rpcbind.socket
sudo systemctl disable rpcbind.socket
taliezin
sumber
1
Saya tidak melihat pesan itu ketika saya mengujinya sendiri. Saya pikir masalahnya adalah rpcbind.service tidak diaktifkan atau dimulai sejak awal (secara default, dan kecuali jika diaktifkan)? Jadi terlihat layanan sudah dinonaktifkan, dan berakhir sebelum mencapai pesan. Mungkin harus ditingkatkan.
sourcejedi
Koreksi: Saya tidak melihat pesan itu karena saya hanya berlari disable. Pesan hanya muncul pada stop(dan itu muncul jika layanan sudah dihentikan). Saya masih bisa berempati tetapi saya tidak yakin bagaimana cara terbaik untuk meningkatkan pengalaman ini.
sourcejedi
8

Ini adalah aktivasi soket :). Dan Anda benar untuk curiga.

Anda harus menonaktifkan rpcbind.socket. Menonaktifkan rpcbind.service- yang systemctl disable rpcbinddiasumsikan - tidak berpengaruh.

Selain itu, di disablesini hanya akan mempengaruhi apa yang terjadi pada saat boot. Jadi, jika Anda ingin melihat perubahan langsung, Anda juga ingin menjalankan systemctl stop rpcbind.socket.

EDIT: Pertanyaan ini sangat mirip dengan saya. Jeff Schaller menunjukkan Anda dapat menggunakan perintah systemctl list-sockets, untuk melihat port dan layanan yang systemdmenerapkan aktivasi socket untuk.


Saya kembali dan melihat Fedora-Workstation-Live-x86_64-25-1.3.iso.

Status rpcbind.service menunjukkan indirect; vendor preset; disabled. (Juga Active: inactive (dead)). Jadi jelas menonaktifkan (atau menghentikan) itu lagi tidak akan mengubah apa pun.

Saya kira di indirectsini adalah petunjuk untuk mencari unit lain yang mengaktifkan yang satu ini (termasuk tetapi tidak terbatas pada unit soket). Setelah unit soket berhenti juga, itu berubah dari indirectmenjadi disabled.

Bagian yang aneh adalah bahwa unit soket menunjukkan sebagai enabled; vendor preset: disabled. Ini berarti sesuatu telah mengaktifkan rpcbind.socket di gambar Fedora 25, tetapi itu tidak diaktifkan oleh /lib/systemd/system-preset/80-workstation.presetatau 90-default.preset. Ini tampaknya bertentangan dengan kebijakan (saat ini) di https://fedoraproject.org/wiki/Packaging:DefaultServices yang ditautkan dari 90-default.preset -

Jika layanan harus diaktifkan secara default, itu harus ditambahkan ke salah satu file preset distribusi.

Ini telah diselesaikan di beberapa titik. rpcbind.sockettidak lagi diaktifkan di Fedora-Workstation-Live-x86_64-28-1.1.iso.

(Ini tidak berarti bahwa rpcbind / port 111 dapat diakses secara otomatis dari jaringan pada sistem yang diinstal dari disk Fedora 25. Instalasi juga termasuk firewall yang tidak memungkinkan port 111)

sourcejedi
sumber
Terima kasih @sourcejedi. Menonaktifkan sunrpcdan rpcbindtidak menghentikan pendengar.
@jww Anda harus menonaktifkan rpcbind.socket. Menonaktifkan rpcbind.service tidak melakukan apa-apa.
sourcejedi
Terima kasih @sourcejedi. Saya harus mulai bekerja jadi saya tidak punya waktu untuk menggali lebih dalam ini sekarang. Anda mendapat upvote saya. Mengapa orang berpikir itu ide yang baik untuk memecah proses sederhana yang telah ada selama bertahun-tahun dan selalu "hanya bekerja" ... xkcd.com/927
2
Atau xkcd.com/1172
gsc
1
@jww Aktivasi soket adalah salah satu fitur systemd paling tidak favorit saya; sebenarnya sangat masuk akal. (Yang tidak masuk akal bagi mereka untuk diklasifikasikan secara terpisah ke layanan normal)
user253751
4

Port 111 ditautkan ke portmap . Jika Anda menggunakan NFS kemungkinan Anda akan membutuhkannya. Anda dapat menggunakan systemctl -a | grep -E "rpc|port"untuk melihat nama layanan yang sesuai dan menonaktifkannya (saya tidak memiliki akses ke kotak Fedora pada saat itu).

schaiba
sumber
1
Agak berisik untuk melihat - 13 baris output, dan output menderita karena tidak dapat mengakses tty secara langsung.
sourcejedi
0

Port ini diaktifkan oleh nfslayanan, diinstal dari nfs-utilspaket. Jika Anda tidak membutuhkannya, Anda sebaiknya menghapusnya. nfs-utilsdan iscsi-initiator-utilsbiasanya diinstal sebagai dependensi libvirtpaket. Kedua paket mengaktifkan banyak layanan dan soket yang mungkin tidak Anda inginkan. Perintah ini dapat digunakan untuk menonaktifkan nfsdan iscsi-initiator-utilslayanan.

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
pengguna3766846
sumber