vine-users ML アーカイブ



[vine-users:059411] iptables と  FORWARD

  • From: koyama <mlac@xxxxxxxxxxxx>
  • Subject: [vine-users:059411] iptables と  FORWARD
  • Date: Sat, 05 Apr 2003 19:36:04 +0900
いつも参考にさせて頂きありがとうございます。k7-koyamaです。

Vine2.6rel1 kernel 2.4.19-0vl26 を使っています。

iptables を利用していますが、FORWARD の設定に関して
FORWARD とはどのようなものか今ひとつ理解できていません。
以下のスクリプトで /etc/init.d/iptables save して
再起動すると、思うように動作しないので、質問させて頂きました。

基本のポリシーを、DROP にした場合、nslookup が動作して
いないので、DNS の部分がおかしいような気がします。

FORWARD の設定をどのようにしたら良いのでしょうか?


基本のポリシーを、ACCEPT にすると動作します。
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT



以下がスクリプトです。

#!/bin/sh
#
# iptables チェーンセット
#

# Define IP Address   sea  で変更

OUT_FACE="eth1"			#外向け
OUT_IP="XXX.XXX.XXX.XXX"	#外向けIP
IN_FACE="eth0"			#内向け
IN_IP="192.168.1.X"		#内向けIP
IN_LAN="192.168.1.0/24"		#内向けネットワーク


%%%%% デフォルトルートは、eth1 に指定してあります。%%%%%%%


LOOP_BACK="127.0.0.0/8"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D="224.0.0.0/4"
CLASS_E="240.0.0.0/5"
B_CAST_SRC="0.0.0.0"
B_CAST_DEST="225.225.225.225"

PREV_PORT="0:1023"
UNPREV_PORT="1024:65535"


### 初期化
/sbin/iptables -t nat -F POSTROUTING
/sbin/iptables -t nat -F PREROUTING
/sbin/iptables -F FORWARD
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -X
/sbin/iptables -Z # zero all counters

### 基本ポリシーとして全てをDROPする
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

## 内側から外側への ipマスカレードの設定  固定IP なので SNAT
/sbin/iptables -t nat -A POSTROUTING  -o $OUT_FACE  -j SNAT --to $OUT_IP

# reply  接続が確立したパケットの応答は許可(ACCEPT)
/sbin/iptables -A INPUT -m state --state ESTABLISH,RELATED -j ACCEPT


### ループバックは全てOK
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT


### 自分自身の外側を発信元にしたパケットはログを残して消滅
/sbin/iptables -A INPUT -i $OUT_FACE -s $OUT_IP -j DROP

/sbin/iptables -A INPUT -i $OUT_FACE -s $LOOP_BACK -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -s $LOOP_BACK -j DROP

/sbin/iptables -A INPUT -i $OUT_FACE -s $CLASS_A -j DROP
/sbin/iptables -A INPUT -i $OUT_FACE -d $CLASS_A -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -s $CLASS_A -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -d $CLASS_A -j DROP

/sbin/iptables -A INPUT -i $OUT_FACE -s $CLASS_B -j DROP
/sbin/iptables -A INPUT -i $OUT_FACE -d $CLASS_B -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -s $CLASS_B -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -d $CLASS_B -j DROP

/sbin/iptables -A INPUT -i $OUT_FACE -s $CLASS_C -j DROP
/sbin/iptables -A INPUT -i $OUT_FACE -d $CLASS_C -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -s $CLASS_C -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -d $CLASS_C -j DROP

/sbin/iptables -A INPUT -i $OUT_FACE -s $B_CAST_DEST -j DROP
/sbin/iptables -A INPUT -i $OUT_FACE -d $B_CAST_SRC -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -s $B_CAST_DEST -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -d $B_CAST_SRC -j DROP

/sbin/iptables -A INPUT -i $OUT_FACE -s $CLASS_D -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -s $CLASS_D -j DROP

/sbin/iptables -A INPUT -i $OUT_FACE -s $CLASS_E -j DROP
/sbin/iptables -A OUTPUT -o $OUT_FACE -s $CLASS_E -j DROP


# LAN-LAN 通信の eth0 内側からの出力は全て許可
/sbin/iptables -A INPUT -i $IN_FACE -s $IN_LAN -j ACCEPT
/sbin/iptables -A OUTPUT -o $IN_FACE -d $IN_LAN -j ACCEPT


## DNS Server TO Server
/sbin/iptables -A INPUT -i $OUT_FACE -p udp --sport 53 -d $OUT_IP --dport
53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p udp \
  -s \ $OUT_IP --sport 53 --dport 53 -j ACCEPT

## DNS Server
/sbin/iptables -A INPUT -i $OUT_FACE -p udp \
  --sport $UNPREV_PORT -d $OUT_IP --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p udp \
  -s $OUT_IP --sport 53 --dport $UNPREV_PORT -j ACCEPT

## DNS Zone転送 
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp \
  -d $OUT_IP --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp ! --syn \
  -s $OUT_IP --sport 53 -j ACCEPT
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp \
  -d $OUT_IP --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp ! --syn \
  -s $OUT_IP --sport 53 -j ACCEPT


# AUTH Client
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp \
  -s $OUT_IP --sport $UNPREV_PORT --dport 113 -j ACCEPT
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp ! --syn \
  --sport 113 -d $OUT_IP --dport $UNPREV_PORT -j ACCEPT

# AUTH Server
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp \
  --sport $UNPREV_PORT -d $OUT_IP --dport 113 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp ! --syn \
  -s $OUT_IP --sport 113 --dport $UNPREV_PORT -j ACCEPT

# SMTP 25  外部へ送信
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp \
  --sport $UNPREV_PORT --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp ! --syn \
  --sport 25 -d $OUT_IP --dport $UNPREV_PORT -j ACCEPT

# SMTP 25  受信
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp \
  --sport $UNPREV_PORT -d $OUT_IP --dport 25 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp ! --syn \
  -s $OUT_IP --sport 25 --dport $UNPREV_PORT -j ACCEPT


#POP 110
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp \
  --sport $UNPREV_PORT -d $OUT_IP --dport 110 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp ! --syn \
  -s $OUT_IP --sport 110 --dport $UNPREV_PORT -j ACCEPT


## WWW CLIENT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp \
  -s $OUT_IP --sport $UNPREV_PORT --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp ! --syn \
  --sport 80 -d $OUT_IP --dport $UNPREV_PORT -j ACCEPT

## WWW 80
/sbin/iptables -A INPUT -i $OUT_FACE -p tcp \
  --sport $UNPREV_PORT -d $OUT_IP --dport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -o $OUT_FACE -p tcp ! --syn \
  -s $OUT_IP --sport 80 --dport $UNPREV_PORT -j ACCEPT


### NTP CLIENT 123  
/sbin/iptables -A OUTPUT -o $OUT_FACE -p udp \
  --sport $UNPREV_PORT --dport 123 -j ACCEPT
/sbin/iptables -A INPUT -i $OUT_FACE -p udp \
  --sport 123 --dport $UNPREV_PORT -j ACCEPT









-- 
koyama <mlac@xxxxxxxxxxxx>