fail2ban 防暴力破解
如果 WordPress 架設在 Linux 下則建議採用本方法,利用 fail2ban 從系統級杜絕駭客暴力入侵,登入錯誤只要超過設定的次數就封鎖 ip,沒有 Limit Login Attempts 煩人的付費機制,效能更是 Limit Login Attempts 無法比擬的。
安裝 fail2ban,請參照本人撰寫的 ubuntu 設定。
fail2ban 預設只開啟 sshd,要啟動 wordpress 防護,需設定如下。
WordPress 外掛
WordPress 在登入登出時並不會產生 log 檔,所以需自行撰寫外掛程式。請在 wp-content/plugins 之下新增 login-log 目錄,然後在 login-log 目錄下新增 login-log.php,內容如下。
<?php
/*
Plugin Name: Login Logger
Description: 記錄登入登出訊息,方便 fail2ban 進行封鎖
Version: 1.0
Author: Thomas Wu
*/
function log_failed_login($username) {
$ip = $_SERVER['REMOTE_ADDR'];
$time = current_time('Y-m-d H:i:s T');
file_put_contents(
ABSPATH . 'log/login.log',
"FAILED LOGIN: $username from $ip at $time\n",
FILE_APPEND
);
}
add_action('wp_login_failed', 'log_failed_login');
function log_successful_login($user_login) {
$ip = $_SERVER['REMOTE_ADDR'];
$time = current_time('Y-m-d H:i:s T');
file_put_contents(
ABSPATH . 'log/login.log',
"SUCCESS LOGIN: $user_login from $ip at $time\n",
FILE_APPEND
);
}
add_action('wp_login', 'log_successful_login');
使用如下指令更改 owner
