Сегодня расскажу как без лишних ухищрений поднять недорогой, но достаточно мощный видовс дедик. Как обычно - отказоустойчивое, с бекапами и прочими ништяками. Для чего это может быть нужно? Да на что фантазии хватит:
Это лично мои кейсы, что в голову сейчас пришли. Поехали!
Когда впервые столкнулся с необходимостью завести такой дедик под зенку, я немного растерялся: коробочные решения мало того, что включали в себя ЕЖЕМЕСЯЧНУЮ плату за лицензию винды, так еще и сетап стоил дороже. И не на каждую железку ставили эту винду. к тому же, ставили только серверный дистрибутив (что накладывает некоторые ограничения на доступный софт). Ну и вишенка на торте - в случае отказа (синий экран и другие проблемы с ОС) помочь может только саппорт либо же самостоятельно заказывать консоль (за деньги) и ждать (хецнер в то время обещал срок предоставления что-то около недели). Ну и в случае смерти ОС - никаких бекапов нет (скорее всего). Не наш путь.
Но есть и другие, более приятные методы. Один из них виртуализация с Proxmox. Суть метода в том, что мы ставим на физическую железку не саму винду, а гипервизор (вроде VirtualBox или VMWare), и уже на него ставим винду. Звучит сложно? А на деле все сильно проще и удобнее, чем ставить ос непосредственно на железку. Ну а что потери производительности? Лично мои реальные замеры не показали хоть какой-то значительной разности: все на уровне погрешности.
Рассматривать все буду на примере хостинга от Hezner.
Можно взять с аукциона - тут нет (ну точно не было) setup fee.
Тут бы я рекомендовал сразу при установке задать hostname. Меньше возни будет после.
Устанавливаем правильные hostname.
Это крайне важный шаг! Не сделав его, можно долго удивляться "а чего же оно не работает?" Проверено на себе.
Проверяем текущий хостнейм
hostname
Проверяем, что у нас в файле
cat /etc/hosts
тут ОБЯЗАТЕЛЬНО должны быть 2 строки
127.0.0.1 localhost.localdomain localhost
<IP дедика> <текущий хостнейм>
Если не так - меняем
Устанавливаем пароль для root
passwd root
И вводим новый пароль. Он нам потребуется для авторизации в админке.
Просто вводим по одной эти команды в консоль
echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
apt update && apt full-upgrade
apt install proxmox-ve postfix open-iscsi apt remove os-prober
apt install nano mc rinetd -y
В любимом браузере переходим на
https://<IPсервера>:8006
СТРОГО HTTPS!
И авторизуемся с кредами root и пароль из 3 шага
Загружаем ISO образ Win 10 (НЕ СЕРВЕР - он нам не нужен) в
/var/lib/vz/template/iso
Пока он грузится, настроим сеть. Переходим
и приводим к такому виду
где 192.168.22.1/24 - наша внутренняя сеть. Эстеты могут использовать другие. Сохраняем и ждем загрузки образа. После этого нужно будет перезагрузить сервер! (но не сейчас)
А когда образ загрузился, перейдем к созданию виртуальной машины. В правом верхнем углу ищем синюю кнопку "Create VM".
General Водим name создаваемой машины.
OS Выбираем ISO Image (тот, что мы загрузили). "Guest OS" -> "Microsoft Windows" "10/2016". Далее.
System пропускаем.
Hard Disk Disk size (GiB): размер диска в гигабайтах. Cache: Write back (unsafe)
CPU Type: host. И ставим галку "Advanced" и там активируем "Enable NUMA". Advanced можно отключить.
Memory Сколько ОЗУ выделить этой виртуалке. В любом случае рекомендую оставить не менее 1,5 Гб для основной системы.
Network Bridge: ранее созданный нами бридж. Обычно vmbr0
Confirm Проверяем настройки и кликаем Finish
Вот теперь перезагружаем хост. Можно сделать это через консоль, а можно и кнопкой "Reboot" справа наверху.
После перезагрузки логинимся в админку и ищем в левом меню нашу виртуалку. Кликаем по ней и запускаем кнопкой "Start" справа наверху. Можно сразу открыть VNC консоль (через нее и будем ставить): кнопка "Console" справа наверху. Ждем приглашения установщика и запускаем установку.
переходим в ssh консоль и редактируем файл
/etc/rinetd.conf
приводим его к виду
logfile /var/log/rinetd.log
<IPсервера> <портRDP> 192.168.22.100 3389
Немного комментариев. Этот демон только и делает, что перекидывает пакеты с одного интрефейса на другой. Можно использовать iptables, но мне больше по душе делать именно так. Порт можно оставить и дефолтным, но я его всегда меняю на какой-то рандомный - пускай в начале найдут, что ломать =) 192.168.22. - это внутренняя сеть на бридж-адаптере, который мы создали чуть ранее. 100 - это ИД новой виртуалки: они нумеруются со 100. Это просто для удобства: чтоб потом понять что и куда у нас прокидывается. Запускаем:
systemctl start rinetd && systemctl enable rinetd
и заодно активируем NAT.
ip a
и ищем адаптер, на котором висит наш основной ип. В моем случае - eno1
Далее пишем в консоль
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -D POSTROUTING -s '192.168.22.0/24' -o eno1 -j MASQUERADE
Переходим в свойства системы и активируем удаленный доступ. Так же, настраиваем IP на сетевом адаптере. Пишем ип 192.168.22.100 шлюз (gateway) 192.168.22.1 и днс 1.1.1.1 и 8.8.8.8. Сохраняем.
На этом этапе уже можно пробовать логиниться по RDP: уже должно работать. Лично у меня на таких дедиках чаще сидят группы работников, потому ограничение на одну активную RDP сессию неприемлемо. Скачиваем RDPWarpper и подкидываем ему этот конфиг (выложу чуть позже). Собирал сам в сети по кусочкам, использую в продакшене - работает. Вроде должна быть поддержка последних билдов Win10 Pro, но это не точно.
На этом, собственно - все. Proxmox умеет делать разные бекапы. В случае отказа - просто загружаем ОС в безопасном режиме и восстанавливаем работу. Ну и никто посторонний не залезет. Все просто и надежно. Если что-то еще вспомню - допишу.
Удачи, камрады.