- PR -

iptableでファイヤウォールを構築したいです。

投稿者投稿内容
Jiro
常連さん
会議室デビュー日: 2004/12/25
投稿数: 32
投稿日時: 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回まで許可して後は打てないみたいなこともしたいです。

初歩的な質問で申し訳ありません。良い設定方法などございましたら、
よろしくお願いします。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-11-25 20:43
こんばんわ.

月並みですが,まず man で確認したり,
ご自分で調べてみたりするべきかと.
その上で「想定どおりに動かない」なら,
「なぜでしょう?」という話になると思います.
引用:

ジローさんの書き込み (2005-11-25 17:48) より:

dnsサーバーは内部的に使ってまして、外部からは別で引いています。


これは日本語としてちょっとよく通じないと思います.
netfilter の話とは関係ないですけど,
通信には重要な機能なので気になります.
引用:

#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を書けば良いのでしょうか?


ごくごく基本的なことなので,まずやってみましょうよ,どうなるか.
man iptables とすれば -d の意味がちゃんと書かれているはずです.
引用:

80,22,25,110前面的に許可して、それ以外のポートは閉じておきたい
のですが、何か良い設定はございませんでしょうか?


「良い」とか「悪い」は「こういう規則性に基づく」から判断できますので,
「単に通信できれば良い」なら普通にその port を
INPUT 側で開けてやればよいだけです.
引用:

53は基本的は開けなくても外部からネームを引いているので閉じておいて


これは意味がわかりません.
その host は「名前解決が必要ない」というお話ですか?
それとも「外部の DNS server へ名前を引きにいく」のですか?
前者なら一切考慮する必要はないでしょうけど,
e_mail server を運用するのに DNS は必ず必要ですよ?
引用:

pingは3回まで許可して後は打てないみたいなこともしたいです。


できません.

INPUT ばかりですが,OUTPUT は無くてよいのですか?
環境が全くわからないのですが,各 server はどこで動いているのですか?
client は内部にあるのですか?
その firewall は複数の interface を持っているのでしょうか?

そういう条件が積み重なって初めて「こういう設定が better」
というのが見えてきます.
別の書き方をすると「そういった情報がなければ判断のしようがない」
ということです.
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-11-25 22:08
やりたいことが明確になれば、どの機能を使って組み立てればいいのか、
を調べて実装するのはそんなに難しくないです。
書籍などを参考にしたとのことですが、そのような設計部分も含めて
解説してる情報は多いと思うんだけど、それを理解した上だとしても、
なんかまだ質問が抽象的というか。

ルール的に気になった点:
・いきなりACCEPTして、LOG取得してないけど、試行段階からそれでいいの?
 →ACCEPTにいきなり飛ばさず、LOGとってACCEPTするようなチェーンを作って、
  そちらに飛ばしたほうがよいかと。DROPも同様。
・その端末で1つのIPしか使ってないなら、-d IPアドレスを指定する意味はあるの?
・勉強用なら止めないけど、ルータのファイアウォール機能で防ぐのが
 より楽な選択肢だと思います。


引用:

引用:

pingは3回まで許可して後は打てないみたいなこともしたいです。


できません.


--limit-burst

引用:

環境が全くわからないのですが,各 server はどこで動いているのですか?
client は内部にあるのですか?
その firewall は複数の interface を持っているのでしょうか?


これは同感。ネットワーク構成あってのファイアウォール。
それも分からずにルールが適切かどうかの判断なんてできませんし。
_________________
Mattun
Microsoft MVP for Directory Services
(Oct 2006-Sep 2007)
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2005-11-25 23:41
ファイアーウォールやったら、基本 DROP から開始で。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-11-26 00:51
引用:

Mattunさんの書き込み (2005-11-25 22:08) より:

引用:

引用:

pingは3回まで許可して後は打てないみたいなこともしたいです。


できません.


--limit-burst


また学ばせていただきました,ありがとうございます.
引用:

コブラさんの書き込み (2005-11-25 23:41) より:

ファイアーウォールやったら、基本 DROP から開始で。


ここの
> #iptables -P INPUT DROP
> #iptables -P FORWARD DROP
> #iptables -P OUTPUT DROP
話ではなく?
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-11-26 01:54
引用:

コブラさんの書き込み (2005-11-25 23:41) より:
ファイアーウォールやったら、基本 DROP から開始で。


特定の通信をDROPってならまだわかるけど、
それ以外の意味でDROPから開始って、iptablesに限らず
どのファイアウォールでも基本じゃないです。
_________________
Mattun
Microsoft MVP for Directory Services
(Oct 2006-Sep 2007)
Uta
常連さん
会議室デビュー日: 2004/05/17
投稿数: 37
投稿日時: 2005-11-26 09:01
「ファイアウォール」という単語から、適切なルールを判断するためにはネットワーク構成が必要という流れになっていますが、ジロー様の投稿からは物理的には一台のマシンの中にそれぞれのサービスが動いていて、パケットフィルタリングでセキュリティを高めたいということなのではないかなーと思います。

仮にその前提が正しいとすると、必要なのはINPUTチェインとOUTPUTチェインの設定です。先の投稿ではINPUTの記述しかしていませんので、サーバに入ってくるパケットは許可しても、サーバからクライアントに返すパケットを止めてしまうために通信が成立しません。
http://www.atmarkit.co.jp/flinux/rensai/security05/security05a.html

また、@IT様の記事にテンプレート集なるものもありますので、参考になるかと思います。この記事の最初にもありますように、あとは「習うより慣れろ」、トライ&エラーあるのみです。



>Mattun様
引用:

引用:

コブラさんの書き込み (2005-11-25 23:41) より:
ファイアーウォールやったら、基本 DROP から開始で。


特定の通信をDROPってならまだわかるけど、
それ以外の意味でDROPから開始って、iptablesに限らず
どのファイアウォールでも基本じゃないです。


自分の中ではパケットフィルタリングにおける「暗黙のdrop/deny」は基本だと思っていたのですが、どのようなポリシーが基本になるとお考えなのでしょうか?
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-11-26 09:07
引用:
>Mattun様
引用:

引用:

コブラさんの書き込み (2005-11-25 23:41) より:
ファイアーウォールやったら、基本 DROP から開始で。


特定の通信をDROPってならまだわかるけど、
それ以外の意味でDROPから開始って、iptablesに限らず
どのファイアウォールでも基本じゃないです。


自分の中ではパケットフィルタリングにおける「暗黙のdrop/deny」は基本だと思っていたのですが、どのようなポリシーが基本になるとお考えなのでしょうか?


それは当たり前ですが、処理的には最後なわけだし、
質問者は全チェーンでDROPポリシーが定義してるわけだから、
DROP云々の話題を言っても。
_________________
Mattun
Microsoft MVP for Directory Services
(Oct 2006-Sep 2007)

スキルアップ/キャリアアップ(JOB@IT)