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
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