最近ではカフェや空港など公共の場でWiFi環境が整備されはじめとても便利になりました。これらのWiFi環境に接続する時には、Webページに飛ばされてユーザ名とパスワードを入力するよう促される場面が多々あると思います。このようなWebベースのユーザ認証を実現するソフトウェアとしてPacketFenceというものがあることを最近知りました。そこで実際に使ってみたところ、機能が充実しており便利だったため、PacketFenceを用いたWeb認証ネットワークを構築してみました。その構築手順についてメモします。PacketFenceの使用構成と機能まずはじめに、PacketFenceを使用する構成について説明します。以下の図1が使用構成になります。Server、以降ではPacketFenceサーバと呼びます)を、Web認証を行いたい図1中の認証ネットワークとインターネットの間に直列に接続した構成で使用します。ちなみに、図1中のRouterがDHCPサーバ、DNSサーバとして動作します。PacketFenceの使用構成そして、認証ネットワーク側のユーザ端末がWiFiアクセスポイントやネットワークスイッチに接続すると、RouterはIPアドレスを割り振ります。その後、例えばユーザ端末がいざWebブラウジングしようとすると、PacketFenceがユーザ端末の通信に介入して、ユーザをWebブラウザ上のログイン画面へリダイレクトし、認証を行うといった流れになります。PacketFenceの主な機能を以下に簡単にまとめます。PC)に対してWebブラウザを通して認証可能。RADIUSのようにWiFiアクセスポイント機器やネットワークスイッチ、さらにユーザ端末に対する特別な要件(IEEE802.1xへ要対応など)が不要。WiFiアクセスポイント、ネットワークスイッチに接続したユーザの端末には以下のようなログイン画面がWebブラウザ上に表示されます。上のログイン画面でPacketFence側にあらかじめ登録された正しいユーザ名とパスワードを入力すれば、そのユーザはインターネットへ接続できるようになります。ログインが成功しない限りユーザ端末はインターネットへの接続が完全に遮断された状態となり、Webページへのアクセスはもちろん、メール送受信、pingも通りません。上のログイン画面は、css、htmlファイルを修正することで自由にカスタマイズ可能です。アカウント毎に接続可能端末数の制限や各アカウントのログイン時間、さらにRADIUSと連携させることでアカウント毎の帯域使用量の管理、設定した帯域使用量を越えたアカウントの抽出、ある条件を満たしたアカウントへのペナルティなども設定することができるそうです。今回はRADIUSとの連携までは設定していないため、以降にRADIUSとの連携による帯域使用量の管理方法やペナルティの設定方法については書いてありません。アカウントを持っていないユーザに対してゲストアカウントを作成させることも可能です。up」をクリックすると、以下のようなゲストアカウント取得のための画面が表示され、ユーザは必要事項を記入することでゲストアカウントを取得できます。ユーザに入力させる必要事項の修正やゲストアカウントの有効期限などはPacketFence側で設定可能です。他にもPacketFenceには色々な機能が用意されているようです。今回は単純にPacketFenceを用いてユーザ認証だけを行うネットワークを環境しました。その構築手順を以降にメモします。RADIUSを用いた認証ネットワークとの違いこの前はRADIUSによる認証ネットワーク環境構築のための7ステップをメモしました。実際の運用にあたって、RADIUSを用いると以下のような2つの問題があります。RADIUSに対応しているwifiアクセスポイントやネットワークスイッチが必要であり、これらは高価な場合が多い一般ユーザにとって接続が簡単でない場合がある。7からRADIUS認証ネットワークに接続する場合、設定変更を要する場合があり、この設定変更は一般ユーザにとって分かりにくい以上のような問題から、RADIUSを導入することは管理する側とユーザ側の両方にとってすごく簡単かと聞かれるとそうではありません。RADIUSのほうが優れている点はもちろんあります。RADIUSでは、ユーザの端末に対してIPアドレスを割り振る前に認証処理を行うことができます。それに対して、今回構築するWeb認証ネットワークでは、どんな端末でも認証する前にIPアドレスを割り振ってしまいます。したがって、Web認証のネットワークはRADIUS認証を用いたネットワークよりもセキュリティは劣ると言えると思います。よって、Web認証のほうが全ての面で優れているかというとそうではないので、RADIUSとWebベースどちらの認証ネットワークを構築するかは対象とするユーザや規模によって適切に選択する必要がありそうです。PacketFenceのインストール前置きが長くなりましたが、PacketFenceのインストール手順について説明します。注意点として、ubuntu12.04では下記の通りで問題なくインストールできますが、12.04以降ではインストールできませんでした。(Wheezy)、RHEL/CentOSに対応しているようです。以降では、インストール先がubuntu12.04であることを前提とします。以下のコマンドで、「/etc/apt/sources.list.d/packetfence.list」というファイルを作成、編集します。以下ではエディタとしてnanoエディタを用いています。/etc/apt/sources.list.d/packetfence.listそして作成したファイルに以下の内容を記述します。preciseただし、上記はubuntu12.04の場合です。次に以下のコマンドによってPacketFenceをインストールするための公開鍵を取得します。0x810273C4最後に以下のコマンドを実行することでPacketFenceのインストールが開始されます。packetfence上記でインストールが開始されますが、途中で以下のようにmysqlやnullmailerの設定をするための画面が表示される場合があります。nullmailerの設定画面この場合は、適当に入力して次に進んで下さい。これらの設定は後からでも変更できます。最後に、PacketFenceの設定を行うまえに、以下のコマンドによって、ubuntuのパケット転送を有効にしておく必要があります。パケット転送を有効化しておかないとPacketFenceが正しく動作できません。net.ipv4.ip_forward=1以上で準備は完了です。次はPacketFenceの設定を行っていきます。PacketFenceの設定インストールが完了したら、ブラウザを開き以下のURLにアクセスします。以下のURLは、PacketFenceの各設定を行うための管理画面のURLになります。管理画面にアクセス後、PacketFenceの初期設定を行っていきます。初期設定は全部でステップ6まであります。以降で各ステップについて説明します。管理画面にアクセスすると、以下の画面が表示され、ここではステップ1としてPacketFenceの使用構成を指定します。使用構成としては、「インライン」と「VLAN」の2つがあります。インライン構成では、冒頭に載せた図1のように、PacketFenceサーバが、認証ネットワークとインターネットに直列(インライン)に接続して使用する構成です。このインライン構成では、PacketFenceサーバが図1の認証ネットワークの通信全てを監視することになります。enforcement」にチェックを入れて画面下の「Continue」で次に進みます。次にステップ2として以下の画面が表示されます。ここでは、PacketFenceサーバが持つ2つのインターフェースの各IPアドレス、どちらが認証ネットワークにつながれているかなどを指定します。ステップ2:PacketFenceが使用するインターフェースの設定画面インライン構成では、認証ネットワークに接続されたインターフェースの「Type」を「inline」に指定し、インターネットに接続されたインターフェースの「Type」を「Management」に指定します。この管理画面にアクセスする際にURLとして「https://localhost:1443」を指定しましたが、このステップ2以降は、ここでManagementに指定したインターフェースのIPアドレスが管理画面にアクセスする際に必要なIPアドレスになります。よって図7のように設定した場合は、管理画面のURLは「https://192.168.122.12:1443」になります。図7の画面内のインターフェース名であるeth0、eth1をクリックすることで各インターフェースの設定を行うことができます。eth0をクリックしてみると、以下の画面が表示されます。ここでは、以下のように設定しました。eth0は認証ネットワークに接続されているインターフェースであるため、「Type」を「Inline」に設定しています。設定が終わったら、「Save」をクリックして完了です。eth0の設定また、eth1をクリックしてみると以下の画面が表示されます。eth0の場合と異なるのは、「Type」を「Management」に設定している点です。この場合はDNSの設定は不要になります。GatewayのIPアドレスを指定したら、画面下の「Continue」で次に進みます。ステップ3:PacketFenceが利用するMySQLサーバの設定ステップ3では、PacketFenceが利用するMySQLサーバの設定を行います。画面内の必要な部分を適当に入力して完了です。accountは、管理画面にアクセスする時に必要となるアカウントです。user」をクリックします。最後に「Continue」をクリックしてステップ3は完了です。ステップ4:PacketFenceの構成に関する設定ステップ4では、以下の画面のようにドメイン名やホスト名DHCPサーバなどを設定します。ステップ4:PacketFenceの構成に関する設定画面ステップ5:PacketFenceのAdministratorアカウントの設定ステップ5では、PacketFenceのAdministratorアカウントの作成です。これも適当にユーザ名とパスワードを設定して完了です。ステップ5:PacketFenceのAdministratorアカウントの設定画面ステップ6:PacketFenceの起動そして最後のステップ6でPacketFenceを起動します。PacketFence」をクリックすると、各DaemonのStatusがStartingになり、そのうちStartedになります。これでPacketFenceの設定は完了です。再度ブラウザから「https://192.168.122.12:1443」にアクセスすると、管理画面へのログイン画面が表示されます。ログインすると、以下のような画面が表示されると思います。PacketFenceログイン後の画面この管理画面から様々な設定やまたユーザのアカウント毎の情報を確認、制御することができます。以降では、ユーザアカウントの作成方法を説明します。PacketFenceのユーザアカウントの作成手順ユーザがPacketFenceによる認証ネットワークに接続するには、あらかじめユーザアカウントを作成しておく必要があります。ユーザアカウントを持たないユーザでも、ゲストアカウントを作成することで認証ネットワークに接続することができます。ここではゲストアカウントについては省略し、ユーザアカウントの作成手順を以下で説明します。PacketFenceの管理画面にアクセスし、以下の画面上部の赤線枠内の「Configuration」をクリックします。すると、以下のようにPacketFenceの設定画面に移ります。ここで様々な設定を行います。ユーザアカウントを作成するには、以下赤線枠内の「USERS」の「Create」をクリックします。ここで必要事項を入力することでユーザアカウントを作成できます。Window」にユーザアカウントの使用開始日と使用終了日を設定することができます。Users」をクリックして完了です。すると以下の画面が出ます。Email」をクリックすることで、登録したユーザのメールアドレスに通知を送信することができます。以上でユーザアカウントの作成は完了です。作成したユーザアカウントの一覧と各アカウントの情報は、以下の赤線枠内の「Users」の画面で確認および修正することができます。作成したユーザアカウントを使って認証ネットワークに接続した端末は以下のように管理画面に表示され、管理者はリアルタイムにモニタリングすることができます。Web認証画面のカスタマイズについてPacketFenceの設定に関わる各ファイルは、ubuntu12.04にインストールした場合だと「/usr/local/pf/」に置いてあります。このディレクトリ内に「html」というディレクトリがあり、この中のhtml、cssファイルを修正することでWen認証画面を自由にカスタマイズできます。動作しない場合まずPacketFenceが正しく動作している場合は、管理画面の「Services」の画面において、全てのDaemonのStatusが以下のように「Started」になっているはずです。ALl」を押してみて下さい。それでも全てのDaemonがStartedにならない場合は、一度ホストマシン(ここではubuntu)を再起動し、その後、ターミナル上で下記のコマンドを実行することでPacketFenceを起動してみて下さい。startこれで何もエラーが出ずに起動できれば、管理画面上で全てのDaemonがStartedになり、PacketFenceが正常に動作すると思います。これらの作業後もまだ「Started」にならないDaemonがある場合は、そのDaemonに関する設定に問題がある可能性があるのでそのDaemon関連の設定を見直すと解決に繋がるかもしれません。まとめWeb認証を実現するソフトウェアであるPacketFenceを使うことで、割と簡単にWeb認証ネットワークを構築することができました。他にWeb認証を実現するソフトウェアとして、WiFidogというソフトウェアなども試そうとしましたが、どうもインストールがうまくいかず結局私では使えませんでした。PacketFenceはインストールがすんなりと完了し非常に楽でした。ブラウザ上での管理画面が用意されていて設定が楽である点、機能が満載である点も良かったです。PacketFenceがどれだけのユーザ数を収容できるのか、実用に耐えうる性能なのかなどは確認できていないので、もし機会があれば確認してみたいと考えています。後で読むサービスのPocketにかなり近く、機能豊富なオープンソースのWallabagをUbuntuにインストールしたのでその手順をまとめます。クラウドストレージは便利な反面、見知らぬ人が自分のファイルを閲覧できてしまったり公開状態になってしまっていたりというバグが発生し得ます。WireGuardはOpenVPNよりもシンプルで高速、より安全なVPNとして開発が進められており、OpenVPNに代わるVPNとして期待されています。20:28初めまして。コメント送信、失礼します。コメントをキャンセルメールアドレスが公開されることはありません。virtualiment。