[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