У меня есть сервер Linux A с блоком из 5 общедоступных IP-адресов 8.8.8.122/29
. В настоящее время 8.8.8.122
назначается eth0
и 8.8.8.123
назначается eth0:1
.
У меня есть другая машина Linux B в удаленном месте, за NAT. Я хотел бы установить туннель между ними, чтобы B мог использовать IP-адрес в 8.8.8.123
качестве своего основного IP-адреса.
OpenVPN, вероятно, является ответом, но я не могу понять, как это настроить ( topology subnet
или topology p2p
может быть уместным. Или я должен использовать мост Ethernet?). Безопасность и шифрование не являются большой проблемой на этом этапе, поэтому GRE также будет в порядке - компьютер B будет исходить с известного IP-адреса и может быть аутентифицирован на основании этого.
Как я могу это сделать? Кто-нибудь может предложить конфигурацию OpenVPN или какой-то другой подход, который может работать в этой ситуации? В идеале, он также сможет обрабатывать несколько клиентов (например, обмениваться всеми четырьмя запасными IP-адресами с другими машинами), не позволяя этим клиентам использовать IP-адреса, на которые у них нет прав.
iptables
правилами. B находится за NAT, на котором работает еще один сервер Linuxshorewall
.Ответы:
Я закончил тем, что пошел с мостом Ethernet. Множество невероятно подробных примеров, чтобы пройти через онлайн, но это оказывается довольно легко:
Во- первых, на А ,
/etc/network/interfaces
был изменен с:чтобы:
для соединения
eth0
(реальный интерфейс WAN) сtap0
(новым туннельным интерфейсом) при загрузке.Затем на A запустите сервер openvpn с:
На B подключитесь к нему с помощью:
Это супер простая конфигурация, которую я искал, и она работает - B теперь общедоступен в 8.8.8.123, и исходящие соединения происходят с того же адреса.
Конечно, добавляйте безопасность (
--secret
и--tls-server
т. Д.) По мере необходимости.источник
pre-up openvpn
строку , чтобы создатьtap1
тоже добавитьtap1
кbridge_ports
, и запустить еще один экземпляр OpenVPN сopenvpn --dev tap1
.Я думаю, тебе будет тяжело. Большинству брандмауэров будет трудно маршрутизировать трафик OpenVPN, если обе стороны VPN находятся в одной подсети.
Если вы пытаетесь маршрутизировать для общего доступа, я бы переместил оба сервера в разные подсети с ваших публичных адресов, а затем использовал бы виртуальные IP-адреса (от 1 до 1 Nat) для их соединения. Для соединения двух сайтов будет работать OpenVPN или туннель IP-Sec.
Виртуальные IP-адреса: http://doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses%3F
Сайт на сайт: http://doc.pfsense.org/index.php/VPN_Capability_IPsec
Редактировать на основе комментариев:
Я лично установил бы pfSense на коробке A и дал бы порт, который вы хотели для его WAN. Затем настройте сервер OpenVPN в локальной подсети (который готов к работе в веб-интерфейсе pfSense) и настройте другой компьютер с виртуальным IP-адресом, указанным на его локальный IP-адрес OpenVPN. Это даст вам возможность для дальнейшего расширения (добавьте больше машин с виртуальными IP-адресами, логически перенаправляйте определенные порты на разные серверы, действительно установите полноценную настройку LAN / WAN / DMZ с OpenVPN для виртуального доступа. Не говоря уже о том, что у вас будет полноценный маршрутизатор, так что он, вероятно, будет более безопасным.
источник
push "route 50.7.19.122 255.255.255.255 net_gateway"
будет гарантировать, что данные VPN все еще передаются по обычной сети.