Я настроил свой EdgeRouter-X в качестве клиента WireGuard (используя IPv6), чтобы мой общедоступный IP-адрес отображался как общедоступный IP-адрес сервера WireGuard.
Это потому, что я хочу разместить домашний сервер, используя IP-адрес OVH и Anti-DDoS вместо моего собственного публичного IP-адреса, который не защищен.
У меня есть 4 общедоступных IP-адреса:
22.22.22.22
33.33.33.33
44.44.44.44
55.55.55.55
График для моего подключения выглядит так:
OVH VPS Wireguard Server Туннель WG0 (ЛОКАЛЬНЫЙ туннель 10.0.0.1) [Переадресация портов с помощью IPTables] <-----> (ЛОКАЛЬНЫЙ туннель 10.0.0.2) EdgeRouter X
EdgeRouter-X (LOCAL 192.168.1.1) [Переадресация портов с помощью EdgeRouter] <-----> (LOCAL 192.168.1.10) HOME-SERVER
Я перенаправляю все порты с VPS OVH (1-65535) с IPTables на мой EdgeRouter через туннель wg0, а затем на мой домашний сервер, и это работает.
Проблема в том, что когда пользователь подключается, скажем, к 22.22.22.22:80, он успешно отображает веб-страницу, но его IP-адрес на сервере получается 10.0.0.1, а не общедоступный IP-адрес пользователя.
Это моя конфигурация сервера WG:
[Интерфейс]
Адрес = 10.0.0.1/30
Порт прослушивания = 51821
PrivateKey = ЦЕНЗИРОВАНО
### Клиент впн
[Вглядеться]
Публичный ключ = ЦЕНЗИРОВАНО
PresharedKey = ЦЕНЗИРОВАНО
Разрешенные IP-адреса = 10.0.0.2/30
Это моя конфигурация IPTables WG Server для перенаправления портов на EdgeRouter через WG0:
# Сгенерировано iptables-save v1.8.7 в воскресенье, 9 января, 11:04:33 2022 г.
*фильтр
:ВВОД ПРИНЯТЬ [971:145912]
:ВПЕРЕД ПРИНЯТЬ [920:137172]
: ВЫВОД ПРИНЯТ [637:108812]
:f2b-sshd - [0:0]
СОВЕРШИТЬ
# Завершено в воскресенье, 9 января, 11:04:33 2022 г.
# Сгенерировано iptables-save v1.8.7 в воскресенье, 9 января, 11:04:33 2022 г.
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [133:6792]
:ВВОД ПРИНЯТ [61:2272]
: ВЫВОД ПРИНЯТ [3:228]
:ОТПРАВКА ПРИНЯТИЯ [66:4011]
-A PREROUTING -i ens3 -p udp -m многопортовый --dports 1000:51820 -j DNAT --к месту назначения 10.0.0.2
-A PREROUTING -i ens3 -p udp -m многопортовый --dports 51822:65534 -j DNAT --к месту назначения 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 51822:65534 -j DNAT --к месту назначения 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 1000:51820 -j DNAT --к месту назначения 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 80,25,995,110,443,465,993,143 -j DNAT --к месту назначения 10.0.0.2
-A PREROUTING -i ens3 -p udp -m multiport --dports 80,25,995,110,443,465,993,143 -j DNAT --к месту назначения 10.0.0.2
-A ПОСТРОЙКА -j МАСКАРАД
СОВЕРШИТЬ
# Завершено в воскресенье, 9 января, 11:04:33 2022 г.
Это моя конфигурация EdgeRouter-X с клиентом WG0 и переадресацией портов на домашний сервер:
брандмауэр {
включить все ping
широковещательный пинг отключить
группа {
адресная группа MY_PUBLIC {
адрес 22.22.22.22
адрес 33.33.33.33
адрес 44.44.44.44
адрес 55.55.55.55
}
}
ipv6-имя WANv6_IN {
падение действия по умолчанию
описание "Входящий трафик WAN перенаправляется в LAN"
включить-по-умолчанию-журнал
правило 10 {
действие принять
description «Разрешить установленные/связанные сеансы»
государство {
установленный включить
связанные включить
}
}
правило 20 {
падение действия
описание "Удалить недопустимое состояние"
государство {
недопустимое включение
}
}
}
ipv6-имя WANv6_LOCAL {
падение действия по умолчанию
описание "Входящий трафик WAN на маршрутизатор"
включить-по-умолчанию-журнал
правило 10 {
действие принять
description «Разрешить установленные/связанные сеансы»
государство {
установленный включить
связанные включить
}
}
правило 20 {
падение действия
описание "Удалить недопустимое состояние"
государство {
недопустимое включение
}
}
правило 30 {
действие принять
описание "Разрешить IPv6 icmp"
протокол ipv6-icmp
}
правило 40 {
действие принять
описание "разрешить dhcpv6"
пункт назначения {
порт 546
}
протокол udp
источник {
порт 547
}
}
}
ipv6-receive-redirects отключить
ipv6-src-маршрут отключить
ip-src-маршрут отключить
лог-марсиане позволяют
изменить wireguard_route {
правило 5 {
действие изменить
пункт назначения {
группа {
адресная группа MY_PUBLIC
}
}
изменить {
главная таблица
}
}
правило 10 {
действие изменить
описание wireguard-vpn
изменить {
Таблица 1
}
источник {
адрес 192.168.1.0/24
}
}
}
имя WAN_IN {
падение действия по умолчанию
описание "WAN на внутренний"
правило 10 {
действие принять
описание "Разрешить установленные/связанные"
государство {
установленный включить
связанные включить
}
}
правило 20 {
падение действия
описание "Удалить недопустимое состояние"
государство {
недопустимое включение
}
}
}
имя WAN_LOCAL {
падение действия по умолчанию
описание "WAN к роутеру"
правило 10 {
действие принять
описание "Разрешить установленные/связанные"
государство {
установленный включить
связанные включить
}
}
правило 20 {
падение действия
описание "Удалить недопустимое состояние"
государство {
недопустимое включение
}
}
}
прием-перенаправления отключить
включить переадресацию отправки
проверка источника отключена
синхронизация файлов cookie
}
интерфейсы {
Ethernet eth0 {
адрес dhcp
описание Интернет
dhcpv6-pd {
пд 0 {
интерфейс eth1 {
служба dhcpv6 с отслеживанием состояния
}
интерфейс eth2 {
служба dhcpv6 с отслеживанием состояния
}
интерфейс eth3 {
служба dhcpv6 с отслеживанием состояния
}
интерфейс switch0 {
адрес хоста ::1
обслуживание
}
длина префикса /64
}
включить быструю фиксацию
}
дуплекс авто
брандмауэр {
в {
ipv6-имя WANv6_IN
имя WAN_IN
}
местный {
ipv6-имя WANv6_LOCAL
имя WAN_LOCAL
}
}
IPv6 {
адрес {
автоконф
}
dup-addr-detect-transmits 1
}
скорость авто
}
Ethernet eth1 {
описание Местный
дуплекс авто
скорость авто
}
ethernet eth2 {
описание Местный
дуплекс авто
скорость авто
}
Ethernet eth3 {
описание Местный
дуплекс авто
скорость авто
}
Ethernet eth4 {
описание Местный
дуплекс авто
по {
выход выключен
}
скорость авто
}
петля вот {
}
переключатель switch0 {
адрес 192.168.1.1/24
описание Местный
брандмауэр {
в {
изменить wireguard_route
}
}
мту 1500
коммутатор-порт {
интерфейс eth1 {
}
интерфейс eth2 {
}
интерфейс eth3 {
}
интерфейс eth4 {
}
отключить поддержку vlan
}
}
проволока WG0 {
адрес 10.0.0.2/30
описание Wireguard
порт прослушивания 51821
мту 1420
сверстник ЦЕНЗИРОВАНО {
разрешено-ips 0.0.0.0/0
конечная точка [2001:41d0:52:400::6e3]:51821
постоянный-keepalive 25
предварительный ключ /config/auth/wg-preshared.key
}
закрытый ключ /config/auth/wg.key
разрешенный маршрут ips ложный
}
}
порт вперед {
автоматическое включение брандмауэра
шпилька-nat включить
переключатель lan-интерфейса0
правило 1 {
описание "Разрешить ВСЕ"
переслать {
адрес 192.168.1.10
}
оригинальный порт 1-65535
протокол tcp_udp
}
wan-интерфейс WG0
}
протоколы {
статический {
Таблица 1 {
description "таблица для принудительной установки wg0:aws"
интерфейс-маршрут 0.0.0.0/0 {
интерфейс следующего перехода wg0 {
}
}
маршрут 0.0.0.0/0 {
черная дыра {
расстояние 255
}
}
}
}
}
оказание услуг {
DHCP-сервер {
отключено ложно
отключить обновление хост-файла
имя общей сети LAN {
авторитетное разрешение
подсеть 192.168.1.0/24 {
маршрутизатор по умолчанию 192.168.1.1
днс-сервер 192.168.1.1
аренда 86400
старт 192.168.1.38 {
остановка 192.168.1.243
}
статическое отображение Node2 {
ip-адрес 192.168.1.10
mac-адрес 90:b1:1c:44:f6:da
}
статическое отображение iDRAC {
ip-адрес 192.168.1.120
mac-адрес E0:DB:55:06:2D:14
}
}
}
статический-arp отключить
использовать-dnsmasq отключить
}
днс {
пересылка {
размер кеша 150
переключатель прослушивания0
}
}
графический интерфейс {
http-порт 80
https-порт 443
старые шифры позволяют
}
нат {
правило 5002 {
описание wireguard-nat
журнал отключить
исходящий интерфейс wg0
протоколировать все
источник {
адрес 192.168.1.0/24
}
тип маскарад
}
правило 5003 {
описание "маскарад для WAN"
журнал отключить
исходящий интерфейс eth0
протоколировать все
тип маскарад
}
}
сш {
порт 22
версия протокола v2
}
унмс {
}
}
система {
аналитика-обработчик {
отправить-аналитика-отчет ложно
}
обработчик сбоев {
отправить отчет о сбое false
}
имя хоста EdgeRouter-X-5-Port
авторизоваться {
пользователь ubnt {
аутентификация {
зашифрованный пароль
}
уровень администратора
}
}
НТП {
сервер 0.ubnt.pool.ntp.org {
}
сервер 1.ubnt.pool.ntp.org {
}
сервер 2.ubnt.pool.ntp.org {
}
сервер 3.ubnt.pool.ntp.org {
}
}
разгрузить {
hwnat включить
ipsec включить
}
системный журнал {
Глобальный {
объект все {
уведомление об уровне
}
протоколы объекта {
уровень отладки
}
}
}
часовой пояс UTC
}