Hướng dẫn cài đặt Nginx Proxy Manager và thiết lập bảo mật trang đăng nhập

Hướng dẫn cài đặt Nginx Proxy Manager và thiết lập bảo mật trang đăng nhập trên VPS Linux

Nginx Proxy Manager (NPM) là một hệ thống quản lý reverse proxy chạy trên Docker. NPM sử dụng Nginx và cung cấp cho người dùng trình quản lý thông qua giao diện web, giúp người dùng quản lý dễ dàng và hiệu quả hơn.

Trong bài viết này HOSTVN sẽ hướng dẫn các bạn cài đặt Nginx Proxy Manager và thiết lập bảo mật trang đăng nhập trên Ubuntu.

1. Nginx Proxy Manager là gì ?

Nginx Proxy Manager (NPM) là một hệ thống quản lý reverse proxy chạy trên Docker. NPM sử dụng Nginx làm proxy server. Ngoài việc cấu hình Proxy server nó còn cho phép bạn cấu hình redirect domain, kích hoạt và tự động gia hạn SSL Let’s Encrypt. NPM rất phù hợp nếu các bạn đang muốn tìm kiếm một giải pháp proxy server đứng trước server backend của mình.

2. Cài đặt Nginx Proxy Manager và thiết lập bảo mật trang đăng nhập

Yêu cầu

VPS sử dụng hệ điều hành Linux, trong bài viết này HOSTVN sẽ hướng dẫn các bạn cài đặt trên Ubuntu 20.04.

2.1. Bước 1: Cài đặt Docker

Do NPM chạy trên Docker nên việc đầu tiên các bạn cần làm là cài đặt Docker và Docker Compose trên VPS của mình. Để cài đặt Docker các bạn chỉ cần chạy lần lượt các lệnh sau

sudo apt-get remove docker docker-engine docker.io containerd runc

sudo apt-get update -y

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release wget -y

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update -y

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Sau khi quá trình cài đặt Docker hoàn tất các bạn tiến hành cài đặt Docker Compose bằng cách chạy các lệnh sau đây

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Như vậy các bạn đã hoàn tất việc cài đặt Docker và Docker Compose trên VPS của mình, hãy chuyển sang bước tiếp theo cài đặt NPM lên VPS

2.2. Bước 2: Cài đặt Nginx Proxy Manager

Để cài đặt Nginx Proxy Manager đầu tiên các bạn cần tạo file docker-compose.yml trong bài viết này HOSTVN sẽ sử dụng nano để tạo file. Nếu chưa biết cách sử dụng nano hãy tham khảo Hướng dẫn sử dụng Nano trên Linux

nano docker-compose.yml

Tiếp theo dán nội dung sau vào file

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      # Mysql/Maria connection parameters:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./mysql:/var/lib/mysql
  • Lưu ý: Hãy thay SECURE_PASSWORD bằng một mật khẩu mạnh bao gồm số, chữ thường, chữ in hoa và ký tự đặc biệt.

Tiếp theo bấm tổ hợp phím Ctrl + o để lưu file và Ctrl + x để thoát khỏi nano. Để cài đặt NPM các bạn chạy lệnh sau và chờ cho quá trình cài đặt hoàn tất

docker-compose up -d

cai-dat-nginx-proxy-manager

2.3. Bước 3: Mở port trên Firewall

Nếu VPS của các bạn đang sử dụng Firewall các bạn cần mở port 81 để có thể truy cập vào trang admin. Trong bài viết này VPS Ubuntu sử dụng UFW firewall nên sẽ cần chạy lệnh sau để mở port

ufw allow 81/tcp

2.4. Bước 4: Bảo mật trang đăng nhập

Sau khi quá trình cài đặt NPM kết thúc các bạn có thể đăng nhập vào trang quản trị bằng link: ip-vps:81 với thông tin đăng nhập mặc định như sau (Các thông tin này sẽ có thể thay đổi sau khi đăng nhập thành công)

Email:    admin@example.com
Password: changeme

Tuy nhiên để bảo mật hơn trong bài viết này HOSTVN sẽ hướng dẫn các bạn thiết lập thêm một lớp đăng nhập thứ 2 cho trang Admin của NPM. Đầu tiên các bạn cần xác định Container ID của NPM bằng cách chạy lệnh sau

docker ps

Container ID

Như trong ảnh chúng ta sẽ có Container ID là e034e50447fb (ID này là khác nhau với mỗi lần cài đặt nên các bạn cần thay nó bằng ID của các bạn). Sau khi đã xác định được Container ID tiến hành copy file cấu hình ra bên ngoài để chỉnh sửa bằng lệnh sau

docker cp e034e50447fb:/etc/nginx/conf.d/production.conf data

Mở file production.conf bằng nano

nano data/production.conf

và thêm vào 2 dòng sau

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

production.conf

Tiếp theo chúng ta sẽ cần tạo file .htpasswd chứa thông tin đăng nhập cho lớp đăng nhập thứ 2. Để tạo .htpasswd các bạn chạy 2 lệnh sau

sudo apt-get install apache2-utils
htpasswd -b -c .htpasswd USER SECURE_PASSWORD

Thay USERSECURE_PASSWORD bằng user và mật khẩu đăng nhập các bạn muốn sử dụng. Cuối cùng copy file production.conf  và file .htpasswd vào trong Container

docker cp data/production.conf e034e50447fb:/etc/nginx/conf.d/
docker cp .htpasswd e034e50447fb:/etc/nginx/

Tiến hành reload lại nginx

docker exec e034e50447fb service nginx reload

Tiếp theo các bạn có thể truy cập thử để kiểm tra kết quả

sign in

3. Link tham khảo

4. Kết luận

Qua bài viết này HOSTVN đã hướng dẫn các bạn cách cài đặt Nginx Proxy Manager và thiết lập bảo mật trang đăng nhập. Nếu có bất kỳ ý kiến đóng góp nào các bạn có thể để lại bình luận ở bên dưới. Ngoài ra các bạn có thể xem thêm các bài viết khác về VPS tại đây.

Ebook Wordpress

Đăng ký nhận Ebooks toàn tập hướng dẫn sử dụng WordPress cơ bản


Góc chia sẻ

Cách tạo và cài đặt Pixel Facebook vào website đơn giản

2021-5-11 11:24:19

Góc chia sẻ

Cách tạo và tối ưu hóa trang Facebook Business doanh nghiệp

2021-5-12 11:48:28

0 trả lời ATác giả MQuản lý
    Chưa có phản hồi nào
Trung tâm cá nhân
Giỏ hàng
Phiếu mua hàng
Đăng nhập ngay
Tin nhắn Danh sách tin nhắn
Tìm kiếm
Tối