Fedora 25 và vô hiệu hóa bất cứ điều gì đang nghe trên cổng 111


9

Tôi đã có một máy trạm độc lập Fedora 25 x86_64. Một cái gì đó đang lắng nghe trên cổng 111 (được xác định bằng quét 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

Tôi đã vô hiệu hóa thiết bị Sun trên cổng bằng các lệnh sau:

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

Sau khi khởi động lại, cổng vẫn mở.

Nó xuất hiện một cái gì đó ngoài Sun gear muốn nghe trên cổng 111. Hoặc có thể systemdkhông tôn trọng mong muốn của tôi để vô hiệu hóa dịch vụ không sử dụng. Hoặc có thể một cái gì đó khác ...

Làm cách nào để xác định những gì đang cố gắng lắng nghe trên cổng và làm cách nào để tắt nó?


Từ phía dưới:

$ 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

Câu trả lời:


8

Khi bạn chạy sudo systemctl disable rpcbindtrên Fedora 25tôi nghĩ có một cảnh báo:

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

Vì vậy, bạn có thể thử sau:

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

1
Tôi đã không thấy tin nhắn đó khi tôi đang kiểm tra nó. Tôi nghĩ vấn đề là rpcbind.service không được kích hoạt hoặc bắt đầu ở nơi đầu tiên (theo mặc định và trừ khi nó được kích hoạt)? Vì vậy, nó thấy dịch vụ đã bị vô hiệu hóa và chấm dứt trước khi tiếp cận tin nhắn. Có lẽ nên được cải thiện.
nguồn

Sửa chữa: Tôi không thấy tin nhắn đó vì tôi chỉ chạy disable. Thông báo chỉ xuất hiện trên stop(và nó sẽ xuất hiện nếu dịch vụ đã dừng). Tôi vẫn có thể đồng cảm nhưng tôi không chắc cách tốt nhất để cải thiện trải nghiệm này là gì.
nguồn

8

Đó là kích hoạt ổ cắm :). Và bạn đã đúng khi nghi ngờ.

Bạn cần phải vô hiệu hóa rpcbind.socket. Vô hiệu hóa rpcbind.service- đó là những gì systemctl disable rpcbindgiả định - không có hiệu lực.

Ngoài ra, disableở đây sẽ chỉ ảnh hưởng đến những gì xảy ra tại thời điểm khởi động. Vì vậy, nếu bạn muốn thấy một sự thay đổi ngay lập tức, bạn cũng muốn chạy systemctl stop rpcbind.socket.

EDIT: Câu hỏi này trông rất giống tôi. Jeff Schaller chỉ ra rằng bạn có thể sử dụng lệnh systemctl list-socketsđể xem các cổng và dịch vụ systemdđang thực hiện kích hoạt ổ cắm.


Tôi quay lại và nhìn vào Fedora-Workstation-Live-x86_64-25-1.3.iso.

Trạng thái của rpcbind.service hiển thị indirect; vendor preset; disabled. (Ngoài ra Active: inactive (dead)). Vì vậy, rõ ràng việc vô hiệu hóa (hoặc dừng lại) nó sẽ không thay đổi bất cứ điều gì.

Tôi đoán indirectđây là một gợi ý để tìm kiếm các đơn vị khác kích hoạt đơn vị này (bao gồm nhưng không giới hạn ở các đơn vị ổ cắm). Khi đơn vị ổ cắm cũng dừng lại, nó sẽ thay đổi từ indirectthành disabled.

Phần lạ là đơn vị ổ cắm hiển thị như enabled; vendor preset: disabled. Điều này có nghĩa là một cái gì đó đã kích hoạt rpcbind.socket trong hình ảnh Fedora 25, nhưng nó không được kích hoạt bởi /lib/systemd/system-preset/80-workstation.presethoặc 90-default.preset. Điều này dường như đi ngược lại chính sách (hiện tại) tại https://fedoraproject.org/wiki/Packaging:DefaultService được liên kết đến từ 90-default.preset -

Nếu dịch vụ phải được bật theo mặc định, nó phải được thêm vào một trong các tệp cài đặt trước phân phối.

Điều này đã được giải quyết tại một số điểm. rpcbind.socketkhông còn được kích hoạt trong Fedora-Workstation-Live-x86_64-28-1.1.iso.

(Điều này không có nghĩa là rpcbind / port 111 có thể truy cập tự động từ mạng trên các hệ thống được cài đặt từ đĩa Fedora 25. Cài đặt cũng bao gồm một tường lửa không cho phép cổng 111)


Cảm ơn @sourcejedi. Vô hiệu hóa sunrpcrpcbindkhông ngăn cản người nghe.

@jww Bạn cần tắt rpcbind.socket. Vô hiệu hóa rpcbind.service không làm gì cả.
nguồn

Cảm ơn @sourcejedi. Tôi phải đi làm vì vậy tôi không có thời gian để tìm hiểu sâu hơn về vấn đề này ngay bây giờ. Bạn có upvote của tôi. Tại sao mọi người nghĩ rằng đó là một ý tưởng tốt để phá vỡ các quy trình đơn giản đã tồn tại trong nhiều năm và luôn "chỉ hoạt động" ... xkcd.com/927

2
Hoặc xkcd.com/1172
gsc

1
@jww Kích hoạt ổ cắm là một trong những tính năng hệ thống ít phổ biến nhất của tôi; nó thực sự có rất nhiều ý nghĩa (Điều không hợp lý là chúng được phân loại riêng cho các dịch vụ thông thường)
user253751

4

Cổng 111 được liên kết với portmap . Nếu bạn sử dụng NFS cơ hội là bạn sẽ cần nó. Bạn có thể sử dụng systemctl -a | grep -E "rpc|port"để xem tên của dịch vụ tương ứng và vô hiệu hóa nó (lúc đó tôi không có quyền truy cập vào hộp Fedora).


1
Loại ồn ào để xem qua - 13 dòng đầu ra, và đầu ra chịu không thể truy cập trực tiếp vào tty.
nguồn

0

Cổng này được kích hoạt bởi nfsdịch vụ, được cài đặt từ nfs-utilsgói. Nếu bạn không cần nó, bạn nên gỡ cài đặt nó. nfs-utilsiscsi-initiator-utilsthường được cài đặt như là phụ thuộc của libvirtgói. Cả hai gói đều kích hoạt rất nhiều dịch vụ và ổ cắm mà bạn có thể không muốn. Lệnh này có thể được sử dụng để vô hiệu hóa nfsiscsi-initiator-utilsdịch vụ.

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.