Маршрутизатор [ER-X] как клиент WireGuard, чтобы скрыть IP-адрес офиса на сервере Debian. Не удается выполнить привязку к WireGuard IP с сервера

Уважаемое сообщество ServerFault

У меня возникла проблема с общей конфигурацией WireGuard Tunnel.

У меня есть VPS OVH с 4 общедоступными IP-адресами (MY_PUBLIC), выступающий в роли сервера WireGuard и перенаправляющий весь трафик (и порты) на мой маршрутизатор EdgeRouter-X (192.168.255.1) (который действует как клиент WireGuard), и тогда перенаправляет его на мой сервер Debian (192.168.255.10).

Проблема в том, что когда на сервере Debian я пытаюсь привязаться к любому из общедоступных IP-адресов OVH VPS WireGuard (MY_PUBLIC) [I tried making Apache bind to them, along with MariaDB and Docker but nothing] Я получаю сообщение об ошибке привязки, говорящее мне, что это невозможно.

 bind: cannot assign requested address.

После некоторых исследований я нашел это:

The message “Cannot assign requested address” suggests that the hostname/IP you are trying to bind does not resolve to a local network interface.

Судя по онлайн-исследованиям, кажется, что NAT находится где-то между VPS и сервером. Я новичок в сетях и понятия не имею, как решить эту проблему.

Это серьезная проблема, поскольку сервер может использовать только те IP-адреса, которые привязаны к 0.0.0.0.

Моя конфигурация ER-X:

firewall {
    all-ping enable
    broadcast-ping disable
    group {
        address-group MY_PUBLIC { // OVH VPS's IPs
            address 92.CENSORED.CENSORED.108
            address 149.CENSORED.CENSORED.64
            address 37.CENSORED.CENSORED.244
            address 149.CENSORED.CENSORED.244
        }
    }
    ipv6-name WANv6_IN {
        default-action drop
        description "WAN inbound traffic forwarded to LAN"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related sessions"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
    }
    ipv6-name WANv6_LOCAL {
        default-action drop
        description "WAN inbound traffic to the router"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related sessions"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description "Allow IPv6 icmp"
            protocol ipv6-icmp
        }
        rule 40 {
            action accept
            description "allow dhcpv6"
            destination {
                port 546
            }
            protocol udp
            source {
                port 547
            }
        }
    }
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    modify wireguard_route {
        rule 5 {
            action modify
            destination {
                group {
                    address-group MY_PUBLIC
                }
            }
            modify {
                table main
            }
        }
        rule 7 {
            action modify
            destination {
                address 172.16.1.0/24
            }
            modify {
                table main
            }
        }
        rule 10 {
            action modify
            description wireguard-vpn
            modify {
                table 1
            }
            source {
                address 192.168.255.0/24
            }
        }
    }
    name WAN_IN {
        default-action drop
        description "WAN to internal"
        rule 10 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "WAN to router"
        rule 10 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description openvpn
            destination {
                port 1194
            }
            protocol udp
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        address dhcp
        description Internet
        dhcpv6-pd {
            pd 0 {
                interface eth1 {
                    service dhcpv6-stateful
                }
                interface eth2 {
                    service dhcpv6-stateful
                }
                interface eth3 {
                    service dhcpv6-stateful
                }
                interface switch0 {
                    host-address ::1
                    service slaac
                }
                prefix-length /64
            }
            rapid-commit enable
        }
        duplex auto
        firewall {
            in {
                ipv6-name WANv6_IN
                name WAN_IN
            }
            local {
                ipv6-name WANv6_LOCAL
                name WAN_LOCAL
            }
        }
        ipv6 {
            address {
                autoconf
            }
            dup-addr-detect-transmits 1
        }
        speed auto
    }
    ethernet eth1 {
        description Local
        duplex auto
        speed auto
    }
    ethernet eth2 {
        description Local
        duplex auto
        speed auto
    }
    ethernet eth3 {
        description Local
        duplex auto
        speed auto
    }
    ethernet eth4 {
        description Local
        duplex auto
        poe {
            output off
        }
        speed auto
    }
    loopback lo {
    }
    openvpn vtun0 {
        mode server
        server {
            name-server 192.168.255.1
            push-route 192.168.255.0/24
            subnet 172.16.1.0/24
        }
        tls {
            ca-cert-file /config/auth/cacert.pem
            cert-file /config/auth/server.pem
            dh-file /config/auth/dh.pem
            key-file /config/auth/server.key
        }
    }
    switch switch0 {
        address 192.168.255.1/24
        description Local
        firewall {
            in {
                modify wireguard_route
            }
        }
        mtu 1500
        switch-port {
            interface eth1 {
            }
            interface eth2 {
            }
            interface eth3 {
            }
            interface eth4 {
            }
            vlan-aware disable
        }
    }
    wireguard wg0 {
        address 10.0.0.2/30
        description Wireguard
        listen-port 51821
        mtu 1420
        peer CENSORED+CENSORED+CENSORED= {
            allowed-ips 0.0.0.0/0
            endpoint 92.CENSORED.CENSORED.108:51821
            persistent-keepalive 25
            preshared-key /config/auth/wg-preshared.key
        }
        private-key /config/auth/wg.key
        route-allowed-ips false
    }
}
port-forward {
    auto-firewall enable
    hairpin-nat enable
    lan-interface switch0
    rule 1 {
        description "Allow ALL"
        forward-to {
            address 192.168.255.10
        }
        original-port 1-65535
        protocol tcp_udp
    }
    wan-interface wg0
}
protocols {
    static {
        table 1 {
            description "table to force wg0:aws"
            interface-route 0.0.0.0/0 {
                next-hop-interface wg0 {
                }
            }
            route 0.0.0.0/0 {
                blackhole {
                    distance 255
                }
            }
        }
    }
}
service {
    dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name LAN-X {
            authoritative disable
            subnet 192.168.255.0/24 {
                default-router 192.168.255.1
                dns-server 192.168.255.1
                lease 86400
                start 192.168.255.2 {
                    stop 192.168.255.254
                }
                static-mapping iDRAC {
                    ip-address 192.168.255.120
                    mac-address CENSORED:CENSORED:CENSORED:CENSORED:CENSORED:CENSORED
                }
                static-mapping node2 {
                    ip-address 192.168.255.10
                    mac-address CENSORED:CENSORED:CENSORED:CENSORED:CENSORED:CENSORED
                }
            }
        }
        static-arp disable
        use-dnsmasq disable
    }
    dns {
        forwarding {
            cache-size 150
            listen-on switch0
            listen-on vtun0
        }
    }
    gui {
        http-port 80
        https-port 443
        older-ciphers enable
    }
    nat {
        rule 5001 {
            description wireguard-nat
            log disable
            outbound-interface wg0
            protocol all
            source {
                address 192.168.255.0/24
            }
            type masquerade
        }
        rule 5002 {
            description "masquerade for WAN"
            log disable
            outbound-interface eth0
            protocol all
            type masquerade
        }
    }
    ssh {
        port 22
        protocol-version v2
    }
    unms {
    }
}
system {
    analytics-handler {
        send-analytics-report false
    }
    crash-handler {
        send-crash-report false
    }
    host-name EdgeRouter-X-5-Port
    login {
        user ubnt {
            authentication {
                encrypted-password CENSORED
            }
            level admin
        }
    }
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        hwnat enable
        ipsec enable
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone UTC
}

Конфигурация WG моего OVH VPS:

[Interface]
Address = 10.0.0.1/30
ListenPort = 51821
PrivateKey = CENSORED

### Client vpn
[Peer]
PublicKey = CENSORED
PresharedKey = CENSORED
AllowedIPs = 10.0.0.2/30

Мои OVH IPTables:

# Generated by iptables-save v1.8.7 on Sun Jan  9 11:04:33 2022

*filter

:INPUT ACCEPT [971:145912]

:FORWARD ACCEPT [920:137172]

:OUTPUT ACCEPT [637:108812]

:f2b-sshd - [0:0]

COMMIT

# Completed on Sun Jan  9 11:04:33 2022

# Generated by iptables-save v1.8.7 on Sun Jan  9 11:04:33 2022

*nat

:PREROUTING ACCEPT [133:6792]

:INPUT ACCEPT [61:2272]

:OUTPUT ACCEPT [3:228]

:POSTROUTING ACCEPT [66:4011]

-A PREROUTING -i ens3 -p udp -m multiport --dports 1000:51820 -j DNAT --to-destination 10.0.0.2

-A PREROUTING -i ens3 -p udp -m multiport --dports 51822:65534 -j DNAT --to-destination 10.0.0.2

-A PREROUTING -i ens3 -p tcp -m multiport --dports 51822:65534 -j DNAT --to-destination 10.0.0.2

-A PREROUTING -i ens3 -p tcp -m multiport --dports 1000:51820 -j DNAT --to-destination 10.0.0.2

-A PREROUTING -i ens3 -p tcp -m multiport --dports 21,22,80,25,995,110,443,465,993,143 -j DNAT --to-destination 10.0.0.2

-A PREROUTING -i ens3 -p udp -m multiport --dports 21,22,80,25,995,110,443,465,993,143 -j DNAT --to-destination 10.0.0.2

-A POSTROUTING -o ens3 -j MASQUERADE

COMMIT

# Completed on Sun Jan  9 11:04:33 2022

Просто для устранения неполадок я попытался привязаться к моему офисному IP-адресу, который, как и ожидалось и хотел, не работает, как за туннелем WireGuard ER-X.

Вот несколько тем, которые помогли мне настроить мою текущую структуру WireGuard: https://community.ui.com/questions/EdgeRouter-X-as-WireGuard-Client-Forward-ports-from-WG-tunnel-to-LAN/f19957fb-70be-485f-832d-381c6ea4b306

https://community.ui.com/questions/EdgeRouter-X-as-a-WireGuard-client-with-port-forwarding-or-User-IP-is-shown-to-be-WireGuard-tunnels/2a8b19ab- ac0c-48ed-b367-afd3914de9c2

Заранее спасибо за вашу помощь!

iptables linux-networking туннелирование wireguard ubiquiti-edgerouter

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *