本文へジャンプします。

ニフティクラウドでファイアウォールを使ってみる!

こんにちは、ニフティのいちかくです。
2011年6月16日に、待望のファイアウォール機能がリリースされました。

おくればせながら、今回は、このファイアウォールの基本的な使い方から応用編までご紹介したいと思います。
今までの iptables の運用から開放されるだけでなく、単純なフィルター機能の枠を超えた利用方法もありますので、ぜひ参考にしてご利用いただければと思います。

※現時点では、2011年6月17日以降に新規にお申し込みのお客様にのみ提供しております。
ご契約中のお客様への提供については、「ご契約中のお客様のファイアウォールご利用方法」でお知らせいたします。

今回リリースされた、ファイアウォールの特長や詳しい使い方は以下から。

ファイアウォールの特長

ニフティクラウドのファイアウォールには以下のような特長があります。

フィルター機能

ルールベースのフィルター機能を備えています。
ポート、送信元IPといったルールを作成して、通信を許可していきます。

コンパネ・APIからの操作

操作はすべてコントロールパネル・APIから行えます。
これまでの iptables のように、作成したサーバーにログインして設定する必要はありません。
また、APIからも利用できますので自動設定も可能です。

グルーピング

用途毎にグルーピングを行い、特定のグループからの通信のみを許可するように構成することができます。
これにより、擬似的なN階層構成を作ることも可能です。

セキュア

サーバーより上位のレイヤーでフィルターを行います。
通信はサーバーまで到達しないので、カーネルの脆弱性等をつかれるリスクを低減できます。

ロギング

フィルターで拒否されたログを取得することができます。
不正なアクセスの確認や、ルールが意図どおり動作しているか確認することができます。

ファイアウォールを利用するうえでの注意点
有償版と無償版

設定できるルール数等に制限がある無償版と、本格利用におすすめの有償版があります。
有償版はファイアウォールを適用しているサーバー1台に付き 1.05/時間 の料金がかかります。
無償版で試用してみて、いざ本格導入となったら有償版に切り替えることをおすすめします。

Premium2

ファイアウォールをはずしたらどうなるか

サーバーからファイアウォールをはずすことは可能になっていますが、ファイアウォールをはずすとすべての通信が許可状態となりますので十分注意してください。
※サーバーの iptables はデフォルトでは off になっています。

iptables と併用する

自前の iptables があるので、それでフィルターをしたい場合は、iptables を on にした上で前述のとおりファイアウォールをはずすことで実現できます。
ファイアウォールと iptables 両方を併用することもできます。
この場合は、ファイアウォール、iptables の順番でフィルターがかかります。
ただし、iptables の場合、通信はサーバーまで到達しますので、あまりおすすめはしません。

ロードバランサー、監視サーバーからの通信

ロードバランサーと基本監視用のサーバーからの通信は、デフォルトで許可されています。
これまでロードバランサーを設定した場合は許可設定が必要でしたが、ファイアウォールの適用後は不要になります。

グループ内の通信

同一グループ内に属するサーバー同士の通信はフィルターは行われません。

ファイアウォールを使ってみる

では、さっそくファイアウォールを作って、実際の動きを確認してみたいと思います。

サーバーを作成するときにファイアウォールを適用する

まずは、ファイアウォールの適用をしてみましょう。サーバー作成の途中で設定することができます。

Server_create

デフォルトでは、「default(Linux)」「default(Windows)」から選択できます。
Linux は 「default(Linux)」、Windows は「default(Windows)」をひとまず選択しておきましょう。
ルールの中身はどうなってるの?は次で。

ルールを確認してみる

デフォルトグループのルール内容を確認してみましょう。
メニューから「ファイアウォール」をクリック、グループ一覧で「default(Linux)」のラジオボタンをチェックしてみます。

Firewall_rule

default(Linux) では、SSH(22/tcp)、接続元 0.0.0.0/0(すべて)からの接続を許可しています。
default(Windows) は、RDP(3389/tcp) の接続が同様に許可されています。

ルールを追加してみる

ルールを追加して動きを確認してみたいと思います。
試しに、HTTP の許可ルールを追加して、HTTP でアクセスできるようにしてみます。

まずは、サーバー側で httpd を立ち上げます。

# service httpd start

この状態でブラウザからアクセスしてみます。

Http_reject

拒否られました。
ファイアウォールが正常に機能しているようです。

グループにHTTP の許可ルールを追加してみます。
さきほどのファイアウォールグループ一覧画面で「ルール設定を変更する」をクリックします。

Rule_change1

ルール設定ダイアログが開きますので、以下の通り設定して追加ボタンをクリック、確認画面で変更するボタンをクリックします。

Rule_change2

再度、ブラウザからアクセスしてみましょう。

Http_ok

めでたく表示されました。
ルール追加により 80/tcp が許可され、通信ができるようになりました。

グループを追加してみる

デフォルト状態からグループを追加するには有償版への切り替えが必要です。
「より充実した機能の有償版を利用する」から有償版への切り替えが行えます。

Premium

有償版への切り替えができたら「ファイアウォールグループ作成」ボタンからグループの追加ができます。
グループの設定は、グループ名、ルール設定、サーバー選択の順番で進めて行きます。

疑似3階層構成を作ってみる

グループの考え方を利用して擬似的なN階層構成を作る事ができます。
ここでは、Web・アプリ・DBの3階層を作ってみたいと思います。
以下のようなイメージになります。

 

グループ名 用途 ルール
web Webサーバー 80/tcp のみの通信を許可
apl アプリサーバー Webサーバーからの 8009/tcp(ajp) の通信のみを許可
db DBサーバー アプリサーバーからの 3306/tcp(MySQL) の通信のみを許可

ついでに、それぞれのサーバーへのログインは、default(Linux) に管理サーバーを配置し、そこを踏み台に SSH でログインする形で設定してみたいと思います。

「Web」のグループ作成

Group_web

・すべての接続元から HTTP(80/tcp) の通信を許可
・接続元種別にグループを選択し、default(Linux) グループから SSH(22/tcp) の通信を許可

「アプリ」のグループ作成

Group_apl

・web グループから AJP(8009/tcp) の通信を許可
・default(Linux) グループから SSH(22/tcp) の通信を許可

「DB」のグループ作成

Group_db

・apl グループから MySQL(3306/tcp) の通信を許可
・default(Linux) グループから SSH(22/tcp) の通信を許可

あとは、それぞれの役割のサーバーを作成して、グループに追加していきます。

詳細な手順は割愛しますが、上記のようにグループからの許可通信を駆使し、特定グループに属するサーバーからの通信だけを許可するグループを作ることで、N階層構成を作る事ができます。
また、ログイン経路も管理用のグループからに限定し管理サーバーを踏み台とすることで、インターネットからのアクセスを遮断したセキュアなログイン環境を構成することもできます。

まとめ

基本的なフィルター機能から、3階層構成の応用編までご紹介しましたがいかがでしたでしょうか。
これまでの iptables による設定に比べて、コントロールパネル・APIから設定できるようになり、運用負荷や設定ミスのリスクはだいぶ減るかと思います。
また、機能的にも使い方によっては単純なフィルター機能の枠を超えた利用も可能ですので、ぜひお試しいただければと思います。

◆ニフティクラウドからのお知らせ◆

2011年7月1日から2011年8月31日まで、ニフティクラウドが30,000円分使い放題になる「ニフティクラウドおためしキャンペーン」を期間限定で実施しております。使える機能に制限はありません。「ニフティクラウドを使ってみたい」という企業様は、是非ご利用ください。

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー