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