カメラ
常用カメラ
NIKON COOLPIX AW130
FDR-X3000R (SONY)
DJI Action 2
小物
どこでもセンサ Planex WS-USB01-THP
ESP32
M5Stack
PC
EIZO
FreeBSD
FreeBSD on Raspberry Pi2
Arduino
VMware
過去なんども透過型Firewallが必要になることがあり、クリティカルな部分はJuniper SSG/NetScrennシリーズを使って来ましたが、予算の都合があったり、ちょっとした部分にはFreeBSD + ipfwで透過型firewallを構築してきました。 今回(2018年9月の話)も透過型Firewallが必要になったので、いつものように手持ちの余剰マシン(Let's note CF-J10 , Corei5 4GB RAM)+FreeBSD+ipfwで透過型Firewallの構築に挑戦するも、なぜか思い通りに動かない....Raspberry Pi2が余っていたので、これでipfwを動かすと「動く」けど「使い物にならない」。通常下りで100Mbpsを越えるものがRaspi F/Wを経由すると数Mbps程度に...流石にこれではね。
いろいろと試しながら調べながらの過程でOPNsenseなるFreeBSDベースのFirewallがあることを発見。 透過型Firewallもできるようなので、さっそく挑戦してみることにしました。
OPNsenseの特徴は....()は個人の感想です
仮想環境(自分が使えるのはVMware 6.5かQNAPのVirtualization Station)か物理マシンにインストールかを悩んだ末に、レスポンスを求めることにしたので、物理マシンにダイレクトにインストールことに決意。HP Microserver , AMD II Neo N36L (2core), 4GB, SATA HDD, 内蔵NIC (gbe)にPCI expressのLANカードを増設。これまでFreeBSD 8.4を動かしていたマシンなので、FreeBSD 11.xも動くであろうとの予想。
公式サイトのDownloadからISOをダウンロード。 このダウンロードページではアーキテクチャとファイルのイメージタイプ、ダウンロード先のミラーサイトを選択します。 今回、私の場合は amd64、dvdを選びました。 次にダウンロードしたファイルDVD-ROMに焼いてインストールの準備完了。 インストールするマシンにDVDをセットして電源ON(と、ここまではいつもの手順)。
で、ここからが若干他のOSのインストールとは手順が違います。 通常(OSのインストールなど)は、OSの入ったCD-ROM,DVDから起動すると、そのままインストール作業に入りますが、OPNsenseの場合はOPNsenseがライブ状態で起動します。 FreeBSDが起動して、しばらくすると Login: と Password: が表示されます。(この時点ではDVDからライブ状態でOSとOPNsenseが起動しているだけで、HDDにはまったくインストールされていません)
この状態でOPNsenseはNATとしてライブ起動しています。WAN側はDHCPクライアントでIP取得、LAN側にはスタティックIP (192.168.1.1/24)、DHCPサーバ有効の状態になりますので、LAN側に接続された端末から http://192.168.1.1をアクセスすると、GUIで設定ができるようになります。DVDからのライブ起動の状態でも、GUIにアクセスでき設定できますので、ここで勘違いしないようにしないといけません(私は最初気づかずに、無駄な時間を.....)
HDDにインストールするにはコンソール画面でユーザ名: installer、パスワード:opnsenesでログインします。HDDにインストールが開始されます。後は対話形式でWAN, LANのインタフェースの選択などを行えば、NATの状態でOPNsenseがインストールされます。 この後、GUIで設定を行います。
Firewallの場合、ネットワークインタフェースが原則2つ必要になりますので、LANカードを追加する必要がありました。 私の場合、手持ちのUSB接続のNICを試してみました。FreeBSDからはue0で認識されました。しかし、なぜかueが使えないトラブルに遭遇。使ったBuffaloのUSB NICの個体あるいは固有の問題の可能性もあるので、amazonで他のメーカの同等製品を購入して試したところ、これもueとして認識されるものの、同じく使えず。 今回使う予定だったBuffaloのUSB NICは、過去にFreeBSD + ipfwの透過型firewallのLAN側として動いた製品(同じ個体)だったので、大丈夫と踏んでいたのですが...今回、使えない原因の詳細は不明です。 半年前まで、学生たちのYoutubeやLineのトラフィックをまかなっていたNICだったのですが。
PCIのLANカードはストックがあったので使えるかと目論んだが、当然ながら使えず(物理的に刺さらない)、PCI ExpressのLANカードを物色。PCI ExpressのNICはお高いかと思っていたら、1K円ちょっとのものがあったので、amazonでポチ!
FreeBSDからはreで認識されました。
インストールしようとしたHP Microserverには、これまでFreeBSD8.4が乗っていたので、そのままの状態で、このPIC-eのNICを認識させるとreで認識されるものの、ifconfigで見てみると media: 10Base との表示。 えっ、10Gbpsと思いきや、よく見るとGはなく無印10Mbps。 実際、スイッチに接続すると、スイッチ側でも10Mbpsの表示。 嫌な予感!? その後、FreeBSD 11にしたら、無事にreの1Gbpsで動作しました。
当然ながらNICをプロミスキャスモード(無差別モード)にするのをお忘れなく。
Transparent Filtering Bridgeを参考に設定を行いました。
なんとか透過型Firewallとして動くようにし、最低限のFirewallの設定を行った後に、スループットを計測してみました。計測はGoogleのspeedtestです(Google Chromeでspeedtestで検索すると、表示される速度計測)。 100MBpsから200Mbps程度でていましたので、スループットも十分です。
Hardware | HP Microserver |
スペック | CPU: AMD II Neo N36L 2core, RAM: 4GB, HDD: 250GB SATA |
NIC | 内蔵 (bge) + TP-Link TG-3468 PCI express (re) |
上流 | SINET 熊本 (1Gbps専用線接続) |
(個人的感想です)
悪い点というより、個人的に気に入らない部分です(自分にとって都合の悪い点)。