1. HTTP Authentication là gì?
HTTP Authentication (hay Basic Access Authentication) là cơ chế bảo mật bổ sung giúp giới hạn quyền truy cập vào một số phần của website. Khi bật tính năng này, người dùng cần nhập tài khoản và mật khẩu mới có thể vào được nội dung được bảo vệ.
Trong Webinoly, lệnh httpauth
cho phép:
- Tạo và quản lý người dùng.
- Bật/tắt lớp bảo mật này cho các công cụ như phpMyAdmin hoặc WordPress (wp-admin, wp-login).
- Bảo vệ thư mục hoặc file bất kỳ trên website.
- Quản lý whitelist IP để bỏ qua xác thực.
2. Cú pháp lệnh
sudo httpauth <option>
Các tùy chọn chính
-add
: Thêm người dùng mới.-delete
: Xóa người dùng.-list
: Hiển thị danh sách người dùng hoặc thư mục/file được bảo vệ.-path
: Bảo vệ thư mục/file tùy chọn.-whitelist
: Quản lý danh sách IP bỏ qua xác thực.-wp-admin
: Bật/tắt bảo vệ wp-admin / wp-login.
3. Quản lý người dùng
3.1 Tạo user
sudo httpauth -add
👉 Nếu muốn tạo nhanh trong script:
sudo httpauth -add=[user,password]
Tạo user cho một domain cụ thể:
sudo httpauth example.com -add
⚠️ Khi đã tạo user cho domain riêng, các user toàn cục sẽ không còn hiệu lực trên domain đó.
3.2 Xóa user
sudo httpauth -delete
Xóa nhanh theo tên user:
sudo httpauth -delete=username
Xóa user chỉ trong một domain:
sudo httpauth example.com -delete
3.3 Danh sách user và khu vực bảo vệ
- Xem tất cả user:
sudo httpauth -list
- Xem user của một domain:
sudo httpauth example.com -list
- Xem danh sách thư mục/file đang được bảo vệ:
sudo httpauth example.com -list=protected
- Xem danh sách IP đã whitelist:
sudo httpauth -whitelist -list
4. HTTP Authentication cho WordPress
Ngay sau khi cài đặt, Webinoly mặc định bật bảo vệ wp-admin bằng HTTP Auth.
- Lý do: hạn chế bot dò mật khẩu tự động trên trang /wp-login.php hoặc /wp-admin.
- Ưu điểm: dễ triển khai, chặn được hầu hết các cuộc tấn công brute-force.
- Nhược điểm: có thể gây bất tiện, một số tính năng WordPress REST API, Application Password hoặc XML-RPC có thể không hoạt động bình thường.
Bật/tắt bảo vệ wp-admin
sudo httpauth example.com -wp-admin=off # Tắt
sudo httpauth example.com -wp-admin=on # Bật
5. Bảo vệ thư mục hoặc file tùy chọn
5.1 Bảo vệ thư mục
sudo httpauth example.com -path=/folder
👉 Dùng -path=/
để bảo vệ toàn bộ site.
5.2 Bảo vệ file cụ thể
sudo httpauth example.com -path=/folder/file.php -exact
- Tham số
-exact
đảm bảo chỉ bảo vệ đúng đường dẫn, không áp dụng cho các URL con.
5.3 Hỗ trợ site dạng subfolder
sudo httpauth example.com -path=/one/folder/ -subfolder=/one
⚠️ Nếu bỏ qua -subfolder
khi site được cài trong thư mục con, có thể gây redirect lỗi.
5.4 Gỡ bỏ bảo vệ
- Xóa một thư mục:
sudo httpauth example.com -path=/folder -purge
- Xóa tất cả bảo vệ:
sudo httpauth example.com -path=all -purge
6. Whitelist IP
Bạn có thể thêm IP để bỏ qua bước xác thực.
Thêm IP
sudo httpauth -whitelist
Hoặc chỉ định cụ thể:
sudo httpauth -whitelist=10.126.196.2
Thêm nhiều IP cùng lúc (ngăn cách bằng dấu phẩy):
sudo httpauth -whitelist=1.1.1.1,2.2.2.2
Xóa IP khỏi whitelist
sudo httpauth -whitelist -purge
7. Lưu ý bảo mật
- HTTP Auth không phải biện pháp bảo mật tuyệt đối.
- Nó chỉ hiệu quả trong việc chặn bot, crawler và các tấn công brute-force cơ bản.
- Nếu hệ thống của bạn có dữ liệu nhạy cảm, nên kết hợp nhiều lớp bảo mật khác (VPN, firewall, Fail2ban, WAF, xác thực hai lớp, …).
Như vậy, với lệnh httpauth
trong Webinoly, bạn có thể dễ dàng bổ sung lớp bảo mật cho WordPress, phpMyAdmin hoặc bất kỳ thư mục/file nào trên server. Đây là cách nhanh chóng, gọn nhẹ giúp ngăn chặn tấn công tự động và hạn chế rủi ro bảo mật cho website.