それではセキュリテー強化のために以下を実行していきます。
・ 一般ユーザの作成
・ 公開鍵認証の設定
・ sudo 設定
・ SSH 接続時、root でのログインを禁止
・ SSH 接続時、パスワード認証を禁止
#一般ユーザーの作成
一般ユーザの作成は「useradd」コマンドを使う。
$ ssh root@[IPアドレス]
root@[IPアドレス]'s password:
Last failed login: Sat Oct 19 22:34:57 JST 2019 from 218.92.0.171 on ssh:notty
There were 621 failed login attempts since the last successful login.
Last login: Sat Oct 19 17:35:04 2019 from kd0000000000.ppp-bb.dion.ne.jp
SAKURA Internet [Virtual Private Server SERVICE]
[root@tk0-000-00000 ~]# useradd kaiji
[root@tk0-000-00000 ~]# passwd kaiji
ユーザー kaiji のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
って感じで作成して
[root@tk0-000-00000 ~]# ssh kaiji@000.00.000.000
The authenticity of host '000.00.000.000 (000.00.000.000)' can't be established.
ECDSA key fingerprint is SHA256:00000000000000000000000000000000000000000000.
ECDSA key fingerprint is MD5:00:0f:00:0b:00:d0:d0:db:0c:0d:f0:0f:00:db:a0:d0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '000.00.000.000' (ECDSA) to the list of known hosts.
kaiji@000.00.000.000's password:
SAKURA Internet [Virtual Private Server SERVICE]
[kaiji@tk0-000-00000 ~]$
となればログイン成功(passwordは入力しても表示されないので色々keyを押さないように)
ちなみにログアウト方法はexit。
[kaiji@tk0-000-00000 ~]$ exit
ログアウト
Connection to 000.00.000.000 closed.
[root@tk0-000-00000 ~]# exit
ログアウト
Connection to 000.00.000. closed.
kaiji@tongawasan-mac ~/
ちなみに再度すぐLogInしようとしたら
ssh: connect to host 000.00.000.00 port 22: Operation timed out
と出るので確認のためping。
$ ping 160.16.102.15
PING 160.16.102.15 (160.16.102.15): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
うーむとなりがちでしたが。。
ssh kaiji@tk0-000-00000.vs.sakura.ne.jp
The authenticity of host 'tk2-227-23146.vs.sakura.ne.jp (160.16.102.150)' can't be established.
ECDSA key fingerprint is SHA256:000000000000000000000000000000000000000000.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'tk0-000-00000.vs.sakura.ne.jp' (ECDSA) to the list of known hosts.
root@tk0-000-00000.vs.sakura.ne.jp's password:
Last failed login: Sat Oct 19 23:45:47 JST 2019 from 103.30.40.152 on ssh:notty
There were 47 failed login attempts since the last successful login.
Last login: Sat Oct 19 22:51:24 2019 from kd000000000000.ppp-bb.dion.ne.jp
SAKURA Internet [Virtual Private Server SERVICE]
[kaiji@tk0-000-00000 ~]#
そりゃそうだって事で。。
#公開鍵認証の設定
作成したユーザに対して、公開鍵認証の設定を行います。PC などのクライアント側で SSH 接続用の鍵ペア(秘密鍵 id_rsa と、公開鍵 id_rsa.pub の組み合わせ )を作成します。作成後はパスワードではなく、クライアント側の秘密鍵を使ったログインができるように、設定を行う。
##鍵を作る
[kaiji@tk0-000-00000 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kaiji/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/kaiji/.ssh/id_rsa.
Your public key has been saved in /home/kaiji/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0000000000000000000000000000 kaiji@tk0-000-00000.vs.sakura.ne.jp
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| 0 0 |
| 0000000 |
| 0000000000|
| 0000000|
| 00000000|
| 0000000|
+----[SHA256]-----+
このパスワードは、鍵ファイル自体にかけるパスワードです。
実行すると色々聞かれましたが、基本的にEnterを押してスキップして大丈夫みたいです。
[kaiji@tk0-000-00000 ~]$ ls -a //作成できてるか確認
[kaiji@tk0-000-00000 ~]$ cd ~/.ssh/ //フォルダ移動
[kaiji@tk0-000-00000 ~]$ cat id_rsa.pub >> authorized_keys
[kaiji@tk0-000-00000 ~]$ chmod 600 authorized_keys //アクセス権
[kaiji@tk0-000-00000 ~]$ chmod 700 ~/.ssh //自分のみ
PC側にも
$ logout //exitでも
$ scp kaiji@tk0-000-00000:~/.ssh/id_rsa ~/.ssh/
##秘密鍵をクライアントへ転送
やる事は一緒
$ cd ~/.ssh/
$ chmod 600 id_rsa
$ mv id_rsa kaiji //好きな名前でいいらしい
$ chmod 700 ~/.ssh
##鍵認証でサーバにアクセス
$ ssh –i ~/.ssh/kaiji/kaiji@tk0-000-00000.vs.sakura.ne.jp
Last login: Sun Oct 20 12:57:16 2019 from kd000000000000.ppp-bb.dion.ne.jp
SAKURA Internet [Virtual Private Server SERVICE]
[kaiji@tk0-000-00000 ~]$
となれば成功。
#sudo設定
一般ユーザで「sudo」コマンドが使えるように設定します。sudo とは、別のユーザとしてコマンドを実行するためのコマンドであり、設定ファイル /etc/sudoers を参照し、一般ユーザでも root と同じ権限で操作可能な状態にする。
##wheelグループに対するsudo設定の有効化
[kaiji@tk0-000-00000 ~]$ su
パスワード:
[root@tk0-000-00000 kaiji]# usermod -G wheel kaiji
[root@tk0-000-00000 kaiji]# exit
exit
CentOS7では、対象ユーザの次回ログイン以降、設定が有効になるらしいので一旦抜けます。
実行例(id コマンドを実行すると、root ユーザ権限だと分かります):
$ ssh -i ~/.ssh/kaiji kaiji@tk0-000-00000.vs.sakura.ne.jp
Last login: Tue Oct 22 00:37:29 2019 from kd000000000000.ppp-bb.dion.ne.jp
SAKURA Internet [Virtual Private Server SERVICE]
[kaiji@tk0-000-00000 ~]$ sudo id
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
[sudo] kaiji のパスワード:
uid=0(root) gid=0(root) groups=0(root)
って出れば有効化成功!
#SSH接続時、rootでのログイン、パスワード認証を禁止
設定を変更するには、まず、設定ファイル「/etc/ssh/sshd_config」を編集します。その前に、バックアップ用のファイルを作成しておきます(もしも設定変更後に sshd サーバが起動できなくなっても、元の sshd_config に戻せば復旧できるからです)。
次に「sudo vi /etc/ssh/sshd_config」などで設定ファイルを開いたら、ファイル中の2ヵ所を変更します。
#PermitRootLogin yes # root でのログインを許可するかどうか
PermitRootLogin no # yes を「no」(許可しない)に
下にスクロールして・・
#PasswordAuthentication yes # パスワード認証を許可するかどうか
PasswordAuthentication no
ファイルを保存後、sshd を再起動して設定を有効化。
$ sudo systemctl restart sshd
正常に稼働しているかどうかは、次のようにコマンドを実行し、sshd が「Active: active (running)」なのを確認。
$ sudo systemctl status sshd
* sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-10-15 13:27:39 JST; 14s ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 4955 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
Main PID: 5057 (sshd)
CGroup: /system.slice/sshd.service
`-5057 /usr/sbin/sshd -D
もし「dead」(停止中)となっている場合は、正常に起動していません。原因を調べるためにはログの参照が必要です。ログは「journalctl -xe」コマンドで確認できます。多くの場合は sshd_config の記述ミスに関するエラーが表示されているでしょう。さくらの VPS の場合、もしログインができなくなっても、コントロールパネル上の「コンソール」機能を通して操作可能だとの事。
動作確認では、今のSS 画面はそのままにし、別のログイン画面を立ち上げての動作確認をお勧めらしいです。
あとは、root でログインを試みてもエラーとなり、パスワード認証もできなければ設定完了です
って事で以上で完了です。
ゼェ・・・ゼェ・・・次はLAMPのインストールにいよいよ移ります。