Eksport NFS yang dikunci pada alamat VPN: apa yang tidak dibuktikannya
Peraturan eksport menyemak dari mana paket datang; AUTH_SYS mendakwa UID tempatan dan Kerberos mengesahkan pengguna. Tentukan yang mana diperlukan oleh perkhidmatan fail anda.
Sesuatu hos mengeksport direktori ke alamat VPN, lekap berjaya, dan reka bentuk itu dicatatkan sebagai disahkan. Apa yang sebenarnya dihadkan oleh peraturan itu ialah dari mana paket kelihatan datang. Sama ada orang yang menerajui operasi fail itu benar-benar dirinya bergantung pada profil keselamatan NFS, dan pada kebanyakan eksport seumpama ini tiada sesiapa mengubahnya daripada nilai lalai.
Tiga identiti boleh muncul dalam satu permintaan
Rakan VPN membawa identiti berdaftar seperti sijil klien atau kunci rakan. Paket IP dalaman membawa alamat sumber. Operasi fail membawa kelayakan pengguna yang diberikan oleh mekanisme NFSnya. Reka bentuk yang menganggap alamat sebagai wakil ketiga-tiganya secara senyap telah menganggap bahagian yang sepatutnya disahkan.
| 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 |
Menulis ketiga-tiga baris itu ialah keseluruhan latihan. Sebahagian besar perdebatan tentang sama ada sesuatu eksport selamat runtuh apabila jelas baris mana setiap kawalan berada.
Pemilikan alamat ialah butiran pelaksanaan
Gerbang boleh memberikan alamat terowong kepada rakan yang diterima, atau membenarkan subrangkaian yang dihalakan untuknya. Sama ada pelaksanaan kemudian menolak paket yang sumber dalamannya milik klien lain ialah sifat pelaksanaan itu, dan wajar diperiksa daripada dianggap.
Kod pelayan ruang pengguna Community tradisional OpenVPN misalnya boleh menolak sumber yang berkaitan dengan klien lain sebelum paket dihantar melalui peranti TUN. Itu ialah pemeriksaan pemilikan alamat yang bernilai sebenar, dan ia masih bukan pengesahan pengguna NFS, kerana ia tidak menyatakan apa-apa tentang akaun mana yang melakukan operasi itu.
Penterjemahan sumber menghakis malah itu. Gerbang NAT boleh mempersembahkan setiap klien sebagai satu alamat, dan ketika itu peraturan eksport tidak dapat membezakan orang di belakangnya. Ketepatan peraturan yang kelihatan kemudiannya menjadi fiksyen yang dikekalkan oleh rajah. Jika eksport itu penting, kekalkan pengalamatan secara eksplisit dan jangan biarkan penterjemah menentukan siapa dikira sebagai siapa.
Baca profil keselamatan sebelum mempercayai eksport
Panduan NFS Red Hat memisahkan sec=sys, yang menggunakan UID dan GID UNIX tempatan melalui AUTH_SYS, daripada mod Kerberos. krb5 menambah pengesahan pengguna, krb5i menambah perlindungan integriti, dan krb5p menambah perlindungan privasi untuk trafik.
Kelayakan AUTH_SYS mengandungi medan seperti UID pemanggil dan pengecam kumpulan, dan RFC 5531 memberi amaran dengan jelas bahawa profil ini tidak memberikan keselamatan dengan sendirinya dan bergantung pada perlindungan luaran. Menjalankannya dalam VPN memberikan perlindungan untuk pengangkutan dan tidak mengubah apa-apa pada dakwaan di dalam paket.
exportfs -v
showmount -e nfs.example.internal
Baca profil dalam output itu sebelum membaca senarai klien. Eksport yang kelihatan terhad mungkin terhad hanya melalui alamat sementara setiap pemanggil masih mendakwa mana-mana UID yang disukainya.
Pilih model, kemudian kekalkan kebenaran
Pilih model pengesahan perkhidmatan fail yang sesuai dengan klien yang benar-benar anda uruskan. Kerberos memerlukan identiti dan penggunaan perkhidmatan di belakangnya, jadi menukar satu pilihan lekap bukan migrasi dan hanya akan gagal sehingga domain Kerberos, prinsipal dan keytab wujud.
Di bawah mana-mana model, kekalkan kebenaran eksport dan kebenaran sistem fail yang mengehadkan apa yang boleh dilakukan oleh prinsipal yang disahkan. Pengesahan memberitahu anda siapa yang bertanya; kebenaran menentukan sama ada jawapannya harus ya. Meleburkan kedua-duanya menjadi satu tetapan ialah cara migrasi akhirnya memberikan lebih daripada yang diberikan oleh konfigurasi lama.
Gunakan peraturan alamat untuk tujuan sebenarnya
Menghadkan perkhidmatan kepada laluan dan sumber yang diluluskan masih berbaloi, termasuk dasar input hos apabila titik akhir VPN dan pelayan NFS berkongsi mesin. Peraturan yang memajukan trafik tidak mengawal permintaan yang ditujukan kepada perkhidmatan yang berjalan secara setempat pada hos yang sama. Jurang itu menjelaskan bilangan eksport yang mengejutkan yang bertujuan menjadi peribadi. Periksa dasar input setempat secara eksplisit daripada menganggap peraturan terowong meliputinya.
Periksa bahawa antara muka lain atau gerbang dengan penterjemahan sumber tidak dapat memenuhi peraturan itu secara tidak dijangka, dan anggap itu sebagai sebab untuk menetapkan asal usul, bukan sebagai dakwaan bahawa pemalsuan alamat menjamin lekap yang berfungsi.
Jalankan tiga kes penerimaan dan bukannya satu. Mulakan dengan klien yang diluluskan bertindak sebagai pengguna yang diluluskan, kemudian ulangi dari rakan yang tidak pernah diluluskan, kemudian cuba sesuatu yang masih tidak dibenarkan bagi pengguna yang diluluskan. Selepas itu tanya apa yang berubah jika klien yang dibenarkan dikompromi, kerana pengesahan pengangkutan tidak menjadikan setiap proses pada mesin itu boleh dipercayai. Sijil yang dicuri dan akaun setempat yang ingin tahu ialah masalah berbeza dengan kawalan berbeza.