8 лип. 2020 р.

Налаштування Zaborona Help в Vyos

1. Завантажуємо ключі та сертифікати в каталог /config/auth

curl -o /config/auth/zaborona-help.crt https://zaborona.help/zaborona-help.crt
curl -o /config/auth/zaborona-help.key https://zaborona.help/zaborona-help.key
curl -o /config/auth/zaborona-help-ca.crt https://zaborona.help/ca.crt

2. Створюємо новий openvpn інтерфейс в режимі клієнта (якщо в системі вже створено інтерфейс "vtun0", введіть інший інтерфейс, наприкалад "vtun1")

set interfaces openvpn vtun0 mode client
set interfaces openvpn vtun0 hash sha1
set interfaces openvpn vtun0 encryption aes128
set interfaces openvpn vtun0 remote-port 1194
set interfaces openvpn vtun0 remote-host vpn.zaborona.help
set interfaces openvpn vtun0 openvpn-option "--nobind"
set int openvpn vtun0 openvpn-option "--tun-mtu 1500"
set int openvpn vtun0 openvpn-option "--mssfix 1450"
set int openvpn vtun0 openvpn-option "--sndbuf 524288"
set int openvpn vtun0 openvpn-option "--rcvbuf 524288"
set int openvpn vtun0 openvpn-option "--verb 3"
set interfaces openvpn vtun0 tls cert-file /config/auth/zaborona-help.crt
set interfaces openvpn vtun0 tls key-file /config/auth/zaborona-help.key
set interfaces openvpn vtun0 tls ca-cert-file /config/auth/zaborona-help-ca.crt

3. Створюємо правило NAT (якщо в системі вже створено правило NAT за номером "1", введіть інший номер, наприклад "10")

set nat source rule 1 description --==ZABORONA==--
set nat source rule 1 outbound-interface vtun0
set nat source rule 1 translation address masquerade

4. Активуємо конфігурацію та зберігаємо її

commit
save

13 трав. 2020 р.

Установка модуля мониторинга Host OS в iDrac в Proxmox

Для того чтобы iDrac отображал информацию о хосте необходимо доустановить в операционной системе два .deb пакета. Так как Dell в инсталляторе модуля не поддерживает ОС Debian, на базе которой построен Proxmox, пакеты можно установить вручную взяв их предварительно из инсталляционного образа iDRAC Service Module for Linux. Нужны пакеты:

dcism-3.5.1-1949.ubuntu18.deb и dcism-osc-5.0.0-41.ubuntu18.deb

Нужно положить их в один каталог после чего выполнить команды в последовательности описанной ниже:

apt-get install libcurl4
dpkg -i dcism-osc-5.0.0-41.ubuntu18.deb
dpkg -i dcism-3.5.1-1949.ubuntu18.deb
systemctl start dcismeng


Нет доступа к диску после монтирования VeraCrypt в Windows запущенной на Mac

Если у вас возникла проблема с доступом в смонтированный контейнер VeraCrypt под управлением Windows установленной через Bootcamp или создание нового контейнера с файловой системой NTFS:

Перейдите в каталог C:\Windows\System32\ drivers" и переименуйте appleHFS.sys, например в appleHFS.sys.bak После чего перезагрузите компьютер.

12 трав. 2020 р.

Настройка изолированного сервера Proxmox после установки


--------------------------------------------------------------
Базовые настройки
--------------------------------------------------------------

При наличии достаточного количества ОЗУ, для уменьшения нагрузки на ЦП отключаем службу KSM

systemctl disable ksmtuned

Отключаем и удаляем раздел Swap, а также раздел Data

swapoff -a
lvremove /dev/pve/swap
lvremove /dev/pve/data

Создаем раздел Swap размером 2 Гб и подключаем его

lvcreate -n swap -L 2G pve
mkswap -L swap /dev/pve/swap
swapon -a

Увеличиваем файловую систему до максимального размера

lvresize -l +100%FREE /dev/pve/root
resize2fs /dev/mapper/pve-root

--------------------------------------------------------------
Ограничение использования Swap
--------------------------------------------------------------

Задаем порог помещения в Swap

sysctl -w vm.swappiness=0
sysctl -p

Переподключаем раздел Swap

swapoff -a
swapon -a

Автоматизируем параметры использования Swap раздела при перезагрузке

nano /etc/sysctl.conf
vm.swappiness = 0

Создаем файл rc.local с запретом неконтролированного помещения данных в Swap

nano /etc/rc.local

Помещаем содержимое скрипта в созданный файл rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# fix for proxmox kernel swappiness problem
for i in $(/usr/bin/find /sys /var/lib 2>/dev/null | /bin/grep slice | grep swappiness) ; do [ -f ${i} ] && /bin/echo 0 > ${i} ; done
exit 0

Делаем файл rc.local исполняемым

chmod +x /etc/rc.local

Создаем файл автозапуска файла rc.local

nano /etc/systemd/system/rc-local.service

Помещаем содержимое скрипта в созданный файл rc-local.service

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
After=pve-cluster.service

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Делаем файл rc.local.service запускаемым при старте системы и и запускаем его вручную

systemctl enable rc-local
systemctl start rc-local.service

--------------------------------------------------------------
Обновление и установка дополнительного ПО
--------------------------------------------------------------

Создаем файл не стабильного репозитория

touch /etc/apt/sources.list.d/pve-no-subscription.list

Заполняем файл репозитория ссылкой

echo 'deb http://download.proxmox.com/debian/pve buster pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Для версии Proxmox 7 заполняем файл репозитрория ссылкой

echo 'deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Комментируем использование коммерческого репозитория

sed -i 's/^/#/' /etc/apt/sources.list.d/pve-enterprise.list

Для версии Proxmox 8 заполняем файл репозитрория ссылкой

echo 'deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

echo 'deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Комментируем использование коммерческого репозитория ceph (только для версии PVE 8)

sed -i 's/^/#/' /etc/apt/sources.list.d/ceph.list

Обновляем систему

apt-get update
apt-get upgrade
apt-get dist-upgrade

Устанавливаем дополнительное ПО. ifupdown2 нужен для переконфигурирования сетевых интерфейсов без перезапуска сервера.

apt install screen mc nmon iotop ioping iptraf iftop speedometer htop nload ncdu ntfs-3g fio ifupdown2 openvswitch-switch

Очищаем ненужное

apt-get autoremove
apt-get autoclean

--------------------------------------------------------------
Локализация консоли
--------------------------------------------------------------

dpkg-reconfigure locales

Выбираем ru_RU.UTF-8 UTF-8 и нажимаем Ок
В следующем окне выбираем ru_RU.UTF-8 и нажимаем Ок

dpkg-reconfigure console-setup

Выбираем UTF-8 и нажимаем Ок
Выбираем Cyrillic — non-Slavic languages и нажимаем Ок
Выбираем Fixed и нажимаем Ок
Выбираем 8х16 и нажимаем Ок

--------------------------------------------------------------
Отключаем окно предупреждения о отсутствии лицензии
--------------------------------------------------------------

Делаем резервную копию оригинального файла

cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak

Комментируем строку проверяющую лицензию

sed -i "s/getNoSubKeyHtml:/getNoSubKeyHtml_:/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

--------------------------------------------------------------
Скачиваем драйвера Virtio
--------------------------------------------------------------

wget -P /var/lib/vz/template/iso https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

--------------------------------------------------------------
Настройка NAT и DHCP на хосте
--------------------------------------------------------------

1. Создаем новый Bridge, например vmbr1 и назначаем ему IP адрес, например 192.168.158.1./24
В настройки созданного бриджа добавляем:

hwaddress ether ab:cd:12:34:56:78

Это нужно для того чтобы виртуальные машины Windows при перезапуске каждый раз не обнаруживали новую сеть.

В конец файла /etc/network/interfaces добавляем следующие правила

#Разрешаем маршрутизацию между интерфейсами
post-up echo 1 > /proc/sys/net/ipv4/ip_forward

#Разрешаем Source NAT из локальной сети 192.168.158.0/24 
post-up iptables -t nat -A POSTROUTING -s '192.168.158.0/24' -o vmbr0 -j MASQUERADE

#Если необходимо, например, пробросить RDP внутрь виртуальной машины с наружного порта 49389 на внутренний 3389. Создаем правила tcp и udp. В правиле указываем интерфейс - бридж на котором назначен внешний IP.
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m tcp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389
post-up iptables -t nat -A PREROUTING -i vmbr0 -p udp -m udp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389

#Удаляем правила при остановке
post-down iptables -t nat -D POSTROUTING -s '192.168.158.0/24' -o vmbr0 (enp1s0, eth0 или другие варианты) -j MASQUERADE
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp -m tcp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389
post-down iptables -t nat -D PREROUTING -i vmbr0 -p udp -m udp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389

Устанавливаем dhcp и dns сервер dnsmasq

apt install dnsmasq

Редактируем конфигурационный файл dnsmasq

nano /etc/dnsmasq.conf

Добавляем в конец файла

interface=vmbrl
listen-address=192.168.158.1
dhcp-range=interface:vmbr1,192.168.158.101,192.168.158.199,255.255.255.0,12h
dhcp-option=interface:vmbr1,3,192.168.158.1
dhcp-option=interface:vmbr1,6,192.168.158.1
dhcp-option=interface:vmbr1,15,pve.lan

Перезапускаем dnsmasq /etc/init.d/dnsmasq restart

--------------------------------------------------------------
Инициализация новых дисков в системе
--------------------------------------------------------------

Очистка информации, иницализация в GPT и создание одного раздела типа LVM

sgdisk /dev/sdX -Z -U -R -N 1 -t 1:8e00

Очистка информации, иницализация в GPT и создание одного раздела типа Linux Filesystem

sgdisk /dev/sdX -Z -U -R -N 1 -t 1:8300

--------------------------------------------------------------
Создание тома LVM Thin
--------------------------------------------------------------

Мне не нравится как Proxmox создает lvm thin через веб интерфейс, поэтому делаю это вручную. lvm thin нужен для работы снепшотов.

Создание физического тома (PV)

pvcreate /dev/sdX1

Создание группы томов (VG)

vgcreate volume_group_name /dev/sdX1

Создание раздела Meta (высчитывается как 1% от емкости дисковой группы)

lvcreate -L XG volume_group_name

Создание раздела свободного пространства для расширения раздела Meta в случае завершения в нем места. Минимум 1 Гб

lvcreate -L XG volume_group_name

Создание раздела Data (оставшееся свободное пространство)

lvcreate -l +100%FREE volume_group_name

Удаление раздела свободного места для расширения раздела Meta

lvremove volume_group_name/lvol1

Пример для диска объемом 6 Тб

pvcreate /dev/sdb1
vgcreate data /dev/sdb1
lvcreate -L 15G data
lvcerate -L 5G data
lvcreate -l +100%FREE data
lvremove data/lvol1

Конвертация раздела LVM в разреженный том (Thin Pool) без дублирующего раздела для Meta - pmspare (Данный раздел позволяет восстановить данные в случае повреждения раздела Meta)

lvconvert --type thin-pool --poolmetadataspare n --poolmetadata volume_group_name/lvol0 volume_group_name/lvol2

Переименование раздела lvm thin

lvrename /dev/volume_group_name/lvol2 /dev/volume_group_name/volume_new_name

Увеличение раздела Meta при отсутствии в нем свободного места

lvextend --poolmetadatasize +1G volume_group_name/volume_name