lumayan lah ....



Malem-malem gini kebetulan lagi iseng belajar firewall,  Saya punya script sederhana Firewall buat router menggunakan Debian 6 Squeeze . Topologi jaringannya adalah seperti ini :


internet<---->{etho + tun0(vpn)}router(eth1)<---->lokal


Di router itu cuma ada 3 services yang berjalan, yaitu VPN, Proxy, dan SSH. Nah, rule yang saya buat disini adalah :

1. Semua akses dari lokal ke internet diperbolehkan
2. VPN boleh diakses dari luar.
3. Akses SSH dari luar hanya boleh dari mac address tertentu
4. Akses proxy tidak boleh dari luar, hanya bisa dari dalam saja.
kira-kira rule lengkapnya adalah seperti ini :

# Generated by iptables-save v1.4.8 on Fri Nov 9 19:26:07 2012
*nat
:PREROUTING ACCEPT [660398:44170912]
:POSTROUTING ACCEPT [187:14280]
:OUTPUT ACCEPT [55814:3357369]
#redirect seluruh akses http LAN ke proxy
-A PREROUTING -s 192.168.100.0/22 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#Nat vpn
-A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
#Nat
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Fri Nov 9 19:26:07 2012
# Generated by iptables-save v1.4.8 on Fri Nov 9 19:26:07 2012
*filter
:INPUT DROP [419:60785]
:FORWARD ACCEPT [18077452:13924732564]
:OUTPUT DROP [473:26093]
#Reject akses squid dari luar
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j DROP
#Accept akses yang related,established
-A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# REJECT connections with an invalid state
-A INPUT -m state --state INVALID -j REJECT
#Ping cuma bisa 1/sec
-A INPUT -p icmp -m limit --limit 1/sec -j ACCEPT
# 10 minute lockout if trying to bruteforce baru setelah itu accept ssh
-A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource
-A INPUT -m recent --update --seconds 600 --hitcount 4 --rttl --name SSH --rsource -j REJECT
# Akses ssh dari luar cuma bisa dari mac address gue
-A INPUT -i eth0 -p tcp --dport 22 -m mac --mac-source 7s:fg:92:ad:d8:c5 -j ACCEPT
-A INPUT -i tun0 -p tcp --dport 22 -m mac --mac-source 7s:fg:92:ad:d8:c5 -j ACCEPT
#Akses ssh dari dalem lokal bisa semua
-A INPUT -i eth1 -s 192.168.100.0/22 -p tcp --dport 22 -j ACCEPT
#Accept loopback
-A INPUT -i lo -j ACCEPT
#Accept Openvpn
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
#Accept HTTPS
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
#Perbolehkan semua akses dari lan keluar
-A OUTPUT -s 192.168.100.0/22 -o eth0 -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Fri Nov 9 19:26:07 2012



demikian scrpit firewall yang saya punya, walaupun masih banyak kekurangannya. semoga bisa menjadi referensi tambahan anda dan bermanfaat juga bagi pembaca setia blog saya semua :)

salam dan terima kasih saya SYAMSUWARDIN