では、超入門 OpenSSH(Tera Term)に戻りまして
このviを使って、練習を兼ねながら本番設定といきましょう
まずは最初にログインする一般ユーザーを1つ作ります
ユーザー名はseito
# useradd seito
続いてユーザーseitoのパスワードの設定
# passwd seito
パスワードは共通ルールで作成してください
seitoユーザーが作成できましたら
seitoへログインしてみましょう
exitと入力して一旦TeraTermを終了し
もう1度起動します
ホストのIPアドレスを確認してOKをクリックし
SSH認証でユーザーseitoでログインしてみましょう
ログインできましたでしょうか
では、この状態で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を使うことが出来るなら
外部からの接続で、ほぼすべてのサーバーを構築することが可能となります