У меня есть следующая конфигурация, веб-хост Apache, который работает на моем локальном компьютере через порт 4444.

Я зарегистрировался на noip.com для DDNS и правильно выполнил настройку.

Было интересно, так как я немного параноидален для того, чтобы выставлять свой IP публике при представлении веб-приложения клиентам, поэтому я могу запустить VPN локально, поэтому, когда DDNS разрешает IP, он будет указывать на мое VPN-соединение?

У меня есть только базовые знания о iptables, которых недостаточно для этой задачи. В настоящее время используется Debian 8.

Спасибо за вашу помощь!

1 ответ1

0

Если вы хотите скрыть порт вашего веб-сервера, используя VPN (openvpn) на хосте веб-сервера

В этом случае вы могли бы

  • настроить сервер vpn, например openvpn, для прослушивания ip вашего хоста, например 192.168.1.1, порт 1194
  • настроить ваш веб-сервер для прослушивания только 192.168.1.1, порт 4444
  • остановите переадресацию портов в маршрутизаторе, который перенаправляет трафик из Интернета на веб-сервер
  • настроить переадресацию портов в маршрутизаторе, который перенаправляет трафик из Интернета на сервер vpn через порт 1194 (я лично использую другой порт снаружи, так что маршрутизатор будет пересылать, например, порт 11945 на порт 1194 на хосте)
  • подключиться к вашему VPN через интернет
  • наведите браузер на свое веб-приложение на 192.168.1.1, порт 4444

В этом случае вам, вероятно, даже не нужны iptables. Ваш маршрутизатор знает только, что перенаправить этот один порт (1194) на ваш хост, и этот один порт может быть установлен или подключен только с правильными ключами и сертификатами. Все остальные порты не нужно закрывать, потому что они не могут быть доступны через ваш маршрутизатор.

Если вы хотите, чтобы ваш веб-сервер подключался только с IP-адреса VPN

Однако из ваших комментариев я предполагаю, что вы используете VPN с вашего ноутбука и что ваш веб-сервер подключен к "обычному" Интернету. В этом случае вы открываете свой брандмауэр /iptables только для вашего VPN IP, например 3.2.2.2

iptables -A INPUT -s 3.2.2.2/32 -j ACCEPT

или, более тонкие гранулированные iptables -A INPUT -p tcp -s 3.2.2.2/32 --dport 4444 -j ACCEPT

Внимание: это не должно быть единственным правилом. Возможно, вы хотите получить доступ к вашему хосту через SSH из вашей локальной сети или вообще разрешить все из вашей локальной сети:

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

Также вы хотите разрешить локальный трафик:

iptables -A INPUT -i lo -j ACCEPT

После этого вы можете закрыть все остальные входящие порты:

iptables -P INPUT DROP

Обязательно тщательно проверьте это по своему диапазону IP-адресов и собственному IP-адресу VPN.

Кроме того, вам необходимо настроить маршрутизатор / модем для переадресации любого порта, например 4444 или 44444, на порт 4444 вашего веб-сервера.

Если вы хотите запустить службу VPN (частный доступ в Интернет) и веб-сервер на одном хосте

Посмотрев на privateinternetaccess.com, я понял, что

  • есть клиентские программы для различных операционных систем, среди них Linux. (посмотреть здесь)
  • Однако PIA рекомендует использовать openVPN, если вы всегда хотите иметь один и тот же IP-адрес VPN (см. Здесь)

Так чтобы

запускать VPN локально, поэтому, когда DDNS разрешает IP, он будет указывать на ваше VPN-соединение

ты бы

  • установить openVPN
  • отредактируйте файл ovpn, предоставленный PIA для подключения к одному и тому же VPN-серверу
  • начать соединение openVPN с PIA
  • настройте клиент DDNS так, чтобы он просматривал и обновлял IP-адрес только после установления VPN-подключения. Клиент DDNS должен теперь найти 3.2.2.2 качестве вашего IP-адреса, обновить его на сервере DDNS, и ваши клиенты могут разрешить yourhost.yourddns.com до 3.2.2.2 .
  • Хотя PIA не рекомендует это делать (см. Здесь), вы должны иметь возможность включить переадресацию портов в PIA, как описано здесь для порта 4444.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .