MEMBANGUN TRANSPARENT PROXY
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
SERVER DENGAN DEBIAN LINUX
Oleh: Abdul Rohman ~“ikatlah ilmu dengan tulisan”~
[email protected],
[email protected]
Administrators & Developer MUHAMMADIYAH’S ICT VOCATIONAL HIGH SCHOOL 5th BABAT 2011 1
PENGENALAN LINUX
Figure 1 Linus Torvalds
Perkembangan Linux sangat didukung oleh lisensi yang digunakan oleh Linux yaitu GNU General Public License (GNU GPL). Secara singkat GNU General Public License memungkinkan suatu aplikasi ( termasuk sistem operasi ) untuk secara bebas digunakan dan disebarluaskan dimana pengguna/penerima software berhak menerima kode asal ( source code) dari aplikasi tersebut beserta semua hak yang diijinkan oleh penulis asli. Aplikasi tersebut dapat dimodifikasi maupun digunakan dalam aplikasi lain dimana lisensi dari aplikasi perubahan/baru tetap pada GNU GPL . Penulis asli hanya bertanggungjawab pada kode asli dan tidak bertanggungjawab terhadap implikasi perubahan yang dilakukan pada aplikasi tersebut. Penyebarluasan aplikasi yang telah dirubah tetap mencantumkan penulis asli , kode asli, kode perubahan yang ditambahkan dan penanggungjawab perubahan tersebut. Dengan GPL bukan berarti tidak memungkinkan adanya komersial, paling tidak biaya dapat ditarik dari biaya kopi media distribusi. Jasa layanan seperti dukungan teknis dapat merupakan produk komersial.
2
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Linux adalah sistem operasi berbasis UNIX yang dapat berjalan di berbagai macam perangkat keras terutama di PC berbasis Intel x86. Dikatakan berbasis UNIX karena Linux dikembangkan menurut standar yang dimiliki UNIX dan kemampuan yang sama dengan UNIX. Artinya Linux memiliki kemampuan baik sebagai server maupun workstation layaknya UNIX. Pada awalnya Linux hanya berjalan di platform Intel x86 termasuk AMD Cyrix dan lainnya. Namun seiring dengan berkembangnya jumlah pengguna Linux dan para pengembangnya maka sekarang Linux telah berjalan pula pada MacIntosh (Motorolla), Sun Sparc, DEC Alpha , Amiga , strongARM dan masih banyak lagi. Linux Pertamakali dibuat oleh Linus Torvalds di Universitas Helsinki , Finlandia. Kemudian Linux dikembangkan lagi oleh banyak programmer dan Hacker Unix di seluruh dunia.
3
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Saat ini Linux adalah sistem UNIX yang sangat lengkap, bisa digunakan untuk jaringan, pengembangan software dan bahkan untuk pekerjaan seharihari. Linux sekarang merupakan alternatif sistem operasi yang jauh lebih murah jika dibandingkan dengan sistem operasi komersial (misalnya Windows 9.x/NT/2000/ME). Linux mempunyai perkembangan yang sangat cepat. Hal ini dapat dimungkinkan karena Linux dikembangkan oleh beragam kelompok orang. Keragaman ini termasuk tingkat pengetahuan, pengalaman serta geografis. Agar kelompok ini dapat berkomunikasi dengan cepat dan efisien, internet menjadi pilihan yang sangat tepat. Karena kernel Linux dikembangkan dengan usaha yang independent, banyak aplikasi yang tersedia, sebagai contoh, C Compiler menggunakan gcc dari Free Software Foundation GNU’s Project. Compiler ini banyak digunakan pada lingkungan HewlettPackard dan Sun. Sekarang ini, banyak aplikasi Linux yang dapat digunakan untuk keperluan kantor seperti untuk spreadsheet,word processor, database dan program editor grafis yang memiliki fungsi dan tampilan seperti Microsoft Office, yaitu Star Office. Selain itu, juga sudah tersedia versi Corel untuk Linux dan aplikasi seperti Matlab yang pada Linux dikenal sebagai Scilab. Linux bisa didapatkan dalam berbagai distribusi (sering disebut Distro). Distro adalah bundel dari kernel Linux, beserta sistem dasar linux, program instalasi, tools basic, dan programprogram Lain yang bermanfaat sesuai dengan tujuan pembuatan distro. Ada banyak sekali distro Linux, diantaranya : 1. RedHat, distribusi yang paling populer, minimal di Indonesia. RedHat merupakan distribusi pertama yang instalasi dan pengoperasiannya mudah. 2. Debian, distribusi yang mengutamakan kestabilan dan kehandalan, meskipun mengorbankan aspek kemudahan dan kemutakhiran program. Debian menggunakan .deb dalam paket instalasi programnya. 3. Slackware, merupakan distribusi yang pernah merajai di dunia Linux. Hampir semua dokumentasi Linux disusun berdasarkan Slackware. Dua hal penting dari Slackware adalah bahwa semua isinya (kernel, library ataupun aplikasinya) adalah yang sudah teruji. Sehingga mungkin agak tua tapi yang pasti stabil. Yang kedua karena dia menganjurkan untuk menginstall dari source sehingga setiap program yang kita install teroptimasi dengan sistem kita. Ini alasannya dia tidak mau untuk menggunakan binary RPM dan sampai Slackware 4.0, ia tetap menggunakan libc5 bukan glibc2 seperti yang lain. 4. SuSE, distribusi yang sangat terkenal dengan YaST (Yet another Setup Tools) untuk mengkonfigurasi sistem. SuSE merupakan distribusi pertama dimana instalasinya dapat menggunakan bahasa Indonesia. 5. Mandrake, merupakan varian distro RedHat yang dioptimasi untuk pentium. Kalau komputer kita menggunakan pentium ke atas, umumnya Linux bisa jalan lebih cepat dengan Mandrake. 6. WinLinux, distro yang dirancang untuk diinstall di atas partisi DOS (WIndows). Jadi untuk menjalankannya bisa diklik dari Windows. WinLinux dibuat seakanakan merupakan suatu program aplikasi under Windows. Dan masih banyak distro-distro lainnya yang telah tersedia maupun yang akan muncul.
Kemampuan Sistem Linux Multiuser Kemampuan OS menangani banyak user secara simultan baik pada aplikasi yang sama maupun aplikasi yang berbeda. Multitasking Kemampuan OS menangani sejumlah pekerjaan (task) secara simultan. Kernel Linux merupakan kernel modular dimana dapat dikonfigurasi dengan modulmodul (berupa device driver) pluggable yang dapat dipasang atau dilepas sesuai kebutuhan. Hal ini membuat kernel Linux menjadi kecil dan ringkas, menghemat memori yang digunakan kernel sehingga bisa digunakan untuk alokasi memori aplikasi. Dukungan lengkap terhadap jaringan berbasis TCP/IP Tersedia fasilitasfasilitas jaringan seperti telnet, FTP, dan NNTP. Linux menyediakan juga driver-driver untuk Ethernet, PPP, bahkan ISDN. Pada platform Intel, Linux menggunakan mode protected, model penggunaan memori secara flat (tanpa segmentasi), demand paging, virtual memory . Penanganan program dan data berukuran besar menjadi lebih baik. Linux menggunakan shared library pada file-file executeable sehingga ukuran program menjadi kecil.
4
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Mari menggunakan Linux Dengan GNU GPL Linux menawarkan sebuah sistem operasi sekelas UNIX dengan biaya murah. Terutama bagi perusahaan dengan kapital kecil Linux memberi angin segar terhadap investasi perangkat lunak yang dibutuhkan. Dengan fasilitas yang dimiliki Linux , maka Linux merupakan alternatif sistem operasi yang patut dilihat terhadap sistem operasi lainnya seperti Windows NT, UNIX , SunOS dan lainnya. Bagi pengguna UNIX , Linux dapat menjadi personal UNIX yang digunakan sebagai sarana pemrograman termasuk pemrograman database dan XWindows. Bagi mahasiswa, Linux merupakan sarana yang dapat digunakan untuk mempelajari lingkungan UNIX yang biasa digunakan oleh perusahaan skala besar. Bagi perusahaan skala kecil dan menengah , Linux dapat menghemat biaya investasi UNIX dengan kemampuan sama. Ingatlah selama ini jika kita menggunakan Windows yang tidak mempunyai lisensi resmi( alias bajakan) kita telah berbuat ilegal. Kenapa katakata Free Software tidak begitu menggema di Indonesia? Ya, karena negara kita sanagat permisif terhadap pembajakan software. Tahukan anda bila harus membeli software Visual Basic secara resmi ? sekitar $2200. Dan satu lagi, Linux versi yang baru sekarang mempunyai GUI( tampilan grafis) yang canggih dan mudah digunakan. Bahkan cukup mudah bagi pemula sekalipun. Sehingga Linux bukanlah lagi suatu barang yang menakutkan bagi pemula sekalipun. Apakah Linux bisa untuk keperluan sehari-hari, pasti ya!. Anda akan takjub bahwa hampir semua kegiatan yang biasa anda lakukan di Windows bisa juga dilakukan di Linux dan halal alias bukan bajakan. Bahkan diLinux anda dapat membuat tampilan anda persis seperti Win 98 atau Mac dengan memilih salah satu desktop theme yang ada.
LINUX SHELL (TERMINAL) DAN PERINTAH DASAR Linux shell merupakan tool berbasis teks untuk berinteraksi dengan komputer. Linux shell sering juga disebut dengan xterm, konsole, terminal, shell command, ataupun shell. Shell ini merupakan antarmuka penghubung user dengan sistem. Shell juga sering disebut dengan interpreter yang mengoperasikan sebuah loop sederhana yakni menerima perintah, menginterpretasikan perintah, menjalankan perintah, dan menunggu perintah masukan berikutnya. Berikut bagan loop interpreter sederhana yang dijalankan oleh shell unix ataupun GNU/Linux
d Pada sistem operasi seperti Ms-Windows dan MacOS, penggunaan shell command sudah mulai dikurangi atau bahkan dihilangkan sama sekali. Pada beberapa sistem operasi seperti yang penulis sebutkan di atas, para penggunanya semakin dimanja dengan penggunaan mode grafis (Graphical desktop) dan tidak memperdulikan lagi penggunaan shell command tersebut. Satu hal yang menarik dari sistem operasi gnu/linux adalah penggunaan shell command tetap dipertahankan karena beberapa alasan berikut: 1. Kebanyakan konfigurasi sistem dapat dilakukan dari shell command. 2. Linux shell memberikan fleksibilitas terutama saat anda bekerja dengan banyak file. 3. Untuk tindakan penyelamatan terhadap sebuah data atau recovery terhadap sistem dan pekerjaan maintenance sistem pada single mode dapat anda lakukan lewat shell command. Untuk memulai shell (terminal), kita dapat mengklik menu :Application Accessories Terminal
Perintah Dasar ls Perintah ls, tanpa parameter, akan menampilkan isi direktori dimana anda berada sekarang. ls -a Menampilkan semua file dan direktori yang ada di direktori dimana anda berada, termasuk file-file hidden. ls -l Menampilkan file-file di direktori sekarang, termasuk (dari kiri ke kanan) : tipe file, permissions, banyaknya hard link, nama pemilik file, nama group, ukuran file dalam byte, dan tanggal kapan file tersebut terakhir disimpan. ls -al Kombinasi dari ls –a dan ls l ls -F Dengan parameter F, akan tampak perbedaan yang mana file, yang mana direktori. Berpindah Direktori Untuk pindah ke suatu direktori digunakan perintah cd Sebelum menggunakan perintah cd, kita lihat terlebih dahulu di direktori mana kita berada sekarang, dengan menggunakan perintah pwd. Perintah pwd (print working directory) akan menunjukkan dimana kita sekarang berada. Misalnya sebagai berikut : debian:/home/rohman# pwd /home/rohman 5
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Mengapa menggunakan Linux Shell?
Membuat Direktori Seperti halnya di DOS, di linux kita juga bisa membuat direktori baru. Perintah yang kita gunakan adalah perintah mkdir . Misalnya kita ingin membuat direktori baru bernama “tkj”, maka perintah yang kita ketikkan adalah : debian:/home/rohman# mkdir tkj debian:/home/rohman# ls Desktop tkj debian:/home/rohman# cat Perintah cat ini menampilkan isi dari suatu file ke standart output (stdout) Syntax : $ cat
Membuat file baru, jika file belum ada :
debian:/home/rohman# cat >>aku.txt baris ini adalah baris pertama. ^D Menambahkan data pada file : debian:/home/rohman# cat>>aku.txt dan ini adalah baris yang kedua ^D cp Mirip dengan copy pada DOS, perintah cp ini berfungsi mengkopi file. Syntax : $ cp [option] file /dir/path/
Untuk lebih jelas silahkan dibaca pilihanpilihannya dengan menjalankan : $ cp help Dari namanya sudah dapat diterka bahwa perintah ini berfungsi untuk mencari file ataupun directory. Syntax : 6
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
OK, setelah kita tahu posisi kita, sekarang kita pelajari perintah cd dan variasinya, sebagai berikut : cd Perintah cd tanpa parameter akan membawa kita ke home directory kita. Karena kita tadi login dengan account "sensei", maka secara default home directory kita adalah /home/sensei cd .. Berpindah ke direktori yang berada satu tingkat di atas direktori sekarang. Misalnya anda sekarang sedang berada di /home/sensei, kemudian anda menjalankan perintah cd .. ,maka anda akan dibawa ke direktori /home cd [nama direktori] Misalnya cd /usr/doc , akan membawa kita berpindah ke direktori /usr/doc cd HOWTO Misalnya kita masih berada di direktori /usr/doc, maka perintah cd HOWTO akan membawa kita ke dalam direktori HOWTO yang berada di dalam direktori /usr/doc, sehingga kita sekarang berada di direktori /usr/doc/HOWTO
$ find /path [option]
Contoh :
debian:/home/rohman# find -name tkj* ./tkj
grep Perintah ini berguna untuk pencarian data di dalam file, penggunaan grep akan lebih mengefisienkan waktu ketimbang harus membaca satu persatu Syntax : $ grep [option] "data" file Contoh : debian:/home/rohman# grep "ini" test ini hanya sebuah test dari output redirection baris ini tambahan dari yang lama... debian:/home/rohman#
ln Kegunaan perintah ini adalah untuk membuat link dari satu file/directori ke file/directori lain Syntax : Contoh : debian:/home/rohman# ln -s test uji debian:/home/rohman# ls l total 2 rwrr1 sensei sensei 102 Nov 9 14:11 test lrwxrwxrwx 1 sensei sensei 4 Nov 10 03:21 uji > test debian:/home/rohman#
Dari contoh dapat dilihat bahwa file uji adalah merupakan link dari file test locate. Perintah ini digunakan untuk mengetahui dimana letaknya sebuah file atau directori. Fungsinya kurang lebih sama dengan find, bedanya locate menggunakan sebuah database (biasanya terletak di var/lib/locatedb ) yang dapat di update menggunakan perintah updatedb. Syntax : # locate <something> Contoh : debian:/home/rohman# locate uji /home/rohman/uji debian:/home/rohman# mkdir Perintah mkdir ekivalen dengan md (make directory) pada DOS yang berguna untuk membuat sebuah directory. Syntax : $ mkdir
7
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
$ ln s /path/to/source target
mv Perintah ini mirip dengan perintah move pada DOS yang berguna untuk memindahkan file dari satu directory ke directory lainnya, atau juga dapat digunakan sebagai pengganti nama file (ren/rename pada DOS) Syntax : $ mv file1 file2
rm dan rmdir Perintah rm adalah perintah untuk menghapus file. Untuk directory dapat digunakan rmdir Syntax : $ rm $ rmdir
Untuk menghapus direktori sekaligus menghapus seluruh isi yang ada di dalamnya, baik file maupun sub folder kita bisa menggunakan perintah : $ rm -r
mount Setiap device dalam linux agar dapat diakses harus terlebih dahulu dimount atau dikaitkan. Syntax : Contoh :
# mount /dev/hda1 /media/disk
ps Perintah ini digunakan untuk melihat setiap proses yang dijalankan di dalam mesin beserta nomor prosesnya. Syntax : $ ps [option]
kill Perintah kill (mematikan) sesuai namanya adalah berfungsi untuk mengirimkan signal ke suatu proses. Sehingga bisa memerintahkan apakah suatu proses ditunda, dihentikan atau dilanjutkan. Tetapi paling sering digunakan untuk mematikan proses yang sedang berjalan. Syntax : $ kill <nomorprosesnya>
adduser, passwd dan userdel Perintah adduser dan userdel adalah file-file untuk administrasi user. adduser digunakan untuk menambahkan user pada suatu mesin. Kemudian setelah ditambahkan ditentukan password user yang baru tersebut dengan perintah passwd. Sedangkan userdel digunakan untuk menghapus user di mesin. Untuk menjalankan perintahperintah ini diperlukan root priviledge. Syntax : # adduser # passwd # userdel [r]
8
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
# mount [option] /dev/<devicefile> /path/to/mountdir
Cal Untuk menampilkan calendar rohman@debian:~$ cal November 2010 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 rohman@debian:~$ du untuk menampilkan kapasitas oleh direktori tertentu, tambahkan opsi –k agar ditampilkan dalam satuan kb (kilobyte). contoh: # du –k
uname Menampilkan informasi sistem operasi yang digunakan pada system Shutting down. Men shut down Linux dapat dilakukan dengan berbagai cara. Tetapi proses sebenarnya adalah mengirim sinyal pada semua proses untuk menghentikan kegiatannya (contoh: menyimpan dan menutup semua file). Cara pertama adalah dengan perintah shutdown # shutdown –t time contoh : # shutdown -h now time disini adalah waktu untuk menghentikan sistem. Warning message adalah pesan yang dikeluarkan pada terminal sebelum shut down. Agar shutdown secepatnya time disini kita isi ‘now’. –r bisa kita tambahkan untuk mereboot setelah shutdown. Perintah halt dapat digunakan untuk menshutdown secepatnya tanpa pesan apapun. Halt berguna pada saat untuk menshutdown dan mematikan linuxbox kita. Jangan menekan tombol power sebelum terdapat pesan : Power Down . Three Finger Salute (ctrl+alt+del) juga dapat mereboot linux box secepatnya.
APLIKASI DASAR Seperti juga pada MS Windows, untuk Linux maupun semua varian UNIX terdapat editor file yang dinamakan vi atau vim (vi improved with syntax color highlighting). Selain vi terdapat program editor lain yang lebih mudah pemakaiannya serperti pico, joe, jove, mc (midnight commander), dll. Pada bab ini, akan dikenalkan bagaimana menggunakan editor vi, joe, pico dan mc. Vim merupakan pengembangan dari editor vi yang mempunyai keunggulan dalam penggunaan warna. Vi merupakan editor yang paling terkenal di dunia UNIX. Vi ialah kepanjangan dari "Visual" editor. Vim mendukung penggunaan warna untuk menandakan kode program dan juga penanda teks seperti penggunaan huruf normal, tebal maupun cetak miring. Untuk menjalan perintah vi, kita gunakan sintaks sbb : 9
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
clear Membersihkan layar
vi Status vi Editor vi mempunyai 3 mode, yaitu : command mode : untuk menggunakannya tekan ESC terlebih dahulu. input mode : dengan mengetikkan perintahperintah yang spesifik, seperti a I o 0 dan diakhiri dengan ESC atau dengan interrupt. line mode : suatu keadaan setelah ada proses input : ?, /, ! Notasi yang digunakan CTRL-c, CTRL adalah tombol control pada keyboard, sehingga CTRLc berarti "control c". CR (Carriage Return) ialah tombol enter.
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Figure 2 Perintah Vi untuk manipulasi file
10
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Figure 3 Perintah Vi untuk pergerakan cursor
Figure 4 Perintah Vi untuk penghapusan
11
Figure 5 Perintah cari dan ganti
Pico / nano Pico adalah teks editor jenis lain yang berdasarkan pada program compose email Pine. Navigasi untuk perintahnya diletakkan di bawah dari layar. Semua karakter yang diketik langsung disisipkan ke dalam teks. Perintah untuk menjalankan editor pico adalah sbb : pico
12
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Figure 6 Perintah lainnya
KONFIGURASI PROXY SERVER
Illustration 1: Contoh Desain Jaringan Proxy Server
Gateway Internet Gateway internet merupakan pintu gerbang keluar masuknya data dari jaringan internal (LAN) ke jaringan luar (internet) dan sebaliknya. Proxy Server bisa disebut juga dengan Gateway Internet, namun proxy lebih powerfull karena dapat bertindak sebagai web caching. Manfaat Gateway/Proxy Server : • Membagi koneksi internet, supaya bisa dipakai oleh banyak orang . • Keamanan jaringan internal, agar tidak terekspos ke internet. • Memonitor dan mencatat transaksi dan lalulintas data yang dilakukan user ke internet. • Web caching, yakni menyimpan bagian-bagian statis dari suatu website pada hardisk server, untuk dipergunakan di masa mendatang.
13
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Dalam dunia jaringan komputer (Computer Networking), Proxy Server adalah sebuah komputer Server (Computer atau sebuah aplikasi server) yang bekerja mewakili/menghubungkan request dari komputer client ke komputer server lain (internet). Proxy Server bekerja dengan mengevaluasi koneksi yang datang dan koneksi yang dituju berdasarkan konfigurasi yang sudah ditentukan (filter). Mungkin bisa membatasi koneksi yang masuk berdasarkan IP Address, port Protocol , dan URL. Jika request sudah di validasi dan dinyatakan tidak termasuk koneksi yang diblokir, maka access akan diteruskan ke server lain (internet) yang direquest oleh client. Sebagian besar Proxy adalah Web Proxy, digunakan untuk mengakses kontent world wide web.
Kebutuhan perangkat keras dari sebuah gateway internet bisa dikatakan relatif, sesuai dengan skala jaringan yang akan ia tangani. Meski demikian, untuk skala kecil dan ketersediaan perangkat keras yang terbatas, maka sebuah Gateway Internet cukup menggunakan Personal Komputer kelas Pentium III dengan hardisk 8 GB dan ram 64. Malah dalam kasus yang lebih parah lagi, penggunaan komputer dibawah spesifikasi tersebut juga dimungkinkan. Hanya tentu saja kemampuannya pun akan sesuai dengan kelas perangkat keras yang digunakan. Dalam operasionalnya nanti, sebuah komputer yang bertindak sebagai Gateway Internet, akan menjalankan fungsi caching. Singkatnya, caching ialah tempat menyimpan bagian-bagian tertentu, biasanya bagian yang statis seperti gambar, banner, dsb, dari sebuah website. Dengan caching ini, maka pemakaian jalur internet bisa dihemat, karena untuk data tertentu yang telah disimpan di cache, tidak akan diambil ulang dari internet. Ketika menjalankan fungsi caching, maka komputer Gateway Internet akan menyimpan data tersebut pada hardisknya. Oleh karena itu, besarnya alokasi hardisk perlu ditentukan. Ada sebuah rumusan, meski rumusan ini bukanlah sesuatu yang baku, namun bisa digunakan untuk mengalokasikan besarnya space hardisk untuk cache. Rumusnya ialah 1:32 dari RAM. Jadi kalau sebuah server menggunakan RAM sebesar 256 MB, maka besarnya kapasitas hardisk untuk cache adalah 32 x 256 = 8192 MB, atau sekitar 8 GB. Kebutuhan Perangkat Lunak : • • • • •
• • •
Squid cache, merupakan perangkat lunak populer yang banyak di gunakan pada proxy server berbasis Linux/UNIX Apache HTTP Server, aslinya program ini digunakan untuk web server. Namun demikian, program ini mempunyai fitur proxy server yang bisa di aktifkan. WinGate, adalah program berbasis Microsoft Windows yang banyak digunakan sebagai proxy server. Wingate mempunyai fitur proxy server, NAT (Network Adress Translation), firewall, VPN bahkan bisa sekaligus difungsikan sebagai mail server. Microsoft Internet Security and Acceleration Server, adalah program yang beroperasi pada Windows 2000/ 2003 server. Program ini dapat berfungsi sebagai Proxy server sekaligus firewall Program-program sejenis lainnya seperti, Blue Coat’s, Private Proxy, Privoxy, JAP, Tor, Proxomitron, PHProxy, The HTTP-Tunnel, SJSWebProxy,Nginx, yProxy, PingFu, Zelune, WWWOFFLE.
Dalam buku ini kita menggunakan OS Debian (Free Open Source), dengan menggunakan aplikasi bawaan yaitu squid.
14
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
Kebutuhan Perangkat Keras :
Langkah-Langkah Membangun Proxy Server :
dari gambar di atas, dapat kita lihat bahwa komputer yang kita gunakan memiliki 2 buah kartu jaringan, karena kita nantinya akan menggunakan dua buah kartu jaringan sehingga kartu yang dipakai adalah eth0 dan eth1, dimana eth0 yang terkoneksi dengan jaringan luar (internet), sedangkan eth1 terkoneksi dengan jaringan lokal.
Untuk mengkonfigurasi ip address melalui CLI (Command Line Interface) kita dapat ketikkan perintah : 15
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
1. Pastikan OS Debian sudah terinstal dengan benar 2. Setting IP Address Computer Transparent Proxy Sebelum kita melakukan instalasi dan sekaligus konfigurasi squid, kita perlu melakukan konfigurasi tcp/ip masing-masing ethernet yang akan kita gunakan. Sesuai dengan desain jaringan yang akan kita buat, maka untuk membangun sebuah Proxy server kita membutuhkan 2 buah kartu jaringan. Dalam sistem Linux kartu jaringan yang sudah dikenali akan diberi nama eth0 dan eth1 (jika ada dua kartu jaringan), namun jika ada 3 buah kartu jaringan, maka berturut-turut kartu jaringan yang kita gunakan akan diberi nama eth0, eth1, dan eth2. Untuk melakukan pengecekan atau melihat konfigurasi kartu jaringan kita ketikkan : $ su # ifconfig hasilnya :
# nano /etc/network/interfaces perintah tersebut adalah untuk melakukan editing file “interfaces” menggunakan aplikasi editor yaitu nano, setelah itu ketikkan kode-kode berikut ini : auto eth0 iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0
auto eth1 iface eth1 inet static address 192.168.2.1
Kemudian simpan hasil konfigurasi dengan cara menekan tombol ctrl+o, tekan enter, kemudian tekan tombol ctrl+x untuk keluar dari nano. Maksud dari perintah tersebut yaitu mengkonfigurasi kartu jaringan eth0 dengan IP Address 192.168.1.1, dan kartu jaringan eth1 dengan IP Address 192.168.2.1. Agar konfigurasi tersebut dapat diaplikasikan oleh system, maka kita perlu melakukan restart kartu jaringan dengan cara mengetikkan perintah : # /etc/init.d/networking restart setelah itu, cek apakah konfigurasi IP Address benar-benar sudah diaplikasikan, ketikkan perintah ifconfig untuk mengetahui hasil konfigurasi. 3. Melakukan instalasi squid proxy server untuk melakukan instalasi squid, cukup kita ketikkan perintah : # apt-get install squid jika ada peringatan yang memerintahkan kita agar memasukkan DVD Debian 1, maka masukkan DVD installer debian 1, kemudian tekan enter.
16
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
netmask 255.255.255.0
Setelah itu tambahkan tanda pagar (#) di awal baris code : http_access deny all menjadi # http_access deny all code di atas maksudnya agar semua user dapat menggunakan proxy yang sudah kita bangun, karena secara default squid memblokir semua pengguna proxy dari komputer manapun. Tambahkan pula code berikut agar client kita dapat melewati proxy: acl jaringanku src 192.168.0.0/16 http_access allow jaringanku Setelah itu buat baris baru di bawahnya kemudian ketikkan code berikut : acl situs_terlarang url_regex -i "/etc/squid/blokiran.txt" http_access deny situs_terlarang Maksud dari code tersebut adalah, kita membuat suatu aturan (acl / Access Control List) yang kita beri nama situs_terlarang dimana semua aturan itu diambil dari url yang direquest oleh client ketika browsing. Sedangkan code http_access deny situs_terlarang, maksudnya adalah kita akan melakukan pemblokiran terhadap semua situs yang mengandung url yang dimuat di file /etc/squid/blokiran.txt. Misalkan kita memasukan kata-kata facebook.com di dalam file blokiran.txt, berarti semua situs yang alamat url-nya mengandung kata-kata facebook.com akan diblokir.
17
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
4. Mengkonfigurasi Squid Squid memiliki file konfigurasi yang terletak di /etc/squid/squid.conf, sehingga kita dapat mengkonfigurasinya dengan mengetikkan perintah : # nano /etc/squid/squid.conf bagian-bagian yang harus di-edit adalah : - port - control access list (acl) untuk setting port, carilah baris “http_port 3128” (tanpa tanda kutip) dengan cara menekan tombol ctrl+w kemudian ketikkan kata yang akan dicari lalu tekan enter: http_port 3128 karena kita nantinya akan membangun transparent proxy, maka kita ubah code tersebut menjadi : http_port 3128 transparent transparent proxy maksudnya kita membangun proxy yang langsung dapat digunakan oleh client tanpa harus melakukan konfigurasi terhadap client satu per satu. Karena pada umumnya proxy dapat bekerja dengan cara melakukan konfigurasi di web browser computer client terlebih dahulu.
Gimana kalau kita melakukan pemblokiran terhadap situs yang lain? Kita tinggal menambahkan alamat situsnya dengan cara /etc/squid/blokiran.txt, yaitu melalui langkah-langkah sebagai berikut: # nano /etc/squid/blokiran.txt
mengedit
file
5. Melakukan konfigurasi NAT (Network Address Translation) / Masquerade Agar komputer Transparent Proxy dapat berfungsi dengan baik, maka kita harus mengkonfigurasi komputer Proxy server kita sebagai gateway, yaitu memiliki kemampuan meneruskan paket data dari komputer segment ke satu ke segment yang lain (jaringan ke jaringan). Berikut cara mengkonfigurasi Masquerade/NAT di sistem Linux : # nano /etc/rc.local tambahkan code berikut (sebelum code exit 0) :
Baris perintah ke-1 dan ke-2 maksudnya adalah, kita mengkonfigurasi system agar dapat melakukan masquerade / nat dimana semua koneksi dari kartu jaringan akan diteruskan ke kartu jaringan eth0, yaitu kartu jaringan yang terhubung dengan internet. Sebagaimana skema jaringan yang sudah kita rancang bahwa eth0 adalah interface yang berhubungan dengan jaringan internet, karena nantinya semua client yang terkoneksi melalui kartu jaringan eth1 harus terkoneksi ke internet melalui kartu jaringan eth0, maka code disini kita tulis -o eth0 (output ke eth0). Baris yang ke-3 maksudnya, semua koneksi yang datang, terutama yang menggunakan port 80 akan diubah ke port 3128. kita tahu bahwa port 3128 adalah port squid proxy, sedangkan port 80 adalah port http. Sehingga nantinya setiap client yang browsing ke internet akan di arahkan semuanya ke proxy server, meski client tidak melakukan konfigurasi apapun. Asalkan client dikonfigurasi default gatewaynya ke alamat IP Proxy kita (IP Address eth2). 6. Restart Komputer Proxy Kita dapat melakukan restart dengan mengetikkan perintah : # shutdown -r now 7. Setting Computer Client Client terkoneksi dengan Proxy server menggunakan kartu jaringan eth1, dimana kartu jaringan eth1 sudah kita konfigurasi dengan IP Address : 192.168.2.1 dan subnetmask 255.255.255.0. Sehingga Client dapat menggunakan IP Address mulai dari 192.168.2.2 – 192.168.2.254 dengan subnetmask 255.255.255.0 dan jangan lupa Default Gateway kita setting 192.168.2.1 (IP Proxy Server). 18
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
echo “1” > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -p tcp -–dport 80 -j REDIRECT -–to-port 3128
Client Menggunakan OS Linux buka terminal kemudian ketikkan perintah : $ su nano /etc/network/interfaces setelah itu ketikkan code berikut : auto eth0 iface eth0 inet static address 192.168.2.2 netmask 255.255.255.0 gateway 192.168.2.1 dns-nameserver 192.168.2.1
Client Menggunakan OS Win XP Klik menu Start- Control Panel – Network Connection pada kartu jaringan LAN / Local Network, lakukan klik-kanan terus klik menu Properties Isikan IP Address : 192.168.2.2 Subnet Mask : 255.255.255.0 Default Gateway : 192.168.2.1 Prefereed DNS Server : 192.168.2.1 8. Uji Coba Transparent Proxy Server Hasil setting-an kita! Buka web browser pada komputer Client, buka halaman internet seperti google.com, yahoo.com dst.. jika halaman page yang direquest muncul, maka kita sudah berhasil melakukan konfigurasi transparent proxy server. Sebelum melakukan uji coba di komputer client, kita perlu melakukan uji coba dulu di komputer proxy kita, browsing-lah melalu komputer proxy, jika berhasil, baru kita lakukan uji coba di komputer client. 9. Bersyukur kepada Allah Swt atas ilmu yang sudah diberikan-Nya..... suatu kebahagiaan tersendiri ketika kita mempelajari suatu ilmu dan kita berhasil menguasainya....
19
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
catatan : code tersebut sesuaikan dengan nama kartu jaringan di komputer masingmasing, misalnya nama kartu jaringan yang dipakai adalah eth2, maka tinggal ganti code eth0 menjadi eth2 restart kartu jaringan : # /etc/init.d/networking restart
~Special Thanks~ http://distrowatch.com Penyusun Buku : Modul Praktikum Jaringan Komputer Sistem Informasi dan Jaringan Komputer Universitas Islam Indonesia Mr. M. Charis, S.Pd, selaku Guru besar-Q (yang ngajar AQ Komputer doloe) Mr. Zamroni Masjid Z., S.Pd selaku Kaprodi yang selalu mensupport untuk maju!
~Persembahan buat!~
Mother Atun Susanty (alm), may you are fine there…. Father… Syamsul Huda that always support me.... My honey Ai…. Who Gave me all inspiration to understanding Linux System My Brothers…. Syaiful Anam, M. Shohib, M. Lazim That support me always….! Siswa-Siswi TKJ SMK Muhammadiyah 5 Babat yg lucu-lucu, pinter-pinter dan yg ndua-bleg!
“Ilmu tidak akan pernah habis untuk di-eksplorasi, walau kita habiskan seluruh umur kita untuk menuntut ilmu” Tanamkan dalam hati bahwa dirimu amat suka membaca, dan suka mempelajari sesuatu (jiwa pelajar).
20
Membangun Proxy Server dengan Debian Linux::: ICT SMK Muhammadiyah 5 Babat
~ Pesan ~