iptables設定例 PDF 印刷 Eメール
作者: mune   
2008年 6月 29日(日曜日) 14:33

設定例です。

下記記述のスクリプトファイルを設置して実行することで、書き換えが少しは楽な気がしています。

・スクリプト配置ディレクトリ 

 /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
 

 

Add your comment

Your name:
タイトル:
Comment:
Use OpenOffice.org

Blog Calendar

< 6月 2008 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
30          
route20.org, Powered by Joomla! and designed by SiteGround web hosting