web-dev-qa-db-ja.com

SSHログイン試行のfail2banデフォルト設定とは何ですか?

Fail2banが正しく機能するかどうかをテストするために自分のサーバーから自分自身をブロックしようとしたので、sshログインを試し、間違ったパスワードを何度も使用しました。しかし、デフォルトの6が失敗したのではなく、13の失敗したログインの後でのみブロックされました。

Fail2banを--purgeで削除して再インストールしたので、/etc/fail2ban/jail.confにデフォルトがあるはずです。これは私のサーバーでの見た目です:

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS Host
ignoreip = 127.0.0.1
bantime  = 600
maxretry = 3

...
[ssh]

enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 6

だから私が理解しているように、sshにはmaxretry 6があるはずです。ブロックされずに12回試すことができるのはなぜですか?

私も THC-Hydra を使用してブルートフォース攻撃を試みました:

hydra -l john -P /tmp/pass.txt myserver.de ssh

/var/log/auth.logで、ブロックされずにhydraが20〜30回続けて試行したことがわかりました。ここで私のログを参照してください: http://Pastebin.com/PuMdfU2H


いくつかの詳細:

fail2banをアンインストールすると、hydraのような攻撃中に/var/log/auth.logにいくつかのメッセージが表示されました

sshd[9286]: Failed password for john from 123.456.123.456 port 54705 ssh2
sshd[9286]: Failed password for john from 123.456.123.456 port 54698 ssh2
...
sshd[9280]: PAM service(sshd) ignoring max retries; 5 > 3
...
sshd[9286]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= 
...
sshd[9285]: PAM service(sshd) ignoring max retries; 6 > 3

多分sshは毎回別のポートにリダイレクトされますか?

今回はブロックされなかったので、インストールされている場合、fail2banは一種の動作です。

8
rubo77

次の2つが組み合わされていると思います。

  1. Sshdが文字列をログに送信する時間、syslogがディスクに文字列を書き込む時間、fail2banが文字列を取得して解析する時間、および実行中のセットにiptablesルールを挿入する時間と、カーネルが注意を払い始める時間の間のレイテンシ新しいフィルタリングルールに。これが、fail2ban.logに「すでに禁止されている」エントリが表示される理由です。
  2. PAM、login.defs、sshdはすべて、連続した再試行をブロックしようとしています。気づいたら、それはsshd[9280]: PAM service(sshd) ignoring max retries; 5 > 3と表示され、PAMはモジュールの1つ(おそらく/etc/pam.d/password-auth)に「retry = 3」があることを通知し、それ以上は無視します同じセッション内のsshdからの認証要求。 Sshdは、MaxAuthTries設定(デフォルトは6だと思います)を使い果たすまで試行を続け、その時点で接続を終了します。このおそらくは、fail2banが失敗したログイン試行として解析しない異なるログエントリを作成します。これを推測してください。

HTH。

9
mricon