S0t4's Blog

Hanya Catatan dan Mencoba Untuk Berbagi

Friday, October 30, 2009

Membangun Server Squid dan Squidguard

  Blogger Sejati       Friday, October 30, 2009
Membangun Server Squid dan Squidguard

I. PERSIAPAN
1. PC dengan spec minimal P4 2 GHz - 512 MB
2. Harddisk dengan rpm min 7200
3. Distro Ubuntu 7.04 Server (paket server ringan dengan dukungan driver hardware lumayan bagus berbasis debian)
4. Mikrotik OS

II. INSTALASI
1. Siapkan instalasi Ubuntu Server dengan partisi sebagai berikut:
/boot 100 Mega
/swap 2 Giga
/ sisanya

atau bisa dikostumisasi terserah kalian, set lancard (ip,dns,gateway,subnet)

setelah instalasi selesai, login dengan username yg sudah dibuat pertama kali install ubuntu.

untuk memudahkan instalasi, bisa mengaktifkan user root dengan cara:
(secara default ubuntu mendisable account root)
Code:
#sudo passwd root
password: --> diisi dengan password login user
#su
#passwd
password: --> diisi password root kalian, ingat jangan sampai lupa passwordnya
lalu logoff dari terminal, kemudian login lagi sebagai root


setelah sampai sini, update semua paket paket nya.
catatan, mirror indonesia kadang keluar errornya, maka disarankan mengganti ke mirror lain seperti di singapore atau australia dengan cara mengedit sourcelist aptnya, (atau jika mempunya repo ubuntu lengkap 4 dvd bisa menisable semua repo internetnya):

Code:
#nano /etc/apt/source.list

jika tidak mempunyai repo dvd disable baris berikut ini dengan memberikan tanda # didepan barisnya
Quote:#deb cdrom:[Ubuntu-Server 7.04 _Feisty Fawn_ - Release i386 (20070415)]/ feisty.....

jika tidak mempunyai repo dvd bisa mengedit repo dengan mengganti domain id menjadi sg (singapore) atau au (australia) tw (taiwan)

setelah selesai mengedit maka untuk menyimpannya dengan perintah Ctrl-O, sesudah itu tekan Enter lalu Ctrl-x untuk keluar.

Update paketnya dengan perintah:
Code:
#apt-get update
#apt-get upgrade
sampai sini bisa ditunggu beberapa menit sampai setengah jam tgt dari koneksi inet.


2. Instalasi paket apache2,squid,squidguard,openssh-server,ftpd, jika ingin membangun sebuah ftp proxy juga bisa diinstalasikan Frox ftp proxy.
Quote:squid + squidguard adalah http proxy dan web bloker
openssh-server adalah ssh daemon untuk mengakses server dari jaringan
ftpd adalah ftp daemon untuk ftp server
apache2 adalah web server yg nantinya bisa digunakan untuk meredirect website yg kena blok ke server lokal kita, atau bisa juga digunakan untuk login internet

instalasi paket openssh dengan cara:
Code:
#apt-get install openssh-server
nah kalo sampai sini udah selesai, kita bisa santai sedikit, karena kita bisa meremote server dari tempat lain (mungkin karena server berada di ruangan lain dan kita juga merangkap sebagai admin billing juga)
kalau ingin meremote dari jauh bisa download apikasi putty (win***) alamat web bisa dicari lewat google.

instalasikan paket lain:
Code:
#apt-get install squid squidguard ftpd apache2
instalasi server sampai sini sudah selesai,sekarang kita mengkonfigurasinya squid dan squidguardnya....


III. Mengkonfigurasi Server

1.SquidProxy
Untuk mengkonfigurasi squid, bisa dilihat di tuts sebelumnya yg gue buat

2.SquidGuard
a. Basic Configuration

Fungsi sqidguard ini adalah plugin squid untuk memblokir website website tertentu, seperti:

advertorial
pornsite
hackersite
dll

Setelah instalasi di atas sukses, kita buat dulu database alamat website yg akan diblok, database squidguard ada di /var/lib/squidguard/db
misal kita akan memblok website situs situs yg ada kaitannya dengan senjata


kita buat dulu folder weapons dan databasenya, database disini bisa berarti expressionlist, urllist atau domains, kita buat saja contoh untuk domains
Code:
#mkdir /var/lib/squidguard/db/weapons
#cd /var/lib/squidguard/db/weapons
#nano domains
isikan file tersebut, misal contoh alamatnya:
Code:
israeli-weapons.com
robarm.com
simpan dengan perntah Ctrl-O, enter, Ctrl-x

kemudian buat directory diatas dengan mode 777 memakai perintah chmod, agar squidguard bisa membaca file database tsb.
Code:
#chmod -R 777 /var/lib/squidguard/db
simpan konfigurasi squidguard.conf ke file lain dengan cara:
Code:
#rm /etc/squid/squidGuard.conf .confasli
kemudian buat squidguard.conf baru
Code:
#nano /etc/squid/squidGuard.conf
isi dengan acl berikut ini:
Code:
dest weapons {
domainlist weapons/domains
}

acl {
default {
pass !weapons all
redirect http://yourip/block.html
}
}
save lalu keluar dari nano

keterangan:
kita membuat definisi database weapons diatas dengan tipe domainlist.
untuk acl, kita buat konfigurasi paling sederhana dulu, yaitu default
redirect fungsinya untuk mengarahkan website yg ingin kita blok ke website lokal kita.

buat html sederhana di: /var/www/block.html, misal:
"Website yg anda tuju kami blok karena mengandung....." dlsb....

jika database bloklist sudah banyak, maka kita perlu mengubahnya ke format .db , sehingga squidguard kita lebih cepat untuk menscaning webnya,dengan cara:
Code:
#squidguard -C all
Nah sampai sini konfigurasi paling sederhana selesai. bisa dilanjutkan ke bagian nomer 3(bawah).

b. More Advanced configuration
Sebenarnya,.... squidGuard mempunyai banyak konfigurasi, seperti
- source ip untuk host
- waktu permission
- logging ke file untuk ip / ip block tertentu.


untuk mendefinisikan source ip dapat dengan menambahkan block berikut ini pada squidguard.conf
Code:
src {
ip < ip_range > atau < ip_client > atau < ip/subnet > atau
iplist < list_ip_di_file_tertentu >
}
contoh:
Code:
src klienA {
ip 192.168.0.34-192.168.0.39
}

src klienB {
ip 192.168.0.64-192.168.0.79
ip 10.5.3.1/28
}
atau juga bisa menggunakan konfigurasi terpisah untuk setiap ip di file tertentu, contoh:
Code:
src admins {
iplist adminlist
}
buat file dengan nama adminlist, diisikan dengan ip administratornya:
Code:
192.168.2.0-192.168.2.255
172.16.12.0/255.255.255.0
10.5.3.1/28
untuk contoh acl nya bisa diberikan konfigurasi sbb:
Code:
acl {
admins {
pass all
}

default {
pass !weapons none
redirect http://yourip/block.html
}
}
Untuk mendifinisikan waktu kapan boleh mengallow daftar block list atau mendisable rule, bisa gunakan konfigurasi sbb:
Code:
time < nama_block > {
weekly
date
}
contoh:
Code:
time free_time {
weekly * 17:00-24:00 # sesudah jam kerja silahkan akses ke web aneh2
weekly saturdays 6:00-17:00 # Hari sabtu saatnya have fun ^_^
date *.01.01 # Buat ngerayain taon baru, pesta xxx boleh kok.....
date *.10.24 12:00-24:00 # Jam Have fun nih...........
date 2006.04.14-2006.04.17 # Soft Opening nih warnet gue....... boleh akses web xxx
date 2006.05.01 # Hmmmm..... Testing internet selama 1 hari deh.....
}
untuk menggunakan definisi waktu ini, dibagian block acl sbb:
Code:
acl {
< block_ip_source > within < block_time > {
pass all
} else {
pass !weapons all
}
default {
pass none
redirect http://yourip/block.html
}
}

untuk menggunakan logging, dibagian acl dibuat sbb:
Code:
log < nama_log >
contoh:
Code:
acl {
admins within free_time {
pass all
log adminlog.log
} else {
pass !weapons all
log clientlog.log
}
default {
pass none
redirect http://yourip/block.html
}
}
3.Moding squid.conf
squidguard adalah program plugin untuk squid, sehingga squidguard tidak bisa berdiri sendiri tanpa squid. maka kita harus memod squid.conf kita agar saat squid dijalankan, maka squidguard juga ikut aktif, dengan menambahkan baris berikut di squid.conf, penambahan bisa diletakkan dimana saja, tapi disarankan diletakkan sebelum definisi acl di squid.conf
Code:
redirect_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf
untuk distro lainnya mohon menyesuaikan letak executable file squidGuard-nya.

Mod untuk squid.conf sudah selesai tinggal kita merestart squid kita dan lihat di ps apakah squidguard kita sudah jalan, cara mengechecknya dengan perintah:
Code:
ps -e | grep squid
harusnya ada beberapa baris squid/squidguard (kurang lebih 5 -6 buah)

IV. TESTING
untuk mengetest apakah squidGuard kita sudah berjalan semestinya dan proxy kita sudah terkonfigurasi dengan benar, coba browsing dulu ke daftar white, misalnya www.google.com jika website google sudah keluar berari squid kita sudah bekerja dan di redirect dengan benar oleh squid+mikrotik kita.

selanjutnya test daftar blacklist kita, masukkan ke browser daftar hitam, jika langsung di redirect ke website internal kita, maka semuanya berjalan dengan sempurna


V. DAFTAR BLOCKLIST
ada beberapa daftar block list yg lumayan besar databasenya, ada yg berupa commercial ada juga yg free.
untuk daftar blacklist yg free bisa diambil disini:
http://www.shallalist.de/Downloads/shallalist.tar.gz
http://squidguard.mesd.k12.or.us/blacklists.tgz

untuk daftar blocklist yg pertama diupdate setiap hari.
bawah ini adalah script untuk mendownload daftar blacklist secara otomatis:
http://www.maynidea.com/squidguard/getlists.sh


TUTS SEMENTARA SUDAH SELESAI SAMPAI DISINI, JIKA ADA PERUBAHAN/TAMBAHAN/ PENGALAMAN MEMAKAI SQUIDGUARD BISA TULIS DI BAWAH OK.

okto_2005 07-10-2007 11:16

VI TOPOLOGI
Yang saya coba di kantor, dibuat model seperti ini:
inet----mikrotik------switch------ client
................................|
................................---------- Squid+SquidGuard+PDC

untuk mikrotiknya settingan sbb:
/ip nat diisi redirect semua ip client port 80 ke port lokal 3128, kecuali ip squid
/ip web-proxy memakai parent server yg diisi ip squid dan port squid

untuk monitoring apakah squid ga ada masalh dengan jaringan, dibuat tool netwatch apakah server squid up/down, jika down maka NAT di disable, jika sudah up lagi, NAT di aktifkan, IN OTHER WORD jika server down koneksi di bypass langsung.

VII ADDON
Untuk memudahkan manajemen server, bisa ditambahkan aplikasi webmin dan SARG (Squid Analysis Report Generator) untuk mengaudit dan melihat daftar website yg diakses client

webmin bisa di download lewat www.webmin.com
untuk SARG bisa di install lewat:
Code:
#apt-get install sarg
logoblog

Thanks for reading Membangun Server Squid dan Squidguard

Previous
« Prev Post

No comments: