回答:
ディストリビューションに応じて、/etc/fail2ban/jail.conf
[ [ssh]
セクションの更新]を編集して次のように表示します
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
bantime = 3600
maxretry = 3
必要に応じてパラメーターを変更します。特にルートをブロックするわけではありませんが、失敗したすべての試みはブロックされます。注意してくださいmaxretry
とbantime
。自分のパスワードで失敗した場合は、maxtretry
lowに設定している間、で自分をブロックしますbantime
。fail2banを再起動します。
多くの試みが動的IPから来て、正当なユーザーを後でブロックする可能性があるため、IPを永久にブロックしようとはしません。
(一部のディストリビューションでは、変更用のjail.optionsファイルが提供されています。これは、confを上書きする更新の影響を受けないため、変更を配置するのに適した場所です。)
このコードを新しいファイル/etc/fail2ban/filter.d/sshd-root.confにコピーします。
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = sshd
failregex = ^%(__prefix_line)sFailed (?:password|publickey) for root from <HOST>(?: port \d*)?(?: ssh\d*)?$
ignoreregex =
失敗したrootログイン試行を正確に特定するためにfailregexを編集する必要がある場合があることに注意してください-以下を使用します:
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd-root.conf
正しいログエントリを識別することをテストします。
次に、jail.localを編集して新しいフィルターを利用する必要があります-次のようなものを追加します:
[ssh]
enabled = true
port = 1:65535
filter = sshd-root
logpath = /var/log/auth.log
bantime = 604800
maxretry = 3
もちろん、必要に応じてこれらの値を調整する必要があります。上記の設定では、rootとしてログオンを3回試行した後、問題のあるIPアドレスからのすべての着信パケットがドロップされ、1週間後に再びIPが解放されます。
デフォルトには/etc/fail2ban/filter.d/sshd.conf
すでにAllowUsersとDenyUsersの正規表現があるので...
...
^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers\s*$
^%(__prefix_line)sUser .+ from <HOST> not allowed because listed in DenyUsers\s*$
...
以下は:
exampleusername
外部IPからの接続を許可するroot
またはローカルネットワーク上のすべての接続(192.168.0。*)`/ etc / ssh / sshd_config 'という行:
AllowUsers exampleusername *@192.168.0.* *@localhost *@127.0.0.1
そしてで/etc/fail2ban/jail.conf
:
ignoreip = 127.0.0.1/8 192.168.0.2/255
...
...
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 1
findtime = 99999999
bantime = 99999999
sshログインをどのようにブロックしましたか?/ bin / falseまたはsshd_config DenyUsersオプション?
私は頭の中で答えを考えることはできませんが、IIRC denyhostsはログファイルを解析するので、誰かが無効にしてrootにログインしようとした後に、ログファイルに失敗したエントリが表示されるかどうかを確認します。
/etc/ssh/sshd_config
変更PermitRootLogin
しました。これが関連するかどうかはわかりませんが、rsshをインストールして、特定のユーザーだけがsftpを使用してログインできるようにしますが、sshは許可しません。