Страница 1 из 1

Wireguard

Добавлено: 13 апр 2023, 21:16
moskovskiy82
После того как на Андройде сделали какую то ..... встал вопрос какой VPN поднять.
Вроде как в 7ке есть wireguard - его и попробовал.

Mikrotik смотрит в инет с белым пушистым IP. Внутрянняя сеть 172.16.1.1/24
Домен привязанный к IP пусть пусть будет wg.ru

Конфигурация ниже. Что очень смушает. Начал ее экспортировать и в упор не вижу в /export публичного ключа wireguard. Это так и задумано?

Код: Выделить всё

# apr/13/2023 20:55:03 by RouterOS 7.8
# software id = PRJZ-XN1U
#
# model = RBD52G-5HacD2HnD
# serial number = CB380B807280
/interface bridge
add arp=reply-only fast-forward=no name="Guest WLAN"
add arp=proxy-arp name=bridge1
/interface ethernet
set [ find default-name=ether1 ] mac-address=xx:xx:56:A4:62:xx name=Internet rx-flow-control=auto tx-flow-control=auto
/interface l2tp-server
add name=Dacha user=xx
/interface wireguard
add listen-port=13231 mtu=1420 name=WireVPN
/interface list
add name=WAN
add name=LAN
/interface lte apn
set [ find default=yes ] ip-type=ipv4 use-network-apn=no
/ip ipsec policy group
add name=policy_group
/ip ipsec profile
set [ find default=yes ] enc-algorithm=aes-256,aes-192,aes-128,3des
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc,3des
/ip pool
add name=vpn ranges=172.16.1.30-172.16.1.40
add name="Guest WiFi" ranges=192.168.50.50-192.168.50.60
add name=DHCP ranges=172.16.1.50-172.16.1.99
/ip dhcp-server
add add-arp=yes address-pool="Guest WiFi" interface="Guest WLAN" name="Guest WiFi"
add add-arp=yes address-pool=DHCP interface=bridge1 name="DHCP Server"
/interface ppp-client
add apn=internet info-channel=3 name=ppp-out1 port=usb1
add apn=internet name=ppp-out2 port=usb1 user=mts
/ppp profile
add change-tcp-mss=yes local-address=vpn name=l2tp_profile remote-address=vpn
add change-tcp-mss=yes local-address=10.10.1.1 name=dachal2tp only-one=yes use-compression=no use-encryption=no
add local-address=172.16.1.1 name=ovpn remote-address=vpn
/routing bgp template
set default disabled=no output.network=bgp-networks
/routing ospf instance
add disabled=yes name=default-v2
add disabled=no name=default-v3 version=3
/routing ospf area
add disabled=yes instance=default-v2 name=backbone-v2
add disabled=yes instance=default-v3 name=backbone-v3
/interface bridge port
add bridge=bridge1 ingress-filtering=no interface=ether2 trusted=yes
add bridge=bridge1 ingress-filtering=no interface=ether3 trusted=yes
add bridge=bridge1 ingress-filtering=no interface=ether4 trusted=yes
add bridge=bridge1 ingress-filtering=no interface=ether5 trusted=yes
add bridge=bridge1 ingress-filtering=no interface=wlan2
add bridge=bridge1 ingress-filtering=no interface=wlan1
add bridge="Guest WLAN" ingress-filtering=no interface="Guest WiFi" pvid=10
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ip settings
set accept-source-route=yes max-neighbor-entries=8192 rp-filter=strict
/ipv6 settings
set max-neighbor-entries=8192
/interface l2tp-server server
set allow-fast-path=yes authentication=mschap1,mschap2 default-profile=dachal2tp enabled=yes use-ipsec=yes
/interface list member
add interface=Internet list=WAN
add interface=bridge1 list=LAN
add interface=Dacha list=LAN
/interface ovpn-server server
set auth=sha1 certificate=ovpn-server cipher=aes256-cbc,aes256-gcm default-profile=ovpn enabled=yes require-client-certificate=yes
/interface wireguard peers
add allowed-address=192.168.3.2/32 interface=WireVPN public-key="многобуквgyg="
/ip address
add address=172.16.1.1/24 interface=ether2 network=172.16.5.0
add address=192.168.50.1/24 interface="Guest WLAN" network=192.168.100.0
add address=192.168.3.1 interface=WireVPN network=192.168.3.1
/ip dhcp-client
add interface=Internet
/ip dhcp-relay
add dhcp-server=172.16.9.10 disabled=no interface=bridge1 name="relay"
/ip dhcp-server network
add address=172.16.1.0/24 dns-server=172.16.1.1,8.8.8.8 domain=ччч gateway=172.16.1.1
add address=192.168.50.0/24 dns-server=8.8.8.8 gateway=192.168.50.1
/ip dns
set allow-remote-requests=yes servers=8.8.8.8,8.8.8.8
/ip dns static
add address=172.16.1.1 name=router

/ip firewall filter
add action=accept chain=input comment="accept established,related,untracked" connection-state=established,related,untracked
add action=accept chain=input comment=Wireguard dst-port=13231 in-interface-list=WAN log=yes log-prefix=WIRE protocol=udp
add action=accept chain=input comment="OpenVPN Server" dst-port=1194 protocol=tcp
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=accept chain=input comment="accept ICMP" protocol=icmp
add action=accept chain=forward comment=Dacha dst-address=ч/24 in-interface=Dacha src-address=й/24
add action=accept chain=forward comment=Dacha dst-address=й.1 in-interface=Dacha src-address=й/24
add action=accept chain=input comment="allow IPsec NAT" dst-port=4500 protocol=udp
add action=accept chain=input comment="allow IKE" dst-port=500 protocol=udp
add action=accept chain=input comment="allow l2tp" dst-port=1701 protocol=udp
add action=accept chain=input comment="allow l2tp" dst-port=1723 protocol=tcp
add action=accept chain=input comment="IPSEC ESP" protocol=ipsec-esp
add action=accept chain=forward comment="allow pptp" dst-port=1723 protocol=tcp
add action=accept chain=input comment="allow sstp" disabled=yes dst-port=443 protocol=tcp
add action=drop chain=input comment="drop all not coming from LAN" in-interface-list=!LAN log-prefix=DROP
add action=accept chain=input comment=web disabled=yes dst-port=80 protocol=tcp
add action=log chain=forward disabled=yes dst-address=й log=yes log-prefix="FIRE OUT" src-address=!й/24
add action=log chain=forward disabled=yes dst-address=!й/24 log=yes log-prefix="FIRE IN" src-address=й
add action=accept chain=input comment=web dst-port=й protocol=tcp
add action=drop chain=forward comment="Guest WiFi only WAN" in-interface="Guest WLAN" log=yes log-prefix="GUEST WIFI" out-interface=!Internet
add action=drop chain=input in-interface-list=!LAN log-prefix=DROP
add action=drop chain=forward comment="defcon OLD  drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface=Internet \
    log-prefix=DROPNAT
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN

/ip route
add comment="Dacha VPN" disabled=no dst-address=й/24 gateway=й pref-src=й scope=10
/ip upnp
set show-dummy-rule=no
/ppp l2tp-secret

/ppp secret
/system logging
add prefix=wire topics=wireguard
/system note
set show-at-login=no
/system ntp client
set enabled=yes
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN




Изображение

Соответсвенно в настройках клиента

Копируем публичный ключ сервера в Mikrotik ->Peer
и vice versa.

Пробоем соединиться с мобильной сети (Что мегафон, что МТС)

Вроде как соединяется. Передано Кб получено байты...
В логе то что то проскакивает невнятно, то полная тишина.

В клиенте (Андроид) только бесконечно повторяющееся

RtgSchedManager: endActivityTrransaction: margin state not match

Уже всю голову сломал

Re: Wireguard

Добавлено: 13 апр 2023, 21:24
Erik_U
в разрешенные IP адреса добавить подсети, с которыми разрешено работать. Внутренняя сеть микротика, например.
А если разрешен 1 адрес, то только с ним и можно взаимодействовать.

Re: Wireguard

Добавлено: 13 апр 2023, 22:11
moskovskiy82
Erik_U писал(а): 13 апр 2023, 21:24 в разрешенные IP адреса добавить подсети, с которыми разрешено работать. Внутренняя сеть микротика, например.
А если разрешен 1 адрес, то только с ним и можно взаимодействовать.
Получается если внутряння сеть микротика 172.16.1.1 выделить подсеть 172.16.7.1/24 на wireguard? Вот только была проблема в том что даже 192.168.3.1 (адрес сервера WG) не пинговался

Re: Wireguard

Добавлено: 21 апр 2023, 13:46
Erik_U
Интерфейс WG - это отдельный интерфейс маршрутизатора, у него своя, отдельная от "внутренней сети" адресация.

Когда интерфейсу WG присваивается адрес (в IP/Adresses), то этот адрес должен принадлежать отдельной подсети.

А в настройках WG нужно указать подсети, которые этот интерфейс будет пропускать через себя (WG/Peers/Allowed Address). Те подсети, которые не указаны - не смогут передавать пакеты через WG. Указывать разрешенные подсети нужно с обоих сторон.

Если вы адреса присваиваете интерфейсам WG /32, то на сервере нужно разрешить 192.168.3.2/32, на клиента разрешить 192.168.3.1/32.

Re: Wireguard

Добавлено: 21 апр 2023, 22:39
moskovskiy82
Erik_U писал(а): 21 апр 2023, 13:46 Когда интерфейсу WG присваивается адрес (в IP/Adresses), то этот адрес должен принадлежать отдельной подсети.
А в настройках WG нужно указать подсети, которые этот интерфейс будет пропускать через себя (WG/Peers/Allowed Address). Те подсети, которые не указаны - не смогут передавать пакеты через WG. Указывать разрешенные подсети нужно с обоих сторон.
Если вы адреса присваиваете интерфейсам WG /32, то на сервере нужно разрешить 192.168.3.2/32, на клиента разрешить 192.168.3.1/32.
Так у меня вроде так и идет

Сервер микротик
/interface wireguard peers
add allowed-address=192.168.3.2/32 interface=WireVPN public-key="многобуквgyg="

Клиент чуть выше на скриншоте

Re: Wireguard

Добавлено: 22 апр 2023, 10:21
Erik_U
У этого правила
add action=accept chain=input comment=Wireguard dst-port=13231 in-interface-list=WAN log=yes log-prefix=WIRE protocol=udp
счетчик растет?
И что пишет лог?

Из-за того, что подсети с 2-х сторон WG разные, нужно маршруты прописывать и на клиенте и на микротике до второй стороны. Иначе они не знают, куда слать пакеты.

Или сделать одну подсеть для адресов с разных сторон (маску сети поменять), тогда все заработает без маршрутов.