さくらのVPSに無料UTMのSophos UTM Home Editionを導入してみた。

 国際的なセキュリティ製品のブランドであるSophosのUTM製品にSophos UTMと言うのがあります。

WebAdmin   User admin   Device sakurautm.studioes.net
 通常、ハードウェアタイプでの提供ですが、ソフトウェアアプライアンス製品もあり、IAマシンに導入することが出来ます。
 この製品は、なんと個人用(Sophos UTM Home Edition)は無料であり、古いマシンに組み込んだりすれば通常数十万円はするUTMと同等の機能を無料で利用することが出来ます。
 通常は、物理マシン・仮想マシンへの導入が想定されていますが、ライセンスを見ると個人利用であれば無料、仮想環境に導入することも可能と言うことになっています。 個人利用のVPSに導入しても良いってことですね。
 そんなわけで、今回、さくらのVPSのローカルネットワーク機能を利用して、サーバの前段にUTMを配置した高セキュリティの環境を試験してみました。

構成
UTM環境
さくらのVPS 1GBプラン 
Sophos UTM 9.4

メインサーバ環境
さくらのVPS 2GBプラン
CentOS6.7

 さくらVPSの無料オプションであるローカルネットワーク構成で、UTMのeth0をグローバル、eth1をローカル、メインサーバのeth0をシャットダウン、eth1をローカル接続として構成しています。

 まずは、Sophos UTMの入手。 SophosのサイトからSophos UTM Home Editionをユーザー登録してダウンロードします。
 ライセンスファイルがユーザー登録時のメールアドレスに送信されてきます(3年有効のライセンスが送られてきました) ライセンスを入力しない場合30日限定動作になります。

 VPSへの導入では、まずVPSコントロールパネルのスイッチ作成でローカルネットワークを作成して、所属させておきます。
 入手したISOファイルは約800MBほどです。
 さくらのVPSコントロールパネルから、OSインストール>ISOインストールを選択し、SFTPアカウントを取得、Filezillaとかで接続してISOファイルをアップロードします。 アップロード完了後にVPSを起動して、コンソールを開きます。 ちょっと待てば、よく見るLinuxカーネルブートみたいなメッセージが流れ、青赤のCUIインタラクティブ画面がスタートします。
 このとき入力する項目は特に多くなくLinuxインストールよりも簡単です、ローカルネットワークの物理インタフェイス選択とネットワークの設定程度になります。 eth1をローカルとして、192.168.1.100/24のネットワークとしました。

 インストールが完了すれば自動で再起動されます。 この時、コントロールパネルのOSインストール>ISOインストール画面でSFTPアカウントの削除を行います(ISOのアンマウント操作がないので、アカウントごとISOを削除して通常起動できるようにします)
 再起動すればコンソールLogin画面が表示されます。 通常、このUTMの操作はHTTPSのGUIで行うので、この状態でhttps://192.168.1.100:4444/を開いて初期設定を行います。 メインVPSのGUIからブラウザでアクセスが出来れば特に問題ないでしょう。 私はGUI構築はしていないので、iptablesのNAT構成にて既存VPSへの着信を管理画面に転送しました。

 さくらのVPSでローカルエリアネットワーク1を構成していれば、外はeth0で中がeth1になる。
 このルールは以下の通りの動き。
NATセクション
 PREROUTINGでeth0のグローバルIP:公開ポート宛て通信をUTMの192.168.1.100:4444に転送。
 POSTROUTINGでeth1から192.168.1.100:4444に出て行く通信のソースIPを192.168.1.1(メインVPSに設定したeth1のIPアドレス)に書き換え。
 POSTROUTINGでeth0から出て行く192.168.1.100からの通信のソースIPをグローバルIPに書き換え。
FILTERセクション
 管理端末グローバルIPから来る管理画面通信を許可。
 UTMから出て行く通信を許可。

 GUI画面が出たらウィザードになっているので、最初に管理ユーザパスワードの設定を行います。 設定したらUTMが再起動して、設定したパスワードでログインしてウィザードで初期設定を継続します。 WANインタフェイスの初期設定が上手く動かなかったため、Skipで初期構成を完了しました。
WebAdmin
 ウィザードが完了すれば、あとはいじり放題です。 Sophos UTMは日本語ローカライズもあるので、Management>WebAdminで言語選択できます(SSでは既に日本語設定済み)

 このUTMは機能が色々あるので、使い倒せば高度な事が出来ます。
 VPSに導入した一番の理由は、管理VPNアクセスとWAFです。
 今回の構成では、メインサーバのグローバルを落としたので、全ての通信はVPSローカル接続を経由してUTMを通ります。 このUTMはL2TP/IPSecの他にSSL VPNも利用できますし、IPSecサイト間VPNも利用できます。
 自宅からVPSを管理する場合、IX2215とのサイト間VPNによりローカルIPで接続して管理できるし、UTMの管理もVPNを通ってVPS側ローカルに出て管理できます。
自宅ローカル→自宅ルーター→IPSec – スタティックルート→UTM→VPSローカル →メインVPS

 そして、自宅以外から管理するときはSSL VPNやL2TP/IPSecで繋いで管理できるし、さらにそのアクセスVPNからUTMを通って更にサイト間VPNを通って自宅のサーバに通信すると言うことも出来てしまいます。
 このUTMが破られたら即死する構成ですが、VPNは証明書認証が簡単に構成できるし、UTM自体のソフトウェアは自動アップデート動作するため下手にルータにダイアルアップVPNを構成するよりも信頼性はかなり高いです。

 WAFについては、HTTPリクエストを解析してXSSとかSQLインジェクションなんかを遮断できるからもし脆弱性のあるWebアプリケーションがサーバで動作していても保護することが出来るし、POSTのウィルス流入も遮断できます。 そして、高頻度アクセスの遮断もできるので、ログイン処理へのブルートフォース攻撃も自動遮断できるなどあれば便利な保護が得られます。
 SSLオフローディング(外部からUTMまでHTTPS接続させて、HTTPリクエストでリアルサーバにリクエストを転送する)も出来るから、最近の常時SSLなんかの流れで重くなりがちなSSL処理とアプリケーション処理を分割して負荷分散できます↓
WebAdmin-WAF
 このブログをSSLオフローディング構成してみた様子。
 暗号化&リダイレクト構成をすると、HTTPアクセスを自動でHTTPSにリダイレクトして全ページ暗号化を簡単に実現できる。
 更に、WAFの機能により、通過時にウィルススキャンし、SQLインジェクションもXSSも防護している。 このブログのコメント欄にSQLインジェクション的コード(/* SELECT * FROM database */)とかを書こうとすると、SQLインジェクション保護によりUTMで通信が遮断され403Forbiddenが表示されることでしょう。
 攻撃的コードを連発したIPは自動でブロックされて、以降は一定時間表示すら出来なくなりますので、攻撃防御が容易になります。

 ベースが完全に業務用製品である高機能UTMアプライアンスを活用することで、簡単に色々なことを実現できますね。
 この手のセキュリティ製品の活用は業務でネットワークをいじる場合、必須知識になってくるのでネットワークの勉強をしたい人にもお勧めです。

 外部でPC使用時に必ずアクセスVPNでUTMに接続するようにすると、UTM上のゲートウェイ保護(ウィルスプロテクションなど)も活用できるため、PC自体のアンチウィルスソフトウェアと組み合わせてより高度な保護をすることも出来ます。
 サイト間VPNを活用して、自宅ローカルからのデフォルト経路をUTMに向けてやると、自宅ローカル→自宅ルータ→VPN→UTM→外部ネットワークとなって、自宅に置くには消費電力が大きいハイスペックUTMをVPS上に実現して通信すると言うことも出来ます。
 さくらのVPS 1GB・2GBプランの性能は、現行世代Pentium~Core i3位あるので、それを物理マシンで設置して電気代と機材費用を支出することを考えると、ミリ秒単位の遅延を気にするネットゲームとか金融取引じゃなければUTM on VPSっていう構成は結構アリな感じもします。
 60W位の消費電力のマシンを24時間30日稼働で電気代は1700円くらい。 IX2215は10W位で動作するから電気代は300円位。 差額1400円でさくらのVPS1GBプランならお釣りが来る計算。

(5924)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP]   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です