berikut panduan langkah-demi-langkah untuk memasang Squid proxy di server Debian dan mengaktifkan Basic Authentication (username/password) menggunakan htpasswd. Saya sertakan perintah, cuplikan konfigurasi, pemeriksaan, dan tips keamanan.

Asumsi: Anda punya akses root (atau sudo) ke server Debian dan koneksi internet untuk mengunduh paket.

1) Update & install package

sudo apt update
sudo apt install -y squid apache2-utils

apache2-utils menyediakan htpasswd untuk membuat file password.

2) Buat file password (NCSA format)

Buat direktori & file password di /etc/squid (lokasi konvensional):

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
sudo chmod 640 /etc/squid/passwd

Tambahkan user pertama (flag -c hanya saat membuat file baru):

# hanya pakai -c saat membuat file pertama kali
sudo htpasswd -c /etc/squid/passwd namauser
# masukkan password saat diminta

Untuk menambah user lain:

sudo htpasswd /etc/squid/passwd user2

3) Konfigurasi Squid untuk Basic Auth

Buat custom konfigurasi terpisah supaya mudah maintain :

sudo nano /etc/squid/conf.d/auth.conf
##### Basic Auth Configuration #####

# Program helper untuk otentikasi NCSA
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Proxy
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

# ACL user yang login
acl authenticated proxy_auth REQUIRED

# Izinkan akses untuk user yang sudah login
http_access allow authenticated

# Pastikan rule ini tetap paling akhir
http_access deny all

/usr/lib/squid/basic_ncsa_auth bisa berbeda-beda tergantung operaing system nya,

  • /usr/lib/squid/basic_ncsa_auth

4) Ubah Port Default (Custom Port)

Matikan port default di file config default:

sudo nano /etc/squid/squid.conf

Cari baris http_port 3128 lalu berikan komentar degan memberikan tanda ‘#` atau hapus baris tersebut:

# http_port 3128
sudo nano /etc/squid/conf.d/port.conf

Masukan misal:

# Custom listening port
http_port 8080
# (opsional) — jika kamu ingin tetap mendengarkan default 3128 + port tambahan:
# http_port 3128

# Jika kamu ingin binding ke IP tertentu saja (contoh 192.168.1.10):
# http_port 192.168.1.10:8080

5) Restart Service (systemd)

Restart service systemd untuk menerapkan perubahan

sudo systemctl restart squid

⚠️ Catatan / Hal yang perlu diperhatikan

  • Jika di file squid.conf sudah ada baris http_port 3128, maka Squid akan mendengarkan dua port — default 3128 dan port kustom (misalnya 8080), kecuali kamu mengomentari baris default atau override.
  • Jika kamu hanya ingin port kustom, kamu bisa di file port.conf mendefinisikan http_port 8080 dan di squid.conf pastikan baris default http_port 3128 dikomentari atau dihapus.
  • Setelah perubahan, selalu restart dan periksa status Squid. Juga pastikan firewall (jika ada) membuka port yang baru.