Mulailah dari matriks, bukan dari sintaks firewall. Tabel dengan peran di satu sisi dan layanan di sisi lain bisa ditinjau oleh pemilik aplikasi, diperdebatkan oleh pemilik keamanan, dan diterapkan oleh siapa pun yang memegang gateway. Tinjauan itu lebih murah daripada menelusuri aturan yang tidak pernah disepakati siapa pun.

Satu jam menulisnya menghemat satu minggu arkeologi aturan di kemudian hari. Rancangan membahas siapa mencapai layanan mana, dan itulah bagian yang bertahan setelah penomoran ulang.

Langkah 1: namai perannya sebelum jaringannya

Mulailah dari orangnya, bukan dari switch. Catat setiap kelompok yang terhubung dari jarak jauh dan satu kalimat yang menjelaskan apa yang dikerjakan kelompok itu, misalnya staf gudang yang membaca tingkat stok atau kontraktor yang memelihara satu integrasi. Jika dua kelompok akan menerima akses yang sama, keduanya satu peran untuk keperluan ini.

Berhentilah di sini jika sebuah peran hanya ada karena bagan organisasi. Peran tanpa kebutuhan layanan tersendiri menjadi baris sel yang identik, dan baris yang identik mengundang seseorang kelak memberikan satu subnet penuh demi kenyamanan. Bagi berdasarkan apa yang dikerjakan orang, bukan berdasarkan siapa yang menandatangani pengeluaran mereka. Enam peran biasanya terlalu banyak untuk kantor kecil dan tiga sering kali tepat.

Langkah 2: ubah setiap sel menjadi pernyataan layanan

Sel yang bertuliskan „Aplikasi“ tidak bisa diuji. Sel yang bertuliskan „HTTPS ke host ERP pada 443, dari kumpulan staf“ bisa diuji. Ganti setiap nama jaringan dengan tujuan, protokol, dan port, lalu tambahkan ketergantungan yang tanpanya layanan tidak berjalan, seperti resolver internal atau penyedia identitas.

CheckPasses whenStop if
Destination namedHost and port appear in the cellCell names a VLAN or a subnet
Direction statedInitiator and responder are both clearCell implies two-way access
Dependency listedDNS or identity path is explicitWhole infrastructure range is granted
Negative case writtenAt least one denied pair is recordedOnly allow rules exist

Kolom arah menangkap kesalahan termahal. Izin bagi staf untuk membuka aplikasi tidak berarti izin bagi server aplikasi untuk membuka koneksi balik ke laptop staf, dan aturan stateful yang mengizinkan arah pertama sering dibaca seolah mengizinkan yang kedua.

Langkah 3: putuskan di mana identitas menjadi kebijakan

Seseorang harus mengubah sesi yang terautentikasi menjadi peran yang dapat diberlakukan gateway. Opsi yang didukung mencakup kebijakan grup yang dikirim backend autentikasi, atribut sesi tepercaya, atau kumpulan alamat terpisah per peran. Ketiganya berfungsi; label yang dikirim klien tidak. Pilih mekanisme yang didokumentasikan gateway Anda, bukan yang dijelaskan sebuah kiriman forum.

Menetapkan alamat yang sekadar tampak milik sebuah VLAN adalah jawaban yang sama-sama kosong dalam kostum lain. Panduan Netgate tentang aturan firewall OpenVPN menegaskan pemisahannya: mengizinkan terowongan naik adalah keputusan berbeda dari mengizinkan lalu lintas melewatinya.

Catat mekanisme mana yang Anda pilih dan di mana ia dikonfigurasi. Ketika sebuah peran berubah, catatan itu adalah selisih antara satu suntingan dan perburuan melalui tiga antarmuka. Catatan itu juga memberi tahu auditor ke mana harus melihat lebih dulu.

Langkah 4: perhatikan alamat sumber yang dilihat tujuan

Kebijakan penerusan harus sesuai dengan sumber sebenarnya di batas. Jika gateway menerjemahkan klien VPN ke alamatnya sendiri, setiap firewall di hilir melihat satu sumber dan kehilangan kemampuan mengambil keputusan per peran. Jika gateway mempertahankan alamat klien, jalur balik harus ada untuk kumpulan itu.

Uji kedua arah sebelum menulis aturan akhir, lalu catat sumber yang teramati di samping setiap sel. Jalankan pemeriksaan yang sama dari dua peran berbeda dan bandingkan hasilnya. Jika keduanya menunjukkan alamat gateway, pembedaan peran sudah hilang. Matriks yang mengasumsikan alamat dipertahankan sementara gateway melakukan terjemahan sumber gagal pada ACL hilir pertama.

Langkah 5: uji setiap sel sebelum dirilis

Ubah setiap sel yang diizinkan menjadi satu operasi perwakilan dan setiap sel yang ditolak menjadi kasus negatif. Jalankan keduanya dari klien dalam peran yang sebenarnya, bukan dari konsol gateway, karena konsol melewati jalur 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'

Kasus negatif yang tersambung adalah temuan, bukan kebetulan, dan tempatnya di matriks sebagai sel yang gagal sampai aturannya diperbaiki. Simpan perintah uji di samping tabel agar peninjau berikutnya menjalankannya lagi alih-alih membangun ulang penalarannya.

Tabel yang sudah selesai bertahan lebih lama daripada gateway yang menjadi sasarannya. Aturan berubah bersama firmware dan vendor, sedangkan baris yang menyatakan seorang kontraktor mencapai satu layanan proyek tetap benar sampai pekerjaan itu berubah.

Artikel terkait