[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:24975] Re: ipchains のログ機能
こんばんわ.張と申します.
私もそれほど詳しいわけではないですが,補足させてください.
>山内です。
>
>> こんにちは。松田陽一@三鷹です。
>>
>> > TCPの場合、コネクションという概念があって、コネクション開設要求(SYN)
>> > に対する応答(SYN, ACK)以降、全てのパケットにACKが設定されます。
>> > なので、ACKが付いていれば応答だ、という判断になります。
>>
>> なるほど、 ACK が付されているパケットは許容する、というロジックが
>> 含まれているのですね。
>> ということは、 ipchains がカーネルに設定するルールの対象のパケッ
>> トは、 SYN が付されているパケットにおいて適用される訳ですね。
>
>おそらく (^^;;;
SYN パケットのみにルールを適用するには -y(または -syn) オプションを
つけないといけませんね.通常のルールは,総てのパケットに適用されます.
内部からの要求に対する外部からの応答と,外部からの要求とを区別する
方法としては,UNIXでは1〜1023のポートは特権ポートとなっていて,通常
のアプリケーションがそこから発呼することはないですから,乱暴に言えば
1〜1023のポートへのパケットは外部からの接続要求,1024以上のポート
へのパケットは内部からの要求に対する応答とみなすことができます.
これをコーディングすると,
#ipchains -A input -i eth2 -j inet-in
・・・・(中略)・・・・
#ipchains -A inet-in -d 0.0.0.0/0 1024:65535 -p tcp -j ACCEPT
#ipchains -A inet-in -d 0.0.0.0/0 1024:65535 -p udp -j ACCEPT
#ipchains -A inet-in -d 0.0.0.0/0 smtp -p tcp -j ACCEPT
#ipchains -A inet-in -d 0.0.0.0/0 domain -p udp -j ACCEPT
#ipchains -A inet-in -d 0.0.0.0/0 http -p tcp -j ACCEPT
・・・・(許可するポートを列挙)・・・・
#ipchains -A inet-in -j DENY -l
こうしておくと,許可されていない低位ポートへの要求があると,ログに
記録されるようになります(NetBIOS関連やimap,pop,ftpなどが多い).
昔は,DNSの問い合わせには53番ポートから呼び出すとか,FTPのデータ
転送は20番だとかありましたが,現在のソフトはたいてい(たとえば
BIND8だと,わざわざquery-source を指定しない限り)高位ポートを
使用するようになっているはずですので,あまり問題ないでしょう.
もちろん X11 のように1024以上のポートでlistenしているプログラムも
ありますので,その場合は個別に塞ぐ必要がありますが,通常 fire wall
上でそのようなプログラムは動いていないと思います.念のために
netstat -l で調べてみるとよいでしょう.当方の fire wall では,
1024以上のポートをlistenしているプログラムはありませんでした.
ただしこの話は,IPマスカレードを用いて,外部から直接,内部のホスト
を呼び出すことができない場合ですので,DMZをおく場合のように,各
ホストにグローバルアドレスがふられているときは,DMZ上のホストの
listenしているポートをすべて調べて,ホスト毎に許可・不許可のルール
を設定する必要があるでしょう.
---------------------------------------------------
京都大学大学院医学研究科
感覚運動系病態学講座 形成外科学領域 張 弘富
--------------------------------------------------------------------
京都大学大学院 医学研究科 感覚運動系病態学講座 形成外科学領域
大学院生
張 弘富 <tefutefu@xxxxxxxxxxxxxxxxxx>
TEL 075-751-3613