Kali ini saya ingin melanjutkannya dengan menuliskan pengalaman saya membuat proxy server yang berfungsi untuk: membatasi akses internet ke alamat tertentu menggunakan program redirect
squidGuard dan database-nya yang menampung jutaan situs dalam berbagai kategori.
Sampai tulisan ini saya buat, datatabase-nya memiliki puluhan kategori. Panduan instalasi dan konfigurasinya secara lengkap dapat ditemukan di situs resmi
squidGuard. Kenapa saya membuat hal ini? Permasalahan bahwa situs yang terdaftar dalam blacklist manual sangatlah terbatas, dan saya melihat ada program open source yang sangat bagus dan biasanya disandingkan dengan squid, so saya mencobanya… Dan ternyata setelah berhasil, rasanya terasa nyaman dan menyenangkan. squidGuard sudah membantu pekerjaan saya. hehe…
Langkah-langkah yang saya lakukan adalah:
1. Instalasi SquidGuardUntuk menginstalasi SquidGuard anda membutuhkan software pendukung seperti:
Siapkan Squid. Cara install squid dapat dilihat
disini.
Siapkan Bison dan Flex
# apt-get install bison flex
Untuk install Berkeley DB
# apt-get install libdb4.8-dev
Ambil source code SquidGuard dari
http://www.squidguard.org/download.html
Buka source code squidGuard
# tar zxvf squidGuard-1.4.tar.gz
Compile
# cd squidGuard-1.4
# ./configure --with-squiduser=proxy
# make
Jika tidak ada error maka squidGuard terinstalasi di /usr/local/. Pilihan lain untuk melakukan ./configure. Jika squidGuard di instal di directory lain,
# ./configure --prefix=/some/other/directory
Jika BerkeleyDB tidak berada di /usr/local/BerkeleyDB
# ./configure --with-db=/directory/of/BerkeleyDB/installation
atau, misalnya,
# ./configure --with-db=/usr/local/BerkeleyDB.4.6/
Install squidGuard
# make install
Akan keluar message berikut
Installing squidGuard
Done.
Installing configuration file
Created directory /usr/local/squidGuard/db
Assigned /usr/local/squidGuard/db to user proxy
Created directory /usr/local/squidGuard/log
Assigned /usr/local/squidGuard/log to user proxy
Copied sample squidGuard.conf
/usr/local/squidGuard/squidGuard.conf is now readable
The initial configuration is complete.
Congratulation. SquidGuard is sucessfully installed.
2. Instalasi Database BlacklistDownload Database Blacklist
disini. Copy file blacklist tersebut ke directory blacklist defaultnya di
/usr/local/squidGuard/db
Pastikan anda mempunyai permission untuk menulis ke directory tersebut, lakukan,
# cp /path/to/your/blacklist.tar.gz /usr/local/squidGuard/db
# cd /usr/local/squidGuard/db
# gzip -d blacklist.tar.gz
# tar xfv blacklist.tar
Contoh struktur Directory di
/usr/local/squidGuard/db
drwxr-sr-x 17 proxy staff 4096 Feb 16 12:49 .
drwxr-sr-x 4 root staff 4096 Feb 16 12:51 ..
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 ads
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 aggressive
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 audio-video
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:49 blacklists
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 drugs
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 gambling
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 hacking
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 mail
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:50 porn
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 proxy
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 redirector
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 spyware
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 suspect
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 violence
drwxr-sr-x 2 proxy staff 4096 Feb 16 12:44 warez
Sekarang blacklist siap digunakan
3. Konfigurasi SquidGuardKonfigurasi Default SquidGuard ada di
/etc/local/squidGuard/squidGuard.conf
Konfigurasi yang paling sederhana hanya satu kategori, satu aturan untuk semua.
#
# CONFIG FILE FOR SQUIDGUARD
#
dbhome /usr/local/squidGuard/db
logdir /usr/local/squidGuard/logs
dest porn {
domainlist porn/domains
urllist porn/urls
}
acl {
default {
pass !porn all
redirect http://localhost/block.html
}
}
Jika kita memilih lebih dari satu kategori untuk di blok dapat menggunakan contoh berikut,
dest adv {
domainlist adv/domains
urllist adv/urls
}
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
ACL yang kita gunakan sebagai berikut
acl {
default {
pass !adv !porn !warez all
redirect http://localhost/block.html
}
}
Kita juga dapat melakukan whitelist (lawannya blacklist) melalui konfigurasi berikut
dest white {
domainlist white/domains
urllist white/urls
}
acl {
default {
pass white !adv !porn !warez all
redirect http://localhost/block.html
}
}
Sebelum di aktifkan, kita perlu menginisialisasi blacklist, mengkonversikan file text blacklist menjadi file database agar mempercepat proses cek dan blocking. Proses inisialisasi menggunakan perintah
# squidGuard -dC all
# chown -R <squiduser> /usr/local/squidGuard/db/*
Harusnya anda akan melihat di log kira-kira message berikut,
2011-02-16 12:16:14 [31977] squidGuard 1.4 started (1138533256.959)
2011-02-16 12:16:14 [31977] db update done
2011-02-16 12:16:14 [31977] squidGuard stopped (1138533374.571)
4. Integrasi squidGuard ke SquidPastikan file blacklist dan db dimiliki oleh user squid. Jika squid tidak bisa akses maka proses blocking tidak jalan.
Test squidGuard
# echo "http://www.music.com 192.168.0.233/ - - GET" | squidGuard -c /usr/local/squidGuard/squidGuard.conf -d
Yang berwarna merah itu ip server dimana squidGuard diinstall
Jika berjalan dengan baik & situs example.com bukan situs yang di block maka akan tampak pada log
2007-03-25 16:18:05 [30042] squidGuard ready for requests (1174832285.085)
2007-03-25 16:18:05 [30042] squidGuard stopped (1174832285.089)
Masukan squidGuard ke squid.conf, perhatikan baik-baik path yang digunakan harus sesuai dengan yang anda gunakan,
redirect_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf
redirect_children 10
Sumber:
squidGuard Documentation.