Đặt mật khẩu bảo vệ thư mục trên hosting DirectAdmin

Bài cũ hướng dẫn một mục trong bảng quản trị mà bản DirectAdmin hiện nay không còn. Bài này viết lại theo cách vẫn dùng được, và cũng là cách chạy trên mọi hosting Apache.

1. Chức năng cũ đã bị bỏ

Các bản DirectAdmin trước có mục Password Protected Directories trong bảng người dùng. Bản hiện nay không còn mục đó, và File Manager cũng không có lựa chọn bảo vệ thư mục trong menu chuột phải.

Cách còn dùng được là đặt trực tiếp hai tệp: .htaccess và .htpasswd. Nghe thủ công hơn, nhưng nó chạy trên mọi hosting Apache và không phụ thuộc vào phiên bản bảng quản trị.

2. Dùng để làm gì

Tình huống Có hợp không
Che một website thử nghiệm khỏi người ngoài Hợp
Che một thư mục tài liệu nội bộ Hợp
Thêm một lớp trước trang đăng nhập quản trị Hợp, và khá hiệu quả
Bảo vệ dữ liệu cá nhân của khách hàng Không đủ. Việc đó cần hệ thống tài khoản thật trong phần mềm

3. Bước 1: tạo tệp mật khẩu

Tệp .htpasswd chứa tên đăng nhập và mật khẩu đã băm. Không được để nó trong thư mục web.

Đặt nó ở thư mục gốc tài khoản, ngang hàng với domains, không phải bên trong public_html.

Cách tạo

Nếu gói hosting có SSH:

# Tao tep moi, SE GHI DE neu tep da ton tai
htpasswd -c /home/<ten-tai-khoan>/.htpasswd <ten-dang-nhap>

# Them nguoi dung thu hai tro di: BO -c, neu khong la xoa mat nguoi truoc
htpasswd /home/<ten-tai-khoan>/.htpasswd <ten-dang-nhap-2>

⚠️ Tham số -c tạo tệp mới và xoá sạch nội dung cũ. Chỉ dùng -c đúng một lần, cho người dùng đầu tiên.

Không có SSH thì dùng một công cụ sinh chuỗi .htpasswd trên mạng, rồi dán kết quả vào tệp tạo bằng File Manager. Chuỗi có dạng:

ten-dang-nhap:$apr1$...chuoi-da-bam...

Chọn công cụ sinh theo kiểu bcrypt hoặc APR1-MD5. Đừng dùng công cụ sinh mật khẩu dạng không băm.

4. Bước 2: tạo tệp .htaccess trong thư mục cần bảo vệ

Dùng File Manager, vào đúng thư mục cần bảo vệ, bấm New File, đặt tên .htaccess, rồi dán vào:

AuthType Basic
AuthName "Khu vuc han che"
AuthUserFile /home/<ten-tai-khoan>/.htpasswd
Require valid-user
Dòng Nghĩa
AuthType Basic Kiểu xác thực cơ bản của Apache
AuthName Chữ hiện trong hộp thoại hỏi mật khẩu. Dùng chữ không dấu, vì phần này không phải lúc nào cũng hiện đúng tiếng Việt
AuthUserFile Đường dẫn tuyệt đối tới tệp .htpasswd
Require valid-user Ai có trong tệp mật khẩu đều vào được

Đường dẫn ở AuthUserFile phải là đường dẫn tuyệt đối trên máy chủ, không phải địa chỉ web. Sai đường dẫn là lỗi phổ biến nhất, và biểu hiện là website báo lỗi máy chủ chứ không hỏi mật khẩu.

Tìm đường dẫn tuyệt đối: mở File Manager, vào thư mục gốc, đường dẫn hiện ở thanh trên.

5. Kiểm

Mở địa chỉ thư mục đó trên một trình duyệt ẩn danh, hoặc một trình duyệt khác. Phải hiện hộp thoại hỏi tên đăng nhập và mật khẩu.

Dùng trình duyệt thường thì nó có thể nhớ phiên cũ và vào thẳng, làm quý Khách hàng tưởng chưa ăn.

6. Ba lỗi hay gặp

a. Website báo lỗi máy chủ nội bộ thay vì hỏi mật khẩu.

Gần như luôn là sai đường dẫn ở AuthUserFile. Kiểm lại đường dẫn tuyệt đối.

b. Hỏi mật khẩu nhưng nhập đúng vẫn không vào được.

Tệp .htpasswd sai định dạng. Mỗi dòng phải là ten:chuoi-da-bam, không có khoảng trắng thừa, và tệp phải kết thúc bằng một dòng trống.

c. Thư mục con cũng bị hỏi mật khẩu.

Đây là hành vi đúng: .htaccess áp cho thư mục đó và mọi thư mục con. Muốn một thư mục con mở tự do thì đặt trong đó một tệp .htaccess riêng với nội dung:

Require all granted

7. Bảo vệ trang đăng nhập quản trị

Một cách dùng rất đáng giá: thêm một lớp mật khẩu trước trang đăng nhập của website.

Với WordPress, tạo .htaccess trong thư mục wp-admin với nội dung ở mục 4. Khi đó người muốn dò mật khẩu quản trị phải qua hai lớp, và các chương trình dò tự động dừng ngay ở lớp đầu.

⚠️ Với WordPress, cần cho tệp admin-ajax.php đi qua, nếu không một số chức năng ở giao diện ngoài sẽ hỏng:

<Files "admin-ajax.php">
    Require all granted
</Files>

8. Giới hạn cần biết

Giới hạn Nghĩa
Mật khẩu đi qua đường truyền Chỉ an toàn khi website đã chạy HTTPS. Chưa có HTTPS thì mật khẩu đi dạng dễ đọc lại
Không có khoá sau nhiều lần sai Lớp này không tự chặn khi bị dò liên tục
Dùng chung một tài khoản Không phân biệt được ai đã vào

Nên đây là lớp che, hợp cho môi trường thử nghiệm và tài liệu nội bộ. Dữ liệu thật của khách hàng cần hệ thống tài khoản trong chính phần mềm.

9. Khi cần hỗ trợ

Quý Khách hàng đặt xong mà website báo lỗi, hãy nhắn qua khung chat ở góc phải màn hình kèm: đường dẫn thư mục cần bảo vệ, nội dung tệp .htaccess đã đặt, và nguyên văn thông báo lỗi.

Đừng gửi nội dung tệp .htpasswd. Đội ngũ kỹ thuật không cần nó, và chuỗi băm trong đó là thứ đem đi dò mật khẩu được.

Hướng dẫn này có ích cho bạn?

Cần đặt dịch vụ? Xem cấu hình và giá tại bảng giá Cloudzone - đặt gói trực tuyến, nhận dịch vụ ngay sau thanh toán. Cần tư vấn, mở khung chat ở góc phải màn hình.

Hướng dẫn liên quan