Всем привет!
Очень нужен совет. Имеется два выделенных сервера, арендованных в Selectel. Сервера с приватной сетью. На серверах планируется поставить RDP сервер на Windows и сервер под базу данных. Сервера должны уметь общаться между собой. Плюс еще нужен безопасный доступ к RDP серверу. Как лучше на ваш взгляд все это организовать? Поставить на оба сервер Proxmox и на него виртуалки? Возможно ли при таком раскладе чтобы виртуалки с разных хостов Proxmox видели друг друга? Как обезопасить доступ RDP? Поднимать какой-то вирус калтный шлюз или как? Или вообще без Proxmox обойтись?
Поделитесь мыслями пожалуйста 🥺
Спасибо большое за советы и ответы! Очень помогли!
Расскажу как в итоге все получилось, может кому-нибудь еще пригодится.
Имеется два выделенных сервера, арендованных у Selectel. Сервера объединены в приватную сеть. На каждом сервере установлен Proxmox. У каждого сервера две сетевых карты, первая с внешним IP адресом, вторая для приватной сети. На первом сервере настроен NAT средствами Proxmox, для этого создано два Linux Bridge vmbr0 и vmbr1. У vmbr0 слейвом выступает сетевая карта с внешнем IP, у vmbr1 слейвом выступает сетевая карта для приватной сети, на нее назначен внутренний IP. Этот IP будет шлюзом для виртуальных машин. На втором сервере создан один Linux Bridge vmbr1, слейвом для него выступает карта для приватной сети, на него назначен IP адрес в той же подсети, что и для первого сервера. В итоге получается, что на втором сервере создаем виртуалку, назначаем ей сетевой итерфейс vmbr1, настраиваем сеть из приватной подсети, в качестве шлюза назначаем IP адрес Linux Bridge vmbr1 первого сервера. На первом сервере делаем все тоже самое, сетевой картой выступает vmbr1. В итоге получается, что виртуалки второго сервера выходят в Интернет через NAT первого сервера и доступны друг другу по внутренним IP. Далее мы уже можем рулить правилами на iptables первого сервера, городить виртуалки с VPN и т.д. По факту даже публичный адрес на втором сервере становится не нужен, его можно вообще отключить или ограничить доступ.
Принял решение поднять виртуалку за NAT Proxmox с OpenVPN, все будут подключаться только по VPN
1. В обязательном порядке на сервера поставил Proxmox и всю функциональность реализовывал бы только в виртуальных машинах. Так как есть приватная сеть, никаких дополнительных сложностей со взаимодействием виртуальных машин не будет. Делаем бридж на интерфейсах приватной сети и добавляем сетевые интерфейсы с этим бриджем виртуальным машинам. Они будут обращаться друг к другу напрямую.
2. На машине с терминальным сервером сделал бы отдельную виртуалку под шлюз. Все остальные виртуальные машины ходили бы в интернет через неё. В эту виртуалку прокинул бы сетевой интерфейс с внешним IP. Сами гипервизоры настроил бы только в приватной сети, чтобы они ходили в интернет тоже только через этот шлюз. Обязательно настроить автоматический запуск этой виртуальной машины.
3. На шлюзе настроил бы firewall и управлял доступом к виртуалкам и их доступом в интернет через него. На него же поставил бы Nginx для проксирования запросов к внутренним веб ресурсам.
4. Доступ к терминальному серверу реализовал бы либо с помощью Openvpn, если нужен прямой доступ через терминальный клиент, либо с помощью Guacamole, если будет достаточен такой режим работы на сервере через браузер. Настраивал бы это на шлюзе.
5. В отдельной виртуальной машине поднял бы Zabbix для мониторинга всего этого хозяйства и какую-то систему для сбора логов (ELK или Loki).
6. Если есть возможность по месту на дисках, на одном из серверов организовал бы вируталку под локальные бэкапы как самих виртуальных машин, так и сырых данных. С этой виртуалки забирал бы данные куда-то во вне. Если есть возможность поднять Proxmox Backup Server, поднял бы его для внешнего бэкапа виртуалок целиком.
- СУБД
- Терминальник
- Шлюз
- Мониторинг и логи
- Бэкап.
Раскидываются между серверами они в зависимости от ресурсов и нагрузки. Скорее всего СУБД и Мониторинг с логами это один сервер, Терминальник, Шлюз и Бэкап это второй сервер. При желании можно раздробить всё это на большее количество виртуальных машин. Мониторинг, Guacamole, Логи разнести по разным машинам. Это будет удобнее и безопаснее, но больше расходов по ресурсам и поддержке.
@zerox Спасибо большое за такой подробный ответ! А не получиться сделать так: на одной ножке Proxmox поднять NAT средствами Proxmox, а виртуалки на второй ноде ходили бы в интернет через этот NAT. Чтобы дополнительную виртуалку со шлюзом не делать, ресурсы там ограничены.
Если ресурсы ограничены, то простейшим шлюзом с NAT может быть сам гипервизор. Но настраивать там vpn или guacamole не очень хорошая идея. Я бы не стал так делать. Придётся тогда напрямую пробрасывать порт rdp в интернет для подключения клиентов. Это тоже плохо.
А если рассмотреть такой вариант: в качестве шлюза использовать CHR от MikroTik установленный на отдельную ВМ и с помощью нее уже настраивать взаимодействие вм через бриджи между собой и с внешней сетью?