|
設定例です。 下記記述のスクリプトファイルを設置して実行することで、書き換えが少しは楽な気がしています。 ・スクリプト配置ディレクトリ /usr/local/fw ここにスクリプトファイルを入れておきます。(iptables.shなどとし、実行権をつける。) ・IPアドレス記載テキストファイル /usr/local/fw/iplist IPアドレスを記載したテキストファイルを入れておきます。 1ファイル1IPアドレスなので効率悪いですが、あまり頻繁にいじくるわけではないので、単純な構造の方が自分は分かりやすい。 ・スクリプト本体 #!/bin/sh ### IPaddress Mapping ########################################## IPG1=`cat /usr/local/fw/iplist/iplist_grobal1` IPG2=`cat /usr/local/fw/iplist/iplist_grobal2` IPL1=`cat /usr/local/fw/iplist/iplist_local1` IPL2=`cat /usr/local/fw/iplist/iplist_local2` IPL3=`cat /usr/local/fw/iplist/iplist_local3` IPL4=`cat /usr/local/fw/iplist/iplist_local4` IPLM=`cat /usr/local/fw/iplist/iplist_localmainte` IPHS=`cat /usr/local/fw/iplist/iplist_hostserver` ################################################################ # # Policy initialize # iptables -P INPUT ACCEPT iptables -F iptables -t nat -F iptables -X iptables -Z ################################################################ # # Policy setting # iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -N INDROP iptables -N OUTDROP iptables -N FWDDROP ################################################################ # # INPUT Setting # ## ping echo and reply ## iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT ## local packet ## iptables -A INPUT -i lo -j ACCEPT ## For Maintenance ## iptables -A INPUT -i eth1 -s $IPLM -p all -j ACCEPT ## Server port ## #>>> WAN INPUT <<< iptables -A INPUT -i eth0 -s $IP1 -p icmp -j ACCEPT iptables -A INPUT -i eth0 -s $IP2 -p icmp -j ACCEPT #iptables -A INPUT -i eth0 -s $IP1 -p tcp --dport 20 -j ACCEPT #iptables -A INPUT -i eth0 -s $IP2 -p tcp --dport 20 -j ACCEPT #iptables -A INPUT -i eth0 -s $IP1 -p tcp --dport 21 -j ACCEPT #iptables -A INPUT -i eth0 -s $IP2 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -i eth0 -s $IP1 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth0 -s $IP2 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth0 -s $IP1 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth0 -s $IP2 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth0 -s $IP1 -p tcp --dport 8080 -j ACCEPT iptables -A INPUT -i eth0 -s $IP2 -p tcp --dport 8080 -j ACCEPT #>>> LAN INPUT <<< #>>>> Maintenance IP <<<< iptables -A INPUT -i eth1 -s $IPLM -p icmp -j ACCEPT #iptables -A INPUT -i eth1 -s $IPLM -p tcp --dport 20 -j ACCEPT #iptables -A INPUT -i eth1 -s $IPLM -p tcp --dport 21 -j ACCEPT iptables -A INPUT -i eth1 -s $IPLM -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth1 -s $IPLM -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth1 -s $IPLM -p tcp --dport 8080 -j ACCEPT #>>>> User IP <<<< iptables -A INPUT -i eth1 -s $IPL1 -p tcp --dport 25 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p tcp --dport 25 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p tcp --dport 25 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL1 -p tcp --dport 110 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p tcp --dport 110 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p tcp --dport 110 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL1 -p tcp --dport 123 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p tcp --dport 110 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p tcp --dport 110 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL1 -p tcp --dport 137 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p tcp --dport 137 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p tcp --dport 137 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL1 -p udp --dport 137 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p udp --dport 137 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p udp --dport 137 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL1 -p udp --dport 138 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p udp --dport 138 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p udp --dport 138 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL1 -p tcp --dport 139 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p tcp --dport 139 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p tcp --dport 139 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL1 -p tcp --dport 8080 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL2 -p tcp --dport 8080 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL4 -p tcp --dport 8080 -j ACCEPT iptables -A INPUT -i eth1 -s $IPL3 -d 192.168.105.1/32 -p all -j INDROP iptables -A INPUT -i eth1 -s $IPL3 -d 192.168.104.0/24 -p all -j INDROP iptables -A INPUT -i eth1 -s $IPL3 -p all -j ACCEPT #>>>already session<<<< iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -j INDROP iptables -P INPUT DROP ################################################################ # # OUTPUT Setting # ## OUTPUT Local-IP Drop ######################################## iptables -A OUTPUT -d 10.0.0.0/8 -j OUTDROP iptables -A OUTPUT -d 172.16.0.0/12 -j OUTDROP iptables -A OUTPUT -o eth0 -d 127.0.0.0/8 -j OUTDROP iptables -A OUTPUT -o eth1 -d 127.0.0.0/8 -j OUTDROP iptables -A OUTPUT -o eth1 -d $IPL1 -j ACCEPT iptables -A OUTPUT -o eth1 -d $IPL2 -j ACCEPT iptables -A OUTPUT -o eth1 -d $IPL3 -j ACCEPT iptables -A OUTPUT -o eth1 -d $IPL4 -j ACCEPT iptables -A OUTPUT -o eth1 -d $IPLM -j ACCEPT iptables -A OUTPUT -d 192.168.0.0/16 -j OUTDROP ## Windows port Drop ## iptables -A OUTPUT -o eth0 -p tcp --dport 135:139 -j OUTDROP iptables -A OUTPUT -o eth0 -p tcp --sport 135:139 -j OUTDROP iptables -A OUTPUT -o eth0 -p tcp --dport 445 -j OUTDROP iptables -A OUTPUT -o eth0 -p tcp --sport 445 -j OUTDROP iptables -A OUTPUT -o eth0 -p udp --dport 135:139 -j OUTDROP iptables -A OUTPUT -o eth0 -p udp --sport 135:139 -j OUTDROP iptables -A OUTPUT -o eth0 -p udp --dport 445 -j OUTDROP iptables -A OUTPUT -o eth0 -p udp --sport 445 -j OUTDROP #iptables -P OUTPUT ACCEPT ################################################################ # # FORWARD Setting [SNAT(masquerade)] # ## Proxy access (souce) ## iptables -A FORWARD -s $IPL1 -d $IPHS -p tcp --dport 8080 -j ACCEPT iptables -A FORWARD -s $IPL2 -d $IPHS -p tcp --dport 8080 -j ACCEPT iptables -A FORWARD -s $IPL4 -d $IPHS -p tcp --dport 8080 -j ACCEPT ## ICMP access (souce) ## iptables -A FORWARD -s $IPL1 -p icmp -j ACCEPT iptables -A FORWARD -s $IPL2 -p icmp -j ACCEPT iptables -A FORWARD -s $IPL4 -p icmp -j ACCEPT ## Internet access (souce) ## iptables -A FORWARD -s $IPL1 -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -s $IPL2 -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -s $IPL4 -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -s $IPL1 -p udp --dport 53 -j ACCEPT iptables -A FORWARD -s $IPL2 -p udp --dport 53 -j ACCEPT iptables -A FORWARD -s $IPL4 -p udp --dport 53 -j ACCEPT iptables -A FORWARD -s $IPL1 -p tcp --dport 110 -j ACCEPT iptables -A FORWARD -s $IPL2 -p tcp --dport 110 -j ACCEPT iptables -A FORWARD -s $IPL4 -p tcp --dport 110 -j ACCEPT ## Meeting-Room access (souce) ## iptables -A FORWARD -s $IPL3 -j ACCEPT ## Maintenance access (souce) ## iptables -A FORWARD -s $IPLM -j ACCEPT ## Proxy access (destination) ## iptables -A FORWARD -d $IPL1 -p tcp --sport 8080 -j ACCEPT iptables -A FORWARD -d $IPL2 -p tcp --sport 8080 -j ACCEPT iptables -A FORWARD -d $IPL4 -p tcp --sport 8080 -j ACCEPT ## ICMP access (destination) ## iptables -A FORWARD -d $IPL1 -p icmp -j ACCEPT iptables -A FORWARD -d $IPL2 -p icmp -j ACCEPT iptables -A FORWARD -d $IPL4 -p icmp -j ACCEPT ## Internet access (destination) ## iptables -A FORWARD -d $IPL1 -p tcp --sport 25 -j ACCEPT iptables -A FORWARD -d $IPL2 -p tcp --sport 25 -j ACCEPT iptables -A FORWARD -d $IPL4 -p tcp --sport 25 -j ACCEPT iptables -A FORWARD -d $IPL1 -p udp --sport 53 -j ACCEPT iptables -A FORWARD -d $IPL2 -p udp --sport 53 -j ACCEPT iptables -A FORWARD -d $IPL4 -p udp --sport 53 -j ACCEPT iptables -A FORWARD -d $IPL1 -p tcp --sport 110 -j ACCEPT iptables -A FORWARD -d $IPL2 -p tcp --sport 110 -j ACCEPT iptables -A FORWARD -d $IPL4 -p tcp --sport 110 -j ACCEPT ## Meeting-Room access (destination) ## iptables -A FORWARD -d $IPL3 -j ACCEPT ## Maintenance access (destination) ## iptables -A FORWARD -d $IPLM -j ACCEPT #iptables -A FORWARD -j FWDDROP #iptables -P FORWARD DROP ################################################################ # # Masquerade Setting # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ################################################################ # # Logging and Drop setting # ## INPUT-IP Drop ## iptables -A INDROP -j LOG --log-prefix 'UNDEFIND_INPUT:' --log-level=3 -m limit --limit 1/s --limit-burst 10 iptables -A INDROP -j DROP ## OUTPUT-IP Drop ## iptables -A OUTDROP -j LOG --log-prefix 'UNDEFIND_OUTPUT:' --log-level=3 -m limit --limit 1/s --limit-burst 10 iptables -A OUTDROP -j DROP ## FORWARD-IP Drop ## iptables -A FWDDROP -j LOG --log-prefix 'UNDEFIND_FWD:' --log-level=3 -m limit --limit 1/s --limit-burst 10 iptables -A FWDDROP -j DROP ################################################################ # # Enable NAT # echo 1 > /proc/sys/net/ipv4/ip_forward ################################################################ # # etc.. # ## SYN Flood defense ## echo 1 > /proc/sys/net/ipv4/tcp_syncookies ## module for FTP ## modprobe ip_conntrack_ftp modprobe ip_nat_ftp ## Setting SAVE ## /etc/init.d/iptables save
|