Raspberry Pi 3 Model B で Wi-Fi VPN ルータを作ってみた

■要件
・Raspberry Pi 3 Model B で作るWi-Fi VPN ルータ
・Access Point を複数立て、接続するAPごとに異なるVPNへブリッジできるようにする
・ただし、Wi-Fi ルータとしての機能も残す
・Raspberry Pi 3 Model B の OS は、CentOS 7 とする
・初期設定は極力シンプルに
・出所がはっきりしているものだけで構成

■使用したもの
・Raspberry Pi 3 Model B
・USB ACアダプタ
・microSD 8GB
・WLI-UC-GMN2
・WLI-UC-AG300N

■CentOS 7 arm7hl (32bit) のインストールについて
公式のWiki参照
 https://wiki.centos.org/SpecialInterestGroup/AltArch/Arm32/RaspberryPi3

■成果物:ブートストラップ3つ
1:Raspberry Pi 3 Model B の初期設定実施
2:Wi-Fi AP として設定
3:Wi-Fi AP を2つ追加し、SoftEther VPN Bridge の導入
  ※SoftEther VPN Bridge の設定は、別記事参照。
Raspberry Pi 3 Model B VPN Router

【各ブートストラップの概要】
■Raspberry Pi 3 の初期設定を行うブートストラップ
・スクリプト実行時に、ホストネームを引数にしているか確認
・microSD の全領域まで / パーティションを拡張
・/ と swap パーティションで Block Discard (Trim / UNMAP) 有効化
・root パスワードの設定 ★あえて手動入力
・ホストネームの設定
・タイムゾーンの設定
・キーマップの設定
・localhost を IPv4 のみに限定化
・可能な限り network-latency のチューニングを投入
・ntpd のインストールと設定
・パッケージアップデートの実行
・ifconfig やその他過去の Enterprise Linux で使えた管理コマンドの有効化
・iptables コマンドの有効化
・Wi-Fi 制御用コマンドの有効化
・ローカルリポジトリ作成用パッケージのインストール
・firewalld, iptables, ip6tables の停止
・Raspberry Pi 3 の Wi-Fi モジュールの有効化
・非特権ユーザ (admin) の作成とパスワードの設定 ★あえて手動入力
・SSH経由でパスワード認証を利用した root ログインの拒否設定
・非特権ユーザで RPM ビルド環境の整備
・ローカルリポジトリの作成
・ローカルリポジトリを利用するように設定
・乱数ジェネレータのビルドとインストール
・Wi-Fi の規制範囲設定ツール (crda) のビルドとインストール
 ※必要となる m2crypto がビルドは成功するがテストが失敗するので、テストを無効化してビルドする

■Wi-Fi AP として設定するブートストラップ
・Wi-Fi AP 用に、ifcfg-wlan0 を再作成
・ルータ動作用のため、IP Forward 有効化
・iptables 設定スクリプトの生成と iptables 設定および有効化
・DHCP サーバのインストールと設定
・DNS サーバのインストールと設定
・Wi-Fi AP サーバ (hostapd) のビルド、インストールと設定
・インターフェース利用状況モニターツール (iftop) のビルド、インストールと設定
・Webmin のインストール

■Wi-Fi AP を2つ追加し、SoftEther VPN Bridge を導入するブートストラップ
※物理的に Wi-Fi アダプタを2つ追加必要
・ifcfg-wlan1, ifcfg-wlan2 の作成
・Wi-Fi AP サーバ (hostapd) の再設定
・SoftEther VPN Bridge のインストールと設定

■未来の自分用メモ
・tuned パッケージは、python-perf が無いとビルドできない。
 →今のラズパイ用CentOS7公式イメージは、それがない。
  64bit版が公式にアナウンスされたら行けるかも。
・Wi-Fiでほとんどのチャンネルが利用不能だった。
 →crda を入れることで、カントリーコード設定が有効になった。
  むしろこれが arm7hl のリポジトリにデフォルトで存在しないのが謎・・・。
  もしかして、m2crypt のせいだろうか。
・EPEL には arm7hl がないんだけど。
 →RHEL 的には、aarch64 をメンテナンスしてるようだ。
  なので、CentOS側がaarch64なイメージを出せばいろいろ楽になりそう。
・MAC Address はちょっと特殊。
 イーサネット:「B8:27:EB」 + CPU のシリアル
 Wi-Fi:Wi-Fi機器のMACアドレス無視してる気がする。
     オンボード、後付の両方ともに。
     wlan0 hw ether aa:bb:cc:dd:ee:ff で変えれるし。。。
・ブラウザからシャットダウンできるように Webmin いれたけど、もっとスマートにしたい。

カテゴリー: めも パーマリンク

Raspberry Pi 3 Model B で Wi-Fi VPN ルータを作ってみた への3件のフィードバック

  1. ピンバック: Raspberry Pi 2 / 3 向け CentOS 7 Kernel RPM の作成 | まこぴかっと

  2. ピンバック: 20170216 はれ | まこぴかっと

  3. ピンバック: 過去に作った CentOS7 on Raspberry Pi 3 向けブートストラップスクリプトを、7.4 向けに修正した | まこぴかっと

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です