Только что завел Wireguard приблизительно на 5 сервере за сегодняшний день. С учетом того, что моя любимая организация портит сеть по черному, задача не самая тривиальная, учитывая stateless соединения Wireguard
Для начала просто закрываю SSH и ставлю утилитки, все, как обычно.
Код:
dnf in wireguard-tools iptables mc traceroute lynx bind9-next-utils tcpdump
iptables -A INPUT -p tcp --dport 22 ! -s 77.37.184.187 -j DROP
echo "net.ipv4.ip_forward = 1">>/etc/sysctl.conf;sysctl -p
Ключи генерирую.
Код:
wg genkey | tee server_private_key | wg pubkey > server_public_key
wg genkey | tee client_private_key | wg pubkey > client_public_key
На стороне микротика как-то все было понятно, не слишком сильнее сложно и на стороне сервера. Просто создаем файлик /etc/wireguard/wg0.conf
Код:
[Interface]
PrivateKey = хххххххххххххххххххх
Address = 10.8.0.1/24
ListenPort = ххххх
PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens3 -j MASQUERADE
Table = off
[Peer]
PublicKey = хххххххххххххххххххх
PresharedKey = хххххххххххххххххххх
AllowedIPs = 0.0.0.0/0
Endpoint = 77.37.184.187:ххххх
Далее запускаем и включаем сервис
Код:
systemctl start wg-quick@wg0.service
route add -net 192.168.0.0/16 gw 10.8.0.2 metric 0 dev wg0
Все просто и работает с полпинка, когда работает. У меня не всегда работало.
Почему-то, мне кажется, что соединение одностороннее, то есть если микрот коннектился, то сервер Endpoint игнорировал. Хотя, в ответ на команду wg выводится, что пир присоединен, судя по небольшому времени последнего рукопожания. В общем, невозможно понять, работает оно нормально или нет и кто к кому подключился.
И совсем не понимаю, что такое AllowedIPs. Как я понял, это подсети, которые дозволительно рутить с пира-клиента. У меня почему-то никакие IP не проходили через WG пока я не разрешал все 0.0.0.0/0. Но тут выяснился замечательный прикол, что если какие-то адреса указываешь разрешенными, то автоматом WG рутит на свой интерфейс все эти самые адреса, а если попытаться указать 0.0.0.0/0, то... В общем, если посмотрите выше, я сервис не включаю, а запускаю только. В один прекрасный момент остался без связи с VPS и пришлось ее перезаливать. Чтобы рутинг не ломался, надо поставить Table = off. Бился, бился, так и не смог понять, почему если указать, например 10.8.0.2/32, то ничего не работает, хотя по умолчанию при поднятии интерфейса он NATит все, и кроме 10.8.0.2 в интерфейсе никого нет... В общем, если кто-то знает, прошу поделиться.