Rabu, 26 Januari 2011

PRA KBM Admin Server-Proxy Squid


Proxy adalah aplikasi berbasis web yang bertujuan untuk bandwidth accelerator atau penghematan bandwidth, meningkatkan keamanan dan menambah kecepatan web service. Proxy server adalah sebuah komputer atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari luar. Untuk pengamanan, biasanya kebanyakan orang akan menggunakan proxy dengan aplikasi squid.


Proxy Server bertindak sebagai gateway terhadap dunia ini Internet untuk setiap komputer klien. Proxy server tidak terlihat oleh komputer klien: seorang pengguna yang berinteraksi dengan Internet melalui sebuah proxy server tidak akan mengetahui bahwa sebuah proxy server sedang menangani request yang dilakukannya. Web server yang menerima request dari proxy server akan menginterpretasikan request-request tersebut seolah-olah request itu datang secara langsung dari komputer klien, bukan dari proxy server.

Proxy server juga dapat digunakan untuk mengamankan jaringan pribadi yang dihubungkan ke sebuah jaringan publik (seperti halnya Internet). Proxy server memiliki lebih banyak fungsi daripada router yang memiliki fitur packet filtering karena memang proxy server beroperasi pada level yang lebih tinggi dan memiliki kontrol yang lebih menyeluruh terhadap akses jaringan. Proxy server yang berfungsi sebagai sebuah “agen keamanan” untuk sebuah jaringan pribadi, umumnya dikenal sebagai firewall.

Squid adalah aplikasi linux open source yang digunakan untuk proxy server. Squid memiliki banyak fungsi, mulai dari mempercepat server web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web, dan caching pencarian komputer di dalam jaringan untuk sekelompok komputer yang menggunakan sumber daya jaringan yang sama, pengontrolan jadwal koneksi, dan meningkatkan keamanan dengan tool acl (access control list).

Caching merupakan sebuah cara untuk menyimpan objek-objek Internet yang diminta (seperti halnya data halaman web) yang bisa diakses melalui HTTP, FTP dan Gopher di dalam sebuah sistem yang lebih dekat dengan situs yang memintanya.

Delay Pools

adalah opsi 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 labprog
Opsi di atas berarti kita memasukkan ACL labprog ke dalam pool 1.

Di umpamakan kita mempunyai bandwidth dari ISP sebesar 512kb, dan kita membuat rule seperti berikut ini:
- Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi, mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka koneksi perhost HANYA mengikuti aturan per-Network saja.

ACL (Access Control List) adalah daftar kondisi yang digunakan untuk mengetes trafik jaringan yang mencoba melewati interface router. Daftar ini memberitahu router paket-paket mana yang akan diterima atau ditolak. Penerimaan dan penolakan berdasarkan kondisi tertentu. Untuk mem-filter trafik jaringa, ACL menentukan jika paket itu dilewatkan atau diblok pada interface router. Router ACL membuat keputusan berdasarkan alamat asal, alamat tujuan, protokol, dan nomor port.

ACL harus didefinisikan berdasarkan protokol, arah atau port. Untuk mengontrol aliran trafik pada interface, ACL harus didefinisikan setiap protokol pada interface. ACL kontrol trafik pada satu arah dalam interface. Dua ACL terpisah harus dibuat untuk mengontrol trafik inbound dan
outbound. Setiap interface boleh memiliki banyak protokol dan arah yang sudah didefinisikan. Jika router mempunyai dua interface diberi IP, AppleTalk dan IPX, maka dibutuhkan 12 ACL. Minimal harus ada satu ACL setiap interface.

Fungsi dari ACL:
- Membatasi trafik jaringan dan meningkatkan unjuk kerja jaringan.
Misalnya, ACL memblok trafik video, sehingga dapat menurunkan beban jaringan dan meningkatkan

unjuk kerja jaringan.
- Mengatur aliran trafik. ACL mampu memblok update routing. Jika update tidak dibutuhkan karena

kondisi jaringan, maka bandwidth dapat dihemat.
- Mampu membrikan dasar keamanan untuk akses ke jaringan.

Misalnya, host A tidak diijinkan akses ke jaringan HRD dan host B diizinkan.
- Memutuskan jenis trafik mana yang akan dilewatkan atau diblok melalui interface router.

Misalnya, trafik email dilayani, trafik telnet diblok.
- Mengontrol daerah-daerah dimana klien dapat mengakses jaringan.
- Memilih host-hots yang diijinkan atau diblok akses ke segmen jaringan.

Misal, ACL mengijinkan atau memblok FTP atau HTTP.

Contoh :

Edit file /etc/squid/squid.conf
#vi /etc/squid/squid.confLalu tambahkan contoh konfigurasi ini:
# Sebelum kita melakukan pembatasan, kita perlu mendefinisikan ACL network # # yang kita perlukan terlebih dahulu. ACL yang didefinisikan pada host bridge
# seperti di bawah ini:acl lokal src 192.168.1.0/24# Kemudian kita membatasi maksimum download dengan tag di bawah ini:
# Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah
# 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk
# download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi,
# mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka
# koneksi perhost HANYA mengikuti aturan per-Network saja.

acl filegede url_regex -i \.exe
acl filegede url_regex -i \.mp3
acl filegede url_regex -i \.vqf
acl filegede url_regex -i \.gz
acl filegede url_regex -i \.rpm
acl filegede url_regex -i \.zip
acl filegede url_regex -i \.rar
acl filegede url_regex -i \.avi
acl filegede url_regex -i \.mpeg
acl filegede url_regex -i \.mpe
acl filegede url_regex -i \.mpg
acl filegede url_regex -i \.qt
acl filegede url_regex -i \.ram
acl filegede url_regex -i \.rm
acl filegede url_regex -i \.iso
acl filegede url_regex -i \.raw
acl filegede url_regex -i \.wav

# Kita buat dulu ACL untuk mendefinisikan file-file di atas dengan menggunakan # regularexpression. Kemudian kita mendefinisikan 2 delay pool untuk
# menampung bandwidth.
# Satu pool masuk dalam kategori class 2 untuk mendefinisikan aturan overall
# 256 Kbps dan per-network 64 Kbps. Satu pool lainnya masuk kategori class 3
# untuk mendefinisikan aturan tambahan jika user mendownload file-file yang
#didefinisikan dalam ACL url_regex dengan bandwidth maksimal 2 Kbps.

delay_pools 2
delay_class 1 3
delay_parameters 1 32000/32000 8000/8000 250/250
delay_access 1 allow lokal filegede
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 32000/32000 8000/8000
delay_access 2 allow lokal
delay_access 2 deny all

Jika sudah selesai, simpan hasil konfigurasi dan restart squid


ataupun konfigurasi seperti ini:

# apt-get install squid
Setelah instalasi selesai dan tidak terdapat kesalahan, langkah berikutnya adalah mengatur konfigurasi squid, bukalah file /etc/squid.conf dengan editor teks favorit anda (vi, pico, dll), file ini merupakan file konfigurasi squid.

Carilah baris yang berisi perintah berikut :

#http_port 3128
Perintah ini akan membuat proxy HTTP menggunakan port 3128 yang merupakan port default untuk squid. Aktifkan dengan menghilangkan tanda #. Anda dapat membuat nilai port HTTP proxy ini sesuai dengan selera anda, tetapi jangan arahkan ke port 80, terutama jika anda juga menjalankan Web Server, karena Web Server juga memakai port tersebut.

Langkah berikutnya, carilah baris perintah berikut :

#cache_mem 8 MB
Perintah tersebut digunakan untuk membatasi banyaknya memori komputer yang akan digunakan squid untuk menyimpan sementara obyek-obyek yang di cache. Batasan ini tidak ketat, suatu waktu jika squid membutuhkan memori lebih, dia dapat menggandakan memori yang dipakainya. Aktifkan baris ini dan ubahlah ukuran cache ini menjadi sebanyak yang anda inginkan, yang harus anda pertimbangkan adalah banyaknya memori yang dimiliki oleh komputer anda.

Berikutnya, carilah baris yang berisi perintah berikut :

# LOGFILE PATHNAMES & CACHE DIRECTORIES
# ————————————-
Setting berikut ini digunakan untuk mendefinisikan alokasi penyimpanan web cache kita. Setting yang pertama adalah :

#cache_dir /var/squid/cache 100 16 256
Nilai yang ada diatas adalah nilai default squid, jika anda ingin merubahnya maka aktifkan perintah ini.

Parameter pertama /var/squid/cache adalah nama direktori tempat kita akan menyimpan file-file cache. Anda dapat mengubah parameter ini ke direktori manapun, tetapi yang harus diperhatikan squid tidak akan menciptakan direktori baru, jadi bila parameter ini akan diubah, pastikan direktori tujuannya sudah ada dan squid mempunyai hak akses untukmenulis pada direktori tersebut.

Parameter selanjutnya, yang bernilai 100 adalah banyaknya ruang pada hard disk (dengan satuan Mega Byte) yang akan digunakan squid untuk menyimpan file-file cache nya. Ubahlah sesuai dengan kebutuhan anda.

Parameter selanjutnya, disebut dengan Level-1, adalah banyaknya direktori yang akan dibuat oleh squid dalam direktori cache nya. Sebaiknya penulis menyarankan untuk tidak mengubah parameter ini.

Parameter terakhir, yang disebut dengan Level-2, adalah banyaknya direktori level kedua, yaitu direktori yang dibuat di dalam tiap direktori level pertama diatas.

Langkah berikutnya, carilah perintah berikut :

# ACCESS CONTROLS
# ——————–
Sebetulnya ini adalah topik yang besar, dan sudah saya rencanakan untuk membahasnya secara terpisah. Tapi karena untuk tahap awal, kita harus mengijinkan akses dari LAN agar bisa menggunakan proxy, kita bahas sekilas saja.

Yang perlu Anda ketahui, konfigurasi squid dibaca dari atas ke bawah. Artinya, yang pertama kali cocok, itulah yang menang. Selalu ingat konsep dasar ini, karena akan sangat penting untuk memahami mengapa konfigurasi squid Anda tidak bekerja dengan seharusnya.

Ok, sekarang kita harus membuat acl baru untuk mengijinkan semua IP di LAN Anda bisa menggunakan squid proxy yang baru diinstal.

Misal, Anda memiliki dua LAN, 192.168.1.0/24 dan 192.168.2.0/24. Maka konfigurasinya,

acl jaringan_saya src 192.168.1.0/24 192.168.2.0/24
http_access allow jaringan_saya
Jika Anda menginginkan hanya IP tertentu saja, bukan satu network, Anda bisa juga menuliskannya seperti di bawah ini.

acl jaringan_saya src 192.168.1.0/24 192.168.2.0/24
http_access allow jaringan_saya
acl kantor_cabang src 192.168.5.5
http_access allow kantor_cabang
Sekarang IP 192.168.5.5 yang ada di kantor cabang, bisa juga menggunakan proxy yang baru Anda buat.
Baris perintah berikut ini digunakan untuk mendefinisikan daftar hak akses dalam jaringan anda, squid menyebutnya dengan Access Control Lists (ACL). Anda dapat mendefinisikan beberapa ACL disini. Dalam bagian access controls ini, carilah baris perintah berikut :

#Default configuration:
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR
# CLIENTS
#
http_access deny all
Yang perlu anda lakukan disini adalah mendefinisikan ACL kita sendiri, kita non aktifkan perintah terakhir dan tambahkan satu baris perintah berikut :

http_access allow all
Sehingga akan menjadi seperti ini :

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR
# CLIENTS
#
# http_access deny all
http_access allow all
sampai disini squid anda sudah selesai di setting, langkah berikutnya adalah untuk memastikan bahwa squid berjalan setiap kali kita jalankan Linux.

Jika anda menggunakan Red Hat Linux, anda harus login sebagai root, kemudian jalankan perintah setup. Dari situ masuklah ke menu System Service dan aktifkan pilihan squid.
Jika anda menggunakan SuSe, jalankan YaST dan masuklah menu System Administration kemudian pilih Change Config File dan carilah kata-kata START SQUID ubahlah nilainya dari NO ke YES.

Dengan demikian maka tiap kali anda masuk ke Linux, squid secara otomatis akan dijalankan.
Sebelum squid dapat berjalan, anda harus menciptakan direktori swap. Lakukanlah dengan menjalankan perintah :

#squid -z
Perintah ini hanya perlu dijalankan satu kali saja ketika squid pertama kali akan dijalankan pada komputer anda.

Untuk menjalankan squid tanpa merestart komputer, gunakan perintah :

# /etc/init.d/squid start
Untuk meminimalkan downtime squid, gunakan perintah berikut agar squid membaca ulang file konfigurasi dan menerapkannya.

# squid -k reconfigure

0 komentar:

About Me

Foto Saya
Nur Annisa
Cimahi, Jawa Barat, Indonesia
Computer & Networking A '06 SMKN 1 Cimahi '08, D1 ITB STEI-TKJ '11               y!m : nuy.nurannisa                                    twitter : @nuynaynuy                                                            Let's join and share :)
Lihat profil lengkapku

Blog Archive

Popular Posts

Visit My Facebook

Follower

Diberdayakan oleh Blogger.