雑記など
現在、このサーバーはなんにもサーバーソフト(httpやFTP)が動いていません。
(とりあえずtelnetが動いていますがこれはちょっと別に考えて)
なので、外からのアタックにも安心〜〜〜〜
とんでもねぇ!
例えが適当かどうかわかりませんが、この状態は、
- 大きなビル。部屋がイッパイある。
- まだ、どの部屋にも誰も入居していないので、中はからっぽ。
- 盗まれるものはなんにもなーい!
- ・・・でも、どの部屋も鍵がなく、ドア開けっ放し・・・
みたいなわけです。
使っていないからといって開けっ放しはダメ。ちゃんと鍵を掛け、かつ、守衛さんを置かなくてはいけません。
そんなわけで、外から入ってくるパケット。そして出て行くパケット。これらをちゃんと管理し、制限なり許可なりをしなくてはいけません。これがIPTABLESの役目です。
インストール
IPTABLESは、パッケージとして提供されています。さっそくこれをインストールします。
例によって、/usrの書き込みを可能にしてから行います
# mount /usr -o remount,rw # apt-get install iptables # mount /usr -o remount,ro
iptable の細かい設定はどこかで調べてください。
ただ、私の場合は、rc系のスクリプトを書いて、これで一気にやっています。一度全ての設定を消して、再び最初から設定するというパターンのスクリプトです。
すいませんが、iptableの制限を細かく書くのはどうかと思いますので、具体的な設定はご勘弁ください。
ちなみに、iptableのポリシー。基本的には、ポリシーは全ての接続をDROPにして、明示的に許可したもの以外は入ってこないようにするのが基本だと考えています。
iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
しかし、初期の設定時などは、これだとどこの設定をミスっているのかがわからなくなっちゃう場合がありますよね。
なので、私の場合は、
iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP ・ ・ ・ 明示的に受け入れる設定を書く ・ ・ ・ #====== NO Match LOGing ================ iptables -A INPUT -j LOG --log-level 3 --log-prefix INPUT_NOMATCH_ iptables -A INPUT -j DROP iptables -A OUTPUT -j LOG --log-level 3 --log-prefix OUTPUT_NOMATCH_ iptables -A OUTPUT -j DROP
・・・とこんな感じにしてあります。これなら理屈は同じで、かつ、拒否したパケットの情報が /var/log/message に記録されるので、デバッグが楽です。