X86ソラリス11.1サーバーでブルートフォースsshを定期的に試みています。 Linuxでは、DenyHostsを使用して、何度も誤ったログインを試みた後、接続をブロックします。 Solaris 11.1の同様のパッケージ、またはsshのブルートフォースを防ぐための他の代替方法に関する推奨事項はありますか?
Sshのブルートフォースを防ぐための他の代替方法に関する推奨事項はありますか?
SSHが実行されているポートを変更します。ブルートフォースの試みは、主にポート22に対して行われます。
$ Sudo grep ^Port /etc/ssh/sshd_config
Port 10022
接続を許可されている であるユーザーを制限します。例:
$ Sudo grep ^AllowUsers /etc/ssh/sshd_config
AllowUsers dannix
AllowUsers [email protected].*
AllowUsers [email protected]
Rootログインを無効にする:
$ Sudo grep ^PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin no
パスワードではなく 公開鍵認証 を使用します。
パスワードベースの認証を無効にします(公開鍵認証を使用する場合にのみこれを行います)。
$ Sudo grep ^PasswordAuthentication /etc/ssh/sshd_config
PasswordAuthentication no
さらに、ファイアウォールルールを使用して、システム上のSSHにアクセスできるリモートホストを制限できます。
Geneが提案する解決策では、誰がどこから接続するかを知っている必要があります。それがあなたのニーズに合うなら、あなたはそれで行くべきです。簡単です。 SSHデーモンでrootログインを常に無効にする必要がある場合でも。 (Solaris 11以降では、rootとして外部からボックスにログインすることはできません(rootがユーザーではなくロールになっているため)。そのため、SSHデーモンの構成にその制限を設定しても、実際には何も変更されませんが、それでもお勧めしますそれ)。
すでに DenyHosts に精通している場合は、 Solarisでも使用してください ?
とにかく、別の解決策(Solaris用)の詳細 ここ 。バックグラウンドで「ブラックリスト」を維持することにより、ブルートフォース攻撃を阻止します。同じIPがY秒以内にX回の接続試行を送信した場合、そのIPはブラックリストに登録され、IPはそれ以上の試行を許可されません。通常、特定のIPのそのようなブラックリストが削除された後、たとえば1時間の門限が必要になります。リンクのソリューションの良いところは、追加のソフトウェアを必要としないことです。これは実際にはSSH接続の試行ごとに実行される単なるスクリプトであり、Solaris 11では、システムセットアップを変更したり、追加のパッケージをインストールしたりする必要がないため、非常に邪魔になりません。
この場合、SunOS sshd_config
でMaxStartups
およびLoginGraceTime
を操作できます。ただし、Solaris sshd
でipf
に到達する前であっても、これらの試行をブロックするのが最善です。
ここでは、ブロックするIPのかなり頻繁に更新されるリストを見つけることができます。 OpenBL このブラックリストを使用するだけで、ログに試行がほとんど表示されません。
次に、cronジョブスクリプトをアセンブルしてFWルールを更新するか、オプションでhosts.deny
形式のファイルを使用できます。