RSS

Konfigurasi Proxy Server

Proxy server adalah server yang menjembatani klien dengan server gateway sebelum berkomunikasi dengan internet. Melalui proxy server, maka situs-situs yang sering dikunjungi akan terasa semakin cepat diakses user, karena telah tersimpan dalam cache proxy. Selain itu proxy server juga berfungsi untuk melakukan otentikasi user, memblokir situs-situs tertentu, memblokir banner dan sebagainya.

Langkah instalasi
  • Untuk software proxy server menggunakan squid
$ sudo apt-get install squid

Langkah Konfigurasi
  • Setelah proses instalasi selesai maka akan terdapat direktori konfigurasi proxy server yaitu di dalam /etc/squid, dan kita dapat melakukan konfigurasi di dalam file squid.conf
  • Disini asumsi menggunakan editor pico
$ sudo pico /etc/squid/squid.conf
Maka akan terdapat konfigurasi default
# WELCOME TO SQUID 2.7.STABLE7
# ----------------------------
#
# This is the default Squid configuration file. You may wish
# to look at the Squid home page (http://www.squid-cache.org/)
# for the FAQ and other documentation.
#
# The default Squid config file shows what the defaults for
# various options happen to be. If you don't need to change the
# default, you shouldn't uncomment the line. Doing so may cause
# run-time problems. In some cases "none" refers to no default
# setting at all, while in other cases it refers to a valid
# option - the comments for that keyword indicate if this is the
# case.

# Configuration options can be included using the "include" directive.
# Include takes a list of files to include. Quoting and wildcards is
# supported.
#
# For example,
#
# include /path/to/included/file/squid.acl.config
#
# Includes can be nested up to a hard-coded depth of 16 levels.
# This arbitrary restriction is to prevent recursive include references
# from causing Squid entering an infinite loop whilst trying to load
# configuration files.
…..........................................
  • Dari konfigurasi default tersebut dapat diganti dengan konfigurasi seperti berikut
# OPTION JARINGAN
# —————————————————————————–
http_port 3128
icp_port 3130

# OPTION UKURAN CACHE
# ——————————————————————-
cache_mem 256 MB
cache_swap_low 94
cache_swap_high 97
maximum_object_size 20480 KB
minimum_object_size 2 KB
maximum_object_size_in_memory 2048 KB

# DIREKTORI LOG DAN CACHE
# ——————————————————————
cache_dir ufs /var/spool/squid 5000 128 256
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

# TUNING CACHE PROXY
# ——————————————————————
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

# MEMBLOK SITUS
# ————————————-
acl key_blokir url_regex -i "/etc/squid/key_block.txt"
acl domain_blokir dstdomain "/etc/squid/domain_block.txt"
acl ip_blokir dst "/etc/squid/ip_block.txt"

# AKSES KONTROL
# ——————————————————————
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

# LIST FILE UNTUK LIMIT DOWNLOAD
# ————————————
acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$ \.mkv$

#DAFTAR IP ADDRESS
# ————————————
acl client src 10.110.0.1-10.110.0.254

# LIST WAKTU AKSES
# ————————————
acl pagi time MTWHF 00:01-10:00
acl siang time MTWHF 11:00-14:00
acl sore time MTWHF 15:00-18:00
acl malam time MTWHF 19:00-24:00

# POOLS YANG DITERAPKAN
# ————————————
delay_pools 3

# bandwidth unlimited
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 deny all

#pools untuk type file download
delay_class 2 3
delay_parameters 2 3200/32000 1500/1500 250/250
delay_access 2 allow client siang
delay_access 2 deny all

#pools untuk type file download
delay_class 3 3
delay_parameters 3 3200/32000 1500/1500 250/250
delay_access 3 allow client download siang
delay_access 3 deny all

# RULE YANG DITERAPKAN
# ————————————
http_access deny key_blokir
http_access deny domain_blokir
http_access deny ip_blokir
http_access allow client
http_access allow localhost
http_access deny all

# PARAMETER ADMINISTRATOR
# —————————————————————
cache_mgr andhikacipta@gmail.com
visible_hostname Andhika

# PESAN ERROR
# ——————————————————————
error_directory /usr/share/squid/errors/en

Keterangan :

http_port
Directive ini berguna untuk menunjukkan ke port atau IP berapa proxy server harus mendengarkan/melaksanakan permintaan client. Isi http_port dengan bilangan integer sesuai dengan keinginan (misal 8080) asalkan tidak bentrok dengan "well known ports" dari server atau gunakan default yang ada (3128).

cache_mem (jumlah_memori)
Sintaks ini akan menentukan batas atas jumlah memori yang digunakan untuk menyimpan intransit object yaitu objeck yang dalam masa transisi antara waktu cache mendownload sampai object disampaikan ke client dan hot object yaitu object yang sering diakses. Defaultnya adalah 8 MB yaitu default yang cocok untuk digunakan pada banyak sistem. 

cache_swap_low/high jumlah (dalam persen)
Squid akan menghapus object yang ada didalam hardisknya jika media tersebut mulai penuh. ukuran penuh ini akan diset pada cache_swap_low dan cache_swap_high. Bila batas swap_low telah tercapai maka squid mulai menghapus dan jika batas swap_high tercapai maka squid akan semakin sering menghapus.

maximum_object_size (dalam byte)
Dengan option ini, ukuran file maksimum yang disimpan oleh squid cache bisa dibatasi. Dengan kata lain objek yang lebih besar dari bilangan ini tidak akan disaved ke dalam disk yang sudah disisihkan untuk cache.

minimum_object_size (dalam byte)
Dengan option ini maka objek yang lebih kecil dari bilangan yang disebutkan tidak akan disaved ke dalam disk yang sudah disisihkan buat cache. Ukuran file minimum yang dicache bertujuan mengefektifkan filesystem di mana biasanya ext2 diformat dengan 4 KB inode

maximum_object_size_in_memory 8 KB
Objek yang lebih besar dari ukuran ini tidak akan dipertahankan di memori. Ini harus di-set cukup tinggi agar dapat menyimpan objek yang sering diakses ke dalam memori untuk meningkatkan kecepatan akses ke cache_mem.

cache_dir ufs /var/spool/squid 100 16 256
Direktive di atas merupakan direktori Cache Squid yang mendefinisikan letak direktori squid beserta besarannya. Angka 100 menunjukkan ukuran direktori dalam MB. Angka 16 menunjukkan jumlah sub direktori tingkat 1 Angka 256 menunjukkan jumlah subdirektori tingkat 2 dari subdirektori tingkat 1 Jumlah diatas makin besar makin baik.

Loging
Bagian ini sangat diperlukan untuk menganalisa dan memonitor kejadian pada squid. Optinnya antara lain :
cache_access_log /var/log/squid/access.log
Berfungsi untuk melihat URL akses ke proxy.

cache_log /var/log/squid/cache.log
Untuk melihat kejadian pada squid tergantung pada nilai debug_option

cache_store_log none
Option ini akan melog setiap aktivitas dari storage manager. Log ini akan memperlihatkan objek-objek mana saja yang dikeluarkan dari cache, dan objek-objek mana saja yang disimpan dan untuk berapa lama objek tersebut disimpan. Karena biasanya tidak ada gunanya untuk menganalisis data ini, maka disarankan untuk didisable.

Filtering menggunkan ACL
Buat file situs maupun kata yang tidak diperbolehkan untuk diakses client. Misalnya saja kita beri nama file itu "porno" langkahnya sebagai berikut :
$ sudo pico /etc/squid/key_block.txt
Kemudian isi file tersebut dengan situs maupun kata yang tidak diperbolehkan untuk diakses.
  • ACL atau access control list berfungsi untuk membatasi hak akses internet client. Dengan ACL proxy server dapat menentukan mana kata atau URL yang boleh diakses dan yang tidak boleh diakses oleh client.
  • Ada beberapa cara untuk melakukan filtering terhadap kata atau situs yang tidak diperbolehkan diakses, yang akan dibahas disini adalah filetering melalui ACL dengan membuat file kata dan situs yang boleh dan tidak boleh diakses pada direktori /etc/squid/ keterangan lebih lanjut diuraikan di bawah :

delay_pools
Opsi ini untuk menspesifikasi berapa jumlah pool yang digunakan untuk membatasi jumlah bandwidth dari ACL. Opsi ini akan dirangkaikan bersama opsi delay_class dan delay_parameters yang akan dibahas di bawah ini.

delay_class
Opsi ini menspesifikasikan kelompok dari masing-masing pool yang telah didefinisikan pada opsi delay-pools. Ada tiga class yang didukung Squid, antara lain:
  • class 1: Semua akses dibatasi dengan single bucket, artinya hanya bisa mendefinisikan overall bandwidth untuk suatu ACL saja, tidak bisa mendefinisikan bandwidth dengan lebih mendetail
  • class 2: Semua akses dibatasi dengan single agregate dengan dua parameter bandwidth. Parameter pertama mendefinisikan berapa bandwidth maksimal yang didapatkan ACL, parameter kedua mendefinisikan berapa bandwidth overall untuk ACL yang spesifik yang ada pada network tersebut.
  • class 3: Kelompok yang definisi bandwidth-nya paling mendetail. Parameter pertama mendefinisikan berapa bandwidth maksimal yang didapatkan ACL, parameter kedua mendefinisikan berapa bandwidth normal yang didapatkan ACL secara umum, dan parameter yang ketiga adalah mendefinisikan bandwidth yang didapatkan ACL jika mengakses ACL-ACL tertentu yang spesifik, misalnya file mp3.

delay_parameters
Opsi ini menspesifikasikan rumus bandwidth yang akan didapatkan oleh ACL yang akan memasuki delay_pool. Misalnya ada entry berikut ini pada delay_parameters:
delay_parameters 1 -1/-1 2100/4000
  • Angka 1 berarti rumus ini berlaku untuk pool 1.
  • Angka -1/-1 berarti bandwidth maksimal yang diberikan Squid adalah tidak terbatas untuk pool ini.
  • Angka 2100/4000 berarti bandwidth yang didapatkan oleh ACL setelah masuk ke pool ini.
Angka ini berada dalam kelipatan 8 b, sehingga untuk mendapatkan nilai bandwidth yang sebenarnya harus dikalikan delapan.
  • Angka 2100 adalah bandwidth yang didapatkan ACL pada masa-masa normal.
  • Jika dikalikan 8, maka bandwidth normal yang akan didapatkan ACL sekitar 18 Kbps.
  • Angka 4000 adalah bandwidth maksimal yang didapatkan ACL pada masa-masa jalur sedang kosong.
    Jika dikalikan 8, maka bandwidth yang didapatkan sekitar 32 Kbps.

delay_access
Opsi ini mendefinisikan siapa-siapa ACL yang akan dimasukkan ke pool tertentu untuk mendapatkan “perlambatan” bandwidth. Bentuk umumnya adalah seperti ini:
delay_access 1 allow umum
  • Opsi di atas berarti memasukkan ACL labprog ke dalam pool 1.

0 comments:

Posting Komentar