はじめに
前回の記事では、さくら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接続の設定をしてみます。