Ekspor NFS yang dikunci ke alamat VPN: apa yang tidak dibuktikannya
Aturan ekspor memeriksa dari mana paket datang; AUTH_SYS menyatakan UID lokal dan Kerberos mengautentikasi pengguna. Tentukan mana yang dibutuhkan layanan berkas Anda.
Sebuah host mengekspor direktori ke alamat VPN, mount berhasil, dan desainnya dicatat sebagai terautentikasi. Yang sebenarnya dibatasi aturan itu adalah dari mana paket tampak berasal. Apakah orang yang menjalankan operasi berkas benar-benar siapa yang ia klaim bergantung pada ragam keamanan NFS, dan pada sebagian besar ekspor semacam ini tidak ada yang mengubahnya dari bawaan.
Tiga identitas dapat muncul dalam satu permintaan
Peer VPN membawa identitas terdaftar seperti sertifikat klien atau kunci peer. Paket IP dalam membawa alamat sumber. Operasi berkas membawa kredensial pengguna apa pun yang disediakan mekanisme NFS-nya. Desain yang memperlakukan alamat sebagai pengganti ketiganya diam-diam mengasumsikan bagian yang justru perlu diverifikasi.
| Identity | What it proves | What it does not |
|---|---|---|
| VPN peer | Which peer was accepted by the tunnel | Which user runs on that machine |
| Inner source address | Where the packet appears to originate | That only the intended client can use it |
| NFS credential | What the file service believes about the caller | Anything, if the flavour only asserts local IDs |
Menuliskan ketiga baris itu adalah keseluruhan latihannya. Sebagian besar perdebatan tentang apakah sebuah ekspor aman runtuh begitu jelas di baris mana setiap kontrol berada.
Kepemilikan alamat adalah detail implementasi
Gateway dapat menetapkan alamat terowongan kepada peer yang diterima, atau mengotorisasi subnet yang dirutekan untuknya. Apakah implementasi kemudian menolak paket yang sumber dalamnya milik klien lain adalah sifat implementasi tersebut, dan itu layak diperiksa daripada diasumsikan.
Kode server ruang pengguna Community tradisional OpenVPN misalnya dapat menolak sumber yang terkait dengan klien lain sebelum paket dikirimkan melalui perangkat TUN. Itu adalah pemeriksaan kepemilikan alamat yang bernilai nyata, dan tetap bukan autentikasi pengguna NFS, karena tidak mengatakan apa pun tentang akun mana yang melakukan operasi.
Penerjemahan sumber mengikis bahkan itu. Gateway NAT dapat menampilkan setiap klien sebagai satu alamat, dan pada titik itu aturan ekspor tidak dapat membedakan orang-orang di belakangnya. Ketepatan aturan yang tampak kemudian menjadi fiksi yang dipertahankan diagram. Jika ekspor itu penting, pertahankan pengalamatan secara eksplisit alih-alih membiarkan penerjemah memutuskan siapa dihitung sebagai siapa.
Baca ragam keamanan sebelum memercayai ekspor
Panduan NFS Red Hat memisahkan sec=sys, yang memakai UID dan GID UNIX lokal melalui AUTH_SYS, dari mode Kerberos. krb5 menambahkan autentikasi pengguna, krb5i menambahkan perlindungan integritas, dan krb5p menambahkan perlindungan privasi untuk lalu lintas.
Kredensial AUTH_SYS memuat bidang seperti UID pemanggil dan ID grup, dan RFC 5531 memperingatkan dengan jelas bahwa ragam ini tidak memberikan keamanan dengan sendirinya dan bergantung pada perlindungan eksternal. Menjalankannya di dalam VPN memasok perlindungan untuk transport dan tidak mengubah apa pun pada pernyataan di dalam paket.
exportfs -v
showmount -e nfs.example.internal
Baca ragam pada keluaran itu sebelum membaca daftar klien. Ekspor yang tampak dibatasi mungkin hanya dibatasi oleh alamat sementara setiap pemanggil masih menyatakan UID apa pun yang disukainya.
Pilih modelnya, lalu pertahankan izinnya
Pilih model autentikasi layanan berkas yang sesuai dengan klien yang benar-benar Anda kelola. Kerberos memerlukan identitas dan penerapan layanan di belakangnya, jadi mengubah satu opsi mount bukan migrasi dan hanya akan gagal sampai domain Kerberos, principal, dan keytab ada.
Di bawah salah satu model, pertahankan izin ekspor dan otorisasi sistem berkas yang membatasi apa yang boleh dilakukan principal terautentikasi. Autentikasi memberi tahu siapa yang bertanya; otorisasi memutuskan apakah jawabannya harus ya. Melebur keduanya menjadi satu pengaturan adalah cara migrasi berakhir memberi lebih banyak daripada konfigurasi lama.
Gunakan aturan alamat untuk tujuan sebenarnya
Membatasi layanan pada jalur dan sumber yang disetujui tetap bermanfaat, termasuk kebijakan masukan host ketika titik akhir VPN dan server NFS berbagi mesin. Aturan yang meneruskan lalu lintas tidak mengatur permintaan yang ditujukan kepada layanan yang berjalan secara lokal pada host yang sama. Celah itu menjelaskan jumlah ekspor yang mengejutkan yang dimaksudkan agar privat. Periksa kebijakan masukan lokal secara eksplisit alih-alih mengasumsikan aturan terowongan mencakupnya.
Periksa bahwa antarmuka lain atau gateway dengan penerjemahan sumber tidak dapat memenuhi aturan secara tak terduga, dan perlakukan itu sebagai alasan untuk menetapkan asal-usul, bukan sebagai klaim bahwa pemalsuan alamat menjamin mount yang berfungsi.
Jalankan tiga kasus penerimaan alih-alih satu. Mulailah dengan klien yang disetujui bertindak sebagai pengguna yang disetujui, lalu ulangi dari peer yang tidak pernah disetujui, lalu coba sesuatu yang masih tidak diizinkan bagi pengguna yang disetujui. Tanyakan setelahnya apa yang berubah jika klien yang diotorisasi disusupi, karena autentikasi transport tidak membuat setiap proses di mesin itu tepercaya. Sertifikat yang dicuri dan akun lokal yang penasaran adalah masalah berbeda dengan kontrol berbeda.