Konfigurasi tampak masuk akal pada pandangan pertama:

acl team_a myportname 3128 src 198.51.100.0/24

Namun definisi ACL hanya punya satu jenis. Di sini myportname adalah jenisnya; menambahkan kata src tidak memulai pengujian kedua. Kata-kata sisanya termasuk dalam daftar nilai jenis pertama. Baris itu tidak menyatakan “listener ini dan jaringan klien ini”.

Beri nama setiap kondisi

Gunakan nama untuk socket pendengar dan ACL sumber terpisah. Kutipan ini memakai alamat dokumentasi, yang harus diganti dengan alamat yang sesuai untuk penerapan:

http_port 192.0.2.10:3128 name=team_a_port
acl team_a_port myportname team_a_port
acl team_a_clients src 198.51.100.0/24

http_access allow team_a_port team_a_clients
http_access deny all

Tempatkan aturan izinkan setelah perlindungan yang ada untuk port tujuan tidak aman, target CONNECT terbatas, dan akses manajemen. Kutipan ini menggambarkan kondisi klien/listener; ia tidak menggantikan perlindungan tersebut.

Kondisi pada satu baris http_access digabungkan dengan AND. Dua baris izinkan terpisah akan meloloskan salah satu kondisi secara independen, yang akan mengubah kebijakan cukup banyak. Beberapa nilai dalam satu ACL biasanya memberi alternatif untuk pengujian tunggal itu.

Pilih jalur keluar secara terpisah

Listener yang cocok juga dapat dipakai oleh tcp_outgoing_address untuk memilih alamat sumber lokal. Itu pemilihan perutean, bukan izin memakai proxy. Aturan alamat keluar tidak dapat membuat permintaan yang ditolak melewati http_access.

Jika konfigurasi multi-alamat berhenti berfungsi setelah peningkatan versi, pisahkan buktinya: kesalahan penguraian menunjuk sintaks konfigurasi; penolakan akses menunjuk pencocokan aturan; permintaan yang diizinkan dengan jalur keluar salah menunjuk pemilihan keluar atau NAT berikutnya. Mengubah ketiganya sekaligus membuat kesalahan ACL kecil jauh lebih sulit ditemukan.

Artikel terkait