web-dev-qa-db-ja.com

Solaris 11sshdブルートフォース保護。 Solaris11と同等のDenyHosts

X86ソラリス11.1サーバーでブルートフォースsshを定期的に試みています。 Linuxでは、DenyHostsを使用して、何度も誤ったログインを試みた後、接続をブロックします。 Solaris 11.1の同様のパッケージ、またはsshのブルートフォースを防ぐための他の代替方法に関する推奨事項はありますか?

2
dannix

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にアクセスできるリモートホストを制限できます。

2
Gene

Geneが提案する解決策では、誰がどこから接続するかを知っている必要があります。それがあなたのニーズに合うなら、あなたはそれで行くべきです。簡単です。 SSHデーモンでrootログインを常に無効にする必要がある場合でも。 (Solaris 11以降では、rootとして外部からボックスにログインすることはできません(rootがユーザーではなくロールになっているため)。そのため、SSHデーモンの構成にその制限を設定しても、実際には何も変更されませんが、それでもお勧めしますそれ)。

すでに DenyHosts に精通している場合は、 Solarisでも使用してください

とにかく、別の解決策(Solaris用)の詳細 ここ 。バックグラウンドで「ブラックリスト」を維持することにより、ブルートフォース攻撃を阻止します。同じIPがY秒以内にX回の接続試行を送信した場合、そのIPはブラックリストに登録され、IPはそれ以上の試行を許可されません。通常、特定のIPのそのようなブラックリストが削除された後、たとえば1時間の門限が必要になります。リンクのソリューションの良いところは、追加のソフトウェアを必要としないことです。これは実際にはSSH接続の試行ごとに実行される単なるスクリプトであり、Solaris 11では、システムセットアップを変更したり、追加のパッケージをインストールしたりする必要がないため、非常に邪魔になりません。

1
peterh

この場合、SunOS sshd_configMaxStartupsおよびLoginGraceTimeを操作できます。ただし、Solaris sshdipfに到達する前であっても、これらの試行をブロックするのが最善です。

ここでは、ブロックするIPのかなり頻繁に更新されるリストを見つけることができます。 OpenBL このブラックリストを使用するだけで、ログに試行がほとんど表示されません。

次に、cronジョブスクリプトをアセンブルしてFWルールを更新するか、オプションでhosts.deny形式のファイルを使用できます。

0
nudzo