[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:31996] Re: [Q] Which PPP file do I describe IP Masquerade setting?



水原@サンパウロです。
# あと数日で帰国できる予定…。

At Fri, 8 Mar 2002 10:04:53 +0900,
かよこ wrote:
> 行いたいのは、
> (1) PPP 接続後に、ppp0 をデフォルトゲートウェイとし、iptables によるppp0 に対
>  するマスカレード設定を行いたい。
> (2) PPP 切断後に、ppp 接続前の状態にルーティングとマスカレードの設定を戻したい
> という2点です。
> 
> ちなみに、現在の CATV-Modem (eth0 ) に対するiptables の設定は、potato の設定そ
> のままに、/etc/network/interfaces にpre-up, post-down で記述しています。
> # woody 的には別の場所に記述するような気がしてしょうがないのですが、
> # 今のところ手つかずです。
> 
> FAQ かとは思うのですが、/usr/share/doc/ppp/SETUP.gz や、同ディレクトリの
> FAQ.gzを見てもよく分からなかったのです。

私はいまだに potato 環境なので外しているかも知れません。
/etc/ppp/ip-up (シェルスクリプトです) を見ると、PPP コネクション確立の
際にこのスクリプトが呼ばれ、その中で run-parts /etc/ppp/ip-up.d が実行
されることが分かります。run-parts は、そのディレクトリの中にあるスクリ
プトやプログラムを実行してくれるコマンドですから、このディレクトリに
PPP コネクション確立時に実行したいスクリプトを書いておけば良いわけです。
ちなみにマニュアルを読むと分かりますが、実行されるファイル名は英数字と
ハイフンおよびアンダースコアのみからなっていなくてはならず (つまり拡張
子などがついていてはいけない)、シェルを自動的に呼び出してくれないので、
最初の行に明示的に #!/bin/sh とか書いておく必要があります (私は最初、
これではまりました)。

同様に /etc/ppp/ip-down.d にコマンドを書いておけば、PPP コネクション切
断時に実行してくれます。

あと /etc/ppp/peers/provider にでも defaultroute と書いておけば、デフォ
ルトルートの付け外しは pppd がやってくれるはずです。

ちなみに私は以下のようなファイルを置いています。良ければ参考にしてくだ
さい。192.168.1.0/24 がローカルプライベートアドレスです。

# ところで便乗質問ですが、ipchains -L -M と同じこと (マスカレードされ
# ているコネクションの一覧表示) は iptables ではできないのでしょうか?

::::::::::::::
/etc/ppp/ip-up.d/iptables
::::::::::::::
#!/bin/sh

iptables -N ident-from-ppp
iptables -A ident-from-ppp -j LOG --log-prefix "IDENT from $PPP_IFACE: "
iptables -A ident-from-ppp -p tcp -j REJECT --reject-with tcp-reset

iptables -N imap-from-ppp
iptables -A imap-from-ppp -j LOG --log-prefix "IMAP from $PPP_IFACE: "
iptables -A imap-from-ppp -j ACCEPT

iptables -N ssh-from-ppp
iptables -A ssh-from-ppp -j LOG --log-prefix "SSH from $PPP_IFACE: "
iptables -A ssh-from-ppp -j ACCEPT

iptables -N uucp-from-ppp
iptables -A uucp-from-ppp -j LOG --log-prefix "UUCP from $PPP_IFACE: "
iptables -A uucp-from-ppp -s uucp.somewhere.net -j ACCEPT

iptables -N ppp-in

iptables -A ppp-in -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A ppp-in -m state --state NEW -p tcp --dport auth -j ident-from-ppp
iptables -A ppp-in -m state --state NEW -p tcp --dport imap2 -j imap-from-ppp
iptables -A ppp-in -m state --state NEW -p tcp --dport ssh -j ssh-from-ppp
iptables -A ppp-in -m state --state NEW -p tcp --dport uucp -j uucp-from-ppp
iptables -A ppp-in -j LOG --log-prefix "Bad packet from $PPP_IFACE: "
iptables -A ppp-in -j DROP

iptables -I INPUT -i $PPP_IFACE -j ppp-in
iptables -I FORWARD -i $PPP_IFACE -j ppp-in

iptables -t nat -N ppp-masq
iptables -t nat -A ppp-masq -j LOG --log-prefix "MASQUERADE to $PPP_IFACE: "
iptables -t nat -A ppp-masq -j MASQUERADE

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o $PPP_IFACE -j ppp-masq
::::::::::::::
/etc/ppp/ip-up.d/notify
::::::::::::::
#!/bin/sh

email=admin@xxxxxxxxxxxxx

sendmail $email <<EOF
To: $email
Subject: PPP connection re-established

The new IP address is $PPP_LOCAL
EOF
::::::::::::::
/etc/ppp/ip-down.d/iptables
::::::::::::::
#!/bin/sh

iptables -t nat -D POSTROUTING -o $PPP_IFACE -j ppp-masq

iptables -t nat -F ppp-masq
iptables -t nat -X ppp-masq

iptables -D INPUT -i $PPP_IFACE -j ppp-in
iptables -D FORWARD -i $PPP_IFACE -j ppp-in

iptables -F ppp-in
iptables -X ppp-in

iptables -F ident-from-ppp
iptables -X ident-from-ppp

iptables -F imap-from-ppp
iptables -X imap-from-ppp

iptables -F ssh-from-ppp
iptables -X ssh-from-ppp

iptables -F uucp-from-ppp
iptables -X uucp-from-ppp
-- 
水原 <mizuhara@xxxxxxx>