- - PR -
iptableでファイヤウォールを構築したいです。
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-25 17:48
すいません。初歩的な質問で申し訳ありません。
現在CentOS4.1でサーバーを構築してまして、iptablesで ファイヤーウォールを構築したいと思っています。 Webサーバー Apache メールサーバーに Postfix popサーバーに dovecot sshとvsftpdを使っています。 dnsサーバーは内部的に使ってまして、外部からは別で引いています。 現在の状態 #iptables -L Chain INPUT (Policy ACCEPT) target prot opt source destination Chain FORWARD (Policy ACCEPT) target prot opt source destination Chain OUTPUT (Policy ACCEPT) target prot opt source destination こんな感じでした。 #iptables -P INPUT DROP #iptables -P FORWARD DROP #iptables -P OUTPUT DROP #iptables -A INPUT -i lo -j ACCEPT #iptables -A INPUT -p icmp -j ACCEPT #iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #iptables -A INPUT -p tcp -d 192.168.0.2 --dport 22 -j ACCEPT #iptables -A INPUT -p tcp -d 192.168.0.2 --dport 25 -j ACCEPT #iptables -A INPUT -p tcp -d 192.168.0.2 --dport 53 -j ACCEPT #iptables -A INPUT -p udp -d 192.168.0.2 --dport 53 -j ACCEPT #iptables -A INPUT -p udp -d 192.168.0.2 --dport 80 -j ACCEPT #iptables -A INPUT -p udp -d 192.168.0.2 --dport 110 -j ACCEPT こんな感じで本屋やサイトを見ました。ファイヤーウォールを構築し てみようかと思うのですが、 #iptables -A INPUT -p tcp -d 192.168.0.2 --dport 80 -j ACCEPT この場合だと80ポートは192.168.0.2しかアクセスできないとか そういうことでしょうか?192.168.0.2のIPアドレスはサーバーの IPを書けば良いのでしょうか? 80,22,25,110前面的に許可して、それ以外のポートは閉じておきたい のですが、何か良い設定はございませんでしょうか? 53は基本的は開けなくても外部からネームを引いているので閉じておいて pingは3回まで許可して後は打てないみたいなこともしたいです。 初歩的な質問で申し訳ありません。良い設定方法などございましたら、 よろしくお願いします。 | ||||||||||||||||||||
|
投稿日時: 2005-11-25 20:43
こんばんわ.
月並みですが,まず man で確認したり, ご自分で調べてみたりするべきかと. その上で「想定どおりに動かない」なら, 「なぜでしょう?」という話になると思います.
これは日本語としてちょっとよく通じないと思います. netfilter の話とは関係ないですけど, 通信には重要な機能なので気になります.
ごくごく基本的なことなので,まずやってみましょうよ,どうなるか. man iptables とすれば -d の意味がちゃんと書かれているはずです.
「良い」とか「悪い」は「こういう規則性に基づく」から判断できますので, 「単に通信できれば良い」なら普通にその port を INPUT 側で開けてやればよいだけです.
これは意味がわかりません. その host は「名前解決が必要ない」というお話ですか? それとも「外部の DNS server へ名前を引きにいく」のですか? 前者なら一切考慮する必要はないでしょうけど, e_mail server を運用するのに DNS は必ず必要ですよ?
できません. INPUT ばかりですが,OUTPUT は無くてよいのですか? 環境が全くわからないのですが,各 server はどこで動いているのですか? client は内部にあるのですか? その firewall は複数の interface を持っているのでしょうか? そういう条件が積み重なって初めて「こういう設定が better」 というのが見えてきます. 別の書き方をすると「そういった情報がなければ判断のしようがない」 ということです. | ||||||||||||||||||||
|
投稿日時: 2005-11-25 22:08
やりたいことが明確になれば、どの機能を使って組み立てればいいのか、
を調べて実装するのはそんなに難しくないです。 書籍などを参考にしたとのことですが、そのような設計部分も含めて 解説してる情報は多いと思うんだけど、それを理解した上だとしても、 なんかまだ質問が抽象的というか。 ルール的に気になった点: ・いきなりACCEPTして、LOG取得してないけど、試行段階からそれでいいの? →ACCEPTにいきなり飛ばさず、LOGとってACCEPTするようなチェーンを作って、 そちらに飛ばしたほうがよいかと。DROPも同様。 ・その端末で1つのIPしか使ってないなら、-d IPアドレスを指定する意味はあるの? ・勉強用なら止めないけど、ルータのファイアウォール機能で防ぐのが より楽な選択肢だと思います。
--limit-burst
これは同感。ネットワーク構成あってのファイアウォール。 それも分からずにルールが適切かどうかの判断なんてできませんし。 _________________ Mattun Microsoft MVP for Directory Services (Oct 2006-Sep 2007) | ||||||||||||||||||||
|
投稿日時: 2005-11-25 23:41
ファイアーウォールやったら、基本 DROP から開始で。
| ||||||||||||||||||||
|
投稿日時: 2005-11-26 00:51
また学ばせていただきました,ありがとうございます.
ここの > #iptables -P INPUT DROP > #iptables -P FORWARD DROP > #iptables -P OUTPUT DROP 話ではなく? | ||||||||||||||||||||
|
投稿日時: 2005-11-26 01:54
特定の通信をDROPってならまだわかるけど、 それ以外の意味でDROPから開始って、iptablesに限らず どのファイアウォールでも基本じゃないです。 _________________ Mattun Microsoft MVP for Directory Services (Oct 2006-Sep 2007) | ||||||||||||||||||||
|
投稿日時: 2005-11-26 09:01
「ファイアウォール」という単語から、適切なルールを判断するためにはネットワーク構成が必要という流れになっていますが、ジロー様の投稿からは物理的には一台のマシンの中にそれぞれのサービスが動いていて、パケットフィルタリングでセキュリティを高めたいということなのではないかなーと思います。
仮にその前提が正しいとすると、必要なのはINPUTチェインとOUTPUTチェインの設定です。先の投稿ではINPUTの記述しかしていませんので、サーバに入ってくるパケットは許可しても、サーバからクライアントに返すパケットを止めてしまうために通信が成立しません。 http://www.atmarkit.co.jp/flinux/rensai/security05/security05a.html また、@IT様の記事にテンプレート集なるものもありますので、参考になるかと思います。この記事の最初にもありますように、あとは「習うより慣れろ」、トライ&エラーあるのみです。 >Mattun様
自分の中ではパケットフィルタリングにおける「暗黙のdrop/deny」は基本だと思っていたのですが、どのようなポリシーが基本になるとお考えなのでしょうか? | ||||||||||||||||||||
|
投稿日時: 2005-11-26 09:07
それは当たり前ですが、処理的には最後なわけだし、 質問者は全チェーンでDROPポリシーが定義してるわけだから、 DROP云々の話題を言っても。 _________________ Mattun Microsoft MVP for Directory Services (Oct 2006-Sep 2007) |