Pada tutorial kali ini kita akan menggunakan squid bawaan dari distro Centos 5.2. Untuk melihat apakah di dalam sistem kita sudah ada squid bawaan, maka bisa dilihat dengan cara sebagai berikut:
# rpm -qa | grep squid
Dan squid bawaan untuk centos 5.2 adalah squid-2.6.STABLE6-5.el5_1.3.
Kalau ternyata paket squid belum terinstal dalam sistem kita, maka silahkan download di sini. Misal kita sudah mendownload squid versi 2.7 dan ingin memasukkannya ke dalam sistem kita. Maka, urutan langkah-langkahnya adalah sebagai berikut:
1. Ekstrak Paket Squid
# tar -zxvf squid-2.7.STABLE6.tar.gz
2. Membuat User Squid
# useradd –d /cache/ -r –s /dev/null squid >/dev/null 2>&1
# mkdir /cache
# chown –R squid.squid /cache/
3. Instalasi Squid
# cd squid-2.7.STABLE6
# ./configure –prefix=/usr/local/squid
# make
# make install
Atau cara lebih mudahnya kita menggunakan yum dengan mengetikkan:
# yum install squid
Dan perlu diperhatikan juga bahwa jika kita menggunakan squid bawaan distro, maka kita juga harus melakukan langkah-langkah sebagai berikut:
# mkdir /cache
# chown -R squid.squid /cache
V. Konfigurasi Squid
Setelah proses instalasi selesai, langkah selanjutnya adalah mengkonfigurasi squid. Dan perlu diketahui bahwa ada perbedaan lokasi direktori file konfigurasi squid. Jika kita menggunakan squid bawaan distro (dalam hal ini Centos 5.2) maka file direktorinya terletak di /etc/squid, sedangkan file direktori konfigurasi squid hasil instalasi maka file tersebut berada di /usr/local/squid/etc. Karena tutorial ini menggunakan squid bawaan centos, maka silahkan buka file tersebut di /etc/squid.
# cd /etc/squid
Kemudian buat duplikat dari file squid.conf dengan cara:
# cp squid.conf squid.conf.ori
Setelah itu, untuk melihat konfigurasi squid, ketikkan:
# vi squid.conf
Di dalam file squid.conf banyak opsi-opsi yang bisa digunakan sesuai dengan kebutuhan. Namun, pada umumnya orang-orang yang menggunakan squid lebih menitikberatkan pada opsi kendali akses (Access List) dan http_access serta membiarkan default opsi-opsi lainnya.Opsi kendali akses pada squid digunakan untuk mengatur akses pada server proxy. Pola kendali akses yang diberlakukan pada squid cukup lengkap. Akses internet yang dilakukan user dapat dibatasi dengan acl (access control list). Masing-masing acl mendefinisikan suatu tipe aktivitas tertentu, seperti waktu akses atau jaringan asal kemudian dihubungkan dengan pernyataan http_access yang memberitahu pada squid apakah akses diijinkan atau tidak.
Format penulisan acl adalah sebagai berikut:
acl nama_acl tipe_acl string1 …
acl nama_acl tipe_acl “file” …
Nama acl dapat diberikan sembarang sesuai dengan macam akses yang akan dikendalikan. Tipe acl yang dapat digunakan beserta parameter yang mengikuti dan keterangannya dapat dilihat pada tabel di bawah ini:
Tipe Acl | Argumen | Keterangan |
src | IP/netmask | Asal alamat IP Klien |
IP1-IP2 | Rentang alamat IP | |
dst | IP/netmask | Tujuan IP URL |
myip | ip/netmask | Socket alamat ip lokal |
srcdomain | nama_domain | Asal Domain Klien |
dstdomain | nama_domain | Tujuan Domain URL |
srcdom_regex | [-i] xxx … | Pernyataan untuk asal klien |
dstdom_regex | [-i] xxx … | Pernyataan untuk tujuan server |
time | [day] [h1:m1-h2:m2] … |
[day=S(Sunday),M(Monday),T(Tuesday),W(Wednesday),H(Thursday),A(Saturday)]
[h=hour=00-23] [m=minute=00-59]
|
url_regex | [-i] ^http:// … | Pernyataan nama URL lengkap |
urlpath_regex | [-i] \.gif$ … | Pernyataan path pada URL |
port | Port … | Nomor port |
Port1-port2 … | Rentang nomor port | |
myport | Port … | Port socket TCP local |
proto | Protocol … | Nama protocol yang dikendalikan (HTTP, FTP, dll) |
method | Metode … | Nama metode yang dikendalikan (GET,POST,dll) |
browser | [-i] regexp … | Pernyataan untuk pola pencocokan pada header permintaan |
ident | Username … | Daftar username |
ident_regex | [-i] pola … | Pernyataan untuk username |
src_as | Angka … | Angka asal autonomi asal klien |
dst as | Angka … | Angka system autonomi tujuan server |
proxy_auth | Username … | Autentifikasi username melalui proses eksternal |
proxy_auth_regex | [-i] pattern … | Autentifikasi username melalui proses eksternal |
snmp_community | String … | Nama komunitas untuk membatasi agen SNMP |
maxconn | Jumlah | Jumlah maximum koneksi HTTP untuk satu alamat IP |
req_mime_type | Type_mime1 … | Pernyataan berdasarkan tipe MIME yang diminta klien |
VI. Contoh-Contoh Konfigurasi Squid
Untuk mengkonfigurasi squid, kita harus masuk ke file squid.conf yang berada di /etc/squid dan berikut sebagian contoh konfigurasi squid.
A. Agar seluruh user bisa internet
acl dwinetwork src 192.168.0.0/24
http_access allow dwinetwork
http_access allow dwinetwork
B. Agar salah satu user tidak bisa internet
acl test src 192.168.0.190/32
http_access deny test
http_access deny test
C. Agar user tidak bisa mengkases beberapa domain
acl test src 192.168.0.190/32
acl restdomain dstdomain “/etc/squid/list/domain.txt”
http_access deny restdomain test
acl restdomain dstdomain “/etc/squid/list/domain.txt”
http_access deny restdomain test
Setelah itu, membuat file domain.txt yang berisi nama-nama domain yang terlarang untuk dikunjungi di direktori /etc/squid/list. Misalnya seperti berikut ini:
.okezone.com
.detik.com
.yahoo.com
.detik.com
.yahoo.com
D. Agar user tidak bisa mencari kata-kata tertentu di Search engine seperti Google
acl test src 192.168.0.190/32
acl restkata url_regex -i “/etc/squid/list/kata.txt”
http_access deny restkata test
acl restkata url_regex -i “/etc/squid/list/kata.txt”
http_access deny restkata test
Setelah itu, membuat file kata.txt yang berisi kata-kata yang terlarang untuk dicari dimesin search engine di direktori /etc/squid/list. Misalnya berisi:
proxy
sex
naked
sex
naked
E. Agar user tidak bisa berkunjung ke situs tertentu dengan menggunakan IP
acl test src 192.168.0.190/32
acl restip dst “/etc/squid/list/ip.txt”
http_access deny restip test
acl restip dst “/etc/squid/list/ip.txt”
http_access deny restip test
Setelah itu, membuat file ip.txt yang berisi ip-ip yang terlarang untuk dikunjungi di direktori /etc/squid/list. Misalnya berisi:
66.55.141.20/32
64.38.255.172/32
216.34.131.135/32
70.84.171.179/32
64.38.255.172/32
216.34.131.135/32
70.84.171.179/32
F. Agar semua komputer dibatasi jumlah downloadnya maksimal 2 MB (2000 x 1024 byte = 2048000 byte) yang berlaku dari jam 8 sampai jam 17.30 pada hari kerja
acl nodownload time MTWHFF 08:00-17:30
acl ekstensi url_regex -i ftp .exe .mp3 .tar.gz .gz .tar.bz2 .bz2
acl ekstensi url_regex -i ftp .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso
reply_body_max_size 2048000 allow ekstensi nodownload
acl ekstensi url_regex -i ftp .exe .mp3 .tar.gz .gz .tar.bz2 .bz2
acl ekstensi url_regex -i ftp .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso
reply_body_max_size 2048000 allow ekstensi nodownload
UPDATE
Setelah saya memasukkan rule di atas, terlihat bahwa download file lebih dari 2 MB masih bisa walaupun pada jam 08:00-17.30, kemudian saya coba mengkonfigurasi rule diatas menjadi:
Setelah saya memasukkan rule di atas, terlihat bahwa download file lebih dari 2 MB masih bisa walaupun pada jam 08:00-17.30, kemudian saya coba mengkonfigurasi rule diatas menjadi:
reply_body_max_size 2048000 allow ekstensi nodownload
Dan setelah squid di reload, maka tidak ada lagi yang bisa mendownload file lebih dari 2 MB pada jam 08:00-17:30.G. Menggabungkan seluruh rule-rule pada satu squid
Pada point a-f, sudah dijelaskan tentang bagaimana caranya agar sebuah rule dibuat di proxy. Namun pertanyaan yang muncul adalah bagaimana jika kita ingin menggabungkan seluruh rule tersebut? Misalnya kita ingin rule seperti berikut:
- Beberapa website diblok saat jam kerja (08:00-12:00 dan 13:30-17:00)
- Website tertentu hanya diblok untuk IP tertentu saja
- Menolak website yang mengandung kata kunci
Pada point a-f, sudah dijelaskan tentang bagaimana caranya agar sebuah rule dibuat di proxy. Namun pertanyaan yang muncul adalah bagaimana jika kita ingin menggabungkan seluruh rule tersebut? Misalnya kita ingin rule seperti berikut:
- Beberapa website diblok saat jam kerja (08:00-12:00 dan 13:30-17:00)
- Website tertentu hanya diblok untuk IP tertentu saja
- Menolak website yang mengandung kata kunci
Berikut adalah settingan rule di file squid.conf:
acl morning_hours time MTWHF 8:00-12:00
acl evening_hours time M T W H F 13:30-18:00
acl evening_hours time M T W H F 13:30-18:00
acl deniedDomains url_regex src “/etc/squid/deniedDomains”
acl blacklistIP src “/etc/squid/blacklistIP”
acl blacklistIP src “/etc/squid/blacklistIP”
http_access deny deniedDomains morning_hours blacklistIP
http_access deny deniedDomains evening_hours blacklistIP
http_access deny deniedDomains evening_hours blacklistIP
acl myNetwork src “/etc/squid/acl”
http_access allow myNetwork
http_access allow myNetwork
# vi /etc/squid/deniedDomains
friendster
metacafe
myspace
youtube
facebook
friendster
metacafe
myspace
youtube
# vi /etc/squid/blacklistIP
192.168.1.54
192.168.1.221
192.168.1.236
172.16.70.5
192.168.1.54
192.168.1.221
192.168.1.236
172.16.70.5
# vi /etc/squid/acl
192.168.1.0/24
172.16.70.0/24
192.168.1.0/24
172.16.70.0/24
Setelah itu restart squid dan seharusnya rule-rule tersebut bisa teraplikasi di jaringan kita.
VII. Sesudah Konfigurasi Squid
Setelah semua konfigurasi yang diperlukan diatur sesuai dengan yang diinginkan, program squid dapat dijalankan. Squid server proxy dapat dijalankan secara mudah dengan perintah squid disertai beberapa opsi yang diperlukan. Sintaks perintah dan opsi yang dapat digunkan untuk menjalankan squid adalah sebagai berikut:
# Squid [-dhsvzCDFNRVYX] [-f konfig] [-[au] port] [-k signal]
dimana:
- a: menentukan nomor port akses HTTP (default:3128)
- d: menulis debugging ke suatu stderr
- f: menggunakan file konfigurasi selain default /etc/squid/squid.conf
- h: mencetak pesan help
- k: member isyarat untuk menjalankan squid. Isyarat yang diperbolehkan adalah reconfigure, rotate, shutdown, interrupt, kill, debug, check dan parse
- s: membuat enable logging ke syslog
- u: menentukan nomor port ICP (defaulr:3130), dapat dibuat disable dengan 0
- v: menampilkan verbose
- z: membuat direktori swap cache
- C: membuat disabled test DNS awal
- F: tidak melayani permintaan sampai simpanan terbentuk
- N: menjalankan squid tidak menggunakan daemon
- R: tidak mengatur REUSERADDR pada port
- S: dua kali memeriksa cache selama pembentukan
- V: menjalankan virtual host httpd-accelerator
- x: melakukan debugging penuh
- Y: Hanya return UDP_HIT atau UDP_MISS_NOFETCH selama reload cepat
Sebelum dijalankan untuk pertama kali, squid harus membentuk direktori untuk menyimpan cache. Direktori sesuai dengan yang diatur pada file squid.conf menggunakan opsi cache_dir yang secara default adalah /var/spool/squid. Untuk membentuk cache digunakan perintah squid diikuti opsi –z sebagai berikut:
# squid –z
Jika direktori cache sudah terbentuk, selanjutnya squid cukup dijalankan tanpa membentuk cache baru. Biasanya squid dijalankan sebagai daemon, sehingga untuk menjalankan squid digunakan perintah berikut ini:
# squid –D
Opsi –D digunakan agar squid tidak memeriksa DNS. Opsi ini diberikan karena proses memeriksa DNS biasanya memerlukan waktu yang agak lama.
Untuk menyalakan squid, tuliskan perintah berikut:
Untuk menyalakan squid, tuliskan perintah berikut:
# service squid start
Untuk merestart squid, tuliskan perintah berikut:
# service squid restart
Jika kita merubah sesuatu di file squid.conf, lalu kita mau mengaplikasikannya di sitem kita, maka pada umumnya kita menggunakan perintah service squid restart. Namun, kalau kita menggunakan perintah ini, maka squid akan dimatikan terlebih dahulu baru kemudian dinyalakan kembali dan ini bisa mengganggu aktifitas yang melibatkan squid. Sebagai penggantinya, maka gunakan perintah berikut:
# squid –k reconfigure
VII. Troubleshooting
1. Error $SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1 [FAILED]
Setelah kita mengkonfigurasi squid untuk pertama kalinya, biasanya akan ada error seperti berikut pada saat kita start squid:
Setelah kita mengkonfigurasi squid untuk pertama kalinya, biasanya akan ada error seperti berikut pada saat kita start squid:
Starting squid: /etc/init.d/squid: line 42: 17137 Aborted
$SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1 [FAILED]
dan akan terlihat gambar seperti berikut:
$SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1 [FAILED]
dan akan terlihat gambar seperti berikut:
Setelah di cari penyebabnya di file /var/log/message, ternyata penyebabnya adalah tidak adanya visible_hostname.
Solusinya adalah menambahkan visible_hostname di file konfigurasi squid. Masuk ke file /etc/squid/squid.conf, lalu cari bagian visible_hostname dan tambahkan visible_hostname di bagian tersebut. Di squid penulis, penulis menambahkan visible_hostname sebagai berikut:
visible_hostname proxy.catatanlepas.com
Setelah itu, start kembali squidnya dan seharusnya squid sudah bisa berjalan dengan baik.
Setelah itu, start kembali squidnya dan seharusnya squid sudah bisa berjalan dengan baik.
2. Error squid: ERROR: No running copy
Penulis juga pernah mengalami error seperti berikut:
Penulis juga pernah mengalami error seperti berikut:
# squid -k reconfigure
squid: ERROR: No running copy
squid: ERROR: No running copy
Setelah mencari di google, maka penulis mengecek di /var/log/messages dan ada log sebagai berikut:
# tail -f /var/log/messages
Feb 24 10:34:07 backup squid[18208]: Squid Parent: child process 18217 started
Feb 24 10:34:08 backup squid[18217]: storeUfsDirOpenSwapLog: Failed to open swap log.
Feb 24 10:34:08 backup squid[18208]: Squid Parent: child process 18217 exited due to signal 6
Feb 24 10:34:11 backup squid[18208]: Squid Parent: child process 18220 started
Feb 24 10:34:11 backup squid[18220]: storeUfsDirOpenSwapLog: Failed to open swap log.
Feb 24 10:34:11 backup squid[18208]: Squid Parent: child process 18220 exited due to signal 6
# tail -f /var/log/messages
Feb 24 10:34:07 backup squid[18208]: Squid Parent: child process 18217 started
Feb 24 10:34:08 backup squid[18217]: storeUfsDirOpenSwapLog: Failed to open swap log.
Feb 24 10:34:08 backup squid[18208]: Squid Parent: child process 18217 exited due to signal 6
Feb 24 10:34:11 backup squid[18208]: Squid Parent: child process 18220 started
Feb 24 10:34:11 backup squid[18220]: storeUfsDirOpenSwapLog: Failed to open swap log.
Feb 24 10:34:11 backup squid[18208]: Squid Parent: child process 18220 exited due to signal 6
Hal ini karena adanya perubahan kepemilikan file swap.state di folder /var/spool/squid seperti yang ada di bawah ini:
-rw-r—– 1 root squid 69504 Feb 24 10:16 swap.state
kemudian ubah kepemilikan menjadi:
# chown squid /var/spool/squid/swap.state
kemudian start squid dengan cara:
# service squid start
dan seharusnya squid kembali normal.
Jaringan Komputer Teori dan Implementasi Berbasis Linux, Wagito
http://www.systmbx.com/
www.Ilmukomputer.org
http://adimaulana.wordpress.com/
http://rantsa.wordpress.com/http://disciplesitompul.wordpress.com
http://www.systmbx.com/
www.Ilmukomputer.org
http://adimaulana.wordpress.com/
http://rantsa.wordpress.com/http://disciplesitompul.wordpress.com
CASINO & GAMING - Mapyro
BalasHapusCASINO & GAMING at Mapyro. Casino, Resort & Sky Resort. 1280 Highway 315, South Las 경산 출장샵 Vegas, NV 보령 출장안마 89109. 양산 출장마사지 Phone. *** 제주도 출장샵 ***** ***** Casino Near Me 여주 출장샵 (702) 770-7777