Proxy server adalah sebuah komputer server atau program komputer yang bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari internet atau intranet.
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.
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.
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.
Autentikasi proxy
Autentikasi proxy adalah sebuah proxy yang membutuhkan hak akses apabila klien inginmengaksesnya. Hak akses ini berupa username dan password yang telah terdaftar pada serverproxy.
Sistem autentikasi di squid :
Basic2.
Digest3.
NTLM4.
Negotiate (mulai dari versi 2.6)
· Basic Autentikasi
Ini adalah skema autentikasi yang didukung oleh semua peramban (browser) utama.Dan lebih dari itu, bisa berfungsi dengan baik di semua platform OS. Jadi kalau inginmenggunakan skema autentikasi yang yakin berfungsi dengan baik di semua browser, pakailahskema autentikasi basic. Sayangnya skema autentikasi basic ini memiliki satu kelemahan utama,yaitu proses pengiriman data user dan password dikirim dalam format plain text. Jadi sangatrentan terhadap proses snip atau penyadapan saat proses autentikasi berlangsung.Skema ini tidak disarankan ketika layanan yang diberikan akan diakses melalui jaringaninternet. Tapi masih bisa ditolerir jika layanan itu dibuat untuk kalangan terbatas, misalnya LANkantor. Dan karena squid pada umumnya digunakan di jaringan terbatas, skema autentikasi inimasih bisa digunakan. Helper atau program bantu untuk autentikasi ke backend Squid menyediakan beberapa program bantu untuk skema autentikasi basic. Anda bisa memilih manayang cocok dengan keperluan Anda.
1. LDAP: Autentikasi ke LDAP.2.
2. NCSA: Menggunakan format penulisan username dan password format NCSA.3.
3. MSNT: Autentikasi ke domain Windows NT.4.
4. PAM: Menggunakan skema autentikasi PAM yang umum digunakan di sistem operasiUnix/Linux.5.
5. SMB: Menggunakan server SMB seperti Windows NT atau Samba.6.
6. getpwam: Menggunakan cara kuno, berkas password di Unix/Linux.7.
7. SASL: Mengggunakan pustaka SASL.8.
8. mswin_sspi: Windows native authenticator.9.
9. YP: Menggunakan database NIS.
· Digest Authentication
Skema autentikasi digest diperkenalkan untuk mengatasi kelemahan yang ada di skemaautentikasi basic. Skema ini lebih aman, karena pada saat autentikasi, data username danpassword tidak dikirim dalam format plain text. Secara umum, kelebihan skema autentikasidigest dibandingkan skema autentikasi basic, yaitu lebih aman. Tapi sayangnya tidak didukungoleh semua browser. Internet Explorer 5 & 6 adalah salah satu browser yang tidak mendukungskema autentikasi digest.
· NTLM Authentication
ini adalah skema autentikasi yang diperkenalkan oleh Microsoft. Dengan menggunakanskema autentikasi NTLM, semua user yang sudah login ke domain, ketika mengakses squid tidakakan diminta lagi username dan password. Ini yang kita kenal sebagai proses Single Sign On. Jikasudah sukses autentikasi di satu layanan, ketika ingin menggunakan layanan lain tidak perlumemasukkan login dan password lagi, proses autentikasi berlangsung secara transparan.Sayangnya, seperti yang mungkin Anda sudah bisa tebak, ini hanya berfungsi dengan baik disistem operasi Windows. Dan tidak semua browser mendukung skema autentikasi NTLM.Internet Explorer dan Firefox adalah salah satu browser yang mendukung skema autentikasiNTLM. Chrome, Safari dan Opera adalah contoh browser yang belum mendukung skemaautentikasi NTLM.Biasanya, untuk browser atau OS yang tidak mendukung skema autentikasi NTLM, adapilihan fallback ke skema autentikasi basic. Helper atau program bantu untuk autentikasi kebackend Paket samba menyertakan winbind ntlm helper untuk membantu squid bisamemberikan layanan skema autentikasi NTLM.Sedikit catatan di Debian atau Ubuntu, yang Anda gunakan adalah
/usr/bin/ntlm_auth dan BUKAN ke /usr/lib/squid/ntlm_auth
.
· Negotiate Authentication
Protokol negotiate diperkenalkan lagi-lagi oleh Microsoft, sering dikenal juga sebagaiSPNEGO. Skema autentikasi ini memperbarui skema Single Sign On yang sebelumnyamenggunakan autentikasi NTLM. Skema ini bisa dianggap sebagai wrapper (atau alat bantu) untuk menggunakan salah satu dari autentikasi ke Kerberos atau NTLM. Kelebihan skema ini,jauh lebih aman bila dibandingkan dengan skema autentikasi NTLM.Kelemahannya, lagi-lagi hanya berfungsi dengan baik di lingkungan OS Windows. Selainitu untuk saat ini mengkonfigurasi skema autentikasi negotiate agak ribet, karena helper barutersedia untuk sistem operasi windows.
· NCSA Authentication
Saat ini perkembangan internet sudah sangat pesat, sehingga sangat mudah untukmelakukan pencurian terhadap password milik seseorang yang berada pada jaringan yang samadengan menggunakan sniffer tool biasa. Karena itulah sangat dibutuhkan sebuah sistemautentikasi untuk menjaga keamanan dan kerahasiaan data yang dikirimkan melalui sebuahproxy server.Terdapat berbagai jenis autentikasi yang dapat digunakan pada sistem squid server,tetapi yang paling sederhana dari kesemua sistem autentikasi tersebut adalah NCSAauthentication. NCSA authentication merupakan autentikasi berbasis httpd (web server)password yang memungkinkan seorang client melakukan koneksi setelah melakukanautentikasi berupa username dan password. Username dan password ini telah tersimpan diserver dengan format yang telah ditentukan sebelumnya.
TRANSPARENT PROXY
1. Matikan preferences untuk menggunakan Proxy pada web browser di
PC Client
2. Akses ke web http://www.eepis-its.edu, seharusnya akses akan gagal
dengan web
Browser gagal untuk meresolv nama dari domain tersebut.
Bagian DNS
3. Pada PC router lakukan installasi aplikasi DNS "bind9"
# apt-get install bind9
4. Rubah konfigurasi pada file /etc/bind/named.conf.options
# vim /etc/bind/named.conf.options
Rubah bagian : (hilangkan tanda // di depannya)
// query-source address * port 53;
Menjadi :
query-source address * port 53;
Rubah bagian :
// forwarders {
// 0.0.0.0;
// };
Menjadi : (hilangkan tanda // dan ganti IP 0.0.0.0 menjadi IP DNS – ISP
202.154.187.2)
forwarders {
202.154.187.2;
};
5. Restart aplikasi DNS
# /etc/init.d/bind9 restart
Bagian Proxy
6. Rubah konfigurasi file /etc/squid/squid.conf pada mesin PC Router
# vim /etc/squid/squid.conf
Rubah bagian :
http_port 3128
Menjadi : (menambahkan kata "transparent")
http_port 3128 transparent
Simpan dengan "ESC - :wq"
7. Restart aplikasi squid dengan cara :
# /etc/init.d/squid restart
Bagian Firewall
8. Tambahkan aturan firewall pada mesin PC Router untuk membelokkan
request ke DNS
(udp 53) dan ke WEB (tcp 80)
# iptables -nL -t nat
Menambahkan redirect untuk WEB ke arah port proxy
# iptables -t nat -I PREROUTING -s 192.168.1.0/24 -p tcp –dport 80 -j
REDIRECT –t oports
3128
Menambahkan redirect untuk DNS ke arah bind9
# iptables -t nat -I PREROUTING -s 192.168.1.0/24 -p udp –dport 53 -j
REDIRECT –
to-ports 53
Lihat isi firewall dengan iptables -t nat -nvL
Bagian akses
9. Pada Client jalankan "nslookup www.eepis-its.edu" dengan
menggunakan terminal
10. Akses ke website http://www.eepis-its.edu atau http://noc.eepisits.
edu
11. Pada mesin PC router, catat hasil akses dengan cara :
# tail -f /var/log/squid/access.log
0 komentar:
Posting Komentar