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