Admin Jaringan Komputer– Tutorial Cara Cepat Dan Mudah Membuat Proxy Server di Linux

Admin Jaringan Komputer
Proxy Server
1. Dasar Teori
Anda ingin membuat user-user anda dapat mengakses Internet. Sayangnya, anda hanya mempunyai 1 komputer saja yang terhubung dengan Internet menggunakan modem. Salah satu solusinya, anda harus membuat sebuah Server Proxy yang dapat mengatur koneksi Internet dari setiap komputer dalam jaringan anda. Dengan Squid, anda dapat mengatur user mana saja yang berhak menggunakan fasilitas internet sehingga jalur Internet tidak menjadi padat. Jika cara tersebut dianggap keras, cara tersebut juga dapat diperlonggar dengan pengaturan hari dan jam-jam tertentu untuk kelompok user yang berbeda.
Transparan cache dinamai demikian karena alat tersebut bekerjanya dengan menggunakan jalur jaringan secara transparan ke browser. Dalam model ini ,sirkit pendek cache, proses retrieval, apaka h file yang dikehendaki ada dalam cache. Transparan cache berguna khususnya untuk ISPs karena mereka tak memerlukan modifikasi browser set up. Trasparan cache juga merupakan cara yang termudah untuk menggunakan sebuah cache secara internal pada sebuah jar ingan , karena trasparan cache tak menggunakan koordinasi yang terperinci dengan cache lainnya.
Apakah trasparan cache itu ?
Penjelasan istilah trasparan cache dan trasparan proxy tergantung pada contohnya, tapi kami mengasumsikan konteks disini yaitu HTTP Proxy/cache dengan trasparan hijacking dari port 80 yang mana merupakan jalur HTTP yang gagal di internet. Perbedaannya yaitu bahwa cache memasukkan cache, tapi proxy hanya proxy-proxy tanpa caching .Trasparan Overload mempunyai arti yang berbeda-beda tergantung situasinya . Kata tersebut dapat diartikan setup yang membajak jalur port 80 dimana klientnya mencoba untuk pergi ke server yang lain, juga bisa diartikan sebuah trasparan proxy yang tak dapat mengubah arti / isi permintaan . tak ada alat seperti trasparan proxy , hanya semi trasparan dan tak ada alat seperti trasnparan cache. Squid dapat dikonfigurasikan untuk bertindak secara trasparan. Dalam mode ini klient tak disyaratkan untuk mengkonfigurasikan browser mereka untuk mengakses cache tapi squid akan menjemput paket yang tepat dan permintaan cache secara transparan. Hal yang bisa memecahkan masalah terbesar dengan menggunakan caching : menganjurkan para pemakai untuk menggunakan cache server.
Apakah squid itu ?
Squid adalah sebuah penampilan yang bagus bagi dari server cacking proxy untuk klient web, pendukung FTP, gopher dan obyek data HTTP. Tak seperti software cacking tradisional , squid menangani semua permintaan dalam bentuk singgle , non bloking , proses I/O driven. Squit menyimpan data meta dan khususnya obyek panas yang tersembunyi dalam RAM, menyembunyikan DNS lookups, mendukung DNS lookups yang tak memihak, dan cacking negatif dari permintaan yang digagalkan . Squid mendukung SSL,kontrol akses yang extensif dan loging permintaan penuh. Dengan menggunakan ukuran berat internet cache protokol, squid dapat disusun dalam sebuah hirarki untuk pengamanan bandwidth extra squid terdiri dari sebuah squid program main server, sebuah dnsserver program lookups Domain Name Systim, beberapa program untuk menulis kembali permintaan-permintaan dan keoutentikan penampilan , dan beberapa menegemen dan alat-alat klient.
2. Tugas Pendahuluan
Sistem authentikasi pada proxy
a. Basic authentication
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 ingin menggunakan skema autentikasi yang yakin berfungsi dengan baik di semua browser, pakailah skema autentikasi basic. Sayangnya skema autentikasi basic ini memiliki satu kelemahan utama,yaitu proses pengiriman data user dan password dikirim dalam format plain text. Jadi sangat rentan terhadap proses snip atau penyadapan saat proses autentikasi berlangsung. Skema ini tidak disarankan ketika layanan yang diberikan akan diakses melalui jaringan internet. Tapi masih bisa ditolerir jika layanan itu dibuat untuk kalangan terbatas, misalnya LANkantor. Dan karena squid pada umumnya digunakan di jaringan terbatas, skema autentikasi ini masih bisa digunakan. Helper atau program bantu untuk autentikasi ke backend Squid menyediakan beberapa program bantu untuk skema autentikasi basic. Anda bisa memilih mana yang cocok dengan keperluan Anda.
  • LDAP: Autentikasi ke LDAP.
  • NCSA: Menggunakan format penulisan username dan password format NCSA.
  • MSNT: Autentikasi ke domain Windows NT.
  • PAM: Menggunakan skema autentikasi PAM yang umum digunakan di sistem operasi Unix/Linux.
  • SMB: Menggunakan server SMB seperti Windows NT atau Samba.
  • getpwam: Menggunakan cara kuno, berkas password di Unix/Linux.
  • SASL: Mengggunakan pustaka SASL.
  • mswin_sspi: Windows native authenticator.
  • YP: Menggunakan database NIS.
  1. 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 mendukung skema autentikasi digest.
  1. NTLM Authentiaction
Ini adalah skema autentikasi yang diperkenalkan oleh Microsoft. Dengan menggunakan skema 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
3. Hasil Percobaan dan Analisa Hasil Percobaan
a. Installasi proxy (squid)
Sebelum melakukan percobaan hendaklah melakukan pengecekan terhadap sistem operasi yang anda gunakan:
  • Cek versi dari sistem operasi
clip_image002
  • Installasi squid
clip_image004
  1. Konfigurasi dan ujicoba proxy (ACL=Access Control List)
  • Edit konfigurasi squid
clip_image006
Carilah baris pada file “squid.conf” (pada baris ke 671) yang bertuliskan:
“# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS”
Tambahkan script berikut ini setelah tulisan tersebut diatas:
clip_image008
simpan dan kemudian restart daemon squid
clip_image010
· Ujicoba pada browser, namun terlebih dahulu konfigurasi browser untuk menggunakan proxy server yang telah dibuat. Karena ip computer sesuai dengan konfigurasi pada squid maka dapat memnuka website seperti tampak pada gambar berikut ini:
clip_image012
c. Konfigurasi dan ujicoba proxy (auth – htpasswd)
· Membuat file password
clip_image014
· Edit file squid.conf
Tambahkan script berikut ini:
clip_image016
simpan dan kemudian restart daemon squid
clip_image017
· Ujicoba pada browser, namun terlebih dahulu konfigurasi browser untuk menggunakan proxy server yang telah dibuat Akses sebuah site maka akan muncul autentikasi seperti tampak pada gambar berikut ini:
clip_image019
· Cek proses jalannya proxy pada wireshark
clip_image021
Pada capture wireshark diatas terlihat bahwa sebuah client dengan ip 10.252.108.231 berusaha mengakses website www.disamperin.com. Client mengirimkan GET www.disamperin.com pada proxy server yang memiliki ip 10.252.108.112. Proxy server mengecek apakah ada web cache. Jika tidak ada maka proxy server mengirimkan GET www.disamperin.com pada DNS server. DNS me-resolve alamat ip www.disamperin.com yaitu 103.3.60.102 lalu memberikannya pada proxy server.
4. Daftar Pertanyaan
  1. Struktur chache pada squid
Hirarki cache pada Squid diatur pada file konfigurasi Squid.conf pada directive cache_host. Bentuk standar dari directive cache_host adalah sebagai berikut :
cache_host hostname type http_port icp_port option
  • Hostname : nomer IP proxy server dalam hirarki atau nama mesin dalam FQDN.
  • Type : isi sesuai dengan level dari proxy server yaitu parent, neighbor, atau sibling.
  • Http_port : port di mana server tersebut mendengarkan permintaan protokol HTTP dan FTP dari pengguna.
  • ICP_port : port server akan mendengarkan (listen) permintaan atau mengirimkan permintaan keberadaan objek ke server lain dalam hirarki.
  • Option : ada beberapa option yang bisa digunakan.
  • proxy-only : data yang didapat dari proxy dengan option ini tidak akan dicache
  • weight = n : untuk pemilihan preference apabila terdapat multiple parent, n adalah bilangan integer, makin besar n berarti satu parent lebih disukai dibandingkan dengan parent yang lain.
  • ttl=n : untuk memberikan TTL paket ICP query multicast (akan dibahas di bawah)
  • no-query : untuk tidak memberikan ICP query pada cache server yang disebutkan
  • default : default parent apabila terdapat multiple parent
  • multicast-responder : peer yang diberi option ini adalah anggota dari multicast group.
  • Round-robin : apabila terdapat sejumlah parent, maka parent-parent akan di query secara round-robin/bergantian.
Harap dimengerti bahwa hirarki cache sendiri tidak ditentukan sepenuhnya oleh letak fisik satu proixy server terhadap proxy server yang lain, faktor-faktor kondisi dan utilisasi network serta hardware yang kita miliki menjadi faktor penentu ‘jabatan’ suatu proxy server dalam hirarki cache. Tingkat kesuksesan hirarki cache yang kita buat ditentukan oleh hit rate (jumlah objek yang dapat ditransfer dari cache yang dimiliki proxy server yang ada). Hit rate yang tinggi dapat mereduksi traffic dari network yang anda miliki ke internet. Hit rate yang tinggi hanya dapat dicapai melalui perencanaan hirarki cache yang efisien dan efektif dengan mempertimbangkan kondisi-kondisi yang ada walaupun behaviour dari pengguna juga sangat menentukan hit rate.
2. TTL pada cache squid
TTl pada cache squid berguna untuk menentukan TTL IP multicast yang digunakan ketika mengirim permintaan ICP ke alamat ini .Hanya berguna saat mengirim ke grup multicast .
3. Kriteria Object cache
Pengaturan object sebuah cache server merupakan salah satu hal yang perlu diperhatikan disini. Telah diketahui sebelumnya bahwa object disimpan pada dua level cache_dir yang besar levelnya didefinisikan pada konfigurasi utama squid. Object itu sendiri berisikan content URL yang diminta klien dan disimpan dalam bentuk file binary, masing-masing object mempunyai metadata yang sebagian dari isinya disimpan didalam memori untuk memudahkan melacak dimana letak object dan apa isi dari object tersebut. Banyak sifat-sifat yang perlu diamati untuk optimasi squid ini, antara lain :
Umur object Umur obect merupakan sebuah ukuran waktu yang dihabiskan sebuah object untuk tinggal didalam hardisk cache. Umur object dibatasi oleh beberapa factor, yaitu :
metode penghapusan object object dihapus bisa melalui beberap algoritma penghapusan :
  • Logistic Regression : yaitu menghapus object dengan kemungkinan logistic regression terkecil. Kemungkinan logistic regression bisa diartikan sebagai besarnya kemungkinan object tersebut akan diakses diwaktu yang akan dating.
  • Least Recently Used : yaitu metode penghapusan object berdasarkan waktu kapan object tersebut terakhir diakses. Semakin lama (besar) waktunya, kemungkin dihapus juga akan semakin besar.
  • Least Frequently Used : Metode penghapusan object yang paling jarang diakses.
  • First In First Out : Penghapusan yang merunut metode berdasarkan waktu masuk ke dalam cache_dir, yaitu object yang paling awal masuk, berarti itu adalah object yang akan dihapus terlebih dahulu.
  • Random : Menghapus object secara random.
5. Kesimpulan
DNS Master mempermudah seseorang untuk mengakses sebuah domain tanpa perlu lagi untuk menghafal alamat ip. DNS Master yang akan menerjemahkan atau mentranslasikan alamat ip menjadi sebuah nama domain dan juga sebaliknya sebab DNS master lah yang memegang daftar lengkap dari sebuah domain yang dikelolanya. DNS Slave digunakan sebagai pengganti DNS master saat rusak.

penulis & kontributor
Ilham Akbar & Bapak Ferry Astika
(POLITEKNIK ELEKTRONIKA NEGERI SURABAYA)