Sekilas
Proxy Server dan Webserver
  Dengan Squid dan Apache

                       Galih Satriaji




                  ...
Proxy Server dan Web Server




Kerugian dan Keuntungan Proxy Server
Keuntungan menggunakan proxy server:
✗   Dapat menghe...
–   Squid Web-cache: merupakan proxy server open source dan didesain untuk berjalan
    di sistem UNIX dan keluarganya.
– ...
reliable namun memiliki time out yang sangat pendek sehingga cocok untuk web-cache.
Protokol ini tidak cocok untuk deliver...
yang sesuai dengan aturan, dan sebagainya.

Delay Pool
Delay Pool adalah suatu cara untuk menurunkan kecepatan akses untuk...
Sebenarnya tidak hanya NTLM saja yang didukung squid untuk melakukan autentikasi
user. Program kita juga bisa digunakan se...
harus dikonfigurasi agar menggunakan squid sebagai proxy. Transparent caching
adalah metode agar browser tidak perlu dikon...
tidak pernah dilayani.



Konfigurasi Dasar Squid
http_port
Port HTTP yang didengarkan oleh Squid. Defaultnya adalah 3128....
Waktu 1 harus lebih kecil dari waktu 2 dan memakai sistem waktu 24 jam

acl url_regex [-i] ^http://..
URL yang difilter de...
cache_mem
Memory fisik ideal yang digunakan Squid untuk menangani objek-objek In-Transit, Hot
Object, dan Negative Cache O...
–   class 1: Semua akses dibatasi dengan single bucket, artinya hanya bisa
    mendefinisikan overall bandwidth untuk suat...
Opsi di atas berarti kita memasukkan ACL labprog ke dalam pool 1.

opsi yang sangat khusus! lihat komentarnya di file /etc...
Konfigurasi Dasar Apache
ServerRoot
Menunjukkan letak directory Apache berada. Defaultnya berada di directory /
etc/apache...
<IfModule mod_userdir.c>
Tag ini mendefinisikan dimana directory public dari user jika browser meminta URL
yang mengarah k...
host tidak akan berjalan dengan sempurna

<VirtualHost ip.address.of.host.some_domain.com>
<VirtualHost ip.address.of.host...
Problem 1: Setting Proxy Server
Perusahaan PT. Tata Surya memutuskan berlangganan internet ke
PT. AJK.Net dengan bandwith ...
adalah 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika
     digunakan untuk download file bertipe exe, mp3, vqf, tar...
acl lokal src 10.17.42.0/24
acl uranus src 10.17.42.168/255.255.255.248
acl icpajk src 10.126.13.220/32

Kemudian kita mem...
mendefinisikan aturan tambahan jika user mendownload file-file yang didefinisikan
dalam ACL url_regex dengan bandwidth mak...
acl uranus src 10.17.42.168/255.255.255.248
http_access deny uranus

Kita tinggal mendefinisikan network 10.17.42.168/29 y...
- website marketing : marketing.klpXX.com
          - website accounting : accounting.klpXX.com
          - website riset ...
accounting        IN       CNAME    saturnus
riset             IN       CNAME    saturnus


neptunus          IN       A  ...
Tag di atas wajib kita beri agar virtual host apache dapat berfungsi dengan baik. Jika
tidak dispesifikasi, maka web yang ...
Problem 3: Setting Reverse Proxy untuk Webserver Saturnus di host Matahari
Untuk memperingan kerja webserver saturunus ser...
pada sebuah jaringan dengan menggunakan Squid dan Apache serta bagaimana
membuat Squid dan Apache bisa saling bekerja sama...
mengubungimu? Tak tahukah kalau aku benar-benar merindukanmu??
Upcoming SlideShare
Loading in …5
×

Squid apache

2,809 views

Published on

jardiknas

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,809
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
181
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Squid apache

  1. 1. Sekilas Proxy Server dan Webserver Dengan Squid dan Apache Galih Satriaji supported by: Net Centric Computing Laboratory Informatics - ITS
  2. 2. Proxy Server dan Web Server Kerugian dan Keuntungan Proxy Server Keuntungan menggunakan proxy server: ✗ Dapat menghemat biaya bandwidth. ✗ Mempercepat koneksi karena file-file web yang direquest (selanjutnya disebut object) disimpan di dalam cache sehingga tidak perlu keluar menuju internet. ✗ Dapat mengatur kecepatan bandwidth untuk subnet yang berbeda-beda (mirip dengan HTB atau zaper). ✗ Dapat melakukan pembatasan untuk file-file tertentu. ✗ Dapat melakukan pembatasan akses kepada situs-situs tertentu (misalnya situs porno). ✗ Dapat melakukan pembatasan download untuk file-file tertentu (misalnya file-file mp3, wav, dsb). ✗ Dapat melakukan pembatasan waktu-waktu yang diperbolehkan untuk download. ✗ Dapat melakukan pembatasan siapa saja yang boleh mengakses internet dengan menggunakan autentikasi. Autentikasi yang biasa digunakan bisa basic, digest, ataupun ntlm. ✗ Dapat melakukan pembatasan-pembatasan lainnya. Kerugian menggunakan proxy server: – Pintu keluar menuju gerbang internet hanya lewat proxy, sehingga ketika terjadi overload, akses internet menjadi lambat – User akan melihat file yang kadaluarsa jika cache expire time-nya terlalu lama, sehingga meskipun di website file tersebut sudah berubah, user masih melihat file yang tersimpan di cache memory – Karena koneksi internet harus melalui gerbang proxy terlebih dahulu, maka kecepatan akses bisa jadi lebih lambat daripada kita melakukan koneksi langsung. Dalam hal ini keduanya akan mengakses file internet secara langsung Beberapa proxy yang sering digunakan:
  3. 3. – Squid Web-cache: merupakan proxy server open source dan didesain untuk berjalan di sistem UNIX dan keluarganya. – WinProxy: proxy server berbasis windows yang sifatnya free. – WinGate Proxy Server: proxy server berbasis windows yang bersifat komersial. – Microsoft Proxy: proxy server buatan Microsoft Corporation. Tentu saja sangat komersial :p – dan lain-lain. Squid Proxy Server Squid web-cache proxy server adalah software proxy server yang bersifat open source yang didesain untuk berjalan di sistem UNIX dan keluarganya (tentu saja termasuk Linux). Squid tidak hanya dapat meng-cache objek-objek web saja, namun juga dapar meng-cache DNS dan network lookup lainnya. Meskipun pada awalnya didesain untuk sistem UNIX, namun Squid dapat pula diport ke Windows NT, namanya menjadi SquidNT. Cara Kerja Squid Squid pertama-tama akan memeriksa request yang datang. Jika squid diset dengan autentikasi tertentu, squid akan memeriksa autentikasi user terlebih dahulu. Autentikasi ini termasuk subnet area, user account, jenis file yang direquest, alamat situs tujuan, dan properti-properti yang telah diset pada file konfigurasi squid. Jika lolos dan telah sesuai dengan konfigurasi, request tersebut kembali diperiksa apakah objek yang diminta telah berada di cache. Jika sudah ada maka proxy server tidak perlu melanjutkan request ke internet tetapi langsung mereply request dengan objek yang diminta. ICP (Internet Cache Protocol) ICP merupakan kependekan dari Internet Cache Protocol, yaitu merupakan protokol yang digunakan untuk mengkoordinasikan antara dua web cache atau lebih agar dapat bekerjasama dan berkomunikasi. Tujuan web-cache bekerja sama ini adalah supaya dapat mencari letak yang tepat untuk menerima objek yang direquest. Protokol ini tidak
  4. 4. reliable namun memiliki time out yang sangat pendek sehingga cocok untuk web-cache. Protokol ini tidak cocok untuk delivery – UDP adalah protokol yang lebih umum digunakan untuk delivery protocol. Access Control List Access Control List (ACL) adalah daftar rule yang menyatakan pembagian previleges, untuk mencegah orang yang tidak memiliki hak akses menggunakan infrastruktur cache. ACL adalah konfigurasi yang paling penting dalam sebuah web-cache. Dalam Squid, ACL digunakan untuk mendefinisikan rule yang diterapkan dalam web-cache tersebut. Squid mendukung tipe-tipe ACL seperti di bawah ini: – Network, subnet, baik tujuan maunpun asal – Waktu, dalam hal ini adalah hari dan jam (bisa merupakan selang waktu) – Alamat website yang terangkum dalam regular expression (regex) – Port yang dituju, bisa merupakan daftar port atau selang port sekian hingga sekian – Protokol, misalnya HTTP, FTP, SNMP, dsb – Method form HTML, yaitu POST dan GET – Daftar browser yang digunakan client yang terangkum dalam regular expression (regex) – User Name – Nomor kode negara, baik yang dituju maupun negara asal – Autentikasi user name – SNMP agent – Maksimal koneksi untuk setiap IP address – Maksimal jumlah IP address yang diperbolehkan untuk user name yang sama – MIME yang direquest yang terangkum dalam regular expression – Header dari request yang terangkum dalam regular expression Squid akan memeriksa setiap request yang datang dengan ACL yang ada pada konfigurasi dan mencocokannya dengan aturan yang ada. Pencocokan ini bisa berakibat diizinkan atau ditolaknya suatu koneksi dari user, pemberian bandwidth
  5. 5. yang sesuai dengan aturan, dan sebagainya. Delay Pool Delay Pool adalah suatu cara untuk menurunkan kecepatan akses untuk suatu alamat website dari ACL tertentu. Squid tidak hanya mendukung delay pool hanya untuk subnet saja, namun untuk semua ACL yang telah dibahas di atas. Dalam squid, Delay Pool dispesifikasi dalam beberapa konfigurasi, yaitu: Delay Pool Menspesifikasi berapa jumlah pool atau kelompok bandwidth yang akan digunakan dalam squid Delay Class Menspesifikasi masing-masing kelompok pool untuk masuk dalam class apa. Dalam squid ada beberapa class yang memiliki fungsi yang berbeda-beda, yaitu class 1, class 2, dan class 3. Class-class ini dispesifikasi berdasarkan IP address dari ACL. Delay Parameter Delay parameter menspesifikasi berapa jumlah transfer rate atau lebih sering disebut bandwidth untuk suatu pool. Bandwidth dispesifikasi dalam transfer rate rata-rata dan transfer rate maksimum yang dapat dicapai suatu pool. Delay Access Delay Access adalah parameter untuk memasukkan suatu ACL ke pool tertentu. Di sini juga disebutkan apakah ACL diterima atau ditolak untuk masuk ke pool tersebut. Autentikasi pada Squid Squid mendukung beberapa cara untuk autentikasi, yaitu basic, digest, dan NTLM. Cara basic paling sering digunakan karena hampir semua browser mendukung autentikasi ini, meskipun dari segi keamanan kurang dapat dijamin keamanannya. NTLM adalah kependekan dari NT Lan Manager, autentikasi yang dikembangkan oleh Microsoft yang digunakan oleh produk-produk Microsoft, dan akhirnya digunakan banyak software lain sebagai standar autentikasi, seperti misalnya Mozilla dan Apache WebServer.
  6. 6. Sebenarnya tidak hanya NTLM saja yang didukung squid untuk melakukan autentikasi user. Program kita juga bisa digunakan sebagai media autentikasi karena parameter di file konfigurasi Squid sangat liberal. Pada prinsipnya program yang digunakan bisa menerima input dari realm browser dan mencek dengan passwordnya dan mereturn sebuah value: OK atau ERR. Squid akan membaca kedua return value tersebut. Oleh karena itu kita dapat membuat program untuk autentikasi Squid, misalnya autentikasi IMAP, sehingga yang digunakan adalah user dan password di mail server. Contoh program untuk autentikasi ini ada di http://www.sokam.or.id/artikel/squidimap.pl. Httpd Accelerator / Reverse Proxy Server Reverse proxy server adalah proxy server yang terinstall di dalam satu neighbourhood dengan satu atau lebih webserver. Semua request dari internet yang berasal dari internet yang menuju ke salah satu webserver akan dilayani lewat proxy server, yang bisa jadi request tersebut ke dirinya sendiri atau diteruskan ke webserver seluruhnya atau sebagian saja. Ada beberapa alasan kenapa kita memakai reverse proxy server, diantaranya adalah; • Alasan keamanan: Proxy server adalah lapisan keamanan tambahan sebelum masuk lapisan webserver. • Enkripsi/SSL accelerator: Ketika website yang aman dibentuk, enkripsi SSL mungkin tidak dikerjakan oleh webserver untuk mengurangi beban kerja webserver, tetapi dilakukan oleh proxy server yang dilengkapi dengan hardware acceleration untuk SSL. • Load distribution: Reverse proxy dapat mendistribusikan beban ke beberapa webserver, sehingga masing-masing webserver hanya bekerja di areanya sendiri- sendiri. • Caching content yang statis. Reverse proxy dapat meng-cache content-content yang statis seperti image, sehingga memperingan beban kerja webserver. Transparent Caching Ketika kita menggunakan squid untuk melakukan caching dari web traffic, browser
  7. 7. harus dikonfigurasi agar menggunakan squid sebagai proxy. Transparent caching adalah metode agar browser tidak perlu dikonfigurasi menggunakan proxy, namun secara otomatis telah menggunakan proxy. Web traffic yang menuju ke port 80 diarahkan menuju ke port yang didengarkan oleh squid, sehingga squid bertindak sebagai layaknya standar web server untuk browser. Cara Kerja: Dengan menggunakan iptables atau ipchain, kita “rampok” request ke port 80 membelok ke arah port yang didengarkan oleh squid, misalnya port 3128 (port default Squid). Kemudian squid kita konfigurasi untuk menerima request HTTP disamping request proxy biasa seperti layaknya webserver. Dalam file konfigurasi squid, ada empat parameter yang perlu dikonfigurasi untuk menjadikan transparent proxy, yaitu: httpd_accel_host, httpd_accel_port, httpd_accell_with_proxy, dan httpd_accel_uses_host_header Keuntungan memakai transparent caching: – Kita tidak perlu mengkonfigurasi browser untuk memakai proxy tertentu karena sudah otomatis. Teknik ini cocok jika pengguna dari suatu subnet sangat awam dan tidak mau melakukan konfigurasi terlalu rumit pada browsernya. – Pengendalian yang terpusat oleh administrator Kerugian memakai transparent caching: – Fungsi autentikasi menjadi tidak berjalan – Request untuk HTTPS tidak akan di-cache – Tidak kokoh, karena transparent proxy sangat bergantung pada kestabilan jalur network (karena adanya pengalihan request) – Ketergantungan terhadap browser tertentu. Proxy server melayani request berdasarkan HTTP header dari browser dan beberapa browser yang kuno tidak menyediakan informasi ini. – Jika ada suatu webserver yang tidak mendengarkan di port 80, request jelas akan
  8. 8. tidak pernah dilayani. Konfigurasi Dasar Squid http_port Port HTTP yang didengarkan oleh Squid. Defaultnya adalah 3128. Biasanya port yang umum untuk sebuah proxy server adalah 8080. Terkadang Squid juga memakai port 80 kalau sedang berfungsi sebagai reverse proxy server acl src ipaddress/netmask Access Control List untuk alamat network asal. Biasanya digunakan untuk mengidentifikasi subnet yang digunakan user. ACL ini bisa berupa alamat network dan subnet mask atau alamat IP address tertentu saja acl dst ipaddress/netmask ACL untuk alamat network yang dituju oleh user/client. Lihat bagian acl src acl srcdomain .foo.com ACL untuk nama domain asal. acl dstdomain .foo.com ACL untuk nama domain tujuan. acl srcdom_regex [-i] xxx ACL domain asal yang difilter oleh sebuah regular expression. acl dstdom_regex [-i] xxx ACL domain tujuan yang difilter oleh sebuah regular expression. acl time [singkatan-hari] [h1:m1-h2:m2] ACL untuk mendefinisikan waktu. Singkatan hari didefinisikan di bawah ini: – S: Sunday – M: Monday – T: Tuesday – W: Wednesday – H: Thursday – F: Friday – A: Saturday
  9. 9. Waktu 1 harus lebih kecil dari waktu 2 dan memakai sistem waktu 24 jam acl url_regex [-i] ^http://.. URL yang difilter dengan regular expression didefinisikan dalam ACL ini acl urllogin [-i] URL yang memakai autentikasi difilter dengan regular expression yang didefinisikan dalam ACL ini acl port Definisi port yang dituju oleh client acl proto Protokol yang digunakan oleh client, misalnya FTP, HTTP acl method Method yang digunakan oleh client, misalnya GET, POST acl browser [-i] regex Jika Anda ingin memfilter browser yang digunakan oleh client, Anda dapat menggunakan ACL ini dengan menambahkan regular expression di belakangnya. acl ident username ACL untuk mendefinisikan user yang login di Squid. Untuk itu Anda harus menerapkan fungsi autentikasi di Squid acl proxy_auth username ACL untuk autentikasi user. Gunakan REQUIRED pada username untuk menerima user name yang valid. Catatan: ACL ini tidak akan berjalan pada transparent proxy. acl maxconn ACL untuk maksimum koneksi yang digunakan oleh satu host yang melakukan koneksi ke internet lewat proxy server. icp_port Port yang digunakan Squid untuk melakukan kerjasama dengan Squid yang lain. Secara default, Squid bekerjasama pada port 3130
  10. 10. cache_mem Memory fisik ideal yang digunakan Squid untuk menangani objek-objek In-Transit, Hot Object, dan Negative Cache Object maximum_object_size Besar maksimum objek yang disimpan dalam cache. Dalam bytes cache_dir Directory yang digunakan Squid sebagai tempat penyimpanan objek-objek. Defaultnya berada di directory /var/spool/squid auth_param Parameter yang digunakan untuk autentikasi. Untuk menjalankan autentikasi di Squid, ACL proxy_auth REQUIRED harus didefinisikan dan diberi hak akses pada http_access. Ada 3 mode parameter yang digunakan dalam autentikasi, yaitu basic, digest, dan NCSA. http_access Http Access adalah parameter untuk mengizinkan atau menolak akses dari ACL-ACL yang telah didefinisikan. Di sini hany ada dua opsi yaitu allow untuk mengizinkan akses ACL dan deny untuk menolak akses dari ACL terhadap Squid. reply_header_max_size Opsi ini digunakan untuk membatasi jumlah ukuran file yang diizinkan untuk didownload. Parameter allow menunjukkan bahwa suatu ACL dibatasi jumlah maksimum download-nya. Request yang terlalu besar akan menyebabkan Squid mengirimkan pesan “the request or reply is too large”. 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:
  11. 11. – 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
  12. 12. Opsi di atas berarti kita memasukkan ACL labprog ke dalam pool 1. opsi yang sangat khusus! lihat komentarnya di file /etc/squid.conf # TAG: incoming_icp_average # TAG: incoming_http_average # TAG: incoming_dns_average # TAG: min_icp_poll_cnt # TAG: min_dns_poll_cnt # TAG: min_http_poll_cnt # Heavy voodoo here. I can't even believe you are reading this. # Are you crazy? Don't even think about adjusting these unless # you understand the algorithms in comm_select.c first! # WebServer, Apakah itu? Webserver adalah suatu daemon atau service yang bekerja untuk mendengarkan request di port 80 dan melayani permintaan tersebut lewat protokol HTTP sehingga webserver juga disebut HTTP server. Permintaan tersebut dapat bersifat statis (file HTML atau image biasa) ataupun bersifat dinamis. Untuk request yang bersifat dinamis, webserver memprosesnya terlebih dahulu dengan program yang tertanam didirinya yang khusus melayani request dinamis tersebut. Request dinamis bisa berupa script ASP, PHP, ColdFusion, JSP, ataupun JSF dan script-script web dinamis yang lain. Beberapa web server yang kami ketahui: – Apache – Microsoft Internet Information Server (IIS) – Weblogic BEA – IBM Websphere – Sun J2EE Server – dll.
  13. 13. Konfigurasi Dasar Apache ServerRoot Menunjukkan letak directory Apache berada. Defaultnya berada di directory / etc/apache TimeOut Menunjukkan berapa lama waktu pengiriman dan penerimaan request diizinkan. Defaultnya adalah 300 detik MaxClients Menunjukkan berapa jumlah maksimal client yang diperbolehkan untuk mengadakan koneksi dengan Apache secara simultan. Defaultnya adalah sebanyak 150 Port Menunjukkan di port berapa Apache akan mendengarkan request. Sebagai webserver biasa, biasanya Apache akan dikonfigurasi di port 80, yaitu port HTTP, namun jika keadaan khusus, Apache bisa dikonfigurasi di port yang lain sesuai kebutuhan dengan parameter ini. User dan Group Menspesifikasi siapa user dan group yang menjalankan daemon Squid. Defaultnya adalah www-data. ServerAdmin Menspesifikasi alamat email yang harus dihubungi ketika server mengalami gangguan. Biasanya alamat dari ServerAdmin ini ditampilkan pada halaman error ketika server terjadi kesalahan atau masalah. DocumentRoot Opsi ini menspesifikasi dimana letak dokumen-dokumen HTML yang akan ditampilkan pada halaman web diletakkan. Tanpa menggunakan virtual host, Apache akan meload dokumen-dokumenyang diminta browser. Defaultnya terletak di / var/www. Jika opsi DocumentRoot berubah, maka opsi pada tag <Directory / var/www> juga harus diubah sesuai dengan path yang ditunjukkan di opsi DocumentRoot
  14. 14. <IfModule mod_userdir.c> Tag ini mendefinisikan dimana directory public dari user jika browser meminta URL yang mengarah ke user directory – di Apache menggunakan tanda '~' (baca: tilde bukan dibaca cacing). <IfModule mod_dir.c> Tag ini mendefinisikan dokumen-dokumen yang menjadi pre-written directory index atau halaman depan dari suatu halaman web dimana user tidak perlu mengetikkan nama dokumen yang direquest. Dokumen-dokumen yang umum menjadi index adalah index.htm, index.html, index.shtml, default.htm (halaman HTML), index.cgi (dokumen CGI), index.asp (dokumen ASP), index.php (dokumen PHP), dll. AccessFileName .htaccess Nama file yang digunakan untuk mencari directory-directory yang memerlukan autentikasi untuk dapat dibuka <IfModule mod_alias.c> Tag ini mendefinisikan nama-nama alias didefinisikan seperti misalnya directory alias dsb. Virtual Host pada Apache Virtual host adalah suatu teknik dimana satu web server dengan satu IP address dapat memiliki lebih dari satu nama domain. Virtual host dalam apache dikonfigurasikan dalam file httpd.conf. Jika nama virtual host terlalu banyak, definisi mengenai virtual host dapat dipisahkan dalam file tersendiri dan di file httpd.conf disebutkan bahwa definisi virtual host terdapat di dalam file tersebut. Virtual Host menggunakan protokol HTTP/1.1 dimana protokol ini mengirimkan header tentang alamat URL yang diketik user pada address bar browser. Browser yang tidak mendukung HTTP/1.1 tidak akan dapat merequest alamat yang menggunakan virtual host. NameVirtualHost <ipAddress> Tag ini harus di-uncomment jika server dikonfigurasi untuk meng-host Virtual Host – minimal satu IP Address harus didefinisikan dan biasanya yang disebutkan di situ adalah server yang menangani virtual host. Jika tag ini tidak didefinisikan, maka virtual
  15. 15. host tidak akan berjalan dengan sempurna <VirtualHost ip.address.of.host.some_domain.com> <VirtualHost ip.address.of.host.some_domain.com> ServerAdmin webmaster@host.some_domain.com DocumentRoot /www/docs/host.some_domain.com ServerName host.some_domain.com ErrorLog logs/host.some_domain.com-error.log CustomLog logs/host.some_domain.com-access.log common </VirtualHost> Baris di atas mendefinisikan virtual host dari domain tertentu. Ada beberapa tag yang harus diisi yaitu IP Address dari domain, email dari administrator server, letak dokumen yang akan ditampilkan, nama domain dari server virtual, error log, dan custom log. Selain itu, semua opsi-opsi dan tag-tag yang ada pada httpd.conf bisa di- override menurut kebutuhan dari virtual host. Contoh konfigurasi virtual host: <VirtualHost 202.154.63.13:80> SSLDisable ServerName its.ac.id ServerAlias www.its.ac.id DocumentRoot /var/www/new.its.ac.id ServerAdmin gailh@its.ac.id CustomLog /var/log/apache-ssl/its.ac.id.log common </VirtualHost> Workshop Kita akan mencoba mempraktikkan segala teori di atas dalam UML yang telah kita bangun (Lihat modul 1 (Subnetting dan Desain Jaringan) dan 2 (DNS dan Iptables). Map dari network kita tercantum di bawah ini:
  16. 16. Problem 1: Setting Proxy Server Perusahaan PT. Tata Surya memutuskan berlangganan internet ke PT. AJK.Net dengan bandwith 512 Kbps. Dengan demikian diperlukan pengaturan atau manajemen bandwith di dalam jaringan PT. TataSurya. Setelah dilakukan rapat direksi. Diputuskan bahwa : a. Semua workstation yang terhubung dengan internet, baik selama jam kerja saja maupun tidak, harus melewati proxy, dan diputuskan workstation tidak perlu menambah konfigurasi apapun. ( transparent proxy ). Proxy tersebut mempunyai rule sbb : - Maksimum download dibatasi 2 MB - Maksimum koneksi per host/workstation dibatasi 8 koneksi simultan. - Batas kecepatan koneksi overall adalah 256 Kbps. per-network
  17. 17. 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. - Diputuskan juga para user TIDAK BOLEH membuka situs situs terlarang. Jenis situs2 terlarang tsb diantaranya : situs porno, situs spam, dan situs situs lain yang ditentukan oleh direksi (baca:asisten) tips ( gunakan regular expresion file shg bisa ditambah atau dikurangi ) - semua workstation subnet Uranus tidak dapat menggunakan akses proxy. - Proxy PT. Tata Surya di sibling kan dengan proxy nya ISP PT. AJK dengan ip 10.126.13.220 HTTP port 3128, ICP port 3130. Penyelesaian: Kita akan memasang Squid yang bertindak sebagai transparent proxy pada bridge, karena posisi bridge berada di bawah gateway matahari sehingga semua request yang keluar pasti akan melewati bridge. Semua workstation yang terhubung dengan internet, baik selama jam kerja saja maupun tidak, harus melewati proxy, dan diputuskan workstation tidak perlu menambah konfigurasi apapun. ( transparent proxy ) httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on Konfigurasi di atas menyebabkan proxy bertindak sebagai transparent proxy dengan membackup semua request ke port 80 (HTTP) lewat dirinya. Agar proxy berfungsi sebagai transparent proxy, konfigurasi tambahan pada iptables perlu diberikan agar semua request yang lewat dengan tujuan port 80 diredirect ke port milik Squid. Perintah iptables-nya seperti di bawah ini: iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128 Maksimum download dibatasi 2 MB Sebelum kita melakukan pembatasan, kita perlu mendefinisikan ACL network yang kita perlukan terlebih dahulu. ACL yang didefinisikan pada host bridge seperti di bawah ini:
  18. 18. acl lokal src 10.17.42.0/24 acl uranus src 10.17.42.168/255.255.255.248 acl icpajk src 10.126.13.220/32 Kemudian kita membatasi maksimum download dengan tag di bawah ini: reply_body_max_size 2MB allow all Maksimum koneksi per host/workstation dibatasi 8 koneksi simultan. acl koneksi maxconn 8 http_access allow koneksi ACL koneksi mendefinisikan bahwa jumlah koneksi simultan maksimum sebanyak delapan koneksi. ACL ini kemudian di-allow pada bagian http_access 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 regular expression. Kemudian kita mendefinisikan 2 delay pool untuk menampung bandwidth. Satu pool masuk dalam kategori class 2 untuk mendefinisikan aturan overall 256 Kbs dan per-network 64 Kbps. Satu pool lainnya masuk kategori class 3 untuk
  19. 19. 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 Diputuskan juga para user TIDAK BOLEH membuka situs situs terlarang. Jenis situs2 terlarang tsb diantaranya : situs porno, situs spam, dan situs situs lain yang ditentukan oleh direksi (baca:asisten) tips (gunakan regular expresion file shg bisa ditambah atau dikurangi) acl porno url_regex -i "/etc/squid/webterlarang" http_access deny porno Karena jumlah web-web terlarang (termasuk web-web porno) sangat banyak, maka tidak akan praktis jika kita mendefinisikannya dengan cara seperti kita mendefinisikan file-file yang akan didownload. Untuk itu kita mendefinisikan web terlarang tersebut di file /etc/squid/webterlarang. Beberapa baris teratas dari isi file tersebut adalah seperti di bawah ini: www.justmarriedsex.com freeadultvideo www.sexitalia.com www.bikinidesk.com russiankiss breatneyspears 0km amateur amateurs amateurpages Setelah itu kita tinggal melakukan denying pada http_access untuk ACL ini. Semua workstation subnet Uranus tidak dapat menggunakan akses proxy.
  20. 20. acl uranus src 10.17.42.168/255.255.255.248 http_access deny uranus Kita tinggal mendefinisikan network 10.17.42.168/29 yang merupakan subnet Uranus pada ACL dan menolaknya pada tag http_access. Sederhana saja, tidak ada konfigurasi tambahan. Proxy PT. Tata Surya di sibling kan dengan proxy nya ISP PT. AJK dengan ip 10.126.13.220 HTTP port 3128, ICP port 3130. cache_peer 10.126.13.220 sibling 3128 3130 acl icpajk src 10.126.13.220/32 icp_access allow icpajk Di sini kita bermain-main cache peer. Tag cache_peer digunakan untuk menyambungkan proxy 10.126.13.220 milik PT. AJK dengan hubungan sejajar atau sibling. Kemudian kita harus mengizinkan akses dari proxy ajk agar bisa saling berkomunikasi. Untuk itu kita memerlukan tag acl dan icp_access. Sebenarnya untuk hubungan sibling, kita juga perlu menambahkan tag icp_access allow bridge pada proxy milik PT. AJK. Demikian konfigurasi yang diperlukan untuk menyelesaikan problem yang telah disebutkan di atas. Satu hal penting lainnya adalah letak susunan dan urutan dari http_access. Pada prinsipnya Squid akan memeriksa tiap-tiap tag dari atas ke bawah dan spasi dianggap sebagai AND. Berikut ini adalah urut-urutan dari tag http_access pada file squid.conf di bridge. Perhatikan betul jika Anda tidak ingin sengsara! http_access deny uranus http_access deny porno http_access allow koneksi http_access allow filegede http_access allow localhost http_access allow lokal Problem 2: Setting Virtual Host pada webserver Apache di Saturnus PT.Tata Surya juga memutuskan membuat beberapa website internal yang dipasang di saturunus. Website tsb diantaranya - website utama : www.klpXX.com yang merupakan CNAME dan ALIAS dari klpXX.com
  21. 21. - website marketing : marketing.klpXX.com - website accounting : accounting.klpXX.com - website riset dan development : riset.klpXX.com Penyelesaian: Langkah Pertama: Setting DNS Server di Bridge Untuk menyelesaikan soal ini, kita perlu menambahkan beberapa entry domain di DNS Server yang telah kita buat (Baca Modul 2: Sekilas DNS Server dan Iptables) yang berisi domain-doman yang telah disebutkan dalam soal yaitu: www.klp17.com, klp17.com, marketing.klp17.com, accounting.klp17.com, riset.klp17.com. Setting DNS-nya dilakukan di file database DNS, dalam hal ini di /etc/bind/klp17.com pada host bridge yang merupakan Primary DNS Server untuk zona klp17.com ; ; BIND data file for klp17.com ; @ IN SOA bridge.klp17.com. galih.klp17.com ( 200504233 ; Serial 7200 ; Refresh 3600 ; Retry 604800 ; Expire 86410 ) ; Negative Cache TTL IN NS bridge.klp17.com. IN NS pluto.klp17.com. IN A 10.17.42.146 ;; tempat secondary name server ; ;; anggota-anggota klp17.com venus IN A 10.17.42.130 matahari IN A 10.17.42.131 reverse IN CNAME matahari bridge IN A 10.17.42.133 proxy IN CNAME bridge titan IN A 10.17.42.134 #sub IN CNAME titan mars IN A 10.17.42.143 saturnus IN A 10.17.42.146 www IN CNAME saturnus marketing IN CNAME saturnus
  22. 22. accounting IN CNAME saturnus riset IN CNAME saturnus neptunus IN A 10.17.42.147 uranus IN A 10.17.42.162 metis IN A 10.17.42.170 asteroid IN A 10.17.42.171 bumi IN A 10.17.42.167 pluto IN A 10.17.42.140 sub IN NS titan.klp17.com. suryo IN NS titan.klp17.com. demo IN NS pluto.klp17.com. merkurius IN A 10.17.42.178 jupiter IN A 10.17.42.190 Perhatikan entry yang dicetak tebal. Entry pada SOA yang berbunyi: IN A 10.17.42.146 menunjukkan bahwa zona klp17.com memiliki webserver yang berada di IP Address 10.17.42.146 yang merupakan IP Address dari host Saturnus. Kemudian perhatikan entry yang dicetak tebal yang berada pada daftar-daftar anggota zona yang berbunyi: saturnus IN A 10.17.42.146 www IN CNAME saturnus marketing IN CNAME saturnus accounting IN CNAME saturnus riset IN CNAME saturnus kita mendefinisikan saturnus sebagai pemilik IP Address dari 10.17.42.146. Sub www merupakan canonical name dari host Saturnus. Entry ini perlu dimasukkan agar alamat http://www.klp17.com dapat diakses seperti halnya alamat http://klp17.com. Kemudian subdomain lainnya seperti marketing, accounting, dan riset juga merupakan canonical name dari saturnus karena letak webserver mereka juga berada di host saturnus yang akan kita set untuk menangani semua domain tersebut dengan cara menerpakan virtual host pada Apache. Langkah kedua: Setting Virtual Host Apache pada Saturnus Untuk dapat membawahi domain yang cukup banyak pada satu server, Apache perlu dikonfigurasi sebagai virtual host. Langkah-langkahnya dijelaskan di bawah ini: NameVirtualHost 10.17.42.146:80
  23. 23. Tag di atas wajib kita beri agar virtual host apache dapat berfungsi dengan baik. Jika tidak dispesifikasi, maka web yang muncul adalah web dari virtual host yang pertama kali didefinisikan pada file /etc/apache/httpd.conf. Kemudian kita tinggal mengkonfigurasi virtual host masing-masing. Konfigurasinya seperti di bawah ini: <VirtualHost 10.17.42.146:80> ServerName accounting.klp17.com ServerAlias www.accouting.klp17.com DocumentRoot /var/www/accounting.klp17.com/ </VirtualHost> <VirtualHost 10.17.42.146:80> ServerName marketing.klp17.com ServerAlias www.marketing.klp17.com DocumentRoot /var/www/marketing.klp17.com/ </VirtualHost> <VirtualHost 10.17.42.146:80> ServerName riset.klp17.com ServerAlias www.riset.klp17.com DocumentRoot /var/www/riset.klp17.com/ </VirtualHost> Subdomain accounting.klp17.com, marketing.klp17.com, riset.klp17.com masing- masing berada di directory /var/www/accounting.klp17.com /var/www/marketing.klp17.com /var/www/riset.klp17.com Untuk website www.klp17.com sendiri diletakkan pada document root – tidak memerlukan virtual host – yaitu berada di directory /var/www. Demikian setting yang diperlukan untuk membuat host saturnus menjadi sebuah webserver yang dapat meng-host beberapa domain sekaligus. Selamat mencoba! :D
  24. 24. Problem 3: Setting Reverse Proxy untuk Webserver Saturnus di host Matahari Untuk memperingan kerja webserver saturunus serta supaya website internal bisa diakses dari internet ( AJK ). settinglah Matahari sebagai reverse proxy server (http accelerator) dari webserver saturunus. Penyelesaian: Reverse Proxy Server pada Matahari menyebabkan Saturnus yang memiliki IP Address private dapat diakses dari dunia luar lewat host matahari yang memiliki IP Address public. Berikut adalah konfigurasinya: http_port 80 Kita harus mengubah port default Squid (3128) menjadi 80 agar semua request HTTP ke port 80 akan dilayani oleh Squid. acl acelTujuan dst 10.17.42.146 acl acelPort port 80 http_access allow acelTujuan acelPort Kita mendefinisikan ACL agar request yang bertujuan ke web saturnus (10.17.42.146) dengan port 80 diperbolehkan dan diteruskan oleh Squid httpd_accel_single_host on httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header off httpd_accel_host 10.17.42.146 Baris di atas adalah baris yang membuat Squid berubah tugas menjadi sebuah httpd accelerator atau reverse proxy server untuk web saturnus (10.17.42.146). Cara terbaik untuk memeriksa konfigurasi ini adalah dengan mengakses web saturnus lewat dunia luar (tentu saja yang satu network dengan IP Live dari Matahari – dalam kasus ini adalah network lab NCC yang memiliki address 10.126.13.x). Jika Squid pada Matahari dihidupkan, maka reply-nya adalah isi web dari saturnus dan jika Squid pada Matahari dimatikan maka tidak akan ada reply atau muncul pesan error bahwa tidak ada layanan yang bisa memproses request. Penutup Pada modul ini kita telah belajar bagaimana membangun proxy server dan webserver
  25. 25. pada sebuah jaringan dengan menggunakan Squid dan Apache serta bagaimana membuat Squid dan Apache bisa saling bekerja sama. Kesulitan yang ada mungkin terletak pada bagaimana melakukan pemeriksaan dan testing karena pada beberapa kasus seperti delay pool memerlukan keadaan yang sebenarnya, bukan hanya simulasi pada UML saja. Selebihnya tidak ada masalah yang serius. Ucapan Terimakasih Ucapan terima kasih yang sebesar-besarnya saya ucapkan kepada: – Allah SWT, Tuhan Semesta Alam – Mas Cukris (Ahmad Kristiono), asisten pembimbing modul 3, yang dengan sabar dan senang hati membimbing dan menuruti permintaan saya untuk melakukan penundaan demo praktikum – Mas Kamas Muhammad (http://www.sokam.or.id), yang telah membimbing sejak awal, membuatkan UML tempat latihan di host Triana (alm.) (10.100.1.42), yang dengan sabar melayani pertanyaan-pertanyaan yang kadang-kadang nyleneh. ^_^. – Host triana.its.ac.id (alm). Kepergianmu telah membawa kesedihan yang mendalam buatku. Sedikit kebersamaan denganmu telah banyak membuka pengetahuan buatku. – Host yudowati, tempat simulasi UML dilakukan – Dan tentu saja, nirmaladewi.its.ac.id dan eliza, dua kekasihku tercinta... Daftar Pustaka – Tentu saja, Mbah Google (http://www.google.com) – http://www.squid-cache.org/ – http://squid-docs.sourceforge.net/latest/html/book1.html – http://www.faqs.org/docs/securing/chap28sec231.html Words of the day: -- 05 Mei 2005 Int, nomor Hpmu berapa? kenapa dua nomormu tidak aktif semua?Bagaimana aku
  26. 26. mengubungimu? Tak tahukah kalau aku benar-benar merindukanmu??

×