Top過去ログ目次掲示板

作成日:2003年07月27日 作成:おやじ
掲示板で過去に質問された内容です。

No.1303 iptablesについて


No.1303 投稿時間:2003年07月27日(Sun) 10:36 投稿者名:三本角 URL:
タイトル:iptablesについて

いつ持っても参考にさせていただいてます。
まじめにunixの勉強しているつもりなのにあとからあとからわからんことが湧き出してくる今日この頃で
す。

今回、あるサイトを参考にしながらカーネルモードPPPOEに挑戦しようとしていきなりつまずきました。
pppのソースをダウンロードしようと
cvs -z5 -d :pserver:cvs@pserver.samba.org:/cvsroot co ppp
とやったところ
connect to pserver.samba.org(66.70.73.150):2401 failed: Connection timed out
と帰ってきました。
そこでとりあえず
$IPTABLES -A INPUT -p tcp --sport 2401 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 2401 -j ACCEPT
を追加して急場をしのいだのですが、「毎回こんな方法を取るのか?」と疑問です。
wgetでも同様なことをしなければなりませんでしたがポートがポコポコ開いていくのがちょと怖いです。
皆さんはどのように対処しているのでしょうか。


No.1304 投稿時間:2003年07月27日(Sun) 12:50 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:ステートフルインスペクションを使えばいいのではないでしょうか。

こんにちは。

> 今回、あるサイトを参考にしながらカーネルモードPPPOEに挑戦しようとしていきなりつまずきました。
> pppのソースをダウンロードしようと
> cvs -z5 -d :pserver:cvs@pserver.samba.org:/cvsroot co ppp
> とやったところ
> connect to pserver.samba.org(66.70.73.150):2401 failed: Connection timed out
> と帰ってきました。
> そこでとりあえず
> $IPTABLES -A INPUT -p tcp --sport 2401 -j ACCEPT
> $IPTABLES -A OUTPUT -p tcp --dport 2401 -j ACCEPT
> を追加して急場をしのいだのですが、「毎回こんな方法を取るのか?」と疑問です。
> wgetでも同様なことをしなければなりませんでしたがポートがポコポコ開いていくのがちょと怖いです。

 下記のように、ステートフルインスペクションを使えばいいのではないでしょうか。
 他の設定にも依存しますが、おやじは外部FTPサーバへのPASVのアクセスの関係で,事実上家庭内から外へ始まる通信は、ポートが相手依存なので全てのポートが通過するようになっているため、CVSも問題なく通過します。
 下記は、上の設定で2401(CVS)向けの新規セッションは通過させ、下は共通の設定ですが一旦セッションが確立した外部からの返りのパケットは通過させるというものです。
 従って、新規では外部からアクセスはできませんので、セキュリティ上は効果があります。wgetもだめだとすると、通常のWebアクセスもできないのではありませんか?

 $IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 2401 -j ACCEPT
 $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


No.1305 投稿時間:2003年07月27日(Sun) 14:26 投稿者名:三本角 URL:
タイトル:Re: ステートフルインスペクションを使えばいいのではないでしょうか。

早速ありがとうございます
ご指摘の通りステートフルインスペクションは利用してますが、先ほどは手っ取り早く開けてしまいました

2401番って何だろう?と思ってしまったけどftpのバックコネクションなんですね、
自分がftpポートモード(家庭内)しか使ってなかったので見落としました。
外部のパックコネクションを使用するサーバーの為の設定が必要だったのですね。

そうなるとバックコネクションポート番号は相手サーバーの設定によるので
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 1024: -j ACCEPT
と書けばいちいち追加設定をしなくてすみますが、
私が1024以下に関してはサーバーごとに
$IPTABLES -A OUTPUT -o $EXT_IF -p $protocol --dport $port -m state --state NEW -j ACCEPT
とやっているのはあまり意味は無いのでしょうか。
どうもセキュリティの危機感がないせいか設定があいまいになってしまいます。

>  下記のように、ステートフルインスペクションを使えばいいのではないでしょうか。
>  他の設定にも依存しますが、おやじは外部FTPサーバへのPASVのアクセスの関係で,事実上家庭内か
ら外へ始まる通信は、ポートが相手依存なので全てのポートが通過するようになっているため、CVSも問題な
く通過します。
>  下記は、上の設定で2401(CVS)向けの新規セッションは通過させ、下は共通の設定ですが一旦セッシ
ョンが確立した外部からの返りのパケットは通過させるというものです。
>  従って、新規では外部からアクセスはできませんので、セキュリティ上は効果があります。wgetもだ
めだとすると、通常のWebアクセスもできないのではありませんか?
>
>  $IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 2401 -j ACCEPT
>  $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


No.1306 投稿時間:2003年07月27日(Sun) 14:54 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:iptablesからみれば、CVSは2401番でサービスしているWebサーバと同じです。

こんにちは。

> 2401番って何だろう?と思ってしまったけどftpのバックコネクションなんですね、
> 自分がftpポートモード(家庭内)しか使ってなかったので見落としました。
> 外部のパックコネクションを使用するサーバーの為の設定が必要だったのですね。

 少し違います。通信形態からすると単に2401番のWebサーバにアクセスするのと同じですから、
OUTPUTで2401向けを開け、返りはステートフルインスペクションで通すという考えです。

> そうなるとバックコネクションポート番号は相手サーバーの設定によるので
> $IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 1024: -j ACCEPT
> と書けばいちいち追加設定をしなくてすみますが、
> 私が1024以下に関してはサーバーごとに
> $IPTABLES -A OUTPUT -o $EXT_IF -p $protocol --dport $port -m state --state NEW -j ACCEPT
> とやっているのはあまり意味は無いのでしょうか。
> どうもセキュリティの危機感がないせいか設定があいまいになってしまいます。

 家庭内から外向けに通信が始まるもの(SYNフラグ付きパケット)は、相手サーバが待ち受けている
ポートに向かって始まり、一般的なサービスのポートは1023以下ですから、このアプローチでいい
のではないでしょうか?FTP・PASVのデータコネクション設定が特殊と思っています。
 家庭内から外向けに通信が始まるもので、気をつけなければならないのは、トロイの木馬みたいな
もので、これはいたちごっこでしょう。仕込まれないようにするのが、防御と思います。


No.1307 投稿時間:2003年07月27日(Sun) 19:26 投稿者名:三本角 URL:
タイトル:Re: iptablesからみれば、CVSは2401番でサービスしているWebサーバと同じです。

お答えありがとうございます。
なるほどcvsはcvsという独自のサーバーということですね。

>  家庭内から外向けに通信が始まるもので、気をつけなければならないのは、トロイの木馬みたいな
> もので、これはいたちごっこでしょう。仕込まれないようにするのが、防御と思います。

サイトを巡っていると「ファイヤーウォールに頼ってはいけない」という言葉を目にしますが、やっぱり楽はできないんですね。
tripwireやらsnortやらlogwatchやらいじってはいるのですが、やはりまだピンとこないというのが本音です。じっくりやります。
いまはカーネルモードpppoeで英文と格闘中です。成果が出たら報告させていただきます。



掲示板▲頁先頭