Friday, October 18, 2013

Firewall dan Proxy server

BAB XI
FIREWALL
11.1.   Membangun Firewall
Firewall adalah suatu mekanisme untuk melindungi keamanan jaringan komputer dengan menyaring paket data yang keluar dan masuk di jaringan. Paket data yang ’baik’ diperbolehkan untuk melewati jaringan dan paket dapa  yang dianggap ’jahat’ tidak diperbolehkan melewati jaringan. Firewall dapat berupa perangkat lunak atau perangkat keras yang ditanam perangkat lunak yang dapat menfilter paket data. Firewall juga berfungi untuk mengontrol akses terhadap siapa saja yang memiliki akses terhadap jaringan pribadi dari pihak luar.Keamanan jaringan komputer akan tetap terjaga dengan disaringnya paket data yang keluar dan masuk didalam jaringan.
1.         Mengidentifikasi bentuk jaringan yang dimiliki. Untuk mengetahui bentuk jaringan yang dimiliki khususnya topologi yang digunakan serta protocol jaringan, akan memudahkan dalam mendesain sebuah firewall.
2.         Menentukan policy atau kebijakan merupakan hal yang harus dilakukan, baik atau buruknya sebuah firewall yang di bangun sangat ditentukan oleh policy/kebijakan yang diterapkan, Diantaranya:
·            Menentukan apa saja yang perlu di layani. Artinya, apa saja yang akan dikenai policy atau kebijakan yang akan dibuat.
·            Menentukan individu atau kelompok-kelompok yang akan dikenakan policy atau kebijakan tersebut.
·            Menentukan layanan-layanan yang di butuhkan oleh tiap-tiap individu atau kelompok yang menggunakan jaringan..
·            Berdasarkan setiap layanan yang di gunakan oleh individu atau kelompok tersebut akan ditentukan bagaimana konfigurasi terbaik akan membuatnya semakin aman.
·  Menerapkan semua policy atau kebijakan tersebut.
3.                        Menyiapkan software atau hardware yang akan digunakan baik itu operating system yang mendukung atau software-software khusus pendukung firewall seperti ipchains, iptables pada linux, dsb. Serta konfigurasi hardware  yang akan mendukung firewall tersebut.
4.                        Melakukan test konfigurasi pengujian terhadap firewall yang telah selesai haruslah dilakukan, terutama untuk mengetahui hasil yang akan kita dapatkan, caranya dapat menggunakan tool-tool yang biasa dilakukan untuk mengaudit seperti nmap.

11.2.         IP Tables
IPTables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan, daftar tersebutdinamakan rantai firewall (firewall chain) atau sering disebut chain saja. Ketiga chain tersebut adalahINPUT, OUTPUT dan FORWARD.
Perintah umum iptables :
            $iptables [-t table] command [match] [target/jump]
Berikut beberapa option dasar yang cukup sering dalam mengkonfigurasi iptables :
·                     -A
Tambahan aturan ini ke rantai aturan yang ada. Rantai atau chain yang valid adalah INPUT, FORWARD, dan OUTPUT. Biasanya lebih banyak menggunakan rantai INPUT yang berdampak pada paket data yang masuk
·                     -L
Memperlihatkan daftar aturan yang telah dipasang di iptables.
·                     -m state
Menjelaskan daftar dari kondisi / state bagi aturan untuk di bandingkan. Beberapa state yang valid, adalah :
            NEW  => sambungan baru dan belum pernah terlihat sebelumnya
RELATED => sambungan baru, tapi berhubungan dengan   sambungan lain telah diizinkan.
ESTABLISHED => sambungan yang telah terjadi.
INVALID => lalu lintas paket data yang karena berbagai alasan tidak bisa di    identifikasi
·                     -m limit
Dibutuhkan oleh aturan jika ingin melakukan pembandingan dan pencocokan dalam waktu / jumlah tertentu. Mengizinkan penggunaan option –limit. Berguna untuk membatasi aturan logging.
·                     --limit
Kecepatan maksimum pencocokan, diberikan dalam bentuk angka yang diikuti oelh ”/seconf”,”/minute”,”/hour”, atau ”/day” tergantung seberapa sering kita ingin melakukan pencocokan aturan. Jika option ini tidak digunakan maka secara defaultnya adalah ”3/hour”
·                     -p
Protokol yang digunakan untuk sambungan.
·                     --dport
Port tujuan yang digunakan oleh aturan iptables. Bisa berupa satu port, bisa juga satu batasan jangkauan ditulis sebagai start:end, yang akan mencocokan semua port start sampai end
·                     -j
Jump ke target yang spesifik. Iptables mempunyai empat target default.
 --log –prefix
Jika pencatatan dilakukan, letakan text atau tulisan sebelum catatan.
·                     --log –level
Pencatatan menggunakan syslog level.
·                     -i
Melakukan pencocokan jika paket yang masuk dari interface tertentu.
·                     -I
Memasukan aturan ke iptables.
·                     -v
Menampilkan lebih banyak informasi di layar
Option diatas adalah hanya sedikit dari option yang terdapat pada iptables. Silakan pembaca kembangan sendiri.
Untuk dapat melihat manual iptables, silakan ketik perintah ini pada terminal :
            $man iptables
Manualnya terlihat seperti ini :

Perintah dasar Iptables :
1.                   Untuk melihat aturan yang sudah ada di iptables :
$iptables -L
Jika komputer baru diinstall, aturan yang terpasang akan terlihat seperti ini :



2.                   Untuk mengijinkan sesi sambungan yang terbentuk untuk menerima lalu lintas paket data
$iptables -A INPUT -m state –state ESTABLISHED, RELATED -j accept
Contohnya kita akan mengijinkan semua lalu lintas paket data di jaringan untuk masuk adalah sebagai berikut :
                        $iptables -A INPUT -p tcp –dport 80 -j ACCEPT

Contohnya lain kita akan mengijinkan lalu lintas paket data masuk ke defaut port SSH nomor 22, maka harus mengizinkan semua TCP paket data masuk ke port 22, perintahnya :
$iptables -A INPUT -p tcp --dport ssh -j ACCEPT


           
Dari perintah diatas, kita dapat mengetahui bahwa aturan iptables tersebut mangatur agar masukan aturan ini ke rantai input (-A INPUT) artinya kita melihat lalu lintas paket data yang masuk cek protokol yang digunakan adalah TCP (-p tcp). Jika TCP, apakah paket data menuju port SSH (--dport ssh). Jika ya, maka paket diterima,
3.                   Untuk melakukan pemblokiran paket data.
Apabila aturan telah memutuskan untuk menerima paket data (ACCEPT), maka aturan selanjutnya tidak akan berefek pada paket data tersebut.  Karena aturan yang kita buat mengijinkan SSH dan Web traffic, selama aturan untuk memblok semua traffic kita letakan terakhir sesudah aturan mengijinkan SSH dan Web, maka kita akan tetap dapat menerima traffic SSH dan Web yang kita inginkan. Jadi kita harus menambahkan (-A) aturan untuk mem-block traffic di akhir.
            Perintahnya :
                        $iptables -A INPUT -j DROP

4.                   Untuk melakukan pencatatan paket yang di log , perintah yang paling cepat adalah :
$iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

5.                   Untuk menyimpan konfigurasi iptables
Jika kita booting komputer yang kita gunakan, maka apa yang kita lakukan ini akan hilang. Kita pun harun mengetikkan ulang semua perintah yang kita masukan satu per satu ketika komputer hidup. Agar lebih effesien, kita dapat menggunakan iptables-save dan iptables-restore untuk menyimpan dan merestore iptables
Kita dapat menyimpan konfigurasi iptables agar di start setiap kali booting menggunakan perintah :
                   $sh -c "iptables-save > /etc/iptables.rules"
                   Setelah itu memodifikasi /etc/network/interfaces agar aturan iptables yang kita gunakan dapat berjalan secara automatis. Kita perlu mengetahui ke interface mana aturan yang  akan digunakan. Biasanya  menggunakan eth0. Untuk interface wireless, kita dapat mencek penggunaaannya mengunakan perintah,
                   $ iwconfig
                   Kita perlu mengedit file /etc/network/interfaces misalnya menggunakan perintah
                   $ sudo nano /etc/network/interfaces
                   Apabila telah menemukan nama interface yang digunakan, maka di akhir interface kita dapat menambahkan perintah,
pre-up iptables-restore < /etc/iptables.rules
                   Selanjutnya di bawahnya kita tambahkan perintah sesudah interface down, menggunakan perintah,
post-down iptables-restore < /etc/iptables.rules
Hasil gambarnya :

6.                   Untuk menonaktifkan atau mematikan fiewall, maka perintahnya :
$iptables –F
Perintahnya akan seperti dibawah ini :
                   Adapun jika kesulitan dalam menkonfigurasi iptables secara command line, pada ubuntu telah tersedia perangkat lunak yang dapat mengkonfigurasi firewall secara menggunakan GUI yaitu firestater.
-                      cara menginstall firestarter di ubuntu 8.04
·                     ketik perintah ini di terminal
·                     sudo apt-get install firestater








BAB XII
PROXY SERVER

12.1.    WEB PROXY
Proxy server  adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer yang melakukan request terhadap content dari Internet atau intranet. Proxy Server bertindak sebagai gateway terhadap akses Internet untuk setiap komputer didalam jaringan. Proxy server tidak terlihat oleh komputer klien. Seorang pengguna yang berinteraksi dengan Internet melalui sebuah proxy server tidak akan mengetahui bahwa sebuah proxy server sedang menangani request yang dilakukannya. 
Web server yang menerima request dari proxy server akan menginterpretasikan request-request tersebut seolah-olah request itu datang secara langsung dari komputer klien, bukan dari proxy server. Proxy server juga dapat digunakan untuk mengamankan jaringan pribadi yang dihubungkan ke sebuah jaringan publik (seperti halnya Internet).
Proxy server memiliki lebih banyak fungsi daripada router yang memiliki fitur packet filtering karena memang proxy server beroperasi pada level yang lebih tinggi dan memiliki kontrol yang lebih menyeluruh terhadap akses jaringan.
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.

12.2.         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).

12.2.1        Konfigurasi dasar Squid
·                Instalasi
Menginstal squid sangatlah mudah, semudah menginstal aplikasi lain dari repositori Ubuntu.
sudo apt-get install squid
Untuk menjalankan squid, bisa menggunakan perintah,
sudo /etc/init.d/squid start
Untuk mematikan squid, bisa menggunakan perintah
sudo /etc/init.d/squid stop
·                Konfigurasi
Setelah squid terinstal, lokasi konfigurasi ada di /etc/squid/squid.conf. Mari kita backup terlebih dahulu, karena kita akan melakukan beberapa perubahan di berkas konfigurasi tersebut.
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.asli
Sebelum kita lanjutkan, saya ingin menunjukkan sesuatu. Coba jalankan perintah di bawah ini,
sudo cat /etc/squid/squid.conf |wc -l
4529
Hasilnya kira-kira seperti tertulis di atas, yaitu 4529. Artinya berkas squid.conf yang akan kita sunting memiliki 4529 baris. Wow! Pantas kalau banyak admin pemula yang bingung ketika akan mengkonfigurasi squid.
Berbeda dengan apache atau postfix, pemaket sudah menyiapkan konfigurasi yang siap pakai, yang artinya begitu postfix atau apache diinstal sudah ada contoh yang bisa dilihat dan bisa dijalankan langsung. Tapi untuk paket squid di Ubuntu ini, squid.conf yang disertakan bukanlah contoh siap pakai.
Mari kita mulai mengkonfigurasi. Dari sekian ribu baris, sebetulnya untuk menjalankan squid sebagai web proxy, kita hanya perlu mengkonfigurasi beberapa baris saja. Mari kita lihat apa saja yang harus dikonfigurasi.
acl dan http_access
Sebetulnya ini adalah topik yang besar, dan sudah saya rencanakan untuk membahasnya secara terpisah. Tapi karena untuk tahap awal, kita harus mengijinkan akses dari LAN agar bisa menggunakan proxy, kita bahas sekilas saja.

Yang perlu Anda ketahui, konfigurasi squid dibaca dari atas ke bawah. Artinya, yang pertama kali cocok, itulah yang menang. Selalu ingat konsep dasar ini, karena akan sangat penting untuk memahami mengapa konfigurasi squid Anda tidak bekerja dengan seharusnya.

Sekarang kita harus membuat acl baru untuk mengijinkan semua IP di LAN Anda bisa menggunakan squid proxy yang baru diinstal. Misal, Anda memiliki dua LAN, 192.168.1.0/24 dan 192.168.2.0/24. Maka konfigurasinya,
acl jaringan_saya src 192.168.1.0/24 192.168.2.0/24
http_access allow jaringan_saya
Jika Anda menginginkan hanya IP tertentu saja, bukan satu network, Anda bisa juga menuliskannya seperti di bawah ini.
acl jaringan_saya src 192.168.1.0/24 192.168.2.0/24
http_access allow jaringan_saya
acl kantor_cabang src 192.168.5.5
http_access allow kantor_cabang
Sekarang IP 192.168.5.5 yang ada di kantor cabang, bisa juga menggunakan proxy yang baru Anda buat.
cache_dir
Yang lain yang bisa dikonfigurasi saat ini adalah cache_dir. Defaultnya,
cache_dir ufs /var/spool/squid 100 16 256
Saya jelaskan singkatnya, artinya lokasi direktori cache (tempat menyimpan objek yang dicache) ada di direktori /var/spool/squid dan dialokasikan sebesar 100 mega bytes. Angka 16 dan 256 adalah jumlah direktori cache yang dibuat. 16 artinya akan ada 16 direktori di /vaar/spool/squid, dan didalamnya masing-masing ada 256 direktori lagi.
Jadi kalau Anda ingin mengubah besar alokasi untuk cache, ganti angka 100 itu dengan angka baru. Misal untuk mengalokasikan sebesar 2 GB, ganti dengan 2000.
·           Menerapkan Konfigurasi
Untuk saat ini cukup dua konfigurasi itu saja (biar Anda tidak pusing). Setelah selesai menyunting berkas konfigurasi untuk menerapkan perubahan yang baru dibuat, Anda bisa merestart squid.
sudo /etc/init.d/squid restart
Tapi proses restart biasanya akan agak lama. Untuk mempermudah, tanpa perlu melakukan restart squid, jalankan saja perintah berikut.

sudo squid -k reconfigure

0 comments:

Post a Comment