Home > Linux > Memblock akses Facebook pada Saat Jam Kerja di squid

Memblock akses Facebook pada Saat Jam Kerja di squid

Indonesia adalah negara yang termasuk paling aktif mengakses facebook (urutan ke -2 dunia di bawah Amerika, http://www.facebakers.com Agustus 2010).Jadi bisa disimpulkan konsumsi bandwidth yang digunakan untuk facebook cukup besar untuk negara seperti Indonesia yang akses internetnya masih terbatas dan cukup mahal dibandingkan negara-negara berkembang. Padahal bandwidth yang “terbatas” dan “mahal” tadi bisa dimanfaatkan untuk sesuatu yang lebih positif.

Di sisi lain dengan adanya facebook memungkinkan tali silaturrahmi dengan keluarga, teman  dan sejawat tetap terbina dan terjaga. Teman-teman SD yang dulunya pada gak jelas kemana juntrungannya… dengan adanya facebook bisa ketemu …bertegur sapa dan bertukar berita. Jadi sebenarnya facebook pun ada manfaatnya.

Di Perguruan Tinggi/Universitas sendiri jika mahasiswa diberikan akses internet gratis dipastikan hit tertinggi ditempati facebook. Padahal akses internet di Kampus bersifat terbatas.

Untuk itu di Kampusku, terpaksa diakalin dengan membatasi akses facebook pada saat jam kerja ditutup, yaitu:

  • hari senin -Jumat  akses facebook ditutup jam 9-12 siang .
  • hari Senin-Jumat jam 12-13 siang (saat istirahat siang) akses facebook dibuka
  • hari Senin-Jumat jam 13-15.00 siang, akses facebook ditutup kembali
  • selain itu akses facebook dibuka.

Jika ingin menutup facebook secara permanen sih gampang, cuma masukin facebook sebagai site yang diblok di proxy. Tetapi kalau mau dibuat rule seperti di atas terpaksa deh  diakalin….

Setelah di googling kiri kanan… akhirnya dibuatlah rumusan berikut:

  • asumsikan kita sudah memilki server proxy (dalam kasus di Kampus, saya menggunakan squid).
  • Di bagian setingan squid, yaitu /etc/squid/squid.conf  kita kopi buat 2 versi, yaitu squidsantai.conf dan squidjamkerja.conf.

#sudo cp /etc/squid/squid.conf /etc/squid/squidsantai.conf
#sudo cp /etc/squid/squid.conf /etc/squid/squidjamkerja.conf

  • Edit squidsantai.conf

#nano /etc/squid/squidsantai.conf

Kemudian edit bagian untuk memblok situs porno (berisi nama file daftar situs yang diblok dalam kasus di proxy saya nama filenya blok-situs)

….

acl yahoo dstdomain .yahoo.com
acl PornSites url_regex -i “/etc/squid/blok-situs”
no_cache deny LocalServers yahoo
always_direct allow LocalServers

…..

Saya edit menjadi

acl PornSites url_regex -i “/etc/squid/blok-situs-santai”

Jadi beda antara file squidsantai.conf dan squijamkerja.conf hanya di baris ini saja yang lain idem (kecuali ingin merubah maksimum bandwith dan delay pool silahkan dirubah sesuai keperluan)

  • Kemudian kopikan blok-situs menjadi blok-situs-santai

#cp /etc/squid/blok-situs /etc/squid/blok-situs-santai

  • Silahkan tambahakan list situs yang ingin diblok khusus pada saat jam kerja di blok-situs (misalnya facebook, rapidshare, dll). Sedangkan di list blok-situs-santai berisi list situs yang memang benar-benar tidak boleh diakses (biasanya situs porno).
  • Kemudian Kita tambahkan di crontab, agar pada saat jam 9-12 dijalankan squidjamkerja.conf, jam 12-13.00 dijalankan squidsantai.conf, dan jam 13-15.00 dijalankan squidjamkerja.conf khusu pada hari Senin-Jumat. Maka jlankan:

#sudo crontab e

(pilih nano yang paling gampang untuk mengedit), tambahkan perintah berikut:

00 9 * * 1-5 cp /etc/squid/squidjamkerja.conf /etc/squid/squid.conf | /etc/init.d/squid restart
00 12 * * 1-5 cp /etc/squid/squidsantai.conf /etc/squid/squid.conf | /etc/init.d/squid restart
00 13 * * 1-5 cp /etc/squid/squidjamkerja.conf /etc/squid/squid.conf | /etc/init.d/squid restart
00 15 * * 1-5 cp /etc/squid/squidsantai.conf /etc/squid/squid.conf | /etc/init.d/squid restart

keterangan:

  • baris pertama: pada jam 9.00 (00 9), setiap hari Senin- Jumat (1-5) akan dijalankan perintah mengkopi  squidjamkerja.conf ke squid.conf, kemudian squid di restart. (Berarti squid akan membaca file blok-situs, untuk daftar situs yang diblok, yang didalamnya terdapat facebook, dll.).
  • baris kedua: pada jam 12.00 (00 12), setiap hari Senin- Jumat (1-5) akan dijalankan perintah mengkopi  squidsantai.conf ke squid.conf, kemudian squid di restart. (Berarti squid akan membaca file blok-situs-santai, untuk daftar situs yang diblok, yang tidak terdapat facebook).
  • baris ketiga: pada jam 13.00 (00 13), setiap hari Senin- Jumat (1-5) akan dijalankan perintah mengkopi  squidjamkerja.conf ke squid.conf, kemudian squid di restart. (Berarti facebook kembali diblok).
  • baris keempat: pada jam 15.00 (00 15), setiap hari Senin- Jumat (1-5) akan dijalankan perintah mengkopi  squidsantai.conf ke squid.conf, kemudian squid di restart. (Berarti facebook dibuka). Pada saat hari Jumat setelah jam 15.00 facebook kondisinya tetap terbuka karena squid.conf berisikan squidsantai.conf, hingga sampai pada hari Senin jam 9 kondisinya kembali dirubah (facebook diblok kembali).

Jadi sebenarnya yang dilakukan adalah merubah setingan squid.conf, pada setiap jam yang kita jadwalkan untuk diblok atau dibuka.

= = Pembatasan Akses Download = =

Contoh konfigurasi pembatasan kapasitas Download pada jam-jam tertentu dan kapasitas tertentu (dalam hal ini 5 MB dari jam 08:00-17:00)

# acl tdkbebasdownload time 08:00-17:00

# acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar.bz2 .bz2 .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso

reply_body_max_size 5120000 allow magic_words2  tdkbebasdownload

Contoh 1: Membatasi akses internet dari IP tertentu

Misal, dalam satu jaringan kantor, semua diperbolehkan mengakses internet via proxy. Kecuali beberapa komputer di meja penerima tamu atau front office.

acl jaringan_kantor src 192.168.1.0/24
acl front_office src 192.168.1.21    # komputer1 di front office
acl front_office src 192.168.1.22    # komputer2 di front office
acl front_office src 192.168.1.23    # komputer3 di front office

http_access deny front_office
http_access allow jaringan_kantor

Sekalian untuk format penulisan acl di atas, Anda bisa juga menuliskannya seperti di bawah ini.

Format inline, jadi IP dituliskan ke samping, tanpa menekan enter atau penanda baris baru.

acl jaringan_kantor src 192.168.1.0/24
acl front_office src 192.168.1.21 192.168.1.22 192.168.1.23

http_access deny front_office
http_access allow jaringan_kantor

Format rentang, karena kebetulan IP si komputer front office berurutan.

acl jaringan_kantor src 192.168.1.0/24
acl front_office src 192.168.1.21-192.168.1.23/32

http_access deny front_office
http_access allow jaringan_kantor

Silakan dilihat lagi di blok ACL yang sudah saya terjemahkan di atas.

Contoh 2: Membatasi akses ke situs tertentu

Anda ingin memblock beberapa situs porno yang paling sering dikunjungi oleh user Anda. Tentu saja ini cara paling sederhana, dan mungkin tidak cocok untuk memblock situs porno secara keseluruhan. Tapi ini hanya sekedar contoh saja.

Pertama, pastikan rules untuk membatasi akses ke situs porno itu muncul lebih dahulu, dibandingkan rules lain yang membolehkan akses internet. Lihat contoh dibawah ini. Kita akan menggunakan tipeacl dstdomain, yang bisa digunakan untuk menandai domain tujuan yang akan diakses.

acl situs_porno dstdomain .playboy.com
acl situs_porno dstdomain .porno.com
http_access deny situs_porno

acl jaringan_kantor 192.168.1.0/24
http_access allow jaringan_kantor

Contoh penempatan yang salah ada di bawah ini

# Contoh penempatan yang salah

acl jaringan_kantor 192.168.1.0/24
http_access allow jaringan_kantor

# rules di bawah ini tidak akan pernah dijalankan, karena akses sudah diperbolehkan
# di baris sebelumnya
acl situs_porno dstdomain .playboy.com
acl situs_porno dstdomain .porno.com
http_access deny situs_porno

Jadi perlu Anda ingat, posisi menentukan prestasi. Atau posisi rules yang Anda buat di squid.conf sangat menentukan apakah rules tersebut akan digunakan atau tidak.

Contoh 3: Membatasi akses internet di jam kerja

Kali ini kita akan menggunakan tipe acl time. Langsung saja ke contoh.

acl jam_kerja time MTWH 08:00-12:00  # Senin s.d Kamis jam 08:00 s.d Jam 12:00
acl jam_kerja time F 08:00-11:30  # Jumat 08:00-11:30 WIB
acl jam_kerja time MTWHF 13:00-16:00 # Senin s.d Jumat jam 13:00 s.d 16:00

acl jaringan_kantor src 192.168.1.0/24

# Buka akses internet, diluar jam kerja
http_access allow jaringan_kantor !jam_kerja

Lihat tanda seru (!) di depan acl. Yang berarti tanda negasi, atau NOT (bukan). Jadi artinya kita hanya membuka akses internet untuk jaringan_kantor dan waktunya bukan di jam kerja.

Contoh 4: Membatasi akses internet di jam kerja, kecuali manager dan bos

Contoh lain, kantor hanya ingin membuka akses internet untuk komputer-komputer manajer dan si Boss besar. Karyawan lainnya, bisa mengakses internet tapi hanya di luar waktu kerja.

acl jam_kerja time MTWH 08:00-12:00  # Senin s.d Kamis jam 08:00 s.d Jam 12:00
acl jam_kerja time F 08:00-11:30     # Jumat 08:00-11:30 WIB
acl jam_kerja time MTWHF 13:00-16:00 # Senin s.d Jumat jam 13:00 s.d 16:00

# jaringan kantor
acl jaringan_kantor src 192.168.1.0/24

# manager dan boss
acl manager src 192.168.1.51  # manager keuangan
acl manager src 192.168.1.52  # manager marketing
acl manager src 192.168.1.53  # general manager
acl boss src 192.168.1.68     # si boss besar

# Buka akses internet untuk manager dan boss, tanpa batasan waktu
http_access allow manager
http_access allow boss

# Untuk karyawan lainnya, buka akses internet diluar jam kerja
http_access allow jaringan_kantor !jam_kerja

Semoga bermanfaat………………

source:http://blog.binadarma.ac.id/yesinovariakunang/?p=194, http://zulfahendri.wordpress.com/2010/10/23/konfigurasi-transparent-proxy-squid-2-6-di-centos-5-4/; http://ngadimin.com/2009/10/31/squid-hari-ke-dua-mengenal-acl/

Categories: Linux
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: