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
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
- Một Cloud Server CentOS 7 của ViCloud.
- Một tài khoản người dùng sudo (tham khảo bài viết: Hướng dẫn tạo người dùng Sudo trên CentOS).
- Nginx.
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
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:
. . .
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.