超入門 OpenSSH(セキュリティ設定編)

では、超入門 OpenSSH(Tera Term)に戻りまして
このviを使って、練習を兼ねながら本番設定といきましょう

まずは最初にログインする一般ユーザーを1つ作ります
ユーザー名はseito

# useradd seito

続いてユーザーseitoのパスワードの設定
# passwd seito

パスワードは共通ルールで作成してください

seitoユーザーが作成できましたら
seitoへログインしてみましょう

exitと入力して一旦TeraTermを終了し
もう1度起動します

ホストのIPアドレスを確認してOKをクリックし
SSH認証でユーザーseitoでログインしてみましょう

020

ログインできましたでしょうか

では、この状態でrootへログインします

$ su

rootにログインできましたでしょうか

では、これよりssh一発目rootログインの禁止設定をしていきます

以下の設定ファイルをviで開いてみましょう

# vi /etc/ssh/sshd_config

rootログインを制御しているのは以下の文です
PermitRootLogin yes

rootログイン = yes
となっていますので、rootログインyesと言う設定になっています

これをrootログイン = no と言う設定に変更しましょう

コマンドモードで[y][y]でコピー
そして[p]で貼り付け

PermitRootLogin yes
PermitRootLogin yes

[i]を押して編集モードにします

#PermitRootLogin yes コメントして
PermitRootLogin no と書き換えます

[Esc]でコマンドモードに戻り
:wq で保存終了

設定が終わったらsshdを再起動しましょう

# systemctl restart sshd

これで、rootログインが出来なくなってるか確認してみましょう

一旦Tera Termを再起動し
rootログイン出来ますでしょうか

この他にもsshのセキュリティを上げる方法がいくつかあります

ポート番号がデフォルトで22ですが、これを変更したり
fail2banと言うサービスを導入したり

fail2banは一定回数認証が失敗した場合、
認証を試みるipアドレスを一定時間遮断します

パスワード総アタックを試みるスクリプトに有効なサービスでしょう

そのほかにも様々ありますが
それはまた別の機会で

これで、安全なリモートログインがとりあえず確立しました

では、もう少しsshについてやって行きましょう

今の設定は外部からsshで一般ユーザーでログインし
その後、rootへログインしました

sshは何も外部から接続するだけでなく
ネットワーク内のサーバー同士に接続したり
あるいは、ローカルマシンの中でもssh接続が出来てしまうんです

ではrootからseitoへssh接続してみましょう
# ssh 一般ユーザー名 @ 接続先のホスト(IPアドレスなど)

# ssh seito@localhost

一番最初に接続した場合、なりすまし接続を防止するため
このホストを信用するか確認メッセージがでます

・・・
Are you sure you want to contine connecting (yes/no)?

「yes」で返しましょう

Warning: Pemanently added ‘XXX.XXX.XXX.XXX’ (RSA) to the list of known hosts.
seito@localhost’s password:
ユーザーseitoのパスワードを入力します
これで、接続先のホスト認証鍵がクライアント側に登録されました

次回からは、この認証鍵を使ってサーバー側のペア鍵をチェックすることを表しています

ログインが成功すると
[一般ユーザー@ホスト] $ に変わっているのが解ると思います

rootでログインし、さらに一般ユーザーへログインし
やろうと思えば、ここから別ユーザーへログインしたり・・・

ちょっとやってみましょう
ユーザーを切り替えるコマンドは su

$ SU
Password

これをほっとくと
2重3重とログインしていくので
どんどん動作が重くなっていきます

現在のユーザーからログアウトしたい時は「exit」と入力すれば
1つ前のユーザーに戻ります

また、ssh接続から抜けるときも「exit」と入力します

これがsshの大まかな動作です

Linux同士やMacOSなどはターミナル同士では、こうした接続が可能ですが
Windowsの場合、ターミナルがありませんので
sshクライアントソフト=「TeraTerm」を使います

そして、このsshを使うことが出来るなら
外部からの接続で、ほぼすべてのサーバーを構築することが可能となります