FreeBSDベースのファイアウォールOS「OPNsense」(基本設定編)

FreeBSDベースのファイアウォールOS「OPNsense」は、インストールするだけで基本的なルータ/ファイアウォールの機能が有効になる。今回はこれらルータ/ファイアウォール機能の設定について紹介する。

ファイアウォール関連の設定

前回記事ではOPNsenseの概要やインストール方法について紹介した。OPNsenseはインストールしただけの初期状態で基本的なファイアウォール設定やNATなどの機能が有効となるが、設定されているファイアウォールルールは必要最低限のものだけだ。そのため、必要に応じて設定を追加して行く必要がある。

ファイアウォールの設定は、OPNsenseの管理UIにある「ファイアウォール」メニューから行える。メニュー内の「ルール」以下には「Floating」および「LAN」、「WAN」という項目があり、ここからそれぞれの設定内容の確認や追加/削除を行える(図1)。

図1 デフォルトのファイアウォール設定(LAN側)
図1 デフォルトのファイアウォール設定(LAN側)

「LAN」および「WAN」はそれぞれLAN側インターフェイス、WAN側インターフェイスに関連するトラフィックを管理する画面で、「Floating」はその両方に影響するトラフィックを管理する画面となる。さらに、FloatingではLAN/WANで設定できるよりもさらに細かい設定が行える。

デフォルト設定ではLAN側インターフェイスについて443番および80番ポートへのアクセスを許可するよう設定されているが、これはOPNsenseの管理UIへのアクセスを許可する設定だ。また、それに加えてデフォルトですべてのアクセスを許可するよう設定されている。

また、WAN側インターフェイスについてはデフォルトですべてのトラフィックをブロックするような設定となっている(図2)。

図2 デフォルトのファイアウォール設定(WAN側)
図2 デフォルトのファイアウォール設定(WAN側)

Floatingルールについてはデフォルトでは何もルールは設定されていない(図3)。

図3 デフォルトのファイアウォール設定(Floatingルール)
図3 デフォルトのファイアウォール設定(Floatingルール)

さて、それでは例として「LAN側からの80番ポート宛の通信をブロックしたい」という場合の設定を行ってみよう。今回はポート番号だけの単純なルールなので、LANルールにこれを追加する。

ルールを追加するには、「ファイアウォール:ルール:LAN」画面で「+」ボタンをクリックする。設定するルールの編集画面が表示されるので、ここで必要な設定を行う(図4、5)。

図4 ファイアウォールルールの設定画面(1)
図4 ファイアウォールルールの設定画面(1)
図5 ファイアウォールルールの設定画面(2)
図5 ファイアウォールルールの設定画面(2)

なお、ここで画面右上の「全てのヘルプ」をクリックして有効にすると、各設定項目の詳しい説明が表示されるようになる。

今回は80番ポート宛のTCP通信をブロックするので、「動作」として「拒否」を選択し、「プロトコル」で「TCP」を、「送信先ポート範囲」で「from:」および「to:」の両方で「HTTP」を指定する。

なお、ブロックしたパケットをログに記録したり、より細かい条件を指定したりすることも可能だ。さらに「詳細オプション」の「表示/隠す」をクリックするとより細かい指定が行える(図6、7)。

図6 ファイアウォールルールの詳細オプション(1)
図6 ファイアウォールルールの詳細オプション(1)
図7 ファイアウォールルールの詳細オプション(2)
図7 ファイアウォールルールの詳細オプション(2)

最後に画面下の「保存」ボタンをクリックすると設定が保存される。ただし、その時点で実際には設定は反映されず、表示される「変更を適用」をクリックして初めてそれらが適用される(図8)。

図8 変更後に表示される「変更を適用」をクリックすると設定が有効になる
図8 変更後に表示される「変更を適用」をクリックすると設定が有効になる

また、設定されたルールは上から順に評価される。そのため、今回追加したルールは初期状態では最後に評価される状態となる。この状態だとそれよりも先に指定されている、デフォルトですべての通信を許可する「Default allow LAN to any rule」ルールが優先されてしまう。そこで、ルールの順番を入れ替えて、先に今回追加したルールを評価されるように変更する必要がある。

これは、まず今回追加したルールのチェックボタンをクリックして選択し、移動先とするルールの「←」アイコンをクリックすれば良い。これで並び替えが行われる(図9

図9 必要に応じてルールの順序を変更しておく
図9 必要に応じてルールの順序を変更しておく

最後に「変更と適用」をクリックすればルールが有効になり、LAN内からの80番ポート宛のTCP通信がブロックされるようになる。

ユーザアカウントの設定やSSHログイン設定

複数の管理者でOPNsenseの設定などを管理したい場合、管理者毎にアカウントを作成しておくと良い。アカウントの作成は、「システム」-「アクセス」-「ユーザ」画面で行える(図10)。

図10 「システム:アクセス:ユーザ」画面でユーザアカウントを管理できる
図10 「システム:アクセス:ユーザ」画面でユーザアカウントを管理できる

この画面で「+」をクリックすると作成するユーザの情報を入力する画面が表示されるので、ここでユーザ名やパスワードなどを設定する(図11)。

図11 ユーザ名やパスワードなどの情報を入力する
図11 ユーザ名やパスワードなどの情報を入力する

また、作成するユーザが管理者ユーザの場合は「グループメンバシップ」設定で「admins」グループのメンバに入れておこう(図12)。

図12 グループメンバシップ設定でadminsグループに追加
図12 グループメンバシップ設定でadminsグループに追加

そのほか、証明書の作成や、SSH公開鍵認証を利用する場合のSSH公開鍵設定なども可能だ。最後に「保存」をクリックするとアカウントが作成される。

また、SSHでのリモートログインやリモートログイン時にsudoを利用できるようにするには、「システム」-「設定」-「管理」画面で設定を行う必要がある。この画面で「SSHを有効」にチェックを入れ、設定を保存すれば良い(図13)。

図13 SSHログインを有効にするには「システム」-「設定」-「管理」画面で設定を行う
図13 SSHログインを有効にするには「システム」-「設定」-「管理」画面で設定を行う

なお、安全のため「rootユーザログインを許可」は無効にし、代わりに「Sudoの使用」で「パスワードを確認する」を選択し、sudoコマンドで管理者権限を取得できるようにしておくことをおすすめする(図14)。

図14 rootユーザでのログイン無効や、sudoの使用許可なども設定できる
図14 rootユーザでのログイン無効や、sudoの使用許可なども設定できる

ログやアクティビティの記録

OPNsenseの管理UIでは、さまざまなログおよび各種稼働状況を確認する機能も用意されている。前回紹介したダッシュボード(図15)ではOPNsenseをインストールしたマシンのリソース使用状況などを確認できるが、より詳しい情報を個別に閲覧することも可能だ。

図15 ダッシュボードで基本的な稼働状況を確認できる
図15 ダッシュボードで基本的な稼働状況を確認できる

まず、「レポート」-「ヘルス」画面では、毎秒当たりのパケット通過状況やシステムリソースの使用状況、トラフィックをグラフで確認できる(図16)。

図16 「レポート」-「ヘルス」画面ではさまざまな統計情報をグラフで確認できる
図16 「レポート」-「ヘルス」画面ではさまざまな統計情報をグラフで確認できる

ここでは画面上部のタブで表示する項目を切り替えることができ、たとえば「Packets」タブでは各インターフェイスが送受信した毎秒当たりのパケット数を表示できる。タブの横の「▼」をクリックするとドロップダウンメニューが表示され、そこから対象とするインターフェイスを切り替えることができる。

また、「System」タブではメモリやCPUなどの使用状況を確認できる(図17)。

図17 「System」タブではメモリやCPU使用状況などを確認できる
図17 「System」タブではメモリやCPU使用状況などを確認できる

「Traffic」タブでは、指定したインターフェイスのトラフィックを毎秒当たりのバイト数で確認できる(図18)。

図18 「Traffic」タブではトラフィックの量を確認できる
図18 「Traffic」タブではトラフィックの量を確認できる

また、「レポート」-「トラフィックグラフ」でもトラフィックをグラフで確認できる(図19)。

図19 「トラフィックグラフ」でもトラフィックをグラフ表示できる
図19 「トラフィックグラフ」でもトラフィックをグラフ表示できる

さらに、「NetFlow」機能を利用してトラフィックデータをデータベースに保存することで、より詳細なトラフィック分析も可能となる。この機能を利用するには、まず「レポート」-「NetFlow」画面で対象とするインターフェイスを指定した上で、「ローカルをキャプチャ」にチェックを入れて「適用」をクリックする(図20)。

図20 詳細な分析機能を利用するには、まず「レポート」-「NetFlow」画面で設定を行う
図20 詳細な分析機能を利用するには、まず「レポート」-「NetFlow」画面で設定を行う

これでデータが収集されるようになり、「レポート」-「分析」画面でより詳しいレポートを閲覧できるようになる(図21)。

図21 NetFlow設定を行うことで、「レポート」-「分析」画面での分析が可能になる
図21 NetFlow設定を行うことで、「レポート」-「分析」画面での分析が可能になる

また、ファイアウォール関連のログは「ファイアウォール」-「ログファイル」-「Live View」などで閲覧できる(図22)。

図22 「ファイアウォール」-「ログファイル」-「Live View」ではファイアウォールのログを確認できる
図22 「ファイアウォール」-「ログファイル」-「Live View」ではファイアウォールのログを確認できる

OPNsenseの稼働状況を確認する

OPNsense自体のログや稼働状況は、「システム」-「ログファイル」や「システム」-「Activity」で確認できる(図22、23)。

図23 システム関連のログは「システム」-「ログファイル」-「全般」で確認できる
図23 システム関連のログは「システム」-「ログファイル」-「全般」で確認できる
図24 「システム」-「Activity」では実行中のプロセスを確認できる
図24 「システム」-「Activity」では実行中のプロセスを確認できる

そのほかの設定

マシンの電源オフや再起動は「電源」-「再起動」や「電源」-「電源オフ」から行える(図25)。

図25 「電源」以下のメニューで再起動や電源オフ操作を行える
図25 「電源」以下のメニューで再起動や電源オフ操作を行える

また、各種サービスの設定は「サービス」以下の項目で行える。たとえばLAN側ではデフォルトで有効になっているDHCPサーバーの設定は「サービス」-「DHCPv4」-「[LAN]」から行う(図26)。

図26 「サービス」-「DHCPv4」-「[LAN]」でDHCPの設定が可能
図26 「サービス」-「DHCPv4」-「[LAN]」でDHCPの設定が可能

UIで簡単に設定を行え、高度な設定も利用できる

このように、OPNsenseではGUIで簡単に設定ができるのがポイントだ。さらに、GUIだけで高度な設定も行えるため、シビアなパフォーマンスが求められない小規模オフィスなどであれば十分に実用的だ。また、今回は紹介していないが、VPNを利用するための設定も用意されている。

なお、OPNsenseを利用する際に注意したいのが、OPNsenseはPCを利用するため、ネットワークインターフェイス(NIC)の性能がスループットに直結する点だ。そのため、できれば信頼性やパフォーマンスで評価の高いメーカー製のNICを搭載したPCを利用することをおすすめする。