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 SquidGuard
Untuk menginstalasi SquidGuard anda membutuhkan software pendukung seperti:
Siapkan Squid. Cara install squid dapat dilihat disini.
Siapkan Bison dan Flex
Untuk install Berkeley DB
Ambil source code SquidGuard dari
Buka source code squidGuard
Compile
Jika tidak ada error maka squidGuard terinstalasi di /usr/local/. Pilihan lain untuk melakukan ./configure. Jika squidGuard di instal di directory lain,
Jika BerkeleyDB tidak berada di /usr/local/BerkeleyDB
atau, misalnya,
Install squidGuard
Akan keluar message berikut
2. Instalasi Database Blacklist
Download Database Blacklist disini. Copy file blacklist tersebut ke directory blacklist defaultnya di
Contoh struktur Directory di
Sekarang blacklist siap digunakan
3. Konfigurasi SquidGuard
Konfigurasi Default SquidGuard ada di
Konfigurasi yang paling sederhana hanya satu kategori, satu aturan untuk semua.
Jika kita memilih lebih dari satu kategori untuk di blok dapat menggunakan contoh berikut,
ACL yang kita gunakan sebagai berikut
Kita juga dapat melakukan whitelist (lawannya blacklist) melalui konfigurasi berikut
Sebelum di aktifkan, kita perlu menginisialisasi blacklist, mengkonversikan file text blacklist menjadi file database agar mempercepat proses cek dan blocking. Proses inisialisasi menggunakan perintah
Harusnya anda akan melihat di log kira-kira message berikut,
4. Integrasi squidGuard ke Squid
Pastikan file blacklist dan db dimiliki oleh user squid. Jika squid tidak bisa akses maka proses blocking tidak jalan.
Test squidGuard
Jika berjalan dengan baik & situs example.com bukan situs yang di block maka akan tampak pada log
Masukan squidGuard ke squid.conf, perhatikan baik-baik path yang digunakan harus sesuai dengan yang anda gunakan,
Sumber: squidGuard Documentation
.
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:
- Instalasi SquidGuard
- Instalasi Database Blacklist
- Konfigurasi SquidGuard
- Integrasi squidGuard ke Squid
1. Instalasi SquidGuard
Untuk menginstalasi SquidGuard anda membutuhkan software pendukung seperti:
- Squid
- Bison
- Flex
- Berkeley DB. Di Ubuntu biasanya sudah terinstal Berkeley DB untuk xserver.
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 Blacklist
Download 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 SquidGuard
Konfigurasi 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 Squid
Pastikan 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 diinstallJika 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
.
EmoticonEmoticon