Назад | Перейти на главную страницу

Туннелирование общедоступного IP-адреса на удаленную машину

У меня Linux сервер А с блоком из 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-адреса, на которые они не имеют права.

Я остановился на мосте Ethernet. Множество чрезвычайно подробных примеров, которые можно найти в Интернете, но это оказывается довольно легко:

Во-первых, на А, /etc/network/interfaces был изменен с:

auto eth0
iface eth0 inet static
    address 8.8.8.122
    netmask 255.255.255.248
    gateway 8.8.8.121

кому:

auto br0
iface br0 inet static
    address 8.8.8.122
    netmask 255.255.255.248
    gateway 8.8.8.121
    pre-up openvpn --mktun --dev tap0
    bridge_ports eth0 tap0
    bridge_fd 3

чтобы навести мост eth0 (настоящий WAN-интерфейс) с tap0 (новый туннельный интерфейс) при загрузке.

Затем на А, запустите сервер openvpn с помощью:

openvpn --dev tap0

На B, подключитесь к нему с помощью:

openvpn --remote 8.8.8.122 --dev tap0 --route-gateway 8.8.8.121 \
        --redirect-gateway def1 --ifconfig 8.8.8.123 255.255.255.248

Это супер простая конфигурация Искал, и работает - B теперь общедоступен по адресу 8.8.8.123, а исходящие соединения происходят с того же адреса.

Добавить безопасность (--secret, --tls-serverи т. д.) по мере необходимости, конечно.

Думаю, тебе придется нелегко. У большинства брандмауэров возникнут трудности с маршрутизацией трафика 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 box и дал ему порт, который вы хотели для его WAN. Затем настройте сервер OpenVPN в локальной подсети (который полностью готов к работе в веб-интерфейсе pfSense) и настройте другой компьютер с виртуальным IP-адресом, указывающим на его локальный IP-адрес OpenVPN. Это даст вам возможность для расширения позже (добавьте больше машин с виртуальными IP-адресами, логически перенаправьте определенные порты на разные серверы, действительно получите полноценную настройку LAN / WAN / DMZ с OpenVPN для виртуального доступа. Не говоря уже о том, что у вас будет полноценный маршрутизатор, поэтому он, вероятно, будет более безопасным.