基本的なSSH強化手順の1つは、パスワードベースのSSHログインを無効にすることです。
rootまたは他のアカウントのパスワードでsshを使用して、Linuxサーバーにリモートでログインできることを知っています。
しかし、これはセキュリティ上のリスクをもたらします。これは、膨大な数のボットが常にランダムなパスワードを使用してシステムにログインしようとしているためです。これはブルートフォース攻撃と呼ばれます。
信じられないの? Linuxサーバーでログインを確認できます。サーバーでの試行の失敗が非常に多いことに驚かれることでしょう。
[email protected]:~# lastb | tail
root ssh:notty 49.235.87.213 Wed Apr 1 06:25 - 06:25 (00:00)
root ssh:notty 95.128.137.176 Wed Apr 1 06:25 - 06:25 (00:00)
aw ssh:notty 36.108.175.68 Wed Apr 1 06:25 - 06:25 (00:00)
aw ssh:notty 36.108.175.68 Wed Apr 1 06:25 - 06:25 (00:00)
fx ssh:notty 113.88.164.53 Wed Apr 1 06:25 - 06:25 (00:00)
fx ssh:notty 113.88.164.53 Wed Apr 1 06:25 - 06:25 (00:00)
root ssh:notty 112.215.113.10 Wed Apr 1 06:25 - 06:25 (00:00)
root ssh:notty 152.32.173.74 Wed Apr 1 06:25 - 06:25 (00:00)
これが、強力なパスワードを使用する必要がある理由です。それらに対処する適切な方法は、fail2banのようなツールを使用することです。もう1つの方法は、パスワードベースの認証を無効にして、ログインパスワードを介して誰も接続できないようにすることです。
このようにして、公開sshキーがサーバーに追加されているシステム(キーベース認証と呼ばれる)のみがサーバーに接続できます。 ssh構成のセットアップについてお読みください。
SSHパスワード認証を無効にする
その前に、次の点に注意する必要があります。
- 個人/職場のコンピューターでsshキーペアを作成し、この公開SSHキーをサーバーに追加して、少なくともサーバーにログインできるようにしてください。
- パスワードベースの認証を無効にすると、ランダムなコンピューターからサーバーにSSH接続できなくなります。
- sshキーを紛失してはなりません。パソコンをフォーマットしてsshキーを紛失すると、サーバーにアクセスできなくなります。
- ロックアウトされていると、サーバーにアクセスできなくなります。
LinodeやUpCloudなどの一部のクラウドサーバープロバイダーは、引き続き役立つVNCコンソールを提供しています。
SSHおよびその他のsysadminの概念に精通している場合にのみ、パスワードベースのSSH認証を無効にします。また、VimやNanoなどのターミナルベースのテキストエディタの使用方法も知っておく必要があります。
わかった。これで、パスワードを介してSSHログインを無効にすることに関連するリスクがわかりました。方法を見てみましょう。
キーベースの認証を使用して、Linuxサーバーにrootとしてログインします。 NanoやVimなどのエディターを使用して、次のファイルを編集します。
/etc/ssh/sshd_config
次の行を見つけます:
PasswordAuthentication yes
そして、次のように変更します:
PasswordAuthentication no
その行の先頭に#(コメントアウトされていることを意味します)がある場合は、それを削除します。
これらの変更を行った後にファイルを保存し、次のコマンドを使用してSSHサービスを再起動します。
systemctl restart ssh
それでおしまい。 SSHでパスワードベースの認証を正常に無効にしました。
質問や提案はいつでも歓迎します。