VPN и локальная переадресация портов Apache
У меня есть следующая конфигурация, веб-хост Apache, который работает на моем локальном компьютере через порт 4444.
Я зарегистрировался на noip.com для DDNS и правильно выполнил настройку.
Было интересно, так как я немного параноидален для того, чтобы выставлять свой IP публичному пользователю, когда представляю веб-приложение клиентам, поэтому могу ли я запускать VPN локально, поэтому, когда DDNS разрешает IP, он будет указывать на мое VPN-соединение?
У меня есть только базовые знания по iptables, которых недостаточно для этой задачи. В настоящее время используется Debian 8.
Спасибо за вашу помощь!
1 ответ
Если вы хотите скрыть порт вашего веб-сервера, используя 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.