Akses VPN ke VLAN: bina matriks sebelum peraturan
Peranan di satu pihak, perkhidmatan di pihak yang lain. Lima semakan mengubah reka bentuk akses VPN ke VLAN yang kabur menjadi jadual yang boleh dilaksanakan oleh pemilik firewall.
Mulakan dengan matriks, bukan sintaks firewall. Jadual dengan peranan di satu pihak dan perkhidmatan di pihak yang lain boleh disemak oleh pemilik aplikasi, dibincangkan oleh pemilik keselamatan dan dilaksanakan oleh sesiapa yang memegang gateway. Semakan itu lebih murah daripada menyahpepijat peraturan yang tidak dipersetujui oleh sesiapa.
Satu jam menulisnya menjimatkan seminggu arkeologi peraturan kemudian. Reka bentuk bercakap tentang siapa mencapai perkhidmatan mana, dan itulah bahagian yang kekal selepas penomboran semula.
Langkah 1: namakan peranan sebelum rangkaian
Mulakan dengan orang, bukan suis. Catat setiap kumpulan yang bersambung dari jauh dan satu ayat yang menerangkan apa yang dilakukan kumpulan itu, seperti kakitangan gudang yang membaca tahap stok atau kontraktor yang menyelenggara satu integrasi. Jika dua kumpulan menerima akses yang sama, mereka satu peranan untuk tujuan ini.
Berhenti di sini jika sesuatu peranan wujud hanya kerana carta organisasi. Peranan tanpa keperluan perkhidmatan tersendiri menjadi baris sel yang serupa, dan baris yang serupa mengajak seseorang kemudian memberikan seluruh subnet demi kemudahan. Bahagikan mengikut apa yang orang lakukan, bukan mengikut siapa yang menandatangani perbelanjaan mereka. Enam peranan biasanya terlalu banyak untuk pejabat kecil dan tiga selalunya betul.
Langkah 2: tukar setiap sel menjadi pernyataan perkhidmatan
Sel yang tertulis „Aplikasi“ tidak boleh diuji. Sel yang tertulis „HTTPS ke hos ERP pada 443, dari kumpulan kakitangan“ boleh diuji. Gantikan setiap nama rangkaian dengan destinasi, protokol dan port, kemudian tambah kebergantungan yang tanpanya perkhidmatan tidak berfungsi, seperti penyelesai dalaman atau pembekal identiti.
| Check | Passes when | Stop if |
|---|---|---|
| Destination named | Host and port appear in the cell | Cell names a VLAN or a subnet |
| Direction stated | Initiator and responder are both clear | Cell implies two-way access |
| Dependency listed | DNS or identity path is explicit | Whole infrastructure range is granted |
| Negative case written | At least one denied pair is recorded | Only allow rules exist |
Lajur arah menangkap kesilapan paling mahal. Kebenaran untuk kakitangan membuka aplikasi tidak bermakna kebenaran untuk pelayan aplikasi membuka sambungan balik ke komputer riba kakitangan, dan peraturan berkeadaan yang membenarkan arah pertama sering dibaca seolah-olah membenarkan yang kedua.
Langkah 3: tentukan di mana identiti menjadi dasar
Seseorang mesti menukar sesi yang disahkan menjadi peranan yang boleh dikuatkuasakan oleh gateway. Pilihan yang disokong termasuk dasar kumpulan yang disampaikan oleh backend pengesahan, atribut sesi yang dipercayai, atau kumpulan alamat berasingan bagi setiap peranan. Ketiga-tiganya berfungsi; label yang dihantar oleh klien tidak. Pilih mekanisme yang didokumenkan oleh gateway anda, bukan yang diterangkan oleh catatan forum.
Memberikan alamat yang hanya kelihatan milik VLAN ialah jawapan yang sama-sama kosong dalam pakaian lain. Panduan Netgate tentang peraturan firewall OpenVPN menjelaskan pemisahan itu: membenarkan terowong naik adalah keputusan berbeza daripada membenarkan trafik melaluinya.
Catat mekanisme mana yang anda pilih dan di mana ia dikonfigurasikan. Apabila sesuatu peranan berubah, catatan itu ialah perbezaan antara satu suntingan dan pencarian melalui tiga antara muka. Ia juga memberitahu juruaudit di mana perlu dilihat dahulu.
Langkah 4: perhatikan alamat sumber yang dilihat oleh destinasi
Dasar penghantaran mesti sepadan dengan sumber sebenar di sempadan. Jika gateway menterjemah klien VPN ke alamatnya sendiri, setiap firewall di hilir melihat satu sumber dan kehilangan keupayaan membuat keputusan mengikut peranan. Jika ia mengekalkan alamat klien, laluan balik mesti wujud untuk kumpulan itu.
Uji kedua-dua arah sebelum menulis peraturan akhir, kemudian catat sumber yang diperhatikan di sebelah setiap sel. Jalankan semakan yang sama dari dua peranan berbeza dan bandingkan hasilnya. Jika kedua-duanya menunjukkan alamat gateway, pembezaan peranan sudah hilang. Matriks yang menganggap alamat dikekalkan sedangkan gateway melakukan terjemahan sumber gagal pada ACL hilir pertama.
Langkah 5: uji setiap sel sebelum dikeluarkan
Tukar setiap sel yang dibenarkan menjadi satu operasi wakil dan setiap sel yang ditolak menjadi kes negatif. Jalankan kedua-duanya dari klien dalam peranan sebenar, bukan dari konsol gateway, kerana konsol memintas laluan yang anda uji.
# allowed: staff role reaches the ERP endpoint
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://erp.internal.example/health
# denied: the same role must not reach a management host
nc -vz -w 3 10.30.5.11 22
# observed source address at the destination
sudo tcpdump -ni any 'tcp port 443 and host 10.30.20.15'
Kes negatif yang bersambung ialah penemuan, bukan kebetulan, dan tempatnya dalam matriks sebagai sel yang gagal sehingga peraturan diperbaiki. Simpan arahan ujian di sebelah jadual supaya penyemak seterusnya menjalankannya semula dan bukannya membina semula penalaran.
Jadual yang siap bertahan lebih lama daripada gateway yang menjadi tujuannya. Peraturan berubah dengan firmware dan vendor, manakala baris yang menyatakan seorang kontraktor mencapai satu perkhidmatan projek kekal benar sehingga kerja itu berubah.