導入条件
- Armbian 21.02.3 Buster with Linux 5.10.21-sunxi
- Orange Pi PCを以下の手順によりルータ化済のこと
RTL8188によるOrangePiのルータ化Vol.2 Orange Pi
RaspAPドキュメント
https://docs.raspap.com/manual/
configファイルの変更
Orange Pi PCのルータ化で、ネットワークインターフェイスwlan1をアクセスポイントとして指定しているため、wlan0からwlan1、dhcp-rangeなども併せて変更します。
config/090_wlan0.conf
ファイル名を090_wlan1.conf
へ変更するかどうかは任意。
# RaspAP wlan1 configuration for wired (ethernet) AP mode
interface=wlan1
domain-needed
dhcp-range=11.22.33.44,11.22.33.150,255.255.255.0,12h
dhcp-option=8.8.8.8,1.1.1.1
config/config.php
.....
.....
define('RASPI_WIFI_AP_INTERFACE', 'wlan1');
.....
.....
config/defaults.json
アクセスポイントをwlan1のみで指定する場合、wlan0のセクションは必要ありません。
{
"dhcp": {
"wlan1": {
"static ip_address": [ "11.22.33.44/24" ],
"static routers": [ "11.22.33.44" ],
"static domain_name_server": [ "1.1.1.1 8.8.8.8" ],
"subnetmask": [ "255.255.255.0" ]
},
"wlan0": {
"static ip_address": [ "192.168.10.10/24" ],
"static routers": [ "192.168.10.1" ],
"static domain_name_server": [ "1.1.1.1 8.8.8.8" ],
"subnetmask": [ "255.255.255.0" ]
},
"options": {
"# RaspAP default configuration": null,
"hostname": null,
"clientid": null,
"persistent": null,
"option rapid_commit": null,
"option domain_name_servers, domain_name, domain_search, host_name": null,
"option classless_static_routes": null,
"option ntp_servers": null,
"require dhcp_server_identifier": null,
"slaac private": null,
"nohook lookup-hostname": null
}
},
"dnsmasq": {
"wlan1": {
"dhcp-range": [ "11.22.33.44,11.22.33.150,255.255.255.0,12h" ]
},
"wlan0": {
"dhcp-range": [ "192.168.10.50,192.168.10.150,12h" ]
}
}
}
config/dhcpcd.conf
DHCPクライアントの設定。インターネットへ接続しているルータのDHCPサーバから割当てられるIPアドレスを、ルータで設定したIPアドレス範囲内で指定。
.....
.....
# RaspAP default configuration
.....
.....
# RaspAP wlan0 configuration
interface wlan0
static ip_address=192.168.0.xx/24
static routers=192.168.0.1
static domain_name_server=192.168.0.1 1.1.1.1
関連パッケージのインストール・ファイルコピー
既にインストール済のパッケージが幾つかあるかもしれませんが、以下インストールします。
$ sudo apt-get install dhcpcd5 lighttpd git hostapd dnsmasq iptables-persistent vnstat qrencode php7.3-cgi
Lighttpdのfastcgiモジュールを有効化、設定をリロードし再起動
$ sudo lighttpd-enable-mod fastcgi-php
$ sudo service lighttpd force-reload
$ sudo systemctl restart lighttpd.service
RaspAPをウェブサーバディレクトリへダウンロード
$ sudo git clone https://github.com/RaspAP/raspap-webgui /var/www/html
Lighttpdの拡張設定ファイルを以下の手順で作成、lighttpdの設定ディレクトリへ追加
$ WEBROOT="/var/www/html"
$ CONFSRC="$WEBROOT/config/50-raspap-router.conf"
$ LTROOT=$(grep "server.document-root" /etc/lighttpd/lighttpd.conf | awk -F '=' '{print $2}' | tr -d " \"")
$ HTROOT=${WEBROOT/$LTROOT}
$ HTROOT=$(echo "$HTROOT" | sed -e 's/\/$//')
$ awk "{gsub(\"/REPLACE_ME\",\"$HTROOT\")}1" $CONFSRC > /tmp/50-raspap-router.conf
$ sudo cp /tmp/50-raspap-router.conf /etc/lighttpd/conf-available/
上記追加した設定ファイルを有効にし、Lighttpdを再起動
$ sudo ln -s /etc/lighttpd/conf-available/50-raspap-router.conf /etc/lighttpd/conf-enabled/50-raspap-router.conf
$ sudo systemctl restart lighttpd.service
サーバユーザであるwww-dataにネットワークの管理権限を付与するため、以下のファイルを指定ディレクトリにコピーします。
$ cd /var/www/html
$ sudo cp installers/raspap.sudoers /etc/sudoers.d/090_raspap
raspap.sudoers
ウェブ管理画面で変更したくない箇所はコメントアウトして下さい。
www-data ALL=(ALL) NOPASSWD:/sbin/ifdown
www-data ALL=(ALL) NOPASSWD:/sbin/ifup
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan_results
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] reconfigure
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] select_network [0-9]*
# www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf
# www-data ALL=(ALL) NOPASSWD:/bin/systemctl start hostapd.service
# www-data ALL=(ALL) NOPASSWD:/bin/systemctl stop hostapd.service
# www-data ALL=(ALL) NOPASSWD:/bin/systemctl start dnsmasq.service
# www-data ALL=(ALL) NOPASSWD:/bin/systemctl stop dnsmasq.service
www-data ALL=(ALL) NOPASSWD:/bin/systemctl restart dnsmasq.service
www-data ALL=(ALL) NOPASSWD:/bin/systemctl start openvpn-client@client
www-data ALL=(ALL) NOPASSWD:/bin/systemctl enable openvpn-client@client
www-data ALL=(ALL) NOPASSWD:/bin/systemctl stop openvpn-client@client
www-data ALL=(ALL) NOPASSWD:/bin/systemctl disable openvpn-client@client
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/ovpnclient.ovpn /etc/openvpn/client/client.conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/authdata /etc/openvpn/client/login.conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasqdata /etc/dnsmasq.d/090_*.conf
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/dnsmasq.d/090_*.conf
# www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dhcpddata /etc/dhcpcd.conf
www-data ALL=(ALL) NOPASSWD:/sbin/shutdown -h now
www-data ALL=(ALL) NOPASSWD:/sbin/reboot
www-data ALL=(ALL) NOPASSWD:/sbin/ip link set wlan[0-9] down
www-data ALL=(ALL) NOPASSWD:/sbin/ip link set wlan[0-9] up
www-data ALL=(ALL) NOPASSWD:/sbin/ip -s a f label wlan[0-9]
# www-data ALL=(ALL) NOPASSWD:/bin/cp /etc/raspap/networking/dhcpcd.conf /etc/dhcpcd.conf
www-data ALL=(ALL) NOPASSWD:/etc/raspap/hostapd/enablelog.sh
www-data ALL=(ALL) NOPASSWD:/etc/raspap/hostapd/disablelog.sh
# www-data ALL=(ALL) NOPASSWD:/etc/raspap/hostapd/servicestart.sh
www-data ALL=(ALL) NOPASSWD:/etc/raspap/lighttpd/configport.sh
www-data ALL=(ALL) NOPASSWD:/etc/raspap/openvpn/configauth.sh
www-data ALL=(ALL) NOPASSWD:/bin/chmod o+r /tmp/hostapd.log
www-data ALL=(ALL) NOPASSWD:/bin/chmod o+r /tmp/dnsmasq.log
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasqdata /etc/dnsmasq.d/090_adblock.conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasq_custom /etc/raspap/adblock/custom.txt
www-data ALL=(ALL) NOPASSWD:/etc/raspap/adblock/update_blocklist.sh
RaspAP専用ディレクトリの作成
$ sudo mkdir /etc/raspap/
$ sudo mkdir /etc/raspap/backups
$ sudo mkdir /etc/raspap/networking
$ sudo mkdir /etc/raspap/hostapd
$ sudo mkdir /etc/raspap/lighttpd
ユーザ認証用phpファイルのコピー
$ sudo cp raspap.php /etc/raspap
サーバディレクトリのパーミッションを設定
$ sudo chown -R www-data:www-data /var/www/html
$ sudo chown -R www-data:www-data /etc/raspap
hostapdシェルスクリプトの移動とパーミッションの設定
$ sudo mv installers/*log.sh /etc/raspap/hostapd
$ sudo mv installers/service*.sh /etc/raspap/hostapd
$ sudo chown -c root:www-data /etc/raspap/hostapd/*.sh
$ sudo chmod 750 /etc/raspap/hostapd/*.sh
Lighttpdシェルスクリプトのコピーとパーミッションの設定
$ sudo cp installers/configport.sh /etc/raspap/lighttpd
$ sudo chown -c root:www-data /etc/raspap/lighttpd/*.sh
デフォルトファイルの配置
初めに内容を変更した各種設定ファイルは、デフォルトの設定ファイルとして利用します。
$ sudo cp config/090_raspap.conf /etc/dnsmasq.d/090_raspap.conf
$ sudo cp config/090_wlan0.conf /etc/dnsmasq.d/090_wlan0.conf
$ sudo cp config/dhcpcd.conf /etc/dhcpcd.conf
$ sudo cp config/config.php /var/www/html/includes/
$ sudo cp config/defaults.json /etc/raspap/networking/
その他オプションについてはドキュメントを参照して下さい。
以下テーマ変更後の表示例です。
http://192.168.1.xx
ダッシュボード
アクセスポイント設定
WiFi接続設定