Как я могу получить доступ к локальным портам сервера через соединение OpenVPN?

2

Я имею OpenVPN и работает на сервере и служит в качестве шлюза в Интернет для частного просмотра.

У меня также есть несколько приложений, работающих на одном сервере, доступ к которым я хотел бы получить только через OpenVPN.

Например, если у меня активирован etherpad на порту 127.0.0.1:8000 на моем сервере, как мне получить доступ к этому веб-сайту через соединение OpenVPN на моем клиенте? Пожалуйста, дайте мне знать, какие настройки требуются для изменения стандартных конфигураций.

Спасибо. Я прочитал много сообщений OpenVPN и не смог понять, как это сделать ... и кажется, что это должно быть просто.

bmiller59
источник
Все посты о том, «как я могу получить доступ к своему локальному хосту через локальную сеть», применяются здесь.
Гравитация

Ответы:

0

В общем случае вы хотели бы разрешить порт на всех интерфейсах, а затем использовать брандмауэр для сброса всех подключений на этом порту, кроме как через диапазон IP-адресов VPN (и localhost)

Если вы можете заставить его работать, правило будет что-то вроде

iptables -t nat -D PREROUTING -i tun+ -p tcp --dport 8000 -j DNAT --to-destination 127.0.0.1

(Бит tun + означает любые устройства tun)

Для того, чтобы это работало, вам, вероятно, нужно будет установить еще 2 вещи -

sysctl -w net.ipv4.conf.all.route_localnet=1
echo 1 > /proc/sys/net/ipv4/ip_forward
davidgo
источник
1
Я уверен, что это не сработает. Пакеты loне могут приходить откуда-либо, кроме 127/8(или ::1/128). Хотя прокси определенно будет работать.
Даниэль Б,
@DanielB Ну, мы оба были частично правы - правило, которое я ввел, будет работать, однако оно, конечно, требует включения ip_forwarding (о чем я забыл упомянуть), а также требует вызова sysctl для обработки 127.0.0.1 как это был бы любой другой адрес. (Я проверил это сейчас, когда я дома - и сегодня тоже кое-чему научился!)
Давидго