Dua kumpulan klien, satu pelayan: di mana dasar dikuatkuasakan
Subnet melabel kumpulan; ia tidak mengasingkannya. Tentukan laluan penghantaran mana yang memiliki peraturan, kemudian tulis matriks yang mesti dikuatkuasakan oleh pelaksanaan.
Meletakkan dua kumpulan klien pada subnet berbeza kelihatan seperti pengasingan, dan ia bukan. Alamat menerangkan dari mana paket kelihatan datang, manakala kebenaran ialah keputusan yang dibuat oleh apa sahaja yang menghantarnya. Soalan itu dijawab oleh konfigurasi dan bukan topeng, jadi tentukan komponen mana yang menghantar trafik rakan sebaya sebelum menulis apa-apa peraturan.
Subnet ialah label, bukan peraturan
Memberi satu kolam bagi setiap kumpulan memberikan alamat yang mudah dibaca dan tiada yang lain. Klien yang menerima laluan tambahan telah mendapat kebolehcapaian, dan kebolehcapaian bukan kebenaran. Kebenaran untuk bercakap terletak pada keputusan penghantaran, yang mungkin berada dalam daemon atau dalam kernel bergantung pada cara pelayan dikonfigurasikan.
Pemilikan alamat ialah yang menjadikan awalan boleh digunakan sebagai pemilih kumpulan. Setiap identiti yang disahkan mesti memetakan kepada alamat atau julat yang boleh diramal, dan pemetaan itu gagal sebaik sahaja beberapa peranti berkongsi satu kelayakan dan satu peruntukan. Selesaikan identiti dan keserentakan sebelum bergantung pada awalan sumber, kerana dasar yang meneka mesin mana yang memanggil memberi kebenaran kepada yang salah pada saat paling buruk.
Pilih laluan yang membawa trafik rakan sebaya
Apabila daemon menghantar paket rakan sebaya dalam prosesnya sendiri, paket itu tidak pernah sampai ke cangkuk penghantaran hos, jadi peraturan kernel tidak dapat melihatnya. Lumpuhkan penghantaran dalaman itu dan kernel menjadi titik penghantaran, di mana peraturan penghantaran biasa terpakai.
# peer forwarding inside the daemon: enforce with per-group policy instead of FORWARD rules
client-to-client
# kernel forwarding path: remove the line above, then filter in the forward chain
Saluran data yang dipunggah dan pelayan yang diuruskan produk menerbitkan model penguatkuasaan mereka sendiri, jadi sahkan mana yang anda jalankan dan bukannya menganggap tingkah laku komuniti. Kegagalan yang wajar dielakkan ialah peraturan yang kelihatan betul dalam semakan dan tidak pernah dirujuk semasa runtime.
Tulis matriks sebelum menulis peraturan
Matriks pendek lebih mudah disemak daripada set peraturan, dan ia adalah kontrak yang mesti dipenuhi oleh pelaksanaan: rakan sebaya kumpulan sama dibenarkan, rakan sebaya antara kumpulan dinafikan, kedua-dua kumpulan dibenarkan ke satu perkhidmatan dikongsi yang dinamakan, segala yang lain dinafikan. Tulis empat baris itu sebelum membuka editor tembok api. Penyemak yang tidak membaca sintaks peraturan masih boleh memeriksa matriks. Pelaksanaan kemudian hanya perlu sepadan dengan baris itu.
| Source | Destination | Decision |
|---|---|---|
| Group A address | Another Group A address | Allow |
| Group A address | A Group B address | Deny |
| Either group | The shared internal service | Allow |
| Either group | Anything not listed | Deny |
Pisahkan tiga kelas destinasi semasa menulisnya. Perkhidmatan pada hos VPN ialah input tempatan, klien lain ialah transit rakan sebaya, dan mesin di belakang get laluan ialah laluan penghantaran yang berbeza. Satu peraturan longgar boleh memberikan ketiga-tiganya secara tidak sengaja, dan begitulah dasar kumpulan bertukar menjadi rangkaian rata dengan langkah tambahan. Tulis kelas di sebelah setiap baris supaya niat itu kekal pada suntingan seterusnya.
Letakkan peraturan di tempat ia bertahan
Tambahkan keputusan di tempat yang sama dengan penyelenggaraan tembok api yang lain, sebelum mana-mana peraturan permisif yang jika tidak akan menelannya. Susunan peraturan ialah sebahagian daripada dasar, dan peraturan betul yang diletakkan selepas penerimaan luas tidak menguatkuasakan apa-apa. Catat nombor peraturan sebelum dan selepas perubahan. Dasar yang wujud dalam editor tetapi tidak dalam set peraturan yang berjalan ialah pelan, bukan kawalan.
Tentukan apa yang berlaku kepada aliran yang sudah wujud apabila dasar berubah, kerana sesi yang dibuka sebelum perubahan boleh terus berjalan selepasnya. Jika ahli yang keluar mesti kehilangan akses serta-merta, set peraturan memerlukan cara untuk menamatkan keadaan itu dan bukannya menunggu sambungan ditutup sendiri.
Jadikan peraturan kekal melalui mekanisme yang memiliki tembok api yang lain, dan catat matriks di sebelahnya. Dasar yang tidak direkodkan akan diterbitkan semula daripada ingatan semasa insiden seterusnya, biasanya oleh seseorang yang tergesa-gesa.
Buktikan dari kedua-dua belah
Uji kebolehcapaian dalam kumpulan yang sama, kegagalan antara kumpulan dan perkhidmatan dikongsi daripada satu klien dalam setiap kumpulan. Satu ujian daripada satu klien membuktikan separuh matriks, dan separuh yang ditinggalkan biasanya yang salah. Ulangi arah penafian dua kali, kerana sesi yang dicache boleh menyembunyikan kesilapan penguatkuasaan. Catat pasangan mana yang anda uji supaya orang seterusnya tidak mengulanginya.
Ulangi pemeriksaan pada IPv6 jika terowong membawanya, dan kekalkan pengesahan aplikasi biasa. Awalan sumber bukan akaun, jadi lulus dasar rangkaian tidak bermakna perkhidmatan harus mempercayai pemanggil.