Squid adalah proxy caching berfitur lengkap yang mendukung protokol jaringan populer seperti HTTP, HTTPS, FTP, dan banyak lagi. Menempatkan Squid di depan web server dapat sangat meningkatkan kinerja server dengan meng-caching permintaan yang berulang, memfilter lalu lintas web dan mengakses konten yang dibatasi secara geografis.

Tutorial ini menjelaskan cara mengatur Squid di Debian 10 dan mengkonfigurasi Firefox dan browser web Google Chrome untuk menggunakan proxy.

Install Squid di Debian

Paket squid termasuk dalam repositori default Debian 10. Untuk menginstalnya jalankan perintah berikut sebagai user sudo:

sudo apt update
sudo apt install squid

Untuk memverifikasi instalasi berhasil, ketik perintah berikut yang akan mencetak status layanan:

sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Sat 2019-08-03 08:52:47 PDT; 3s ago
...

Mengkonfigurasi Squid

Squid dapat dikonfigurasi dengan mengedit file /etc/squid/squid.conf. File tambahan dengan opsi konfigurasi dapat dimasukkan menggunakan arahan “include”.

Sebelum melakukan perubahan, buat backup file konfigurasi asli:

sudo cp /etc/squid/squid.conf{,.original}

Untuk mengedit file, buka di editor teks nano dengan perintah berikut :

sudo nano /etc/squid/squid.conf

Secara default, Squid dikonfigurasikan untuk listen pada port 3128 pada semua interface jaringan pada server.

Jika Anda ingin mengubah port dan interface port, cari baris yang dimulai dengan http_port dan tentukan alamat IP dan port baru. Jika tidak ada antarmuka yang ditentukan, Squid akan mendengarkan pada semua interface.

# Squid normally listens to port 3128
http_port IP_ADDR:PORT

Menjalankan Squid pada semua interface dan pada port default sudah cukup baik untuk sebagian besar pengguna.

Anda dapat mengontrol akses ke server Squid menggunakan Access Control Lists (ACL).

Secara default, Squid hanya mengizinkan akses dari localhost dan localnet.

Jika semua klien yang akan menggunakan proxy memiliki alamat IP statis, Anda dapat membuat ACL yang akan menyertakan semua IP yang diizinkan.

Alih-alih menambahkan alamat IP dalam file konfigurasi utama, kita akan membuat file baru yang khusus akan menampung IP:

sudo nano /etc/squid/allowed_ips.txt
192.168.33.1
# All other allowed IPs

Setelah selesai, buka file konfigurasi utama dan buat ACL baru bernama allowed_ips (baris pertama yang disorot) dan izinkan akses ke ACL menggunakan direktif http_access (baris yang disorot kedua):

/etc/squid/squid.conf
# ...
acl allowed_ips  src "/etc/squid/allowed_ips.txt"
# ...
http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all

Urutan untuk aturan http_access cukup penting. Pastikan Anda menambahkan baris sebelum http_access deny all.

Directive http_access berfungsi dengan cara yang sama seperti aturan firewall. Squid membaca aturan dari atas ke bawah, dan ketika aturan cocok pada seksi tertentu, maka aturan di bawahnya tidak diproses.

Setiap kali Anda membuat perubahan pada file konfigurasi, Anda perlu me-restart layanan Squid agar perubahan diterapkan:

sudo systemctl restart squid

Otentikasi Squid

Squid dapat menggunakan back ends yang berbeda, termasuk Samba, LDAP dan autentikasi dasar HTTP untuk pengguna yang diautentikasi.

Dalam contoh ini, kita akan mengonfigurasi Squid untuk menggunakan auth dasar. Ini adalah metode otentikasi sederhana yang dibangun ke dalam protokol HTTP.

kita akan menggunakan openssl untuk menghasilkan kata sandi dan menambahkan username:password pair ke file /etc/squid/htpasswd dengan perintah tee seperti yang ditunjukkan di bawah ini:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

Misalnya untuk membuat pengguna bernama “doni” dengan kata sandi “Zoz$lOj76“, maka jalankan perintah berikut:

printf "doni:$(openssl passwd -crypt 'Zoz$lOj76')\n" | sudo tee -a /etc/squid/htpasswd
doni:2tUgQsRsPHsIo

Langkah selanjutnya adalah mengkonfigurasi Squid untuk mengaktifkan otentikasi dasar HTTP dan menggunakan file.

Buka konfigurasi utama dan tambahkan berikut ini:

/etc/squid/squid.conf
# ...
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all

Dengan tiga baris pertama yang disorot, kami membuat ACL baru bernama authenticated. Baris yang disorot terakhir adalah memungkinkan akses ke pengguna yang diautentikasi.

Restart layanan Squid:

sudo systemctl restart squid

Konfigurasi firewall

Jika Anda menjalankan Firewall UFW, Anda harus membuka port 3128. Untuk itu jalankan perintah berikut:

sudo ufw allow 'Squid'

Jika menggunakan nftables untuk memfilter koneksi ke sistem Anda, buka port yang diperlukan dengan mengeluarkan perintah berikut:

sudo nft add rule inet filter input tcp dport 3128 ct state new,established counter accept

Jika Squid berjalan di port lain, atau port non-default, Anda harus mengizinkan lalu lintas di port tersebut.

Konfigurasi Browser untuk Menggunakan Proxy

Sekarang Anda telah menyiapkan Squid, langkah terakhir adalah mengonfigurasi peramban pilihan Anda untuk menggunakannya.

Firefox

Langkah-langkah di bawah ini sama untuk Windows, macOS, dan Linux.

  1. Di sudut kanan atas, klik ikon  untuk membuka menu Firefox:
  2. Klik tautan ⚙ Preferences.
  3. Gulir ke bawah ke bagian Network Settings dan klik tombol Settings....
  4. Jendela baru akan terbuka.
    • Pilih tombol radio Manual proxy configuration
    • Masukkan alamat IP server Squid Anda di bidang HTTP Host dan 3128 pada bidang Port.
    • Pilih kotak centang Use this proxy server for all protocols.
    • Klik tombol OK untuk menyimpan pengaturan.

Pada poin ini, Firefox telah dikonfigurasi dan Anda dapat menjelajahi Internet melalui Squid proxy. Untuk memverifikasinya, buka google.com, ketik “what my ip” dan Anda akan melihat alamat IP server Squid Anda.

Untuk kembali ke pengaturan default, pergi ke Network Settings, pilih tombol radio Use system proxy settings sistem dan simpan pengaturan.

Ada juga beberapa plugin yang dapat membantu Anda mengonfigurasi pengaturan proxy Firefox seperti FoxyProxy.

Google Chrome

Google Chrome menggunakan pengaturan proxy sistem default. Alih-alih mengubah pengaturan proxy sistem operasi, Anda dapat menggunakan addon seperti SwitchyOmega atau memulai browser web Chrome dari baris perintah.

Untuk menjalankan Chrome menggunakan profil baru dan terhubung ke Squid server , gunakan perintah berikut:

Linux :

/usr/bin/google-chrome \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="http://SQUID_IP:3128"

macOS :

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="http://SQUID_IP:3128"

Windows :

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
    --user-data-dir="%USERPROFILE%\proxy-profile" ^
    --proxy-server="http://SQUID_IP:3128"

Profil akan dibuat secara otomatis jika tidak ada. Dengan cara ini Anda dapat menjalankan beberapa instance Chrome secara bersamaan.

Untuk mengonfirmasi server proxy berfungsi dengan baik, buka google.com, dan ketik “what is my ip”. IP yang ditampilkan di browser adalah alamat IP server Anda.

Kesimpulan

Anda telah belajar cara menginstal squid di Debian 10 dan mengkonfigurasi browser Anda untuk menggunakannya.

Squid adalah salah satu server proxy caching yang paling populer. Squid meningkatkan kecepatan web server dan dapat membantu Anda membatasi akses pengguna ke Internet.