Selasa, 29 Januari 2013

Setting Gateway di CentOS

Pada kesempatan kali ini Kita akan belajar Firewall iptable di CentOS, kali ini Kita menggunakan vmware workstation. Berikut detailnya :

  1. OS Windows XP sebagai host yang di dalamnya sudah terinstall vmware workstatio
  2. Buat OS 2 buah sebagai guest, 1 linux centos sebagai firewall dan windows sebagai client di bawah firewall.
  3. 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. :)
  4. Pastikan firewall sudah mendapatkan akses internet, dan dari client sudah bisa ping ke firewall.
  5. 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
  6. Setelah semua persiapan selesai, mari kita lanjut ke langkah-langkah konfigurasi iptable di firewall.
  7. 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 :
  1. Mengamankan gateway dari kemungkinan serangan baik dari luar maupun dalam.
  2. 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
  3. Sharing internet, Jika merujuk ke gambar hanya client windows xp saja yang diizinkan bisa mengakses internet
  4. 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