1. File .htaccess là gì?
.htaccess là file cấu hình dùng trên server Apache / LiteSpeed, cho phép bạn:
-
Chặn IP truy cập
-
Redirect URL
-
Tăng bảo mật website
-
Tối ưu tốc độ
2. Khi nào nên block IP?
Bạn nên chặn IP khi:
-
Bị bot scan liên tục
-
Có IP tấn công brute force
-
Spam request gây nặng server
-
IP từ các VPS/cloud (AWS, DO, Tencent...)
3. Tạo file .htaccess cơ bản
Nếu chưa có file .htaccess, tạo file mới trong thư mục:
4. Cấu hình chặn IP đơn lẻ
Deny from 123.123.123.123
5. Chặn nhiều IP cùng lúc
Deny from 123.123.123.123
Deny from 111.222.333.444
Deny from 99.88.77.66
6. Chặn cả dải IP (rất quan trọng)
Ví dụ chặn toàn bộ dải:
Deny from 45.41.0.0/16
Nghĩa là chặn:
7. Cách viết chuẩn cho Apache 2.4
Nếu server bạn dùng Apache mới:
Require all granted
Require not ip 45.41.0.0/16
Require not ip 123.123.123.123
</RequireAll>
8. Chặn theo User-Agent (bot)
# Block bot phổ biến
RewriteCond %{HTTP_USER_AGENT} (curl|wget|python|scrapy) [NC]
RewriteRule ^ - [F,L]
9. Chặn method nguy hiểm (CONNECT)
RewriteRule ^ - [F,L]
10. Mẫu file .htaccess hoàn chỉnh (khuyên dùng)
# ======================
# BLOCK IP
# ======================
Deny from 45.41.0.0/16
Deny from 152.42.0.0/16
Deny from 185.16.39.0/24
Deny from 123.123.123.123
# ======================
# BLOCK BOT
# ======================
RewriteCond %{HTTP_USER_AGENT} (curl|wget|python|scrapy) [NC]
RewriteRule ^ - [F,L]
# ======================
# BLOCK CONNECT METHOD
# ======================
RewriteCond %{REQUEST_METHOD} ^CONNECT [NC]
RewriteRule ^ - [F,L]
11. Kiểm tra hoạt động
Sau khi thêm rule:
-
Truy cập bằng IP bị block → sẽ thấy lỗi 403 Forbidden
-
Hoặc test bằng curl:
12. Lưu ý quan trọng
.htaccess càng dài → càng tốn CPU
Không nên block quá nhiều IP ở đây
Tốt nhất:
-
Block ít IP trong .htaccess
-
Block nhiều IP bằng firewall (iptables / CSF)