NFS ใช้พอร์ตใด

What Ports Does Nfs Use



Network File System หรือ NFS เป็นโปรโตคอลระบบไฟล์ที่อนุญาตให้ผู้ใช้แชร์ไดเร็กทอรีและไฟล์ผ่านเครือข่าย โปรโตคอล NFS นั้นคล้ายกับโปรโตคอล Samba อย่างไรก็ตาม ต่างจาก Samba ตรงที่ NFS มีกลไกการเข้ารหัสและการพิสูจน์ตัวตน นอกจากนี้ การเข้าถึงเซิร์ฟเวอร์ NFS ยังจำกัดเฉพาะชื่อโฮสต์และที่อยู่ IP ที่ระบุ นั่นทำให้ NFS เป็นตัวเลือกที่ดีกว่ามากสำหรับการแชร์ระยะไกลเมื่อเทียบกับ Samba

ในบทช่วยสอนนี้ เราจะเน้นที่แนวคิดเครือข่ายพื้นฐานของ NFS โดยเฉพาะพอร์ตที่ใช้โดยบริการ NFS เมื่อเราเข้าใจพอร์ตและบริการเฉพาะของการแชร์ NFS แล้ว เราจะสามารถใช้พอร์ตเหล่านี้เพื่อกำหนดค่ามาตรการรักษาความปลอดภัย เช่น ไฟร์วอลล์และการแก้ไขปัญหา







NFS ทำงานอย่างไร

มี NFS สามเวอร์ชันที่รองรับในขณะที่เขียนบทความนี้ NFS v2 เป็นเวอร์ชันที่เก่าที่สุดและได้รับการสนับสนุนอย่างกว้างขวางที่สุด



NFS v3 ใหม่กว่า NFS V2 และมีคุณสมบัติเพิ่มเติม เช่น การจัดการขนาดตัวแปร การรายงานข้อผิดพลาดที่ได้รับการปรับปรุง เป็นต้น อย่างไรก็ตาม NFS v3 เข้ากันไม่ได้กับไคลเอ็นต์ NFS v2



เวอร์ชันล่าสุดของ NFS v4 มีคุณสมบัติใหม่และที่ได้รับการปรับปรุง ซึ่งรวมถึงการดำเนินการ stateful, ความเข้ากันได้ย้อนหลังกับ NFS v2 และ NFS v3, ข้อกำหนด portmapper ที่ถูกเอาออก, การทำงานร่วมกันข้ามแพลตฟอร์ม, การจัดการเนมสเปซที่ดีขึ้น, การรักษาความปลอดภัยในตัวด้วย ACLs และ Kerberos





ต่อไปนี้เป็นการเปรียบเทียบระหว่าง NFS v3 และ NFS v 4

ลักษณะเฉพาะ NFS v3 NFS v4
โปรโตคอลการขนส่ง TCP และ UDP UDP เท่านั้น
การจัดการสิทธิ์ Unix ที่ใช้ Windows
วิธีการรับรองความถูกต้อง Auth_Sys – อ่อนแอกว่า Kerberos (แข็งแกร่ง)
บุคลิกภาพ ไร้สัญชาติ Stateful
ความหมาย Unix Unix และ Windows

ตารางด้านบนแสดงคุณลักษณะบางอย่างของโปรโตคอล NFS 4 กับโปรโตคอล NFS 3 หากคุณต้องการเรียนรู้เพิ่มเติม โปรดพิจารณาเอกสารอย่างเป็นทางการที่ให้ไว้ด้านล่าง:



https://datatracker.ietf.org/doc/html/rfc3530

NFS v4 ไม่ได้ใช้ portmapper และบริการที่จำเป็นโดย NFS V2 และ V3 นั้นไม่จำเป็น ดังนั้น ใน NFS v4 จำเป็นต้องใช้พอร์ต 2049 เท่านั้น

อย่างไรก็ตาม NFS v2 และ v2 ต้องการพอร์ตและบริการเพิ่มเติม ซึ่งเราจะพูดถึงในบทช่วยสอนนี้

บริการที่จำเป็น (NFS v2 และ V3)

ดังที่กล่าวไว้ NFS v2 & v3 ใช้บริการพอร์ตแมป บริการ portmap ใน Linux จัดการ Remote Procedure Calls ซึ่ง NFS (v2 และ v3) ใช้เพื่อเข้ารหัสและถอดรหัสคำขอระหว่างไคลเอ็นต์และเซิร์ฟเวอร์

ในการใช้งานการแบ่งปัน NFS จำเป็นต้องมีบริการต่อไปนี้ โปรดทราบว่านี่เป็นเพียงสำหรับ NFS v2 และ v3 เท่านั้น

  • Portmapper
  • เมานต์
  • Nfsd
  • Lockd
  • สถิติ

#: Portmapper

บริการ Portmapper จำเป็นต้องเรียกใช้ NFS ทั้งบนไคลเอนต์และฝั่งเซิร์ฟเวอร์ มันทำงานบนพอร์ต 111 สำหรับทั้งโปรโตคอล TCP และ UDP

หากคุณกำลังใช้ไฟร์วอลล์ ตรวจสอบให้แน่ใจว่าพอร์ตนี้ได้รับอนุญาตสำหรับแพ็กเก็ตขาเข้าและขาออก

#: Mountd

บริการอื่นที่จำเป็นในการรัน NFS คือ mountd daemon บริการนี้ทำงานบนเซิร์ฟเวอร์ NFS และใช้เพื่อจัดการคำขอเมาต์จากไคลเอ็นต์ NFS ส่วนใหญ่จัดการโดยบริการ nfsd และไม่ต้องการการกำหนดค่าผู้ใช้

อย่างไรก็ตาม คุณสามารถแก้ไขการกำหนดค่าเพื่อตั้งค่าพอร์ตคงที่ในไฟล์ /etc/sysconfig/nfs ค้นหา / และตั้งค่า:

MOUTD_PORT=[ท่า]

#: NFSD

นี่คือ NFS daemon ที่ทำงานบนเซิร์ฟเวอร์ NFS นี่เป็นบริการสำคัญที่ทำงานร่วมกับเคอร์เนลของ Linux เพื่อให้ฟังก์ชันต่างๆ เช่น เธรดของเซิร์ฟเวอร์สำหรับไคลเอ็นต์ทั้งหมดที่เชื่อมต่อกับเซิร์ฟเวอร์

โดยดีฟอลต์ NFS daemon ได้รับการกำหนดค่าให้รันพอร์ตสแตติก 2049 พอร์ตนี้เป็นจริงบนโปรโตคอล TCP และ UDP

#: ล็อค & Statd

NFS Lock Manager daemon (lockd) และ Status Manager daemon (statd) เป็นบริการอื่นๆ ที่จำเป็นสำหรับ r เพื่อรัน NFS daemons เหล่านี้ทำงานบนฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์

lockd daemon อนุญาตให้ไคลเอ็นต์ NFS ล็อกไฟล์บนเซิร์ฟเวอร์ NFS

ในทางกลับกัน statd daemon มีหน้าที่ในการแจ้งผู้ใช้เมื่อเซิร์ฟเวอร์ NFS ถูกรีสตาร์ทโดยไม่ต้องปิดระบบอย่างนุ่มนวล ใช้โปรโตคอล RPC ของ Network Status Monitor

แม้ว่าบริการทั้งสองนี้จะเริ่มต้นโดยอัตโนมัติโดยบริการ nfslock คุณสามารถกำหนดค่าให้เรียกใช้พอร์ตแบบสแตติก ซึ่งจะมีประโยชน์ในการกำหนดค่าไฟร์วอลล์

ตั้งค่าพอร์ตสแตติกสำหรับ statd และ lockd daemons แก้ไข /etc/sysconfig/nfs และป้อนรายการต่อไปนี้

STATD_PORT=[ท่า]

LOCKD_TCPPORT=[ท่า]

LOCKD_UDPPORT=[ท่า]

สรุปด่วน

ให้เราดูบทสรุปสั้นๆ เกี่ยวกับสิ่งที่เราเพิ่งพูดถึง

หากคุณกำลังเรียกใช้ NFS v4 สิ่งที่คุณต้องมีคืออนุญาตพอร์ต 2049 อย่างไรก็ตาม หากคุณใช้งาน NFS v2 หรือ v3 คุณต้องแก้ไขไฟล์ /etc/sysconfig/nfs และเพิ่มพอร์ตสำหรับบริการต่อไปนี้

  • เมานต์ – MOUTD_PORT=port
  • สถิติ – STATD_PORT=port
  • LOCKD – LOCKD_TCPPORT=พอร์ต, LOCKD_UDPPORT=พอร์ต

สุดท้าย คุณต้องแน่ใจว่า NFSD daemon ทำงานบนพอร์ต 2049 และ portmapper บนพอร์ต 111

บันทึก: หากไม่มีไฟล์ /etc/sysconfig/nfs ให้สร้างและเพิ่มรายการที่ระบุในบทช่วยสอน

คุณยังสามารถตรวจสอบ /var/log/messages ได้หากบริการ NFS เริ่มทำงานไม่ถูกต้อง ตรวจสอบให้แน่ใจว่าไม่มีการใช้งานพอร์ตที่คุณระบุ

ตัวอย่าง Config

ต่อไปนี้เป็นการตั้งค่าคอนฟิกของเซิร์ฟเวอร์ NFS บนเซิร์ฟเวอร์ CentOS 8

เมื่อคุณแก้ไขการกำหนดค่าและเพิ่มพอร์ตที่จำเป็นตามที่อธิบายในบทช่วยสอนแล้ว ให้เริ่มบริการใหม่เป็น:

sudosystemctl start nfs-server.service

ถัดไป ยืนยันว่าบริการกำลังทำงานโดยใช้คำสั่ง:

sudoสถานะ systemctl nfs-server.service

สุดท้าย ให้ยืนยันพอร์ตที่รันโดยใช้ rpcinfo ตามที่แสดงในคำสั่งด้านล่าง:

sudorpcinfo-NS

บทสรุป

บทช่วยสอนนี้กล่าวถึงพื้นฐานเครือข่ายของโปรโตคอล NFS และพอร์ตและบริการที่จำเป็นสำหรับทั้ง NFS v2, v3 และ v4

ขอบคุณสำหรับการอ่านและเป็น Geek ภาคภูมิใจ!