http://lhokseumaweblogger.blogspot.com/2011/03/membangun-proxy-server-denganubuntu.html Proxy dapat dipahami sebagai pihak ketiga yang berdiri ditengah-tengah antara kedua pihak yang saling berhubungan dan berfungsi sebagai perantara, sedemikian sehingga pihak pertama dan pihak kedua tidak secara langsung berhubungan, akan tetapi masing-masing berhubungan dengan perantara, yaitu Proxy. Sebuah analogi; bila seorang mahasiswa meminjam buku di perpustakaan, kadang si mahasiswa tidak diperbolehkan langsung mencari dan mengambil sendiri buku yang kita inginkan dari rak, tetapi kita meminta buku tersebut kepada petugas, tentu saja dengan memberikan nomor atau kode bukunya, dan kemudian petugas tersebut yang akan mencarikan dan mengambilkan bukunya. Dalam kasus diatas, petugas perpustakaan tersebut telah bertindak sebagai perantara atau Proxy. Petugas tersebut juga bisa memastikan dan menjaga misalnya, agar mahasiswa hanya bisa meminjam buku untuk mahasiswa, dosen boleh meminjam buku semua buku, atau masyarakat umum hanya boleh meminjam buku tertentu. Mungkin proses tersebut menjadi lebih lama dibandingkan bila kita langsung mencari dan mengambil sendiri buku yang kita inginkan. Namun bila saja setiap kali petugas mencari dan mengambil buku untuk seseorang, si petugas juga membuat beberapa salinan dari buku tersebut sebelum memberikan bukunya kepada orang yang meminta, dan menyimpannya di atas meja pelayanan, maka bila ada orang lain yang meminta buku tertentu, sangat besar kemungkinan buku yang diminta sudah tersedia salinannya diatas meja, dan si petugas tinggal memberikannya langsung. Hasilnya adalah layanan yang lebih cepat dan sekaligus keamanan yang baik. - pertama setting dulu Gateway-nya Internet Gateway dapat didefinisikan sebagai gerbang internet atau gerbang yang menjadi perantara sehingga jaringan internet dapat diakses di jaringan lokal. Untuk membuat internet gateway tidak lepas dari router, dalam hal ini PC yang dijadikan sebagai router yang dikenal dengan istilah PC Router. Untuk tutorial kali ini bentuk topologi jaringan internet gateway adalah seperti berikut : MODEM ROUTER — eth1 | PC | eth0 — CLIENT Sistem operasi yang gunakan adalah Linux Ubuntu Server 10.04, bukan berarti linux lain gak bisa .. Langkah-langkah : • • •
Pasang PC dan peralatan yang dibutuhkan sesuai dengan topologi di atas Install sistem operasi Ubuntu Server 10.04 pada PC Login sebagai Administrator atau Super User
safrizal@tkj:~$sudo su [sudo] password for safrizal: •
Masukkan password root kemudian enter, sehingga tampilan menjadi
root@tkj:/home/safrizal# •
Konfigurasi IP Address yang akan digunakan menggunakan editor nano atau editor lainnya.
root@tkj:/home/safrizal#nano /etc/network/interfaces •
Ketik konfigurasi berikut pada editor nano
auto lo iface lo inet loopback auto eth0 address 192.168.100.2 netmask 255.255.255.0 network 192.168.100.0 broadcast 192.168.100.255 gateway 192.168.100.1 auto eth1 address 192.168.2.1 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.1 •
Simpan file, kemudian restart service network agar supaya setting yang baru dapat dikenali oleh sistem operasi dengan mengetikkan perintah :
root@tkj:/home/safrizal#/etc/init.d/networking restart * Reconfiguring network interfaces ... •
[ok]
Cek konfigurasi ip untuk eth0 dan eth1 dengan menggunakan perintah
root@tkj:/home/safrizal#ifconfig
Setelah tahapan setting IP Address sesuai topologi, selanjutnya tahap routing sebagai berikut : •
Edit file sysctl.conf
root@tkj:/home/safrizal#nano /etc/sysctl.conf •
Tambahkan baris berikut
net.ipv4.conf.forwarding=1 •
Ubah value file ip_forward menjadi 1
root@tkj:/home/safrizal#echo “1″ > /proc/sys/net/ipv4/ip_forward •
Buat routing untuk menjadikan eth0 sebagai jembatan dari eth1 ke luar.
root@tkj:/home/safrizal#/sbin/iptables -t nat -A POSTROUTING -s 192.168.20.0/255.255.255.0 -d 0/0 -j MASQUERADE
Jangan lupa memasukkan IP DNS dari ISP yang anda gunakan, langkah-langkah sebagai berikut : •
Edit file resolv.conf
root@tkj:/home/safrizal#nano /etc/resolv.conf •
Tambahkan baris berikut dengan IP DNS dari ISP Anda (contoh DNS Smart)
nameserver 123.108.97.20 nameserver 123.108.97.33
Agar supaya settingan yang telah dibuat dapat berjalan pada saat komputer di restart, simpan konfigurasi ke file rc.local root@tkj:/home/safrizal#nano /etc/rcl.local
Tambahkan/edit file tersebut menjadi : exit=0 echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/iptables -t nat -A POSTROUTING -s 192.168.100.0/255.255.255.0 -d 0/0 -j MASQUERADE
Simpan, kemudian restart komputer root@tkj:/home/safrizal#reboot
- setting DHCP install terlebih dahulu dhcp-nya #apt-get install dhcp3/-server
kemudian edit dhcp server-nya untuk mengkonfigurasinya #nano /etc/default/dhcp3-server
cari INTERFACES=”" ganti dengan INTERFACES=”eth0″ (lihat intervace yang ingin dibuat DHCP) simpan dan keluar Metode Address Pool langkah selanjutnya buka file
#nano /etc/dhcp3/dhcpd.conf
ganti konfigurasi seperti dibawah subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.10 192.168.100.255; /option domain-name-servers 123.108.97.20, 12//////3.108.97.33; option domain-name "warnet.my"; option routers 192.168.100.1; option broadcast-address 192.168.0.255; default-lease-time 600; max-lease-time 7200; }
simpan kemudian keluar. Konfigurasi diatas berarti Server DHCP menyiapkan IP address antara 192.168.100.1192.168.100.255, Gateway 192.168.100.1, DNS 123.108.97.20 dan 123.108.97.33 Setelah selesai restart service DHCP.
#/etc/init.d/dhcp3-server restart
sudah selesai deh instalasi server DHCPnya.
- tahap konfigurasi proxy Pertama-tama install terlebih dahulu squid melalui synaptic atau melalui command prompt dengan cara : #apt-get install squid Setelah selesai maka Squid langsung dapat di konfigurasikan dengan cara : #nano /etc/squid/squid.conf Tetapi sebelum di edit terlebih dahulu backup dulu file aslinya agar kalau rusak bisa dikembalikan ke default : #cp /etc/squid/squid.conf /etc/squid/squid.conf.bak 2. Konfigurasi Squid Selanjutnya konfigurasi script Squid : #nano /etc/squid/squid.conf Akan muncul file konfigurasi squid yang sangat panjang, berikut langkah-langkah yang harus diperhatikan…. a. HTTP Port : Merupakan port yang digunakan untuk menjalankan Squid http_port 8080 b. Visible Host Name : Agar jika terjadi error Squid dapat menemukan hostname yang valid visible_hostname localhost localhost bisa diganti menjadi ip (e.g 192.168.0.254) atau domain seperti proxy.anu.com c. Cache Manager : Untuk mendefinisikan email address dari Cache Manager Squid cache_mgr
[email protected] d. Direktori Cache Squid : Mendefinisikan letak direktori squid beserta besarannya. Angka 500 menunjukkan ukuran direktori dalam MB Angka 16 menunjukkan jumlah sub direktori tingkat 1 Angka 256 menunjukkan jumlah subdirektori tingkat 2 dari subdirektori tingkat 1 Jumlah diatas makin besar makin baik cache_dir ufs /var/spool/squid 500 16 256 e. Filtering : Ini merupakan bagian terpenting dari Squid, dengan ini kita bisa mngatur rulerule, dari mulai siapa saja yang bisa mengakses internet sampai website apa yang diizinkan untuk di akses. Access List : Siapa saja yang dapat mengakses Internet acl akses src 192.168.1000.1/255.255.255.0 acl : merupakan perintah access list akses : nama user yang memiliki IP atau group src : merupakan source ip yang digunakan, bisa menggunakan range jika ingin membuat group acl group-it src 192.168.100.10-192.168.0.255/255.255.255.0 Filtering Waktu : Memberikan izin akses berdasarkan waktu dan hari acl waktu-akses time MTWHFA 08:00-16:00 acl : perintah access list waktu-akses : caption untuk perintah acl time : perintah squid utk mendefinisikan waktu MTWHFA : merupakan perintah squid untuk mendefinisikan waktu M : Monday, T : Tuesday, etc….. 08:00-16:00 : Merupakan waktu yang diperbolehkan untuk memberikan akses internet ke pengguna
Filtering Website : Memfilter website apa saja yang tidak boleh diakses oleh pengguna. Sebelumnya harus dibuat dulu suatu dokumen yang berisikan list-list url yang akan diblock, dengan perintah #nano /etc/squid/pornourl.txt kemudian isikan dengan : www.worldsex.com www.17tahun.com dll Lalu berikan perintah squid pada file Squid.conf dengan perintah : acl blokporno dstdomain “/etc/squid/pornourl.txt” Filtering Keyword : Memfilter keyword yang dimasukkan oleh para pengguna, misalkan pengguna memasukkan kata ’sex’ di google maka Squid akan membloknya. Sebelum menambahkan perintah di Squid.conf, kita harus membuat file yang berisikan keyword-keyword yang akan diblok dengan perintah : #nano /etc/squid/keywordblock.txt Lalu isi dengan kata-kata yang akan di blok : sex porn fuck dll…. Dan berikan perintah di Squid.conf dengan perintah : acl keywordblok url_regex -i “/etc/squid/keywordblock.txt” Perintah-perintah filter ini cukup untuk membuat Squid Server sederhana, Selanjutnya memberikan hak akses pada aturan-aturan yang telah dibuat sebelumnya. Di Squid perintahnya dinamakan http_access. Perintahnya adalah sebagai berikut : http_access deny blokporno # men-deny semua url yang terdapat pada acl blokporno http_access deny keywordblock # men-deny keyword yang ada pada acl keywordblock http_access waktu-akses aku # Memperbolehkan acl waktu-akses pada acl user aku http_access deny all # Men-deny semua user yang tidak terdaftar pada squid.conf http_reply_access allow all #default icp_access allow all #default Kemudian jangan lupa men-save file konfigurasi squid.conf yang telah diedit dengan menggunakan perintah : :wq #w : menyimpan q: keluar (Perintah vi) Lalu pada command terminal anda ketikan perintah ; #sudo squid -z f. Transparent Proxy Merupakan suatu teknik agar Squid Proxy menjadi transparent atau tidak terlihat, maksudnya jika biasanya kita memasukkan alamat proxy pada setiap browser (firefox, etc..), jika transparent proxy diterapkan maka pada browser tidak akan kelihatan kita memasukkan alamat proxy kita. Sebelum memasukkan perintah transparent proxy pada squid, maka kita harus melakukan perintah iptable agar dapat meredirect port yang ada pada komputer client. Maksudnya jika squid kita set pada port 3128, maka permintaan client yang umumnya internet itu berada pada port 80 maka kita harus meredirect port 80 dari client tersebut ke port proxy kita yang berada pada port 3128. IP Forwarding, agar transparent proxy dapat diterapkan, maka kita harus mengaktifkan Ip Forwarding dengan memberikan nilai 1 pada file “/proc/sys/net/ipv4/ip_forward” dengan cara :
#sudo echo 1 > /proc/sys/net/ipv4/ip_forward Tetapi perintah tersebut harus kita jalankan auto startup, agar jika komputer squid mati kita tidak perlu repot2 menjalankan perintah tersebut secara terus menerus. Berikutnya kita harus menjalankan ip_tables agar client dapat meredirect port squid server kita dengan perintah : #sudo iptables -A PREROUTING -t nat -p tcp –dport 80 -j REDIRECT –to-port 8800 Kemudian restart proxy dengan perintah : #sudo /etc/init.d/squid restart