diff --git a/wireguard_iproute_openwrt.txt b/wireguard_iproute_openwrt.txt index 8ce184b..ed49997 100644 --- a/wireguard_iproute_openwrt.txt +++ b/wireguard_iproute_openwrt.txt @@ -9,15 +9,15 @@ и если для PC оно может быть не так актуально, для soho роутеров - более чем. Wireguard может дать 50 mbps там, где openvpn еле тащит 10. Другая важная особенность - затрудненное обнаружение протокола системами DPI. -Но есть и дополнительное требование. Wireguard работает в ядре, значит ядро должно -быть под вашим контролем. vps на базе openvz не подойдет ! Нужен xen, kvm, -любой другой вариант, где загружается ваше собственное ядро, а не используется -общее, разделяемое на множество vps. В openvz вам никто не даст лезть в ядро. +Но есть и дополнительное требование. Wireguard работает в ядре, значит ядро должно +быть под вашим контролем. vps на базе openvz не подойдет ! Нужен xen, kvm, +любой другой вариант, где загружается ваше собственное ядро, а не используется +общее, разделяемое на множество vps. В openvz вам никто не даст лезть в ядро. Понятийно необходимо выполнить следующие шаги : 1) Поднять vpn сервер. 2) Настроить vpn клиент. Результат этого шага - получение поднятого интерфейса vpn. -Будть то wireguard, openvpn или любой другой тип vpn. +Будь то wireguard, openvpn или любой другой тип vpn. 3) Создать такую схему маршрутизации, при которой пакеты, помечаемые особым mark, попадают на vpn, а остальные идут обычным способом. 4) Создать правила, выставляющие mark для всего трафика, который необходимо рулить на vpn. @@ -82,6 +82,10 @@ Endpoint обязательно должен быть прописан толь менять ip и быть за nat. Endpoint пира настраивается динамически после успешной фазы проверки ключа. +Включаем маршрутизцию : +# echo net.ipv4.ip_forward = 1 >>/etc/sysctl.conf +# sysctl -p + Интерфейс конфигурится стандартно для дебианоподобных систем : --/etc/network/interfaces.d/wgvps------------- @@ -91,10 +95,17 @@ iface wgvps inet static netmask 255.255.255.0 pre-up ip link add $IFACE type wireguard pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf + post-up iptables -t nat -A POSTROUTING -o eth0 -s 192.168.254.0/24 -j MASQUERADE + post-up iptables -A FORWARD -o eth0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu + post-down iptables -D FORWARD -o eth0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu + post-down iptables -t nat -D POSTROUTING -o eth0 -s 192.168.254.0/24 -j MASQUERADE post-down ip link del $IFACE ---------------------------------------------- - + Поднятие через ifup wgvps, опускание через ifdown wgvps. +При поднятии интерфейса заодно настраивается nat. eth0 здесь означает интерфейс vpn сервера с инетовским ip адресом. +Если у вас какая-то система управления фаерволом, то надо настройку nat прикручивать туда. +Пример написан для простейшего случая, когда никаких ограничений нет, таблицы iptables пустые. Чтобы посмотреть текущие настройки wireguard, запустите 'wg' без параметров. @@ -191,9 +202,9 @@ config rule # ifconfig wgvps # ping 192.168.254.1 -Если все хорошо, должны ходить пинги. -С сервера не помешает : -# ping 192.168.254.3 +Если все хорошо, должны ходить пинги. +С сервера не помешает : +# ping 192.168.254.3 --- Маркировка трафика ---