[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

подземные стуки с openvpn за nat'ом.



Есть 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'ом (пробовал через разных провайдеров). Собственно не обнаружил из-за чего не пробрасываются пакеты


Reply to: