Redirect Squid Proxy Server Linux dengan SquidGuard

Proxy Server Linux Fedora 6

Redirect Squid dengan SquidGuard

Saya baru teringat tulisan pertama saya tentang proxy server Linux menggunakan Squid. 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. yang sangat bagus jika diterapkan di tempat saya, yang merupakan lembaga pendidikan. 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. Download dan instalasikan squidGuard pada sistem
  2. Download database squidGuard
  3. Membuat file konfigurasi untuk squidGuard di /etc/squid/squidGuard.conf
  4. Instal database squidGuard
  5. Menambahkan redirect squidGuard dalam konfigurasi proxy di /etc/squid/squid.conf
  6. Membuat script untuk memudahkan saya menjalankan squid dan squidGuard
  7. Jalankan proxy server

File konfigurasi squidGuard.conf yang saya gunakan isinya seperti berikut:

#
# CONFIG FILE FOR SQUIDGUARD
#
# Author By: fxekobudi@gmail.com
#

dbhome /var/squidGuard/blacklists
logdir /var/log/squidGuard
dest adv {
log        adv
domainlist    adv/domains
urllist        adv/urls
}
dest aggressive {
log        aggressive
domainlist    aggressive/domains
urllist        aggressive/urls
}
dest automobile {
log        automobile
domainlist    automobile/domains
urllist        automobile/urls
}
dest chat {
log        chat
domainlist    chat/domains
urllist        chat/urls
}
dest dating {
log        dating
domainlist    dating/domains
urllist        dating/urls
}
dest drugs {
log        drugs
domainlist    drugs/domains
urllist        drugs/urls
}
dest gamble {
log        gamble
domainlist    gamble/domains
urllist        gamble/urls
}
dest hacking {
log        hacking
domainlist    hacking/domains
urllist        hacking/urls
}
dest movies {
log        movies
domainlist    movies/domains
urllist        movies/urls
}
dest music {
log        music
domainlist    music/domains
urllist        music/urls
}
dest porn {
log        porn
domainlist    porn/domains
urllist        porn/urls
}
dest redirector {
log        redirector
domainlist    redirector/domains
urllist        redirector/urls
}
dest shopping {
log        shopping
domainlist    shopping/domains
urllist        shopping/urls
}
dest spyware {
log        spyware
domainlist    spyware/domains
urllist        spyware/urls
}
dest tracker {
log        tracker
domainlist    tracker/domains
urllist        tracker/urls
}
dest violence {
log        violence
domainlist    violence/domains
urllist        violence/urls
}
dest warez {
log        warez
domainlist    warez/domains
urllist        warez/urls
}
dest webradio {
log        webradio
domainlist    webradio/domains
urllist        webradio/urls
}
dest webtv {
log        webtv
domainlist    webtv/domains
urllist        webtv/urls
}
acl {
default {
pass !adv !aggressive !automobile !chat !dating !drugs !gamble !hacking !movies !music !porn !redirector !shopping !spyware !tracker !violence !warez !webradio !webtv all
redirect     302:http://localhost.localdomain/blacklist.html
}
}

Untuk yang di sekolah, saya arahkan redirect tersebut ke file buatan saya sendiri, dimana dalam file tersebut saya berikan peringatan bahwa pengunjung tidak diperbolehkan mengakses situs dan saya berikan pilihan beberapa situs yang baik dan layak untuk dikunjungi. format file-nya dalam html. saya beri nama blacklist.html.
Setelah membuat file konfigurasinya, selanjutnya saya menambahkan direktive berikut ini agar squid membaca perintah untuk redirect squidGuard. Saya meminta squid untuk menjalankan anak proses squidGuard sebanyak 10, sesuai dengan kemampuan memory yang digunakan proxy. Maksud saya agar request terhadap situs tertentu yang masuk dalam database squidGuard segera dapat tertangani oleh anak-anak proses tersebut, selain karena jumlah client yang lumayan besar.

#unlinkd_program /usr/lib/squid/unlinkd
unlinkd_program /usr/lib/squid/unlinkd

# ---------------------------------
# Redirect program untuk squidGuard
# ---------------------------------
redirect_program /usr/bin/squidGuard
redirect_children 10

Berikut ini cara saya install database squidGuard:
1. File shallalist.tar.gz yang sudah saya download saya letakkan di direktory /tmp
2. Selanjutnya saya masuk direktory tersebut dan ekstrak file:

cd /tmp
tar -zxf shallalist.tar.gz

3. Untuk memudahkan menginstal squidguard, saya edit script yang diberikan pada situs squidguard dan saya sesuaikan dengan kebutuhan serta keadaan. Kesulitan awal saya saat itu adalah masalah permission file untuk log squidGuard. Jadi hati-hati dengan proses instalasinya dan selalu check dengan command tail -f /var/log/messages.

#!/bin/sh
#
# squidGuard blacklists - install script
# author by: fxekobudi@gmail.com
cd /tmp
# extract blacklists
tar -zxf shallalist.tar.gz
# hapus databases lama
# copy blacklists ke db home
rm -Rf /var/squidGuard/blacklists/*
cp -R /tmp/BL/* /var/squidGuard/blacklists
# hapus direktory kategori blacklists yang tidak digunakan
rm -Rf /var/squidGuard/blacklists/automobile
rm -Rf /var/squidGuard/blacklists/dynamic
rm -Rf /var/squidGuard/blacklists/finance
rm -Rf /var/squidGuard/blacklists/forum
rm -Rf /var/squidGuard/blacklists/hobby/cooking
rm -Rf /var/squidGuard/blacklists/hobby/pets
rm -Rf /var/squidGuard/blacklists/isp
rm -Rf /var/squidGuard/blacklists/jobsearch
rm -Rf /var/squidGuard/blacklists/news
rm -Rf /var/squidGuard/blacklists/recreation
rm -Rf /var/squidGuard/blacklists/science
rm -Rf /var/squidGuard/blacklists/shopping
rm -Rf /var/squidGuard/blacklists/webmail
# buat direktory log squidGuard
#mkdir /var/log/squid/squidGuard
#chown squid.squid /var/log/squid/squidGuard/
chown squid.squid /var/log/squid/squidGuard/*
chown squid.squid /var/log/squid/squidGuard.log
# buat domains + urls db, kemudian rubah kepemilikan ke squid user
/usr/bin/squidGuard -C all
chown squid.squid /var/squidGuard/blacklists/*/*.db
chown squid.squid /var/squidGuard/blacklists/*/*/*.db
/sbin/service squid restart
rm -Rf /tmp/BL
Tagged on: , ,