[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:36631] (訂正) Re: (解決(1-b)) フレッツ ADSL モアの導入
渡辺です。
(いつもの)自己レスです。Debian と関係ない話題です。
On Tue, 1 Apr 2003 01:32:31 +0900
in [debian-users:36624] (解決(1-b)) フレッツ ADSL モアの導入
WATANABE Takashi <lieuML@xxxxxxxxxxx> wrote:
(中略)
lieuML> [ハマった点 2: SNAT の設定]
lieuML>
lieuML> ${IPTABLES} -t nat -I POSTROUTING -s 127.0.0.1 -o ${PPP_IFACE} -j SNAT --to 219.117.200.217
lieuML> ${IPTABLES} -t nat -I POSTROUTING -s 192.168.10.0/24 -o ${PPP_IFACE} -j SNAT --to 219.117.200.217
lieuML>
lieuML> という部分なのですが、一括してやっていた時には、*最初に* チェ
lieuML> インの末尾に追加(-A)していたので気づかなかったのですが、個別
lieuML> にやる時には、チェインの先頭に挿入(-I)にしないと、先に
lieuML> /etc/init.d/iptables save active での保存によって有効にして
lieuML> ある
lieuML>
lieuML> ${IPTABLES} -t nat -A POSTROUTING -s 127.0.0.1 -j ACCEPT
lieuML> ${IPTABLES} -t nat -A POSTROUTING -s 192.168.10.0/24 -j ACCEPT
lieuML>
lieuML> に取られて(選抜されて)しまい、SNAT できなくなります。
ちょっと、filter テーブルと nat テーブルの使い分けを、もう少
し明確にします。
防衛に使うのを、filter テーブル(の INPUT, FORWARD チェイン)
のみに限定し、今まで確固とした根拠もないまま(何となく不安だっ
たので) DROP としていた nat テーブルの POSTROUTING チェイン
のポリシーを ACCEPT に変更します。
こうすることによって、/etc/ppp/ip-{up,down}.d/ に置くファイ
ル内での設定は単に、
========== 引用・開始 ==========
${IPTABLES} -t filter -A INPUT -i ${PPP_IFACE} -j ppp-in
${IPTABLES} -t filter -A FORWARD -i ${PPP_IFACE} -j ppp-forward
${IPTABLES} -t filter -A FORWARD -o ${PPP_IFACE} -j ppp-out
${IPTABLES} -t filter -A OUTPUT -o ${PPP_IFACE} -j ppp-out
${IPTABLES} -t nat -I POSTROUTING -o ${PPP_IFACE} -j SNAT --to 219.117.200.217
========== 引用・終了 ==========
を up に、-D バージョンを down に置くだけになりました。
結局、ifdown ppp0, ifup ppp0 では、次のように変化します。
インターネット 219.117.200.217(固定) 192.168.10.10/24 ローカルネットワーク
--------------+| (グローバルIP) |Linux BOX| (ローカルIP) |+--------------------
ppp0(on eth1) eth0
※filter テーブルの INPUT チェインでは tcp 80, tcp 25, udp 53
ポートを開ける。
==================== 区切 ====================
# ifdown ppp0
# iptables -t filter -L -nv --line-numbers
Chain INPUT (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 19 1716 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 1039 77923 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 21 2713 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 769 packets, 89177 bytes)
num pkts bytes target prot opt in out source destination
Chain log_n_drop (5 references)
num pkts bytes target prot opt in out source destination
1 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `netfilter '
2 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain ppp-forward (0 references)
num pkts bytes target prot opt in out source destination
1 18 15295 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 0 0 log_n_drop all -- * * 0.0.0.0/0 0.0.0.0/0
Chain ppp-in (0 references)
num pkts bytes target prot opt in out source destination
1 90 23509 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
3 1 48 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
4 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
5 0 0 log_n_drop all -- * * 0.0.0.0/0 0.0.0.0/0
Chain ppp-out (0 references)
num pkts bytes target prot opt in out source destination
1 0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:135:139
2 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:135:139
3 0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:137:139
4 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:137:139
5 0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:445
6 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:445
7 0 0 log_n_drop all -- * * 0.0.0.0/0 10.0.0.0/8
8 0 0 log_n_drop all -- * * 0.0.0.0/0 172.16.0.0/12
9 0 0 log_n_drop all -- * * 0.0.0.0/0 192.168.0.0/16
==================== 区切 ====================
# iptables -t nat -L -nv --line-numbers
Chain PREROUTING (policy ACCEPT 5 packets, 305 bytes)
num pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 7 packets, 538 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 28 packets, 2113 bytes)
num pkts bytes target prot opt in out source destination
==================== 区切 ====================
# ifup ppp0
# iptables -t filter -L -nv --line-numbers
Chain INPUT (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 21 1916 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 1247 92675 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
3 1 84 ppp-in all -- ppp0 * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 21 2713 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
3 0 0 ppp-forward all -- ppp0 * 0.0.0.0/0 0.0.0.0/0
4 0 0 ppp-out all -- * ppp0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 949 packets, 112K bytes)
num pkts bytes target prot opt in out source destination
1 1 84 ppp-out all -- * ppp0 0.0.0.0/0 0.0.0.0/0
Chain log_n_drop (5 references)
num pkts bytes target prot opt in out source destination
1 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `netfilter '
2 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain ppp-forward (1 references)
num pkts bytes target prot opt in out source destination
1 18 15295 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 0 0 log_n_drop all -- * * 0.0.0.0/0 0.0.0.0/0
Chain ppp-in (1 references)
num pkts bytes target prot opt in out source destination
1 91 23593 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
3 1 48 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
4 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
5 0 0 log_n_drop all -- * * 0.0.0.0/0 0.0.0.0/0
Chain ppp-out (2 references)
num pkts bytes target prot opt in out source destination
1 0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:135:139
2 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:135:139
3 0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:137:139
4 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:137:139
5 0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:445
6 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:445
7 0 0 log_n_drop all -- * * 0.0.0.0/0 10.0.0.0/8
8 0 0 log_n_drop all -- * * 0.0.0.0/0 172.16.0.0/12
9 0 0 log_n_drop all -- * * 0.0.0.0/0 192.168.0.0/16
==================== 区切 ====================
# iptables -t nat -L -nv --line-numbers
Chain PREROUTING (policy ACCEPT 5 packets, 305 bytes)
num pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 7 packets, 538 bytes)
num pkts bytes target prot opt in out source destination
1 1 84 SNAT all -- * ppp0 0.0.0.0/0 0.0.0.0/0 to:219.117.200.217
Chain OUTPUT (policy ACCEPT 29 packets, 2197 bytes)
num pkts bytes target prot opt in out source destination
==================== 区切 ====================
ご覧のように、ポリシーが DROP になっているのは、filter テー
ブルの INPUT, FORWARD チェインのみです。※ユーザ定義チェイン
にはポリシーというものが無く、単に呼び出し元チェインに戻りま
す。(-j RETURN でも戻れるので、ちょっとした関数みたいですね)
今回、ルールセットを見直すのに、松田陽一@PAL-NET三鷹さんのやつ:
http://tlec.linux.or.jp/docs/iptables.html
を参考にさせていただきました。(勝手に)ありがとうございます。
※私が最初に参考にしたのは、どこのページか忘れましたが、たぶ
ん、そこの人も松田さんのを参考にしていたんじゃないかと思いま
す。
---
渡辺 崇史(わたなべ たかし)/WATANABE Takashi
lieuML@xxxxxxxxxxx