Sistem File Jaringan yang Aman untuk Linux: Apa yang dilakukan orang?

26

NFSv3 tersebar luas, tetapi model keamanan default adalah ... aneh . CIFS dapat menggunakan autentikasi Kerberos, tetapi tanpa semantik POSIX, itu bukan starter. AFS tidak pernah mengenkripsi lalu lintas di kabel dan krb4 - dan pada dasarnya proyek mati. Filesystem eksperimental baru yang mewah tidak pernah terwujud atau terfokus pada kecepatan (dan jika Anda beruntung, keandalan data) - misalnya, Luster menggunakan model kepercayaan klien yang sama dengan NFSv3. Untuk digunakan di rumah, sshfs bagus, tetapi yang pasti tidak skala.

Dan tentu saja ada NFSv4, dengan sec = krb5p. Besar dalam teori, tetapi setelah sepuluh tahun, tampaknya tidak digunakan di dunia nyata. Klien Linux baru saja menghapus tag eksperimental. Dan jika Anda melihat EMC Celerra, Isilon, dll., Itu semua NFSv3. (Celerra mendukung NFSv4, tetapi itu benar - benar terkubur dalam dokumentasi. Isilon tampaknya bekerja untuk menambahkan dukungan RPCGSS ke FreeBSD, jadi mungkin itu datang, tetapi tidak ada sekarang.) Saya bahkan tidak dapat menandai posting ini sebagai "nfsv4" karena saya Saya baru di sini dan itu akan menjadi tag baru .

Jadi, sungguh . Apa yang kalian semua lakukan?

mattdm
sumber
Saya ingin mengatakan, "NFS3 over IPSEC", tapi saya tidak bisa.
sysadmin1138
1
"NFS3 over IPSEC" membantu dengan masalah on-the-wire, tetapi tidak mengatasi masalah NFS mendasar lainnya: jika kotak klien di-root, atau jika Anda berada di lingkungan di mana pengguna mendapatkan root pada sistem mereka sendiri, mereka dapat secara sepintas menyamar sebagai pengguna jarak jauh.
mattdm
Itu dia, tag baru;)
Cry Havok
1
AFAIK, Kerberos ditetapkan untuk NFS
Javier
2
Saya tidak begitu yakin tentang perlunya mengenkripsi lalu lintas pada kabel di lingkungan LAN (otentikasi harus dienkripsi). Anda harus memantau keracunan ARP ...
Hubert Kario

Jawaban:

8

Karena ini adalah pertanyaan khusus (Apa yang Anda lakukan), mari kita jawab: tidak ada. Sebagian besar administrator dan pengguna tidak khawatir tentang keamanan NFS, jadi semua orang menggunakan NFSv3. Biasanya ini adalah lingkungan yang terkendali (dalam arti bahwa hanya mesin-mesin terkenal yang dapat menempel pada jaringan). Jika seseorang ketahuan menyalahgunakan infrastruktur, mereka dipecat atau dipenjara.

Untuk data yang Anda benar - benar tidak ingin orang lain dapat membaca, Anda mengenkripsi mereka secara eksplisit, misalnya basis data kata sandi Firefox, kunci ssh, atau kunci pgp. Anda melakukan itu karena Anda tahu admin dapat membacanya di server file, sehingga keamanan sistem file jaringan tidak akan membantu apa pun.

Martin v. Löwis
sumber
14

Anda tampaknya mengajukan dua pertanyaan di sini:

Apa yang sebenarnya kita gunakan? dan apa ini?

Apa yang sebenarnya saya gunakan adalah CIFS, dalam kasus penggunaan saya POSIX kurang penting sehingga saya tidak punya masalah. NFS3 digunakan di area di mana keamanan tidak penting, seperti server instal SLES saya. Dan akhirnya, sshfs / gvfs untuk berbagi pengguna-tanah yang sederhana. Enkripsi Wireline tidak dianggap perlu, jadi itu bukan faktor yang berarti bagi kami.

Adapun pertanyaan lain, tampaknya ada enam persyaratan utama untuk apa yang Anda cari:

  1. Mengenkripsi lalu lintas di kabel.
  2. Enkripsi otentikasi.
  3. Semantik posix.
  4. Penegakan kuat ACL berbasis server.
  5. Bukan userland.
  6. Sebenarnya digunakan.

Saya menduga poin 5 dan 6 akan menjadi pembunuh di sini, tapi begini (juga, ini adalah titik di mana tabel akan sangat berguna, tetapi penurunan harga / StackExchange tidak mendukungnya).

NFSv3 + IPSec

  1. Dienkripsi pada kabel, lewati
  2. Tidak ada otentikasi terenkripsi, gagal
  3. Semantik posix, lulus
  4. Tidak ada penegakan kuat ACL berbasis server, gagal
  5. Bukan userland, lulus
  6. Sebenarnya digunakan, lulus

NFSv4 + Krb + IPSec

  1. Dienkripsi pada kabel, lewati
  2. Otentikasi terenkripsi, lulus
  3. Semantik posix, lulus
  4. Penegakan kuat ACL berbasis server, lulus
  5. Bukan userland, lulus
  6. Sebenarnya tidak digunakan, gagal

CIFS

  1. Tidak dienkripsi di kabel, gagal
  2. Otentikasi terenkripsi
  3. Semantik posix, lulus (Samba & Kernel sekarang, Windows telah memiliki lapisan Posix sejak zaman NT)
  4. Penegakan kuat ACL berbasis server, lulus
  5. Bukan userland, lulus
  6. Sebenarnya digunakan, lulus

CIFS + IPSec

  1. Dienkripsi pada kabel, lewati
  2. Otentikasi terenkripsi
  3. Semantik posix, pass (Samba & Kernel sekarang)
  4. Penegakan kuat ACL berbasis server, lulus
  5. Bukan userland, lulus
  6. Sebenarnya tidak digunakan, gagal

SSHFS

  1. Dienkripsi pada kabel, lewati
  2. Otentikasi terenkripsi, lulus
  3. Semantik posix, lulus
  4. Penegakan kuat ACL berbasis server, lulus
  5. Apakah userland, gagal
  6. Sebenarnya digunakan, lulus

AFP / NetATalk

  1. Dienkripsi pada kabel, gagal
  2. Otentikasi terenkripsi, lulus
  3. Semantik posix, lulus
  4. Penegakan kuat ACL berbasis server, lulus
  5. Bukan userland, lulus
  6. Sebenarnya digunakan, gagal

Dan saya tidak menyentuh sistem file terdistribusi di luar sana. Tidak ada satu hal pun yang melakukan semuanya. Beberapa mendekati (CIFS) dan beberapa sudah ada tetapi tidak ada yang menggunakannya (NFS4 + IPSec, CIFS + IPSec). Untuk beberapa alasan sistem file jaringan aman adalah sesuatu yang telah mengalami banyak kompromi selama bertahun-tahun.

sysadmin1138
sumber
Anda bisa menyebutkan "NFSv4 + Krb" dan menambahkan "7. Apakah ini cukup cepat (yaitu dibandingkan dengan tumpukan protokol yang sama tanpa enkripsi)?" sebagai pertanyaan. Yang mungkin akan gagal untuk NFSv4 + krb5p, tetapi lolos untuk pertanyaan 1-6.
al.
mungkin saatnya untuk SNFS filesystem jaringan aman baru?
The Unix Janitor
@ user37899 Masalahnya, seperti biasa, adalah meyakinkan vendor alat untuk mendukungnya, dan organisasi untuk menyebarkannya.
sysadmin1138
1
Kami benar-benar sial mencoba menggunakan CIFS dalam mode POSIX. Mungkin sudah waktunya untuk meninjau kembali itu.
mattdm
FWIW Saya menggunakan CIFS + IPsec, tetapi tidak dengan semantik POSIX. Server adalah emc celerra, klien win7. terowongan ipsec dilakukan dalam mode lan-ke-lan antara cisco ASA (di sebelah celerra) dan win7 builtin ipsec.
Dan Pritts
3

Saya telah menggunakan openafs dalam produksi selama bertahun-tahun, dengan klien Linux dan Windows. Ini berfungsi dengan baik, memiliki komunitas pengembangan aktif, dan telah menjadi jauh lebih mudah untuk menginstal dan mengelola selama beberapa tahun terakhir karena berbagai distro linux telah menyertakan kemasan untuk itu. Ini memiliki kutil, tetapi saya telah menemukan bahwa mereka diimbangi oleh fleksibilitas administrasi yang lebih, kemampuan untuk membuat klien dan server dipisahkan oleh tautan lambat, kemudahan backup di luar kantor, dan AFSisme positif lainnya.

Satu hal yang saya sukai khususnya menjalankan server web produksi yang menghadap internet pada openafs, dengan ACL dikunci. Tanpa tiket kerberos tidak ada proses pada mesin - bahkan satu berjalan sebagai root - yang dapat menulis ke sistem file. Saya tidak bisa menghitung berapa kali kami melihat serangan benar-benar gagal karena ukuran sederhana itu.

Ada beberapa pengguna openafs yang cukup besar - pengguna komersial terbesar yang saya tahu adalah Morgan Stanley.

stevegt
sumber
1

Bagaimana dengan OpenAFS yang masih hidup dan VPN di bawahnya karena satu-satunya enkripsi saat ini adalah DES.

Rob Olmos
sumber
2
Saya telah menggunakan OpenAFS dalam produksi. Rumor tentang semangatnya sangat dilebih-lebihkan.
mattdm
Ada rilis baru bulan ini dan sebelum itu ada pembaruan yang cukup teratur untuk mendukung versi baru Windows dan versi baru kernel Linux (rilis terbaru mendukung 3.0).
Hubert Kario
1

Saya melihat bahwa banyak orang di utas ini berbicara tentang penyembunyian data, yaitu serangan yang tidak dapat mengintip data Anda. Hal yang sama pentingnya untuk dipikirkan tentang integritas dan keaslian data. Apakah paket nfs itu benar-benar dari server nfs Anda? Apakah paket nfs dapat diubah dalam perjalanan?

Unix Janitor
sumber
NFS over IPsec menangani hal itu (pada tautan area luas) dan pemantauan keracunan ARP melakukannya di LAN
Hubert Kario
adakah yang benar-benar menggunakan ipsec dengan sukses?
The Unix Janitor
1

Bagi saya, sepertinya salah satu dari Filesystem Terdistribusi akan cocok untuk Anda. Saya tidak ingin merekomendasikan OpenAFS, karena sudah tua, belum mendukung IPv6, ..

Saya cukup senang dengan GlusterFS sendiri. Gluster cukup matang, berkinerja baik dan memiliki set fitur yang baik. Namun, seperti yang baru-baru ini dibahas dalam IRC, Gluster juga tidak mendukung IPv6 secara stabil. Fitur ini akan dijadwalkan untuk 3.6 atau 3.7.

Ada juga proyek yang disebut HekaFS, yang dibangun di atas Gluster, yang menambahkan fitur-fitur otentikasi dan SSL yang lebih canggih. Itu imo didokumentasikan dengan sangat baik dan dirancang dengan sangat baik.

Apa yang mungkin juga menarik bagi Anda adalah XtreemFS , yang dirancang untuk komputasi grid global, sehingga ia hadir dengan SSL dan yang lainnya secara default. Pilihan saya untuk penggunaan jatuh pada Gluster, karena komunitas tampaknya lebih aktif dan cara ini lebih baik didokumentasikan.

Keduanya tentu saja sesuai dengan posix.

juwi
sumber
0

Saya menggunakan NFS. Tetapi server ke server NFS dilakukan melalui tulang punggung jaringan khusus sehingga enkripsi tidak diperlukan dan otentikasi tidak ada gunanya. Cukup atur setiap ekspor untuk hanya berbagi direktori pilih ke server berdasarkan IP.

Beranda
sumber
jaringan khusus, sampai seseorang mendongkrak sakelar dengan wireshark.
The Unix Janitor
Itu masalah keamanan fisik. Begitu mereka berada di ruangan yang sama dengan server, permainan berakhir.
Serambi
-2

Dengan segala hormat, Anda benar-benar melihat masalah ini dengan cara yang salah dan Anda harus mundur dari konsol selama beberapa jam.

Hampir semua penyimpanan io tidak dienkripsi karena tidak masalah pada lapisan tumpukan abstraksi. Meragukannya? Pasang keran pada sakelar serat brokat Anda dan Anda akan melihat bahwa saluran serat, seperti halnya iscsi dan nfs, semuanya merupakan rancangan yang tidak terenkripsi. Memecahkan itu adalah masalah sedang, bukan masalah protokol penyimpanan. Misalnya, ingin nfs aman dan terenkripsi? Membuat lan yang dienkripsi titik ke titik antara klien nfs dan server menggunakan ipsec / ssl / tls atau solusi perangkat keras murni.

Rafael Ferreira
sumber
Saya pikir Anda kehilangan poin kunci. Seperti pertanyaannya, masalahnya adalah pada model keamanan NFS. Enkripsi itu bagus, seperti yang Anda katakan, masalah yang bisa dipecahkan. Masalah besar dengan NFS adalah sekali sistem file dipasang pada suatu sistem, siapa pun dengan akses root pada sistem itu dapat mengakses file apa pun pada sistem file itu, terlepas dari kepemilikan atau izin. Sistem seperti AFS atau, dalam teori, NFSv4 dengan sec = krbp5, membutuhkan kredensial yang kuat untuk mengakses file, dan karenanya merupakan peningkatan keamanan yang substansial. Klien NFS yang di-root tidak menyamakan eksposur data yang masif.
larsks
1
Kecuali jika Anda meminta pengguna untuk memasukkan kredensial untuk setiap akses, kredensial akan disimpan. Klien root yang dikompromikan cenderung menyerahkan kunci yang disimpan dengan mudah. Setiap sistem file jaringan akan meningkatkan eksposur sistem file untuk berkompromi.
BillThor
@ BillThor Ini adalah apa yang saya pikirkan .. Apakah masih terbuka untuk menyerang jika kredensial ada di memori kernel? Saya pikir modul kernel dapat dimuat untuk membaca setiap bagian dari memori kernel.
Rob Olmos
Selama permintaan digunakan dalam konteks pengguna dengan akses ke penyimpanan bersama, kemungkinan tidak masalah di mana kredensial berada. Kredensial sering dipegang oleh proses latar belakang, sehingga siapa pun yang dapat berkomunikasi dengannya kemungkinan dapat memperoleh akses ke penyimpanan bersama. Saya akan memberi peringkat risiko pada penyimpanan jaringan aman yang kira-kira sama dengan penyimpanan lokal.
BillThor
2
@BillThor: dengan kerberos, risiko dimitigasi secara signifikan, karena penyerang hanya akan memiliki akses ke sistem file pengguna yang telah meneruskan tiket mereka, dan hanya selama masa berlaku tiket tersebut. Dengan otentikasi berbasis sistem (ala nfsv3), root dapat mengakses dan memanipulasi file pengguna mana pun , bahkan jika pengguna itu tidak ada hubungannya dengan sistem yang dikompromikan sebelumnya.
mattdm