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ý proxy ngược 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 này HOSTVN Chúng tôi sẽ hướng dẫn 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ý proxy ngược chạy trên Docker. NPM sử dụng Nginx làm máy chủ proxy. Ngoài việc cấu hình máy chủ Proxy, nó còn cho phép bạn định cấu hình miền chuyển hướng, kích hoạt và tự động gia hạn SSL Let’s Encrypt. NPM rất phù hợp nếu bạn đang tìm kiếm giải pháp máy chủ proxy phía trước máy chủ phụ trợ của mình.
2. Cài đặt Nginx Proxy Manager và thiết lập bảo mật trang đăng nhập
Lời 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 bạn cài đặt trên Ubuntu 20.04.
2.1. Bước 1: Cài đặt Docker
Vì NPM chạy trên Docker, điều đầu tiên bạn cần làm là cài đặt Docker và Docker Compose trên VPS của bạn. Để cài đặt Docker, 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 cài đặt Docker hoàn tất, hãy cài đặt Docker Compose bằng cách chạy các lệnh sau
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
Vậy là bạn đã cài đặt xong 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 trên VPS.
2.2. Bước 2: Cài đặt Nginx Proxy Manager
Để cài đặt Nginx Proxy Manager trước tiên bạn cần tạo một file docker-compac.yml trong bài viết này HOSTVN sẽ sử dụng nano để tạo file. Nếu bạn 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 tệp
version: '3' services: app: image: 'jc21/nginx-proxy-manager:latest' ports: - '80:80' - '81:81' - '443:443' environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "SECURE_PASSWORD" DB_MYSQL_NAME: "npm" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt db: image: 'jc21/mariadb-aria:latest' environment: MYSQL_ROOT_PASSWORD: 'SECURE_PASSWORD' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'SECURE_PASSWORD' volumes: - ./data/mysql:/var/lib/mysql
- Ghi chú: Vui lòng thay đổi SECURE_PASSWORD với mật khẩu mạnh bao gồm số, chữ thường, chữ hoa và ký tự đặc biệt.
Tiếp theo nhấn tổ hợp phím Ctrl + o để lưu tệp và Ctrl + x để thoát khỏi nano. Để cài đặt NPM, hãy chạy lệnh sau và đợi quá trình cài đặt hoàn tất
docker-compose up -d
2.3. Bước 3: Mở cổng trên Tường lửa
Nếu VPS của bạn đang sử dụng Firewall, bạn cần mở cổng 81 để có thể truy cập trang quản trị. Trong bài viết này VPS Ubuntu sử dụng tường lửa UFW nên sẽ cần chạy lệnh sau để mở cổng
ufw allow 81/tcp
2.4. Bước 4: Bảo mật trang đăng nhập
Sau khi cài đặt NPM xong, bạn có thể đăng nhập vào trang quản trị bằng đường dẫn: ip-vps: 81 với thông tin đăng nhập mặc định như sau (Thông tin này sẽ có thể thay đổi sau khi đăng nhập thành công)
Email: [email protected] 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 lớp đăng nhập thứ 2 cho trang Admin của NPM. Đầu tiên bạn cần xác định ID vùng chứa của NPM bằng cách chạy lệnh sau
docker ps
Như trong hình, chúng ta sẽ có ID vùng chứa là e034e50447fb (ID này khác nhau với mỗi lần cài đặt, vì vậy bạn cần thay thế bằng ID của riêng mình). Sau khi nó đã được xác định ID vùng chứa 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ở tệp production.conf trong nano
nano data/production.conf
và thêm 2 dòng sau
auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd;
Tiếp theo, chúng ta sẽ cần tạo tệp .htpasswd chứa thông tin đăng nhập cho lớp đăng nhập thứ 2. Để tạo .htpasswd bạn chạy 2 lệnh sau
sudo apt-get install apache2-utils htpasswd -b -c .htpasswd USER SECURE_PASSWORD
Thay thế NGƯỜI SỬ DỤNG và SECURE_PASSWORD với người dùng đăng nhập và mật khẩu bạn muốn sử dụng. Cuối cùng sao chép tệp production.conf và các tập tin .htpasswd vào Container
docker cp data/production.conf e034e50447fb:/etc/nginx/conf.d/ docker cp .htpasswd e034e50447fb:/etc/nginx/
Tiến hành tải lại nginx
docker exec e034e50447fb service nginx reload
Tiếp theo, bạn có thể thử truy cập vào bài test để kiểm tra kết quả
3. Liên kết tham khảo
4. Kết luận
Qua bài đăng này HOSTVN Tôi đã chỉ cho bạn cách cài đặt nó Trình quản lý proxy Nginx và thiết lập bảo mật trang đăng nhập. Nếu có ý kiến đóng góp, bạn có thể để lại bình luận bên dưới. Ngoài ra, bạn có thể xem thêm các bài viết về VPS tại đây.