У меня есть размещенный сервер Ubuntu с несколькими дополнительными глобальными IP-адресами, присвоенными подынтерфейсам (eth0:0, eth0:1). Они в том же блоке как основной IP-адрес, присвоенный eth0, и все полностью открыты для мира (за исключением firewalled на машине).
Я хотел бы смочь использовать один из дополнительных IP-адресов как конечная точка VPN для удаленной машины Windows. Идеально, это был бы некоторый протокол VPN, исходно поддерживаемый Windows так, чтобы я не должен был устанавливать заказное программное обеспечение на машине Windows.
Обычно я просто использовал бы что-то как OpenVPN, но я не могу вполне заставить его делать то, что я хочу. Я хочу как можно больше прозрачности. Идеально, трафик был бы просто передан по VPN, и машина Windows будет действовать, как будто это было в сети сервера. Идеально, это имело бы полную прозрачность для трафика IP. Очевидно, только одна машина Windows соединилась бы за один раз.
Есть ли какой-либо пакет Ubuntu, который сделает то, что я хочу? Или есть ли некоторый способ заставить OpenVPN быть полностью очевидным для входящего трафика?
Этот может быть решением для Вашей проблемы. Если не "туннель L2 openvpn" должен быть поиском в Вашей любимой поисковой системе, столь же тюдоровский сказал. Держите нас в курсе на своем успехе!
Самая прозрачная опция является образованием моста Ethernet. Детали варьируются распределением, но в основном Вы запустили бы путем превращения eth0
в мост br0
:
iface eth0 inet manual
iface br0 inet static
address, gateway ... # anything that was on eth0
bridge_ports eth0 # just eth0 for now
bridge_stp off # no loop risk => no need for waits
bridge_waitport 0
bridge_fd 0
В значительной степени что-либо Вы сделали на eth0
Вы сделали бы на br0
вместо этого: устанавливая адреса, iptables правила...
После этого Вы установили бы OpenVPN в режиме касания: Ваши клиенты VPN находятся теперь в LAN с tap0
.
Наконец, как Вы, вероятно, предположили, мы brctl addif br0 tap0
создание одной большой LAN со всеми. Ваша машина Windows может теперь просто взять IP-адрес на LAN: фактически, это имеет порт Ethernet там.
Я сделал это, потому что мне был нужен он, и это работает, но... считайте отказ от небольшого количества прозрачности и NATting трафиком вместо этого. Это просто намного легче. Это может даже быть столь же просто как установка VM, соединив его мостом к eth0
(вполне достаточная поддержка GUI того) и алгоритм установки на нем (почти один щелчок, и это легко поддерживает Apple, Android, Windows...).