WebARENAの使い方 – (環境構築:SSH/セキュリティ設定)
ここでは、WebArenaで作成したインスタンスに、 ローカルPC端末から SSHで接続します。SSH接続後に、インスタンスのセキュリティ設定を実施します。
インスタンスの作成については、以下の記事を参考にしてください。
最安VPSでマルチドメインサイト構築(WebArena 環境構築:インスタンス設定)
また、SSHの接続のために以下の情報が必要になります。上記記事を参考に、あらかじめ取得をお願いします。
- 【SSH使用情報①】 キーペア作成時にダウンロードしたpemファイル
- 【SSH使用情報②】 作成したインスタンスのIPアドレス
- 【SSH使用情報③】 ubuntuユーザ(rootユーザ)のパスワード
SSH接続
TeraTermがなくても、PowerShellでもssh接続ができます。 もちろんTeraTermでも問題ありません。
参考:PowerShellでSSHクライアントを使う(Windows 10ネイティブ版)
まず、ローカル端末のユーザのsshフォルダに移動し、ダウンロードしたpemファイル( 【SSH使用情報①】 )を配置します。
私がダウンロードした際は、ファイル名は「ssh-j*****.pem」でした。
ここで1つハマりポイントですが、接続のユーザ名は「root」ではなく「ubuntu」になります。
ssh ubuntu@[ipアドレス] -i [ダウンロードしたpemファイル]
接続に成功すれば、以下のメッセージが表示されます。
PS C:\Users\*******\.ssh> ssh ubuntu@***.***.***.*** -i .\ssh-j*******.pem
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)
Documentation: https://help.ubuntu.com
Management: https://landscape.canonical.com
Support: https://ubuntu.com/advantage System information as of Sun May 19 14:45:11 JST 2019 System load: 0.08
Usage of /: 25.3% of 19.56GB
Memory usage: 41%
Swap usage: 1%
Processes: 99
Users logged in: 1
IP address for ens3: ***.***.***.***
IP address for docker0: 172.17.0.1
IP address for br-739c7d708685: 172.18.0.1
Ubuntu's Kubernetes 1.14 distributions can bypass Docker and use containerd
directly, see https://bit.ly/ubuntu-containerd or try it now with snap install microk8s --classic
Canonical Livepatch is available for installation.
Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch
230 packages can be updated.
107 updates are security updates.
Last login: Sun May 12 22:33:05 2019 from ***.***.***.***
ubuntu@*********:~$
インスタンスのセキュリティ設定
ここからはOSのセキュリティの設定をします。設定にあたっては以下のサイトを参考にさせて頂きました。
以下の順番で設定を進めていきます。
- VPSの環境整備
- OSアップデート
- ユーザ作成(rootを使わないために)
- SSH鍵作成と公開鍵配置
- sshの設定ファイルを変更
- rootユーザーでのログインを禁止する
- パスワードでログインできなくする(鍵認証)
- ポートを閉じて(変更して)侵入経路をふさぐ
- WebARENAのセキュリティグループへ反映
1-1. VPSのOSをアップデートする
ubuntuはdebian系ですので、apt-getになります。
# apt-get update # apt-get upgrade
1-2. ユーザ作成(rootユーザーでのログイン禁止)
新しいユーザを追加します。(ユーザを作成する前にrootでのログインを禁止すると誰も入れなくなってしまいます。)
ここでコマンドに注意です。 「useradd」コマンドではホームディレクトリが作成されません。Ubuntuではユーザー追加時は「adduser」コマンドを使います。 「adduser」 を使うとパスワード発行からホームディレクトリ作製まで対話式に進むので、ユーザー作成が簡単にできます。
# adduser USER_NAME Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
作成したユーザに、sudoの実行権限を付与します。sudoはスーパーユーザの実行権限が必要なコマンド時に使用するコマンドです。
# usermod -aG sudo USER_NAME
1-3. SSH鍵作成と公開鍵配置
新たに追加したユーザでSSH接続できるようにします。そのために、ローカル環境でssh鍵を作成し、サーバに公開鍵を配置します。
ssh-keygen #ローカル環境で実行
公開鍵をサーバへ配置するためにscpコマンドで行います。先ほど作成した新規ユーザのホームに.sshフォルダが作成されていなければ、事前に作成します。
mkdir /home/追加ユーザ名/.ssh #サーバ環境で実行
作成した公開鍵を転送します。まだ新規ユーザでは接続できないため、ここはubuntuユーザで実行します。
scp -i .\ssh-j********.pem .\ id_rsa_*******.pub ubuntu@IPアドレス:/home/新ユーザ名/.ssh #ローカル環境で実行
公開鍵をサーバに登録します。手順としては、新たにauthorized_keysファイルを作成し、そこに転送した公開鍵を転記します。
cd /home/新ユーザ/.ssh #サーバ環境で実行 sudo touch authorized_keys chown 新ユーザ名:新ユーザ名 authorized_keys cat ras_********.pub authorized_keys
ここまでできたら、新しいユーザでSSH接続できます。接続すると Ubuntuユーザでログインしたときと同じメッセージが画面に表示されるはずです。
ssh 新しいユーザ名@[ipアドレス] -i [作成した秘密鍵] #ローカル環境で実行
2. SSHの設定ファイル 変更
セキュリティを向上させるために、SSHの設定を変更します。今回は、以下の対応を行います。
- 2-1. SSH接続のポート番号を変更する
- 2-2. rootユーザーでのログインを禁止する
- 2-3. パスワードでログインできなくする(鍵認証)
SSHの設定ファイルは以下のコマンドを実行して編集します。
sudo vim /etc/ssh/sshd_config
設定ファイルに以下の変更を加えていきます。
ちなみに変更後のポート番号には10001~65535の番号の間で入力するのがおすすめ。例えば[29112]みたいな数値です。この番号はなんでも OKですが、あとで必要になるため忘れないようにメモをしましょう。
#Port 22 ←コメントアウト
Port 29*** ←追記
PermitRootLogin no ←コメントを外す
#PasswordAuthentication yes ←コメントアウト
PasswordAuthentication no ←追記
設定を変更し終えたら、以下のコマンドを実行してsshdを再起動します。
sudo systemctl restart sshd
3. WebARENAのセキュリティグループへ反映
先ほど変更したポート番号を、セキュリティグループのルールに追記します。
再度SSH接続して、以下のエラーがでればOKです。設定変更が反映されています。
PS C:\Users\****.ssh> ssh ubuntu@***.***.***.*** -i .\ssh-*******.pem ssh: connect to host ***.***.***.*** port 22: Connection refused
また変更後のポート番号でログインできることを確認します。
PS C:\Users\****.ssh> ssh ubuntu@***.***.***.*** -i .\ssh-*******.pem -p 29*** Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64) Documentation: https://help.ubuntu.com Management: https://landscape.canonical.com Support: https://ubuntu.com/advantage System information as of Sun May 19 17:06:53 JST 2019 System load: 0.05 Usage of /: 25.3% of 19.56GB Memory usage: 40% Swap usage: 1% Processes: 97 Users logged in: 1 IP address for ens3: ***.***.***.*** IP address for docker0: 172.17.0.1 IP address for br-739c7d708685: 172.18.0.1 Ubuntu's Kubernetes 1.14 distributions can bypass Docker and use containerd directly, see https://bit.ly/ubuntu-containerd or try it now with snap install microk8s --classic Canonical Livepatch is available for installation. Reduce system reboots and improve kernel security. Activate at: https://ubuntu.com/livepatch 230 packages can be updated. 107 updates are security updates.
以上が、 WebArenaVPSのインスタンスへのSSH接続と、セキュリティ設定になります。次回はGit環境を構築します。