Thứ tư, 16/09/2015 | 00:00 GMT+7

Cách bảo vệ WordPress với Fail2Ban trên Ubuntu 14.04

WordPress là một hệ thống quản lý nội dung (CMS) rất mạnh mẽ, miễn phí và open-souce . Bởi vì bất kỳ ai cũng có thể comment , tạo account và đăng bài trên WordPress, nhiều kẻ xấu đã tạo ra mạng lưới bot và server xâm nhập và spam các trang web WordPress thông qua các cuộc tấn công brute-force. Công cụ Fail2ban rất hữu ích trong việc ngăn chặn truy cập trái phép vào cả Server và trang WordPress của bạn. Nó ghi nhận các lỗi đăng nhập đáng ngờ hoặc lặp lại và chủ động cấm các IP đó bằng cách sửa đổi các luật firewall cho Server.

Trong hướng dẫn này, ta sẽ sử dụng version 0.9.3 của Fail2ban trên server LAMP Ubuntu 14.04 và tích hợp nó với WordPress bằng cách sử dụng plugin log thư rác.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần

Bước 1 - Cài đặt plugin WordPress Fail2ban

Trước tiên, hãy đăng nhập vào trang web WordPress của bạn bằng cách truy cập https:// your_server_ip /wp-admin trong trình duyệt của bạn và sử dụng thông tin đăng nhập administrator bạn đã tạo trong khi cài đặt WordPress. Sau khi đăng nhập, bạn sẽ thấy màn hình sau, đó là console WordPress của bạn.

Dashboard screen

Nhìn sang thanh bên trái để tìm từ Plugin , từ này sẽ xuất hiện ở khoảng nửa dưới của thanh bên. Sau khi nhấp vào Plugin , bạn sẽ thấy màn hình này:

Plugin

Ở gần trên cùng, trong phần bên phải, bạn có thể nhấp vào Thêm mới . Điều này cho phép bạn thêm các plugin mới vào trang web WordPress có thể tùy chỉnh, bảo mật hoặc mở rộng trang web . Trong trường hợp này, ta sẽ tìm kiếm plugin Fail2ban. Màn hình tiếp theo sẽ xuất hiện như sau:

Add New Search

Nhập Fail2ban vào trường tìm kiếm và nhấn ENTER trên bàn phím của bạn. Kết quả sẽ trả về một màn hình hiển thị một vài plugin, với plugin để cài đặt là WP fail2ban .

Fail2ban

Nhấp vào Install Now để bắt đầu cài đặt, tại đây bạn sẽ thấy hai dấu nhắc : Kích hoạt PluginQuay lại Trình cài đặt plugin . Chọn Kích hoạt Plugin và trình duyệt của bạn sẽ đưa bạn trở lại danh sách các plugin đã cài đặt, với plugin WP fail2ban mới trong danh sách. Đến đây, bạn có thể nhấp vào Xem chi tiết để xem thêm thông tin về plugin mới của bạn . Ngoài ra còn có Câu hỏi thường gặp sẽ giúp bạn hiểu cách bật các tính năng, chẳng hạn như chặn những user cụ thể được dùng để spam trang web WordPress của bạn bằng nội dung hoặc comment .

Bước 2 - Áp dụng Bộ lọc WordPress cho Fail2ban

Plugin WordPress này bao gồm một bộ lọc Fail2ban tùy chỉnh mới. Trong bước này, ta sẽ cài đặt bộ lọc đó để Fail2ban có thể phân tích cú pháp chính xác và sử dụng log xác thực được gửi đến log hệ thống.

Đầu tiên, di chuyển bộ lọc từ folder plugin WordPress đến vị trí bộ lọc Fail2ban thích hợp. Ta sẽ sử dụng bộ lọc WordPress “cứng” để bảo vệ tốt hơn:

  • sudo cp /var/www/html/wp-content/plugins/wp-fail2ban/filters.d/wordpress-hard.conf /etc/fail2ban/filter.d/

Với bộ lọc wordpress-hard.conf mới của bạn, bạn có thể trỏ Fail2ban đến log xác thực thích hợp bằng cách chỉnh sửa file /etc/fail2ban/jail.local . Một tù trong Fail2ban đề cập đến một loạt các luật và hành động cung cấp các bộ lọc cho địa chỉ IP.

Mở file jail.local bằng nano hoặc editor yêu thích của bạn.

  • sudo nano /etc/fail2ban/jail.local

Khi file được mở, hãy cuộn xuống dưới cùng và nối các dòng sau vào cuối. Các dòng này kích hoạt plugin, đặt bộ lọc thành bộ lọc wordpress-hard.conf mà ta đã sao chép trước đó vào folder filters.d , đặt đích ghi log thích hợp cho các lần truy cập và chỉ định rằng lưu lượng truy cập này sẽ đến trên httphttps các cổng.

[wordpress-hard]  enabled = true filter = wordpress-hard logpath = /var/log/auth.log maxretry = 3 port = http,https 

Lưu và đóng file .

Tiếp theo, bạn có thể khởi động lại Fail2ban đảm bảo bộ lọc mới hiện đã có bằng cách chạy lệnh này trong terminal của bạn:

  • sudo service fail2ban restart

Bước 3 - Bỏ qua các nỗ lực đăng nhập từ máy tính của bạn

Để ngăn bạn hoặc những user đã biết khác bị cấm do lỗi xác thực ngẫu nhiên, ta khuyên bạn nên bỏ qua địa chỉ IP công cộng trên máy tính local của bạn .

Nếu bạn đang sử dụng HĐH dựa trên Linux, hãy sử dụng lệnh sau:

curl ipecho.net/plain ; echo 

Nếu không, hãy truy cập http://checkip.dyndns.org để xác định địa chỉ IP công cộng của máy tính của bạn. Nếu có mọi user khác trên trang WordPress của bạn ở các vị trí thay thế, bạn cũng có thể cần tìm địa chỉ của họ.

Mở jail.local để chỉnh sửa lại:

  • sudo nano /etc/fail2ban/jail.local

Dòng sau sẽ liệt kê mọi địa chỉ IP bị bỏ qua bắt đầu bằng IP server local (localhost) với một khoảng trắng phân tách các giá trị khác nhau cho các server đã biết mà bạn muốn có quyền truy cập vào WordPress. Thêm phần này vào phần DEFAULT, bên dưới câu lệnh ignoreip mà bạn đã thêm trong các bước cài đặt plugin WordPress.

ignoreip = 127.0.0.1/8 your_computer_ip 

Lưu và thoát khỏi editor .

Bước 4 - Kiểm tra bộ lọc

Để kiểm tra xem bộ lọc có hoạt động hay không, bạn có thể đăng xuất khỏi trang wp-admin của trang web WordPress của bạn và đăng nhập lại.

Bạn có thể sử dụng trạng thái tù Fail2ban này đảm bảo rằng việc đăng nhập thành công của bạn không bị bộ lọc ghi nhận.

  • sudo fail2ban-client status wordpress-hard

Bạn sẽ thấy kết quả giống như sau :

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

Nếu bạn xem file auth.log , bạn sẽ thấy đăng nhập thành công của bạn ở gần cuối file bằng cách sử dụng tail sẽ hiển thị 10 dòng kết quả cuối cùng:

  • sudo tail /var/log/auth.log

Xác thực thành công sẽ xuất hiện như sau:

Month Day Hour:Minute:Second your_server wordpress( your_server_ip )[ PID ]: Accepted password for admin from your_computer_ip

Nếu user lạ hoặc xác thực không thành công xuất hiện trong log , plugin mới của bạn sẽ đảm bảo IP này bị chặn truy cập vào trang web bằng cách thay đổi các luật firewall của bạn một cách thích hợp.

Bước 5 - Xoay các file log của bạn

Nếu bạn nhận thấy trang web WordPress của bạn đang nhận được rất nhiều nỗ lực đăng nhập trái phép và file log của bạn đang phát triển nhanh chóng, bạn có thể xoay file log ra một file mới bằng cách chỉnh sửa file /etc/logrotate.conf .

  • sudo nano /etc/logrotate.conf

Nối các dòng này, đặt kích thước tối đa của file , quyền đối với log và số tuần. Ví dụ: bạn có thể đặt 4 là số tuần file sẽ tồn tại trước khi được làm mới:

/var/log/auth.log {     size 30k     create 0600 root root     rotate 4 } 

Lưu và thoát file một cách thích hợp.

Kết luận

Theo các bước trong hướng dẫn này, bạn đã cài đặt và cấu hình plugin Fail2ban, loại trừ địa chỉ IP local và kiểm tra công việc của bạn . Bạn cũng cài đặt xoay vòng log để giữ cho các file log của bạn không phát triển vô thời hạn. Như vậy, version WordPress của bạn mạnh mẽ và an toàn hơn nhiều trước các nỗ lực đăng nhập trái phép, spam comment và xâm nhập vào trang web .


Tags:

Các tin liên quan

Cách cài đặt và sử dụng Composer trên Ubuntu 14.04
2015-09-11
Cách tối ưu hóa cài đặt Tomcat của bạn trên Ubuntu 14.04
2015-09-08
Cách cài đặt Mailpile trên Ubuntu 14.04
2015-08-21
Cách cài đặt CouchDB và Futon trên Ubuntu 14.04
2015-08-10
Cách thiết lập firewall với UFW trên Ubuntu 14.04
2015-08-05
Cách đánh giá độ trễ HTTP theo chuẩn với wrk trên Ubuntu 14.04
2015-07-21
Cách cài đặt và sử dụng Command Line Cheat Sheets trên Ubuntu 14.04
2015-07-21
Cách cài đặt và sử dụng CFEngine Community Edition trên Ubuntu 14.04
2015-07-17
Cách cài đặt và cấu hình Riak2 với Python3 trên Ubuntu 14.04
2015-07-14
Cách cài đặt Solr 5.2.1 trên Ubuntu 14.04
2015-07-14