ルーター熱に侵され、Ubiquitiの無線APを手に入れました。
ただのメモなので技術や、深い設定の話などはありません。
日本にも正規代理店があります。
UNMS (Ubiquiti Network Management System) という独自のネットワーク管理システムを採用しており、管理画面のデモを見るだけでも面白いです。

Unifi AP ACについて

- PoEでの電源供給
- トラフィック統計画面が美麗
- ゲストユーザーにバウチャーコードを発行。有料のPaypal支払い可能。
- Facebook、Google+ログイン
- AP本体だけでは設定ができない。別機器のコントローラーソフトが必要
- UniFi Security Gateway (USG)がないとより高度な機能が使えない Deep packet inspectionなど
- 2.4Ghz / 5Ghz の設定が分かりにくい

直接本体にアクセスして設定ができないので、WindowsやMac、Linux機にコントローラーをインストールする必要があります。
コントローラーをインストールすれば、スマホからも操作できるアプリを使うことができます。
Windows / Macにコントローラーをインストール
Windows / Mac などの場合はこちらのソフトをインストールしましょう。

同一ネットワーク上のAPを自動で検索して、ブラウザ上や、スマホからも設定可能になります。
もちろん、インストールした機器の電源が入っていない状態では設定ができなくなります。設定ができないだけでAPとしての機能は問題なく使えます。
Raspberry Piにコントローラーをインストール
普段利用しているWindows、Macなどにもインストール可能ですが、今回は手持ちのRaspberry Pi W Zero にコントローラーを入れます。Synology NASのDockerにコントローラーをインストールしましたが、うまくいきませんでした。

初期設定は済ませているものとしてインストールしていきます。IPアドレスは固定しておきましょう。
コマンドを順番に実行していけばOKです。
# Raspberry Pi を最新の状態へ
sudo apt-get install rpi-update && echo Y | sudo rpi-update
sudo apt-get update && sudo apt-get upgrade -y
# Java SDKをインストール
sudo apt-get -y install oracle-java8-jdk
# ソースを追加
echo 'deb http://www.ubnt.com/downloads/unifi/debian stable ubiquiti' | sudo tee -a /etc/apt/sources.list.d/100-ubnt.list > /dev/null
# ソフトの認証
sudo apt-get -y install dirmngr
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 06E85760C0A52C50
sudo apt-get update
# コントローラーをインストール
sudo apt-get install unifi -y
# mongoDBは使用しないので停止
sudo systemctl stop mongodb
sudo systemctl disable mongodb
# コントローラーを再起動
systemctl restart unifi
これでコントローラのインストールは完了です。
https://192.168.xxx.xxx:8443/
こちらにアクセスしてみましょう。
IPアドレスはRaspberry Piのものです。
初期ユーザー名、パスワードを適当に設定していきます。


この時点でデバイスが表示されない場合もありますが、次に進みます。

ここでWiFiの設定をしないでスキップしてもOKです。

クラウドアクセスはスキップして大丈夫です。
次回のログインからはこのログイン画面になります。

あとは、環境に合わせて設定していきます。(雑で恐縮です)

ゲストポータルデザイン変更
WiFiをゲストに開放するための設定です。
まずは、「Wireless Network」でゲスト用のネットワークを作成します。
SSIDなどを入力して、「Guest Policy」にチェックを入れてください。

次に、「Guest Control」より、ゲストネットワークのログイン方法や、ポータル画面の設定を行います。
ここでは、単純なパスワード認証や、バウチャー方式のほか、Facebook、Google+、外部サーバーによる認証を設定することができます。

ポータル画面をカスタマイズ
デフォルトでは英語表示ですが、言語ファイルを変更することで日本語表示させることも可能です。
SSHを設定して、SFTPでログインしてください。
/var/lib/unifi/sites/default/app-unifi-hotspot-portal/locales/
ここの、「en」フォルダをコピーして、「ja」にします。
中にある、「portal.json」ファイルを編集して日本語にします。
適当に作った日本語ファイルを配布しますので必要あればご利用ください。

ポータル画面の見た目を変更するには
日本語ファイルは文章の出力が日本語になるだけなので、ポータルのUIデザインを変更する場合は
/var/lib/unifi/sites/default/app-unifi-hotspot-portal/views/
このフォルダ内の「home.html」ファイルを編集します。
バウチャー
/var/lib/unifi/sites/default/portal/bundle/
フォルダ内の「voucher.html」、「voucher.css」を変更することでバウチャーコードのデザイン買えることができます。

配列を変更した場合はこんな感じ
Google Chartsなどを使うことでQRコードを挿入したりできます。
動作ポート変更
デフォルトのコントローラーのポートは8443ですが環境に合わせて変更します。
/var/lib/unifi/
「system.properties」
unifi.https.port=9999
など任意のポート(この場合は9999)を、ファイルの最後に追加します。
SSL 設定
最後にSSLの設定です。
外部から管理する必要がない場合は、この設定は特に不要です。
Freenomでドメインをゲット
外部からドメイン名でアクセスしたい場合はFreenomで適当にドメインを取得します。
SSLなうなどでSSL証明書をゲット
CloudflareなどのDNSレコードを利用して、SSLなうなどでSSL証明書をサクッと作成します。
SSLを結合 サーバー証明書と秘密鍵を結合します。
サーバー証明書「cert.pem」
秘密鍵「privekey.pem」
この2つのファイルを用意して
Macの場合はターミナルでデスクトップなどに移動して以下のように実行します。
openssl pkcs12 -export -inkey privkey.pem -in cert.pem -out unifi.pfx
Export パスワードは「aircontrolenterprise」と入力してください。
「unifi.pfx」というファイルが生成されます。
/etc/lib/unifi/data/
ここの「<strong>keystore</strong>」が元の証明書ファイルなのでダウンロードしておきます。(要バックアップ)
KeyStore Explorer をダウンロードして実行します。
用意した「<strong>keystore</strong>」をドラッグするとパスワードを要求されるのでデフォルトパスワードの「<strong>aircontrolenterprise</strong>」を入力します。

「Import Key Pair」のアイコンをクリック。
「PKCS #12」を選択します。
「Decryption Password」は「<strong>aircontrolenterprise</strong>」
「PKCS #12 Key Pair File」に先程の「unifi.pfx」をしてしてください。
「Enter Alias」には「unifi」を入力します。
上書き確認がでるので、はいをクリックします。
パスワードは同様に「aircontrolenterprise」です。
ここまで終わったら、<strong>保存</strong>して終了します。
/etc/lib/unifi/data/
また、SFTPを開き、keystoreを置き換えます。
完了
これで外部からSSLを利用して https://xxx.com:8443/ にアクセスできるようになりました。