Назад | Перейти на главную страницу

Перенаправить SSH клиенту OpenVPN через UFW

У меня есть сервер Ubuntu 14, на котором запущен шлюз OpenVPN и ufw. Назовем его Сервер А.

У меня есть резервирование IP для постоянно подключенного сервера (Сервер B). Он всегда подключается к OpenVPN и получает IP-адрес 10.8.0.10.

Мне нужно перенаправить соединения с порта 5010 на сервере A на порт 22 сервера B (SSH).

У меня в before.rules есть следующее:

# NAT table rules
*nat
:PREROUTING ACCEPT [0:0]
# Route SSH to archimedes
-A PREROUTING -p tcp -i eth0 --dport 5010 -j DNAT --to-destination 10.8.0.10:22

:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o tun0 -j MASQUERADE
# END OPENVPN RULES
COMMIT

DEFAULT_FORWARD_POLICY="ACCEPT" установлен в /etc/default/ufw net.ipv4.ip_forward=1 установлен в /etc/ufw/systl.conf

Если я подключусь по SSH к серверу и попытаюсь подключиться по SSH напрямую к 10.8.0.10 (IP-адрес, назначенный VPN серверу B на интерфейсе tun0), я могу подключиться нормально.

Любая попытка подключиться к порту 5010 сервера A завершается ошибкой с истечением времени ожидания. Что я пропустил?

  1. Почему бы не подключиться напрямую через VPN вместо магии предварительной маршрутизации?
  2. Если вы не можете подключиться с помощью VPN, лучше настройте SSH, используя ProxyCommand в твоем ~/.ssh/config файл для прямого подключения к VPN (и это будет другой вопрос, если вы не знаете, как это сделать)
  3. У вашего VPN больше политик маршрутизации для нескольких сетей? нам нужно больше деталей, чтобы увидеть, есть ли у нас другие политики маршрутизации, которые могут быть источником проблемы. Проверьте с помощью iptables:

sudo iptables -L -t nat

и проверьте, применяется ли политика предварительной маршрутизации.