Simple firewall with Iptables
Postingan kali ini akan mencoba membuat Firewall sederhada dengan menggunakan iptables.
Topologi dibawah menggunakan PC-router dengan ubuntu sebagai OS. PC-router memiliki dua buah interface yaitu eth0 (192.168.1.2/24) dan eth1 (0/0). Interface eth1 digunakan sebagai InterVlan Routing sekaligus firewall.
Sebelumnya kita mendeskripsikan aturan (policy) untuk masing-masing network :
No. | Subnet | Service | Traffic | Port Number | Policy | |
Dari | Menuju | |||||
1 | Lab01 | tcp,udp,icmp | Lab01 | Lab02 | all | Accept |
tcp,udp | Lab01 | Admin | tcp,udp | Reject | ||
icmp | Lab01 | Admin | icmp | Accept | ||
Tcp,udp,icmp | Lab01 | Internet | All | Accept | ||
2 | Lab02 | tcp,udp,icmp | Lab02 | Lab01 | all | Accept |
tcp, udp | Lab02 | Admin | tcp,udp | Reject | ||
Tcp.udp,icmp | Lab02 | Internet | All | Accept | ||
icmp | Lab02 | Admin | icmp | Accept | ||
3 | Admin | Tcp,udp,icmp | admin | internet | all | accept |
Let’s get started :
Konfigurasi Interface eth0
smeagoll@mordor:~$sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0
Jangan lupa isi DNS address
smeagoll@mordor:~$sudo vi /etc/resolv.conf
kemudian isi dns yang diberikan oleh ISP
Instalasi packet Vlan pada ubuntu
smeagoll@mordor:~$sudo apt-get install vlan
mengaktifkan modul 802.1Q
smeagoll@mordor:~$modprobe 8021q
untuk membuat vlan yang diinginkan sesuai dengan topologi melalui interface eth0
smeagoll@mordor:~$sudo vconfig add eth1 10
smeagoll@mordor:~$sudo vconfig add eth1 11
smeagoll@mordor:~$sudo vconfig add eth1 12
Selanjutnya adalam membuat sub-interface pada eth0 untuk mengakses masing-masing vlan. Sebelumnya perlu diperhatikan bahwa eth0 tidak perlu diberi alamat ip.
smeagoll@mordor:~$sudo ifconfig eth1 0.0.0.0 up
smeagoll@mordor:~$sudo ifconfig eth1.10 192.168.10.1 broadcast 192.168.10.255 netmask 255.255.255.0 up
smeagoll@mordor:~$sudo ifconfig eth1.11 192.168.11.1 broadcast 192.168.11.255 netmask 255.255.255.0 up
smeagoll@mordor:~$sudo ifconfig eth1.12 192.168.12.1 broadcast 192.168.12.255 netmask 255.255.255.0 up
selanjutnya adalah membuat linux untuk memforward packet, sebelumnya pastikan bahwa ip_forward telah aktif caranya :
smeagoll@mordor:~$sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Setelah itubuat routing untuk memforward packet antar vlan:
smeagoll@mordor:~$route add -net 192.168.10.0 netmask 255.255.255.0 eth1.10
smeagoll@mordor:~$route add -net 192.168.11.0 netmask 255.255.255.0 eth1.11
smeagoll@mordor:~$route add -net 192.168.12.0 netmask 255.255.255.0 eth1.12
Agar Vlan 10, 11 dan Vlan12 dapat mengakses internet diperlukan NAT, tetapi sebelumnya default route harus diarahkan ke GW :
smeagoll@mordor:~$sudo route add default gw 192.168.1.1
smeagoll@mordor:~$sudo iptables -t nat -A POSTROUTING -0 eth0 -j MASQUERADE
Langkah selanjutnya adalah membuat firewall sesuai aturan yang dibuat :
Accept icmp traffic from Lab01 to Lab02 dan sebaliknya
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.10 -o eth1.11 -p icmp -s 192.168.10.0/24 -d 192.168.11.0/24 -j ACCEPT
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.11 -o eth1.10 -p icmp -s 192.168.11.0/24 -d 192.168.10.0/24 -j ACCEPT
Accept icmp traffic from Lab01 to Admin dan sebaliknya
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.10 -o eth1.12 -p icmp -s 192.168.10.0/24 -d 192.168.12.0/24 -j ACCEPT
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.12 -o eth1.10 -p icmp -s 192.168.12.0/24 -d 192.168.10.0/24 -j ACCEPT
Reject all tcp,udp traffic from Lab01 to Admin
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.10 -o eth1.12 -s 192.168.10.0/24 -d 192.168.12.0/24 -j REJECT
Accept icmp traffic from Lab02 to Lab01 dan sebaliknya
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.11 -o eth1.10 -p icmp -s 192.168.11.0/24 -d 192.168.10.0/24 -j ACCEPT
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.10 -o eth1.11 -p icmp -s 192.168.10.0/24 -d 192.168.11.0/24 -j ACCEPT
Accept icmp traffic from Lab02 to Admin dan sebaliknya
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.11 -o eth1.12 -p icmp -s 192.168.11.0/24 -d 192.168.12.0/24 -j ACCEPT
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.12 -o eth1.11 -p icmp -s 192.168.12.0/24 -d 192.168.11.0/24 -j ACCEPT
Reject all tcp,udp traffic from Lab01 to Admin
smeagoll@mordor:~$sudo iptables -A FORWARD -i eth1.11 -o eth1.12 -s 192.168.11.0/24 -d 192.168.12.0/24 -j REJECT
keren turtorial nya lengkap lagi, makasih mau berbagi ilmu nya.
btw pak anjik yg ngajar jarkom masih ngajarkah di stikom sby ?
Pak Anjik masih Aktif di STIKOM Surabaya
ooo…
soal nya terakhir main ke situ buanyak banget yg berubah, selain denger info mengenai dosen tetap yg banyak pindah jadi PNS seperti pak solik yg ngajari aku dulu soal algoritma perograman. selain itu sekarang ternyata kampus bener” udah ngak boleh merokok di dalam kampus termasuk di cafe atas >.< padahal dulu tempat paling di sukai buat nongrong, bahas kuliah ampe belajar jaringan wifi ya di cafe itu "kopma". selain itu pegawai kopma juga dah banyak yg keluar, jadi kayak org bloon pas main kesana ngak kenal sapa" lagi saya "macam org kyk maba baru masuk 1 hari".
oh ya kyk nya dulu aku ngak pernah di ajar pak dewa nih. salam kenal aja dari alumni ^^
asli keren, biasa pake mikrotik buat VLAN, ternyata linux laennya malah lebih canggih…mantap…
Tutorialnya sangat berguna, trims sharingnya..
mantap dah.. akhirnya yang gua cari2 ketemu juga..
tengkyu sudah bantu tugas kuliah gue bro.. hehe..
mantap sekali,,,,, hebat… kapan-kapan bisa belajar donk pak….
Terimakasih tulisannya. Bermanfaat utuk saya sebagai pemula, sekarang sedang mencari sumber2ya untuk merangkak ke 7 layers firewall..
maksih masbro 😀
boleh dicoba pak…
thnx sharing elmu nya 🙂
tutorialnya cukup mudah dimengerti pak …. kira2 ada yang menggunakan OS Centos atau tidak ??