Настраиваю VPNсервер на Ubuntu 22.04 и клиент на winxp (знаю что старая но задача такая) все на VirtualBOX.
Локальный ip сервера 10.0.2.2
ip туннеля 10.8.0.1
Локальный ip клиента 10.0.3.4
ip туннеля 10.8.0.2
Защищенный канал устанавливается без проблем, с клиента до локального интерфейса сервера (10.0.2.2) пинг ходит, а вот с сервера локальный интерфейс клиента не пингуется, пакеты на стороны сервера в тоннель попадают (tcpdump логи приложу), а на стороне клиента пакеты не появляются. При этом в обратную сторону (пинг с клиента на сервер) все четко ходит по тоннелю в обе стороны.
на сервере выставлена net.ipv4.ip_forward=1.
на клиенте в винде ветра реестра стоит 1 и служба маршрутизации вкл (хотя и без нее пинги до сервера шли)
конфиг сервера
local 10.0.2.2
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
push «redirect-gateway def1 bypass-dhcp»
ifconfig-pool-persist ipp.txt
#client-config-dir /etc/openvpn/ccd
push «dhcp-option DNS 1.1.1.1»
push «dhcp-option DNS 1.0.0.1»
push «block-outside-dns»
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
/etc/openvpn/ccd/client1 (по факту не использую)
#iroute 10.0.3.0 255.255.255.0 (когда строка раскомментирована клиент перестает подключаться к серверу)
#ifconfig-push 10.0.3.0 255.255.255.0
конфиг клиента
client
dev tun
proto udp
remote 10.132.56.42 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
verb 3
remote-metod exe
route-delay 5
ip сервера
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:32:58:3c brd ff:ff:ff:ff:ff:ff
inet 10.0.2.2/24 brd 10.0.2.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.56.2/24 brd 192.168.56.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe32:583c/64 scope link
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.8.0.1/24 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::c9b3:ae95:6103:dbac/64 scope link stable-privacy
valid_lft forever preferred_lft forever
ip клиента
локальный 10.0.3.4/24
VPN-tun 10.8.0.2/24
таблица маршрутов сервера
Destination Gateway Genmask Flags MSS
Window irtt Iface
0.0.0.0 10.0.2.1 0.0.0.0 UG 0 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
10.0.3.0 10.8.0.1 255.255.255.0 UG 0 0 0 tun0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
Таблица клиента
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 10.0.3.1 10.0.3.4 1
0.0.0.0 128.0.0.0 10.8.0.1 10.8.0.2 1
10.0.3.0 255.255.255.0 10.0.3.4 10.0.3.4 10
10.0.3.4 255.255.255.255 127.0.0.1 127.0.0.1 10
10.8.0.0 255.255.255.0 10.8.0.2 10.8.0.2 3
10.8.0.2 255.255.255.255 127.0.0.1 127.0.0.1 3
10.132.56.42 255.255.255.255 10.0.3.1 10.0.3.4 1
10.255.255.255 255.255.255.255 10.0.3.4 10.0.3.4 10
10.255.255.255 255.255.255.255 10.8.0.2 10.8.0.2 3
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
128.0.0.0 128.0.0.0 10.8.0.1 10.8.0.2 1
224.0.0.0 240.0.0.0 10.0.3.4 10.0.3.4 10
224.0.0.0 240.0.0.0 10.8.0.2 10.8.0.2 3
255.255.255.255 255.255.255.255 10.0.3.4 10.0.3.4 1
255.255.255.255 255.255.255.255 10.8.0.2 10.8.0.2 1
Основной шлюз: 10.8.0.1
tcpdump с сервера при пинге ip клиента 10.0.3.4
tcpdump -i tun0 -n -nn -ttt 'ip proto \icmp' -vv
tcpdump: listening on tun0, link-type RAW (Raw IP), snapshot length 262144 bytes
00:00:00.000000 IP (tos 0x0, ttl 64, id 12046, offset 0, flags [DF], proto ICMP (1), length 84)
10.8.0.1 > 10.0.3.4: ICMP echo request, id 22, seq 2251, length 64
00:00:01.024808 IP (tos 0x0, ttl 64, id 12142, offset 0, flags [DF], proto ICMP (1), length 84)
10.8.0.1 > 10.0.3.4: ICMP echo request, id 22, seq 2252, length 64
00:00:01.023688 IP (tos 0x0, ttl 64, id 12213, offset 0, flags [DF], proto ICMP (1), length 84)
10.8.0.1 > 10.0.3.4: ICMP echo request, id 22, seq 2253, length 64
00:00:01.024084 IP (tos 0x0, ttl 64, id 12254, offset 0, flags [DF], proto ICMP (1), length 84)
10.8.0.1 > 10.0.3.4: ICMP echo request, id 22, seq 2254, length 64
tcpdump c клиента пустой.
видно что пакеты в тунель уходят, но до клиента не доходят
iptables-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
Кучу форумов пересмотрел с похожей проблемой. В основном все пишут про настройку нат на сервере. Пробовал добавить правило в Iptables, как советуют:
iptables -t nat -A POSTROUTING -o enp0s3 -j SNAT --to-source 192.168.56.2 или 10.0.2.2
подставлять не помогает.
Уже кучу времени убил. Помогите пожалуйста.