SSH-соединение с докер-контейнером, когда хост подключен к VPNLinux

Ответить
Anonymous
 SSH-соединение с докер-контейнером, когда хост подключен к VPN

Сообщение Anonymous »

У меня возникла проблема с установлением ssh-соединения с моим док-контейнером, когда хост док-станции подключен к VPN (nordvpn).
Вот что я сделал:
  • На моем маршрутизаторе: у меня порт перенаправил порт ssh-соединения на порт моего ssh-докер-контейнера: 222. Этого достаточно, чтобы войти в мой контейнер по ssh, когда VPN отключен.
  • Для подключения, когда VPN включен, я внес в белый список порт 222 на своем VPN, надеясь, что это поможет.
Выполняя tcpdump на порту 222, я обнаружил проблему с маршрутизацией: трафик поступает через интерфейс end0, но выходит через интерфейс nordlynx.

Код: Выделить всё

10:39:10.808155 end0  In  IP x.x.x.x.62846 > 192.168.1.100.222: Flags [S], seq 382059475, win 64860, options [mss 1380,sackOK,TS val 1310442820 ecr 0,nop,wscale 7], length 0
10:39:10.808390 nordlynx Out IP 192.168.1.100.222 > x.x.x.x.62846: Flags [S.], seq 263244332, ack 382059476, win 65160, options [mss 1460,sackOK,TS val 2175849857 ecr 1310442820,nop,wscale 7], length 0
Я попытался войти по ssh непосредственно на хост докера, используя ту же конфигурацию (переадресация портов на порт 22 и порт 22 из белого списка VPN), и все работает нормально. Вот tcpdump на порту 22:

Код: Выделить всё

10:28:33.108572 end0  In  IP x.x.x.x.3395 > 192.168.1.100.ssh: Flags [P.], seq 2808398916:2808398932, ack 3377658384, win 487, options [nop,nop,TS val 1309805121 ecr 143975779], length 16
10:28:33.151936 end0  Out IP 192.168.1.100.ssh > x.x.x.x.3395: Flags [.], ack 16, win 482, options [nop,nop,TS val 144008198 ecr 1309805121], length 0
Вот что показывают таблицы маршрутизации (я удалил записи, которые не имели отношения к моей проблеме). 172.23.0.1 — это IP моего контейнера.

Код: Выделить всё

default dev nordlynx table 205 scope link
default via 192.168.1.1 dev end0 proto dhcp src 192.168.1.100 metric 100
10.5.0.0/16 dev nordlynx proto kernel scope link src 10.5.0.2
172.23.0.0/16 dev br-d97f35d9b9ce proto kernel scope link src 172.23.0.1
192.168.1.0/24 dev end0 proto kernel scope link src 192.168.1.100 metric 100
192.168.1.1 dev end0 proto dhcp scope link src 192.168.1.100 metric 100
local 10.5.0.2 dev nordlynx table local proto kernel scope host src 10.5.0.2
broadcast 10.5.255.255 dev nordlynx table local proto kernel scope link src 10.5.0.2
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
local 172.23.0.1 dev br-d97f35d9b9ce table local proto kernel scope host src 172.23.0.1
broadcast 172.23.255.255 dev br-d97f35d9b9ce table local proto kernel scope link src 172.23.0.1
local 192.168.1.100 dev end0 table local proto kernel scope host src 192.168.1.100
broadcast 192.168.1.255 dev end0 table local proto kernel scope link src 192.168.1.100
А вот правила iptables, которые у меня есть в таблице mangle для портов 22 и 222:

Код: Выделить всё

Chain PREROUTING (policy ACCEPT)
ACCEPT     udp  --  anywhere             anywhere             udp dpt:222 /* nordvpn */
ACCEPT     udp  --  anywhere             anywhere             udp spt:222 /* nordvpn */
ACCEPT     udp  --  anywhere             anywhere             udp dpt:22 /* nordvpn */
ACCEPT     udp  --  anywhere             anywhere             udp spt:22 /* nordvpn */
ACCEPT     udp  --  anywhere             anywhere             udp dpt:222 /* nordvpn */
ACCEPT     udp  --  anywhere             anywhere             udp spt:222 /* nordvpn */
ACCEPT     udp  --  anywhere             anywhere             udp dpt:22 /* nordvpn */
ACCEPT     udp  --  anywhere             anywhere             udp spt:22 /* nordvpn */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:222 /* nordvpn */
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:222 /* nordvpn */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:222 /* nordvpn */
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:222 /* nordvpn */

Chain OUTPUT (policy ACCEPT)
MARK       udp  --  anywhere             anywhere             udp spt:222 /* nordvpn_allowlist */ MARK set 0xe1f1
MARK       udp  --  anywhere             anywhere             udp spt:22 /* nordvpn_allowlist */ MARK set 0xe1f1
MARK       tcp  --  anywhere             anywhere             tcp spt:222 /* nordvpn_allowlist */ MARK set 0xe1f1
Можете ли вы помочь мне узнать, чего мне не хватает?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... d-to-a-vpn
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»