Bài viết này là một phần của loạt hướng dẫn máy chủ Apache:

  • Bảo mật Apache trên Ubuntu - Phần 1
  • Bảo mật Apache trên Ubuntu - Phần 2
  • Tối ưu hóa hiệu suất Apache - Phần 1
  • Tối ưu hóa hiệu suất Apache - Phần 2
  • Thiết lập Virtualhost dựa trên tên Apache
  • Thiết lập IP và Virtualhost dựa trên cổng trong Apache
  • Làm thế nào để thiết lập mật khẩu bảo vệ thư mục Web trong Apache
  • Thiết lập máy chủ Apache với hỗ trợ SSL trên Ubuntu
  • Thiết lập Fail2ban để bảo vệ Apache khỏi tấn công DDOS
  • Làm thế nào để thiết lập Webdav với Apache trên Ubuntu
  • Giám sát máy chủ web Apache bằng Mod_status
  • Làm thế nào để bảo vệ chống lại DDoS với Mod_evasive trên máy chủ Apache

Apache là một trong những máy chủ web phổ biến nhất được sử dụng rộng rãi trên thế giới, vì vậy điều quan trọng là giữ cho trang web của bạn riêng tư với những người dùng trái phép. Xác thực Apache có thể được cấu hình để yêu cầu khách truy cập trang web đăng nhập bằng ID người dùng và mật khẩu. Có nhiều cách bạn có thể bảo vệ mật khẩu các thư mục trong một máy chủ web Apache.

Bài viết này mô tả cách dễ dàng để bảo vệ mật khẩu thư mục web trong Apache bằng .htaccess .

Lưu ý : hướng dẫn này được thực hiện trên máy chủ Ubuntu có cài đặt Apache.

Cài đặt Gói Tiện ích Apache

Trước tiên, bạn cần phải cài đặt gói apache2-utils cung cấp một tiện ích gọi là htpasswd để tạo một tệp mật khẩu.

Bạn có thể cài đặt nó bằng cách chạy lệnh sau:

 sudo apt-get cài đặt apache2-utils 

Cấu hình Apache để cho phép xác thực .htaccess

Theo mặc định, Apache không cho phép sử dụng tệp .htaccess trong Ubuntu 14.04. Bạn sẽ cần thiết lập tệp cấu hình Apache để cho phép xác thực dựa trên .htacces.

Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp cấu hình Apache:

 sudo nano /etc/apache2/apache2.conf 

Tìm phần bắt đầu bằng Directory "/var/www/html" và thay đổi dòng từ AllowOverride none thành AllowOverride AuthConfig

 Tùy chọn chỉ mục FollowSymLinks AllowOverride AuthConfig Yêu cầu tất cả các cấp 

Lưu và đóng tập tin.

Tạo tệp mật khẩu

Bạn có thể sử dụng tiện ích dòng lệnh htpasswd để tạo một tệp mật khẩu mà Apache có thể sử dụng để xác thực người dùng. Bây giờ, tạo một tệp .htpasswd ẩn trong thư mục cấu hình "/ etc / apache2".

 sudo htpasswd -c /etc/apache2/.htpasswd authuser1 

Điều này sẽ yêu cầu bạn cung cấp và xác nhận mật khẩu cho authuser1.

Nếu bạn muốn thêm một người dùng khác, thì bỏ qua đối số -c bằng lệnh htpasswd .

Bây giờ, để tạo một xác thực khác cho người dùng thứ hai, authuser2:

 sudo htpasswd /etc/apache2/.htpasswd authuser2 

Bạn có thể thấy tên người dùng và mật khẩu được mã hóa cho mỗi bản ghi bằng cách chạy:

 sudo cat /etc/apache2/.htpasswd 

Bạn cần cấp quyền cho người dùng “www-data” để có thể đọc tệp .htpasswd.

 sudo chown www-data: www-data /etc/httpd/.htpasswd sudo chmod 0660 /etc/httpd/.htpasswd 

Định cấu hình Xác thực mật khẩu Apache

Bạn cần tạo một tệp ".htaccess" trong thư mục web bạn muốn hạn chế. Trong ví dụ này, tôi sẽ tạo một tập tin ".htaccess" trong thư mục "/ var / www / html /" để hạn chế toàn bộ tài liệu gốc.

 sudo nano /var/www/html/.htaccess 

Thêm nội dung sau:

 AuthType Basic AuthName "Nội dung bị hạn chế" AuthUserFile /etc/apache2/.htpasswd Yêu cầu người dùng hợp lệ 

Dưới đây là những gì các mã trên có nghĩa là:

  • AuthType : Tùy chọn này xác định loại xác thực.
  • AuthName : Đây là nội dung hiển thị trên trang web khi được nhắc nhập tên người dùng và mật khẩu.
  • AuthUserFile : Tùy chọn này chỉ định vị trí của thông tin xác thực người dùng.
  • yêu cầu người dùng hợp lệ : Điều này cho thấy rằng chỉ các yêu cầu được xác thực thành công mới có thể tải trang.

Lưu và đóng tệp và khởi động lại Apache để thực hiện các thay đổi này có hiệu lực.

 sudo /etc/init.d/apache2 khởi động lại 

Kiểm tra xác thực mật khẩu

Bây giờ trên một máy từ xa, truy cập trang web của bạn trong một trình duyệt web. Bạn sẽ được nhắc nhở với một tên người dùng và mật khẩu để truy cập trang web.

Nếu bạn nhập thông tin xác thực người dùng chính xác, bạn sẽ được phép truy cập nội dung. Nếu bạn nhập sai thông tin người dùng hoặc nhấn "Hủy", bạn sẽ thấy trang Lỗi trái phép .

Phần kết luận

Bây giờ bạn đã có đủ kiến ​​thức để thiết lập xác thực cơ bản cho máy chủ web Apache của bạn. Cũng nên nhớ rằng mật khẩu bảo vệ nên được kết hợp với mã hóa SSL để thông tin đăng nhập của bạn không được gửi đến máy chủ trong văn bản thuần túy.