WebARENAロゴ

WebARENAの使い方 – (環境構築:SSH/セキュリティ設定)

ここでは、WebArenaで作成したインスタンスに、 ローカルPC端末から SSHで接続します。SSH接続後に、インスタンスのセキュリティ設定を実施します。

WebARENA(VPSクラウド)

インスタンスの作成については、以下の記事を参考にしてください。

最安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のセキュリティの設定をします。設定にあたっては以下のサイトを参考にさせて頂きました。

以下の順番で設定を進めていきます。

  1. VPSの環境整備
    1. OSアップデート
    2. ユーザ作成(rootを使わないために)
    3. SSH鍵作成と公開鍵配置
  2. sshの設定ファイルを変更
    1. rootユーザーでのログインを禁止する
    2. パスワードでログインできなくする(鍵認証)
    3. ポートを閉じて(変更して)侵入経路をふさぐ
  3. 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環境を構築します。

まとめ記事に戻る:WebARENAの使い方 – 最安VPSでサイト構築(Docker + Let’s Encrypt)

タグ: ,

About: ken


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください