1. DEFINISI DARI FIREWALL
Firewall adalah sebuah bagian dari sistem komputer atau jaringan yang didesain untuk memblok atau mengijinkan sebuah jaringan lain untuk mengakses jaringan kita. Firewall bisa berbentuk hardware atau software atau pun kombinasi dari keduanya. Firewall digunakan untuk melindungi jaringan kita dari jaringan-jaringan yang berpotensi menimbulkan bahaya ke dalam sistem kita. Seluruh pesan yang masuk atau meninggalkan jaringan kita melalui firewall akan dicek setiap pesan dan memblok setiap pesan yang tidak memenuhi kriteria yang telah kita tetapkan di dalam firewall.
Firewall adalah sebuah bagian dari sistem komputer atau jaringan yang didesain untuk memblok atau mengijinkan sebuah jaringan lain untuk mengakses jaringan kita. Firewall bisa berbentuk hardware atau software atau pun kombinasi dari keduanya. Firewall digunakan untuk melindungi jaringan kita dari jaringan-jaringan yang berpotensi menimbulkan bahaya ke dalam sistem kita. Seluruh pesan yang masuk atau meninggalkan jaringan kita melalui firewall akan dicek setiap pesan dan memblok setiap pesan yang tidak memenuhi kriteria yang telah kita tetapkan di dalam firewall.
Gambar diatas merupakan Ilustrasi mengenai Firewall dalam sebuah jaringan komputer.
Firewall merupakan perangkat jaringan yang berada di dalam kategori perangkat Layer 3 (Network layer) dan Layer 4 (Transport layer)
dari protocol 7 OSI layer. Seperti diketahui, layer 3 adalah layer yang
mengurus masalah pengalamatan IP, dan layer 4 adalah menangani
permasalahan port-port komunikasi (TCP/UDP). Pada kebanyakan firewall,
filtering belum bisa dilakukan pada level data link layer atau layer 2
pada 7 OSI layer. Jadi dengan demikian, sistem pengalamatan MAC dan
frame-frame data belum bisa difilter. Maka dari itu, kebanyakan firewall
pada umumnya melakukan filtering dan pembatasan berdasarkan pada alamat
IP dan nomor port komunikasi yang ingin dituju atau diterimanya.
Firewall yang sederhana biasanya tidak memiliki kemampuan melakukan
filtering terhadap paket berdasarkan isi dari paket tersebut. Sebagai
contoh, firewall tidak memiliki kemampuan melakukan filtering terhadap
e-mail bervirus yang kita download atau terhadap halaman web yang tidak
pantas untuk dibuka. Yang bisa dilakukan firewall adalah melakukan
blokir terhadap alamat IP dari mail server yang mengirimkan virus atau
alamat halaman web yang dilarang untuk dibuka. Dengan kata lain,
firewall merupakan sistem pertahanan yang paling depan untuk jaringan
Anda.
Keuntungan Firewall :
- Firewall merupakan fokus dari segala keputusan sekuritas. Hal ini disebabkan karena Firewall merupakan satu titik tempat keluar masuknya trafik internet pada suatu jaringan.
- Firewall dapat menerapkan suatu kebijaksanaan sekuritas. Banyak sekali service-service yang digunakan di Internet. Tidak semua service tersebut aman digunakan, oleh karenanya Firewall dapat berfungsi sebagai penjaga untuk mengawasi service-service mana yang dapat digunakan untuk menuju dan meninggalkan suatu network.
- Firewall dapat mencatat segala aktivitas yang berkaitan dengan alur data secara efisien. Semua trafik yang melalui Firewall dapat diamati dan dicatat segala aktivitas yang berkenaan dengan alur data tersebut. Dengan demikian Network Administrator dapat segera mengetahui jika terdapat aktivitas-aktivitas yang berusaha untuk menyerang internal network mereka.
- Firewall dapat digunakan untuk membatasi pengunaan sumberdaya informasi. Mesin yang menggunakan Firewall merupakan mesin yang terhubung pada beberapa network yang berbeda, sehingga kita dapat membatasi network mana saja yang dapat mengakses suatu service yang terdapat pada network lainnya.
Kelemahan Firewall :
- Firewall tidak dapat melindungi network dari serangan koneksi yang tidak melewatinya (terdapat pintu lain menuju network tersebut).
- Firewall tidak dapat melindungi dari serangan dengan metoda baru yang belum dikenal oleh Firewall.
- Firewall tidak dapat melindungi dari serangan virus.
1. IPTABLES
Iptables merupakan
aplikasi yang dibuat oleh proyek the netfilter.org. Sebelum membuat
iptables yang berjalan mulai dari linux kernel 2.4.x sampai sekarang,
proyek tersebut sudah membuat aplikasi ipchains untuk kernel 2.2.x dan
aplikasi ipfwadm untuk kernel 2.0.x. Saat ini, banyak distro-distro
besar sudah memaketkan firewall di dalam distro mereka sehingga
memudahkan kita untuk menginstal iptables ke dalam sistem kita. Pada
tutorial kali ini kita akan menggunakan distro Centos 5.4. Tutorial
iptables pada artikel ini hanya menjelaskan tentang dasar-dasar iptables
saja dan aplikasi iptables pada jaringan lokal saja.
2. Perintah-Perintah Iptables
Untuk melihat apakah di dalam sistem kita sudah terinstal paket-paket iptables, ketikkan perintah berikut:
# rpm -qa | grep iptables
Jika memang belum terinstal, ketikkan perintah berikut:
# yum -y install iptables*
Agar iptables dapat berjalan otomatis setelah restart, gunakan perintah:
# chkconfig iptables on
Untuk melihat status iptables, gunakan perintah:
# service iptables status
Untuk menyalakan iptables, gunakan perintah:
# /etc/init.d/iptables start
Untuk mematikan iptables, gunakan perintah:
# /etc/init.d/iptables stop
Untuk merestart iptables, gunakan perintah:
# /etc/init.d/iptables restart
Sebelum
melangkah lebih lanjut, pastikan firewall di sistem kita di enable yaitu
dengan cara ketik setup lalu pilih Firewall configuration. Setelah itu,
pada bagian Security Level beri tanda bintang pada item Enabled lalu
pilih tombol OK.
· Sintaks Iptables
Secara umum, sintaks iptables dapat dituliskan seperti berikut:
# iptables [-t table] command [match] [target/jump]
Penjelasan dari sintaks di atas dapat dijelaskan di bawah ini:
1. Table
IPTables memiliki beberapa buah tabel yaitu NAT, MANGLE, dan FILTER. Penjelasannya adalah:
a. Table Mangle: tabel yang bertanggung jawab untuk melakukan penghalusan (mangle) paket seperti merubah quality of service (QOS), TTL, dan MARK di header TCP. Biasanya tabel ini jarang digunakan di lingkungan SOHO. b. Table Filter: yaitu tabel yang bertanggung jawab untuk pemfilteran paket. Tabel ini mempunyai 3 rantai (chain) yaitu:
1. Rantai Forward yaitu rantai yang memfilter paket-paket yang akan ke server yang dilindungi oleh firewall. Rantai ini digunakan ketika paket-paket datang dari IP Publik dan bukan dari IP lokal.
2. Rantai Input: yaitu rantai yang memfilter paket-paket yang ditujukan ke firewall.
3. Rantai Output: yaitu rantai yang memfilter paket-paket yang berasal dari firewall.
c. Tabel NAT: yaitu rantai yang bertanggung jawab untuk melakukan Network Address Translation (NAT). NAT yaitu mengganti field asal atau alamat tujuan dari sebuah paket. Pada tabel ini terdapat 2 rantai, yaitu:
1. Rantai Pre-Routing: Merubah paket-paket NAT dimana alamat tujuan dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan destination NAT atau DNAT.
2. Rantai Post-Routing: Merubah paket-paket NAT dimana alamat sumber dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan source NAT atau SNAT.
a. Table Mangle: tabel yang bertanggung jawab untuk melakukan penghalusan (mangle) paket seperti merubah quality of service (QOS), TTL, dan MARK di header TCP. Biasanya tabel ini jarang digunakan di lingkungan SOHO. b. Table Filter: yaitu tabel yang bertanggung jawab untuk pemfilteran paket. Tabel ini mempunyai 3 rantai (chain) yaitu:
1. Rantai Forward yaitu rantai yang memfilter paket-paket yang akan ke server yang dilindungi oleh firewall. Rantai ini digunakan ketika paket-paket datang dari IP Publik dan bukan dari IP lokal.
2. Rantai Input: yaitu rantai yang memfilter paket-paket yang ditujukan ke firewall.
3. Rantai Output: yaitu rantai yang memfilter paket-paket yang berasal dari firewall.
c. Tabel NAT: yaitu rantai yang bertanggung jawab untuk melakukan Network Address Translation (NAT). NAT yaitu mengganti field asal atau alamat tujuan dari sebuah paket. Pada tabel ini terdapat 2 rantai, yaitu:
1. Rantai Pre-Routing: Merubah paket-paket NAT dimana alamat tujuan dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan destination NAT atau DNAT.
2. Rantai Post-Routing: Merubah paket-paket NAT dimana alamat sumber dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan source NAT atau SNAT.
2. command
command pada baris
perintah iptables yang akan memberitahu apa yang harus dilakukan
terhadap lanjutan sintaks perintah. Berikut adalah beberapa command pada
iptables:
command
|
Deskripsi
|
-A (–append)
|
Menambah aturan pada akhir rantai sehingga akan dieksekusi terakhir
|
-D (–delete)
|
Menghapus sebuah aturan
pada rantai yang dilakukan dengan cara menyebutkan secara lengkap
perintah yang ingin dihapus atau dengan menyebutkan nomor baris dimana
perintah akan dihapus
|
-I (–insert)
|
Memasukkan aturan pada
sebuah baris rantai. Berbeda dengan perintah append, perintah insert
akan menempati baris yang dimaksud dan aturan awal yang menempati baris
tersebut akan digeser ke bawah
|
-L (–list)
|
Menampilkan semua aturan
pada sebuah tabel. Perintah ini akan dikombinasikan dengan opsi -v
(verbose), -n (numeric), -x (exact), dan –line-number
|
-F (–flush)
|
Mengosongkan aturan pada sebuah chain
|
-N (–new-chain)
|
Membuat rantai baru
|
-X (–delete-chain)
|
Menghapus rantai yang disebutkan
|
-E (–rename-chain)
|
Merubah suatu nama rantai
|
-P (–policy)
|
Membuat kebijakan default pada sebuah rantai
|
-p (–protocol)
|
Mengecek tipe protokol tertentu. Tanda inverse(!) berarti kecuali. Misalnya protocol ! tcp berarti kecuali tcp
|
-s (–source)
|
Mencocokkan paket
berdasarkan alamat IP asal. Bisa berbentuk alamat tunggal
(mis:192.168.0.1) atau alamat network (mis:192.168.0.0/255.255.255.0
atau 192.168.0.0/24)
|
-d (–destination)
|
Mencocokkan paket berdasarkan alamat tujuan
|
-i (–in-interface)
|
Mencocokkan paket berdasarkan interface dimana paket datang dan berlaku pada rantai INPUT, FORWARD, dan PREROUTING
|
-o (–out-interface)
|
Mencocokkan paket berdasarkan interface dimana paket keluar dan berlaku pada rantai OUTPUT, FORWARD, dan POSTROUTING
|
–sport (–source-port)
|
Mencocokkan paket
berdasarkan port asal(bisa dilihat di /etc/services). Perintah ini bisa
digunakan untuk range port tertentu. Misal range antara port 22 sampai
80 bisa ditulis –sport 22-80. Jika –sport :80 berarti paket dengan port
0-80. Jika –sport 1024: berarti paket dengan port asal 1024-65535
|
–dport (–destination-port)
|
Mencocokkan paket berdasarkan port tujuan. Penggunaannya sama dengan –sport
|
–syn
|
Memeriksa apakah flag SYN
di set dan ACK dan FIN tidak di set. Perintah ini sama dengan kita
menggunakan match –tcp-flags SYN,ACK,FIN SYN. Paket dengan perintah
tersebut digunakan untuk melakukan request koneksi TCP yang baru
terhadap server
|
-m mac -mac-source
|
Melakukan pencocokan paket berdasarkan MAC source address
|
-m multiport –source-port
|
Mendefinisikan port atau port range lebih dari satu
|
-j (–jump)
|
Perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria. Setelah perintah ini ada beberapa opsi yaitu:
ACCEPT: akan mengijinkan paket DROP: akan menolak paket REJECT: akan menolak paket. Berbeda dengan DROP, REJECT akan memberitahukan error kesalahan kepada user pengirim sedangkan DROP tidak memberitahukan error kesalahan. Opsi untuk REJECT adalah icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unreachable, icmp-net-prohibited, dan icmp-host-prohibited. Namun untuk menggunakan opsi-opsi tersebut harus diawali dengan –reject-with RETURN: akan membuat paket berhenti melintasi aturan-aturan pada rantai dimana paket tersebut menemui target RETURN MIRROR: fungsi utamanya adalah membalik source address dan destination address. Misalnya PC A menjalankan target RETURN kemudian komputer B melakukan koneksi http ke komputer A, maka yang muncul adalah pada browser adalah website komputer B itu sendiri LOG: digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice,warning, err, crit, alert dan emerg. perintah -j LOG –log-prefix digunakan untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut. SNAT Target: Berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel NAT pada rantai POSTROUTING, dan hanya disinilah rantai POSTROUTING. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama DNAT Target: Digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel NAT pada rantai PREROUTING dan OUTPUT atau rantai buatan yang dipanggil oleh kedua rantai tersebut MASQUARADE Target: Target ini bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option –to-source. Target ini memang ini didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah. Target ini hanya bekerja untuk tabel NAT pada rantai POSTROUTING REDIRECT Target: Digunakan untuk mengalihkan jurusan (redirect) paket ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk membangun sebuah sistem jaringan yang menggunakan transparent proxy. Contohnya kita ingin mengalihkan semua koneksi yang menuju port http untuk memasuki aplikasi http proxy misalnya squid. Target ini hanya bekerja untuk tabel NAT pada rantai PREROUTING dan OUTPUT atau pada rantai buatan yang dipanggil dari kedua rantai tersebut. |
Memang banyak sekali dan
bisa menjadi sangat sangat kompleks teknik konfigurasi iptables. Pada
kesempatan ini kita hanya mencoba melakukan konfigurasi firewall /
iptables yang sederhana saja.
3. ALUR PAKET DATA
membahas prinsip dasar
firewall iptables, mengelola akses internet berdasarkan alamat IP,port
aplikasi dan MAC address. Firewall IPTables packet filtering memiliki
tiga aturan (policy), yaitu:
· INPUT
Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa mengelolakomputer mana saja yang bisa mengakses firewall. misal: hanya komputer IP 192.168.1.100 yang bisa SSHke firewall dan yang lain tidak boleh.
Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa mengelolakomputer mana saja yang bisa mengakses firewall. misal: hanya komputer IP 192.168.1.100 yang bisa SSHke firewall dan yang lain tidak boleh.
· OUTPUT
Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.
Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.
· FORWARD
Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan (policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET, yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak. TARGET ada tiga macam yaitu:
Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan (policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET, yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak. TARGET ada tiga macam yaitu:
a.ACCEPT
Akses diterima dan diizinkan melewati firewall
Akses diterima dan diizinkan melewati firewall
b.REJECT
Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus, biasanya terdapatpesan “Connection Refused”. Target Reject tidak menghabiskan bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan DROP.
Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus, biasanya terdapatpesan “Connection Refused”. Target Reject tidak menghabiskan bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan DROP.
c.DROP
Akses diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan – akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi Target Drop sebaiknya jangan digunakan.
Akses diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan – akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi Target Drop sebaiknya jangan digunakan.
1. a. Memblok paket yang datang dari sebuah IP
# iptables -I INPUT -s 192.168.0.149 -j REJECT
Peritah
di atas digunakan untuk memblok paket dari IP 192.168.0.149. Ada 2 opsi
yang digunakan sebenarnya yaitu DROP dan REJECT. Perbedaan dari keduanya
adalah kalau REJECT, perintah ini akan memblok paket namun akan
memberitahukan bahwa paket tersebut ditolak. Sedangkan kalau DROP,
perintah ini akan memblok paket namun tidak diberitahu apakah paket
tersebut
b. Memblok paket yang keluar dari sebuah IP
iptables -A OUTPUT -p tcp -d 192.168.10.2 -j DROP
2.Menutup Port
# iptables -A INPUT -p tcp --dport 22 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk ssh
# iptables -A INPUT -p tcp -i eth0 --dport 23 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk telnet
# iptables -I INPUT -s 192.168.0.250 -p tcp --dport 23 -j REJECT
Perintah di atas untuk memblok service telnet dari IP 192.168.0.250
3. Membuat Dropped Log file.
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "PORT 80 DROP: " --log-level 7
iptables -A INPUT -p tcp --destination-port 80 -j DROP
iptables -A INPUT -p tcp --destination-port 80 -j DROP
4. Menghapus iptables
# iptables -D INPUT 3
Menghapus iptables pada tabel input di baris ke 3
# iptables -F
Menghapus seluruh iptables


0 komentar:
Posting Komentar