私はRaspberry Piなどの家庭用で使うサーバーを利用していますが、SSH接続を導入しています。
勉強がてらにという理由もありますが、レンタルサーバーを借りていると外部から驚くほど攻撃されているのが目に見えて怖いからです。
サーバーへの接続は旧来のログイン・パスワード方法は総当たり(ブルートフォースアタック)されるといずれ突破されてしまいます。
家庭用とはいえセキュリティに用心するに越したことはないです。SSH公開鍵認証で接続するのをお勧めします。
簡単な設定でもSSHは接続できますが、デフォルトの設定だとよろしくないところがいくつかあります。セキュリティ向上のために変更しておきましょう。
SSH接続をするにあたって、編集するファイルはサーバーの下記のディレクトリにあります。ファイルのバックアップを作ってから編集しましょう。
cd /etc/ssh/sshd_config
vi sshd_confg
SSHのポート変更
初期設定ではSSHで利用するポートは22が割り振られています。
恰好の攻撃目標にされてしまうのでポート番号は変更しておきましょう。sshd_configからPort 22と記載のある場所をPort [任意の番号]に変更します。
番号は任意ですが、使えないポート番号もあるので注意して下さい。。一般的には動的・プライベートポート番号と呼ばれる49513~65535の間で割り振ります。
Port [任意の番号]
rootログインの禁止
Windowsでもそうですが、ユーザーが使う権限は必要最小限であるべきです。
使わない機能をいじれてしまうと、うっかり設定を変更してしまったり、必要不可欠なファイルを変更してしまうからです。
更にサーバーで悪さをしたい人は当然何でもできるrootユーザーを狙ってきます。rootでのログインは禁止しておきましょう。
コメントアウトしてPermitRootLoginをnoにしておきます。
# PermitRootLogin yes
PermitRootLogin no
パスワード認証を禁止
SSH接続では秘密鍵・公開鍵を利用するので、ユーザー名、パスワードでの認証機能は不要です。パスワード認証を禁止に変更しましょう。
PasswordAuthenticationをnoにして無効にします。
# PasswordAuthentication yes
PasswordAuthentication no
チャレンジ/レスポンス認証を無効にする
先ほどパスワード認証を禁止したため、ワンタイムパスワードなどで利用する機能のチャレンジ/レスポンス認証も不要になりました。無効にしましょう。
ChallengeResponseAuthenticationの項目をnoに変更して無効にします。
# ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
空パスワードを無効
クライアント、サーバーに変わらず空パスワードはパスワードの意味がありません。
セキュリティが非常に脆弱になるので、これも設定を変更して禁止します。PermitEmptyPasswordsをnoにしておきます。
# PermitEmptyPasswords yes
PermitEmptyPasswords no
これで変えたほうがいいsshd_configの設定変更は終了です。viを保存することを忘れないようにしてくださいね。
sshd認証を再起動
サーバーで設定ファイルを変更した場合、再起動しないと設定は有効になりません。
sshdを再起動することを忘れないようにしましょう。
sudo systemctl restart sshd
以上でSSH接続にやっておいた方がいい設定変更は終了です。お疲れさまでした。
コメント