web-dev-qa-db-ja.com

ブルートフォースIPアドレスを保存する

ログインセクションをブルートフォースしたり、頻繁にログインしすぎたりするようなIPアドレスを保存するにはどうすればよいですか。

私はすべてのIPを保存してから、学習ルーチンのように別のアプリケーションで使用する必要があります。

UPDATE#1:

これがシナリオです(疑似コード)。

function my_wp_login_failed($username) {
    store($username);
    store($ipAddress);
}
add_action('wp_login_failed', 'my_wp_login_failed');

どのようにしてすべての攻撃経路に対してこれを行うことができますか?

UPDATE#2:

X回以上サイトにアクセスしようとするIPアドレスは、少なくともY回ブロックされる必要があります。初期段階ではこれらのIPアドレスを保存するだけです。

UPDATE#3:

このプラグインを見つけました - https://plugins.trac.wordpress.org/browser/wp-fail2ban/trunk/wp-fail2ban.php - それは仕事をするかもしれません。 IP情報をデータベースまたはフラットファイルに渡すには、書き直す必要があります。

1
Ciprian

その目的でwp_login_failedアクションを使用できます...ユーザー資格情報が正しくない場合、wp_authenticateの最後に呼び出されます。

function my_log_brute_force( $username ) {
    $ip_address = $_SERVER['REMOTE_ADDR'];
    // store that info somewhere
    file_put_contents( 'bf-log.txt', date('c') . "\t{$ip_address}\t{$username}\n", FILE_APPEND );
}
add_action( 'wp_login_failed', 'my_log_brute_force' );

また、この記事は役に立つかもしれません: PHPで実際のIPアドレスを取得する

2