Help us understand the problem. What is going on with this article?

初学者のVPSサーバー構築手順書(3)

それではセキュリテー強化のために以下を実行していきます。

・ 一般ユーザの作成
・ 公開鍵認証の設定
・ 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のインストールにいよいよ移ります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした