NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
02/06/2023
Lượt xem

Hướng dẫn thiết lập mật khẩu xác thực cho Nginx trên Ubuntu 20.04

02/06/2023
8 phút đọc
Lượt xem

Đánh giá

5/5 - (133 bình chọn)

Khi thiết lập web server, bạn có thể sẽ cần giới hạn quyền truy cập đến một số phần trên trang để bảo vệ dữ liệu tuyệt mật. Qua bài viết về cách thiết lập mật khẩu xác thực cho Nginx trên Ubuntu 20.04 này, bạn sẽ được hướng dẫn cách sử dụng mật khẩu (password) để thiết lập phương thức xác thực trên web server Nginx.

Điều kiện để thiết lập xác thực bằng mật khẩu cho Nginx

Để thực hiện việc thiết lập xác thực bằng password cho Nginx, trước tiên ta cần có quyền truy cập vào môi trường Ubuntu 20.04 với user non-root và có quyền sudo. Bên cạnh đó bạn đọc cũng cần cài đặt sẵn Nginx trên máy. (Hướng dẫn chi tiết về cách cài đặt Nginx trên Ubuntu 20.04 tại đây)

Sau khi đảm bảo được các điều trên, hãy cùng bắt đầu việc xác thực mật khẩu cho Nginx theo các bước dưới đây.

Điều kiện để thiết lập xác thực bằng mật khẩu cho Nginx
Điều kiện để thiết lập xác thực bằng mật khẩu cho Nginx

Thiết lập mật khẩu xác thực cho Nginx trên Ubuntu 20.04 là cần thiết để bảo vệ hệ thống, dữ liệu và quản lý quyền truy cập. Điều này giúp đảm bảo an toàn và tuân thủ các tiêu chuẩn bảo mật cho ứng dụng và hệ thống của bạn.

Tuy nhiên, để VPS vận hành ổn định, mượt mà và đạt hiệu quả tối đa thì tốc độ cũng là một yếu tố quan trọng cần được chú trọng.

Hiện tại Vietnix đang cung cấp các gói VPS tốc độ cao, đa dạng cấu hình, tính năng hiện đại, bảo mật cao gồm: VPS NVMe, VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS GPU với nhiều mức giá khác nhau.

Nhanh tay liên hệ Vietnix để được tư vấn gói VPS tốc độ cao phù hợp với nhu cầu ngay hôm nay.

Bước 1: Tạo file password

Để bắt đầu, cần tạo một file chứa các tổ hợp username và password. Bạn có thể dùng công cụ OpenSSL có sẵn trên server hoặc htpasswd từ package apache1-utils.

Cách 1: Dùng OpenSSL

Nếu server đã có sẵn OpenSSL thì ta có thể nhanh chóng tạo file password mà không cần cài thêm package nào. Trước hết, tạo một file ẩn có tên .htpasswd trong thư mục cấu hình /etc/nginx để lưu trữ tổ hợp username-password.

Ta có thể thêm một username vào file bằng lệnh dưới đây, trong đó thay vietnix thành username tương ứng mà bạn muốn đặt:

sudo sh -c "echo -n 'vietnix:' >> /etc/nginx/.htpasswd"

Tiếp theo, tạo một entry mật khẩu đã được mã hóa cho username:

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

Nếu muốn cài đặt thêm nhiều username khác thì hãy sử dụng tiếp hai lệnh ở trên. Để kiểm tra cách username và password đã được mã hóa được lưu trữ trong file thế nào, chạy lệnh cat dưới đây:

cat /etc/nginx/.htpasswd
Output
vietnix:$apr1$wI1/T0nB$jEKuTJHkTOOWkopnXqC1d1

Cách 2: Dùng công cụ Apache

Mặc dù OpenSSL vẫn có thể được dùng để mã hóa password cho việc xác thực của Nginx, nhưng nhiều người dùng vẫn thích dùng các công cụ chuyên dụng như htpasswd.

Trước tiên, cài đặt package apache2-utils cho server:

sudo apt update
sudo apt install apache2-utils

Bây giờ ta có thể sử dụng lệnh htpasswd để tạo file password. Tương tự, tạo một file .htpasswd trong thư mục /etc/nginx.

Đối với lần đầu sử dụng lệnh, ta cần thêm option -c để tạo file được chỉ định. Chạy lệnh dưới đây để tạo một entry mới trong file, đồng thời chỉ định username (ví dụ như vietnix) ở cuối lệnh:

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

Hệ thống sau đó sẽ yêu cầu nhập và xác nhận password.

Nếu muốn tạo thêm những user tiếp theo thì ta không cần dùng -c như trước:

sudo htpasswd /etc/nginx/.htpasswd another_user

Kiểm tra username và password đã được mã hóa bằng lệnh cat:

cat /etc/nginx/.htpasswd
Output
vietnix:$apr1$lzxsIfXG$tmCvCfb49vpPFwKGVsuYz.
another_user:$apr1$p1E9MeAf$kiAhneUwr.MhAE2kKGYHK.

Bước 2: Cấu hình xác thực Nginx bằng password

Sau khi có file chứa user và password ở định dạng Nginx có thể đọc, bây giờ ta cần cấu hình Nginx kiểm tra file trước khi thực hiện bảo mật.

Đầu tiên là mở file cấu hình block server muốn bảo mật, giả sử bài viết này chọn block default được cài qua Nginx package của Ubuntu:

sudo nano /etc/nginx/sites-enabled/default

Để thiết lập xác thực, bạn cần chọn nội dung để giới hạn quyền truy cập trước. Nginx cho phép người dùng giới hạn ở mức độ server hoặc trong một vị trí được chỉ định cụ thể.

Giả sử bạn cần đặt giới hạn ở mức độ server. Directive auth_basic dùng để bật chế độ xác thực cùng với tên hiển thị cho user khi đăng nhập. Bạn sẽ dùng directive auth_basic_user_file để trỏ Nginx đến file password vừa tạo ở bước trước:

server {
    listen 80 default_server;

     . . .
   
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Lưu ý: Tùy vào loại block cần giới hạn, bạn có thể kiểm soát mức độ chi tiết những thành phần nào phải được xác thực bằng password. Đoạn code dưới đây dùng để giới hạn tài liệu gốc với block location, đồng thời cũng có thể thay đổi danh sách để áp dụng cho một thư mục cụ thể.

server {
    listen 80 default_server;

     . . .
   
    location / {
    try_files $uri $uri/ =404;
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

Cuối cùng là lưu rồi đóng file lại, restart Nginx để áp dụng chính sách password mới:

sudo systemctl restart nginx

Bước 3: Kiểm tra phương thức xác thực bằng password

Để xác nhận rằng các thay đổi đã được áp dụng, hãy thử truy cập vào nội dung trên một trình duyệt web:

http://server_domain_or_IP

Bây giờ bạn sẽ được yêu cầu nhập username và password:

Yêu cầu xác thực để đăng nhập
Yêu cầu xác thực để đăng nhập

Nếu nhập đúng thông tin đăng nhập bạn sẽ được truy cập vào nội dung đó. Mặt khác, nếu nhập sai hoặc chọn Cancel thì trang sẽ hiển thị như sau:

Lỗi xác thực đăng nhập
Lỗi xác thực đăng nhập

Vietnix với hơn 10 năm hoạt động đã đồng hành với hơn 50.000 khách hàng cá nhân và doanh nghiệp. Đến năm 2022 Vietnix vinh dự được nhận giải Thương hiệu Việt Nam xuất sắc. Đồng thời, với tỷ lệ 97% khách hàng sau khi sử dụng dịch vụ tại Vietnix đã giới thiệu đến bạn bè, đồng nghiệp cũng là một minh chứng cho chất lượng dịch vụ luôn đáp ứng được mọi nhu cầu của khách hàng.

Nhanh tay đăng ký Vietnix VPS ngay và trải nghiệm dịch vụ ổn định, tốc độ cao, hỗ trợ nhanh chóng với nhiều ưu đãi hấp dẫn nhất.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Hotline: 1800 1093 – 07 088 44444
  • Email: sales@vietnix.com.vn

Lời kết

Bài viết về cách thiết lập mật khẩu xác thực cho Nginx trên Ubuntu 20.04 này đã hướng dẫn chi tiết các bước thiết lập phương thức xác thực bằng password cho Nginx trên Ubuntu. Vietnix khuyến khích bạn đọc nên kết hợp với cả các phương pháp mã hóa tin cậy khác như TLS để bảo đảm thông tin đăng nhập trên server. Nếu có điều gì thắc mắc, bạn hãy để lại bình luận bên dưới để được hỗ trợ thêm.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG