SSHサーバーを保護および保護するための5つのベストプラクティス


SSH(Secure Shell)は、ローカルまたはリモートのLinuxサーバーを接続してファイルを転送し、リモートバックアップ、リモートコマンドの実行、およびセキュリティで保護されたチャネルを介して接続する2つのサーバー間でscpまたはsftpを介してその他のネットワーク関連タスクを実行するために使用されるオープンソースネットワークプロトコルです。ネットワーク。

この記事では、sshサーバーのセキュリティを強化するのに役立ついくつかの簡単なツールとコツを紹介します。ここでは、sshサーバーをブルートフォース攻撃や辞書攻撃から保護および防止する方法に関するいくつかの有用な情報を見つけることができます。

1. DenyHosts

DenyHostsは、SSHサーバー用のオープンソースのログベースの侵入防止セキュリティスクリプトで、Linuxシステム管理者とユーザーがSSHサーバーのアクセスログを監視および分析してログイン試行の失敗を監視および分析することを目的としたPythonプログラミング言語で記述されています。強制攻撃。このスクリプトは、ログイン試行の失敗回数を設定した後にIPアドレスを禁止することで機能し、そのような攻撃がサーバーにアクセスするのを防ぎます。

  1. Keeps track of /var/log/secure to find all successful and failed login attempts and filters them.
  2. Keeps eye on all failed login attempts by user and offending host.
  3. Keeps watch on each existing and non-existent user (eg. xyz) when a failed login attempts.
  4. Keeps track of each offending user, host and suspicious login attempts (If number of login failures) bans that host IP address by adding an entry in /etc/hosts.deny file.
  5. Optionally sends an email notifications of newly blocked hosts and suspicious logins.
  6. Also maintains all valid and invalid failed user login attempts in separate files, so that it makes easy for identifying which valid or invalid user is under attack. So, that we can delete that account or change password or disable shell for that user.

続きを読む:RHEL/CentOS/FedoraでSSHサーバー攻撃をブロックするためにDenyHostsをインストールする

2. Fail2Ban

Fail2banは、Pythonプログラミング言語で記述された最も人気のあるオープンソースの侵入検知/防止フレームワークの1つです。/var/log/secure、/ var/log/auth.log、/ var/log/pwdfailなどのログファイルをスキャンして、失敗したログイン試行が多すぎる場合に動作します。 Fail2banは、Netfilter/iptablesまたはTCPWrapperのhosts.denyファイルを更新して、攻撃者のIPアドレスを一定時間拒否するために使用されていました。また、管理者が設定した一定期間、ブロックされたIPアドレスの禁止を解除する機能もあります。ただし、このような悪意のある攻撃を阻止するには、特定の数分間の禁止解除で十分です。

  1. Multi-threaded and Highly configurable.
  2. Support for log files rotation and can handle multiple services like (sshd, vsftpd, apache, etc).
  3. Monitors log files and looks for known and unknown patterns.
  4. Uses Netfilter/Iptables and TCP Wrapper (/etc/hosts.deny) table to ban attackers IP.
  5. Runs scripts when a given pattern has been identified for the same IP address for more than X times.

続きを読む:RHEL/CentOS/FedoraでSSHサーバー攻撃を防ぐためにFail2banをインストールする

3.ルートログインを無効にします

デフォルトでは、Linuxシステムは、rootユーザー自体を含むすべてのユーザーにsshリモートログインを許可するように構成されています。これにより、すべてのユーザーがシステムに直接ログインして、rootアクセスを取得できます。 sshサーバーではrootログインを無効または有効にするためのより安全な方法が可能ですが、サーバーをもう少し安全に保つために、rootアクセスを無効にすることをお勧めします。

異なるアカウント名とパスワードを次々に提供するだけで、SSH攻撃を介してルートアカウントをブルートフォースしようとする人は非常に多くいます。システム管理者の場合は、sshサーバーログを確認して、失敗したログイン試行の数を確認できます。ログイン試行の失敗回数の背後にある主な理由は、パスワードが十分に弱いことであり、ハッカー/攻撃者が試行するのは理にかなっています。

強力なパスワードを使用している場合はおそらく安全ですが、rootログインを無効にし、通常の個別のアカウントでログインしてから、必要に応じてsudoまたはsuを使用してrootアクセスを取得することをお勧めします。

続きを読む:SSHルートログインを無効にしてSSHアクセスを制限する方法

4.SSHバナーを表示する

これはsshプロジェクトの最初から利用できる最も古い機能の1つですが、誰もが使用しているのを見たことがありません。とにかく、私はすべてのLinuxサーバーに使用した重要で非常に便利な機能を感じています。

これはセキュリティ上の目的ではありませんが、このバナーの最大の利点は、パスワードプロンプトの前とユーザーのログイン後に、許可されていないアクセスへのssh警告メッセージと許可されたユーザーへのウェルカムメッセージを表示するために使用されることです。

続きを読む:SSHおよびMOTDバナーメッセージを表示する方法

5.SSHパスワードなしログイン

SSH keygenを使用したSSHパスワードなしのログインにより、2つのLinuxサーバー間に信頼関係が確立され、ファイル転送と同期がはるかに簡単になります。これは、毎回passwrodを入力せずに、リモート自動バックアップ、リモートスクリプト実行、ファイル転送、リモートスクリプト管理などを処理する場合に非常に便利です。

続きを読む:SSHパスワードレスログインを設定する方法