January 18, 2019

817 letters 2 mins read

Raspberry PiとVALUE-DOMAINのDDNSで安価にVPN環境を構築する(セキリティの設定)

Raspberry PiとVALUE-DOMAINのDDNSで安価にVPN環境を構築する(セキリティの設定)

Raspberry PiでOpenVPNサーバを構築するシリーズ。 前回まででSSHでヘッドレスで繋げるまでの最低限の設定ができたので 次はセキュリティ関連の設定をする。 目次はこちら

ユーザ名の変更

ユーザ名はデフォルトでpiとなっているので これを変更する。 変更手順はこちらの記事を参考にした。

仮ユーザの作成

仮のユーザを作成する。

$ sudo useradd -M tmp

作成した仮ユーザをsudoグループに追加する。

$ sudo gpasswd -a tmp sudo

仮ユーザのパスワードを設定。

$ sudo passwd tmp

一旦ログアウトする。

$ exit

ログアウトしたら仮のユーザ名で入り直しておく。

piユーザのユーザ名を変更する

ユーザ名を変更。この際、GUIにpiでログインしていると変更できないので注意。

$ sudo usermod -l newuser pi

ホームディレクトリの変更。

$ sudo usermod -d /home/newpi -m newpi

piグループを新しいグループ名に変更。

$ sudo groupmod -n newuser pi

仮ユーザからログアウト。

exit

新しいユーザのパスワードを変更

まず、仮ユーザを削除する。

$ sudo userdel tmp

次に新ユーザのパスワードを変更。

$ sudo passwd newuser

SSH設定の変更

デフォルトのままだとセキュリティガバガバなので、必ず外部からアクセスできるようにする前に設定を変更する。

rootへのログインを不可にし、鍵認証のみ許可する

まず、クライアント側で鍵を生成し、公開鍵を~/.ssh/authorized_keysにコピペで登録する。

$ sudo vi /etc/ssh/sshd_config

下記部分をコメント解除して追記。

PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no

必ずSSHを繋いだままで別セッションを立ち上げてSSHでログインできるか試すこと。

SSHのポートを変更する

上記設定をしていてばほぼ不正ログインされることはないので、 ポート変更はセキュリティ担保には本質的ではない気がするが 外部からの無用なアクセスを予防する意味で設定する。

$ sudo vi /etc/ssh/sshd_config

以下の部分をコメントアウトし、任意のポート番号(1024-65535の間)を設定。 基本的には22を含むポート番号は避けるべき。(10022とか) 結局攻撃される。 また、11111とか12345とかも微妙そう。

port 22