-1

У меня есть сервер Ubuntu, настроенный с OpenVPN, Minecraft и TeamSpeak3 среди других приложений.

Я могу подключиться к ней по SSH, использовать Samba для своего NAS и даже успешно использовать каждый из моих компьютеров, использующих TS3 и Minecraft; все в локальной сети. Моя цель - сделать так, чтобы порты Minecraft и TS3 были доступны вне моей локальной сети.

У меня есть ISP-модем, который перенаправляет порты на маршрутизатор моей подсети, а этот маршрутизатор - на сервер. Отлично. Minecraft и TS3 работают и доступны в локальной сети независимо от того, включен ли VPN-канал или нет.

Я бы хотел оставить VPN включенным, но исключить Minecraft и TS3 из маршрута VPN.

Как мне настроить маршруты?

ОБНОВИТЬ

Я хотел бы, чтобы внешние клиенты (неизвестная ОС) подключались к серверам MC & TS, которые размещены на внутреннем сервере Ubuntu 16.04.

На сервере Ubuntu размещены сервисы MC, TS, Samba, Plex, uTorrent и SickRage. OpenVPN работает и здесь.

Мой маршрутизатор ISP не изменен, а маршрутизатор моей подсети является немодифицированным ASUS. Я открыл и перенаправил соответствующие порты с последовательным подключением на сервер Ubuntu.

Мои внутренние клиенты состоят из смеси OS X, Windows 10 и различных версий Android. Каждый из внутренних клиентов может получить доступ к службам Ubuntu, перечисленным выше, используя внутренний IP-адрес сервера.

Кроме того, iptables на сервере Ubuntu полностью открыты, и когда я выясню, как заставить работать MC & TS, я могу добавить дополнительные ограничения.

sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

ОБНОВЛЕНИЕ 2 Я только прошел мои маршрутизаторы и проверил исключения перенаправления портов и брандмауэра. Квадрат всего В CLI я запустил sudo /etc/init.d/openvpn stop и посетил http://www.yougetsignal.com/tools/open-ports/.

Возвращенные результаты: Порт 10011 открыт на 97.*.*.*

sudo /etc/init.d/openvpn start привел к тому, что Port 10011 is closed on 97.*.*.*

ifconfig -a

enp2s0    Link encap:Ethernet  HWaddr 50:e5...
          inet addr:192.168.1.89  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::52e5:49ff:fedd:d345/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:29183 errors:0 dropped:1 overruns:0 frame:0
          TX packets:5791 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000
          RX bytes:5338487 (5.3 MB)  TX bytes:770420 (770.4 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:3772 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3772 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:679389 (679.3 KB)  TX bytes:679389 (679.3 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.*.*.*  P-t-P:10.*.*.*  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:371 errors:0 dropped:0 overruns:0 frame:0
          TX packets:647 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:101055 (101.0 KB)  TX bytes:83561 (83.5 KB)

Конфигурация oVPN

client
dev tun
proto udp
remote vpnprovider.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass login.conf
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.pem

1 ответ1

0

На основании вашего обновления, вот пара вещей, чтобы проверить:

Маршруты

Вы спрашивали, как настроить маршруты.

Из приведенной выше информации сервер Ubuntu должен знать маршрут к Интернету через внутренний интерфейс маршрутизатора подсети, а маршрутизатор подсети должен знать маршрут к Интернету через внутренний интерфейс маршрутизатора ISP (если он действует как маршрутизатор), Кроме того, маршрутизатор ISP должен знать маршрут к вашей внутренней локальной сети через внешний интерфейс маршрутизатора подсети.

Однако я предполагаю, что с маршрутизацией все в порядке, потому что вы уже можете использовать OpenVPN на вашем сервере Ubuntu.

Порты

Все необходимые порты должны быть разрешены через любые брандмауэры, то есть на сервере Ubuntu, маршрутизаторе подсети и маршрутизаторе ISP. Те

Port 25565 TCP and UDP for Minecraft
Port 9987 UDP, 10011 TCP and 30033 TCP for TeamSpeak3
just like (usually)
Port 1194 UDP for OpenVPN

Итак, учитывая, что ваш ISP-маршрутизатор имеет возможность и нуждается в переадресации портов, ISP-маршрутизатор должен быть настроен на переадресацию этих портов на сервер Ubuntu. Поскольку маршрутизатор ISP знает маршрут к IP-адресу сервера Ubuntu, он отправит пакеты на маршрутизатор подсети.

Также на маршрутизаторе подсети вышеупомянутые порты должны быть открыты и направлены на сервер Ubuntu.

Обновить

Как оказалось, OpenVPN в режиме клиента используется для подключения к удаленному VPN-серверу.

Альтернатива А

Вы можете посоветовать клиенту OpenVPN не менять шлюз по умолчанию. Это, в зависимости от сценария, в котором вы хотите использовать этот VPN, сделает ваш VPN бесполезным. Эта альтернатива позволит вам получить доступ к VPN-серверу и сети за ним. (Я использую его для управления своими компьютерами дома, имея возможность просматривать Интернет без VPN).

Добавление

route-nopull
route <vpn.servers.ip.address> 255.255.255.0

и опционально, в зависимости от ваших настроек

route-metric 50

в конфиг будет

  • не придерживаться маршрутов, выдвигаемых сервером
  • добавить маршрут к серверу VPN
  • установите для метрики маршрута низкое значение (он же высокий приоритет), чтобы этот маршрут использовался через шлюз по умолчанию, если вы хотите подключиться к VPN-серверу.

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

Дополнительные маршруты

Не зная сценария, в котором VPN полезен для вас, вы, конечно, можете добавить больше маршрутов к тем хостам или сетям, к которым вы хотите подключиться через VPN.

route <remote.host.ip.address> vpn_gateway

Альтернатива 2

Установите маршрутизацию на основе политик, другими словами, разрешите все через VPN, кроме портов, которые вы используете для TS и MC: см. Здесь: Исключение Iptables для определенного порта в Unix & Linux Stack Exchange.

  • настроить iptables (следуя связанному примеру, обязательно измените IP-адреса, порты и имена интерфейсов в соответствии с вашими настройками)
  • изменить маршрутизацию на политику маршрутизации

Так как ваши политики iptables установлены на ACCEPT , вам не нужны эти строки из примера:

# Always accept loopback traffic
/sbin/iptables -A INPUT -i lo -j ACCEPT

# Allow established connections, and those not coming from the outside
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -i tun0 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -i eth1 -j ACCEPT

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