TOPサーバー構築・運用> iptablesの初期設定を実施する
仮想化技術 完全攻略ガイド
セキュアなVM環境を作る

第4回:フィルタリング
著者:宮本 久仁男   2006/10/16
1   2  次のページ
iptablesの初期設定を実施する

   SSHについては、前述のとおりにパスワード認証を無効にしました。これまでにも不要なサービスを起動しないようにして、外部に対してサービスを待ち受けているポートは最小限になっています。サーバーを構築する前には、最低限のフィルタリングは実施しておくのが基本です。

   Linuxで標準的に使われているしくみはiptablesですが、sargeではiptablesのためのスクリプト類は存在しません。このため、以下にあげた内容などからいずれかを実施する必要があります。

  • /etc/network/interfacesに処理を記述する
  • /etc/init.d/iptablesスクリプトを作成する(注3)

表9:実施するフィルタリングの方法

※注3:
/usr/share/doc/iptables/examples/oldinitdscript.gz

   ただし、/etc/init.d/iptablesスクリプトについては、ネットワークサービスが起動される前に実行される必要があります。このため、「起動順序」も確認します。/etc/network/interfacesにiptablesのルール適用を記述する方法は、ネットワークインターフェイスが有効になる「前」にiptablesのルールを適用できるというメリットがあります。


元のフィルタルールを作成する(iptablesで作成する)

   iptablesそのものの解説は本稿では省略します。元のフィルタルールを作成するためのアプローチとしてはいくつかあり、例えば以下のようなものが考えられます。

  • 手動でiptablesコマンドを用いてルールを設定する
  • あらかじめ別のディストリビューションで作成したルールを移植する

表10:フィルタルール作成のアプローチ

   前者は、iptablesを逐次実行し、ルールを追加していくものであり、最終的に完成したルールをiptables-saveを用いて保存します。

   後者は、すでにでき上がっているルールをiptables-saveで保存し、それをDebian用に使うというものです。

   筆者は、本稿で構築するサーバー向けに、リスト12のようなルールを作成しました。

リスト12:iptablesのルール(/etc/fwrules)
iptablesのルール(/etc/fwrules)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   このルールは、もともとはFedora Core 5で作成されたものを改変して使っています。決してベストということはありませんが(注4)、さしあたりこのような形で設定するのだな、と知っていただければよいでしょう。

※注4:
本稿のルールでは、サーバーから外に対する接続は特に制限していませんが、必要に応じてフィルタを実施したほうがよいでしょう。

   また、必要なサービスが他にある場合には、リスト12において「--dport 22 -j ACCEPT」で終る行をコピーし、ルールを追加すれば事足りますが、よほどのことがない限りはDomain-0に対するアクセスはむやみに許可しないほうが賢明です。普通に使う分には、SSHのポートフォワードを用いるなどして、限定されたユーザーのみが接続を行えるようにしておきましょう。

1   2  次のページ

宮本 久仁男
著者プロフィール
宮本 久仁男
某大手SIerに勤務。OSおよびミドルウェア、アプリケーション開発、インターネットサーバの運用管理、社内技術支援などを経て、現在は動向調査業務に従事する。業務の傍ら、大学にも所属(博士後期課程)し、研究生活を送る。あらゆる分野に興味を持ち、それらについて自学自習で学びつつ、成果をコミュニティにフィードバックしたり、研究/検証テーマを模索したりという日々。Microsoft MVP (Windows - Security)というアワードも受賞しているものの、どこにでもいそうなエンジニア風。


INDEX
第4回:フィルタリング
iptablesの初期設定を実施する
  フィルタルールを保存する(iptables-saveを使う)