OpenVPN - не видно сетей за сервером и за клиентом, l
Недавно познакомился с этим замечательным творением - pfSense. Остановился на pfSense-2.0-RC1. Встала задача объединить две сети через VPN. Предполагается использование pfSense-2.0-RC1. Необходимо, чтобы компьютеры из одной сети видели другую и наоборот.
Схема простая: (сеть 192.168.2.0/24)==(pfSense)==(Интернет)==(pfSense)==(сеть 192.168.0.0/24) || || == (OpenVPN)==========
На VirtualBox-е поставил две pfSense-2.0 и две WinXP. Одна WinXP имитирует сеть 192.168.2.0/24, другая - 192.168.0.0/24. В итоге получилась такая схема: (WinXP>192.168.2.50)==(192.168.2.70<pfsense>192.168.1.70)====(192.168.1.80<pfsense>192.168.0.80)==(192.168.0.50<winxp)<br> ||===adsl(Dlink>>192.168.1.1)
По мотивам топика: http://forum.pfsense.org/index.php/topic,32662.msg168997.html#msg168997 составил для себя мануал, попутно совершая все описанные в нем действия. Канал OpenVPN поднялся, однако не добился главного - сети друг друга не видят.
Когда дошел до конца и посмотрел логи, смутило следующее:
1. openvpn[45483]: ERROR: FreeBSD route add command failed: external program exited with error status: 1
2. [DEPRECATED FEATURE ENABLED: random-resolv] Resolving hostnames will use randomisation if more than one IP address is found
3. А потом, сходив туда, куда меня послала эта запись в логе: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
И вставив этот параметр в пункт конфигурации клиента - Advanced configuration remote-cert-tls server;
В итоге получил такое: openvpn[41731]: TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
В связи с этим обращаюсь к уважаемому сообществу с просьбой о помощи разобраться с настройкой, а также хочу задать такие вопросы:
1. FreeBSD route add command failed - Почему (и какой) маршрут не прописывается? Судя по выводу netstat –rn, все необходимые маршруты прописались:
2. DEPRECATED FEATURE ENABLED: random-resolv – Где можно отключить/включить эту опцию?
3. Почему после включения защиты от Man-in-the-Middle - remote-cert-tls server, появляется "certificate verify failed"? Кстати, если включить ns-cert-type server происходит тоже самое. (недавно настраивал связку ubuntu (сервер) и winXP (клиент) http://forum.ubuntu.ru/index.php?topic=146868.0 - там этот параметр ошибок не вызывал)
4. По-видимому не до конца разобрался c правилами FW. Это, скорее всего, основная просьба - помочь с ними разобраться, или подсказать где можно прочесть об их настройке применительно к OpenVPN.
Теперь по порядку - что я делал. Мануал, который составил:
1 . Создаем сертификат (Certificate Authority): System-> Cert Manager ->add or import CAs
2. Создаем сертификат сервера OpenVPN. Вкладка Certificates => добавить ``` Descriptive name (имя сертификата) = OfficeServerOVPN Method Create an internal certificate = Create an internal Certificate Certificate authority = OfficeFilials keylength = 2048 bits lifetime = 3650 Days Distinguished name Country Code = UA State or province (область) = DP City (город) = DP Organisation (организация) = Mags email Address (адрес) = rom023@mail.ru common name internal-ca = OfficeServerOVPN
- Server Mode = Remote Access SSL/TSL - Protocol = UDP - Interface = WAN - Local Port = 2813 - Description = ServerOfficeFilials - TLS Authentication = Ставим галку - Automatically generate a shared = Ставим галку TLS authentication key. - Peer Certification authority server = OfficeFilials - Server Certificate = OfficeServerOVPN - DH Parameters = 2048 Bits - Enryption Algorithm = BF-CBC (128 Bits) (Можновыбрать лююой другой) - Tunnel Network = 10.10.100.0/24 (Здесь указываем ip, которые будут выдаваться клиентам) - Redirect Gateway = Галки нет - Local Network = 192.168.2.0/24 (Здесь указываем LAN который будет видно клиентам) - Concurrent connections = 100 - Compression = Ставим галку - Type-of-Service = Галки нет - Inter-client communication = Ставим галку - Duplicate Connections = Галки нет - Dynamic IP = Ставим галку Allow connected clients to retain their connect if their IP changes. - Address Pool = Ставим галку Provide a virtual adapter IP address to clients (see Tunnel Network) - DNS Default Domain = Галки нет Provide a default domain name to clients - DNS Servers = Галки нет Provide a DNS server list to clients - NTP Servers = Галки нет Provide a NTP server list to clients - NetBIOS Options = Галки нет Enable NetBIOS over TCP/IP If this option is not set, all NetBIOS-over-TCP/IP options (including WINS) will be disabled. - Advanced, я вставил такие опции: route 192.168.0.0 255.255.255.0; - сеть за клиентом push "route 192.168.3.0 255.255.255.0; - сеть 2 филиала
Добавляем правило Action = Pass Interface => WAN Protocol = UDP Source = any Destination = WAN address Destination Port Range = 2813 (указываем порты которые используем для OPENVPN) Description
Username => Filial-Kiev001 (или любое другое) password => свой full name => Filial-Kiev_Kreschatik expiration date => пусто group membership => OpenVPN (предварительно надо создать)
Создаем сертификат для пользователя User Certificates => добавить Descriptive Name => Filial-Kiev001 Certificate Authority server => Office-Filials (как в шаге 1) keylength => 2048 Bits Lifetime => 3650 Days
Server Mode = Peer-To-Peer (SSL/TSL) Protocol = UDP Device mode = tun Interface = WAN Local port = (пусто) Server host or address = 192.168.1.70 Server port = 2813 Proxy host or address = (пусто) Proxy port = (пусто) Proxy authentication extra options = (пусто) Server host name resolution = галка Description = (пусто) TLS Authentication = галка и тут вставил tls ключ сервера Peer Certificate Authority = OfficeFilials Client Certificate = Filial-Kiev001 Encryption algorithm = BF-CBC Hardware Crypto = (пусто) Tunnel Network = 10.10.100.0/24 Remote Network = 192.168.2.0/24 Limit outgoing bandwidth = (пусто) Compression = галка Type-of-Service = (пусто) Advanced = (пусто)
В общем разобрался я…
Идеология iptables ввела в заблуждение.
Чего сделал: 1. Сброс до дефолтных настроек. 2. Обновился до последней версии. 3. Настройка сервера и клиента по новой. 4. NAT исходящий - выставил автоматические правила. (знаю, что не совсем правильно, буду экспериментировать) 5. Интерфейс OpenVPN - разрешено все. (тоже самое). 6. LAN - разрешил трафик из вирт. сети OpenVPN и сетей за сервером и клиентом (соответственно). 7. TLS аутентификацию отключил.
Оказалось еще проще - надо разрешить трафик с/на OpenVPN/ Осталось только изучить ман по PF…
Наш человек! Осталось только изучить ман по PF… мы тоже сначала тыкаем потом мануал читаем ;D