VPNサーバ構築(4) Raspberry Piのraspi-config設定、NTP設定、Swap無効化とファイアフォール設定
初期設定の流れ
初期設定は2段階に分けて行っている。(セキュリティ的に意味があるのか正直分からないが。)
- 1段階目ではインターネットに接続せず、Wi-FiやBluetooth、IPv6の無効化、ログイン関連の設定(ユーザ名の変更、sshの公開鍵認証の設定)を行う。
- 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を利用する。
[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
下記コマンドで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
参考
Discussion