こんにちは。GMOクラウドの田(でん)です。今回は、「突撃!となりのエンジニア」なるものを企画させていただきました!
知ってそうで知らないサーバー関連の知識を当社のエンジニアにやさしく教えてもらおう!ということで、インタビューを行いました。
初回は、知ってそうで知らないファイアウォールのあれこれについて、ネットワークエンジニアの高山さんにきいてみました(´∀`*)
ー高山さんは普段どんなお仕事されていますか?
田: 高山さんは普段どんな仕事されているんですか?
高山: PublicクラウドのALTUSやVPSの運用・構築・設計をやっています。 中でもネットワーク部分がメインですね。アタックが来たときに対応したり、 日頃のトラフィックに異常がないか確認したりしています。他には、データセンターでサーバーやネットワーク機器を積んだりもします。
田: かなり幅広いですね。
高山: そうですね。笑 サーバー内部以外のところを担当してる感じですね。
田: 以前からネットワーク関連のお仕事をされてたんですか?
高山: はい。ずっとネットワーク関連ですけど、前はネットワークベンダーだったので、設計・構築をメインにやってましたね。ネットワーク機器を売る側でしたので、運用周りはやってなかったですね。
田: なるほど。売る側から利用する側に変わったんですね。
ーファイアウォールとは、どのような役割があるんですか?
田: それでは、本題に入りますが、今日はネットワーク繋がりでファイアウォールについて お話を聞けたらと思います。
そもそもサーバーをたてたり、構築する段階で、ファイアウォールを設定が必要というイメージはあるのですが、 設定しない方っていらっしゃるものなんですか?
高山: はい。企業のお客さまはほぼ100%設定されますけど、個人のお客さまで、Webサーバーや データベースなど全部自身でやられる方は、結構設定されていない方がいらっしゃいます・・・!
ここは、サービスによっても異なる部分なんですが、ファイアウォールの機能がそもそも用意されてないサービスなんかは、 個人でファイアウォールの知識がないと、設定せずにサーバーを使ってしまうことも多いですね。
田: そうなんですね・・・ファイアウォールを設定しないことによるリスクって何かあるんですか?
高山: 想定されるリスクは数え切れないですね・・・!公開サーバーにおいては、ファイアウォールを設定していない状態=誰でもネットワークを通じてそのサーバーにアクセスできる状態なんです。不正アクセスされるリスクが飛躍的に高くなります。
田 : 不正アクセスって・・・お家に例えると不法侵入みたいなことですか?
高山: そうですね!家で例えるなら、誰でも家の敷地内まで入れちゃう感じです。
田 : えええ!怖いですね。。いろんな人が家の敷地内にいるって考えたら・・・もうホラーじゃないですか・・・((( ;゚Д゚))
高山: そうなんです。そこで、どうやって入ってやろうかって悪い人達は考えてるんです。 ネットワークなんて、誰もみてないので、いうなれば、閑静な住宅街で侵入を試みている状態なんですよ。
田: こわい・・・一気に身近な話に感じました・・・! でも、WebサーバーだとWeb(80,443番ポートなど)関連のサービスを公開しなければいけないと思うんですが・・・
高山: はい。ただ、ssh(22ポート)など公開しなくてもいいものも多くあるので、ファイアウォールを使って、 公開しなくて良いものに対して、自分のIPアドレスだけ許可するなど、制限することが大切なんです。 ネットワーク部分の防御をするということです!
田: なるほど!公開するものを制限することで、ネットワークから侵入されるリスクを少しでも下げるということですね!
高山: そうです。サーバーを公開する以上、ファイアウォールの設定は必須です。 ファイアウォールを設定する際の考え方としては、基本的には全部アクセス制限をかけて、必要なものだけ許可していきますので、 必要最低限のものだけを公開する感じになります。
ーファイアウォールって、どんな種類があるんですか?
田: ファイアウォールには、どんな種類があるんですか?
高山: 大きく分けて、ソフトウェアとハードウェアのものがありますね。
田: 一般的にファイアウォールってiptablesで設定する認識なんですが、当社のALTUSもですけど、クラウドサービスって、コントロールパネルからファイアウォールの設定ができたりしますよね?それらが、いわゆるソフトウェアにあたるんでしょうか?
高山: はい。ソフトウェアのファイアウォールにあたりますね。一般的にはソフトウェアで事足りると思います。ハードウェアに関しては、自社でデータセンター持っているような企業が使うようなものなので、一般的にはあまり利用されていないですね。
田: なるほど、では今回はソフトウェアに特化して、お話を伺えたらと思います。中でもiptablesとコントロールパネルについてお聞きしたいのですが、この二つにどんな違いがあるんでしょうか?
高山: ファイアウォールという意味では、同じですけど、違いはいくつかあります。
たとえば、GUI(グラフィカル・ユーザ・インタフェース)があるのとCLI(コマンドラインインタフェース)しかないというのも1つの違いですよね。GUIがあるコントロールパネルのファイアウォールでは、CLIのようにコマンドを覚えなくても直感的な操作で設定ができるので、コントロールパネルの方が扱いやすいと思います。
他にもファイアウォールがかかっている場所も違ったりします。たとえば、クラウドで考えた場合、iptablesは仮想サーバーに直接ファイアウォールがかかっているんです。この場合サーバーのOS(Linux、Windowsなど)部分で防御しているって考えて良いと思います。
コントロールパネルの場合は、仮想サーバーが収容されている仮想ネットワークの入り口にファイアウォールがかかっているので、防御している場所が違うということですね。
田: なるほど・・・!万が一攻撃を受けたとき、コントロールパネルでファイアウォールを設定している場合、攻撃が仮想サーバーまで届かないって考えると、セキュリティリスクも減ると考えてよいんですか?
高山: はい。仮想サーバーに来る前の段階で、フィルタがかかるので、リスクが減ります。 環境や運用ポリシーによりますが、基本的にコントロールパネルでファイアウォールを設定しておけば、iptablesの設定は必要ない場合もあるので、 コントロールパネルにファイアウォール機能があると不慣れな方も安心ですね。
ただ、仮想ファイアウォール(コントロールパネルのファイアウォール機能)が提供されていない環境は、必ずiptablesで設定が必要になります。 「iptables 設定」と検索すれば、いろいろ情報が出てきますし、Plesk(プレスク)のようなサーバー管理ツールを利用することで、 不慣れな方でも設定はできるかと思います。
ーファイアウォールさえ設定していれば、安心ですか?
田: 最近ファイアウォールだけでは、防げない攻撃があるということをよく聞くのですが、実際のところどうなんですか?
高山: そうですね。ファイアウォールだけでは、防げない攻撃はあります。たとえば、脆弱性をついた攻撃とかは防げないです。ファイアウォールってパケットでフィルタリングをするんですね。
すごく分かりやすい例でいうと、Webサイトの場合、ファイアウォールでHTTP(80番ポート)を開放していると、誰でも来ていいですよっていう設定になるんですが、通信の中に不正なスクリプトを入れられて送られてきちゃっても、気づけないんです。。ファイアウォールって通信の中身まではみてないので、通れちゃうんですよ。
マンションに例えると、共通玄関のインターフォンで「宅配便でーす」って言われて、通しちゃうじゃないですか、でも宅配便屋さんじゃない可能性もありますよね?
田: ・・・たしかに!
高山: ファイアウォールのみの設定では、宅配便屋さんが誰なのか、何を持っているのかまでは分からないけど、通してしまうのと同じ状態なんです。だから、宅配便屋さんがもし悪い人だったら、通しちゃって被害にあう可能性もあるわけです。ソフトウェアの脆弱性をついた攻撃がこれにあたるわけです。
一般の人はサイトみて帰りますけど、悪い人がサイトにきて、ソフトウェアの弱みを見つけて、その弱みをついて、悪さをすることがあるわけです。また、もうすでに悪さされたサイトを一般の人が踏んでしまって、被害にあうこともあります。PC内のデータが盗まれたり、偽のサイトに飛ばされたり・・・
田: ありますね・・・!違うサイトに飛んでしまって、えっ!ここどこ?!ってなるとき・・・こわいですね・・・
高山: はい。なので、まとめると「ファイアウォールでは、アプリケーションを狙った攻撃は防げない」ということです。それが公開されているアプリケーションなら、みんなアクセスできちゃうので・・・
田: なるほど・・・ファイアウォールで守れないということですが、何であればアプリケーションを狙った攻撃を防げるんですか?
高山: この攻撃を防ぐためには、「WAF」というものを使います。Webアプリケーションファイアウォールなので、名前の通り、アプリケーションを守るためのファイアウォールなんです。最近は、アプリケーションを狙った攻撃も多いので、WAFも注目されていますね。
田: 確かに最近よく耳にするワードですね。他に防げない攻撃ってあるんですか?
高山: 他にもありますね。DDoS攻撃なんかも防げないです。なんでファイアウォールで防げないかというと、DDoSって送信元が分からないんですよ。全部偽装されてるんです。しかも規模にもよりますが、1000以上の送信元からきたりするので、それを全て手動でファイアウォール設定とかできないですよね。
田: えー!1000以上から来たりするんですか!それは確かに、ファイアウォールでは設定しきれないですね・・・
高山: そうなんです。これを防いでくれるのは、「IPS」ですね。IPSは、侵入防止システムで、簡単にいうと攻撃の検知と防御をしてくれるものです。不正なパケットが持つ振る舞いの特徴を検知して、リアルタイムで遮断や管理者に通知してくれるんです。
ただIPSとか挙動をみてくれるものって、自社専用に機械を買うの、すごくお金かかるので、最近ではSaaS型ものも出てきていますね。SaaS型であれば、割と安価に使えるので、結構いいと思います。
田: あ、そうですね!弊社もSaaS型のセキュリティ商材増えてますもんね。
高山: はい。ただやっぱりお金はかかりますので、そこは+αな部分ですね。最低限の防御であるファイアウォールは必ずしていただいた上で、+αでファイアウォールで防げない攻撃を受ける可能性があるサービスを運用している方には、IPSやWAFも導入した方がより安全にサービス運用できます。
ファイアウォールで防げない攻撃を受ける可能性があるというのは、たとえば、WebアプリケーションやWebサイトを公開している方々ですね。
田: なるほどですね。公開しているサービスを運用している場合は、より気をつけたほうが良いんですね。なんとなく、ファイアウォールでは防げない攻撃があるということは、認識していたのですが、具体的にどうして防げないのか、何を用いて防御すべきなのかがとてもよく理解できました。
個人で公開しているWebサイトがあるのですが、コントロールパネルからファイアウォールの設定ができなかったので・・・帰ったらすぐiptables設定しようと思います・・・ (´・ω・`;)!
本日は、ありがとうございました。