Memblokir akses ke situs web dengan squid

Bismillahirrohmaanirrohim….

Oleh : alfinux@telkom.net

Artikel pertama saya ini akan membahas mengenai konfigurasi proxy web cache dengan squid agar dapat memblokir situs-situs tertentu, terutama situs yang bernuansa pornografi, kekerasan dan sebagainya. Hal ini mungkin diperlukan di warnet atau pun di tempat lain dimana memerlukan proteksi dari situs-situs tertentu.
Langkah yang saya lakukan telah saya uji pada sistem RH6.2 dengan squid-2.3.STABLE2 dan juga bisa diterapkan pada versi lainnya.

 


Catatan :
– Squid telah terinstal dengan baik dan mendukung Transparent proxy, jika belum lihat artikel "Mengkonfigurasi squid (proxy web cache) sebagai transparan proxy " oleh hari-huhui (h4ri@telkom.net).
– Ipchains atau Iptables telah terinstal dan mendukung transparent proxy.
– Alamat IP lokal yang digunakan 192.168.30.0/24
– Squid dikonfigurasi menggunakan port 8080

Prinsip Kerja :
—————–
Pada prinsipnya ada beberapa cara untuk memblokir situs porno dengan mengatur file konfigurasi "squid.conf" :
1. Menyaring berdasarkan nama domain atau URL lengkap, misalnya memblokir situs "www.playboy.com" maka cukup ditambahkan dua baris berikut ini :

acl bad dstdomain www.playboy.com
http_access deny bad

Kelemahan cara ini, situs "playboy.com" masih bisa diakses dan juga akan banyak acl yg harus di definisikan. Solusinya dengan cara membuat file khusus yg berisi daftar situs-situs yang diblokir sehingga konfigurasinya menjadi sbb :

acl bad dstdomain "/etc/squid/sex"
http_access deny bad

dan isi file "/etc/squid/sex" misalnya sbb:

vicidi.com
bedclip.com
indonona.com
exoticazza.com
dewasex.com

2. Menyaring berdasarkan kata yang terkandung pada nama domain, misalnya saya ingin memblokir situs yang mengandung kata "nude" maka konfigurasinya sbb :

acl bad url_regex -i nude
http_access deny bad

atau dengan membuat file khusus berisi daftar kata-kata yang dilarang maka sbb:

acl bad url_regex -i "/etc/squid/badwords"
http_access deny bad

dan isi file "/etc/squid/badwords" misalnya sbb:

theorgy
penthousemag
playboy
1stsex
lolita

3. Kedua cara diatas masih lemah karena situs "playboy.com" masih bisa diakses jika Anda tahu IP address situs tersebut. Tentunya hal ini terjadi jika client komputer Anda pada pinter-pinter, jika hal diatas masih belum mencukupi maka hal yang cukup berat harus kita lakukan yaitu dengan cara membuat file daftar IP address situs-situs yang diblokir. Hal ini bisa dilakukan dengan menggunakan utility nslookup, misal #nslookup playboy.com.

Contoh Konfigurasi :
————————
OK deh, cukup masalah teorinya. Berikut ini adalah konfigurasi squid yang saya buat dengan menggunakan cara ke-2 untuk memblokir beberapa situs porno :

1.) Konfigurasi "/etc/squid/squid.conf"

http_port 8080
icp_port 0
cache_mem 80 MB
maximum_object_size 256 KB
cache_dir ufs /cache 200 16 256
memory_pools_limit 32 MB
redirect_rewrites_host_header off
replacement_policy GDSF
half_closed_clients off
#———–transparent proxy ———–
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
#——————————————-
acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl lan src 192.168.30.0/255.255.255.0
acl Safe_ports port 80 443 210 119 563 70 21 1025-65535
acl CONNECT method CONNECT
acl notsex url_regex -i "/etc/squid/notsex"
acl sex url_regex -i "/etc/squid/sex"
no_cache deny SEX
http_access allow notsex all
http_access deny sex all
http_access allow lan
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT
http_access deny all
#—————- administration info ————
cache_mgr alfinux@telkom.net
cache_effective_user squid
cache_effective_group squid
log_icp_queries off
cachemgr_passwd mypassword all
forwarded_for off
buffered_logs on
visible_hostname alfinuke.edcentral.pdk
ftp_user squid@edcentral.pdk

2.) Buat daftar situs yang diblokir (vi /etc/squid/sex) dengan editor favorit Anda.
Dan berikut ini file daftar situs yg di blokir baik berdasarkan kata maupun nama situs (/etc/squid/sex):

.*.(praline|eroticworld|orion).de
.*.(theorgy|penthousemag|playboy|1stsex|lolita|sexpix|sexshop).*
.*.(smutland|hustler.onprod|hustler2.onprod|cybervixen|asiansex).*
ftp.netcom.com/pub/ac/acott
www.tvtoday.de:9600
.*.(carolcox|eroticbodies).*
.*.(cyberlustxxx|cyberporn|intersex).inter.net*
.*.(eroticxxx|sexy4you|dani|danni|hotsex|kinky|lesbos|porno|xpics).*
.*.(over21|regsex|sexnet|sextoy|smeggy|sordid).*
.*.(cybersex|hcabaret|livesex|sex4you|sexmall).*
.*.(lovesexy|nastysex|pantless|playware|showgirl).*
.*.(2xxxcite|dreamsex|futuresex|sover21sex|explaza).*
.*.(xxxparadise|playbabe|celebnude|greyhawks|sexfinder|xxx-video).*
.*.(sexaphone|beate-uhse|fantasysex|sexparlor|sexnetwork).*
.*.(cybervixen|internetsex|silverotica|erotica2000|ultimatexxx).*
.*.(xxx-rawsex-xxx|amateurs|amateursweb|erotica-toys|orion-erotic).*
.*.(sexy-jewelry|hollywoodxxx|cybererotica|sexfantasy).*
.*.(danisherotica|sexy-playmates|nastyhabits|sugarandspice|kathryn).*
.*.(persiankitty|adultplayground|supernudes|playsex).*
.*.(pinupmall|porn.byus|smutland|sizzle|heavyhangers).*
.*.(hardcorjunky|fetish|adultplayhouse|pornpics|asiansex).*
.*.(hustler|freepics|wetgirls|tropixxx|sex|pixxxcity).*
.*.(4adultsonly|peepshow|voulezvous|rated-x|69pornplace).*
.*.(shavedsluts|nudepalace|xxxguide|pics-xxx|naughty|thehotzone).*
.*.(nervemag|carolcox|snatches|freeporn|playgirlmag|cyberspice).*
.*.(erotica|afro-erotica).*
(teen|girls|xxxpic).*
(www.sex|*****.bahnhof).*
.*.(gay|sex).*
.*.fun.nl
www.playmen.it/
www.gisa.it/sex/
www.iol.it/sexol/
globall.com/j/xxx/
www.hh.nl/n-m/pic/
www.pi.net/~pauze/
www.oden.se/~hedback/
aau.diasoft.ru/~hotsex/
www.donsworld.com/xadultx/
www.well.com/user/sexymate/
ftp.zippo.com/pictures/erotica/
mm.iit.uni-miskolc.hu/Data/ladies/
drn.zippo.com/zippo-bin/wwwdecode/
pilot.msu.edu/user/rozwadow/pamela
#——manual——–
pageseeker.com
arsipceritaseru
freeones
vicidi
bedclip
indonona.com
exoticazza.com
dewasex.com
extrajos.com
bopekindo.com
sanggrahan.org
sanggrahan.com
grahan.com
vicidi.com
17tahun.com
ceritaseru.org
ceritapanas.com
celebdirectory.com
hiburan.web1000.com
seeasians.com
nyamuk.adultnations.com

3.) Daftar situs exceptions (pengecualian 😉 ) (vi /etc/squid/notsex)
Dan satu lagi daftar situs yang bukan termasuk situs porno, sebagai pencegahan agar tidak diblokir :

.*.msexchange.*
.*.msexcel.*
.*freetown.*
.*geek-girls.*
.*scsext.*
missingheart
documen
button
wirelessexcite
msexchange
msexcel
aids.lv
freetown
geek-girls
scsext
steen
adulteducation
sekst
newshits
glass
georgia
peet
chicag
speech
speed
speedtest
liputan6.com
expedia.com

Maintenance/Updating
————————–
Walaupun dengan beberapa kelemahan yang ada, tapi cara-cara yang digunakan masih cukup efektif untuk mencegah para pengguna Internet pemula mengakses situs-situs yang tidak baik. Dan tentunya tugas Anda sebagai Administrator dari proxy server tersebut adalah menjaga agar Anda tidak kalah dengan client yang lain dalam hal perbendaharaan situs "nude" yang diaksesnya. Tentu saja dengan selalu mengupdate file-file daftar tersebut (/etc/squid/sex dan /etc/squid/notsex). Jika ternyata ada situs yang client Anda ingin akses dan ternyata diblokir, maka nama situs tersebut bisa Anda masukkan pada daftar di "/etc/squid/notsex".

Halaman Peringatan/Redirector
————————————-
Dan untuk sedikit peringatan kepada client bahwa kita mengawasi aktivitas mereka, bisa dilakukan dengan memodifikasi file "/etc/squid/errors/ERR_ACCESS_DENIED" dan masukkan sedikit javascript untuk meredirect ke situs lain, contoh yang saya lakukan sbb yang akan mengarahkan client ke situs intranet atau situs lain (biar insyaf, eling atuh !!! :)) :

#————— /etc/squid/errors/ERR_ACCESS_DENIED ———————–

<HTML><HEAD>
<TITLE>ERROR: The requested URL could not be retrieved</TITLE>

<–
var howMany = 10; // jumlah situs pengganti
var page = new Array(howMany+1);

page[0]="http://192.168.10.65";
page[1]="http://www.eramuslim.com";
page[2]="http://www.klikdt.com";
page[3]="http://www.dikmenjur.net";
page[4]="http://www.dikmenjur.com";
page[5]="http://www.jis.or.id";
page[6]="http://www.harunyahya.com";
page[7]="http://www.hidayatullah.com";
page[8]="http://www.myquran.com";
page[9]="http://www.sekolah2000.or.id";
page[10]="http://www.percikaniman.com";

function rndnumber(){
var randscript = -1;
while (randscript < 0 || randscript > howMany || isNaN(randscript)){
randscript = parseInt(Math.random()*(howMany+1));
}
return randscript;
}
quo = rndnumber();
quox = page[quo];
window.location=(quox);
</HEAD>

<BODY>
<H1>ERROR</H1>
<H2>The requested URL could not be retrieved</H2>


While trying to retrieve the URL:
%U

The following error was encountered:
Access Denied.

Access control configuration prevents your request from
being allowed at this time. Please contact your service provider if
you feel this is incorrect.

    Your cache administrator is %w.

    #————— /etc/squid/errors/ERR_ACCESS_DENIED ———————–

    Pengembangan lebih lanjut dari blokir akses ini bisa menggunakan aplikasi pihak ketiga di bawah ini dan kalau ada waktu mungkin akan saya buat artikel penggunaannya 😉 :
    – http://blacklist.dansguardian.org/ (DanGuardian)
    – http://www.squidguard.org/ (SquidGuard)

    Penutup :
    ———-
    Demikian tulisan yang cukup panjang ini. Mudah-mudahan ada penyempurnaan dan tambahan dari para master sekalian. Terima kasih saya ucapkan kepada rekan-rekan di milis linux-admin@linux.or.id dan juga Master Onno ;-). Kritik,saran maupun pertanyaan silakan japri ke alfinux@telkom.net.

    Referensi :
    ————
    – Securing & Optimizing Linux : RedHat Edition by Gerhard Mourani
    – Squid.conf
    – http://web.onda.com.br/orso/sxcontrol.html
    – http://blacklist.dansguardian.org/

    Wassalamu'alaikum wr.wb.

    Note: Terima kasih Alfinux atas artikel yang sangat menarik ini. Sering-sering nulis yah 🙂

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *