ระบบไฟล์เครือข่ายที่ปลอดภัยสำหรับ Linux: ผู้คนกำลังทำอะไร


26

NFSv3 เป็นที่แพร่หลาย แต่รูปแบบการรักษาความปลอดภัยเริ่มต้นคือ ... แปลกตา CIFS สามารถใช้การพิสูจน์ตัวตน Kerberos แต่ถ้าไม่มี POSIX semantics จะไม่ใช่การเริ่มต้น AFS ไม่เคยเข้ารหัสการรับส่งข้อมูลบนสายและเป็น krb4 - และเป็นโครงการที่ตายแล้ว แฟนซีระบบไฟล์ทดลองใหม่ไม่เคยเกิดขึ้นจริงหรือเน้นที่ความเร็ว (และหากคุณโชคดีความน่าเชื่อถือของข้อมูล) - ตัวอย่างเช่น Luster ใช้รูปแบบความเชื่อมั่นของลูกค้าเช่นเดียวกับ NFSv3 สำหรับใช้ในบ้าน sshfs นั้นดี แต่ก็ไม่ได้ปรับขนาด

และแน่นอนว่ามี NFSv4 ด้วย sec = krb5p ยิ่งใหญ่ในทางทฤษฎี แต่หลังจากผ่านไปสิบปีดูเหมือนว่ามันจะไม่ได้ใช้อย่างจริงจังในโลกแห่งความจริง ไคลเอ็นต์ Linux เพิ่งลบแท็กทดสอบออกแล้ว และถ้าคุณดู EMC Celerra, Isilon ฯลฯ มันคือ NFSv3 ทั้งหมด (Celerra สนับสนุน NFSv4 แต่มันจริงๆฝังอยู่ในเอกสาร. Isilon เห็นได้ชัดว่าทำงานอยู่ที่การเพิ่มการสนับสนุน RPCGSS เพื่อ FreeBSD ดังนั้นบางทีมันมา แต่ยังไม่ได้มีในขณะนี้.) ฉันไม่สามารถแม้แต่จะแท็กโพสต์นี้ว่า "nfsv4" เพราะฉัน 'm ใหม่ที่นี่และที่ต้องการจะแท็กใหม่

ดังนั้นจริงๆ คุณทำอะไรอยู่


ฉันอยากจะพูดว่า "NFS3 over IPSEC" แต่ฉันทำไม่ได้
sysadmin1138

1
"NFS3 over IPSEC" ช่วยในการแก้ไขปัญหา on-the-wire แต่ไม่ได้แก้ไขปัญหา NFS พื้นฐานอื่น: หากกล่องไคลเอนต์ได้รับการรูทหรือถ้าคุณอยู่ในสภาพแวดล้อมที่ผู้ใช้รูทบนระบบของพวกเขาเอง สามารถเลียนแบบผู้ใช้รีโมตเล็กน้อย
mattdm

มีคุณอยู่แท็กใหม่;)
Cry Havok

1
AFAIK, Kerberos ถูกกำหนดไว้สำหรับ NFS
Javier

2
ฉันไม่แน่ใจเกี่ยวกับความจำเป็นในการเข้ารหัสทราฟฟิกบนสายในสภาพแวดล้อม LAN (ควรตรวจสอบความถูกต้องด้วยการเข้ารหัส) คุณควรเฝ้าระวังการวางยาพิษ ARP ต่อไป ...
Hubert Kario

คำตอบ:


8

เนื่องจากเป็นคำถามที่เฉพาะเจาะจง (คุณกำลังทำอะไรอยู่) ลองตอบคำถามนี้: ไม่มีอะไร ผู้ดูแลระบบและผู้ใช้ส่วนใหญ่ไม่ต้องกังวลเกี่ยวกับความปลอดภัยของ NFS ดังนั้นทุกคนจึงใช้ NFSv3 โดยทั่วไปจะเป็นสภาพแวดล้อมที่มีการควบคุม (ในแง่ที่ว่ามีเพียงเครื่องที่รู้จักกันดีเท่านั้นที่สามารถเชื่อมต่อกับเครือข่ายได้ตั้งแต่แรก) หากใครบางคนถูกจับได้ว่าใช้โครงสร้างพื้นฐานอย่างไม่เหมาะสม

สำหรับข้อมูลที่คุณจริงๆไม่ต้องการให้ใครที่จะสามารถอ่านคุณเข้ารหัสพวกเขาอย่างชัดเจนเช่นฐานข้อมูลรหัสผ่าน Firefox, กุญแจ SSH หรือคีย์ PGP คุณทำเช่นนั้นเพราะคุณรู้ว่าผู้ดูแลระบบสามารถอ่านไฟล์เหล่านั้นบนเซิร์ฟเวอร์ไฟล์ดังนั้นความปลอดภัยของระบบไฟล์เครือข่ายก็ไม่ได้ช่วยอะไรเลย


14

คุณดูเหมือนจะถามคำถามสองข้อที่นี่:

เราใช้อะไรจริง และสิ่งที่ทำอย่างนี้?

สิ่งที่ฉันใช้จริงคือ CIFS ในกรณีใช้งาน POSIX ของฉันมีความสำคัญน้อยกว่าดังนั้นฉันจึงไม่มีปัญหาใด ๆ NFS3 ใช้ในพื้นที่ที่ความปลอดภัยไม่สำคัญเช่นเซิร์ฟเวอร์ติดตั้ง SLES ของฉัน และในที่สุด sshfs / gvfs สำหรับการแชร์พื้นที่ผู้ใช้อย่างง่าย ไม่จำเป็นต้องใช้การเข้ารหัสแบบไวร์ไลน์ดังนั้นจึงไม่ใช่ปัจจัยที่มีความหมายสำหรับเรา

สำหรับคำถามอื่น ๆ ดูเหมือนว่ามีข้อกำหนดหลักหกประการสำหรับสิ่งที่คุณกำลังมองหา:

  1. เข้ารหัสการรับส่งข้อมูลบนสาย
  2. เข้ารหัสการรับรองความถูกต้อง
  3. ความหมายของ Posix
  4. การบังคับใช้ที่แข็งแกร่งของ ACL บนเซิร์ฟเวอร์
  5. ไม่ใช่ userland
  6. มีการใช้งานจริง

ฉันสงสัยว่าคะแนน 5 และ 6 จะเป็นนักฆ่าที่นี่ แต่ที่นี่จะไป (เช่นนี้เป็นจุดที่ตารางจะมีประโยชน์จริงๆแต่ markdown / StackExchange ไม่สนับสนุนมัน)

NFSv3 + IPSec

  1. เข้ารหัสบนสายผ่าน
  2. ไม่มีการรับรองความถูกต้องเข้ารหัสล้มเหลว
  3. Posix semantics, pass
  4. ไม่มีการบังคับใช้ที่แข็งแกร่งของ ACL ของเซิร์ฟเวอร์ที่ใช้ล้มเหลว
  5. ไม่ใช่ userland, pass
  6. ใช้งานจริงผ่าน

NFSv4 + Krb + IPSec

  1. เข้ารหัสบนสายผ่าน
  2. การพิสูจน์ตัวตนที่เข้ารหัสผ่าน
  3. Posix semantics, pass
  4. การบังคับใช้ที่แข็งแกร่งของ ACLs ที่ใช้เซิร์ฟเวอร์ผ่าน
  5. ไม่ใช่ userland, pass
  6. ไม่ได้ใช้จริงล้มเหลว

CIFS

  1. ไม่เข้ารหัสบนสายล้มเหลว
  2. การพิสูจน์ตัวตนที่เข้ารหัส
  3. Posix semantics, pass (Samba & เคอร์เนลตอนนี้ Windows มีเลเยอร์ Posix ตั้งแต่วัน NT)
  4. การบังคับใช้ที่แข็งแกร่งของ ACLs ที่ใช้เซิร์ฟเวอร์ผ่าน
  5. ไม่ใช่ userland, pass
  6. ใช้งานจริงผ่าน

CIFS + IPSec

  1. เข้ารหัสบนสายผ่าน
  2. การพิสูจน์ตัวตนที่เข้ารหัส
  3. Posix semantics, pass (Samba & Kernel now)
  4. การบังคับใช้ที่แข็งแกร่งของ ACLs ที่ใช้เซิร์ฟเวอร์ผ่าน
  5. ไม่ใช่ userland, pass
  6. ไม่ได้ใช้จริงล้มเหลว

SSHFS

  1. เข้ารหัสบนสายผ่าน
  2. การพิสูจน์ตัวตนที่เข้ารหัสผ่าน
  3. Posix semantics, pass
  4. การบังคับใช้ที่แข็งแกร่งของ ACLs ที่ใช้เซิร์ฟเวอร์ผ่าน
  5. คือ userland, ล้มเหลว
  6. ใช้งานจริงผ่าน

เอเอฟพี / netatalk

  1. การเข้ารหัสบนสายล้มเหลว
  2. การพิสูจน์ตัวตนที่เข้ารหัสผ่าน
  3. Posix semantics, pass
  4. การบังคับใช้ที่แข็งแกร่งของ ACLs ที่ใช้เซิร์ฟเวอร์ผ่าน
  5. ไม่ใช่ userland, pass
  6. มีการใช้งานจริงล้มเหลว

และฉันไม่ได้สัมผัสกับระบบไฟล์แบบกระจายที่นั่น มีเพียงสิ่งเดียวเท่านั้นที่ทำได้ทั้งหมด บางคนเข้ามาใกล้ (CIFS) และบางคนก็อยู่ที่นั่น แต่ก็ไม่มีใครใช้มัน (NFS4 + IPSec, CIFS + IPSec) ด้วยเหตุผลบางอย่างระบบไฟล์เครือข่ายที่ปลอดภัยเป็นสิ่งที่ได้รับการประนีประนอมเป็นจำนวนมากในช่วงหลายปีที่ผ่านมา


คุณสามารถพูดถึง "NFSv4 + Krb" และเพิ่ม "7. มันเร็วพอสมควรหรือไม่ (เช่นเมื่อเทียบกับโปรโตคอลสแต็คเดียวกันโดยไม่มีการเข้ารหัส)" เป็นคำถาม ซึ่งอาจเป็นความล้มเหลวสำหรับ NFSv4 + krb5p แต่ส่งคำถาม 1-6
อัล

อาจเป็นเวลาสำหรับระบบไฟล์เครือข่ายที่ปลอดภัยใหม่ SNFS
Unix Janitor

@ user37899 ปัญหาเช่นเคยโน้มน้าวใจผู้ขายอุปกรณ์เพื่อสนับสนุนและองค์กรในการปรับใช้
sysadmin1138

1
เราโชคร้ายจริงๆที่พยายามใช้ CIFS ในโหมด POSIX อาจถึงเวลาทบทวนอีกครั้ง
mattdm

FWIW ฉันใช้ CIFS + IPsec แต่ไม่ใช่ด้วยซีแมนทิกส์ POSIX เซิร์ฟเวอร์ emc celerra ลูกค้า win7 ipsec tunnels ทำในโหมด lan-to-lan ระหว่าง cisco ASA (ถัดจาก celerra) และ win7 builtin ipsec
Dan Pritts

3

ฉันใช้ openafs ในการผลิตมาหลายปีแล้วทั้งลูกค้า Linux และ Windows มันใช้งานได้ดีมีชุมชนพัฒนาที่ใช้งานง่ายและติดตั้งและจัดการได้ง่ายขึ้นในช่วงไม่กี่ปีที่ผ่านมาเนื่องจากลินุกซ์ distros ต่างๆได้รวมบรรจุภัณฑ์ไว้แล้ว มันมีหูด แต่ฉันพบว่ามันถูกชดเชยด้วยความยืดหยุ่นในการบริหารที่มากขึ้นความสามารถในการแยกไคลเอนต์และเซิร์ฟเวอร์โดยลิงก์ช้าความสะดวกในการสำรองนอกสถานที่และ AFSisms เชิงบวกอื่น ๆ

สิ่งหนึ่งที่ฉันชอบเป็นพิเศษคือการใช้งานเว็บเซิร์ฟเวอร์ที่ใช้งานอินเทอร์เน็ตบน openafs โดยที่ ACLs ถูกล็อคไว้ หากไม่มีตั๋ว kerberos จะไม่มีกระบวนการใด ๆ บนเครื่อง - แม้แต่เครื่องเดียวที่ทำงานเป็นรูท - ซึ่งสามารถเขียนไปยังระบบไฟล์ได้ ฉันไม่สามารถนับได้ว่ามีกี่ครั้งที่เราสังเกตเห็นว่าการโจมตีล้มเหลวอย่างสิ้นเชิงเพราะมาตรการง่ายๆ

มีผู้ใช้ openafs ที่ค่อนข้างใหญ่ - ผู้ใช้เพื่อการค้าที่ใหญ่ที่สุดที่ฉันรู้จักคือ Morgan Stanley


1

วิธีการเกี่ยวกับ OpenAFS ซึ่งยังมีชีวิตอยู่และ VPN ภายใต้เนื่องจากการเข้ารหัสเท่านั้นในขณะนี้คือ DES


2
ฉันใช้ OpenAFS ในการผลิต ข่าวลือเกี่ยวกับความมีชีวิตชีวานั้นเกินจริงอย่างมาก
mattdm

มีการเปิดตัวรุ่นใหม่ในเดือนนี้และก่อนหน้านั้นมีการปรับปรุงอย่างสม่ำเสมอเพื่อรองรับ Windows รุ่นใหม่และ Linux kernel รุ่นใหม่ (รุ่นใหม่ล่าสุดรองรับ 3.0)
Hubert Kario

1

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


NFS บน IPsec ดูแลสิ่งนั้น (บนการเชื่อมโยงบริเวณกว้าง) และการเฝ้าระวังการวางยาพิษ ARP ทำเช่นนั้นบน LAN
Hubert Kario

มีใครใช้ ipsec กับความสำเร็จจริงหรือ
The Unix Janitor

1

สำหรับฉันแล้วดูเหมือนว่าหนึ่งในระบบไฟล์แบบกระจายเหล่านั้นจะเป็นของคุณ ฉันยังไม่อยากแนะนำ OpenAFS เนื่องจากเป็นรุ่นเก่ายังไม่รองรับ IPv6 เลย ..

ฉันค่อนข้างมีความสุขกับGlusterFSด้วยตัวเอง Gluster ค่อนข้างเป็นผู้ใหญ่ทำงานได้ดีและมีชุดคุณสมบัติที่ดี อย่างไรก็ตามตามที่กล่าวไว้ใน IRC เมื่อเร็ว ๆ นี้ Gluster ไม่สนับสนุน IPv6 ในลักษณะที่เสถียรเช่นกัน คุณสมบัตินี้จะถูกกำหนดไว้เป็น 3.6 หรือ 3.7

นอกจากนี้ยังมีโครงการที่เรียกว่า HekaFS ซึ่งสร้างบน Gluster ซึ่งเพิ่มคุณสมบัติการตรวจสอบสิทธิ์ขั้นสูงและ SSL มันเป็นเอกสารที่ดีมาก imo และการออกแบบที่ดีมาก

สิ่งที่น่าสนใจสำหรับคุณคือXtreemFSซึ่งออกแบบมาสำหรับการคำนวณแบบกริดทั่วโลกดังนั้นจึงมาพร้อมกับ SSL และสิ่งต่าง ๆ ตามค่าเริ่มต้น ตัวเลือกของฉันสำหรับการใช้งานลดลงใน Gluster เนื่องจากชุมชนดูเหมือนจะมีความกระตือรือร้นมากขึ้นและมีการจัดทำเป็นเอกสารที่ดีขึ้น

ทั้งสองเป็นไปตาม posix แน่นอน


0

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


เครือข่ายเฉพาะจนกระทั่งมีใครบางคนเข้ามาในสวิตช์แร็คด้วย wireshark
Unix Janitor

นั่นเป็นปัญหาด้านความปลอดภัยทางกายภาพแล้ว เมื่อพวกเขาอยู่ในห้องเดียวกันกับเซิร์ฟเวอร์มันก็จบแล้ว
Porch

-2

ด้วยความเคารพอย่างสูงคุณกำลังมองปัญหานี้อย่างผิดวิธีและคุณควรถอยห่างจากคอนโซลสักสองสามชั่วโมง

ที่เก็บข้อมูลทั้งหมดของ io นั้นไม่มีการเข้ารหัสเพราะมันไม่สำคัญที่เลเยอร์ของ abstraction stack สงสัยมัน? ใส่ก๊อกน้ำบนสวิตช์ใยผ้าของคุณและคุณจะเห็นช่องสัญญาณไฟเบอร์ดังเช่น iscsi และ nfs นั้นเป็นระเบียบที่ไม่ได้เข้ารหัสทั้งหมด - โดยการออกแบบ การแก้ปัญหาที่เป็นปัญหาปานกลางไม่ใช่ปัญหาโปรโตคอลการจัดเก็บ ตัวอย่างเช่นต้องการ nfs ที่ปลอดภัยและเข้ารหัสหรือไม่ สร้าง lan ที่เข้ารหัสแบบจุดต่อจุดระหว่างไคลเอนต์และเซิร์ฟเวอร์โดยใช้ ipsec / ssl / tls หรือโซลูชันฮาร์ดแวร์แท้


ฉันคิดว่าคุณขาดจุดสำคัญ ตามที่คำถามบอกว่าปัญหาเกิดขึ้นกับโมเดลความปลอดภัยของ NFS ในขณะที่การเข้ารหัสเป็นสิ่งที่ดี แต่ก็เป็นปัญหาที่แก้ไขได้ ปัญหาใหญ่ของ NFS คือเมื่อระบบไฟล์ติดตั้งบนระบบแล้วทุกคนที่มีการเข้าถึงรูทบนระบบนั้นสามารถเข้าถึงไฟล์ใด ๆ บนระบบไฟล์นั้นได้ไม่ว่าจะเป็นเจ้าของหรือได้รับอนุญาตก็ตาม ระบบเช่น AFS หรือในทางทฤษฎีแล้ว NFSv4 ที่มี sec = krbp5 นั้นต้องการข้อมูลประจำตัวที่แข็งแกร่งในการเข้าถึงไฟล์และดังนั้นจึงแสดงถึงความปลอดภัยที่เพิ่มขึ้นอย่างมาก ไคลเอนต์ NFS ที่รูทเครื่องไม่ได้รับข้อมูลจำนวนมาก
ลาร์

1
หากคุณไม่ขอให้ผู้ใช้ป้อนข้อมูลรับรองสำหรับการเข้าถึงแต่ละครั้งข้อมูลประจำตัวจะถูกเก็บไว้ ไคลเอนต์ที่ถูกบุกรุกรูตน่าจะยอมแพ้คีย์ที่เก็บไว้ได้อย่างง่ายดาย ระบบไฟล์เครือข่ายใด ๆ จะเพิ่มการเปิดรับระบบไฟล์เพื่อประนีประนอม
BillThor

@BillThor นี่คือสิ่งที่ฉันคิด .. ยังคงเปิดให้โจมตีหรือไม่หากข้อมูลรับรองอยู่ในหน่วยความจำเคอร์เนล? ฉันคิดว่าโมดูลเคอร์เนลสามารถโหลดได้อ่านหน่วยความจำเคอร์เนลใด ๆ
Rob Olmos

ตราบใดที่มีการใช้คำขอในบริบทของผู้ใช้ที่มีสิทธิ์เข้าถึงที่เก็บข้อมูลที่ใช้ร่วมกันก็อาจไม่สำคัญว่าข้อมูลรับรองนั้นจะอยู่ที่ใด ข้อมูลรับรองมักจะถูกจัดทำโดยกระบวนการพื้นหลังดังนั้นใครก็ตามที่สามารถสื่อสารกับมันอาจจะสามารถเข้าถึงที่เก็บข้อมูลที่ใช้ร่วมกัน ฉันจะจัดอันดับความเสี่ยงในการจัดเก็บข้อมูลเครือข่ายที่ปลอดภัยเหมือนกับที่เก็บข้อมูลในเครื่อง
BillThor

2
@BillThor: ด้วย Kerberos ความเสี่ยงจะลดลงอย่างมีนัยสำคัญเนื่องจากผู้โจมตีจะสามารถเข้าถึงระบบไฟล์ของผู้ใช้ที่ส่งต่อตั๋วและสำหรับอายุการใช้งานของตั๋วเหล่านั้นเท่านั้น ด้วยการพิสูจน์ตัวตนแบบใช้ระบบ (a la nfsv3) รูทสามารถเข้าถึงและจัดการไฟล์ของผู้ใช้ใด ๆแม้ว่าผู้ใช้นั้นจะไม่เกี่ยวข้องกับระบบที่ถูกบุกรุกก็ตาม
mattdm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.