Odp: Mikrotik wireguard (klient) i dostęp zdalny
0.0.0.0/0 ?
Podróżne : GL.Inet MT3000 +1TB hdd
Działka : rb260gs 1j wdm 1Gb+ ruckus r310 + nb m5 + kilka kamer ip + panel 285Wp + lifepo4 12v 60Ah .
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Inne → Mikrotik wireguard (klient) i dostęp zdalny
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
0.0.0.0/0 ?
Aby nie było już chaotycznie to może napiszę jak to u mnie wygląda.
Jest serwer wireguard postawiony na zewnętrznym vpsie w którym mam dodanych 3 klientów wireguard
10.9.0.1 - adres serwera wireguard
10.9.0.2 - komputer z windowsem
10.9.0.10 - mikrotik 1
10.9.0.11 - mikrotik 2
Chcę dostać się do lanu na mikrotiku 2. Podsieć do 192.168.11.0/24
Na swoim kliencie spróbowałem ustawienia AllowedIPS = 0.0.0.0/0 jak również jak sugerował wcześniej Cezary odznaczyłem opcję "zabezpiecz ruch sieciowy" i wtedy AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
Na wszystkich klientach mam EndPoint = adres vps'a (adres serwera wireguard).
Według tego opisu wydaje mi się że w moim przypadku powinienem zastosować konfigurację RoadWarrior bo nie chcę na stałe łączyć 2 podsieci LAN.
https://help.mikrotik.com/docs/display/ … uardtunnel
Ustawienia firewalla dla klienta wg 10.9.0.11
[admin@RouterOS] /ip/firewall> export compact
# jun/25/2023 09:12:36 by RouterOS 7.9
# software id = 946B-8CC1
#
# model = RB941-2nD
# serial number = D1130FF49165
/ip firewall filter
add action=accept chain=input src-address=192.168.11.0/24
add action=accept chain=forward in-interface-list=LAN out-interface-list=WAN
add action=accept chain=forward dst-address=192.168.11.0/24 in-interface=wireguard1
add action=accept chain=forward connection-nat-state=dstnat
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=accept chain=input dst-port=55055 protocol=udp
add action=accept chain=input in-interface=wireguard1 protocol=tcp
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" disabled=yes ipsec-policy=out,none out-interface-list=WAN
add action=dst-nat chain=dstnat dst-address=10.9.0.11 dst-port=5900 protocol=tcp to-addresses=192.168.11.21 to-ports=5900
add action=dst-nat chain=dstnat dst-address=10.9.0.11 dst-port=5900 protocol=udp to-addresses=192.168.11.21 to-ports=5900
[admin@RouterOS] /ip/firewall> Konfiguracja serwera wireguard
root@serwer:~# cat /etc/wireguard/wg0.conf
[Interface]
Address = 10.9.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 55055
PrivateKey = klucz
[Peer]
PublicKey = klucz
AllowedIPs = 10.9.0.2/32
Endpoint = x.x.x.x:55055
PersistentKeepalive = 25
[Peer]
PublicKey = klucz 2
AllowedIPs = 10.9.0.10/32
PersistentKeepalive = 25
[Peer]
PublicKey = klucz 3
AllowedIPs = 10.9.0.11/32, 192.168.11.0/24
Endpoint = x.x.x.x:55055
PersistentKeepalive = 25gdzie x.x.x.x - to ip serwera vps
W sumie to nie wiem czy ten Endpoint jest tutaj potrzebny bo dla 10.9.0.10 tego nie ma i też działa.
Może coś trzeba dopisać w AllowedIPs na serwerze ?
Patrząc na wpis z tego wątku
https://eko.one.pl/forum/viewtopic.php?id=22463
Prawdopodobnie w moim przypadku rozchodzi się też o "list allowed_ips" gdzie dla poszczególnych klientów mam 10.9.0.x/32
Czyli jeśli mam sieć LAN (192.168.11.0/24) na adresie 10.9.0.11 to powinienem w allowed_ips wpisać 10.9.0.11/32, 192.168.11.0/24 ?
Konfig mojego serwera na debianie wygląda tak:
[Interface]
Address = 10.9.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 55055
PrivateKey = xxx
[Peer]
PublicKey = xxx
AllowedIPs = 10.9.0.2/32
Endpoint = x.x.x.x:55055
PersistentKeepalive = 25
[Peer]
PublicKey = xxx
AllowedIPs = 10.9.0.10/32
PersistentKeepalive = 25
[Peer]
PublicKey = xxx
AllowedIPs = 10.9.0.11/32
Endpoint = x.x.x.x:55055
PersistentKeepalive = 25Czy coś jeszcze na serwerze powinienem zmienić ?
Był mikrotik i nagle serwer na debianie? Co w końcu konfigurujesz? I czy ten debian jest router w wyjściem w internet czy to tylko host w sieci lan do której chcesz mieć dostęp a gateway jest gdzieś indziej?
Serwer wireguard jest na debianie.
Dwóch klientów mam na Mikrotiku (10.9.0.10, 10.9.0.11)
Jednego klienta na windowsie 10 (10.9.0.2) z którego chciałbym się dostać do sieci LAN po stronie 10.9.0.11. Podsieć ta to 192.168.11.0/24
Serwer na debianie jest postawiony na vpsie. Jest bezpośrednio widoczny pod jakimś zewnętrznym adresem ip typu 45.141.x.x
Czy na serwerze/debianie przy peerze 10.9.0.11 musisz w allowedIPs dodać 192.168.11.0/24 i albo na 10.9.0.2 dodajesz całą trasę przez wg (0.0.0.0/0) albo też wskazujesz 192.168.11.0/24 i w allowedips.
Jeśli na kliencie 10.9.0.11 chcę dodać AllowedIPS to mam wpisać tak
10.9.0.11/32, 192.168.11.0/24 ?
Jeżeli to config z plikiem testowym to tak, z przecinkiem.
Zauważ że w mikrotiku być może musisz jeszcze do firewalla dodać regułki zezwalające na ruch pomiędzy wg i siecią lokalną,
Trochę dziwna sprawa bo jak dopisałem w konfiguracji serwera wireguard (na debianie)
w AllowedIPs podsieć do której chce się dostać za klientem 10.9.0.11, tj 192.168.11.0/24
Wpis dla klienta 10.9.0.11 wygląda tak
[Peer]
PublicKey = xxx
AllowedIPs = 10.9.0.11/32, 192.168.11.0/24
Endpoint = x.x.x.x:55055
PersistentKeepalive = 25
to po po zrestartowaniu serwera wireguard poleceniem wg-quick down wg0 && wg-quick up wg0
tworzy się domyślna trasa do tej podsieci 192.168.11.0/24 a ja tak nie chcę bo na innych klientach np 10.9.0.10 też będzie taka sama podsieć.
Nie chcę żeby podsieć 192.168.11.0/24 była dostępna na serwerze.
Ma być dostępna dopiero po stronie klienta wireguard na windowsie.
Jak to można zrobić ?
Nie możesz. Zrób na każdym kliencie inną adresację bo prędzej czy później będziesz miał właśnie taki problem.
A jeśli nie mogę zmienić domyślnej sieci LAN to co mogę zrobić żebym po połączeniu się do serwera wireguarda mógł ręcznie ustawić routing statyczny dla danego drugiego klienta WG ?
W przypadku starego N2N'a to było do zrobienia bez problemu. Irytujące było tylko ręczne dopisywanie tych routingów statycznych na moim komputerze np. "route add 192.168.11.0 mask 255.255.255.0 10.9.0.11".
Jak chciałem połączyć się do innej podsieci 192.168.11.0 to najpierw usuwałem aktualny routing statyczny poprzez
route delete 192.168.11.0 i później dodawałem nowy j.w czyli
route add 192.168.11.0 mask 255.255.255.0 10.9.0.10
Po drugiej stronie nie trzeba było nic robić.
Możesz sobie dowolnie zrobić trasy statyczne kierujące ruch jaki chcesz do interfejsu WG.
Jeśli w konfiguracji serwera wireguard dla danego klienta 10.9.011 nie mam dopisanego AllowedIPs czyli mam
[Peer]
PublicKey = xxx
AllowedIPs = 10.9.0.11/32
to po wpisaniu routingu statycznego na windowsie (klient 10.9.0.2)
route add 192.168.11.0 mask 255.255.255.0 10.9.0.11
to nie działa mi ping do podsieci lan czyli np ping 192.168.11.21
Jeśli
[Peer]
PublicKey = xxx
AllowedIPs = 10.9.0.11/32, 192.168.11.0/24
to nic nie muszę wpisywać i ping 192.168.11.21 działa zarówno na windowsie jak i serwerze a potrzebuję jak opisałem wyżej.
Edit:
Znalazłem informację w jaki sposób mogę wyłączyć automatyczne tworzenie trasy routingu z AllowedIPS
https://www.reddit.com/r/WireGuard/comm … does_it_a/
Podpatrzyłem co się dzieje na serwerze wireguard jeśli w AllowedIPs mam wpisane 10.9.0.0/24, 192.168.11.0/24
Wtedy po resetarcie serwera wireguard pojawia się coś takiego
[#] wg showconf wg0
[#] ip link delete dev wg0
[#] iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.9.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] ip -4 route add 192.168.11.0/24 dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEOczywiście nie chce aby to się działo na serwerze bo w pozostałych klientach wireguard też przewiduję podobne podsieci 192.168.11.0/24
Z tego powodu chciałbym zestawić sobie routing po stronie swojego klienta wireguard na windowsie.
W jaki sposób mogę to zrobić ?
Wyłączenie nadawania routingu na serwerze mogę zrobić poprzez dopisanie
table=off w pliku /etc/wireguard/wg0.conf
A teraz co dalej.
Standardowe route add 192.168.11.0 mask 255.255.255.0 10.9.0.11 na windowsie nie działa.
Korzystając z tych stron
https://www.laroberto.com/remote-lan-ac … wireguard/
https://asheroto.medium.com/split-tunne … dfd86d5982
próbowałem dodać do swojego klienta wg coś takiego żeby w momencie połączenia zestawić routing ale niestety nie działa.
Konfiguracja klienta 10.9.0.2, tak żeby miał dostęp do podsieci 192.168.11.0/24 za klientem 10.9.0.11.
[Interface]
PrivateKey = xxx
Address = 10.9.0.2/32
DNS = 8.8.8.8
PostUp = powershell -command "$wgInterface = Get-NetAdapter -Name %WIREGUARD_TUNNEL_NAME%; route add 192.168.11.0 mask 255.255.255.0 10.9.0.11 IF $wgInterface.ifIndex metric 9999; Set-NetIPInterface -InterfaceIndex $wgInterface.ifIndex -InterfaceMetric 9999;"
PreDown = powershell -command "$wgInterface = Get-NetAdapter -Name %WIREGUARD_TUNNEL_NAME%; route delete 192.168.11.0 mask 255.255.255.0 10.9.0.11 if $wgInterface.ifIndex metric 9999; Set-NetIPInterface -InterfaceIndex $wgInterface.ifIndex -InterfaceMetric 9999;"
[Peer]
PublicKey = xxxx
AllowedIPs = 10.9.0.0/24, 192.168.11.0/24
Endpoint = ip_vps:55055
PersistentKeepalive = 25Ciekawy jest jeszcze wpis
https://www.procustodibus.com/blog/2020 … te-config/
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Inne → Mikrotik wireguard (klient) i dostęp zdalny
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc