web-dev-qa-db-ja.com

fail2banを使用してローカルホスト上のmysqlをブロックする

サーバーでfail2banが動作していて、SSHは禁止されていますが、MySQLを使用してMariaDBにアクセスしようとするユーザーを禁止するのに問題があります。また、Adminerを使用しています。これがmysqlでfail2banを構成しようとしている主な理由です(fail2banはadminerを使用した失敗の試行を確認します)。 MySQL接続を確認できますが、これは内部でlocalhostを使用しているため、禁止することはできません。

ユーザーがmysqlへのログインに失敗したときにユーザーを禁止する方法を探しています。

これは私のログfail2ban.logが見るものです:

2018-06-15 06:51:09,021 fail2ban.ipdns [4520]: 
WARNING Determined IP using DNS Lookup: 
localhost = ['127.0.0.1', '127.0.0.1', '::1']

これは私のjail.localファイルです:

[mysqld-auth]
enabled  = true
port     = 3306
filter =  mysqld-auth
logpath = /var/log/mysql/mysql.log

Usedns = warnをusedns = noに変更しようとしましたが、警告を無視しました。 filter.dフォルダーのmysql-authに変更を加えていません。

1
Gregory Schultz

あなたの本当の問題は次のとおりだと思います。

サーバーでAdminer(PHPMYadminの代替)を実行していて、Webインターフェイス(さらにはMySQL)への不正なログイン試行が発生します。

これが正しければ、いかなる状況でも、Fail2Banを使用してMySQLを禁止しようとしないでください(あなたの場合、ローカルホストをブロックすると、誰もそれを使用できなくなります)。代わりに、Adminerへの不正なログイン試行が多すぎる場合は、Webインターフェイス(ポート80/443など)へのアクセスをブロックするようにFail2Banを構成する必要があります。

  • 不正な試行をログに記録するようにAdminerを構成する
  • これらのログをスキャンし、不良クライアントへのアクセスをブロックするようにFail2Banを構成します
2
Sven