Jumat, 11 Mei 2012

MEMBUAT PROXY SERVER UNTUK MEMBLOKIR SITUS

*>  Definisi 
·         Proxy           
     Merupakan server yang bertugas menyimpan cache yang diamana cache adalah satu penyimpanan sementara yang berguna mempercepat transmisi data oleh server
Proxy Server berfungsi untuk:
a)Melakukan cache website yang di akses oleh klien.
b)Melakukan ACL (Access Control List) IP mana saja yang boleh melakukan akses internet.
c)Memblokir situs-situs tertentu supaya tidak dapat diakses klien.
d)Melakukan pembatasan download terhadap file berekstension tertentu


·         Trasparan cache 
 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. 

·         Squid 
      Squid adalah sebuah daemon yang digunakan sebagai proxy server dan web cache. Squid memiliki banyak jenis penggunaan, mulai dari mempercepat server web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web, dan caching pencarian komputer di dalam jaringan untuk sekelompok komputer yang menggunakan sumber daya jaringan yang sama, hingga pada membantu keamanan dengan cara melakukan penyaringan (filter) lalu lintas. Meskipun seringnya digunakan untuk protokol HTTP dan FTP, Squid juga menawarkan dukungan terbatas untuk beberapa protokol lainnya termasuk Transport Layer Security (TLS), Secure Socket Layer (SSL), Internet Gopher, dan HTTPS. Versi Squid 3.1 mencakup dukungan protokol IPv6 dan Internet Content Adaptation Protocol (ICAP). 

·        Cara kerja squid :
       Tidak semua data bisa di cache oleh Squid, data-datayang bersifat dinamik seperti CGI-BIN tidak di cache oleh Squid, jadi tiap kali ada per-mintaan CGI-BIN, maka Squid akan menghubungi langsung server tujuan. Saat ini protokolyang bisa dilayani oleh Squid adalah HTTP, HTTPS, FTP, Gopher, dan Wais.Squid pertama-tama akan memeriksa request yang datang. Jika squid diset denganautentikasi tertentu, squid akan memeriksa autentikasi user terlebih dahulu. Autentik ini termasuk subnet area, user account, jenis file yang direquest, alamat situs tujuan, danproperti-properti yang telah diset pada file konfigurasi squid. Jika lolos dan telah sesuaidengan konfigurasi, request tersebut kembali diperiksa apakah objek yang diminta telahberada di cache. Jika sudah ada maka proxy server tidak perlu melanjutkan request keinternet tetapi langsung mereply request dengan objek yang diminta. Jika tidak ada di cache,squid dapat menghubungi siblingnya agar bisa saling tukar cache informasi menggunakanprotocol icp. Jika masih tidak ada, squid akan merequest ke parentnya. Parent harusmenyediakan informasi yang diminta, entah mengambil dari cachenya atau langsung keinternet.

·        Cara kerja proxy         :
Pada saat user/client dari jaringan lokal (192.168.1.3) mengakses internet (www.facebook.com) lewat browser maka PC client tersebut akan menghubungi proxy server melalui eth1 (192.168.1.2) kemudian proxy server meneruskan request tersebut melalui eth0 (82.12.20.42), kemudian diteruskan ke alamat server yang direquest user, setelah mendapat respon balik ke proxy server akan diteruskan kembali ke user. Dan terbukalah tampilan www.facebook.com pada browser user.
Kemudian agar user dapat menggunakan proxy server maka dilakukan beberapa pengaturan pada aplikasi yang dipakai user, misalnya pada browser Mozilla Firefox pengaturan ada di Tools – Options – Advanced – Network – Settings, kemudian pilih Manual proxy configuration, dan isi IP proxy yang dipakai dan port yang digunakan.
Proxy bekerja dengan mendengarkan request dari client internal dan mengirim request tersebut ke jaringan eksternal seolah-olah proxy server itu sendiri yang menjadi client. Pada waktu proxy server menerima respon dan server publik, ia memberikan respon tersebut ke client yang asli seolah-olah ia public server.

Instalasi squid
         
Untuk menginstall squid di server kita , gunakan perintah :
#apt –get install squid
Untuk mengkonfigurasi squid sebagai proxy caching server , ikuti langkah-langkah berikut :
I.      Edit file
#vi /etc/squid/squid.conf
II.    Bagian-bagian yang harus diedit adalah         :
·         http_port
# http_port 3128
Menjadi :
http-port 3128

·         cache_effective_user
# cache_effective_user proxy
Menjadi :
Cache_effectve_user proxy

·         Cache_effective_group
# Cache_effective_group proxy
Menjadi :
Cache_effective_group proxy

·         Memori yang dialokasikan untuk menjalankan squid server
# cache_mem 8 MB
Menjadi :
Cache_mem 16 MB


·         Cache_mgr
# cache_mgr webmaster
Menjadi
           Cache_mgr webmaster@skull.net
                                                                                                 
·         Cache dir arahkan sesuai direktori tempat cache disimpan dan atur space alokasinya sesuai basar cache yang diperlukan. Misalnya directory cache /var/spoll/squid dan alokasinya 500Mb.
            # cache_dir ufs /var/spool/squid 100 16 256
Menjadi :
            cache_dir ufs /cache 2000 16 256
·         Sekarang tambahkan network yang access proxy server cari bagian
           # recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL-ports port 443 563
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
Acl safe_ports port 1025-65535
Acl safe_ports port 280
Acl safe_ports port 488
Acl safe_ports port 591
Acl safe_ports port 777
Acl CONNECT method CONNECT


                    Dibawah acl localhost src 127.0.0.1/255.255.255.255 , tambahkan network yang akan diallowed.
acl lan src 192.168.0.0/255.255.255.0

           Setelah itu cari baris :
          http_access allow localhost
# and finally deny all other access to this proxy
http_access deny all

lalu tambahkan
          http_access allow lan (tepat dibawah “http_access allow localhost” )
menjadi :
          http_access allow localhost
          http_access allow lan
         finally deny all other access to this proxy
         http_access deny all
·         Selanjutnnya tambahkan baris visible_hostname
visible_hostname proxy.skull.net

III. Buat folder cache.dir,sesuai konfigurasi. Mis:/cache
$ sudo mkdir –p /cache
$ sudo chown proxy.proxy /cache

Buat ccahe ,dengan perintah
   sudo squid –z
2007/08/03 01:43?:39 creating swap directories

Jalankan squid dengan perintah :
                  Sudo /etc/init.d/squid start
Konfigurasi transparent proxy

Kegunaan konfigurasi transparent proxy adalah :
            Setiap penguna dipaksa menggunakan proxy server kita.
Jadi dipastikan semua pengguna yang mengakses internet pasti melalu squid proxy erver.
Cara kerja transparent proxy :
Yaitu membelokan paket yang dating dari luar ataupun daridalam jaringan
Yang melalui port 80 akan diarahkan terlebih dahulu ke proxy server
Berikut langkah-langkah membuat transparent proxy pada squid :
1.      Buka file /etc/squid/squid.conf
Sudo vi /etc/ squid/squid.conf
Tambahkan baris
Httpd_accel_host virtual
Httpd_accel_port 80
Httpd_accel_with_proxy on

2.      Setelah itu simpan dan restart squid
Sudo /etc/init.d/squid restart

3.      Setelah itu maka perlu diatur pula aturan ip tables-nya .
Dalam hal inimenggunakan table nat.secara konsep, ip tables diatur dengan aturan semua user yang mengakses web ke alamat mana saja.akan dipaksa untuk masuk squid yang telah dibuat .  masukan perintah berikut :
Sudo ip tables –t nat –A PREROUTING –p tcp –s 192.168.0.0/24 \--dport 80 –j DNAT –to –detination 192.168.0.1 :.3128
Sesuai kan contoh rule diatas dengan kondisi jaringan yang digunakan 192.168.0.0/24 merupakan alamat jaringan dimana host yang dipaksa berada 192.168.0.1 :3128 merupakan lokasi squid berada,dan squid menggunakan port 3128.

Konfigurasi squid untuk memfliter situs
Selain sebagai cacheing wab , squid juga dapat berfungsi sebagai filter atau penyaring terhadap oengaksesan wab yang tidak diinginkan. Sebelum ‑­
melakukan konfigurasi squid sebagai penyaing situs. Terlebih dahulu proxy serevr harus sudah di konfigurasi sebagai caching server.
Missal wab berisi pornografi.
Ada beberapa cara memliter situs diantaranya adalah
1.      Sesuai domain
Untuk memfliter sesuai domain edit file /etc/squid.conf , lalu tambah baris berikut sebelum baris http_access allow localhost
Acl domain –terlarang dstdomain ‘/etc/squid/domain-terlarang’ http_access deny domain-terlarang
Simpan hasil konfigurasi lalu buat file /etc/squid/domain – terlarang dengan isi file berisi alamat alamat situs/domain-domain yang dilarang diaccess.
Sudo vi /etc/squid/domain-terlarang
Contoh isi file :
2.      Sesuai kata
Untuk memfilter berdasarkan kata atau huurf yang terkandung pada nama domain caranya hamper sama , edit file /etc/squid/squid.conf lalu tambahkan batris berikut :
Acl kata-terlarang url_regex - I “/etc/squid/kata-terlarang”
http_access deny kata-terlarang
Simpan hasil konfigurasi, lalu buat file /etc/squid/kata-terlarang dengan isi file berisikata-kata yang dilarang diaccess.
Sudo vi /etc/squid/kata-terlarang
Missal contoh isi file :
Porno
Sex
3.      Sesuai IP
Mungkin cara ini cara yang paling aman, karena jika kita menggunakan kedua cara diatas kita masih bias menembusnya bila kita mengetahui ‑­
alamat ip homepage yang dilarang.
Edit file :
 /etc/squid/squid.conf
lalu tambahkan baris berikut
Acl ip-terlarang dst “/etc/squid/ip-terlarang”
http_access deny ip-terlarang
Simpan hasil konfigurasi, lalu buat file /etc/squid/ip-terlarang dengan isi file berisi ip-ip homepage yang dilarang diacess.
Sudo vi /etc/squid/ip-terlarang
Contoh isi file :
209.247.228.203
209.247.228.201
206.251.29.35 

*> keuntungan 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 denganHTB 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 meng-gunakan autentikasi. Autentikasi yang biasa digunakan bisa basic, digest, ataupunntlm.


Dapat melakukan pembatasan-pembatasan lainnya.

*> kerugian proxy server


Pintu keluar menuju gerbang internet hanya lewat proxy, sehingga ketika terjadi over-load, akses internet menjadi lambat


User akan melihat file yang kadaluarsa jika cache expire time-nya terlalu lama, se-hingga meskipun di website file tersebut sudah berubah, user masih melihat file yangtersimpan di cache memory


Karena koneksi internet harus melalui gerbang proxy terlebih dahulu, maka kecepatanakses bisa jadi lebih lambat daripada kita melakukan koneksi langsung. Dalam hal inikeduanya akan mengakses file internet secara langsung