Có khi nào bạn muốn chặn 1 IP không cho nó truy cập vào wesite WordPress của bạn không, tại sao cần chặn, có plugin nào hỗ trợ việc đó không. Bài viết này MGGH sẽ hướng dẫn cho bạn.
Lý do bạn muốn chặn một IP truy cập WordPress
Có khá nhiều lý do khác nhau khiến bạn muốn chặn 1 IP truy cập vào website WordPress của bạn. Có thể là:
- IP này cố gắng truy cập trang quản trị của bạn, với mục đích hack hoặc tấn công DDOS.
- Spam bình luận. Tham khảo bài viết Cách tắt bình luận trên WordPress.
- Lưu lượng truy cập từ nguồn bất thường, với mục đích phá hoại.
- Hoặc đơn giản là site đang trong quá trình xây dựng. Vì thế bạn không muốn khách truy cập.
Làm thế nào để biết IP nào đang có ý đồ xấu với site WordPress của bạn
Có nhiều cách khác nhau để biết IP nào đang phá hoại site của bạn. Sau đây là 1 trong số những cách đó:
Cách 1: Tìm IP của những tên spam bình luận
Bạn hãy kiểm tra phần Comments. Bên dưới từng Comment sẽ có địa chỉ IP của người bình luận (xem hình).
Loại này nếu đơn giản chỉ xuất phát từ 1 số IP nhất định thì khá dễ đối phó. Bạn chỉ cần vào mục Settings > Discussion, sau đó vào Comment Backlist và điền địa chỉ IP của thằng spam vào là xong. Những IP này sẽ bị khóa không được comment vào site của bạn. Tuy nhiên nó vẫn được quyền truy cập site nhé.
Lưu ý: Ngoài khả năng chặn 1 IP comment vào site, phần này cũng cho phép bạn chặn những comment có chứa 1 số từ nhất định, chặn theo email, tên miền…Mỗi điều kiện lọc cách nhau bằng 1 dòng nhé.
Vấn đề rắc rối ở đây là spammer ngày càng tinh vi, chúng spam bình luận bằng công cụ sử dụng nhiều IP khác nhau. Vì thế nên cách này chắc chắn là không hiệu quả được bao nhiêu. Hãy tham khảo cuối bài viết này để biết cách chặn hiệu quả hơn nhé.
Cách 2: Kiểm tra Access Log trong cPanel
Nếu bạn đang sử dụng hosting sử dụng cPanel, bạn có thể kiểm tra tất cả các IP truy cập vào site của bạn theo cách sau.
Đăng nhập vào cPanel. Kéo xuống phần METRICS, click vào mục Visitors. Sau đó chọn website bạn muốn xem thống kê.
Đây là công cụ của cPanel để thống kê khách truy cập vào website của bạn. Bảng thống kê sẽ cho bạn biết IP nào truy cập, thời gian, truy cập vào đường dẫn nào và bằng trình duyệt gì. Thông thường, những kẻ tấn công sẽ thường cố gắng truy cập để chiếm quyền admin nên sẽ có 1 lượng traffic đáng ngờ vào các đường dẫn như: /wp-admin hoặc /wp-login. Bạn gõ mấy chữ này vào ô Search như hình dưới, nó sẽ liệt kê ra IP nào truy cập các trang này. Nếu các IP này không đến từ máy tính của bạn, hãy đưa nó vào danh sách đen ngay lập tức.
Lưu ý: Ngoài công cụ Visitor, bạn cũng có thể dùng Awstats (cũng nằm trong mục METRICS) để xem lưu lượng traffic cũng như IP nào truy cập nhiều vào site.
Cách 3: Sử dụng các công cụ thống kê truy cập
Nếu như WordPress của bạn không lưu trữ trên các hosting dùng cPanel, không có các công cụ thống kê traffic thì sao. Nhiệm vụ của bạn là phải cài đặt các plugin thống kê theo dõi lưu lượng truy cập website.
Plugin mình dùng đang dùng và thấy rất hiệu quả đó là Slimstats. Plugin này giúp thống kê lượng truy cập vào site gần như theo thời gian thực. Nó không chỉ cho biết IP nào truy cập, thời gian, truy cập vào đường dẫn nào và bằng trình duyệt gì mà còn thêm nhiều thông tin khác như nguồn từ trang nào tới, vị trí của khách truy cập, truy cập bằng điện thoại hay máy tính, thời lượng truy cập bao nhiêu, thời gian load site và cực nhiều thứ khác.
Mình chân tình khuyên các bạn cài đặt và sử dụng plugin này để theo dõi traffic nhé.
P/S: cái thống kê của Jetpack hoàn toàn cùi bắp so với thằng này.
Sau khi cài và Active xong, bạn vào phần Admin Dashboard>> Slimstats>> Access Log. Các bạn sẽ thấy phần thống kê như hình dưới và dễ dàng xác định IP nào đang truy cập trang WordPress của bạn.
PHẦN 3: Cách chặn một IP không cho truy cập vào WordPress
Trong phần trên ta đã biết được cách tìm địa chỉ IP có ý đồ xấu với trang web của bạn. Phần này sẽ giúp bạn cách chặn IP đó. Bạn có thể sử dụng một trong các cách sau tùy tình huống.
Cách 1: Sử dụng công cụ IP Blocker có sẵn trong cPanel
Một điểm mạnh của cPanel là nó cung cấp sẵn khá nhiều tiện ích hỗ trợ cho việc quản trị website WordPress của bạn. IP Blocker là 1 trong số những công cụ đó. Đầu tiên bạn vào cPanel, kéo xuống mục SECURITY, chọn phần IP Blocker.
Copy và paste địa chỉ IP vào mục IP Adress or Domain và nhấn nút Add để hoàn tất việc chặn IP này không truy cập được vào trang WordPress của bạn.
Ngay lập tức IP bị chặn, khi truy cập vào site của bạn sẽ nhận được thông báo lỗi 403. Bạn có thể thử hiệu quả của cách này bằng cách vào trang https://www.myip.com/ lấy IP của bạn và tự chặn bạn xem thế nào nhé.
Lưu ý:
- Tất cả các IP bị chặn sẽ nằm ở phần “Currently-Blocked IP Addresses”. Muốn bỏ block IP nào thì chỉ cần nhấn nút Delete và xác nhận là xong.
- Nếu muốn chặn 1 dải IP ví dụ như 5 IP từ 192.168.0.1 đến 192.168.0.5. Thì bạn nhập vào phần IP Address dạng 192.168.0.1- 192.168.0.5.
- Hoặc có thể thay bằng wildcard như 192.*.*.*, nó sẽ block toàn bộ các IP mở đầu bằng 192.
Cách 2: chặn IP truy cập WordPress bằng file .htaccess (không khuyến khích)
Nếu bạn không sử dụng cPanel bạn có thể sửa file .htaccess để chặn IP. Dùng File Manager hoặc các trình quản lý file FTP, hoặc Plugin hỗ trợ quản lý File ngay trên WordPress Dashboard để mở và edit fiel .htaccess. File này nằm trong thư mục public_html
Mở file này lên và thêm vào dòng sau
<Limit GET POST>
order allow,deny
deny from 192.168.0.111
deny from 192.168.0.113
allow from all
</Limit>
Trong đó, hãy thay IP 192.168.0.111 và 192.168.0.113 bằng IP bạn muốn chặn. Dòng code trên đang chặn 2 IP và cho phép tất cả các IP khác có thể truy cập website WordPress bình thường.
Chặn nguyên một dải IP không cho truy cập vào WordPress
Để làm điều đó bạn thêm code sau
<Limit GET POST>
order allow,deny
deny from 192.0.0
allow from all
</Limit>
Tất cả các khách có IP từ 192.0.0.0 to 192.0.0.255 sẽ bị block hết
MỤC CHƠI NGU: Chặn hết tất cả các IP vào site bạn.
Nếu bạn muốn chặn hết, chỉ trừ mình bạn được vào hãy sử dụng dòng code sau nhét vào file .htaccess
<Limit GET POST>
order allow,deny
deny from all
# Just Allow a Single IP
allow from 192.168.0.111
</Limit>
Với 192.168.0.111 là địa chỉ IP của bạn
Lưu ý: Can thiệp vào file .htaccess chỉ khi bạn biết mình đang làm gì. Tốt nhất nên hạn chế sử dụng cách này. Dùng cách 1 hoặc plugin chuyên dụng (sẽ nói ở phần tiếp theo) sẽ tốt hơn.
Cách 3: Chặn IP truy cập vào website WordPress sử dụng Plugin
Đây là cách khá phù hợp với những bạn không sử dụng cpanel và không muốn can thiệp sâu vào file hệ thống như cách 1 và cách 2.
Có vài plugin hỗ trợ chặn khá tốt, mình muốn giới thiệu ở đây là plugin WP-Ban. Việc cài đặt và thiết lập rất đơn giản, cơ bản khá giống công cụ IP Blocker trong cPanel.
Một số chức năng của WP-Ban:
Block theo địa chỉ IP, block theo dải IP, block theo host name, block truy cập đến từ 1 website cụ thể, block nguyên dải IP trừ 1 vài cài nhất định…
Ngoài ra bạn có thể tùy chỉnh lại trang thông báo cho IP truy cập ở mục Banned Message. Đây là kết quả nhận được khi IP bị block truy cập vào site WordPress của bạn.
Lưu ý: đừng thử ban chính IP của bạn nhé, vì sau đó bạn không truy cập được khu vực WordPress admin đâu. Muốn thử bạn chính mình xem có hiệu quả không thì sau khi test phải fake IP để truy cập lại site nhé.
BONUS: Cách chặn truy cập WordPress đến từ các quốc gia nhất định
Thông thường site của bạn chỉ phục vụ một lượng khách nhất đinh đến từ 1 quốc gia (ví dụ chỉ dành cho Việt Nam). Tuy nhiên có khá nhiều truy cập đáng ngờ đến từ các quốc gia khác (như Nga, Trung Quốc, Iran…).
Thực tình mà nói, mình cũng không tin rằng các truy cập này là người Việt Nam ở các nước này đâu (cũng có thể có nhưng rất ít). Vì thế bạn có thể muốn chặn hết các truy cập từ các quốc gia này vào website WordPress của bạn.
Có khá nhiều plugin có thể hỗ trợ việc này như IP Geo Block, IP2Location Country Blocker, iQ Block Country. Nhưng mình thấy cái IP2Location Country Blocker là tương đối dễ sử dụng. Plugin này ngoài chức năng cơ bản là chặn 1 hoặc 1 dải IP nhất định thì nó cũng giúp các bạn chặn truy cập website WordPress từ 1 số quốc gia dựa trên địa chỉ IP.
Sau khi cài đặt và Active, bạn nhớ nhấn nút Download để nó tải database từ trang IP2Location.
Vào cài đặt Country Blocker, ở phần Front End, bạn nhấn chọn Enable Frontend Blocking để cho phép chặn truy cập website.
Có 2 tùy chọn là:
- Block countries listed below: chặn truy cập từ các nước theo danh sách.
- Block all countries except countries listed below: chặn tất cả truy cập ngoại trừ các nước theo danh sách.
Bạn chọn các nước cần chặn hoặc không cần chặn tùy theo 2 tùy chọn ở trên. Mặc định IP bị chặn khi truy cập site WordPress sẽ nhận được thông báo lỗi 403. Bạn cũng có thể chọn 1 trang khác để hiển thị cũng được (trong mục “Show the following page when visitor is blocked”)
Để chặn 1 IP cố định bạn cho vào ô Blacklist the below IP addresses. Nhớ nhấn Save Change để thay đổi có hiệu lực nhé.
Lưu ý: Các plugin trên sử dụng dữ liệu từ các trang web chuyên chuyển đổi IP sang địa chỉ thực (ví dụ như IP2Location, nên có trường hợp sẽ sai sót. Vì thế không đảm bảo chặn hoàn toàn 100% truy cập từ 1 quốc gia đến website WordPress của bạn nhé. Còn phần chặn theo IP là đảm bảo chặn được.
Phần Backend là chặn các truy cập vào khu vực quản trị WordPress. Cách cấu hình cũng tương tự Front End. Các bạn tự tìm hiểu nhé.
Cách chặn truy cập xấu vào website WordPress một cách tự động
Tại sao mình lại thêm phần này vào bài viết. Như đã nói ở trên, tất cả các cách chặn IP truy cập site WordPress tuy có hiệu quả nhưng phần lớn đều phải thực hiện thủ công và thiếu tính hiệu quả đối với các công cụ tự động spam.
Bạn có thể đã biết, những kẻ tấn công có thể sử dụng nhiều IP khác nhau để xâm nhập site của bạn. Vì thế việc đi chặn từng IP khá tốn thời gian, công sức. Tính hiệu quả của việc này đối với việc bảo mật website không thực sự cao. Vì thế mình có vài mẹo nhỏ chia sẻ với các bạn để cải thiện vấn đề này. Chúng ta có thể chặn IP truy cập trái phép một cách hoàn toàn tự động dựa vào các công cụ dưới đây.
Công cụ 1: Sử dụng plugin Limit Login Attempts Plugin
Plugin này sẽ giúp bạn hạn chế số lần đăng ký/ đăng nhập vào website WordPress ở một con số nhất định. Nếu đăng nhập không thành công quá 3 lần chẳng hạn, WordPress sẽ tự động block truy cập từ IP này.
Việc này nhằm bảo mật website trước hình thức tấn công dạng brute-force attack (thử đăng nhập bằng nhiều mật khẩu khác nhau).
Đây là một plugin rất nên sử dụng để bảo mật website WordPress. Bạn có thể tải và cài đặt tại đây.
Công cụ 2: Bảo vệ website WordPress chủ động bằng các plugin bảo mật
Có những plugin được các công ty bảo mật phát triển chuyên cho WordPress như Wordfence, Sucuri…Hiện tại MGGH của mình cũng đang cài đặt Wordfence. Đây là một dạng tường lửa nằm chắn giữa website của bạn và các cuộc tấn công độc hại từ bên ngoài. Bên cạnh đó nó còn có chức năng quét website để phát hiện các lỗi bảo mật.
Nhờ đó Wordfence sẽ liên tục theo dõi và chặn tất cả các IP có ý định tấn công brute-force với site của bạn. Sau khi cài đặt và active plugin này, mọi thứ sẽ được tự động set up để bảo vệ site của bạn. Bạn có thể xem hiệu quả hoạt động của tường lửa ở mục Firewall Summary như hình dưới.
Nếu muốn xem chi tiết hơn có thể vào phần Wordfence>> Tool>>Live Traffic. Ở đây bạn sẽ thấy chi tiết các cuộc tấn công đến từ đâu, nhắm vào file nào, IP tấn công…
Như đã nói ở trên, WordFence sẽ giúp bạn block IP hoàn tự động. Tuy nhiên bạn cũng có thể block thủ công ngay trên plugin này cũng được. Để làm điều đó, bạn vào phần Wordfence>> Firewall>>Blocking, nhấn chọn vào thẻ IP address để chặn theo IP, thẻ Custom Pattern để chặn nâng cao theo dải IP, Hostname, nguồn traffic (reference). Bạn cần khai báo lý do chặn ở mục Block reason sau đó nhấn nút Block this IP address để chặn IP nhé. Ngoài ra, Wordfence cũng có chức năng chặn truy cập theo quốc gia (trong thẻ Country), tuy nhiên muốn sử dụng phải trả phí.
Nói chung Wordfence là một plugin hữu ích, đáng sử dụng để bảo mật cho site WordPress của bạn một cách chủ động.
Trên đây là bài hướng dẫn cực kỳ chi tiết cách chặn IP truy cập vào website WordPress. Hi vọng bài viết hữu ích cho anh em quản trị site. Xin cảm ơn.
Plugins ip2location cài xong cái bị như thế này thì phải làm sau bạn. Làm sau để gở
/home/wtrdmevc/kimsa.biz/wp-content/plugins/ip2location-country-blocker/
vào đây mà xóa đi là xong bạn.
bạn ơi làm sao để chặn 1 IP không cho cho view 1 link cụ thể trên website, trong khi các phần khác vẫn cho xem bình thường. Bạn chỉ giúp với, thanks
Bạn có thể cân nhắc dùng password để bảo vệ 1 bài post hoặc page bất kỳ trên WordPress.
Vô Post chọn edit, vào mục Visibility nhập Pass vào là xong.