Dalam tutorial kali ini kita akan mencoba membuat sebuah gateway di ubuntu 8.10 yang memiliki custom firewall. Gateway kita juga berfungsi sebagai transparent proxy yang dapat melakukan content filtering.
Prekondisi: Ubuntu-box Anda telah terkonfigurasi sebagai Router sesuai tulisan sebelumnya, walaupun tanpa pengamanan apapun.
Perlu diingat! Dalam contoh ini, penulis menggunakan:
internal interface: eth0
internal IP: 192.168.0.1
internal network: 192.168.0.0/24
internet interface: eth1
internet IP: 192.168.1.2
Seperti biasa, berdoa sebelum mulai.
1. Install Squid
Squid yang tersedia di repository adalah Squid 2.7 Stable3, bukan yang paling baru, tetapi ini yang saya gunakan. Untuk mendapatkan Squid terbaru, Anda perlu mendownload tarball dari situs squid-cache.org dan melakukan kompilasi manual.
Untuk melakukan instalasi otomatis dari repository, ketikkan perintah ini di terminal:
sudo get-apt install squid2. Konfigurasi Squid
[PENTING!] Backup file asli squid.
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backupBuka file konfigurasi Squid dengan gedit, atau editor lain favorit Anda.
sudo gedit /etc/squid/squid.confAnda bisa menghapus semua isi file ini kemudian menggantinya dengan konfigurasi Anda:
Pertama, atur squid agar menjadi transparent proxy. Atur squid agar mendengar request hanya dari internal network.
# transparent proxy, internal only
http_port 192.168.0.1:8888 transparent
http_port 127.0.0.1:8888 transparent
Tentukan lokasi menyimpan log dan error. Besar log file squid sangat bergantung terhadap web traffic jaringan Anda. Karena itu Anda mungkin perlu membuat cron job untuk mengganti logfile squid secara berkala (akan dijelaskan nanti). Direktif 'logfile_rotate' mengatur jumlah logfile yang perlu dipertahankan sebelum squid menghapus file lama.
# log & error
access_log /var/log/squid/access.log squid
error_directory /usr/share/squid/errors
logfile_rotate 7
Squid dapat berfungsi sebagai web cache. Untuk dapat mengakses cache, squid perlu berjalan sebagai user tertentu yang mendapatkan izin akses. Dalam contoh ini, penulis menggunakan user 'squid'. User tersebut harus telah dibuat terlebih dahulu (cara membuat user akan dijelaskan nanti).
cache_effective_user squid
cache_effective_group squid
cache_dir ufs /var/spool/squid 100 16 256
Perlu diingat bahwa squid harus memiliki izin untuk mengakses semua direktori dan file yang akan diperlukan, seperti lokasi log dan error, direktori konfigurasi, dan cache. Anda mungkin perlu melakukan chown kepada lokasi tersebut.
Berikutnya mengatur nama cache manager yang bertanggung jawab mengatur squid dan visible hostname untuk squid server.
cache_mgr youremail@domain.com
visible_hostname gatewayku
Bagian acl dan http_access (berikutnya) adalah bagian yang paling penting yang menentukan user mana bisa mengakses apa. Kesalahan di bagian ini dapat mengakibatkan user Anda tidak dapat mengakses web sama sekali.
# acl source, spesifikasikan asal koneksi
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.0.0/24
# acl time
acl workhours time M T W H F 08:30-17:00
Untuk memblok beberapa domain, Anda dapat menuliskannya dalam sebuah file tersendiri, dengan setiap baris untuk sebuah domain atau url. Pada contoh ini file yang digunakan adalah "/etc/squid/denied_domains.acl" dan "/etc/squid/denied_ads.acl".
# acl else
acl denied_domains dstdomain "/etc/squid/denied_domains.acl"
acl denied_ads url_regex "/etc/squid/denied_ads.acl"
Inilah bagian yang benar-benar menetukan siapa dapat mengakses apa. Model logika http_access mungkin mirip dengan logika 'iptables'. Squid akan melakukan pencocokan request dimulai dari rule http_access yang paling atas, terus hingga menemukan rule yang cocok atau hingga rule terakhir.
# http_access
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access allow localhost
http_access allow admin
http_access deny denied_ads
http_access deny workhours denied_domains
http_access allow localnet
http_access deny all
,,bersambung,,


No comments:
Post a Comment