Задача стоит простая, — настроить все бизнес-процессы, ну там чтоб сайт был, почта, какие-то чатики, деловые переписки, файлохранилище, документооборот, вот это вот всё. Чтобы это было видно в интернетах, защищено от атак, ну и так далее.
Зачастую люди не готовы пердолить консоль, я даже больше скажу, за всё время разъездов по дата-центрам Москвы и общению с клиентами, обслуживающим персоналом, мне ещё не довелось встретить шарящего в теме человека. Нету таких вот, идейных задротов, чтобы что-то с нуля смог реализовать. Поднять и настроить целый филлал под ключ.
Всё сводится к тому, что клиент берёт сервер за 100500 рублей, арендует к нему место в стойке в дата-центре, где каждый юнит на вес золото, где каждый сетевой порт (ethernet, SFP) стоит денег, где каждый блок питания 500W / 800W / 1400W стоит денег. Ещё есть всякие third-party услуги по защите от всяких DDoS-атак, и прочая, прочая, прочая. Не брезгует клиент и платить за какой-то стрёмный софт, когда при желании можно написать собственную реализацию на коленке.
Я как доморощенный админ локалхоста искренне поражён ценовой политикой вот этого всего, подходом к решению задач системных администраторов сидящих на зарплате. Задачи простые, а пути их решения, и деньги, которые за это просят ну просто космос!
И сейчас я буду демпинговать всю это фигню. Значится так.
Вместо дорогостоящей аренды стойки в дата-центре Москвы, с выделенным интернет-каналом и опциональной защитой от DDoS, я рекомендую арендовать VDS-сервер за 200-300 рублей, не дороже.
1 ядро, 1гб памяти, канал 100мбит, диск 10гб под систему — этого хватит с головой для нашего столичного филлиала.
Задача перед арендованной VDS стоит крайне простая:
- Предоставлять интернет-канал наружу;
- Служить одноразовым «презервативом» для защиты от внешних угроз;
- Внешний IP-адрес.
Всё общение с внешним миром, как наружу, так и во внутрь нашей сети, происходит через VDS. В случае обнаружения сетевой атаки по каналу VDS задача перед админом стоит простая: обрубить конец. И взять другую VDS, за те же 200 рублей, с новым IP-адресом.
Зачем, скажите мне, тратиться на дорогостоящие услуги по защите от DDoS, если можно менять эти одноразовые VDS «как перчатки»?
Думаю суть ясна. Идём дальше.
Вся наша корпоративная сеть сидит за провайдерским NAT'ом. Нам не нужно, чтобы наша сеть была видна из интернетов. Вот прям вообще. Просто ходим в интернет через провайдера как обычно. От услуги внешнего IP-адреса отказываемся напрочь. Только NAT!
Подключение нашего столичного филлиала происходит следующим образом: стучимся в какую-нибудь квартиру неподалёку от нашего офиса, за тортик или же за себестоимость интернет-тарифа просим физическое лицо подключиться к его домашнему интернету, - таким образом мы сэкономили целое состояние на тарифах для юридических лиц! И спокойно тянём воздушку себе в офис, желательно использовать оптическое волокно, чтобы не собиралось статическое электричество. Можно обойтись и Wi-Fi, но это дороже и не надёжно.
С интернет-каналом вопрос решён. Дальше.
Вместо дорогостоящего сервера, HP DL360 Gen9, стоимость минимальной конфигурации которой начинается от 100,000 рублей, достаточно взять обычный стационарный компьютер в любом компьютерном магазине для запуска виртуалок. Сервер DEXP в конфигурации Intel Core i3 и 48гб памяти с гарантией 3 месяца нам хватит с лихвой.
Компьютер, хост, на котором производится запуск виртуалок, должен быть тупо запускалкой виртуалок и не более того. Сам по себе никаких сервисов не крутит. Так же, не нужно громоздить никаких тоннелей, бриджей и прочего. Просто запускается виртуалка с параметрами по-умолчанию чтобы она тоже могла зайти в интернет как рядовой компьютер. Этого хватит. Мы за NAT'ом, помните?
В идеале, на компьютере для работы нужно всего два диска в зеркальном mdadm RAID 1 для хранения информации, — образов дисков виртуальных машин. Можно обойтись одним диском, но тогда образы дисков нужно будет бэкапить вручную.
Опционально, на третий диск можно установить хост-систему, по желанию, это будет proxmox, esxi, или же что-то своё. Но так же можно и сэкономить на диске, если воспользоваться моим инструментом booty и собрать систему запускающую виртуалки самому, и загружаться в неё прямиком в оперативную память с флешки.
Грубо говоря, одного HDD под виртуалки хватит.
По итогу что мы имеем.
- Одноразовая VDS за 200 рублей с внешним IP-адресом, дропается в случае обнаружения атаки;
- Компьютер DEXP для запуска виртуальных машин под служебные нужды; опционально таких серверов можно купить сколько потребуется по мере роста предприятия и бизнес-процессов.
- Интернет в офис из соседней квартиры.
А теперь вишенка на торте.
Для того, чтобы наш бизнес заработал, осталось только подключить все виртуалки к сети, к той самой VDS, использовать для этого мы будем VPN WireGuard!
Мы включаем компьютер, запускаем виртуалки, устанавливаем ОС, настраиваем, то, сё, пятое-десятое, чики-брики, дело в шляпе.
На VDS приступаем к настройке WireGuard:
# umask 0077
# wg genkey > privatekey
# wg pubkey < privatekey > publickey
# umask 0022
На каждой виртуальной машине с доступом в интернет проделываем тоже самое.
# umask 0077
# wg genkey > privatekey
# wg pubkey < privatekey > publickey
# umask 0022
Затем на VDS настраиваем WireGuard:
# ip link add dev wg0 type wireguard
# ip addr add 192.168.254.1/24 dev wg0
# wg set wg0 listen-port 51820 private-key "./privatekey"
# wg set wg0 peer "копируем сюда publickey из виртуалки" allowed-ips 192.168.254.0/24
# последнюю команду повторять, добавить каждый publickey каждой из виртуалки
На каждой виртуалке с доступом в интернет мы настраиваем WireGuard:
# ip link add dev wg0 type wireguard
# ip addr add 192.168.254.2/24 dev wg0 # двоечку меняем по количеству виртуалок например
# wg set wg0 listen-port 51820 private-key "./privatekey"
# wg set wg0 peer "копируем сюда publickey из vds" endpoint "IP-адрес-VDS:51820" allowed-ips 192.168.254.0/24
Поздравляю! Ваш столичный филиал готов к работе!
# ping 192.168.254.1
PING 192.168.254.1 (192.168.254.1) 56(84) bytes of data.
64 bytes from 192.168.254.1: icmp_seq=1 ttl=64 time=10.4 ms
^C
--- 192.168.254.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 10.361/10.361/10.361/0.000 ms
# wg
interface: wg0
public key: 5yeOjvLxfD9jicztCMQvarfBHHaI0t31BlJZBjmx8kg=
private key: (hidden)
listening port: 51820
peer: lmjidCVduFcrORW+fkEDK6LsXGBANRe5WZWyg7nO3gU=
endpoint: 82.146.61.33:51820
allowed ips: 192.168.254.0/24
latest handshake: 2 seconds ago
transfer: 1.55 KiB received, 2.02 KiB sent
Что делать дальше — вы знаете.
У нас есть VDS, которая выступает мастер-нодой с VPN, к ней подключаются все виртуальные машины по VPN, на которой происходят бизнес-процессы.
Это обычная внутренняя локальная сеть, на которой отдельными виртуалками вы всё так же настраиваете веб, почту, а правилами iptables управляете доступом.
На одну виртуалку установили веб-сервер, тут-же правилом iptables добавили forwarding всех запросов с VDS на эту виртуалку.
Ещё виртуалка — настроили почту, сделали forwarding почты с VDS на порт виртуалки.
Всё просто! И главное, всё это дело легко переносимо. Перенесли файл с образом виртуалки на другой компьютер, да даже личный ноутбук, запустили — она тут-же подсосалась к VPN на VDS и продолжает делать свою работу!
А вам не жалко будет потерять копеечную VDS и взять другую, развернуть всё уже готовое из ISO-образа (см. booty).
...
Зачем?! Зачем люди продолжают покупать дорогостоящее серверное оборудование, арендовать стойки в дата-центрах, платить бешеные данные за создание сетевой инфрастуктуры для своего бизнеса, если всё решается ТАК ПРОСТО!?
Готов стать админом на вашем предприятии и сделать всё с нуля под ключ, контакты в профиле. =)