۱. کاربران و نقشها
دو realm وجود دارد: pam (کاربران لینوکسی میزبان) و pve (کاربران داخلی Proxmox). برای اپراتورها pve سادهتر است:
pveum group add ops --comment "Operators"
pveum user add ali@pve --groups ops --email ali@sahor.ir
pveum passwd ali@pve
# Operators can manage all VMs but not hosts, storage config or users
pveum acl modify /vms --groups ops --roles PVEVMAdmin
pveum acl modify /storage --groups ops --roles PVEDatastoreUser
# Read-only auditor
pveum user add audit@pve
pveum acl modify / --users audit@pve --roles PVEAuditor
pveum user permissions ali@pve۲. ورود دومرحلهای (TOTP)
هر کاربر بعد از ورود به رابط وب، از منوی نام کاربری بخش TFA را باز میکند و TOTP را با برنامهای مثل Aegis یا Google Authenticator ثبت میکند. برای root هم همین کار را انجام دهید و کدهای Recovery را جای امنی نگه دارید.
برای اجباری کردن، در Datacenter › Permissions › Realms، realm pve را ویرایش کنید و TFA را روی TOTP بگذارید.
۳. توکن API برای اسکریپتها
رمز root را هرگز در اسکریپت نگذارید. یک توکن با دسترسی محدود بسازید:
pveum user add automation@pve
pveum user token add automation@pve backup --privsep 1
pveum acl modify /vms/101 --tokens 'automation@pve!backup' --roles PVEVMUserمقدار توکن فقط یک بار نمایش داده میشود. با --privsep 1 توکن فقط به اندازهی ACL خودش دسترسی دارد، حتی اگر کاربرش دسترسی بیشتری داشته باشد.
۴. فایروال دیتاسنتر
وقتی فایروال دیتاسنتر روشن شود، ورودیها بهطور پیشفرض مسدود میشوند. اول قانونها را بنویسید، بعد فایروال را فعال کنید.
/etc/pve/firewall/cluster.fw:
[OPTIONS]
enable: 0
policy_in: DROP
[IPSET management]
192.168.10.0/24 # admin LAN
[RULES]
IN ACCEPT -source +management -p tcp -dport 8006 -log nolog # web UI
IN ACCEPT -source +management -p tcp -dport 22 -log nolog # SSH
IN ACCEPT -p icmp -log nologipset با نام management معنای ویژهای دارد و Proxmox دسترسی مدیریتی آن را خودکار باز میکند. ارتباط بین اعضای خوشه (corosync) هم خودکار مجاز است. بررسی و فعالسازی:
pve-firewall compile | head -40
sed -i 's/^enable: 0/enable: 1/' /etc/pve/firewall/cluster.fw
pve-firewall statusاگر دسترسی قطع شد، از کنسول سرور pve-firewall stop را بزنید.
۵. فایروال هر VM
در VM › Firewall همان قانونها را برای هر ماشین تعریف کنید و در Options آن را فعال کنید. کارت شبکهی VM هم باید گزینهی Firewall را تیکخورده داشته باشد. اینطوری ماشینهای یک شبکه هم از هم جدا میشوند.
۶. چند نکتهی دیگر
- رابط وب (8006) را مستقیم روی اینترنت باز نکنید. از VPN مثل WireGuard استفاده کنید.
- بهروزرسانی منظم:
apt update && apt full-upgrade. فقط ازapt full-upgradeاستفاده کنید وapt upgradeنزنید، چون ممکن است وابستگیها را ناقص بگذارد. - برای ورود SSH از کلید استفاده کنید و ورود رمزی را ببندید.