Hướng dẫn thiết lập công cụ xác thực căn bản HTTP với Nginx trên CentOS 7

6 năm trước

 

Giới thiệu

Nginx là một trong những web server được sử dụng hàng đầu, cùng với đó là phiên bản thương mại Nginx Plus, chúng đều được phát triển bởi tập đoàn Nginx.

Trong phần này chúng tôi sẽ hướng dẫn bạn cách hạn chế truy cập vào những web server liên quan tới Nginx sử dụng phương pháp xác thực HTTP căn bản trên Ubuntu 14.04. Xác thực HTTP căn bản đơn giản cần một người dùng cộng thêm công cụ xác thực mật khẩu ( sử dụng hàm băm).

 

Yêu cầu căn bản

Bước 1 - Cài công cụ HTTPD 

Cần có lệnh htpassword để cài mật khẩu giúp hạn chế truy cập tới những website quan trọng, lệnh này nằm trong gói httpd-tools , thế nên đầu tiên ta cần cài đặt gói này trước đã.

sudo yum install -y httpd-tools 
 

Bước 2 - Thiết lập nhãn quyền xác thực HTTP cơ bản

Ta sẽ tạo một mật khẩu để truy cập website .

Mật khẩu và tên người dùng sẽ được lưu trong một file cụ thể và mật khẩu sẽ được mã hóa. Ở đây chúng ta sử dụng file /etc/nginx/.htpasswd và tên người dùng là nginx.

Chạy lệnh sau để tạo mật khẩu.

sudo htpasswd -c /etc/nginx/.htpasswd nginx 

Bạn có thể check nội dung file vừa tạo để xem tên người dùng và mật khẩu đã được mã hóa như thế nào.

cat /etc/nginx/.htpasswd 
Example /etc/nginx/.htpasswd
nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/
 

Bước 3 - Update cấu hình Nginx 

Ta đã tạo nhãn quyền xác thực HTTP cơ bản rồi, sau đây ta sẽ update cấu hình Nginx cho website cụ thể mà ta sử dụng.

Công cụ xác thực HTTP cơ bản được tạo ra từ mục auth_basic and auth_basic_user_file . Giá trị của auth_basic là một chuỗi ký tự sẽ được hiển thị ở giao diện xác thực; Giá trị   auth_basic_user_file là đường dẫn tới file chứa mật khẩu mà ta đã tạo ở bước 2.

Ta cần cấu hình cả hai mục trên, chúng nằm ở danh mục mẹ /etc/nginx/ . Ta sẽ mở file đó ra sử dụng nano .

sudo nano /etc/nginx/nginx.conf 

Dưới phần server , ta sẽ thêm cả hai mục đó vào:

/etc/nginx/nginx.conf
. . .
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
auth_basic "Private Property";auth_basic_user_file /etc/nginx/.htpasswd;. . .

Lưu và đóng file.

 

Bước 4 - Kiểm tra lại

Tải lại  Nginx để lưu thay đổi.

sudo systemctl reload nginx 

Giờ thì truy cập website của bạn tại địa chỉ mẫu là http://your_server_ip/ trên trình duyệt. Sẽ xuất hiện một cửa sổ xác thực gọi là "Private Property" sử dụng chuỗi mà ta đã thiết lập cho auth_basic và nhập đúng nhãn quyền truy cập thì mới có thể truy cập được . Khi nhập đúng tên người dùng và mật khẩu vừa cài đặt thì sẽ xuất hiện giao diện chính mặc định của Nginx.

Vậy là bạn đã hoàn thành thiết lập công cụ hạn chế truy cập vào website Nginx.