/* Ads dari Propeller -------------------------- */ Warung Internet

Proxy Server Transparan di Suse

Setelah membangun sebuah router maupun 3 buah router dengan OpenSUSE 11.1, saatnya menikmati liburan lebarancelebrate tetapi sekarang sudah efektif kembali. Saatnya membukan lembaran baru, semangat baru, dan lebih bersikap terbuka. Kembali topik permasalahan, yang perlu dibuat selanjutnya adalah Proxy. Hmm.. apaan tuh proxy pikir?

Proxy server adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari Internet atau Intranet. Proxy server tidak terlihat oleh client, seorang pengguna yang berinteraksi dengan internet melalui sebuah proxy server tidak akan mengetahui bahwa sebuah proxy server sedang menangani request yang dilakukannya. Pada distro OpenSUSE ini menggunakan squid versi 2.7. Squid sendiri merupakan aplikasi (software) yang digunakan dalam proxy.

Sudah siap bereksperimen pikir? Kalau belum, marisini coba baca kembali Membangun Router dengan OpenSUSE 11.1 dan Menggabungkan 3 Router di Suse, insya Allah akan membantu. Well, langkah-langkahnya sebagai berikut :

  1. Install terlebih dahulu paket squid pada Yast >> Software >> Software Manajemen. Pada kolom Phrase, ketik squid, lalu pilih squid 2.7 >> Accept / OK
  2. Edit squid dengan perintah
    mcedit /etc/squid/squid.conf atau vi /etc/squid/squid.conf
    Namun kali ini, saya menggunakan vi
  3. Perlu diperhatikan bahwa, terdapat banyak script di dalam squid.conf. Namun tidak semuanya berupa perintah. Baris script yang didahului dengan tanda pagar (#) bukan merupakan perintah, dapat berupa informasi, pemberitahuan, contoh, judul dan sebagainya. Jadi script yang tidak didahului tanda pagar (#) dapat dipastikan berupa baris perintah yang dijalankan oleh system. Terdapat pengeculian, suatu kondisi dimana terdapat beberapa script seperti berikut:
    # Default:
    # cache_mem 8 MB
    Artinya: seharusnya script di atas tidak berjalan sebagai perintah, karena terdapat tanda pagar di depannya. Tapi sebenarnya script tersebut berjalan secara default, tapi bila ingin mengganti default 8 MB, misal 16 MB, harus menghapus tanda pagar. Bila tidak, baris perintah tersebut akan tetap bekerja secara default, walaupun telah diubah.
  4. Cari “# http_port 3128”, lalu tambahkan kata transparent sesudahnya. Sehingga jadi seperti berikut, # http_port 3128 transparent
  5. Cari “# cache_mem 8 MB”. Gantilah nilai 8 sesuai dengan ½ kapasitas memori yang ada. Lalu hilangkan tanda pagar di depannya.Misal, menjadi cache_mem 512 MB
  6. Cari “# cache_dir ufs /var/cache/squid 100 16 256”. Gantilah angka 100 sesuai dengan kapasitas harddisk yang tersedia, misalnya ½ bagiannya.
  7. Tambahkan network kita, yang letaknya di bawah acl localnet src 192.168.0.0/24. Misalkan nama network adalah belajar dengan range IP Address 192.168.15.0/24, akan menjadi seperti, acl belajar src 192.168.15.0/24
  8. Tambahkan beberapa fasilitas pembatasan akses client. Umumnya yang sering ditambahkan adalah blok situs tertentu, blok kata tertentu, blok situs dengan nomor IP tertentu, dan pengecualian terhadap suatu situs/kata terhadap blok kata/situs. Letakkan di bawah acl CONNECT method CONNECT.
    Misalkan, (ada 4 perintah yang ditambahkan)
    acl kecuali dstdomain “/etc/squid/kecuali.txt”
    acl = acl (access control list) adalah daftar pengontrolan untuk melihat layanan yang dapat diakses atau yang tidak dapat diakses
    kecuali = fasilitas yang dapat ditambahkan (nama bebas)
    dstdomain = berhubungan dengan domain, sedangkan url_regex berkaitan dengan kata, dan dst berkaitan dengan alamat IP
    “/etc/squid/…. = lokasi penyimpanan file
    kecuali.txt” = nama file
    acl kata url_regex -i "/etc/squid/kata.txt"
    acl situs dstdomain "/etc/squid/situs.txt"
    acl ip dst "/etc/squid/ip.txt"

  9. Sertakan/tulis hak akses pada network yang telah dibuat. Ingat nama network yang telah dibuat adalah belajar. Letakkan di bawah http_access allow localhost, letaknya sekitar line 654. Tulis dibawahnya http_access allow belajar
  10. Sertakan/tulis hak akses pada fasilitas-fasilitas yang telah dibuat. Kata allow berarti boleh/diperbolehkan, sedangkan deny berarti dilarang/tidak diperbolehkan. Letakkan di bawah # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS. Tambahkan beberapa perintah berikut (sesuai no. 8)
    http_access allow kecuali
    http_access deny kata
    kecuali http_access deny situs
    kecuali http_access deny ip
  11. Masuk pada directory /etc/squid, lalu buat file-file dari fasilitas yang ingin dibuat. Dari setiap file, minimal harus terisi sebuah objek tertentu. Misalkan pada kata, harus terdapat kata tertentu untuk diblokir. Jadi, sesuai dengan rangkaian di atas, wajib ditambahkan 4 file yaitu kecuali.txt, kata.txt, situs.txt dan ip.txt. Masing-masing dengan perintah vi kecuali.txt, vi kata.txt, vi situs.txt dan vi ip.txt
  12. Restart squid lalu stop kembali squid dengan perintah
  13. rcsquid restart (untuk restart)
    rcsquid stop (untuk stop)
  14. Buat partisi swap (Squid harus dalam keadaan mati, perintah nya rcsquid stop. Perintah ini hanya digunakan sekali), perintah yang digunakan adalah
  15. squid -z
  16. Lakukan routing kembali (prerouting) dengan perintah
  17. iptables -t nat -A PREROUTING -s 192.168.15.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
  18. Rekonfigurasi squid (perintah ini digunakan untuk setiap kali squid.conf di edit / di utak-atik) dengan perintah:
  19. squid –k reconfigure
  20. Save dengan perintah
  21. iptables-save > /etc/sysconfig/iptables
  22. Restart squid dan network dengan perintah
  23. rcsquid restart dan rcnetwork restart
  24. Hingga di sini client sudah dapat mengakses initernet dengan mengalihakan port 80 (http) menuju port 3128 (proxy), dengan bebarapa fasilitas di dalamnya.
Pada saat user mengakses url yang dilarang, akan muncul pesan/peringatan default dalam bahasa inggris. Kita dapat mengeditnya sendiri, sehingga dalam bentuk bahasa Indonesia yang dapat lebih mudah dipahami. Untuk mengeditnya dapat menggunakan perintah berikut:

vi /usr/share/errors/English/ERR_ACCESS_DENIED
Modifikasi sesuai keinginan. Mudahkan ! sengihnampakgigi

Nah selesai sudahmenari, tapi belom 100% nangis, pastikan hal-hal berikut juga.

  1. Menghubungkan PC client dengan eth1 router
  2. Mengisi IP Address secara manual (karena pada router belum di setting DHCP), dan agar IP client dapat di ping oleh router, matikan firewall untuk sementara waktu.
  3. Melakukan beberapa perintah ping terhadap gateway (eth1), eth0, gateway internet, DNS, dan beberapa situs tertentu.
  4. Browsing melalui browser, dan mencoba mengakses situs tertentu yang diijinkan.
  5. Bila mengakses situs tertentu atau memasukkan keyword tertentu yang dilarang akan tampil pesan peringatan yang telah disiapkan oleh admin sebelumnya.
So, berikut ini sceenshoot dari client pada saat mendapati pesan error

Akhirnya, selesai juga proxy yang kita buat. Semoga bermanfaat, amiin.
Ada masalah, dapat ditanyakan callme

1 komentar:

Anonymous said...

bagaimana caranya bila harus setting dari gui?

Post a Comment

Berikan Kritik dan Saran Anda !!!