Есть openvpn-сервер, находится за nat'ом. К нему проброшенн порт udp 443
следующими правилами (по умолчанию для всех цепочек, кроме nat (ACCEPT),
политика DROP):
iptables -A INPUT -p udp -m udp -d $WAN_IP -i $WAN_IF --dport 443 -j ACCEPT
iptables -A FORWARD -i $WAN_IF -p udp -m udp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -p udp -m udp -i $LAN_IF --dport 443 -d
$WAN_IP -j DNAT --to-destination $OPENVPN:443
iptables -t nat -A POSTROUTING -d $OPENVPN -o $LAN_IF -p udp -m udp
--dport 443 -j SNAT --to-source $LAN_IP:443
WAN_IP = внешний ip-адрес
WAN_IF = внешний интерфейс
LAN_IF = внутрений интерфейс
OPENVPN = ip-адрес шлюза openvpn.gw
схема подключения:
client -> gw:443 udp -> openvpn.gw:443
Собственна проблема: клиент подключается сразу либо через какое-то
огромное количество попыток. Посмотрел tcpdump'ом:
Удачное подключение:
*Первый клиент:*
client -> gw
# tcpdump -vvni eth1 udp port 443
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 96
bytes
07:31:40.171087 IP (tos 0x0, ttl 120, id 1849, offset 0, flags [none],
proto UDP (17), length 42) client_ip.19 > gw_ip.443: [udp sum ok] UDP,
length 14
07:31:40.171087 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto
UDP (17), length 54) gw_ip.443 > client_ip.19: [udp sum ok] UDP, length 26
07:31:40.171087 IP (tos 0x0, ttl 120, id 1850, offset 0, flags [none],
proto UDP (17), length 50) client_ip.19 > gw_ip.443: [udp sum ok] UDP,
length 22
07:31:40.171087 IP (tos 0x0, ttl 120, id 1851, offset 0, flags [none],
proto UDP (17), length 130) client_ip.19 > gw_ip.443: UDP, length 102
07:31:40.183088 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto
UDP (17), length 154) gw_ip.443 > client_ip.19: UDP, length 126
gw -> openvpn.gw
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96
bytes
10:31:33.615162 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto
UDP (17), length 81) openvpn.gw_ip.443 > gw_local_ip.443: [udp sum ok]
UDP, length 53
10:31:41.512159 IP (tos 0x0, ttl 119, id 1849, offset 0, flags [none],
proto UDP (17), length 42) gw_local_ip.443 > openvpn.gw_ip.443: [udp sum
ok] UDP, length 14
10:31:41.512307 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto
UDP (17), length 54) openvpn.gw_ip.443 > gw_local_ip.443: [udp sum ok]
UDP, length 26
10:31:41.515312 IP (tos 0x0, ttl 119, id 1850, offset 0, flags [none],
proto UDP (17), length 50) gw_local_ip.443 > openvpn.gw_ip.443: [udp sum
ok] UDP, length 22
10:31:41.515323 IP (tos 0x0, ttl 119, id 1851, offset 0, flags [none],
proto UDP (17), length 130) gw_local_ip.443 > openvpn.gw_ip.443: UDP,
length 102
Неудачные подключения:
*первый клиент:*
client -> gw
13:20:55.614254 IP (tos 0x0, ttl 120, id 21681, offset 0, flags [none],
proto UDP (17), length 42) client_ip.443 > gw_ip.443: [udp sum ok] UDP,
length 14
13:20:58.086042 IP (tos 0x0, ttl 120, id 21694, offset 0, flags [none],
proto UDP (17), length 42) client_ip.443 > gw_ip.443: [udp sum ok] UDP,
length 14
13:21:00.553979 IP (tos 0x0, ttl 120, id 21707, offset 0, flags [none],
proto UDP (17), length 42) client_ip.443 > gw_ip.443: [udp sum ok] UDP,
length 14
13:21:02.942003 IP (tos 0x0, ttl 120, id 21720, offset 0, flags [none],
proto UDP (17), length 42) client_ip.443 > gw_ip.443: [udp sum ok] UDP,
length 14
gw -> openvpn.gw
пусто
*второй клиент:*
client -> gw
13:17:26.535197 IP (tos 0x0, ttl 119, id 147, offset 0, flags [none],
proto UDP (17), length 42) client_ip2.171 > gw_ip.443: [udp sum ok] UDP,
length 14
13:17:29.035200 IP (tos 0x0, ttl 119, id 148, offset 0, flags [none],
proto UDP (17), length 42) client_ip2.171 > gw_ip.443: [udp sum ok] UDP,
length 14
13:17:30.395201 IP (tos 0x0, ttl 119, id 149, offset 0, flags [none],
proto UDP (17), length 42) client_ip2.171 > gw_ip.443: [udp sum ok] UDP,
length 14
13:17:32.999203 IP (tos 0x0, ttl 119, id 150, offset 0, flags [none],
proto UDP (17), length 42) client_ip2.171 > gw_ip.443: [udp sum ok] UDP,
length 14
gw -> openvpn.gw
пусто
Клиенты находяться за NAT'ом (пробовал через разных провайдеров).
Собственно не обнаружил из-за чего не пробрасываются пакеты
--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org