Мне трудно указать точное местоположение проблемы с моим openvpn, который работает на сервере Linux, который находится за модемом, который, в свою очередь, подключен к Интернету через динамический IP-адрес. Подробную историю проблемы со стороны openvpn и шаги, предпринятые для ее поиска, см. этот вопрос.
Проблема находится где-то между межсетевым экраном сервера, межсетевым экраном клиента и задействованными промежуточными модемами.
на сервере cat /etc/rc.d/rc.firewall | egrep -v '^(#|$)' | grep "\-t nat"
дает:
$IPT -t nat -A PREROUTING -p tcp -i $LOCAL_IFACE --destination-port 80 -j REDIRECT --to-ports 3128 #TRANSP PROXY
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
на клиенте та же команда:
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE [/quote]
снова еще один tcpdump -i eth1 udp and host <server_or_client_inet_ip>
согласования TLS: на клиенте
15:07:43.028277 IP 192.168.233.165.37073 > server_ip.32456: UDP, length 14
15:07:43.064518 IP server_ip.29199 > 192.168.233.165.37073: UDP, length 22
и на сервере
15:07:43.046535 IP client_ip.15312 > 192.168.231.165.32456: UDP, length 14
15:07:43.046618 IP 192.168.231.165.32456 > client_ip.15312: UDP, length 22
топографически это соединение выглядит так:
client <--> modem of client <--i-n-t-e-r-n-e-t--> modem of server <--> server
192.168.233.165 192.168.233.117 192.168.231.117 192.168.231.165.
отсортированный по времени, пинг openvpn между клиентом и сервером выглядит следующим образом:
[client] 15:07:43.028277 IP 192.168.233.165.37073 > server_ip.32456: UDP, length 14
[server] 15:07:43.046535 IP client_ip.15312 > 192.168.231.165.32456: UDP, length 14
[server] 15:07:43.046618 IP 192.168.231.165.32456 > client_ip.15312: UDP, length 22
[client] 15:07:43.064518 IP server_ip.29199 > 192.168.233.165.37073: UDP, length 22
ТАК, если я правильно прочитал
Правильно ли предположить, что на шаге 2) и, что наиболее важно, 5) в модемах происходит какой-то NAT из-за изменения порта источника пакета? Или я должен придерживаться предположения, что проблема где-то в моих брандмауэрах?
Я имею в виду, что это похоже на проблему с NAT, но, глядя в таблицы NAT сервера и клиента, я не могу определить ошибку с помощью моих собственных брандмауэров.
Если я предполагаю, что я что-то напутали в моих пользовательских межсетевых экранах сервера и клиента (вполне возможно), какие команды netfilter я должен искать это изменить порт источника пакета?
Что касается модемов, позвольте мне заявить, что на веб-странице конфигурации модема моего сервера брандмауэр и SPI отключены, правило NAT не установлено, и только узел DMZ настроен так, что все Интернет-трафик направляется на межсетевой экран сервера. На стороне клиента настройки модема точно такие же.
Достаточно ли этого перехвата пакетов с помощью tcpdump? Могу ли я использовать tcpdump с другой командой, чтобы получить дополнительную информацию о том, где был изменен исходный порт?
Спасибо заранее за вашу помощь.
для тех, кто убивает себя из-за какой-то странной проблемы с NAT, вроде моей.
Ну, в конце концов, это был модем. Тот, который предоставил мой интернет-провайдер.
"ZTE ZXHN H108L" с прошивкой "ZXHN H108LV4.0.0e_ZRQ_GR4" (проблема сначала возникла с версией "d" прошивки, но обновление не решило ее).
Я заменил модем другим, который у меня был, и вуаля. задача решена. Конечно, на тот момент я играл снова и снова более 6 месяцев.