|
|
@ -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 |
|
|
|
|
|
|
|
|
|
|
|
--- Маркировка трафика --- |
|
|
|