ネットワークアクセスコントロール(NAC)ツールのPacketFenceをインストールしてみます。
Ubuntu Server 22.04 LTS上のゲストOSとしてインストールしました。インストール自体は簡単でしたが、かなり高機能なツールなので設定が手に負えない予感がします。
PacketFence
PacketFenceは2004年から公開されているオープンソースのネットワークアクセスコントロールツールです。
Inverseという会社によって開発・管理されていますが、利用は無料なのでそういう意味での導入はしやすいです。

オープンソースで利用料はフリーだけれど、有料サポートを提供して運営していくスタイルは、LinuxではRed Hat Linux Enterprise、Ubuntu、など大手もありますし結構ある気がします。
上の動画では、単に初期投資が安いだけではなく、バグフィックスとかも最悪自分でできるというメリットがあるんだよと力説しておられます。なんにせよ、利用できるのは非常にありがたいです。
開発元のInverseは、2021年にネットワーク企業のAkamaiに買収されたようです。PacketFenceは2022年にも何度かアップデートしているので、多分早々になくなることはないのでしょう。オープンソースなので、多分大丈夫だと思います。
PacketFenceのインストール
インストール方法は何種類かあり、ウェブサイト上に書かれています。
- 仮想マシンをインポート
- Debian 11ベースのISOファイルからインストール
- Linuxにインストール
- Linode上で利用する
の4種ですが、仮想マシンのインポートが明らかに楽そうなので、これを選択しました。
ウェブサイト上でも、「Zero Effort NAC」としてダウンロード可能で、確かにインストールは簡単です。ISOファイルからのインストールもそんなに大変ではないかもしれませんし、専用マシンにするならISOのほうが楽ですね。
Ubuntu 22.04 Serverにインストール
まず、とりあえずUbuntu Server、Ubuntu上のKVMを使えるようにします。

PacketFenceダウンロードと展開
公式ウェブサイトから、「Zero Effort NAC」をダウンロードします。執筆時点の2022年9月には、V12が公開された直後です。
Virtual Appliance (OVF)
PacketFence-ZEN-v12.0.0.zip
をダウンロードします。ファイル名が示している通り、zipファイルです。Windowsでダウンロードした場合には、開くと「PacketFence-ZEN-v12.0.0.ova」ファイルが出てきます。これを、Ubuntuに送ります。
拡張子「OVA」はQEMU/KVMでそのまま扱える形式ではないですが、QEMU/KVMを使って使える形式「QCOW2」に変換できます。
OVAファイルからスタート
ターミナルから、
tar -xf PacketFence-ZEN-v12.0.0.ova
をすると、OVAファイルの中身が出てきます。「.ovf」「.mf」「.vmdk」の3つで、「.vmdk」が仮想OSの本体です。QEMUでそのまま扱える形式へ変換するコマンドを使って、「qcow2」にします。
qemu-img convert -f vmdk -O qcow2 PacketFence-ZEN-v12.0.0-disk1.vmdk PacketFence-ZEN-v12.0.0-disk1.qcow2
変換先のファイル名は自由です。
KVMでインポート
Virt-manager(Virtual Machine Manager)で先ほどのqcow2ファイルをインポートすれば完了です。展開したQCOW2ファイルがそのまま使われるため、ユーザーホームから移動させておいた方が良いと思います。
ログイン画面が表示されます。
Welcome to the PacketFence-ZEN
In order to configure your PacketFence Installation, please connect to one of the following URLs:
https://192.168.50.94:1443packetfence login:
ここで、ログイン用プロンプトはDebianシステムに対してのログインを求めています。ヘルプにかかれている通り、
Login: root
Password: [email protected]
rootユーザーでのログインになります。同じネットワーク内にあるPCから指定されたURLに入って設定します。
PacketFenceの初期設定
画面の表示通りに設定していけばとりあえず動くようになります。
Step1. Interfaces & Networks
management用のネットワークカードを設定します。今回はネットワークカードが一つしかないので、そのままです。
Step2. Database, General, Alerting, Administrator
ほとんど設定しなくても大丈夫ですが、タイムゾーン設定とPacketFence管理ツールの管理者パスワードの設定、必要なら管理者メールアドレスへの通知設定を行います。
次へ、をクリックするとデータベース設定がされて次へ進みます。
Step3. Fingerbank
オプションですが、Fingerbankというデバイス識別ツールで個体識別ができるようです。Cloud APIサービスで、1時間300リクエストまでは無料のようですのでせっかくなので設定してみます。
PacketFenceと同じくInverseが開発しているサービスのようです。Githubアカウントで利用できるようなので、今回はGithubアカウント連携ですませます。
デバイスのフィンガープリントがInverseに送られていくようで、いろいろなデバイスが登録されています。例えば、Xbox Series XはデバイスID:87520です。なぜか、PlayStation 6がデバイスID:109882、Details:インポートスクリプトで作成されました、というエントリーまで作られています。
Step4: Passwords
作成・設定したパスワード一覧の確認画面が出てきます。データベースのアカウントと、PacketFenceの管理アカウントのパスワードです。
同じ仮想ディスクからセットアップしても、毎回データベースパスワードが変わります。
ログイン
ユーザー名「admin」と設定したパスワードで管理画面にログインします。
インストール直後の状態でメモリは5GB程度使用されていました。
とても「重い」パッケージ
PacketFenceの公式に最低推奨スペックが書かれています。
The following provides a list of the minimum server hardware recommendations:
- Intel or AMD CPU 3 GHz, 4 CPU cores
- 16 GB of RAM
- 200 GB of disk space (RAID-1 recommended)
- 1 network card (2 recommended)
3GHzの4コア、16GBのメモリ、200GBのディスク容量・・・。かなり重たいです。テスト用に使っている、第8世代Core i5-8400(6コア6スレッド、定格2.8GHz最大4.0GHz)、メモリDDR4 8GBのマシンでは、管理ページを満足に動かせませんでしたし、メモリ足りないアラートが出っ放しでまともに動作させられませんでした。
メモリを16GBに積み増しして割り当て10GBならとりあえず初期設定は楽々クリアできました。
コメント