Bagi sebagian rekan-rekan yang mau membuat proxy server dengan Linux, atau bagi adik-adik
Ilmu Komputer USD yang mau coba-coba belajar bikin proxy, saya ingin membagikan
pengalaman kecil saya dalam membuat proxy menggunakan Linux. Meski banyak software
untuk membuat proxy server, saya memilih squid karena paketnya sudah ter-include dalam distro
yang saya gunakan (Fedora Core) dan hampir sebagian proxy server Linux menggunakan squid.
Untuk spesifikasi hardware yang saya gunakan, dapat dilihat di artikel Proxy Server di tempat
kerja saya. Proxy server tersebut menggunakan squid versi 2.6-12 pada distro Fedora Core 6
yang saya fungsikan sebagai:
#SQUID 2.6.STABLE12
#Author by: http://fxekobudi.net
# OPTION JARINGAN
#
-----------------------------------------------------------------------------
http_port 3128
icp_port 0
# OPTION UKURAN CACHE
# -------------------------------------------------------------------
cache_mem 256 MB
cache_swap_low 94
cache_swap_high 96
maximum_object_size 16384 KB
minimum_object_size 4 KB
maximum_object_size_in_memory 2048 KB
fqdncache_size 1024
cache_replacement_policy heap GDSF
memory_replacement_policy heap GDSF
# TIMEOUT
# -----------------------------------------------------------------
half_closed_clients off
# -------------------------------------
# Memblok situs terlarang (blacklist)secara manual
# -------------------------------------
acl noblacklist dstdomain "/etc/squid/blacklist/no-blacklist.txt"
acl katablacklist url_regex -i "/etc/squid/blacklist/kata-blacklist.txt"
acl domainblacklist dstdomain "/etc/squid/blacklist/domain-blacklist.txt"
acl ipblacklist dst "/etc/squid/blacklist/ip-blacklist.txt"
acl tdkbebasdownload time 08:00-13:00
# AKSES KONTROL
# ------------------------------------------------------------------
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
# -------------------------------------
# Daftar IP address
# -------------------------------------
acl lab1 src 192.168.254.1-192.168.254.40/255.255.255.255
acl staf-it src 192.168.254.41-192.168.254.42/255.255.255.255
acl lab2 src 192.168.254.43-192.168.254.44/255.255.255.255
acl ruang1 src 192.168.1.1-192.168.1.8/255.255.255.255
acl ruang2 src 192.168.1.11-192.168.1.17/255.255.255.255
# -------------------------------------
# Memblok situs terlarang secara manual
# -------------------------------------
http_access allow noblacklist
http_access deny katablacklist
http_access deny domainblacklist
http_access deny ipblacklist
http_access allow manager localhost
http_access deny manager
# -------------------------------------
# Rule yang saya terapkan
# -------------------------------------
http_access allow lab1
http_access allow staf-it
http_access allow lab2
http_access allow ruang1
http_access allow ruang2
acl magic_words2 url_regex -i
ftp
.exe
.mp3
.vqf
.tar.gz
.gz
.tar.bz2 .bz2 .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso
# PARAMETER ADMINISTRATOR
# -----------------------------------------------------------------
cache_mgr fxekobudi@gmail.com
cache_effective_user squid
cache_effective_group squid
visible_hostname proxy.fxekobudi.local
# mkdir /etc/squid/blacklist
# cd /etc/squid/blacklist/
# vim no-blacklist.txt
# vim kata-blacklist.txt
# vim domain-blacklist.txt
# vim ip-blacklist.txt
Minimal dimasukkan satu item untuk masing-masing file tersebut, karena jika tidak, maka saat
kita melihat error log squid sesaat setelah service dijalankan, akan ada pesan error tidak
menemukan item pada file tersebut
Selain itu, saya juga menyertakan konfigurasi untuk pesan Error dari Proxy squid dalam bentuk
bahasa indonesia, agar user di tempat kerja saya lebih mudah memahami maksudnya Ide pesan
error ini kemudian menjadi inspirasi saya saat mengkonfigurasi redirect SquidGuard untuk
mengarah kepada file yang sengaja saya buat di root direktori web server proxy.
Untuk melakukannya, tinggal copykan saja pesan Error dalam bahasa Inggris ke direktori lokasi
pesan error berbahasa Indonesia.
# cp /usr/share/squid/errors/English /usr/share/squid/errors/Indonesian
Oh ya, Anda juga perlu menambahkan di konfigurasi Firewall menggunakan Iptable agar client
diperbolehkan mengakses Internet ini melalui proxy, request client ke proxy dengan IP address
yang terdaftar diperbolehkan melalui port 3128 (atau 8080) tergantung konfigurasi yang Anda
gunakan Saya jadi ingat waktu pertama kali mencoba, koneksi internet di server pake proxy
udah jalan, tapi kok clientnya ngga bisa akses, eh ternyata emang client belum diperbolehkan
akses ke IP address dan portnya proxy Hehe. Agar bisa akses ke proxy, rule iptable-nya untuk
file /etc/sysconfig/iptables harus memuat rule ini: (saya pakai konfigurasi firewall bawaan
Fedora Core)
Untuk menerapkan IP forwarding, saya edit file /etc/sysctl.conf dan memberi nilai 1 (enable)
untuk direktive:
Sedangkan konfigurasi squid untuk menggunakan blacklist dari redirect SquidGuard dan
firewall-nya akan saya tulis beberapa minggu ke depan Setelah saya pulang berlibur ke rumah
orang tua saya sekaligus tanah kelahiran saya di