Admin
Администратор
Строим цепочку VPN с Wireguard/Amnezia
Зачем это нужно? Например, логи с некоего отработанного сервера оказываются в распоряжении правоохранителей и они обнаруживают там адрес вашего VPN. Дальше можно запросить информацию с ТСПУ на предмет кто в это время подключался к адресу обнаруженному в логах. Если VPN приватный, вы такой один, но даже если публичный, то сколько там будет одновременных подключений? максимум 100? получится круг из ста подозреваемых, которых можно обойти за один день. Если же подключение осуществлялоось через два адреса, то инфоормация с ТСПУ ничего не даст, надо будет получать контроль над вторым сервером, что кратно усложняет задачу идентификации.
К тому же, цепочкой можно объединить сколько угодно VPN, обеспечив очень высокий уровень анонимности (наврядли у расследователя будет возможность получить доступ ко всем серверам в цепочке).
Для примера рассмотрим связку из двух серверов (для увеличения звений цепочки достаточно повторить описанные шаги на других серваках).
И так, нам потребуется:
1. Подконтрольный сервер 1 (если находитесь на территории с ограничением, например РФ, то представляется разумным первым сервером делать AmneziaVPN, чтобы вырваться из зоны с ограничением, тогда первая связка будет AmneziaWG-WG, дальше можно делать просто WG-WG).
2. Подконтрольный сервер 2 или просто конфиг от стороннего провайдера WG (если вторым будет чужой сервер, то не получится продлить цепочку, но, в большинстве задач, цепочки из двух серверов окажется достаточно).
Подключаться к серверам будем по ssh. Процесс может быть разным, он описан как предыдущих инструкциях, так и легко гуглится.
И так:
1) ставим и поднимаем WG на первом и втором сервере (или просто берём конфиг для WG от второго сервера) - должно получиться два независимо работающих VPN- с Wireguard (если на первом сервере поднят AmneziaWG, то дополнительно к нему ещё нужно поставить обычный WG);
Теперь будем соединять оба VPN между собой:
2) поднимаем второй интерфейс на первом сервере с конфигом, полученном на втором сервере (т.е. к первому интерфейсу мы подключаемся со своего конечного оборудования, а со второго интерфейса будем коннектиться на второй сервер, пусть здесь, для примера, этот второй интерфейс называется wg1);
3) разрешаем маршрутизацию между интерфейсами
sysctl net.ipv4.ip_forward=1
4) и, самое главное, теперь добавляем правила в таблицы маршрутизации, которые позволят направлять весь трафик таким образом, чтобы траф, идущий в нашу сторону отправлялся напрямую на наше устройство, а траф, идущий от нас, уходил на второй свервер
ip rule add to YOUR.REAL.IP.ADDRESS table main priority 50
ip rule add iif amn0 table 100 priority 100
ip route add degault dev wg1 table 100
(здесь YOUR.REAL.IP.ADDRESS - реальный айпишник конечного устройства; amn0 - интерфейс, к которому подключаемся на первом сервере с конечного устройства; wg1 - интерфейс, с которого первый сервер подключается ко второму серверу).
Вот, собственно, и всё, после этого связка должна заработать и, просто подключившись к первому серверу, вы будете светить только адрес второго сервера (или скколько там будет в цепочке).
Пытался сделать очень простую инструкцию, типа, "повторяй как написано", но в процесс понял, что это увеличит текст в несколько раз. Но, думаю, на форуме, в большинстве, собрались люди технически подкованные и самостоятельно прояснить не ясные моменты труда не составит.