Tag

Di kantor sering diadakan pelatihan dan nampaknya beberapa situs sosial network telah membuat yang mengikuti training tidak konsen dalam menyerap teori training yang diberikan, sehingga perlu diberikan sedikit pembatasan untuk mengakses selama proses pelatihan sedang berlansung.

Terlebih dahulu pada sistem ditempat saya bekerja sudah terintall squid yang dengan bantuan shorewall telah menjadi sebuah Transparent Proxy. Selain itu juga, agar saya tidak perlu lagi merubah setiap kali diadakan pelatihan, saya kemudian memutuskan melakukan beberapa customize pada setting cron yang nantinya akan melakukan proses setting konfigurasi squid dengan mengganti konfigurasinya diantara mode pelatihan dan tidak secara otomatis, berdarkan waktu yang telah ditentukan.

Selain itu, saya juga menginginkan agar pembatasan hanya berlaku pada peserta dan bukan bagi komputer yang digunakan oleh trainer maupun staff IT yang lain. Berikuti ini adalah langkah-langkah yang saya lakukan secara detail sehingga saya bisa melakukannya dengan baik.

1. Membuat Pemisahan File Konfigurasi SQUID

Agar mudah di maintenance, saya membuat 2 buah file konfigurasi, 1 untuk pelatihan dengan nama squid.conf.pelatihan dan 1 untuk biasa dengan nama squid.conf.harian.

# cd /etc/squid/
# cp squid.conf squid.conf.pelatihan
# cp squid.conf squid.conf.harian
# cp squid.conf squid.conf.original

Untuk menjaga-jaga saja, saya menyimpan file konfigurasi awal pada squid.conf.original.

2. Membuat File URL yang Tidak Diperbolehkan Untuk Diakses

Kemudian agar mudah pula kita maintenance daftar URL yang tidak diperbolehkan diakses, saya memutuskan untuk menyimpannya di file dan saya beri namanya adalah blocked-site.conf.

# touch blocked-site.conf
# nano blocked-site.conf

Kemudian pada isiannya saya isikan isian berikut (tentu saja Anda bisa memasukkannya sesuai keinginan🙂 )

.facebook.com
.mail.ru
.ceriwis.us
.games.co.id
.duniapermainan.com
.freegam3s.com
.games.yahoo.com

Perhatikan bahwa saya menambahkan domain utamanya diikuti tanda “.” (titik/dot) pada awalnya. Sehingga semua subdomain dari domain yang bersangkutan juga tidak dapat diakses.

3. Melakukan Setting Pada File Konfigurasi Pelatihan

Karena file konfigurasi sudah dipisahkan, kita tinggal melakukan editing pada file konfigurasi squid.conf.pelatihan.

# nano squid.conf.pelatihan

Berikut kurang lebih konfigurasi yang saya ubah atau ditambahkan.

acl mynet src 10.10.4.0/24
#acl allowed_site dstdomain “/etc/squid/allowed-site.conf”
acl blocked_site dstdomain “/etc/squid/blocked-site.conf”
# allowed IP to all site
# trainer/staff IP Number
acl ip_allowed src 10.10.4.107 10.10.4.191 10.10.4.112 \
10.10.4.123 10.10.4.141 10.10.4.125
deny_info ERR_BLOCKED_TRAINING blocked_site
http_access deny !ip_allowed blocked_site
http_access allow mynet

Sebagai penjelasan mynet adalah network komputer pada jaringan yang menggunakan proxy. Kemudian untuk mengarahkan squid meload daftar domain yang di block, maka bisa dilihat ada perintah untuk meload “/etc/squid/blocked-site.conf” yang dibuat tadi dengan nama variable acl-nya adalah blocked_site.

Dilain pihak tidak pula saya lupa untuk menambahkan IP Number yang digunakan oleh pihak trainer dan staff IT yang tidak mendapat pembatasan selama pelatihan dengan nama variable acl-nya adalah ip_allowed. Setelah itu agar aturan yang sudah dibuat bisa diberlakukan di squid saya perintah setelah http_access dengan perintah deny; perintah !ip_allowed berarti selain kode IP yang terdapat di  ip_allowed akses akan di-block sesuai dengan daftar yang ada pada blocked_site.

Sebagai tambahan informasi pada waktu proses blocking supaya bisa terlihat lebih informatif dibandingkan yang ditampilkan oleh squid, maka ditambahkan ERR_BLOCKED_TRAINING yang akan menampilkan informasi saat terjadi proses blocking. Agar bisa membuat custom, kita tambahkan file bernama ERR_BLOCKED_TRAINING di “/etc/squid/error“.

# touch /etc/squid/errors/ERR_BLOCKED_TRAINING
# nano /etc/squid/errors/ERR_BLOCKED_TRAINING

Berikut adalah isi file ERR_BLOCKED_TRAINING tersebut ...

<HTML>
<HEAD>
<TITLE>DENIED: LAGI TRAINING</TITLE>
</HEAD>
<BODY>
<H1 style=”color: red;”>MAAF SELAGI TRAINING AKSES KE SITUSTERTENTU DI BLOCK</H1>
<p><strong>Hingga waktu istirahat situs tertentu tidakdapat di akses … Mohon pengertiannya (^.^)</strong></p>

Perhatikan kita tidak perlu menutup tag HTML tersebut karena sistem yang akan menambahkannya.

4. Testing

Untuk melakukan testing sangat mudah. Tinggal kita timpa konfigurasi utama dengan copy konfigurasi untuk pelatihan lalu kita reload squid-nya.

# /bin/cp -f /etc/squid/squid.conf.pelatihan /etc/squid/squid.conf
# /etc/init.d/squid reload

Perhatikan pada /bin/cp -f, saya menggunakannya agar tidak keluar konfirmasi untuk menimpa. Setelah itu coba check dari tempat yang seharusnya di block dan seharusnya keluar konfirmasi bahwa situs di block🙂.

Apabila kita ingin mengembalikan konfigurasi, maka tinggal kita timpa file asli dengan konfigurasi untuk harian.

# /bin/cp -f /etc/squid/squid.conf.harian
/etc/squid/squid.conf
# /etc/init.d/squid reload

Jangan lupa di chekc😀, dan jangan sampai bos gak bisa mengakses FB anaknya ya ha,,ha,,…

5. Automatisasi Menggunakan cron

Saya tidak membahasnya lagi untuk penggunaan cron karena banyak sekali bahan yang baik. Salah satunya di situs https://help.ubuntu.com/community/CronHowto.

Pelatihan di tempat saya dilakukan setiap hari; dari hari Senin – Sabtu. Untuk semua hari kecuali hari Jumat akan dilakukan dari pukul 08.00 s/d 16.00 dengan istirahat di jam 12.00 s/d 13.00. Pada hari jumat lebih pendek sedikit pada pukul 08.00 s/d 11.00 yang dilanjutkan ISHOMA dari pukul 11.00 s/d 13.00. Mengetahui jadwal yang demikian maka mode pelatihan akan diaktifkan pada saat pelatihan dan akan kembali pada mode harian pada saat bukan pada jam training dan pada jam istirahat.

Agar memudahkan maka saya membuat lagi sebuah file bash script bernama go-lat untuk mengaktifasi mode latihan, serta go-bis untuk mengaktifasi mode harian. Berikut adalah langkah-langkahnya:

# touch /etc/squid/go-lat
# nano /etc/squid/go-lat

Isi dari script go-lat adalah:

#!/bin/bash
/bin/cp -f /etc/squid/squid.conf.pelatihan
/etc/squid/squid.conf/etc/init.d/squid reload

Kemudian dilanjutkan untuk go-bis:

# touch /etc/squid/go-bis
# nano /etc/squid/go-bis

Isi dari script go-bis adalah:

#!/bin/bash
/bin/cp -f /etc/squid/squid.conf.harian /etc/squid/squid.conf
/etc/init.d/squid reload

Jangan lupakan untuk memberi akses executed agar file script kita bisa di eksekusi.

# chmod +x /etc/squid/go-lat
# chmod +x /etc/squid/go-bis

Setelah itu tinggal kita edit cron agar bisa melakukan prosesnya secara otomatis.

# crontab -e

Pada tampilan editing cron saya masukkan perintah berikut:

#jam 8 dan 13 aktifkan mode latihan, pada hari senin-sabtu
0       8,13    *       *       1-6     /etc/squid/go-lat
# Kembalikan mode harian pada jam 11 pada hari jumat, dan jam 12 & 16 pada hari selain Jumat dan Minggu🙂
0       11      *       *       5       /etc/squid/go-bis
0       12,16   *       *       1-4,6   /etc/squid/go-bis

Kemudian? Selesailah sudah dan kita sebagai Admin saya gak perlu bolak-balik mengupdate setting🙂

Moga bermanfaat ….