🖥

VPNサーバ構築(4) Raspberry Piのraspi-config設定、NTP設定、Swap無効化とファイアフォール設定

2021/08/11に公開

初期設定の流れ

初期設定は2段階に分けて行っている。(セキュリティ的に意味があるのか正直分からないが。)

  • 1段階目ではインターネットに接続せず、Wi-FiやBluetooth、IPv6の無効化、ログイン関連の設定(ユーザ名の変更、sshの公開鍵認証の設定)を行う。

https://zenn.dev/kumatani/articles/vpn-2-settingupraspberrypi

https://zenn.dev/kumatani/articles/vpn-3-settingupraspberrypi-2

  • 2段階目ではインターネットに接続し、ファイアフォールの設定やパッケージの自動更新設定、メール通知設定、LINE通知設定などを行う。

前回の記事で、第1段階目の設定は完了しているため、本記事では第2段階目の設定として、raspi-configによる設定、NTP設定、Swapの無効化とファイアフォール設定を行う。

インターネットに接続したら

まずはソフトウェアのアップデートを実行する。

sudo apt update
sudo apt -y dist-upgrade
sudo apt -y autoremove
sudo apt autoclean

ついでにエディタとしてvimを使用したいので、インストールしておく。

sudo apt install vim

ここで一旦、再起動

sudo reboot

raspi-configによる設定

下記のコマンドでRaspberry OSの設定ツール raspi-configを起動する。

sudo raspi-config

8 Update

raspi-config自体を更新する。終了するとraspi-configに戻る。

1 System - S4 Hostname

ホスト名を変更する。複数のRaspberry Piを接続する環境だとブロードキャストする名前がかぶるために変更しておくのだそう。

5 Localisation Options - L1 Locale

スペースで選択/解除できる。英語であれば"en_US.UTF-8 UTF-8"、日本語であれば"ja_JP.UTF-8 UTF-8"を設定しておけば良いのではないだろうか。

5 Localisation Options - L2 Timezone

タイムゾーン"Asia"を選択して、さらに"Tokyo"を選択する。

5 Localisation Oprions - L4 WLAN Country

今回はWi-Fiを無効化しているので必要ないが、Wi-Fiが有効な時は"JP Japan"を選択する。

6 Advanced Options - A1 Expand Filesystem

これを選択すると、micro SDの全容量を利用できるようになる。次回のboot時に反映するというようなメッセージが出ればOK。

NTP (Network Time Protocol) の設定

下記コマンドでtimesyncd.confを開き、

sudo vim /etc/systemd/timesyncd.conf

下記のように修正する。NTPサーバとしてNICT公開NTPサービスとインターネットマルチフィード(MFEED) 時刻情報提供サービス for Publicを利用する。

/etc/systemd/timesyncd.conf
[Time]
NTP=ntp.nict.jp ntp.jst.mfeed.ad.jp
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

https://jjy.nict.go.jp/tsp/PubNtp/index.html

https://www.mfeed.ad.jp/ntp/overview.html

下記コマンドでNTPを有効化する。

sudo timedatectl set-ntp true

デーモンをリロードし、サービスを再起動する。

sudo systemctl daemon-reload
sudo systemctl restart systemd-timesyncd.service

プロセスを確認し、実行できていることを確認する。

ps -ax | grep "time"

以下のような表示されれば実行できている。

  255 ?        Ssl    0:00 /lib/systemd/systemd-timesyncd

また下記コマンドでサービスのステータスを確認をできる。

sudo systemctl status systemd-timesyncd

Swapの無効化

Swapを使用するとmicro SDへの書き込みが多くなり寿命が短くなるらしい。無効化しておく。まず、現在のSwap容量を確認する。

free -h

下記コマンドでSwapをオフにする。

sudo dphys-swapfile swapoff

このままでは再起動すると再度Swapが作られてしまうので、下記コマンドで再起動してもSwapが作られないようにする。

sudo apt remove dphys-swapfile
sudo apt autoremove

再起動し、

sudo reboot

Swapが作成されていないことを確認する。

free -h

ファイアウォール ufw のインストールと設定

ufwのインストール

ファイアフォールの設定にufwを使用する。インストールは下記コマンドでできる。

sudo apt install ufw

現在の状況を確認する

下記コマンドでステータスを確認できる。

sudo ufw status

インストール直後では

Status: inactive

が表示される。インストールしただけでは機能は有効になっておらず、何を許可/拒否するかを設定した後に有効化する。

デフォルトの設定

まだufwが有効化されておらず、設定もしていない段階で全拒否を設定しておく。基本的な設定の考え方は全て拒否した上で、必要なところを開放するという流れ。

sudo ufw default deny

sshの許可

このまま機能を有効化してしまうと、今設定に使用しているsshすらも拒否されてしまう。そこでsshに使用するポートを開放する。

sudo ufw allow from 0.0.0.0/0 to any port 55555

ポート番号は前回設定した値を用いる。"from 0.0.0.0/0"は全IPv4アドレスからのアクセスを示している。つまりこの設定は、全IPv4アドレスからの55555番ポートへのアクセスを許可するということを意味する。"Rules updated"と出力されればルールが更新された。

ファイアフォールを有効化する

下記コマンドでファイアフォールを有効化する。

sudo ufw enable

sshで作業している場合、

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

が表示されssh通信を中断する可能性があることを確認される。既に上記でポート開放の設定をしているためyを回答する。有効化ができると以下のメッセージが表示される。

Firewall is active and enabled on system startup

状態の確認

ステータスのコマンドで状態を確認できる。

sudo ufw status

以下のように表示されれば、設定した通りに55555番ポートの許可ができている。

Status: active
To Action From
-- ------ ----
55555 ALLOW Anywhere

また下記コマンドで設定したポート番号の一覧も確認できる。

sudo ufw status numbered

以下のように表示される。

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere

VPNサーバのために設定が必要なポート

この後、VPNサーバを構築するために以下の4つのポートを開放する必要がある。

Port Protocol 用途
443 TCP Softether manager
500 UDP Softether L2TP
4500 UDP Softether L2TP
1194 UDP Softether Open VPN

下記に設定のコマンド例を示す。

sudo ufw allow from 0.0.0.0/0 to any port 443 proto tcp
sudo ufw allow from 0.0.0.0/0 to any port 500 proto udp
sudo ufw allow from 0.0.0.0/0 to any port 4500 proto udp
sudo ufw allow from 0.0.0.0/0 to any port 1194 proto udp

参考

https://jyn.jp/raspbian-setup/
https://qiita.com/HeRo/items/c1c30d7267faeb304538
https://qiita.com/c60evaporator/items/ebe9c6e8a445fed859dc
https://raspida.com/firewall4raspbian-ufw

Discussion