Raspi環境構築
OSのアップグレード後、rebootかけたらOSが立ち上がらなくなりました。reboot前にps aux
で見たら、アップグレードプロセスが生きていたので、ちゃんと完了していなかったのかもしれない。
OS入れ直して位置から環境を作り直す。
やること
- OS install
- ssh接続
- RasberryPiのusername変更
- DNS Serverにする
- OpenVPN構築
- Docker install
- Postgresql install
- reboot後にwifiが見つけられなくなった
OS install
Raspberry Pi ImagerでUbuntu Server 20.4.3 LSTを入れる
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal
ssh接続
公開鍵認証を許可する。 /etc/ssh/sshd_config
を編集。
PubkeyAuthentication yes
パスワード認証をきる。 /etc/ssh/sshd_config
を編集。
PasswordAuthentication no ChallengeResponseAuthentication no
最後に、 システム環境設定の共有のリモートログインをOFFにしてONする。
RasberryPiのusername変更
Raspbianでpiユーザ名とパスワードをうまいこと変更する - Qiita
DNS Serverにする
$ sudo apt install dnsutils # nslookup等使うため
$ sudo apt install dnsmasq
dnsmasqの設定ファイル変更
元の設定ファイルを変えたくないので、/etc/dnsmasq.d/local-dnsmasq.conf
を作成する。
port=53 domain-needed bogus-priv local=/local-domain.com/ no-hosts addn-hosts=/etc/local-hosts expand-hosts domain=local-domain.com
名前登録
上でaddn-hostsに設定した/etc/local-hostsファイルを作ります。 この中に登録したいサーバーの名前を登録します。
192.168.0.1 server01.local-domain.com server01 192.168.0.2 server02.local-domain.com server02 192.168.0.3 dns-server.local-domain.com dns-server
/etc/network/interfaces.d
以下にinterfacesファイルを作る。
dns-server 127.0.0.1 8.8.8.8
を記入。※この作業いるんだっけ。
hostnameの変更を行っておく。 /etc/hosts
と/etc/hostname
の両方で変更する必要がある。 raspberrypiからdns-serverに変更します。 rebootすれば変わっていることが確認できます。
OpenVPN構築
ネットワークのことは詳しないのですが、以下のツールで簡単に構築可能。
Ubuntu 20.04でOpenVPNサーバーをセットアップ・設定する方法 | DigitalOcean
GitHub - pivpn/pivpn: The Simplest VPN installer, designed for Raspberry Pi
PiVPNによるOpenVPNのインストール - とある社畜の頭脳整理
firewall関連について
サブネット10.8.0.0/24にクライアントが割り振られているとします。 インターフェイスはwlan0で接続しているとします。
マスカレードの設定
$ sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o wlan0 -m comment --comment openvpn-nat-rule -j MASQUERADE
openvnのポートを開けます。1194/udpがデフォルトです。
$ sudo firewalld-cmd --permanent --add-service=openvpn
VPN接続先のネットワークのマシンへの接続を許可します。これしないとVPN繋いだ状態で外のネットワークに接続できなかったです。
$ sudo firewall-cmd --permanent --zone=trusted --add-interface=tun
global ipの定期確認
固定global ipを契約しているわけではないので、ipが変わる可能性あり。定期的に確認して、前回と変更がある場合通知を出す。
手順
- global ipを格納して前回のipと確認
- 異なる場合、指定したメールに通知を送る
- 調べたipをファイルに記録
バッチファイルcheck_ip.sh
作成
ip=`curl inet-ip.info` previous_ip=cat /tmp/previous-globalip.txt if [ "$ip" != "$previous_ip" ] ; then echo "NOTE : My global ip changed The new ip is "$ ip | mail -s "NOTE: Home Global ip changed" -r system@raspi.home.com myaccount@gmail.com; fi echo $ip > /tmp/previous-globalip.txt
また、定期実行はcronで行う。
$ sudo apt install crontab $ echo "00 7 * * * check_ip.sh" > cron.conf $ crontab cron.conf
Docker install
Postgresql install
reboot後にwifiが見つけられなくなった
下記ファイルに1行付け足す。
/etc/wpa_supplicant/wpa_supplicant.conf
network={ ssid="XXXXX" psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx scan_ssid=1 }
なんで急にwifiが見つけられなくなったのかはよくわからない。
-> dhcpcd がうまく動いていなかった。 理由不明。
$ sudo systemctl restart dhcpcd