Проблемы маршрутизации трафика vpn во второй сетевой адаптер.

Я запускаю сервер ubuntu 16.04 и openvpn. Я хотел бы изменить свои настройки на vpnserver, чтобы весь трафик включался в текущее соединение (192.168.1.254), и весь мой трафик отключается от моего второго интернет-соединения (192.168.2.3).

Моя текущая таблица маршрутизации:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 ens33 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 ens34

В настоящее время я могу получить доступ к vpn на ens33, но будет использовать ens33 в качестве шлюза по умолчанию (192.168.1.254). Если я добавлю метрику к интерфейсам, так что ens34 метрика 10 и ens33 метрическая 100 я не могу добраться до сервера. Если я изменил /etc/ufw/before.rules

# START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0] # I CHANGED THIS FROM DEFAULT ens33 to ens34 -A POSTROUTING -s 10.8.0.0/8 -o ens34 -j MASQUERADE COMMIT # END OPENVPN RULE

, я могу получить доступ к серверу для подключения, но не к интернету в браузере ...

Моя настройка интерфейса выглядит следующим образом:

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #auto ens33 #iface ens33 inet dhcp # The primary network interface auto ens33 iface ens33 inet static address 192.168.1.72 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.254 #metric 10 # the secondary network interface auto ens34 iface ens34 inet static address 192.168.2.12 netmask 255.255.255.0 broadcast 192.168.2.255 gateway 192.168.2.3 dns-nameservers 8.8.4.4 8.8.8.8 #metric 100

У меня отсутствует правило маршрута или что-то в этом роде, но я ударил головой о стену в последние несколько дней на этом ... Может ли кто-то помочь мне? Мне нужна помощь! Заранее спасибо!! & Л; 3 & л; 3 & л; 3

0
задан 16 January 2018 в 01:14

2 ответа

Мне не совсем понятно, чего вы пытаетесь достичь. Позвольте мне предположить, что у вас есть два интерфейса ethernet: eth0 и eth1. Eth0 подключен к Интернету, а eth1 подключен к вашей домашней сети. В этом случае вы можете использовать свой сервер в качестве маршрутизатора, который дает доступ в Интернет на eth0 для всех устройств, подключенных к eth1.

Для этого вам понадобится сервер dhcp, который назначает IP-адреса устройствам, подключенным к вашему интерфейсу eht1.

Установка и настройка сервера Dhcp:

sudo apt-get install dnsmasq sudo nano /etc/dnsmasq.conf interface=eth1 # The interface for the dhcp server to listen to dhcp-range=192.168.179.10,192.168.179.150,255.255.255.0,12h # Dhcp server IP adress + Range + Netmask + Leasetime

Установка и настройка сервера Dhcp:

sudo nano /etc/sysctl.conf

раскомментирует строку

net.ipv4.ip_forward=1

, и изменения вступят в силу:

sudo sysctl -p

Измените IP-таблицы. Я рекомендую вам написать сценарий для этой цели, поэтому вы можете быстро сделать изменения, если вам нужно экспериментировать. Сценарий удалит все правила iptables, установит правила цепи для ACCEPT и добавит правила маршрутизации:

nano firewall-script.sh #!/bin/bash IPTABLES="/sbin/iptables" # ACCEPT everything by default. $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT # Set the nat/mangle/raw tables' chains to ACCEPT $IPTABLES -t nat -P PREROUTING ACCEPT $IPTABLES -t nat -P OUTPUT ACCEPT $IPTABLES -t nat -P POSTROUTING ACCEPT $IPTABLES -t mangle -P PREROUTING ACCEPT $IPTABLES -t mangle -P INPUT ACCEPT $IPTABLES -t mangle -P FORWARD ACCEPT $IPTABLES -t mangle -P OUTPUT ACCEPT $IPTABLES -t mangle -P POSTROUTING ACCEPT # Cleanup - Delete all iptables-rules. #------------------------------------------------------------------------------ # Delete all $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F # Delete all $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X # Zero all packets and counters. $IPTABLES -Z $IPTABLES -t nat -Z $IPTABLES -t mangle -Z #------------------------------------------------------------------------------ $IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE $IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i eth1 -o eth0 -j ACCEPT

Сохраните файл CTRL+X и сделайте его исполняемым chmod +x firewall-script.sh.

, когда вы хотите сохранить свои правила iptables - иначе они будут потеряны после перезагрузки - установите sudo apt-get install iptables-persistent. Если вы уже установили его, введите sudo dpkg-reconfigure iptables-persistent. Я рекомендую вам не сохранять правила, созданные моим скриптом, потому что он открывает все. Сценарий IPTABLES предназначен только для целей тестирования.

Теперь вы можете использовать свой сервер в качестве маршрутизатора. Следующим шагом будет изменение сценария для использования vpn-соединения сервера.

Запустите VPN-соединение. Когда соединение установлено типа ifconfig. Вы должны увидеть туннельное устройство. Я полагаю, что ваше vpn-соединение использует tun0, а eth1 подключено к вашей сети lan-homenetwork:

$IPTABLES -t nat -A POSTROUTING -o tun0 -j MASQUERADE $IPTABLES -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i eth1 -o tun0 -j ACCEPT

Теперь весь домашний трафик должен быть маршрутизирован через ваш vpn. Надеюсь, вам это поможет.

0
ответ дан 17 July 2018 в 22:57

Мне не совсем понятно, чего вы пытаетесь достичь. Позвольте мне предположить, что у вас есть два интерфейса ethernet: eth0 и eth1. Eth0 подключен к Интернету, а eth1 подключен к вашей домашней сети. В этом случае вы можете использовать свой сервер в качестве маршрутизатора, который дает доступ в Интернет на eth0 для всех устройств, подключенных к eth1.

Для этого вам понадобится сервер dhcp, который назначает IP-адреса устройствам, подключенным к вашему интерфейсу eht1.

Установка и настройка сервера Dhcp:

sudo apt-get install dnsmasq sudo nano /etc/dnsmasq.conf interface=eth1 # The interface for the dhcp server to listen to dhcp-range=192.168.179.10,192.168.179.150,255.255.255.0,12h # Dhcp server IP adress + Range + Netmask + Leasetime

Установка и настройка сервера Dhcp:

sudo nano /etc/sysctl.conf

раскомментирует строку

net.ipv4.ip_forward=1

, и изменения вступят в силу:

sudo sysctl -p

Измените IP-таблицы. Я рекомендую вам написать сценарий для этой цели, поэтому вы можете быстро сделать изменения, если вам нужно экспериментировать. Сценарий удалит все правила iptables, установит правила цепи для ACCEPT и добавит правила маршрутизации:

nano firewall-script.sh #!/bin/bash IPTABLES="/sbin/iptables" # ACCEPT everything by default. $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT # Set the nat/mangle/raw tables' chains to ACCEPT $IPTABLES -t nat -P PREROUTING ACCEPT $IPTABLES -t nat -P OUTPUT ACCEPT $IPTABLES -t nat -P POSTROUTING ACCEPT $IPTABLES -t mangle -P PREROUTING ACCEPT $IPTABLES -t mangle -P INPUT ACCEPT $IPTABLES -t mangle -P FORWARD ACCEPT $IPTABLES -t mangle -P OUTPUT ACCEPT $IPTABLES -t mangle -P POSTROUTING ACCEPT # Cleanup - Delete all iptables-rules. #------------------------------------------------------------------------------ # Delete all $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F # Delete all $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X # Zero all packets and counters. $IPTABLES -Z $IPTABLES -t nat -Z $IPTABLES -t mangle -Z #------------------------------------------------------------------------------ $IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE $IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i eth1 -o eth0 -j ACCEPT

Сохраните файл CTRL+X и сделайте его исполняемым chmod +x firewall-script.sh.

, когда вы хотите сохранить свои правила iptables - иначе они будут потеряны после перезагрузки - установите sudo apt-get install iptables-persistent. Если вы уже установили его, введите sudo dpkg-reconfigure iptables-persistent. Я рекомендую вам не сохранять правила, созданные моим скриптом, потому что он открывает все. Сценарий IPTABLES предназначен только для целей тестирования.

Теперь вы можете использовать свой сервер в качестве маршрутизатора. Следующим шагом будет изменение сценария для использования vpn-соединения сервера.

Запустите VPN-соединение. Когда соединение установлено типа ifconfig. Вы должны увидеть туннельное устройство. Я полагаю, что ваше vpn-соединение использует tun0, а eth1 подключено к вашей сети lan-homenetwork:

$IPTABLES -t nat -A POSTROUTING -o tun0 -j MASQUERADE $IPTABLES -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i eth1 -o tun0 -j ACCEPT

Теперь весь домашний трафик должен быть маршрутизирован через ваш vpn. Надеюсь, вам это поможет.

0
ответ дан 24 July 2018 в 13:32
  • 1
    Я хочу получить доступ к серверу vpn при подключении к Интернету № 1 (ens33 [GW192.168.1.254]), но я хочу, чтобы открытый сервер vpn затем маршрутизировал весь трафик vpn через интернет-соединение №2 (ens34 [GW192.168.2.3]) I теперь можно подключиться к vpn, но я не могу получить трафик, проходящий через второй шлюз. Если я прослушиваю второе устройство sudo tcpdump -ni ens34 udp and port 1101 (ens34) при подключении к серверу vpn и пытаюсь получить доступ к сети, я вижу некоторые пакеты, но они, похоже, блокируются. – Nan Rait 16 January 2018 в 20:20
  • 2
    U должен попытаться изменить команду iptables, которую я вам разместил. Мне кажется, что если вы хотите сделать свой vpn доступным для всех устройств за интерфейсом ens34. То, что я объяснил тебе в моем абрисе. Вам нужно только mod tun0, eth1, eth0 для ваших нужд. Что меня пугает, так это то, что вы говорите «интернет-соединение №1». и "подключение к Интернету 2" – AlexOnLinux 16 January 2018 в 22:33

Другие вопросы по тегам:

Похожие вопросы: