1 (edytowany przez Graffy 2024-08-12 11:28:09)

Temat: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Proszę o nakierowanie na rozwiązanie.
Dwie sieci z publicznym IP, routery na OpenWrt.
Wireguard skonfigurowany wg. opisu @Cezarego
Tunel działa, mam dostęp do zasobów sieci "serwera" z klienta.

Co muszę zrobić aby tunel pozwalał także na połączenie w drugą stronę aby serwer miał dostęp do zasobów klienta?
Utworzyć analogicznie kolejny tunel wg1 ?

SERWER

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.10.1'
        option netmask '255.255.255.0'

config interface 'wg0'
        option proto 'wireguard'
        option private_key XXX
        option listen_port XXX
        list addresses '172.20.1.1/24'

config wireguard_wg0
        option public_key XXX
        option route_allowed_ips '1'
        list allowed_ips '172.20.1.10/32'
        option persistent_keepalive '25'
        option description 'ERX 2'

KLIENT

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '10.1.10.1'
        option netmask '255.255.255.0'

config interface 'wg0'
        option proto 'wireguard'
        option private_key XXX
        list addresses '172.20.1.10/32'

config wireguard_wg0
        option public_key XXX
        option route_allowed_ips '1'
        list allowed_ips '192.168.10.0/24'
        option endpoint_host XXX
        option endpoint_port XXX
        option persistent_keepalive '25'
        option description 'ERX'
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

2

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Nie, do serwera dodajesz list allowed_ips '10.1.10.0/24' i na firewallu zezwalasz na forwarding wg<>lan

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Cezary napisał/a:

do serwera dodajesz list allowed_ips '10.1.10.0/24'

Dodałem na serwerze:

config wireguard_wg0
        option public_key XXX
        option route_allowed_ips '1'
        list allowed_ips '172.20.1.10/32'
        list allowed_ips '10.1.10.0/24'
        option persistent_keepalive '25'
        option description 'ERX 2'



Cezary napisał/a:

na firewallu zezwalasz na forwarding wg<>lan

Na kliencie natomiast do firewalla:

config zone
        option name             wg
        option input            ACCEPT
        option forward          ACCEPT
        option output           ACCEPT
        option masq             1
        option network          'wg0'

config forwarding
        option src              wg
        option dest             lan

config forwarding
        option src              lan
        option dest             wg

Niestety nie działa, z serwera nie mogę spingować klienta 10.1.10.1

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

4

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

A coś innego poza pingowaniem działa? SSH? Zrestartowales serwer i klienta?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Po zmianach był reboot.
Ping i połączenie po SSH nie działa.
10.1.10.1 to router (peer) z OpenWrt

root@erx:~# wg show
interface: wg0
  public key: XXX
  private key: (hidden)
  listening port: XXX

peer: XXX
  endpoint: XXX
  allowed ips: 172.20.1.10/32, 10.1.10.0/24
  latest handshake: 22 seconds ago
  transfer: 6.79 KiB received, 10.93 KiB sent
  persistent keepalive: every 25 seconds

peer: XXX
  allowed ips: 172.20.1.11/32
  persistent keepalive: every 25 seconds
root@erx:~# ping 10.1.10.1
PING 10.1.10.1 (10.1.10.1): 56 data bytes
^C
--- 10.1.10.1 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
root@erx:~# ssh root@10.1.10.1
^C
root@erx:~#
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

6

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Pokaż

ip r

z serwera

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

default via 109.173.160.1 dev eth0  src 109.173.164.106 
10.1.10.0/24 dev wg0 scope link 
109.173.160.0/21 dev eth0 scope link  src 109.173.164.106 
172.20.1.0/24 dev wg0 scope link  src 172.20.1.1 
172.20.1.10 dev wg0 scope link 
172.20.1.11 dev wg0 scope link 
192.168.10.0/24 dev br-lan scope link  src 192.168.10.1 
192.168.20.0/24 dev br-guest scope link  src 192.168.20.1 
192.168.40.0/24 dev br-cctv scope link  src 192.168.40.1 
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

8

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Ten firewall zrobiłeś na serwerze czy kliencie? Na kliencie to ma być (także)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez Graffy 2024-08-13 08:10:29)

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Sprzęt to dwie sztuki ER-X z OpenWrt 23.05-SNAPSHOT, r24016-f791ec1f6d

@Cezary jak pisałeś na kliencie, serwer już miał to w firewallu.
Poniżej konfiguracja serwera, za moment dodam klienta.

SERWER

/etc/config/network 

config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config globals 'globals'
    option packet_steering '1'

config device
    option name 'br-lan'
    option type 'bridge'
    list ports 'eth1'
    list ports 'eth2'
    list ports 'eth4'

config device
    option name 'br-cctv'
    option type 'bridge'
    list ports 'eth3'

config device
    option name 'br-guest'
    option type 'bridge'
    list ports 'eth4.20'

config device
    option name 'eth0'
    option macaddr '70:5a:b6:b2:c8:92'

config interface 'lan'
    option device 'br-lan'
    option proto 'static'
    option ipaddr '192.168.10.1'
    option netmask '255.255.255.0'

config interface 'cctv'
    option device 'br-cctv'
    option proto 'static'
    option ipaddr '192.168.40.1'
    option netmask '255.255.255.0'

config interface 'guest'
    option device 'br-guest'
    option proto 'static'
    option ipaddr '192.168.20.1'
    option netmask '255.255.255.0'

config interface 'wan'
    option device 'eth0'
    option proto 'dhcp'
    option peerdns '0'

config interface 'wg0'
    option proto 'wireguard'
    option private_key 'xxx'
    option listen_port 'xxx'
    list addresses '172.20.1.1/24'

config wireguard_wg0
    option public_key 'xxx'
    option route_allowed_ips '1'
    list allowed_ips '172.20.1.10/32'
    list allowed_ips '10.1.10.0/24'
    option persistent_keepalive '25'
    option description 'ERX2'

config wireguard_wg0
    option public_key 'xxx'
    option route_allowed_ips '1'
    list allowed_ips '172.20.1.11/32'
    option persistent_keepalive '25'
    option description 'Pixel 8A'
/etc/config/firewall

config defaults
    option synflood_protect '1'
    option flow_offloading '1'
    option flow_offloading_hw '1'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'lan'
    list network 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'

config zone
    option name 'guest'
    list network 'guest'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'cctv'
    list network 'cctv'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'wg'
    option input 'ACCEPT'
    option forward 'ACCEPT'
    option output 'ACCEPT'
    option masq '1'
    option network 'wg0'

config zone
    option name 'wan'
    list network 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'

config forwarding
    option src 'lan'
    option dest 'wan'

config forwarding
    option src 'guest'
    option dest 'wan'

config forwarding
    option src 'cctv'
    option dest 'wan'

config forwarding
    option src 'wg'
    option dest 'wan'

config forwarding
    option src 'wan'
    option dest 'wg'

config forwarding
    option src 'wg'
    option dest 'lan'

config forwarding
    option src 'lan'
    option dest 'wg'

config rule
    option name 'Allow-DHCP-Renew'
    option src 'wan'
    option proto 'udp'
    option dest_port '68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow-Ping'
    option src 'wan'
    option proto 'icmp'
    option icmp_type 'echo-request'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-IGMP'
    option src 'wan'
    option proto 'igmp'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-IPSec-ESP'
    option src 'wan'
    option dest 'lan'
    option proto 'esp'
    option target 'ACCEPT'

config rule
    option name 'Allow-ISAKMP'
    option src 'wan'
    option dest 'lan'
    option dest_port '500'
    option proto 'udp'
    option target 'ACCEPT'

config rule
    option name 'Allow guest DHCP'
    option src 'guest'
    option proto 'udp'
    option src_port '67-68'
    option dest_port '67-68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow guest DNS'
    option src 'guest'
    option dest_port '53'
    option target 'ACCEPT'
    option family 'ipv4'
    option proto 'tcpudp'

config rule
    option name 'Allow cctv DHCP'
    option src 'cctv'
    option proto 'udp'
    option src_port '67-68'
    option dest_port '67-68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow cctv DNS'
    option src 'cctv'
    option dest_port '53'
    option target 'ACCEPT'
    option family 'ipv4'
    option proto 'tcpudp'

config rule
    option enabled '1'
    option name 'WIREGUARD'
    option src 'wan'
    option target 'ACCEPT'
    option proto 'udp'
    option dest_port 'xxx'

config redirect
    option name 'FORCE LAN DNS'
    option src 'lan'
    option dest 'lan'
    option src_dport '53'
    option dest_port '53'
    option target 'DNAT'

config redirect
    option name 'FORCE GUEST DNS'
    option src 'guest'
    option dest 'guest'
    option src_dport '53'
    option dest_port '53'
    option target 'DNAT'

config redirect
    option name 'FORCE CCTV  DNS'
    option src 'cctv'
    option dest 'cctv'
    option src_dport '53'
    option dest_port '53'
    option target 'DNAT'

config redirect
    option enabled '1'
    option target 'DNAT'
    option src 'wan'
    option dest 'cctv'
    option proto 'tcpudp'
    option src_dport 'xxx'
    option dest_port 'xxx'
    option dest_ip '192.168.40.10'
    option name 'CCTV HTTPs'

config redirect
    option enabled '1'
    option target 'DNAT'
    option src 'wan'
    option dest 'cctv'
    option proto 'tcpudp'
    option src_dport 'xxx'
    option dest_port 'xxx'
    option dest_ip '192.168.40.10'
    option name 'CCTV HTTP'
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

10

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

KLIENT

/etc/config/network 

config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config globals 'globals'
    option packet_steering '1'

config device
    option name 'br-lan'
    option type 'bridge'
    list ports 'eth1'
    list ports 'eth2'
    list ports 'eth3'

config device
    option name 'br-cctv'
    option type 'bridge'
    list ports 'eth4'

config interface 'lan'
    option device 'br-lan'
    option proto 'static'
    option ipaddr '10.1.10.1'
    option netmask '255.255.255.0'

config interface 'cctv'
    option device 'br-cctv'
    option proto 'static'
    option ipaddr '10.10.10.1'
    option netmask '255.255.255.0'

config interface 'wan'
    option device 'eth0'
    option proto 'dhcp'
    option peerdns '0'

config interface 'wg0'
    option proto 'wireguard'
    option private_key 'xxx'
    list addresses '172.20.1.10/32'

config wireguard_wg0
    option public_key 'xxx'
    option route_allowed_ips '1'
    list allowed_ips '192.168.10.0/24'
    option endpoint_host 'xxx.ddnsfree.com'
    option endpoint_port 'xxx'
    option persistent_keepalive '25'
    option description 'ERX'
/etc/config/firewall 

config defaults
    option synflood_protect '1'
    option flow_offloading '1'
    option flow_offloading_hw '1'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'lan'
    list network 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'

config zone
    option name 'cctv'
    list network 'cctv'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'wg'
    option input 'ACCEPT'
    option forward 'ACCEPT'
    option output 'ACCEPT'
    option masq '1'
    option network 'wg0'

config zone
    option name 'wan'
    list network 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'

config forwarding
    option src 'lan'
    option dest 'wan'

config forwarding
    option src 'cctv'
    option dest 'wan'

config forwarding
    option src 'wg'
    option dest 'lan'

config forwarding
    option src 'lan'
    option dest 'wg'

config rule
    option name 'Allow-DHCP-Renew'
    option src 'wan'
    option proto 'udp'
    option dest_port '68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow-Ping'
    option src 'wan'
    option proto 'icmp'
    option icmp_type 'echo-request'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-IGMP'
    option src 'wan'
    option proto 'igmp'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-IPSec-ESP'
    option src 'wan'
    option dest 'lan'
    option proto 'esp'
    option target 'ACCEPT'

config rule
    option name 'Allow-ISAKMP'
    option src 'wan'
    option dest 'lan'
    option dest_port '500'
    option proto 'udp'
    option target 'ACCEPT'

config rule
    option name 'Allow cctv DHCP'
    option src 'cctv'
    option proto 'udp'
    option src_port '67-68'
    option dest_port '67-68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow cctv DNS'
    option src 'cctv'
    option dest_port '53'
    option target 'ACCEPT'
    option family 'ipv4'
    option proto 'tcpudp'

config redirect
    option name 'FORCE LAN DNS'
    option src 'lan'
    option dest 'lan'
    option src_dport '53'
    option dest_port '53'
    option target 'DNAT'

config redirect
    option name 'FORCE CCTV  DNS'
    option src 'cctv'
    option dest 'cctv'
    option src_dport '53'
    option dest_port '53'
    option target 'DNAT'

Tunel klient->serwer OK

root@erx2:~# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 data bytes
64 bytes from 192.168.10.1: seq=0 ttl=64 time=4.575 ms
64 bytes from 192.168.10.1: seq=1 ttl=64 time=4.061 ms
^C
--- 192.168.10.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 4.061/4.318/4.575 ms
root@erx2:~# ssh root@192.168.10.1

Host '192.168.10.1' is not in the trusted hosts file.
(ssh-ed25519 fingerprint SHA256:EsRcZ23DPmfMUEVd6X7R6a7sChPsT5KacbQhs5QcdVM)
Do you want to continue connecting? (y/n) y
root@192.168.10.1's password: 


BusyBox v1.36.1 (2023-11-15 10:00:19 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------------------------------
 |                                                                           |
 | OpenWrt 23.05-SNAPSHOT, r24016-f791ec1f6d                                 |
 |                                                                           |
 | Build time: 2024-07-27 10:35 CEST                                         |
 | Cezary Jackiewicz, https://eko.one.pl                                     |
 |                                                                           |
 -----------------------------------------------------------------------------
 | Machine: Ubiquiti EdgeRouter X                                            |
 | Uptime: 0d, 17:02:42                                                      |
 | Load: 0.00 0.00 0.00                                                      |
 | Flash: total: 212.8MB, free: 195.3MB, used: 6%                            |
 | Memory: total: 244.4MB, free: 184.1MB, used: 24%                          |
 | Leases: 20                                                                |
 | lan: static, 192.168.10.1                                                 |
 | cctv: static, 192.168.40.1                                                |
 | guest: static, 192.168.20.1                                               |
 | wan: dhcp,                                                                |
 | wg0: wireguard, 172.20.1.1                                                |
 -----------------------------------------------------------------------------
root@erx:~# 
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

11 (edytowany przez Cezary 2024-08-14 16:08:23)

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Musi ci to działać. Zestawię sobie w weekend takie połączenie i sprawdzę.

PS. Działa normalnie wg https://eko.one.pl/forum/viewtopic.php? … 16#p291616

root@????/f1725:~# wg
interface: wg0
  public key: grTxxxxxhY=
  private key: (hidden)
  listening port: xxxx

peer: gxxxxxx
  endpoint: 5.173.160.76:7479
  allowed ips: 10.9.0.2/32, 192.168.11.0/24
  latest handshake: 25 seconds ago
  transfer: 12.99 KiB received, 11.71 KiB sent
  persistent keepalive: every 25 seconds

root@????/f1725:~# wget http://192.168.11.229 -qO -
To żyje
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez Graffy 2024-08-19 14:42:44)

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

Dzięki @Cezary teraz działa!

Aby serwer miał dostęp do klienta w konfiguracji klienta mam teraz:

config interface 'wg0'
        option proto 'wireguard'
        option private_key 'xxx'
        list addresses '172.20.1.10/32'

config wireguard_wg0
        option public_key 'xxx'
        option route_allowed_ips '1'
        list allowed_ips '172.20.1.0/24'
        list allowed_ips '192.168.10.0/24'
        option endpoint_host 'xxx'
        option endpoint_port 'xxx'
        option persistent_keepalive '25'
        option description 'ERX'

Wcześniej miałem:

list allowed_ips '192.168.10.0/24'



Przy okazji zapytam, podczas prób rozwiązania problemu natknąłem się na wpis w WIKI

Chodzi konkretnie o "Consider VPN network as private and assign VPN interface to LAN zone on VPN client."
Czy faktycznie nie prościej dopiąć "wg0" do strefy "lan" w firewallu skoro i tak zezwalamy na cały ruch?

config zone
    option name 'wg'
    option input 'ACCEPT'
    option forward 'ACCEPT'
    option output 'ACCEPT'
    option masq '1'
    option network 'wg0'
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

13

Odp: Wireguard na OpenWrt - dostęp "serwera" do "klienta"

To jest chyba raczej problem ideologii. Ja np lubię oddzielne strefy i wole mieć jawnie w firewallu zezwolenie na coś.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.