Pada
kesempatan kali ini Kita akan belajar Firewall iptable di CentOS, kali ini Kita
menggunakan vmware workstation. Berikut detailnya :
- OS Windows XP sebagai host yang di dalamnya sudah terinstall vmware workstatio
- Buat OS 2 buah sebagai guest, 1 linux centos sebagai firewall dan windows sebagai client di bawah firewall.
- Pastikan windows xp host atau windows xp sungguhan sudah terkoneksi internet, baik dari modem 3g atau isp lain lalu share ke interface vmnet1 kemudian setting ip 172.16.0.254. IP ini akan digunakan sebagai gateway bagi firewall dan ip ini Kita anggap sebagai IP Milik router ISP sehingga seolah-olah firewall mendapatkan IP dari ISP. :)
- Pastikan firewall sudah mendapatkan akses internet, dan dari client sudah bisa ping ke firewall.
- Pastkan windows xp client (dibelakang firewall), sudah bisa mengakses webserver miliknya melalui localhost, webserver ini nantinya akan Kita akses melalui network yang berbeda (baca:Internet) dari IP 172.16.0.254
- Setelah semua persiapan selesai, mari kita lanjut ke langkah-langkah konfigurasi iptable di firewall.
- NAT (Network Address Translation)
Tujuan
dari NAT ini adalah mengizinkan network LAN (di bawah firewall) untuk bisa
mengakses internet. Ada dua langkah sebelumnya yang harus dilakukan yaitu :
|
#vi
/etc/sysctl.conf
|
Lalu
cari pada file tersebut tulisan net.ipv4.ip_forward dan rubah nilainya menjadi
1, sehingga akan menjadi:
#net.ipv4.ip_forward
= 1
|
Yang
kedua adalah file ip_forward. Ketikan perintah berikut:
|
#vi
/proc/sys/net/ipv4/ip_forward
|
Ubah
nilainya menjadi 1, lalu restart linux
Eksekusi dengan command di bawah ini :
#sysctl
-p /etc/sysctl.conf
Setelah
kedua langkah di atas, kemudian Kita masukan perintah iptablesnya :
|
|
#iptables
-t nat -A POSTROUTING -o eth0 -j MASQUERADE
#service
iptables save
(Command
untuk melihat daftar policy di table NAT)
#iptables
-t nat nvL --line-numbers
|
Note
: eth0 merupakan interface linux yang ke public
test
dari windows xp client untuk mengakses internet, harusnya sampai langkah ini
computer client sudah dapat mengakses internet.
Tutup
semua port yang masuk, keluar dan melalui firewall :
|
#ipatables
-P INPUT DROP
#ipatables
-P FORWARD DROP
#ipatables
-P OUTPUT DROP
|
Gunakan
Connections Tracking, Tujuannya ketika Kita membuat policy di chain INPUT, maka
Kita tidak perlu membuat policy di OUTPUT. Dengan Connection Tracking ini sudah
membuat pasangannya secara otomatis.
|
#iptables
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
IMPLEMENTASI
IPTABLES
Aplikasi
IPTables dengan pendekatan POSITIVE LIST, artinya secara default semua port
DITUTUP kemudian satu persatu Kita buka sesuai dengan kebutuhan. Keuntungan
dari positive list ini adalah lebih secure karena semua port di tutup, namun
kelemahannya relatif lebih sulit di setup. Skenarionya adalah Kita sebagai
Admin Linux di Kantor, Kantor Kita berlangganan Internet Dedicated. Kita
diminta untuk :
- Mengamankan gateway dari kemungkinan serangan baik dari luar maupun dalam.
- Secara default user tidak dapat melakukan koneksi ke gateway dan internet, Jika merujuk ke gambar artinya windows xp client tidak dapat melakukan koneksi ke gateway dan ke Internet
- Sharing internet, Jika merujuk ke gambar hanya client windows xp saja yang diizinkan bisa mengakses internet
- Mengatur agar kita bisa membuat sebuah web yang terlindung dibelakang gateway, Jika merujuk ke gambar windows xp ini Kita jadikan webserver dan bisa di akses melalui Internet.
Normalkan
dahulu policy yang ada
|
#iptables
-P INPUT ACCEPT
#iptables
-P OUTPUT ACCEPT
#iptables
-P FORWARD ACCEPT
|
Hapus
semua rule yang ada (Flush)
|
#iptables
-F
|
Siapkan
rule untuk notebook kita agar tidak kena blok, dalam hal ini IP nya adalah
172.16.1.2/24
|
#iptables
-I INPUT -s 172.16.1.2 -j ACCEPT
|
Secara
localhost kita mesti membolehkan akses
|
#iptables
-I INPUT -i lo -j ACCEPT
#iptables
-I OUTPUT -o lo -j ACCEPT
|
Rule
untuk connection tracking, agar kita mudah membuat rule2
|
#iptables
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
Rule
untuk sharing internet
|
#iptables
-t -nat -A POSTROUTING -o eth0 -j MASQUERADE
|
Rule
untuk DNS (asumsi bahwa kita menggunakan DNS ISP)
|
#iptables
-A FORWARD -p tcp -dport 53 -j ACCEPT
#iptables
-A FORWARD -p udp -dport 53 -j ACCEPT
|
Rule
untuk membolehkan windows xp client (172.16.1.2) bisa browsing internet
|
#iptables
-A FORWARD -p tcp -dport 80 -s 172.16.1.2 -j ACCEPT
|
Rule
untuk melakukan port forwarding dari eth0(internet) di port tcp 80 ke webserver
kita di 172.16.1.2
|
#iptables
-t -nat -A PREROUTING -i eth0 -p tcp -dport 80 -j DNAT --to-destination
172.16.1.2:80
|
Rule
untuk membolehkan akses Web dari internet ke Web server kita
|
#iptables
-A FORWARD -p tcp -d 172.16.1.2 -dport 80 -j ACCEPT
|
Memperbolehkan
ping ke webserver 172.16.1.2 :
|
#iptables
-t nat -A PREROUTING -i eth0 -p icmp -j DNAT --to-destination 172.16.1.2:1
|
Forward
paket icmp ke dari eth0 ke IP Tujuan 172.16.1.2
|
#iptables
-A FORWARD -p icmp -d 172.16.1.2 -j ACCEPT
|
Mengaktifkan
fungsi logging agar kita mudah troubleshoot
|
#iptables
-A INPUT -m limit --limit 2/m --limit-burst 2 j LOG log-prefix '** INPUT DROP
** '
#iptables
-A FORWARD -m limit --limit 2/m --limit-burst 2 j LOG log-prefix '** FORWARD
DROP ** '
#iptables
-A OUTPUT -m limit --limit 2/m --limit-burst 2 j LOG log-prefix '** OUTPUT
DROP ** '
|
Terakhir
mengatur default policy menjadi drop
|
#iptables
-P INPUT DROP
#iptables
-P OUTPUT DROP
#iptables
-P FORWARD DROP
|
Jangan
lupa di save
|
#service
iptables save
|
SELESAI






0 komentar:
Posting Komentar