3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
WordPress 目前已經是世界上最多人使用的 CMS 系統,隨之而來的就是對於他的攻擊也越來越多,不過根據個人經驗,如果有在定期更新核心、外掛、主題,其實比較常見的問題反而是,使用者的密碼太弱被猜測到導致網站被入侵。 除了確保自己的密碼難易度夠之外,比較常看到的做法會是加上像是 Google reCAPTCHA,或是其他驗證的方式,不過你有想過嗎?駭客是不需要對你的 wp-login.php 做嘗試,很多驗證用的外掛也僅能保護從 wp-login.php 的登入,如果走的是 wp-json 甚至是單純對 xmlrpc.php 不斷的發出請求,持續消耗資源導致網站不堪負荷而停止服務,透過外掛也難防這些討厭的攻擊。 聰明的你一定想過,使用外掛來選擇停用 xmlrpc.php 或是其他功能,不過就以最常見的外掛 Jetpack 來說,你知道他需要使用 xmlrpc.php 來跟你的網站溝通嗎?停用後 Jetpack 部分的功能就會不正常運作,因此比較好的方法不是去停用它,而是阻止攻擊。 以下使用 CentOS 7 與 iptables 作為防火牆。 首先輸入以下指令進行安裝 fail2ban:yum install fail2ban 安裝完成後可以透過常用的編輯器編輯一個空的檔案/etc/fail2ban/jail.local 可以參考以下的內容:[DEFAULT] ignoreip = 118.163.92.212 banaction = iptables-multiport[wordpress-rule] enabled = true port = http,https filter = wordpress-rule logpath = /var/log/nginx/site.log maxretry = 30 findtime = 60 bantime = -1 上面的設定是指在 60 秒內符合規則 30 次就永久封鎖 ip,對於其他設定值有興趣,可以再透過 Google 搜尋一下這些設定值對於 fail2ban 的意義,本次不多作介紹。 接著則是比對規則的設定,透過常用的編輯器編輯/etc/fail2ban/filter.d/wordpress-rule.conf 可以參考以下內容: 上面的設定就是比對出對於 wp-json、wp-login.php、xmlrpc.php 發出 GET 與 POST 的請求,不過要注意的是,如果 log 的格式跟我的不同,那就需要進行修改,以下是我的 log 格式。 可以透過 fail2ban-regex 來測試規則是否可以比對到,使用方法如下fail2ban-regex ,例如:fail2ban-regex /var/log/nginx/access.log /etc/fail2ban/filter.d/wordpress-rule.conf 都設定完成後,輸入systemctl enable fail2ban開機時啟用systemctl start fail2ban現在啟動 fail2ban 現在可以輸入 iptables -L,看一下是不是有一個新的區域叫做 f2b-wordpress-rule,透過 fail2ban-client status 也能看到是不是你的規則出現在列表中。

本文由www4rbj4com提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦