- - PR -
クライアントPCの名前解決ができない
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-06-03 17:20
こんにちわ.
長い「のちほど」になってしまいました.
Netfilter は元来 kernel の機能の派生なので,kernel modules の設定を書き込む /etc/modules.conf に書いた方が「格好良い」と思われます. post-install ip_conntrack /sbin/modprobe ip_conntrack_ftp post-install iptable_nat /sbin/modprobe ip_nat_ftp とか書いてあげると良いかもしれません. この辺は Internet にも事例が多く公開されていると思いますので,そちらをどうぞ.
やっぱり「格好良い」のがよいでしょう.なのでちょっとだけ. /usr/local/iptables.sh は maintenance のためだけに使うのですよね?で,起動時には /etc/sysconfig/iptables から読ませると.であれば,script の最後の /sbin/iptables-save > /etc/sysconfig/iptables は script に含めない方が宜しいでしょう.設定を変更するにあたり,iptables.sh を編集して新たな rule を書いて,script を流して動作を確認して,問題なさげなら徐に iptables-save するほうが,何となく玄人っぽい気がします.動作確認して不具合があれば,/etc/init.d/iptables restart したり,極端な話 reboot してしまえば元に戻りますよね.で,iptables.sh を丹念に練り上げてから良さそうになったら,iptables-save すれば,smart な気がします. それから,これは「コツ」のようなものですが,Windows 固有の NetBIOS 周り向けに rule を切っておくと「格好良い」かもです.通常でも default rule で drop してくれていますが,NetBIOS まわりの port を 明示的に drop しておくと,不愉快な logging をしなくなってくれるんじゃ無かったかと. 気になるのは ftp 周り.modules 浮かべてるわけですが,data port が 20/tcp 固定ですよね.Windows の IIS の ftp service って high port 使うんではなかったでしたっけ?そういう場合のための設定の仕方も Internet で見かけたと思います. 以上,あくまでご参考までに. | ||||||||||||||||
|
投稿日時: 2004-06-04 15:42
kaz様
アドバイスありがとうございます。
書き直しました。(modules.confではモジュールに対してさまざまな設定が可能なようですね。)
書き直しました。メンテナンスが目的なのだから、動作確認もせずにいきなり保存なんてちょっとごう慢なやりかたでしたね。この設定が絶対正しいって保証はどこにもないのだから......
了解。調べて対応してみます。(はっきりいって、まだ、このアドバイスの意味を理解し切っていません。) さて、自分ではうまく設定できたと思っていたのですがクライアントPCの電源を切って数十分ほどたって再びクライアントPCの電源を入れると、な、な、なんとLANに入れません、もちろん、インターネットもダメ。"ping 192.168.0.1"とすると「...unreachable」だったと思うけど、ようするにサーバーPCに到達できない。というメッセージが表示されます。さっきまでは、ちゃんとつながっていたのに?????? で、冷静につながっていたときの状況を振り返ってみました。まず、すべてのルールをACCEPTにしておいて、つながることを確かめたあと、このルールを適応して、saveしたことを思い出しました。(ポリシーがDROPになるのでOKと判断した) 私の分析>一度接続が確立すると、私の設定を適応しても、問題なくつながる。さらに、クライアントPCをシャットダウンしても、短い時間(正確な時間は分からないが2、3分間くらい)なら次に起動してもちゃんとつながるので、この設定が正しいと思ってしまった。しかし、シャットダウン後、長時間放置したあとで起動するとつながらない。設定を見直すと$FW_IN(eth1)側の設定がほとんどないことに気づく。 私の対策>クライアントPCからのpingが飛ばないということは$FW_INに対するINPUT,OUTOPUT,FORWARDの設定が必要と考え(無い知恵を絞り切り)いろいろ試した結果、下記のようなルールを追加しました。 %%%%%%%%%%%%%%% 追加したルール %%%%%%%%%%%%%%%%%%%%%%%%%% $IPTABLES -A FORWARD -i $FW_IN -p icmp -j ACCEPT $IPTABLES -A INPUT -i $FW_IN -p icmp -j ACCEPT $IPTABLES -A OUTPUT -o $FW_IN -p icmp -j ACCEPT ##$FW_INの許可 $IPTABLES -A INPUT -i $FW_IN -j ACCEPT $IPTABLES -A OUTPUT -o $FW_IN -j ACCEPT $IPTABLES -A FORWARD -i $FW_IN -j ACCEPT ここまで %%%%%%%%%%%%%%%%%%%%%%%%%% しかし、$FW_INの許可 はちょっと問題があるような、つまり、出入り通過すべてOKなのが心配です。が、今の私の知識ではこれがやっとです。もうちょっと勉強してかっちょよくしたいです。 このルールでは数時間後にクライアントPCを起動しても普通にLANやインターネットに入れます。が、問題点もさっき見付かりました。あるホームページからは音声ファイルをロードできません。http://www.hungryforwords.com/Hungryforwords/Sound/Obunsha/eng/s602.wav というやつです。エラーメッセージはhttp 404 - file not foundです。 これも、数日前まではごく普通にロードしてちゃんと聴けていたのですが。 なんでも、一発でうまく行くわけ無いですよね。(httpに関するルールに問題あり?) がんばります。 今週末は、telenet、ftp、ウェブ、メール、DNSサーバーをinstallしてみます。 どこまでできるか楽しみです。 | ||||||||||||||||
|
投稿日時: 2004-06-04 18:19
こんにちわ.
あ,確かに. packet filter の場合は接続が確立したままだと「通っている」ように見えて繋ぎ直すと繋がらなかったりしますね.
firewall そのものへの icmp は受け付けないほうがよろしいのではないかと. むしろ「特定の場所から特定の場所へ」許可するようにしておいて,別途検証用の rule を書いておいたほうが宜しいのではないでしょうか?少なくとも「常時 icmp を通す」というのはあまりやらないほうが宜しいかと. firewall inside への接続許可は,例えば「ssh だけ accept する」としたら如何でしょう?なんでも accept するといざという場合に取り返しがつかなくなるかと.さらに,前述の NetBIOS 周りの packet を叩き落すのは,まさにこの rule と相反することになりますね. どのような pc をお使いかわかりませんが,自分は敢えて firewall に入出力の interface を繋げず,serial console で使っています.なので,firewall に対しては inside からの ssh しか繋がりません.緊急時は serial cable を繋いで console から操作してしまいます. ※もっとも Linux ではなく *BSD ですが...
これ,自分のところからも Not found だったりしますが...
firewall に daemon を浮かべるのでしょうか?であれば,危険ではないかと. firewall それ自体は「通信を制御するだけ」として,それ以外の役割を宛がわないほうが「強固」と言えます.浮かべた daemon の脆弱性をもろに引き受けますから. もっとも,個人的に「学ぶため」ならそこまでか頑なになる必要は無いと思います.それぞれの server の「個体防御」という側面を学べますしね.いずれにせよ,www server や DNS server や SMTP relay server などの「個体防御」と,純粋な firewall という考え方としての「領域防衛」とは「守るものが違う」ので,多少考え方も変わってくることは念頭においたほうが宜しいでしょう. 以上,余計なことですが... | ||||||||||||||||
|
投稿日時: 2004-06-09 15:21
kaz様
アドバイスありがとうございます。 file not foundの件はサポートにメールして返答待ちです。
の助言を元に, $IPTABLES -A FORWARD -i $FW_IN -p icmp -j ACCEPT $IPTABLES -A INPUT -i $FW_IN -p icmp -j ACCEPT $IPTABLES -A OUTPUT -o $FW_IN -p icmp -j ACCEPT は,すべて削除し, $IPTABLES -A FORWARD -i $FW_IN -j ACCEPT を $IPTABLES -A FORWARD -i $FW_IN -o $FW_OUT -j ACCEPT $IPTABLES -A FORWARD -i $FW_OUT -o $FW_IN -j ACCEPT としてみました。しかし,これもeth0とeth1の間のパケットの転送がすべて許可されているので問題あるのかも。とにかく,いろいろ試してルールを充実させていきます。
私が今,参考にしている本「自宅サーバー構築 linux7.2 /ラトルズ社」(基本設定はすべてこの本の通り)にはファイアーウォールのことにはあまり触れられていませんで,とにかくwwwやftpやメールサーバーなどを1台のPCで構築できると書いてあります。(私は,サーバーの構築がファイアーウォールとどれだけ密接に関係しているか理解できていませんでした。PC1台あれば何でもOKと思っておりました。) お恥ずかしい話ですが,kaz様の前述のアドバイスの意味があまり理解でいないでおりました。で,インターネットでサーバーの構築を調べているうちに,要は,ファイアーウォール用のPCとサーバー用のPCを分けておくことがセキュリティ上安全であるということが判明しました。が,さらにもう一台のPCを用意するには経済的にも物理的にも,技術的にもちょっとばかり壁がありまして,一応,危険を承知の上で,1台のPCでサーバーを立てようと考えております。で,できるだけ,早い時期にあと1台PCを手に入れて堅牢なサーバーに仕上げていきたいと考えております。 その前に,linuxのコマンドの使い方を勉強しなくては.....では,またよろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2004-06-09 15:37
こんにちわ.
なのであれば,SELinux を使う,VMware を使うなどの方法も考えられますが,それぞれ「難解」「買わなきゃ」という話があるので,User Mode Linux を使われたら如何かと. http://www.atmarkit.co.jp/flinux/special/uml/uml01.html 個人的に会社で「使わせて」という向きに開放する場として活用したりしてます.オイタが過ぎるといきなり容赦なく停止したりしてます... ご参考までに. | ||||||||||||||||
|
投稿日時: 2004-06-09 16:19
kaz様
アドバイスありがとうございます。 さっそく読ませて頂きました。 (今の私のレベルではどこまで理解できているか,ちと疑問ですが。) いろんな技があるのですね。 linuxがもう一個,今のサーバーPC上に載っかるということですか。 それをファイアーウォールにもサーバーにも使えるってことですね。 私なりに解釈しました。が,とにかく,「あたって砕けろ!」精神でいろいろやってみます。 |
«前のページへ
1|2|3