WHAT'S NEW?
Loading...

Memblok Situs Tidak Baik Menggunakan SquidGuard

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
# 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 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


.

0 comments: