Squid adalah proxy caching berfitur lengkap yang mendukung protokol jaringan populer seperti HTTP, HTTPS, FTP, dan banyak lagi. Ini dapat digunakan untuk meningkatkan kinerja server web dengan menyimpan permintaan berulang dalam cache, memfilter lalu lintas web, dan mengakses konten yang dibatasi secara geografis.
Tutorial ini menjelaskan cara menyiapkan Proxy Squid di Ubuntu 20.04 dan mengonfigurasi browser web Firefox dan Google Chrome untuk menggunakannya.
Menginstal Squid di Ubuntu #
Paket squid termasuk dalam repositori standar Ubuntu 20.04. Untuk menginstalnya, jalankan perintah berikut sebagai pengguna sudo:
sudo apt update
sudo apt install squid
Setelah instalasi selesai, layanan Squid akan dimulai secara otomatis. Untuk memverifikasinya, periksa status layanan:
sudo systemctl status squid
Outputnya akan terlihat seperti ini:
● squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago
Docs: man:squid(8)
...
Konfigurasi Squid #
Layanan squid dapat dikonfigurasi dengan mengedit /etc/squid/squid.conf
mengajukan. File konfigurasi berisi komentar yang menjelaskan apa yang dilakukan setiap opsi konfigurasi. Anda juga dapat menempatkan pengaturan konfigurasi Anda dalam file terpisah, yang dapat disertakan dalam file konfigurasi utama menggunakan perintah “include”.
Sebelum membuat perubahan apa pun, disarankan untuk mencadangkan file konfigurasi asli:
sudo cp /etc/squid/squid.conf{,.orginal}
Untuk mulai mengonfigurasi instance squid Anda, buka file di editor teks Anda:
sudo nano /etc/squid/squid.conf
Secara default, squid diatur untuk mendengarkan pada port 3128
pada semua antarmuka jaringan di server.
Jika Anda ingin mengubah port dan menyetel antarmuka pendengar, cari baris yang dimulai dengan http_port
dan tentukan alamat IP antarmuka dan port baru. Jika tidak ada antarmuka yang ditentukan, Squid akan mendengarkan semua antarmuka.
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
Menjalankan Squid di semua antarmuka dan pada port default tidak masalah bagi sebagian besar pengguna.
Squid memungkinkan Anda untuk mengontrol bagaimana klien dapat mengakses sumber daya web menggunakan Access Control Lists (ACLs). Secara default, akses hanya diizinkan dari localhost.
Jika semua klien yang menggunakan proxy memiliki alamat IP statis, opsi paling sederhana untuk membatasi akses ke server proxy adalah membuat ACL yang akan menyertakan IP yang diizinkan. Jika tidak, Anda dapat mengatur squid untuk menggunakan otentikasi.
Alih-alih menambahkan alamat IP di file konfigurasi utama, buat file khusus baru yang akan menampung IP yang diizinkan:
/etc/squid/allowed_ips.txt192.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 tersebut menggunakan http_access
direktif (baris kedua yang disorot):
# ...
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 http_access
aturan itu penting. Pastikan Anda menambahkan baris sebelum http_access deny all
.
http_access
direktif bekerja dengan cara yang sama seperti aturan firewall. Squid membaca aturan dari atas ke bawah, dan ketika aturan cocok, aturan di bawah 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 #
Jika membatasi akses berdasarkan IP tidak berhasil untuk kasus penggunaan Anda, Anda dapat mengonfigurasi squid untuk menggunakan back-end untuk mengautentikasi pengguna. Squid mendukung Samba, LDAP, dan otentikasi dasar HTTP.
Dalam panduan ini, kami akan menggunakan otentikasi dasar. Ini adalah metode otentikasi sederhana yang dibangun ke dalam protokol HTTP.
Untuk membuat sandi terenkripsi, gunakan openssl
alat. Perintah berikut menambahkan USERNAME:PASSWORD
pasangkan ke /etc/squid/htpasswd
berkas:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Misalnya, untuk membuat user “josh” dengan password “P@ssvv0rT
”, Anda akan menjalankan:
printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6
Langkah selanjutnya adalah mengaktifkan otentikasi dasar HTTP dan menyertakan file yang berisi kredensial pengguna ke file konfigurasi squid.
Buka konfigurasi utama dan tambahkan berikut ini:
sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf# ...
auth_param basic program /usr/lib/squid3/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
Tiga baris pertama yang disorot membuat ACL baru bernama authenticated
, dan baris terakhir yang disorot memungkinkan akses ke pengguna yang diautentikasi.
Mulai ulang layanan Squid:
sudo systemctl restart squid
Mengonfigurasi firewall #
Untuk membuka port Squid, aktifkan UFW
Profil 'cumi-cumi':
sudo ufw allow 'Squid'
Jika Squid berjalan di port non-default lain, misalnya 8888
anda dapat mengizinkan lalu lintas pada port tersebut dengan:sudo ufw allow 8888/tcp
.
Mengonfigurasi Browser Anda untuk Menggunakan Proxy #
Sekarang setelah Anda menyiapkan Squid, langkah terakhir adalah mengonfigurasi browser pilihan Anda untuk menggunakannya.
Firefox #
Langkah-langkah di bawah ini sama untuk Windows, macOS, dan Linux.
-
Di pojok kanan atas, klik ikon hamburger
☰
untuk membuka menu Firefox: -
Klik pada
⚙ Preferences
tautan. -
Gulir ke bawah ke
Network Settings
dan klikSettings...
tombol. -
Jendela baru akan terbuka.
- Pilih
Manual proxy configuration
tombol radio. - Masukkan alamat IP server Squid Anda di
HTTP Host
bidang dan3128
diPort
lapangan. - Pilih
Use this proxy server for all protocols
kotak centang. - Klik
OK
tombol untuk menyimpan setelan.
- Pilih
Pada titik ini, Firefox Anda telah dikonfigurasi, dan Anda dapat menjelajahi Internet melalui proxy Squid. Untuk memverifikasinya, buka google.com
, ketik “what is my ip” dan Anda akan melihat alamat IP server Squid Anda.
Untuk kembali ke pengaturan default, buka Network Settings
, pilih Use system proxy settings
tombol radio dan simpan pengaturannya.
Ada beberapa plugin yang juga dapat membantu Anda mengonfigurasi pengaturan proxy Firefox, seperti FoxyProxy.
Google Chrome #
Google Chrome menggunakan pengaturan proxy sistem default. Alih-alih mengubah setelan proxy sistem operasi, Anda dapat menggunakan addon seperti SwitchyOmega atau memulai browser web Chrome dari baris perintah.
Untuk meluncurkan Chrome menggunakan profil baru dan terhubung ke server Squid, 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 memastikan server proxy berfungsi dengan baik, buka google.com
, dan ketik "apa ip saya". IP yang ditampilkan di browser Anda harus alamat IP server Anda.