Я установил сервер OpenVPN в своей рабочей сети, и я могу получить доступ к серверу с удаленного компьютера через vpn. Однако я не могу понять, как получить доступ к локальной сети за сервером.
Схема сети:
---------- ------- -------- ----------------
|Internet|-->|Modem|-->|Switch|-->|OpenVPN Server|
---------- ------- -------- ----------------
Сервер - это сервер ubuntu. Я включил переадресацию IP на сервере.
Наш шлюз / модем - это Linksys WAG54G2 и подключается к машине WinXP.
Кто-нибудь знает, как открыть подсеть, в которой находится сервер OpenVPN ???
Эта установка специфична для CentOS, но ваша установка, вероятно, будет аналогичной. Конфигурация также предназначена для версии 2.0, в серии 2.1 используется другой формат файла конфигурации. Также предполагается, что для этого вы используете два Linux-сервера, а не просто присоединяетесь к конечной точке Windows XP. - поэтому вам нужно будет внести изменения в используемую вами установку Windows XP. В этом примере адреса были выбраны случайным образом, поэтому вот как они назначаются:
и
Вам будет проще всего использовать статический ключ. Прочтите здесь инструкции, как его сделать. Вот короткая версия, сделанная из 1.1.1.1 с правами root:
openvpn --genkey --secret > /etc/openvpn/secret.key
chmod 600 /etc/openvpn/secret.key
scp /etc/openvpn/static.key root@2.2.2.2:/etc/openvpn/secret.key
ssh root@2.2.2.2
chmod 600 /etc/openvpn/secret.key
exit
Вы бы поместили этот текст в /etc/openvpn/home-vpn
на вашем рабочем компьютере (1.1.1.1), предполагая, что OpenVPN читает содержимое /etc/openvpn
при запуске.
#daemon home-vpn
local 1.1.1.1
remote 2.2.2.2
proto tcp-server
port 1194
dev tun0
ifconfig 192.168.1.254 192.168.2.254
route 192.168.2.0 255.255.255.0 192.168.1.254 6
route-delay 5
verb 3
nice 1
secret /etc/openvpn/secret.key
comp-lzo
passtos
Вы бы поместили этот текст в /etc/openvpn/work-vpn
на вашем домашнем компьютере (2.2.2.2), предполагая, что OpenVPN читает содержимое /etc/openvpn
при запуске.
#daemon work-vpn
local 2.2.2.2
remote 1.1.1.1
proto tcp-server
port 1194
dev tun0
ifconfig 192.168.2.254 192.168.1.254
route 192.168.1.0 255.255.255.0 192.168.2.254 6
route-delay 5
verb 3
nice 1
secret /etc/openvpn/secret.key
comp-lzo
passtos
В приведенных здесь примерах служба openvpn работает с хорошим приоритетом 1; если вы этого не хотите, удалите всю строку, которая гласит nice 1
чтобы он работал как любая другая программа. Сжатие включено через comp-lzo
на обоих концах, и passtos
позволяет битам пакета TOS выжить через VPN. Оба они также могут быть отключены, если хотите. Некоторые заметят, что стоимость маршрута 6 кажется немного завышенной, и это правда, она может быть намного ниже (4-5 в зависимости от настройки), но 6 обеспечивает достаточный «охват» для подсетей и дополнительной маршрутизации.
И, наконец, поскольку я публикую это в 1:31 утра, я уверен, что что-то забыл или что-то пометил неправильно, поэтому, пожалуйста, не стесняйтесь просмотреть настройки и перепроверить их.
Когда ваш клиент OpenVPN подключается к серверу OpenVPN, он теперь будет иметь как минимум 2 IP-адреса.
Проблема в том, что в обычных обстоятельствах ваш клиент не знает, куда отправлять трафик для диапазона IP-адресов внутри вашей локальной сети. У клиента обычно есть шлюз по умолчанию (то есть, куда я могу отправлять трафик для пунктов назначения, которые я не знаю), который пересылает вашему интернет-провайдеру.
Лучшее решение этой дилеммы - настроить маршрутизацию клиентом OpenVPN после того, как он успешно установит VPN-туннель. Взгляните на функцию push для конфигурации сервера OpenVPN. Например:
нажимаем "маршрут LAN-IP SUBNET"
(если ваш удаленный клиент - это Windows, вам может потребоваться добавить что-то вроде приведенного ниже в его конфигурацию клиента)
маршрут-метод exe
Комбинация вышеперечисленного должна получать трафик от вашего удаленного клиента через VPN к узлам локальной сети, но теперь вам нужно, чтобы узлы локальной сети знали, куда отправлять ответы.
Если вы подключаетесь только вне работы через сервер OpenVPN, вы можете просто убедиться, что этот VPN-сервер является шлюзом по умолчанию для вашей локальной сети. В противном случае, ...