• Tidak ada hasil yang ditemukan

Instalasi Proxy Server : Squid

N/A
N/A
Protected

Academic year: 2021

Membagikan "Instalasi Proxy Server : Squid"

Copied!
5
0
0

Teks penuh

(1)

Instalasi Proxy Server : Squid

Squid adalah aplikasi web proxy server untuk keperluan 3A (authentication,

authorization, accounting), traffic shaper, dan web caching, dimana dengan

menggunakan proxy, semua user dapat mengakses Internet hanya melalui 1

public IP Address (IP Address dari user akan tersembunyi di belakang web proxy).

Instalasi Squid dilakukan dengan cara :

# cd /usr/ports/www/squid # make install clean

……… <tunggu sampai selesai, jika ada pertanyaan gunakan default saja> ………

# cat /etc/rc.conf | grep squid squid_enable="YES"

Edit file konfigurasi squid di

/usr/local/etc/squid/squid.conf # cat /usr/local/etc/squid/squid.conf

……… (hanya entry yg perlu di-edit) http_port 172.16.1.1 8080

cache_peer 10.1.1.4 parent 8080 3130 no-query maximum_object_size 16384 KB

minimum_object_size 0 KB

maximum_object_size_in_memory 8 KB cache_dir ufs /webcache 73728 256 256

acl local-servers dstdomain .imtelkom.ac.id acl porn url_regex "/usr/local/etc/squid/porn"

acl notporn url_regex "/usr/local/etc/squid/notporn" acl user_vpn src 172.16.0.0/255.255.0.0

acl dosen src 172.16.1.0/255.255.255.0 acl karyawan src 172.16.2.0/255.255.255.0 acl kaunit src 172.16.3.0/255.255.255.0 acl sisfo src 172.16.4.0/255.255.255.0

(2)

http_access allow notporn http_access deny porn http_access allow user_vpn http_access allow dosen http_access allow karyawan http_access allow kaunit http_access allow sisfo http_access deny all always_direct deny dosen always_direct deny karyawan always_direct deny kaunit always_direct deny sisfo always_direct allow all

always_direct allow local-servers never_direct allow dosen

never_direct allow karyawan never_direct allow kaunit never_direct allow sisfo never_direct deny all

reply_body_max_size 100000000 allow dosen reply_body_max_size 100000000 allow karyawan reply_body_max_size 0 allow kaunit

reply_body_max_size 10000000 allow all

Karena webcache dari squid akan disimpan di folder /webcache sebaiknya folder

tersebut adalah suatu hard disk dedicated, hal ini untuk memudahkan instalasi

ulang proxy server (object yg di-cache tetap ada).

Untuk membuat transparent proxy dimana user tidak perlu melakukan setting

proxy di client (di level platform OS atau web browser), maka edit firewall :

# Forwarding all traffic to Squid (transparent proxy).

${fwcmd} add fwd 127.0.0.1,3128 tcp from 172.16.0.0/16 to any 80 ${fwcmd} add fwd 127.0.0.1,3128 tcp from 172.16.0.0/16 to any 443 ${fwcmd} add allow tcp from 172.16.0.0/16 to any setup keep-state

Dan squid.conf :

http_port 172.16.1.1 8080 transparent

Langkah selanjutnya setelah membuat file konfigurasi adalah membuat web cache

# /usr/local/sbin/squid –f /usr/local/etc/squid/squid.conf –z 2006/06/28 13:55:43| Creating Swap Directories

FATAL: Failed to make swap directory /webcache/00: (13) Permission denied Squid Cache (Version 2.5.STABLE12): Terminated abnormally.

CPU Usage: 0.001 seconds = 0.000 user + 0.001 sys Maximum Resident Size: 0 KB

Page faults with physical i/o: 0

Error disebabkan karena squid tidak boleh menulis di folder webcache

# chown squid:squid /webcache

# /usr/local/sbin/squid –f /usr/local/etc/squid/squid.conf –z 2006/06/28 13:57:51| Creating Swap Directories

(3)

Saat beroperasi, squid akan membuat 3 buah file :

# ls -l /usr/local/squid/logs total 360340

-rw-r--r-- 1 squid squid 103106164 Jun 28 14:00 access.log -rw-r--r-- 1 squid squid 4771743 Jun 28 14:00 cache.log -rw-r--r-- 1 root squid 6 Jun 28 11:08 squid.pid -rw-r--r-- 1 squid squid 121467833 Jun 28 14:00 store.log

Ketiga file tersebut akan bertambah besar dengan cepat sekitar 400Mbyte setiap

harinya. Untuk keperluan maintenance log file tersebut, perlu dibuat shell script

untuk memproses file access.log :

# cat /root/process_squid_log.sh #!/bin/sh

######################################################################### # shell script ini melakukan 5 fungsi dgn urutan sbb : # # # # 1. membackup squid's access.log menjadi access.log.0 # # (dgn fasilitas rotate dari Squid) # # 2. memproses access.log.0 dgn webalizer untuk mendapatkan statistik # # 3. memproses access.log.0 dgn PHP script untuk akunting Internet # # (berdasarkan login VPN) # # 4. mengkompresi access.lo.0 dan memberi nama sesuai timestamp-nya # # 5. memblok login VPN yg sudah over quota dgn menggunakan firewall # # shell script ini membutuhkan : # # - /usr/bin/grep & /usr/bin/awk (bawaan dari FreeBSD) # # - update_usage_n_block.php (PHP script untuk perhitungan (akunting) # # penggunaan Internet # # - update_situs.php (PHP script untuk melakukan rekap situs yg diakses # # - update_hitmiss.php (PHP script untuk melakukan rekap jumlah HIT # # dan MISS dr webcache # # shell script ini harus dijalankan setidaknya setiap 1 jam # ######################################################################### ############################# S E T T I N G ############################# WEBALIZER="/usr/local/bin/webalizer"

WEBALIZER_OPTION="-Q -F squid -c /usr/local/etc/webalizer-proxy.conf" TODAY=`date "+%Y%m%d%H%M"`

SQUID="/usr/local/sbin/squid"

SQUID_OPTION="-f /usr/local/etc/squid/squid.conf -k rotate" TEMP_FOLDER="/data/log"

################# FUNGSI 1 : backup squid's access.log ################## # memindahkan log aktif /usr/local/squid/logs/access.log ke

/usr/local/squid/logs/access.log.0 ${SQUID} ${SQUID_OPTION}

sleep 30

############# FUNGSI 2 : proses access.log.0 dgn webalizer ############## # menganalisa access.log.0 menggunakan aplikasi webalizer

${WEBALIZER} ${WEBALIZER_OPTION} /usr/local/squid/logs/access.log.0

######## FUNGSI 3 : proses access.log.0 untuk akunting Internet ######### # access.log.0 akan diparsing menggunakan grep dan di-reformat

menggunakan awk

# untuk menghasilkan 5 file tambahan dgn format informasi yg lebih sederhana

# untuk mempercepat pemrosesan dgn PHP script. Ke-lima file tsb : # 1. ${TEMP_FOLDER}/usage.txt (format : IP_ADDRESS OBJECT_SIZE) # 2. ${TEMP_FOLDER}/situs.txt (format : TIMESTAMP IP_ADDRESS ACCESSED_SITE)

(4)

# 3. ${TEMP_FOLDER}/hit.txt (jumlah HIT pada webcache) # 4. ${TEMP_FOLDER}/miss.txt (jumlah MISS pada webcache)

# 5. ${TEMP_FOLDER}/other.txt (jumlah non-HIT dan non-MISS pada webcache : ex. DENIED)

# FUNGSI 3a : menghapus 4 file hasil dari proses sebelumnya /bin/rm ${TEMP_FOLDER}/usage.txt

/bin/rm ${TEMP_FOLDER}/situs.txt /bin/rm ${TEMP_FOLDER}/hit.txt /bin/rm ${TEMP_FOLDER}/miss.txt /bin/rm ${TEMP_FOLDER}/other.txt # FUNGSI 3b : membuat 4 file yg baru

# membuat usage.txt untuk keperluan akunting penggunaan Internet

# dimana hanya akses yg tidak menggunakan webcache (TCP_MISS) yg dihitung penggunaannya

# krn jk HIT berarti akses tsb tidak akan membebani link Internet (hanya mengakses webcache)

/bin/cat /usr/local/squid/logs/access.log.0 | /usr/bin/grep 'MISS' | /usr/bin/awk '{print $3 "\t" $5}' > ${TEMP_FOLDER}/usage.txt

# membuat situs.txt untuk keperluan menganalisa situs apa saja yg dikunjungi oleh user

# dimana semua akses kecuali yg DENIED yg akan direkam

/bin/cat /usr/local/squid/logs/access.log.0 | /usr/bin/grep -v 'TCP_DENIED' | /usr/bin/awk '{print $1 "\t" $3 "\t" $7}' > ${TEMP_FOLDER}/situs.txt

# membuat hit.txt dan miss.txt untuk keperluan menganalisa performansi webcache

# yaitu apakah jumlah HIT > jumlah MISS

#/bin/cat /usr/local/squid/logs/access.log.0 | /usr/bin/grep -c 'MISS' > ${TEMP_FOLDER}/miss.txt

HIT=`/bin/cat /usr/local/squid/logs/access.log.0 | /usr/bin/grep -c 'HIT'`

MISS=`/bin/cat /usr/local/squid/logs/access.log.0 | /usr/bin/grep -c 'MISS'`

OTHER=`/bin/cat /usr/local/squid/logs/access.log.0 | /usr/bin/grep -v 'HIT' | /usr/bin/grep -v 'MISS' | /usr/bin/grep -c ''`

/usr/local/bin/mysql -u manager -pmanager -Dstatus --execute="insert into hitmiss set time=${TODAY},hit=${HIT},miss=${MISS},other=${OTHER}"

# FUNGSI 3c : memproses usage.txt untuk akunting dan membuat /root/block.sh untuk blocking user

/usr/local/bin/php /root/update_usage_n_block.php

# FUNGSI 3d : memproses situs.txt untuk analisa dan croscek via email ke user

/usr/local/bin/php /root/update_situs.php sleep 300

########## FUNGSI 4 : simpan access.log.0 sesuai timestamp-nya ########## # simpan access.log.0 ke folder /data/log

/bin/mv /usr/local/squid/logs/access.log.0 /data/log/squid-access/access.log.${TODAY}

/bin/rm /usr/local/squid/logs/cache.log.0

/usr/bin/gzip /data/log/squid-access/access.log.${TODAY}

# FUNGSI 5 : bloking akun VPN over quota (hasil kalkulasi di fungsi 3) # #/bin/chmod 700 /root/block.sh

#/root/block.sh

(5)

Sementara untuk reverse proxy (proxy untuk akses dari luar/internet ke

dalam/intranet) dapat menggunakan aplikasi squid yg sama hanya dengan file

konfigurasi yang berbeda. Squid yg dipekerjakan sbg reverse proxy sering disebut

dengan Squid-Accellerator. Disarankan untuk

tidak

menjalankan

squid-accellerator pada server yg sama dimana squid juga berjalan (berdasarkan

pengalaman, salah satu squid akan di-shutdown)

Referensi

Dokumen terkait

Dengan adanya perbandingan dari beberapa sistem operasi proxy server yaitu squid, safesquid, polipo, dan terdapat bukti yang otentik berupa data dari hasil penelitian, maka akan

Tujuan dari pengaturan proxy server dengan menggunakan service squid adalah untuk merancang proxy server sederhana dan mengetahui keuntungan apa saja yang dapat

Pengembangan cache proxy saat ini telah menjadi fokus utama dari penelitian caching web. Pendekatan berbasis cache proxy membuat latensi minimum dari server

Untuk menjawab permasalahan tersebut penelitian kali ini peneliti mengusulkan suatu perancangan dan implementasi squid proxy server pada Ubuntu Server 10.10 yang bertujuan untuk

Untuk menjawab permasalahan tersebut penelitian kali ini peneliti mengusulkan suatu perancangan dan implementasi squid proxy server pada Ubuntu Server 10.10 yang bertujuan untuk

Tujuan dari pengaturan proxy server dengan menggunakan service squid adalah untuk merancang proxy server sederhana dan mengetahui keuntungan apa saja yang dapat

Squid memiliki banyak jenis penggunaan, mulai dari mempercepat server web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web, dan

Salah satu hal yang harus dilakukan dalam melakukan caching HTTPS adalah kita harus menambahkan sertifikat squid kita ke browser di masing-masing klien agar proxy squid kita