ニフティクラウドでファイアウォールを使ってみる!
こんにちは。ちなつです。
今回は、ニフティクラウドの”中の人”であるI角の記事をご紹介します。
(*本記事の最後にI角のプロフィールを掲載しています)
*********************************************************************
こんにちは、ニフティのI角です。
2011年6月16日に、待望のファイアウォール機能がリリースされました。
おくればせながら、今回は、このファイアウォールの基本的な使い方から応用編までご紹介したいと思います。
今までの iptables の運用から開放されるだけでなく、単純なフィルター機能の枠を超えた利用方法もありますので、ぜひ参考にしてご利用いただければと思います。
※現時点では、2011年6月17日以降に新規にお申し込みのお客様にのみ提供しております。
ご契約中のお客様への提供については、「ご契約中のお客様のファイアウォールご利用方法」でお知らせいたします。
今回リリースされた、ファイアウォールの特長や詳しい使い方は以下から。
ファイアウォールの特長
ニフティクラウドのファイアウォールには以下のような特長があります。
フィルター機能
ルールベースのフィルター機能を備えています。
ポート、送信元IPといったルールを作成して、通信を許可していきます。
コンパネ・APIからの操作
操作はすべてコントロールパネル・APIから行えます。
これまでの iptables のように、作成したサーバーにログインして設定する必要はありません。
また、APIからも利用できますので自動設定も可能です。
グルーピング
用途毎にグルーピングを行い、特定のグループからの通信のみを許可するように構成することができます。
これにより、擬似的なN階層構成を作ることも可能です。
セキュア
サーバーより上位のレイヤーでフィルターを行います。
通信はサーバーまで到達しないので、カーネルの脆弱性等をつかれるリスクを低減できます。
ロギング
フィルターで拒否されたログを取得することができます。
不正なアクセスの確認や、ルールが意図どおり動作しているか確認することができます。
ファイアウォールを利用するうえでの注意点
有償版と無償版
設定できるルール数等に制限がある無償版と、本格利用におすすめの有償版があります。
有償版はファイアウォールを適用しているサーバー1台に付き \1.05/時間 の料金がかかります。
無償版で試用してみて、いざ本格導入となったら有償版に切り替えることをおすすめします。
ファイアウォールをはずしたらどうなるか
サーバーからファイアウォールをはずすことは可能になっていますが、ファイアウォールをはずすとすべての通信が許可状態となりますので十分注意してください。
※サーバーの iptables はデフォルトでは off になっています。
iptables と併用する
自前の iptables があるので、それでフィルターをしたい場合は、iptables を on にした上で前述のとおりファイアウォールをはずすことで実現できます。
ファイアウォールと iptables 両方を併用することもできます。
この場合は、ファイアウォール、iptables の順番でフィルターがかかります。
ただし、iptables の場合、通信はサーバーまで到達しますので、あまりおすすめはしません。
ロードバランサー、監視サーバーからの通信
ロードバランサーと基本監視用のサーバーからの通信は、デフォルトで許可されています。
これまでロードバランサーを設定した場合は許可設定が必要でしたが、ファイアウォールの適用後は不要になります。
グループ内の通信
同一グループ内に属するサーバー同士の通信はフィルターは行われません。
ファイアウォールを使ってみる
では、さっそくファイアウォールを作って、実際の動きを確認してみたいと思います。
サーバーを作成するときにファイアウォールを適用する
まずは、ファイアウォールの適用をしてみましょう。サーバー作成の途中で設定することができます。
デフォルトでは、「default(Linux)」「default(Windows)」から選択できます。
Linux は 「default(Linux)」、Windows は「default(Windows)」をひとまず選択しておきましょう。
ルールの中身はどうなってるの?は次で。
ルールを確認してみる
デフォルトグループのルール内容を確認してみましょう。
メニューから「ファイアウォール」をクリック、グループ一覧で「default(Linux)」のラジオボタンをチェックしてみます。
default(Linux) では、SSH(22/tcp)、接続元 0.0.0.0/0(すべて)からの接続を許可しています。
default(Windows) は、RDP(3389/tcp) の接続が同様に許可されています。
ルールを追加してみる
ルールを追加して動きを確認してみたいと思います。
試しに、HTTP の許可ルールを追加して、HTTP でアクセスできるようにしてみます。
まずは、サーバー側で httpd を立ち上げます。
この状態でブラウザからアクセスしてみます。
拒否られました。
ファイアウォールが正常に機能しているようです。
グループにHTTP の許可ルールを追加してみます。
さきほどのファイアウォールグループ一覧画面で「ルール設定を変更する」をクリックします。
ルール設定ダイアログが開きますので、以下の通り設定して追加ボタンをクリック、確認画面で変更するボタンをクリックします。
再度、ブラウザからアクセスしてみましょう。
めでたく表示されました。
ルール追加により 80/tcp が許可され、通信ができるようになりました。
グループを追加してみる
デフォルト状態からグループを追加するには有償版への切り替えが必要です。
「より充実した機能の有償版を利用する」から有償版への切り替えが行えます。
有償版への切り替えができたら「ファイアウォールグループ作成」ボタンからグループの追加ができます。
グループの設定は、グループ名、ルール設定、サーバー選択の順番で進めて行きます。
疑似3階層構成を作ってみる
グループの考え方を利用して擬似的なN階層構成を作る事ができます。
ここでは、Web・アプリ・DBの3階層を作ってみたいと思います。
以下のようなイメージになります。
グループ名 | 用途 | ルール |
web | Webサーバー | 80/tcp のみの通信を許可 |
apl | アプリサーバー | Webサーバーからの 8009/tcp(ajp) の通信のみを許可 |
db | DBサーバー | アプリサーバーからの 3306/tcp(MySQL) の通信のみを許可 |
ついでに、それぞれのサーバーへのログインは、default(Linux) に管理サーバーを配置し、そこを踏み台に SSH でログインする形で設定してみたいと思います。
「Web」のグループ作成
・すべての接続元から HTTP(80/tcp) の通信を許可
・接続元種別にグループを選択し、default(Linux) グループから SSH(22/tcp) の通信を許可
「アプリ」のグループ作成
・web グループから AJP(8009/tcp) の通信を許可
・default(Linux) グループから SSH(22/tcp) の通信を許可
「DB」のグループ作成
・apl グループから MySQL(3306/tcp) の通信を許可
・default(Linux) グループから SSH(22/tcp) の通信を許可
あとは、それぞれの役割のサーバーを作成して、グループに追加していきます。
詳細な手順は割愛しますが、上記のようにグループからの許可通信を駆使し、特定グループに属するサーバーからの通信だけを許可するグループを作ることで、N階層構成を作る事ができます。
また、ログイン経路も管理用のグループからに限定し管理サーバーを踏み台とすることで、インターネットからのアクセスを遮断したセキュアなログイン環境を構成することもできます。
まとめ
基本的なフィルター機能から、3階層構成の応用編までご紹介しましたがいかがでしたでしょうか。
これまでの iptables による設定に比べて、コントロールパネル・APIから設定できるようになり、運用負荷や設定ミスのリスクはだいぶ減るかと思います。
また、機能的にも使い方によっては単純なフィルター機能の枠を超えた利用も可能ですので、ぜひお試しいただければと思います。
(7/1~8/31まで、ニフティクラウドを3万円分まで無料でお試しできるキャンペーンを実施中です)
------------------------------------
プロフィール
ライターネーム:I角
ニフティクラウドのコントロールパネル設計・開発をメインに、
たまにインフラの運用やお手伝いもやっていたりします。
コントロールパネルや新機能の活用方法、アイデアなどを
中心に書いていく予定です。
※エンハンスに向けて鋭意開発中のため不定期掲載
------------------------------------