2013-12-21 3 views
13

私はサーバでssh bruteforceを気付きました。実際にはfail2banによって禁止されていたはずですが、何らかの理由でそれを禁止していません。 fail2banに問題があるほとんどの人は正規表現に問題があると思われますが、ここで問題はないようです。fail2ban ssh bruteforceが正規表現を禁止しない

jail.conf

[ssh] 
enabled = true 
port  = ssh 
filter = sshd 
logpath = /var/log/auth.log 
maxretry = 6 
findtime = 6000 
bantime = 86400 

fail2banのクライアントのステータスSSH

Status for the jail: ssh 
|- filter 
| |- File list: /var/log/auth.log 
| |- Currently failed: 0 
| `- Total failed: 0 
`- action 
    |- Currently banned: 0 
    | `- IP list: 
    `- Total banned: 0 

fail2banの、正規表現/var/log/auth.logの/ etc/fail2banの/フィルタの一部.d/sshd.conf

Running tests 
============= 

Use regex file : /etc/fail2ban/filter.d/sshd.conf 
Use log file : /var/log/auth.log 


Results 
======= 

Failregex 
|- Regular expressions: 
| [1] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*(?:error: PAM:)?Authentication failure for .* from <HOST>\s*$ 
| [2] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*(?:error: PAM:)?User not known to the underlying authentication module for .* from <HOST>\s*$ 
| [3] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*Failed (?:password|publickey) for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$ 
| [4] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*ROOT LOGIN REFUSED.* FROM <HOST>\s*$ 
| [5] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*[iI](?:llegal|nvalid) user .* from <HOST>\s*$ 
| [6] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*User .+ from <HOST> not allowed because not listed in AllowUsers$ 
| [7] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*authentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$ 
| [8] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*refused connect from \S+ \(<HOST>\)\s*$ 
| [9] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S 
+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*Address <HOST> .* POSSIBLE BREAK-IN ATTEMPT!*\s*$ 
| [10] ^\s*(?:\S+)?(?:kernel: \[\d+\.\d+\])?(?:@vserver_\S+)?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\ 
S+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*User .+ from <HOST> not allowed because none of user's groups are listed in AllowGroups\s*$ 
| 
`- Number of matches: 
    [1] 0 match(es) 
    [2] 0 match(es) 
    [3] 380 match(es) 
    [4] 0 match(es) 
    [5] 353 match(es) 
    [6] 26 match(es) 
    [7] 0 match(es) 
    [8] 0 match(es) 
    [9] 0 match(es) 
    [10] 0 match(es) 

Ignoreregex 
|- Regular expressions: 
| 
`- Number of matches: 

Summary 
======= 

Addresses found: 
[1] 
[2] 
[3] 
    198.245.50.151 (Sat Dec 21 15:18:12 2013) 
    198.245.50.151 (Sat Dec 21 15:18:15 2013) 
    198.245.50.151 (Sat Dec 21 15:18:18 2013) 
    198.245.50.151 (Sat Dec 21 15:18:21 2013) 
    198.245.50.151 (Sat Dec 21 15:18:24 2013) 
.................. 
Date template hits: 
23379 hit(s): MONTH Day Hour:Minute:Second 
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year 
.................. 

Success, the total number of match is 759 

私は多くの正規表現マッチを持っていても、なぜfail2banは禁止しないのですか?

よろしく、 魚

答えて

4

私は(Debianのボックスに)この悩みを持っている場合、多くの場合、それはのtzdata、間違った時間に関連する何かがあります。正規表現が動作していれば、fai2banのトラッピングを防ぐことができるのは、日付/時刻に悩まされていることです。 ntpをインストールして日付を同期させてください。

+0

そのご意見ありがとうございます。ボックスでNTPクライアントが実行されており、少なくとも/var/log/auth.logと/var/log/fail2ban.logは同じタイムゾーンを使用しています。しかし、あなたが正しいかもしれない、私はタイムゾーンの問題を検索しようとします。 – fish

+0

__owncloud 9__で同じ問題が発生した場合、日付形式が本当に原因でした。 owncloudの設定ファイルの_UTC_に設定されています。 –

2

私はUbuntu raring(13.04)ボックスで同様の動作をしました。 Fail2banは/var/log/auth.logファイルの変更に気付かなかった。 jail.confファイルのbackend値を変更しても、何も変更されませんでした。

最終的には、Fail2banのWebサイトのdownload pageに記載されているように、NeuroDebianから入手可能なバックポートビルドを使用して、Fail2banの最新バージョンをインストールすることでこれを修正しました。

4

Fail2banは禁止と正規表現に多くマッチしないのですか?おそらく、あなたの刑務所には禁止措置がありません。あなたは2つのオプションがあります。あなたのjail内

オプション1) [SSH]が含ま

[ssh] 
enabled = true 
port  = ssh 
filter = sshd 
logpath = /var/log/auth.log 
action = %(action_mwl)s # <<== THIS IS FOR BANNING 
maxretry = 6 
findtime = 6000 
bantime = 86400 

オプション2) は、まさにこの(例を書いて、すべての刑務所)

# Choose default action. To change, just override value of 'action' with the 
# interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local 
# globally (section [DEFAULT]) or per specific section 
action = %(action_mwl)s 

[ssh] 
    enabled = true 
    port  = ssh 
    filter = sshd 
    logpath = /var/log/auth.log 
    maxretry = 6 
    findtime = 6000 
    bantime = 86400 
のための世界的な行動を含めます

BTW、jail.confの先頭にjail.confの代わりにjail.localを使用することをお勧めします。彼らの指示に従うことは有用かもしれないことがあります

To avoid merges during upgrades DO NOT MODIFY THIS FILE 
# and rather provide your changes in /etc/fail2ban/jail.local 
7

[OK]を、これは正式なソリューションではありませんが、それは動作しません:fail2banのアップグレードおよび禁止停止するまで完璧に働い

3ヶ月。私はこの問題を解決するために調査するのがどれほど難しいのかを知ることができ、最終的にこれが働く唯一の方法です。意図的に取り組んでいるfail2banのを確認するためのSSHロギングを失敗したテスト別のデバイス(3Gセル)を持つ:

これは

sudo service fail2ban stop 
sudo service fail2ban start 

は、この重要な

sudo service fail2ban restart 

を動作しません動作するはずです。そうでない場合は、サービスを停止/再開してください。場合によっては、いくつかの刑務所が正しくロードされないことがあります。信頼することはありません!!!!!

EXTRA NOTES:

  • jail.local
  • 4刑務所を使用するには、有効にします。ssh、dovecotの、Apacheとwootwoot
  • 無問題
  • Ubuntuのサーバと数ヶ月のためのお守りとして働くすべての刑務所を14.04
  • fail2ban 0.9
1

時にはthis iなぜなら__bsd_syslog_verboseが間違っているからです。まだログが(例:10月15日)MMM DDをお読みください。

あなたが次のことを行う必要があります。この問題を解決するには:fail2banのはYYYY.MM.DD(2014年10月15日IE)で開始することが期待/var/log/auth.log

cp /etc/fail2ban/filter.d/common.conf /etc/fail2ban/filter.d/common.local 

編集common.localと設定:

__bsd_syslog_verbose = (<[^.]+ [^.]+>) 

再起動fail2banの:

のUbuntu(再起動を使用しないでください):

sudo service fail2ban stop 
sudo service fail2ban start 
10

私は、私は再びそれをGoogleで検索する前に、ここですべてのソリューションを試してみましたServerFaultに答えを見つけました:

service rsyslog restartを実行すると、私が行うために必要なすべてだったと予想されるように、今では動作します(もちろんその可能性がありますすべてのソリューションが必要でした...)。この質問のポスターとは違って、私は決してログファイルを削除したり編集したりしなかったので、なぜこれが私が知らない解決法なのですか?

0

sshdのポートを変更する前にサーバを再起動する必要があることがわかりました。ポートを変更することはかなり効果的で簡単です。

15

この質問はかなり古いですが、私は同じ問題に遭遇し、多くの検索の後に最終的に解決策を見つけました。

私の問題は、私のタイムゾーンの変更に起因していました。以前は、次のコマンドを使用して正しいタイムゾーンを設定しました。

sudo dpkg-reconfigure tzdata 

私のシステム時間は問題ありませんでしたが、auth.logのエントリの時間は実際にシフトされました。そして、これはfail2banの問題です:auth.logのエントリを比較して、それを禁止、保持、またはアンバンスする必要があるかどうかをチェックしなければなりません。また、記録されたエントリは、

私だけでsyslogデーモンを再起動する必要がありました:

sudo service rsyslog restart 

はその後、時代はもうauth.logをにシフトしていなかった、とfail2banのは正常に仕事をしました。

こちらがお役に立てば幸いです。

+2

syslogデーモンを再起動する必要がある理由を説明していただき、ありがとうございます。 – myartsev

+0

私は、syslogが再起動されない限り、新しいタイムゾーンに適応できないと思います。 実際これは私が気づいたことです:syslogを再起動するまでauth.log(syslogによって生成された)のエントリの日付/時刻は間違っていました。 –

+0

ありがとう、私の一日を救った。サーバーの現地時間が間違っていました。私はそれを変更し、fail2banは今働いています。 – Furkan

関連する問題