Raspi環境構築

OSのアップグレード後、rebootかけたらOSが立ち上がらなくなりました。reboot前にps auxで見たら、アップグレードプロセスが生きていたので、ちゃんと完了していなかったのかもしれない。

OS入れ直して位置から環境を作り直す。

やること

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が変わる可能性あり。定期的に確認して、前回と変更がある場合通知を出す。

手順

  1. global ipを格納して前回のipと確認
  2. 異なる場合、指定したメールに通知を送る
  3. 調べた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

TBD

Postgresql install

TBD

reboot後にwifiが見つけられなくなった

下記ファイルに1行付け足す。 /etc/wpa_supplicant/wpa_supplicant.conf

 network={
         ssid="XXXXX"
         psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
         scan_ssid=1
 }

なんで急にwifiが見つけられなくなったのかはよくわからない。

-> dhcpcd がうまく動いていなかった。 理由不明。

$ sudo systemctl restart dhcpcd