日本語化まで終わったら、次は安全な接続方法の設定を行っていきます。
まずは、rootを使わないようにしましょう。
一般ユーザーの設定
rootログインはセキュリティ上危険なので、一般ユーザー設定を行います。
1 2 |
# useradd admin # passwd admin |
その後、パスーワードを聞かれるので、任意のパスワードを設定します。
ユーザー設定後、wheelグループに追加します。
1 |
# usermod -G wheel admin |
wheelグループのユーザがコマンドでsudoを実行するために設定ファイルをvisudoコマンドで変更します。
1 |
# visudo |
変更前
1 2 |
## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL |
変更後
1 2 |
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL |
これでadminがsudoを使えるようになりました。
SSH接続の設定
MacやLinuxの場合、コマンドで一発作成可能です。WindowsはTeraTermで作成して下さい。(Windowsの場合はこちらから)ここでは、Mac、Linuxの場合の設定方法です。
手元のパソコン側でターミナルを開いて
1 |
# ssh-keygen |
のコマンドを入力します。
1 2 3 4 5 6 7 8 9 |
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/karuma/.ssh/id_rsa): ← Enterキーを押します Created directory '/home/karuma/.ssh'. ← ~/.ssh がない場合、ディレクトリを作成します Enter passphrase (empty for no passphrase): ← パスフレーズを入力します Enter same passphrase again: ← もう一度パスフレーズを入力します Your identification has been saved in /home/karuma/.ssh/id_rsa. Your public key has been saved in /home/karuma/.ssh/id_rsa.pub. |
以上で、RSA暗号の鍵生成は完了です。~/.ssh/ディレクトリをlsコマンドでみてみましょう。
1 2 |
ls ~/.ssh id_rsa id_rsa.pub |
対話形式なのでyesで進み、パスフレーズを入力して下さいと聞かれたら、任意のパスフレーズを入力します。パスフレーズ=パスワードと考えてもらって大丈夫です。
※コンソール上ではないですよ。
※コンソールはこの後も使うのでそのままにしておいて下さい。
続いてパソコン側のターミナルから先ほど作成したユーザでログインします。
1 |
# ssh admin@www99999ue ~ |
さっき設定したユーザでログイン後、下記のコマンドを入力し公開鍵を登録します。
1 2 3 |
[admin@www99999ue ~]$ mkdir .ssh [admin@www99999ue ~]$ chmod 700 .ssh [admin@www99999ue ~]$ vi .ssh/authorized_keys |
ここで先ほどパソコンで作成した公開鍵(ssh-keygenで作成されたこれ.ssh/id_rsa.pub)の内容を貼り付けて保存します。
保存したら権限の変更。
1 |
[admin@www99999ue ~]$ chmod 600 .ssh/authorized_keys |
SSHデーモンの設定
さきほどそのままにしておいたWEB上のコンソール(root)からsshデーモンの設定ファイルを書き換えます。
1 |
# vi /etc/ssh/sshd_config |
sshは普通22番ポートを使いますが、攻撃を回避するために私は50022番にします。49152番~65535番が自由にできるポート番号なので、その中から選ぶのが良いのではないでしょうか。
sshでrootのログインは危険なので禁止します。rootは必ず存在するユーザなので狙われやすいからですね。
また、鍵を使うため、ログインパスワードでの認証は禁止します。
変更前
1 2 3 4 5 6 7 |
(略) #Port 22 (略) #PermitRootLogin yes (略) PasswordAuthentication yes (略) |
変更前
1 2 3 4 5 6 7 |
(略) Port 50022 (略) PermitRootLogin no (略) PasswordAuthentication no (略) |
このコマンドで設定ファイルがおかしくないかチェックできるらしいです。何も表示されなければオッケー。
1 |
# sshd -t |
再起動します。
1 |
# sudo systemctl restart sshd |
正常に稼働しているかどうかは、次のようにコマンドを実行し、sshd が「Active: active (running)」なのを確認します。
1 2 3 4 5 6 7 8 9 10 11 |
# 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 2017-02-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 |