2020年8月10日月曜日

OPNsenseでアンチウイルスを設定する

はじめに



※説明に使用するOPNsenseのバージョンは20.7.0です。
※この記事は下記のOPNsenseのWikiページを参考にしています。
 https://docs.opnsense.org/manual/how-tos/proxyicapantivirusinternal.html


プロキシ設定


  1. 管理画面 [サービス] > [Webプロキシ] > [管理] から「全般プロキシ設定」タブにて「プロキシを有効」にチェックを入れ、「適用」をクリックします。

  2. 「フォワードプロキシ」タブにて下記のように設定し、「適用」をクリックします。
    • プロキシインターフェース:LAN
    • プロキシポート:3128

  3. 管理画面 [サービス] > [Webプロキシ] > [管理] から「全般プロキシ設定」タブの右にある「▼」をクリックしてドロップダウンメニューを表示し、「ローカルキャッシュ設定」をクリックします。

  4. 「ローカルキャッシュを有効」にチェックを入れ、「適用」をクリックします。

  5. 管理画面 [サービス] > [Webプロキシ] > [管理] から「フォワードプロキシ」タブの右にある「▼」をクリックしてドロップダウンメニューを表示し、「FTPプロキシ設定」をクリックします。

  6. 「フォワードプロキシ」タブにて下記のように設定し、「適用」をクリックします。
    • FTPプロキシインターフェース:LAN
    • FTPプロキシポート:2121

  7. 管理画面 [ファイアウォール] > [ルール] からプロキシなしでHTTP Webサイトを閲覧できないようにするルールを書いていきます。画面右下の「+」ボタンをクリックします。

  8. 下記の項目を入力して「保存」をクリックしてください。
    ------
    動作:拒否
    インタフェース:LAN
    プロトコル:TCP/UDP
    送信元:LANネット
    送信先ポート範囲:HTTP (from:もto:も)
    カテゴリ:Block Proxy Bypass
    説明:Block HTTP Bypass
    ------

  9. 手順7,8をくりかえし、プロキシなしでHTTPS Webサイトを閲覧できないようにするルールを書きます。(送信先ポート範囲をHTTPSとする)

  10. 手順7~9で作成した2つのルールを既存のルールより上に移動して、「変更を適用」をクリックします。




透過プロキシ設定


  1. 管理画面 [サービス] > [Webプロキシ] > [管理] から「フォワードプロキシ」タブにて「透過HTTPプロキシを有効」にチェックを入れ、「適用」をクリックします。

  2. 「透過HTTPプロキシを有効」の左にある (i) アイコンをクリックし、「Add a new firewall rule」をクリックします。



  3. 下記の項目を入力して「保存」をクリックしてください。
    ------
    インタフェース:LAN
    TCP/IPバージョン:IPv4 プロトコル:TCP
    送信元:LANネット
    送信元ポート範囲:任意 (from:もto:も)
    送信先:任意
    送信先ポート範囲:HTTP (from:もto:も)
    リダイレクトターゲットIP:127.0.0.1
    リダイレクトターゲットポート:3128
    NATリフレクション:有効
    フィルタルールの関連付け:関連フィルタルールを追加
    ------

  4. 「変更を適用」をクリックします。

  5. 管理画面 [システム] > [セキュリティ] > [認証局] から「(+) 追加」をクリックします。

  6. 下記の項目を入力して「保存」をクリックしてください。
    ------
    説明名:OPNsense-SSL
    方法:内部認証局を作成
    鍵長(ビット):2048
    ダイジェストアルゴリズム:SHA256
    有効期間(日):825
    国コード:NL (Netherlands)
    都道府県:Zuid Holland
    市町村:Middelharnis
    組織:OPNsense
    電子メールアドレス:spam@opnsense.org
    コモンネーム:opnsense-ssl-ca
    ------

  7. 管理画面 [サービス] > [Webプロキシ] > [管理] から「フォワードプロキシ」タブにて「SSLインスペクションを有効」にチェックを入れ、また「使用するCA」に手順5,6で作成したCAを選択して「適用」をクリックします。

  8. 「SSLインスペクションを有効」の左にある (i) アイコンをクリックし、「Add a new firewall rule」をクリックします。

  9. 下記の項目を入力して「保存」をクリックしてください。
    ------
    インタフェース:LAN
    TCP/IPバージョン:IPv4 プロトコル:TCP
    送信元:LANネット
    送信元ポート範囲:任意 (from:もto:も)
    送信先:任意
    送信先ポート範囲:HTTPS (from:もto:も)
    リダイレクトターゲットIP:127.0.0.1
    リダイレクトターゲットポート:3129
    NATリフレクション:有効
    フィルタルールの関連付け:関連フィルタルールを追加
    ------

  10. 「変更を適用」をクリックします。


ClamAVとC-ICAPプラグインのインストール/設定


  1. 管理画面 [システム] > [ファームウェア] > [プラグイン] から「更新を確認」をクリックします。

  2. 「プラグイン」タブにて「os-clamav」の「+」をクリックしてClamAVをインストールします。

  3. 管理画面 [サービス] > [ClamAV] > [構成] から「署名をダウンロード」をクリックします。

  4. 「clamdサービスを有効」と「freshclamサービスを有効」にチェックを入れ、「保存」をクリックします。

  5. 「プラグイン」タブにて「os-c-icap」の「+」をクリックしてC-ICAPをインストールします。

  6. 管理画面 [サービス] > [C-ICAP] > [構成] から「全般」タブにて「c-icapサービスを有効」にチェックを入れ、「保存」をクリックします。

  7. 「アンチウイルス」タブにて「ClamAVを有効」にチェックを入れ、「保存」をクリックします。


ICAP設定


  1. 管理画面 [サービス] > [Webプロキシ] > [管理] から「フォワードプロキシ」タブの右にある「▼」をクリックしてドロップダウンメニューを表示し、「ICAP設定」をクリックします。

  2. 「ICAPを有効」にチェックを入れ、「適用」をクリックします。


動作確認


  1. 管理画面 [システム] > [セキュリティ] > [認証局] からCA証明書をエクスポートします。



  2. クライアントのブラウザ側でプロキシの設定とCA証明書のインポートを行います。

  3. EICARのサイトにアクセスしてEICARをダウンロードしようとすると、ブロック画面が表示されます。



今後の予定



公式ガイドに載っている侵入防御(IPS)・Webフィルタ・アンチウイルスの情報を、実際に手を動かしながら日本語の手順に直しつつ発信するということをのんびり続けてきてしばらくたってますが、OPNsenseもUTMっぽくできるということを小さな範囲かもしれませんがどこかに伝わってくれればいいかなと思います。

アンチスパムは個人的にやる気ないですが、アプリケーション制御はやっておきたいということで、次からはSenseiプラグインをつっこんでいろいろ遊んでみたいです。
Senseiについて調べてみると、ほかにもマルウェアのブロックやWebフィルタもできるっぽい…?あとは今回やったような作業との比較などもしてみたいですね。

ほとんど時間がとれなくてその間にバージョンがどんどん上がる一方ですが、OPNsenseについてはしばらくこんな感じの更新ペースになりそうなことだけはご了承ください。(このご時世になってから急に忙しくなって、土日も夏休みもほとんどお仕事でマジで時間が取れない)


2020年5月6日水曜日

北海道の冬まつりめぐり+札沼線乗車(3泊4日)まとめ

夏の北海道は行ったことあるのですが、冬は行ったことなかったので行ってみました。
2月に行ったのですが、ばたばたしていて書くのがこの時期になってしまったことは反省です。

目的


  • 北海道の冬まつりめぐり
    • もんべつ流氷まつり
    • なよろ雪質日本一フェスティバル
    • 旭川冬まつり
    • さっぽろ雪まつり
  • 音威子府散策
  • 札沼線乗車

旅程


  • 1日目
    羽田空港 -(ANA375)→ 紋別空港
    紋別ターミナル -(北紋バス雄武線)→ 興部
    興部 -(名士バス興部線)→ 名寄市立病院

  • 2日目
    名寄駅 -(JR宗谷本線)→ 音威子府駅
    音威子府駅 -(JR宗谷本線)→ 旭川駅

  • 3日目
    旭川駅 -(JR函館本線)→ 滝川駅
    滝川駅前 -(中央バス滝新線)→ 新十津川役場
    新十津川駅 -(JR札沼線)→ 札幌駅

  • 4日目
    札幌駅 -(JR札沼線)→ 石狩月形駅
    月形駅前 -(中央バス月形線)→ 岩見沢ターミナル
    岩見沢駅 -(JR函館本線)→ 札幌駅
    札幌駅 -(JR千歳線)→ 新千歳空港
    新千歳空港 -(飛行機)→ 羽田空港

北海道の冬まつりめぐり



紋別→名寄→旭川→札幌とめぐってみましたが、ベストな順番でまわることができたと思います。
以下、それぞれの感想です。
  • 紋別
    飛行機は1日1便。何かアクシデントがあれば即終了でしたが、当日は天気もよく無事に飛んでくれました。
    ちょうど流氷接岸初日のタイミングで、流氷がきれいに見えたのがよかったです!
    メイン氷像は首里城でした。この大きさの氷像は他の冬まつりにはないので、見ることができてよかったです。

  • 名寄
    旅程の都合で夜の訪問となったため、とにかく寒かったです(当日は-20℃)。
    国際雪像彫刻大会を見てきたのですが、雪像のクオリティが高く、ライトアップもすごくきれいでした。
    あと、煮込みジンギスカンがおいしかったです。

  • 旭川
    雪像もよかったのですが、個人的には買物公園の氷彫刻世界大会が通りの雰囲気に合っていてすごく気に入りました。
    晩ご飯は孤独のグルメで紹介されてた自由軒に行って、五郎セットをおいしくいただきました。いいところでした。

  • 札幌
    一度は行ってみたかった雪まつりについに行くことができました。
    雪像の数もイベントの規模も他とは段違いで、とても楽しかったです!
    慣れない雪の上を何時間も歩いて翌日ひどい筋肉痛になりましたが、それもいまではいい思い出です。


音威子府散策



本当は宗谷バスの天北宗谷岬線を乗りとおそうかなと思ってたのですが、時間や体力の関係で旅行中に急きょプランを変更してこうなりました。

常盤軒で音威子府そばを食べるという目標は達成できました。とてもおいしかったです。

あと、これは現地に行って気づいたのですが、もう少し早めに行って地域バスを使えば天塩川温泉に行くことができました。
地域バスの情報は現地か役場のホームページにしか情報がないのですが、音威子府村内をまわる唯一の交通機関ですので、ここにもリンクをはっておきます。(2021年8月11日:リンクを更新)

音威子府村 地域バスについて

天北宗谷岬線乗り通しとあわせて、どこかでリベンジしたいです。


札沼線乗車



2020年5月に廃止(北海道医療大学以北)ということで、乗ってきました!

今回は記念乗車券を集めるミッションがあったため、新十津川駅、鶴沼駅、石狩月形駅に訪問する必要があるのですが、浦臼~新十津川は1日1往復しかないため旅程を組むのが難しかったです…
旅程などいろいろ勘案した結果(※)、まず下記の感じで乗りとおしてから、次の日に石狩月形駅まで行くプランにしました。

新十津川駅 -(札沼線)→ 鶴沼駅 -(徒歩)→ 鶴沼公園 -(バス)→ 浦臼駅 -(札沼線)→ 石狩当別駅 -(札沼線)→ 桑園駅

(※)石狩月形駅は冬季期間は月形樺戸博物館が閉館しているため、3時間の待ち時間がきついと判断した。

乗ってみての感想ですが、そこそこ交通量のある国道275号と並走していて意外と秘境感はなかったです。
ただ、国道にバスを通したほうが何かと都合がよさそうですし、実際に浦臼以北は滝川までバスが通ってて私も一部区間でお世話になりましたが、正直バスがあれば鉄道を通し続ける必要性はそんなに感じませんでした。


旅を終えての感想



今回もいい旅になりました。雪国初心者だったので寒さなど心配してましたが、ヒートテックとイヤーマフと専用靴のおかげでなんとか耐えることができました。(それでも寒かったですけど…)
宗谷本線は来年3月に一気に駅が廃止される見込みですが、まだまだやりたいことがたくさんあるので、駅が残っているうちにまた旅行しに行きます!