Prosedur ini menambahkan autentikasi Basic berbasis NCSA ke proxy Squid 6.13 yang dibatasi menurut sumber. Helper Debian 13 adalah /usr/lib/squid/basic_ncsa_auth; pastikan jalur dan akun layanan paket Anda.

Buat akun pertama

Gunakan utilitas htpasswd distribusi dan masukkan kata sandi secara interaktif:

sudo htpasswd -c /etc/squid/users proxyuser
sudo chown root:proxy /etc/squid/users
sudo chmod 640 /etc/squid/users

Kepemilikan mengasumsikan grup layanan Debian. Squid perlu membaca berkas, pengguna lain tidak boleh. Untuk akun selanjutnya, hilangkan -c yang membuat berkas baru dan dapat mengganti entri lama.

Wajibkan sumber dan login dalam aturan izin yang sama

Letakkan ini setelah perlindungan port tujuan, administrasi, localhost, dan alamat link-local yang ada:

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/users
auth_param basic realm PrivateProxy

acl proxy_client src 198.51.100.27/32
acl logged_in proxy_auth REQUIRED

http_access allow proxy_client logged_in
http_access deny all

Ganti alamat klien dengan sumber yang dilihat Squid. Kedua kondisi harus cocok. Hapus izin klien luas sebelumnya yang akan melewati aturan login, sambil mempertahankan pembatasan listener dan firewall.

Parse, muat ulang, lalu bandingkan dua permintaan

sudo squid -k parse -f /etc/squid/squid.conf

Perbaiki kesalahan parser dan muat ulang layanan Squid yang dikelola sebelum menguji. Dari sumber yang diizinkan, permintaan tanpa kredensial seharusnya mendapat tantangan autentikasi. Bandingkan dengan permintaan berizin memakai hostname proxy yang sebenarnya:

curl --proxy http://proxy.example:3128 --proxy-basic --proxy-user proxyuser --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/

Hanya memberi nama pengguna membuat curl meminta kata sandi. Permintaan valid seharusnya mencapai tujuan.

Autentikasi Basic tidak mengenkripsi pertukaran klien-proxy. HTTPS tujuan yang terjadi kemudian tidak melindungi kredensial yang sudah dikirim ke proxy teks terbuka; gunakan jalur yang terlindungi dengan tepat. Direktif ini untuk Squid 6.13; lihat konfigurasi khusus versi untuk Squid 8.

Artikel terkait