iptablesは必要か?
2ちゃんねるでVPS関連のスレッドを眺めていると『iptablesって設定する必要あるのか?』という書き込みを割と見かけます。
iptablesというのはLinux系のOSで使われているパケットフィルタリングソフトウェアのことでFreeBSDだとipfwがこれにあたります。パケットフィルタリングソフトウェアの事をもっと一般的にわかり易い言葉で言えばファイアウォールソフトのことになると思います。
僕も専門家ではないので、絶対の自信を持っていう訳ではありませんが、ルーターを介さないでインターネットの直繋ぎをしているパソコンでファイアウォールソフトを導入しないというのがいかに危険かということを考えると、Linuxサーバも同様と考えられiptablesを設定しないことがいかに危険かというのが想像に難しくないかと思います。
また、クラッキングを行うクラッカー側にしてみるとiptablesを設定していないサーバはセキュリティのゆるいサーバとみなされ攻撃対象に可能性が有ります。最近のそういう業界の攻撃方法がどうなっているのかはわかりませんが、人が手動でクラッキングを行う場合、まずポートスキャンで攻撃対象となるサーバで開きっぱなしのポートをスキャンするわけです。でiptablesの設定されていないおっぴろげなサーバだとセキュリティがゆるいサーバだと思われて、詳しく調べられるということになる可能性があるわけです。逆にiptablesがしっかり設定してあるとセキュリティ意識が強いサーバと思われクラッカーにしてみれば面倒くさいということになりそこで諦める可能性があるわけです。
実際、自分がクラッキングを行うと考えたときに効率よくセキュリティのゆるいサーバを探すにはやっぱり、自動で沢山のサーバをポートスキャンしまくって切り分けると思うのです。
下の記事で紹介している掛川警察署の防犯の歌にあるように、泥棒は家の周りに砂利がひいてあったり、人が近寄ると光ランプが付けてある家とかセキュリティ意識の強い家は狙われにくいのと同じ原理です。
◆【音量注意】掛川警察署:アルファルファモザイク – KUMA TYPE
それに、自分がインストールしたソフトが勝手に外向けにサーバとして動作してセキュリティホールになる場合も有ります。脆弱性は別としてsnmpなんかも、MRTG使うためにインストールしたけど程度の認識でインストールする人も割といるのではないかと思います。MySQLやPostgreSQL等のデータベースもそうです。自分で全てのインストールされているソフトウェアとその利用ポートが把握できないのであればiptablesは設定したほうがいいということになります。
最初の設定は面倒ですが、一度設定してしまえばあとは必要なポートさえ開ければいいので、全てのソフトの挙動を把握するより管理は楽になると思います。
とはいっても、乗っ取られるときは乗っ取られてしまうのがサーバです。『XML-RPC for PHP』及び『PEAR』の脆弱性の時にはそれが原因でサーバを乗っ取られた人も結構いるのではないかと思います。自分だけで管理利用しているだけのサーバならまだしも多人数で利用している場合XML-RPCの脆弱性はサーバ管理者に関係なくインストールされているわけで深刻です。このころはXML-RPCをコールしているプログラムを探す為のアクセスが結構ログに残っていました。RedHat 8の頃にbindの脆弱性があったともいます。あの時もこれが原因で乗っ取られたサーバがあったのではないかと思います。webminにも過去にサーバを乗っ取られる脆弱性があったと思います。ちゃんと管理していても運が悪いと対策する前に乗っ取られる時は乗っ取られます。クラッカーの攻撃は実際ハンパないです。iptablesでDROPしないと過去にセキュリティホールとなった様々なポートへの膨大なアクセスがログを圧迫します。
最近の低価格なVPSを借りようという方は主に個人で借りて個人利用の方が多いと思うので、出来れば固定IPにして外部に公開する必要のあるポート以外は自分のIPアドレスからしかアクセスできないようにするのが効果的だと思います。(固定IPじゃなくても自分のプロバイダのアドレス範囲に絞るなど)
乗っ取られた時用に侵入を検知する為にIDSやrkhunterやchkrootkit等のインストールもしたほうがいいと思います。
まあ、乗っ取られていても簡単にOSの再インストールが出来るのがVPSのいいところでもあるとは思います。
VPSでこじんまりやるサーバだと基本的に海外からのアクセスは関係ない人も結構いると思います。攻撃してくる海外からのアクセスをアドレス範囲ごとブロックしたり、アタックを受けたときにiptablesのレベルでパケットフィルタリングして防ぐと色々楽でサーバにも優しいなど色々便利な点があると思います。