Fedora 25 และปิดการใช้งานสิ่งที่กำลังฟังบนพอร์ต 111


9

ฉันมี 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

คำตอบ:


8

เมื่อคุณวิ่งsudo systemctl disable rpcbindไปFedora 25ฉันคิดว่ามีคำเตือน:

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

ดังนั้นคุณสามารถลองต่อไปนี้:

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

1
ฉันไม่เห็นข้อความนั้นเมื่อฉันทำการทดสอบด้วยตัวเอง ฉันคิดว่าปัญหาคือ rpcbind.service ไม่ได้เปิดใช้งานหรือเริ่มต้นตั้งแต่แรก (โดยค่าเริ่มต้นและหากไม่ได้เปิดใช้งาน) ดังนั้นจึงเห็นว่าบริการถูกปิดใช้งานแล้วและยุติก่อนที่จะถึงข้อความ ควรปรับปรุงให้ดีขึ้น
sourcejedi

การแก้ไข: disableผมไม่ได้เห็นข้อความว่าเพราะฉันวิ่งเท่านั้น ข้อความจะปรากฏขึ้นเท่านั้นstop(และจะปรากฏขึ้นหากบริการหยุดทำงานแล้ว) ฉันยังสามารถเอาใจใส่ แต่ฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการปรับปรุงประสบการณ์นี้จะเป็นอย่างไร
sourcejedi

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นี่เป็นคำแนะนำให้ระวังยูนิตอื่นที่เปิดใช้งานอันนี้ (รวมถึง แต่ไม่ จำกัด เฉพาะซ็อกเก็ตยูนิต) เมื่อหน่วยซ็อกเก็ตจะหยุดการทำงานได้เป็นอย่างดีก็เปลี่ยนจากการindirectdisabled

ส่วนที่แปลกคือว่าซ็อกเก็ตenabled; vendor preset: disabledแสดงให้เห็นว่าหน่วยเป็น บางสิ่งบางอย่างนี้หมายถึงได้เปิดใช้งาน rpcbind.socket ในภาพ Fedora 25 แต่มันก็ไม่ได้เปิดใช้งานโดยหรือ/lib/systemd/system-preset/80-workstation.preset 90-default.presetสิ่งนี้ดูเหมือนจะขัดแย้งกับนโยบาย (ปัจจุบัน) ที่https://fedoraproject.org/wiki/Packaging:DefaultServicesซึ่งเชื่อมโยงกับจาก 90-default.preset -

หากควรเปิดใช้งานบริการตามค่าเริ่มต้นบริการนั้นจะต้องถูกเพิ่มลงในไฟล์ที่ตั้งค่าล่วงหน้าอย่างใดอย่างหนึ่ง

เรื่องนี้ได้รับการแก้ไขในบางจุด ไม่ได้เปิดใช้งานในrpcbind.socketFedora-Workstation-Live-x86_64-28-1.1.iso

(นี่ไม่ได้หมายความว่า rpcbind / พอร์ต 111 สามารถเข้าถึงได้โดยอัตโนมัติจากเครือข่ายบนระบบที่ติดตั้งจากดิสก์ Fedora 25 การติดตั้งยังมีไฟร์วอลล์ที่ไม่อนุญาตพอร์ต 111)


ขอบคุณ @sourcejedi ปิดการใช้งานsunrpcและrpcbindไม่หยุดฟัง

@jww คุณต้องปิดการใช้งาน rpcbind.socket การปิดใช้งาน rpcbind.service ไม่ทำอะไรเลย
sourcejedi

ขอบคุณ @sourcejedi ฉันต้องทำงานดังนั้นฉันไม่มีเวลาขุดลึกลงไปในตอนนี้ คุณได้ upvote ของฉัน ทำไมคนคิดว่ามันเป็นความคิดที่ดีที่จะทำลายกระบวนการง่าย ๆ ที่มีมานานหลายปีและ "เพิ่งทำงาน" ... xkcd.com/927

2
หรือxkcd.com/1172
gsc

1
@jww การเปิดใช้งานซ็อกเก็ตเป็นหนึ่งในคุณสมบัติ systemd ที่ไม่พึงประสงค์น้อยที่สุดของฉัน มันทำให้รู้สึกมาก (สิ่งที่ไม่สมเหตุสมผลสำหรับพวกเขาจะถูกจัดประเภทแยกต่างหากเพื่อบริการปกติ)
253751

4

พอร์ต 111 เชื่อมโยงกับการportmap หากคุณใช้โอกาสของ NFS คุณจะต้องใช้มัน คุณสามารถใช้systemctl -a | grep -E "rpc|port"เพื่อดูชื่อของบริการที่เกี่ยวข้องและปิดการใช้งาน (ฉันไม่สามารถเข้าถึงกล่อง Fedora ได้ในเวลานั้น)


1
ชนิดของเสียงรบกวนที่ต้องมองผ่าน - 13 บรรทัดของเอาต์พุตและเอาต์พุตจะไม่สามารถเข้าถึง tty ได้โดยตรง
sourcejedi

0

บริการนี้เปิดใช้งานโดยnfsบริการที่ติดตั้งจากnfs-utilsแพ็คเกจ หากคุณไม่ต้องการมันคุณจะต้องถอนการติดตั้ง 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.