Cara Setup Squid Proxy Server (Ubuntu 22.04)

Konfigurasi default untuk Squid Proxy

SquidProxy standar dengan konfigurasi berikut yang dapat diubah dengan mudah:

  • Port proxy default ke 3128.
  • Hostname adalah SquidProxy.
  • Kontrol akses diatur untuk mengizinkan 10.0.0.0/8. Ini dapat diubah/ditambah untuk mengizinkan jaringan yang ada di tempat Anda.
  • Tweak pengoptimalan telah dibuat untuk membuat server bekerja lebih cepat.

Optimasi Squid Proxy Server

Kami telah sedikit mengkonfigurasi file Squid (squid.conf) dan mensetup untuk performa tinggi dengan tweak berikut yang dapat disesuaikan. (Catatan: bisa berbeda performa, karena masing-masing infrastruktur jaringan berbeda-beda)

 

hosts_file /etc/hosts
cache_replacement_policy heap LFUDA
cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 50 KB
cache_dir aufs /var/spool/squid 3000 16 256
cache_mem 100 MB
logfile_rotate 10
memory_pools off
maximum_object_size 50 MB
quick_abort_min 0 KB
quick_abort_max 0 KB
log_icp_queries off
client_db off
buffered_logs on
half_closed_clients off.

Kami juga menambahkan refresh_patterns berikut untuk mempercepat browsing dari jenis file media umum yang akan di-cache:

 
cache_dir ufs /var/spool/squid 3000 16 256
 
refresh_pattern -i \.(gir|png|jpg|jpeg|ico)$ 3600 90% 43200 
refresh_pattern -i \.(3gp|7z|ace|asx|avi|bin|cab|dat|deb|divx|dvr-ms) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|css|js) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern -i \.(mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rar|rm|r(a|p)m|snd|vob|wav) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern -i \.(pp(s|t)|wax|wm(a|v)|wmx|wpl|zip|cb(r|z|t)) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern windowsupdate.com/.*\.(cab|exe) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern update.microsoft.com/.*\.(cab|exe) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern download.microsoft.com/.*\.(cab|exe) 10800 80% 10800 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims 
refresh_pattern ^http://.googlesyndication.*/.* 720 100% 4320 
refresh_pattern ^http://*.google.*/.* 720 100% 4320 
refresh_pattern -i \.htm 120 50% 10080 reload-into-ims 
refresh_pattern -i \.html 120 50% 10080 reload-into-ims

Proses Instalasi SquidProxy

Sebelum memulai, selalu disarankan untuk memperbarui sistem Anda dengan paket terbaru.

 
 
apt update -y 
apt upgrade -y

Untuk menggunakan Squid sebagai proksi transparan, Anda harus mengaktifkan penerusan IP di server Anda. Aktifkan dengan mengedit file sysctl.conf.

 
 
nano /etc/sysctl.conf

Uncomment pada baris berikut:

 
 
net.ipv4.ip_forward = 1

Simpan file kemudian jalankan perintah berikut untuk mengimplementasikan perubahan.

 
 
sysctl -p

Installing SquidProxy

 
 
apt install squid -y 
systemctl start squid 
systemctl enable squid 
systemctl status squid

Squid Proxy ACL – Access Control List

 
 
sudo nano /etc/squid/squid.conf
 
 
# Example rule allowing access from your local networks. 
# Adapt to list your (internal) IP networks from where browsing 
# should be allowed 
acl localnet src 0.0.0.1-0.255.255.255  # RFC 1122 "this" network (LAN) 
acl localnet src 10.0.0.0/8             # RFC 1918 local private network (LAN) 
acl localnet src 100.64.0.0/10          # RFC 6598 shared address space (CGN) 
acl localnet src 169.254.0.0/16         # RFC 3927 link-local (directly plugged) machines 
acl localnet src 172.16.0.0/12          # RFC 1918 local private network (LAN) 
acl localnet src 192.168.0.0/16         # RFC 1918 local private network (LAN) 
acl localnet src fc00::/7               # RFC 4193 local private network range 
acl localnet src fe80::/10              # RFC 4291 link-local (directly plugged) machines
 
 
# Example rule allowing access from your local networks. 
# Adapt localnet in the ACL section to list your (internal) IP networks 
# from where browsing should be allowed 
http_access allow localnet 
http_access allow localhost 
 
# And finally deny all other access to this proxy 
http_access deny all
 
 
service squid restart

Ubah alamat email admin squid

Opsi ini mengirimkan email ke administrator ketika Squid mengalami masalah. Sangat berguna untuk memantau kesehatan server Anda.

 
# ADMINISTRATIVE PARAMETERS 
# ----------------------------------------------------------------------------- 
 
#  TAG: cache_mgr 
#       Email-address of local cache manager who will receive 
#       mail if the cache dies.  The default is "webmaster". 
#Default: 
# cache_mgr webmaster 
cache_mgr [email protected]

Change the proxy listener port

Jika Anda ingin mengubah port default 3128 ke port lain, atau menambahkan dan port tambahan cukup buka file squid.conf melalui editor nano seperti yang ditunjukkan pada langkah sebelumnya dan cari – http_port 3128 dan ganti dengan port yang Anda inginkan.

 
# Squid normally listens to port 3128 
http_port 3128 
http_port 1337 
http_port 1338

Change the proxy hostname

Untuk mengubah nama host yang akan dilihat pengguna di halaman kesalahan proxy, cukup lakukan pencarian untuk visible_hostname di dalam file squid.conf dan ganti dengan nama host yang Anda inginkan.

Nama host default adalah SquidProxy, cukup ganti dengan nama baru Anda.

 
#  TAG: visible_hostname 
#       If you want to present a special hostname in error messages, etc, 
#       define this.  Otherwise, the return value of gethostname() 
#       will be used. If you have multiple caches in a cluster and 
#       get errors about IP-forwarding you must set them to have individual 
#       names with this setting. 
#Default: 
# Automatically detect the system host name 
visible_hostname SquidProxy

Block Website

Melakukan block website menggunakan squid bisa dengan membuat file ACL supaya bisa dilakukan blocking.

 
nano /etc/squid/conf.d/blocked.conf

Contoh melakukan block semua akses facebook.com & semua akses ke youtube.com, maka bisa diisi dengan text berikut:

 
acl block_websites dstdomain .facebook.com .youtube.com 
http_access deny block_websites

Jangan lupa jika sudah melakukan perubahan dan akan langsung menerapkan maka untuk me-restart service

 
service squid restart

Terimakasih Semoga membantu Anda

The power of documents

Kami sajikan dengan bahasa yang mudah dengan disertai command line yang bisa di copy-paste sehingga memudahkan untuk melakukan modifikasi command line