Я запускаю сервер 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
Мне не совсем понятно, чего вы пытаетесь достичь. Позвольте мне предположить, что у вас есть два интерфейса 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. Надеюсь, вам это поможет.
Мне не совсем понятно, чего вы пытаетесь достичь. Позвольте мне предположить, что у вас есть два интерфейса 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. Надеюсь, вам это поможет.