はじめに
前回の記事では、さくらVPSにスタートアップスクリプト「CentOS_LAMP」を使用してCentOS7をインストールした。
今回はセキュリティの設定をする。
セキュリティの設定
セキュリティのための以下の設定をする。
- rootでログインできないようにする
- 公開認証鍵でログインする
- SSH接続するポートを変更する
rootでログインできないようにする
一般ユーザーの作成
仮にユーザー名をtestuserとする。
ユーザーを追加してパスワードを設定する。
# useradd testuser
# passwd testuser
Changing password for user testuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
試しに一旦ログアウトして、一般ユーザーでログインしてみる。
ログイン成功!
sudo設定
一般ユーザーでsudoコマンドが使えるようにする。
# usermod -G wheel testuser
ちゃんとsudoコマンドが使えるか確認する。
再度ログインすると設定が有効になるそうなので、一旦ログアウトする。
testuserでログインする。
sudo idコマンドで試す。
$ sudo id
[sudo] password for testuser:
uid=0(root) gid=0(root) groups=0(root)
ちゃんとsudoコマンドが使えた。
公開認証鍵でログインする
公開鍵と秘密鍵の生成
PuTTYをインストールすると一緒にインストールされるPuTTYgenを使用する。
-
RSAにチェック -
Number of bits in a generated key:は2048 -
Generateをクリック -
Key passphraseにパスフレーズを入力**(忘れないようにメモすること!)** -
Confirm passphraseに同じパスフレーズを入力 -
Save public keyをクリックし、id_rsa.pubと名前を付けて保存(公開鍵) -
Save private keyをクリックし、id_rsa.ppkと名前を付けて保存(秘密鍵) -
PuTTYgenを閉じる
公開鍵をVPSにアップロード
Windowsコンソールを使用する。
まず、PuTTYをインストールしたフォルダに移動
cd C:\Program Files\PuTTY
そこにpscp.exeがあることを確認する
dirコマンドで移動したフォルダ内を一覧表示
dir
以下のコマンドでアップロードする
pscp 保存したディレクトリ\id_rsa.pub testuser@VPSのIPアドレス:id_rsa.pub
testuser@VPSのIPアドレス's password:
id_rsa.pub | 0 kB | 0.5 kB/s | ETA: 00:00:00 | 100%
Windowsコンソールを閉じる
公開鍵を登録する
PuTTYでSSH接続する
testuserでログインする
$ cd
$ mkdir .ssh
$ chmod 700 .ssh/
$ ssh-keygen -i -f id_rsa.pub >> authorized_keys
$ mv authorized_keys .ssh
$ chmod 600 .ssh/authorized_keys
$ rm -f id_rsa.pub
上記のコマンドは、
.sshディレクトリを作成して、
ssh-keygenで公開鍵の形式を変換、
rmで変換する前の公開鍵を削除している。
SSH接続するポートを変更する
firewallのポート開放
まずsuコマンドでrootユーザーに変更
SSH接続はデフォルトではポート22だが、セキュリティのため別の任意のポートでアクセスするように設定する。
ここでは仮に2000とする。
$ su -
Password:
# firewall-cmd --zone=public --add-port=2000/tcp
success
# firewall-cmd --zone=public --add-port=2000/tcp --permanent
success
--permanentで恒久化させる
sshd_configの書き換え
viコマンドで編集
# vi /etc/ssh/sshd_config
sshd_configファイルを書き換える
ポートは任意のポートを指定する。(ここでは仮に2000とする)
以下のように修正する
# Port 22
Port 2000
Portの前の#を削除してポート番号を書き換える
# PermitRootLogin yes
PermitRootLogin no
PermitRootLoginの前の#を削除してnoに書き換える
PasswordAuthentication yes
PasswordAuthentication no
PasswordAuthenticationをnoに書き換える
viを終了する
sshdを再起動する
# systemctl restart sshd.service
締め出されると怖いのでSSH接続をつないだままにしておく
接続の確認
別のウィンドウでPuTTYを起動する

サーバーのIPとさっき設定したポートを入力
さらに、Connection > SSH > Authの画面にあるPrivate key file for authentication:のBrowseボタンを押す。
id_rsa.ppkファイルを指定する。

この設定で接続できるかを確認する。
パスワードを聞かれるが、この時は公開鍵と秘密鍵の生成した時のパスフレーズを使用する。
接続できれば設定完了!
まとめ
SSH接続の設定変更はさくらのサポート情報にも記事があった。
そちらではTeraTermを使用していたが、今回はPuTTYで設定してみた。
公開鍵をアップロードする作業はドラッグアンドドロップでできるのでTeraTermの方が簡単そうですね。
次回はLet's Encryptを用いたSSL接続の設定をしてみます。

