Higuma's Web iptable NAS DNAT sample

iptables の機能
(1)パケットフィルタリング
(2)NAT機能(NAPTやDNATも可)

ウチのD(default)GWにおける設定
・GWのマシンを本来使うため、完全にルータ化することはない。(そのため、OUTPUTはACCEPTである。)
・内部のマシンもNAPTによって、通信させるようにするが、敢えて制限はかけない。フィルタリングは内部マシンにさせる
 

#
#	2003/4/14
#

#!/bin/bash


#Initialized

iptables -F
iptables -F -t nat

#Default Policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
#iptables -P OUTPUT DROP <- (this machine is router only)

#Loop Back ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

#Internet -> Gateway(ppp0) (Private IP address) DROP
iptables -A INPUT -i ppp0 -d 10.0.0.0/8 -j DROP
iptables -A INPUT -i ppp0 -d 172.16.0.0/12 -j DROP
iptables -A INPUT -i ppp0 -d 192.168.0.0/16 -j DROP

#22(SSH) OPEN
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#23(TELNET) OPEN -> only eth0 Only
iptables -A INPUT -i eth0 -p tcp --syn -m limit --limit 1/s --dport 23 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 23 -m state --state ESTABLISHED -j ACCEPT

#139(Samba) OPEN -> eth0 Only
iptables -A INPUT -i eth0 -p tcp --syn -m limit --limit 1/s --dport 139 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 139 -m state --state ESTABLISHED -j ACCEPT

#PROTECTED PING OF DEATH
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#BROADCAST Packet DROP
iptables -A INPUT -d 255.255.255.255 -j DROP

#Connect Back Packet ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT



#Default Policy
iptables -P FORWARD ACCEPT

# Fowarding 
echo "1" > /proc/sys/net/ipv4/ip_forward

#IP MASQUERADE Configure
iptables -A POSTROUTING -t nat -j MASQUERADE

#Internet -> LAN(eth0) (Private IP address) DROP
iptables -A FORWARD -i eth0 -d 10.0.0.0/8 -j DROP
iptables -A FORWARD -i eth0 -d 172.16.0.0/12 -j DROP
iptables -A FORWARD -i eth0 -d 192.168.0.0/16 -j DROP

#DNAT Configure
#ipbales -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
#