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
08/06/2023
Lượt xem

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

08/06/2023
13 phút đọc
Lượt xem

Đánh giá

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

Các quản trị viên thường phải giới hạn quyền truy cập đến một số thành phần nhất định trên website để bảo vệ các thông tin quan trọng trên hệ thống. Một phương pháp hiệu quả là sử dụng mật khẩu để bảo vệ các tài nguyên này. Bài viết này sẽ hướng dẫn chi tiết các bước thiết lập xác thực mật khẩu cho Apache trên Ubuntu 20.04.

Điều kiên để thiết lập xác thực mật khẩu cho Apache trên Ubuntu 20.04

Trước khi bắt đầu, hãy đảm bảo rằng bạn đáp ứng được các yêu cầu sau:

Điều kiên để thiết lập xác thực mật khẩu cho Apache trên Ubuntu 20.04
Điều kiên để thiết lập xác thực mật khẩu cho Apache trên Ubuntu 20.04
  • Có một server Ubuntu 20.04 với user non-root và quyền sudo, đồng thời cũng đã kích hoạt sẵn tường lửa. Server Ubuntu này cần được cài sẵn web server Apache. (Hướng dẫn chi tiết về cách cài đặt Apache trên Ubuntu 20.04 tại đây)
  • Virtual host được bảo mật bằng SSL. Nếu đã có sẵn tên miền thì bạn có thể mua chứng chỉ SSL từ Vietnix. Nếu chưa có sẵn tên miền thì bạn có thể sử dụng chứng chỉ tự ký để mã hóa.
  • Bản ghi DNS A với tên miền vietnixtest.com trỏ đến địa chỉ IP public của server.
  • Bản ghi DNS A có www.vietnixtest.com trỏ đến địa chỉ IP public của server.

Sau khi có đủ các điều kiện trên, hãy làm theo các bước dưới đây để thiết lập phương thức xác thực mật khẩu cho Apache trên Ubuntu 20.04.

Bước 1 – Cài đặt gói công cụ Apache

Để thực hiện theo các bước trong bài viết, bạn cần sử dụng công cụ htpasswd – một thành phần trong package apache2-utils – để tạo file, quản lý username và password cho các nội dung cần giới hạn.

Cập nhật chỉ mục gói của server bằng lệnh sau:

sudo apt update

Sau đó cài đặt gói công cụ Apache:

sudo apt install apache2-utils

Bước 2 – Tạo file password

Sau khi có quyền truy cập vào lệnh htpasswd, bạn có thể tạo file mật khẩu giúp Apache có thể xác thực người dùng. Đó là file ẩn có tên.htpasswd nằm trong thư mục cấu hình /etc/apache2 của hệ thống.

Ở lần đầu tiên sử dụng công cụ, bạn cần thêm option -c để tạo file .htpasswd, ở phía cuối lệnh sẽ có tên username (trong ví dụ này là vietnix) để tạo một entry mới trong file:

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

Sau đó bạn sẽ được yêu cầu cung cấp và xác thực mật khẩu cho người dùng.

Đối với các lần sử dụng lệnh tiếp theo, bạn có thể bỏ đối số -c khi muốn thêm những người dùng khác:

sudo htpasswd /etc/apache2/.htpasswd another_user

Nội dung của file bây giờ sẽ chứa username và mật khẩu được mã hóa cho từng bản ghi:

cat /etc/apache2/.htpasswd
Output
vietnix:$apr1$eponJaBR$9uyVIRpDpbHoseI.hS1cq/
another_user:$apr1$dDXiQxte$RGn3CVfFLQOPf5lSJgNvV1

Để đảm bảo quá trình cài đặt và thiết lập có thể diễn ra thuận lợi và không gặp trở ngại, việc sử dụng một máy chủ có khả năng mở rộng linh hoạt và toàn quyền quản trị là cần thiết. Một trong những lựa chọn phổ biến hiện nay là sử dụng VPS Vietnix, dịch vụ máy chủ ảo có nhiều tính năng và tiện ích hỗ trợ cho việc quản trị và phát triển website.

Với VPS Vietnix, bạn có thể tùy chỉnh các thiết lập cấu hình theo nhu cầu sử dụng, đảm bảo hiệu suất cao và độ ổn định tốt cho website của mình. Tùy theo nhu cầu sử dụng mà bạn có thể tham khảo gói VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe, VPS GPU. Bên cạnh đó, Vietnix cũng cung cấp dịch vụ hỗ trợ kỹ thuật chuyên nghiệp, giúp bạn giải quyết các vấn đề liên quan đến máy chủ một cách nhanh chóng và hiệu quả. Liên hệ để được tư vấn chi tiết ngay.

Bước 3 – Cấu hình xác thực mật khẩu Apache

Ở bước này, bạn sẽ cấu hình để yêu cầu Apache kiểm tra file .htpasswd trước khi cung cấp các nội dung được bảo vệ. Có hai cách để thực hiện: Trực tiếp cấu hình trong file virtual host, hoặc đưa file .htaccess vào các thư mục cần giới hạn. Đa số gợi ý nên sử dụng file virtual host, nhưng nếu muốn cho phép cả những user non-root tự quản lý mức độ giới hạn truy cập của mình thì hãy làm theo cách thứ hai.

Cách 1: Cấu hình kiểm soát truy cập trong Virtual Host (Ưu tiên dùng phương pháp này)

Ở phương pháp đầu tiên, bạn sẽ chỉnh sửa cấu hình Apache và thêm mật khẩu bảo vệ vào file virtual host. Việc này thường sẽ có nhiều ưu điểm hơn vì dịch vụ sẽ không cần phải đọc nhiều file cấu hình phân tán trên server. Tuy nhiên việc chỉnh sửa chỉ có thể thực hiện được nếu bạn có quyền truy cập vào cấu hình.

Trước tiên hãy mở file virtual host bạn cần giới hạn, trong ví dụ này sẽ là file /etc/apache2/sites-available/vietnixtest.com.conf chứa virtual host.

Mở file bằng text editor bất kỳ:

sudo nano /etc/apache2/sites-available/vietnixtest.com.conf

Nội dung của file sẽ có dạng như dưới đây:


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName vietnixtest.com
    ServerAlias www.vietnixtest.com
    DocumentRoot /var/www/vietnixtest.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Việc xác thực được thực hiện riêng lẻ cho từng thư mục. Để thiết lập xác thực thì bạn cần chỉ định thư mục muốn giới hạn bằng block <Directory_>. Ở ví dụ này, bạn sẽ giới hạn toàn bộ root của tài liệu:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName vietnixtest.com
    ServerAlias www.vietnixtest.com
    DocumentRoot /var/www/vietnixtest.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory "/var/www/vietnixtest.com">
    </Directory>
</VirtualHost>

Trong block thư mục này, hãy chỉ định rằng bạn đang thiết lập phương thức xác thực loại Basic. Đối với AuthName, hãy chọn tên để hiển thị cho người dùng khi cần yêu cầu thông tin đăng nhập. Directive AuthUserFile dùng để trỏ Apache đến file password vừa tạo. Cuối cùng, tạo một yêu cầu sao cho chỉ valid-user mới có quyền truy cập vào tài nguyên này, tức là những người dùng có thể xác thực bằng mật khẩu mới được phép truy cập.

 <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName vietnixtest.com
    ServerAlias www.vietnixtest.com
    DocumentRoot /var/www/vietnixtest.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory "/var/www/vietnixtest.com">
      AuthType Basic
      AuthName "Restricted Content"
      AuthUserFile /etc/apache2/.htpasswd
      Require valid-user
  </Directory>
</VirtualHost>

Sau đó lưu rồi đóng file lại. Nếu đang sử dụng nano, bạn có thể nhấn CTRL + X, tiếp đó nhấn YENTER.

Kiểm tra cấu hình bằng lệnh sau:

sudo apache2ctl configtest

Nếu output là Syntax OK thì bạn có thể restart server để áp dụng chính sách mật khẩu mới:

sudo systemctl restart apache2

Bạn có thể dùng lệnh status để đảm bảo rằng server đang hoạt động:

sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Fri 2022-04-29 17:12:24 UTC; 4s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 4493 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SU>
   Main PID: 4514 (apache2)
      Tasks: 55 (limit: 9508)
     Memory: 5.8M
     CGroup: /system.slice/apache2.service
             ├─4514 /usr/sbin/apache2 -k start
             ├─4516 /usr/sbin/apache2 -k start
             └─4517 /usr/sbin/apache2 -k start

Cách 2: Cấu hình kiểm soát truy cập bằng file .htaccess

Apache có thể sử dụng file .htaccess để cho phép một số nội dung cấu hình được thiết lập bên trong thư mục. Tuy nhiên Apache sẽ phải đọc lại các file này sau mỗi request liên quan đến thư mục nên cách này thường ảnh hưởng xấu đến hiệu năng của dịch vụ. Tuy nhiên nếu bạn đang sử dụng file .htaccess để cho phép các user non-root tự quản lý giới hạn của mình thì vẫn đây vẫn là cách tối ưu hơn.

Trước tiên, mở file config Apache bằng một text editor bất kỳ:

sudo nano /etc/apache2/apache2.conf

Tìm block <Directory> cho thư mục /var/www chứa root tài liệu. Cập nhật dòng này để phản ánh root rồi đổi directive AllowOverride từ None thành All. Bây giờ nội dung của block sẽ như dưới đây:

. . .

<Directory /var/www/vietnixtest.com>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

. . .

Sau đó lưu rồi đóng file lại.

Tiếp theo, thêm một file .htaccess vào thư mục cần hạn chế. Trong ví dụ này, bạn sẽ giới hạn toàn bộ root tài liệu (tức là cả website) ở /var/www/vietnixtest.com:

sudo nano /var/www/vietnixtest.com/.htaccess

Trong file này bạn thực hiện chỉ định phương thức xác thực Basic, phần AuthName chỉ định tên sẽ hiển thị cho người dùng khi yêu cầu thông tin đăng nhập. Directive AuthUserFile dùng để trỏ Apache đến file password vừa tạo trước đó. Cuối cùng, bạn cần thiết lập sao cho chỉ user valid-user mới có quyền truy cập tài nguyên:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Sau đó lưu rồi đóng lại file. Bây giờ restart web server để bảo vệ tất cả nội dung bên trong hoặc dưới thư mục chứa file .htaccess:

sudo systemctl restart apache2

Cuối cùng là chạy lệnh sau để kiểm tra trạng thái:

sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Fri 2022-04-29 17:18:17 UTC; 3s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 4721 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SU>
   Main PID: 4744 (apache2)
      Tasks: 55 (limit: 9508)
     Memory: 5.9M
     CGroup: /system.slice/apache2.service
             ├─4744 /usr/sbin/apache2 -k start
             ├─4745 /usr/sbin/apache2 -k start
             └─4746 /usr/sbin/apache2 -k start

Bước 4 – Xác nhận phương thức bảo mật

Bây giờ bạn sẽ thử truy cập một nội dung được giới hạn để kiểm tra xem đã được bảo vệ chưa. Mở trình duyệt rồi vào https://vietnixtest.com hoặc server_IP (lưu ý hãy thay domain và IP bằng chính IP hoặc domain của bạn).

Hệ thống sẽ yêu cầu nhập username và password:

Nhập thông tin tài khoản vào
Nhập thông tin tài khoản vào

Nếu nhập chính xác thông tin đăng nhập thì bạn sẽ truy cập được nội dung. Mặt khác, nếu cung cấp sai thông tin hoặc nhấn Cancel thì màn hình sẽ hiển thị trang lỗi như sau:

Hiển thị lỗi
Hiển thị lỗi

Vietnix là một nhà cung cấp giải pháp hosting, VPS, tên miền, chứng chỉ SSL có hơn 10 năm kinh nghiệm hoạt động. Vietnix đã đạt được sự tin tưởng của hơn 50.000 khách hàng cá nhân và doanh nghiệp với hơn 100.000 dịch vụ đã được kích hoạt. Điều đáng tự hào hơn, chúng tôi nhận được sự giới thiệu của 97% khách hàng sau khi họ trải nghiệm và sử dụng dịch vụ.

Vietnix cam kết mang đến cho khách hàng của mình những giải pháp VPS chất lượng nhất, với đội ngũ kỹ thuật viên chuyên nghiệp và giàu kinh nghiệm. Bên cạnh đó, Vietnix cũng luôn cập nhật các công nghệ mới nhất để đáp ứng nhu cầu ngày càng cao của khách hàng.

Nếu bạn đang tìm kiếm một nhà cung cấp giải pháp VPS uy tín, chất lượng và đáng tin cậy, hãy đến với Vietnix. Chúng tôi sẽ là đối tác đáng tin cậy của bạn trên con đường phát triển kinh doanh của mình. Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:

  • Đị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 này đã hướng dẫn các bước thiết lập xác thực mật khẩu cho Apache trên Ubuntu 20.04. Bây giờ các nội dung quan trọng đã được bảo vệ và chỉ những người dùng cung cấp đúng thông tin bảo mật mới có thể truy cập được vào tài nguyên này. Chúc bạn thực hiện thành công trên hệ thống của mình.

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 kết thúc 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