Cách cài đặt Môi trường ảo Proxmox trên Debian 11

Kiến thức hosting

1. Proxmox Virtual Environment là gì?

Proxmox Virtual Environment là một chương trình quản lý ảo hóa mã nguồn mở. Nó cung cấp một nền tảng duy nhất để quản lý các dịch vụ và chức năng như KVM Hypervisor, Linux Containers (LXC), lưu trữ & kết nối mạng. Ngoài ra, nó đi kèm với giao diện quản lý dựa trên web dễ sử dụng, cung cấp toàn quyền kiểm soát một cách dễ dàng.

Bài viết này giải thích việc cài đặt Môi trường ảo Proxmox, sử dụng Nginx làm proxy ngược để phục vụ giao diện quản lý & bảo mật giao diện quản lý bằng chứng chỉ SSL trên máy Debian 11.

2. Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, bạn sẽ cần phải:

  • Triển khai Máy chủ Debian 11 mới
  • Trỏ tên miền phụ đến máy chủ của bạn

3. Cài đặt môi trường ảo Proxmox

Thay đổi tên máy chủ

Bạn được yêu cầu trỏ một tên miền phụ đến máy chủ của mình bằng bản ghi A. Tên miền phụ tương tự sẽ được sử dụng trong suốt bài viết. Ví dụ: pve.domain.tld

Thêm tên máy chủ vào/etc/hostname

# nano /etc/hostname

Ghi đè nội dung hiện có bằng tên miền phụ của bạn và lưu tệp bằng cách sử dụng CTRLXsau đóENTER

Thêm tên máy chủ vào/etc/hosts

# nano /etc/hosts

Dán dòng sau bên dưới 127.0.0.1 localhostvà lưu tệp bằng cách sử dụng CTRLXsau đóENTER

your_public_ip your_subdomain your_subdomain_name

Ví dụ: nếu IP công cộng của bạn là 169.254.169.254 và tên miền phụ là pve1.example.com thì dòng của bạn sẽ giống như169.254.169.254 pve1.example.com pve1

Khởi động lại máy chủ để đảm bảo mọi thứ hoạt động

# reboot
Đang xác minh tên máy chủ

Sau khi máy chủ của bạn hoạt động, hãy chạy lệnh sau và kiểm tra xem đầu ra có khớp với tên miền phụ & địa chỉ IP của bạn không.

Kiểm tra tên máy chủ.

# hostname

Sản lượng dự kiến.

your_subdomain

Kiểm tra IP tên máy chủ.

# hostname --ip-address

Sản lượng dự kiến.

your_public_ip
Cấu hình mạng (Tùy chọn)

Bỏ qua phần này nếu mạng của bạn không được thiết lập bằng cloud-init. Bạn có thể xác minh điều đó bằng cách kiểm tra xem /etc/network/interfaces.d/50-cloud-inittệp có tồn tại trên máy của bạn không.

Thay đổi cấu hình mạng mặc định.

  • Xác định giao diện chính của bạn (tham khảo ifconfiglệnh).
  • Thêm cấu hình giao diện chính của bạn vào tệp /etc/network/interfaces.

Vô hiệu hóa mạng khởi tạo đám mây.

# nano /etc/cloud/cloud.cfg.d/99-custom-networking.cfg 

Dán dòng sau và lưu tệp bằng cách sử dụng CTRLXthen ENTER.

network: {config: disabled}

Xóa tệp cấu hình mạng cloud-init.

rm -f /etc/network/interfaces.d/50-cloud-init

Khởi động lại máy chủ để đảm bảo mọi thứ hoạt động.

# reboot
Thêm kho lưu trữ cần thiết

Thêm kho lưu trữ trong /etc/apt/sources.list.

# nano /etc/apt/sources.list

Dán dòng sau và lưu tệp bằng cách sử dụng CTRLXthen ENTER.

deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription

Thêm khóa GPG vào khóa nguồn APT.

# wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg

Làm mới thông tin gói.

# apt update

Cài đặt môi trường ảo Proxmox

Cài đặt ifupdown2gói.

# apt install -y ifupdown2

Cảnh báo: Cài đặt ifupdown2gói có thể gây gián đoạn mạng. Bạn nên kết nối thông qua bảng điều khiển web để không bị mất quyền truy cập trong trường hợp mạng bị gián đoạn.

Cài đặt Proxmox VE.

# apt install -y proxmox-ve open-iscsi

Khởi động lại máy chủ để khởi động bằng kernel của Proxmox.

# reboot

Xác minh cài đặt PVE

Sau khi máy chủ của bạn hoạt động, bạn có thể xác minh xem quá trình cài đặt đã được thực hiện thành công hay chưa bằng cách mở liên kết sau trong trình duyệt web của mình.

https://your_subdomain:8006/

Bạn có thể đăng nhập vào giao diện quản lý bằng chính thông tin đăng nhập mà bạn sử dụng cho SSH.

Giao diện quản lý phục vụ bằng Nginx

Một số môi trường không cho phép kết nối với các cổng không chuẩn và không nên thay đổi cấu hình cổng của PVE. Sử dụng Nginx là giải pháp tốt nhất để chuẩn hóa cổng và xử lý lưu lượng truy cập cao.

Cài đặt Nginx
# apt install -y nginx
Thêm vhost cho giao diện quản lý

Thêm tệp vhost vào thư mục sites-available.

# nano /etc/nginx/sites-available/pve

Dán nội dung sau (thay thế your_subdomain bằng tên miền phụ thực tế của bạn) và lưu tệp bằng cách sử dụng CTRLXthen ENTER.

server {
    listen 80;
    server_name your_subdomain;
    proxy_redirect off;
    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade"; 
        proxy_pass https://localhost:8006;
        proxy_buffering off;
        client_max_body_size 0;
        proxy_connect_timeout  3600s;
        proxy_read_timeout  3600s;
        proxy_send_timeout  3600s;
        send_timeout  3600s;
    }
}

Thêm một liên kết mềm của tập tin vhost trong thư mục sites-enabled.

# ln -s /etc/nginx/sites-available/pve /etc/nginx/sites-enabled/pve

Kiểm tra cấu hình.

# nginx -t

Sản lượng dự kiến.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Tải lại Nginx.

# systemctl reload nginx

Xác minh khả năng truy cập

Bạn có thể xác minh xem proxy ngược có hoạt động bình thường hay không bằng cách mở liên kết sau trong trình duyệt web của bạn.

http://your_subdomain/

Hạn chế truy cập trực tiếp

Khi bạn đã xác minh rằng proxy ngược của mình hoạt động, bạn có thể thay đổi IP người nghe của giao diện quản lý để hạn chế quyền truy cập trực tiếp.

Thêm IP người nghe vào /etc/default/pveproxy.

# nano /etc/default/pveproxy

Dán dòng sau và lưu tệp bằng cách sử dụng CTRLXthen ENTER.

LISTEN_IP="127.0.0.1"

Khởi động lại pveproxydịch vụ.

systemctl restart pveproxy

Bảo mật giao diện quản lý bằng chứng chỉ SSL

Chúng tôi sẽ sử dụng Let’s Encrypt để lấy Chứng chỉ SSL miễn phí. Vui lòng đảm bảo rằng bạn đã trỏ tên miền phụ của mình tới địa chỉ IP của máy chủ. Các bước đưa ra dưới đây sẽ chỉ hoạt động nếu bạn đang phục vụ giao diện quản lý bằng Nginx.

Cài đặt Certbot

apt install -y certbot python3-certbot-nginx

Cài đặt chứng chỉ trên Nginx

Bạn sẽ được yêu cầu nhập địa chỉ email của mình khi chạy lệnh sau, vui lòng nhập địa chỉ email của bạn và để phần còn lại làm mặc định.

certbot --nginx -d your_subdomain

Xác minh khả năng truy cập

Bạn có thể xác minh xem Chứng chỉ SSL có được định cấu hình đúng hay không bằng cách mở liên kết sau trong trình duyệt web của bạn.

https://your_subdomain/

Tự động gia hạn thử nghiệm

Chứng chỉ Let’s Encrypt chỉ có hiệu lực trong 90 ngày, nhưng vì chúng tôi đang sử dụng certbot nên nó sẽ xử lý việc tự động gia hạn cho chúng tôi. Bạn có thể xác minh xem tính năng tự động gia hạn có hoạt động hay không bằng cách chạy lệnh sau.

certbot renew --dry-run

Nếu lệnh trên không báo lỗi, điều đó có nghĩa là chứng chỉ SSL của bạn sẽ được gia hạn tự động mà không gặp sự cố nào.

Phần kết luận

Trong bài viết này, bạn đã cài đặt Môi trường ảo Proxmox, sử dụng Nginx làm proxy ngược cho giao diện quản lý của PVE và cài đặt Chứng chỉ SSL bằng certbot.

Leave a Reply

Your email address will not be published. Required fields are marked *