Заметки по настройке openvpn и терминального сервера на WINDOWS XP.

 

Настройка OpenVPN (HOWTO)

Инсталлируем openvpn-2.0.9-gui-1.0.3-install.exe для WINDOWS (без агента и web)

Рассмотрены 3 шага:

1. Создание сертификатов и ключей для OpenVPN сервера и нескольких клиентов

2. Создание файлов конфигурации OpenVPN сервера и клиентов

3. Запуск VPN и тестирование начального соединения

Настройка OpenVPN (HOWTO) или как это сделать быстро и просто

1. Создание сертификатов и ключей для OpenVPN сервера и нескольких клиентов

 

OpenVPN поддерживает двунаправленную аутентификацию, основанную на сертификатах, означающую, что клиент должен аутентифицировать сертификат сервера и наоборот перед установлением взаимного доверия.

 

И сервер и клиент вначале проверяют, что сертификат поздписан главным CA, а затем тестируют информацию в заголовке сертификата, такую как публичное имя сертификата и его тип (сервер или клиент).

 

Последовательность действий

1.        Создание основного Certificate Authority (CA) сертификата и ключа

2.        Создание сертификата и ключа сервера

3.        Создание сертификатов и ключей для 3-х клиентов

4.        Создание параметров Diffie Hellman

5.        Файлы ключей и сертификатов

1.1. Создание основного Certificate Authority (CA) сертификата и ключа

 

В Windows зайти в команднуюстроку(cmd.exe) и выполнить cd %ProgramFiles%/OpenVPN/easy-rsa выполнить командный файл init-config. При этом исходными файлами заменятся файлы конфигурации vars.bat и openssl.cnf

Отредактируем vars файл (называется vars.bat) и установим KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, и KEY_EMAIL параметры. Эти параметры заполнять обязательно (нельзя оставлять пустыми!).

 

Затем инифиализируем PKI:

Vars

clean-all

build-ca

 

Последняя команда (build-ca) создает certificate authority (CA) сертификат и ключ при помощи интерактивной openssl команды

 

Generating a 1024 bit RSA private key

............++++++

...........++++++

writing new private key to 'ca.key'

 

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

 

Country Name (2 letter code) [KG]:

State or Province Name (full name) [NA]:

Locality Name (eg, city) [BISHKEK]:

Organization Name (eg, company) [OpenVPN-TEST]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:OpenVPN-CA

Email Address [me@myhost.mydomain]:

 

В приведенной выше последовательности многие параметры по умолчанию имеют значения из файла vars.bat. Подробно нужно указать параметр Common Name. В примере используется "OpenVPN-CA".

1.2. Создание сертификата и ключа сервера

 

build-key-server server

 

Как и на предыдущем шаге, большинство параметров можно оставить по умолчанию. Когда запросит Common Name введем "server". Два других вопроса требуют положительного ответа (Yes): "Sign the certificate? [y/n]" и "1 out of 1 certificate requests certified, commit? [y/n]".

 

1.3. Создание сертификатов и ключей для 3-х клиентов

 

Создание сертификатов клиента похоже на предыдущий шаг:

build-key client1

build-key client2

build-key client3

 

Если вы хотите защитить паролем ключи клиента, используйте скрипт build-key-pass.

 

Помните, что каждому клиенту нужно ввести свое Common Name, т.е. "client1", "client2", и "client3". Для каждого клиента всегда нужно использовать уникальное имя.

 

1.4. Создание параметров Diffie Hellman

 

Diffie Hellman параметры должны быть созданы для OpenVPN сервера.

 

build-dh

 

Generating DH parameters, 1024 bit long safe prime, generator 2

This is going to take a long time

......................................

 

1.5. Файлы ключей и сертификатов

 

Вновь созданные ключи и сертификаты находятся в подкаталоге keys

 

Имя файла

Где нужен

Назначение

Секретный

ca.crt

сервер + все клиенты

Root CA certificate

НЕТ

ca.key

ключ подписывающей машины

Root CA key

ДА

dh{n}.pem

только на сервере

Diffie Hellman параметры

НЕТ

server.crt

только на сервере

Server сертификат

НЕТ

server.key

только на сервере

Server ключ

ДА

client1.crt

только на client1

Client1 сертификат

НЕТ

client1.key

только на client1

Client1 ключ

ДА

client2.crt

только на client2

Client2 сертификат

НЕТ

client2.key

только на client2

Client2 ключ

ДА

client3.crt

только на client3

Client3 сертификат

НЕТ

client3.key

только на client3

Client3 ключ

ДА

Окончательный шаг процесса создания ключей - копирование всех файлов на требуемые машины, при этом секретные файлы желательно передавать по защищенному каналу...

2. Создание файлов конфигурации OpenVPN сервера и клиентов
2.1. Пример конфигурационных файлов

Свою конфигурацию лучше базировать на исходных конфигурационных файлах OpenVPN.

 Их можно найти в меню (Пуск -> Программы -> OpenVPN -> OpenVPN Sample Configuration Files) или на диске (%ProgramFiles%/OpenVPN/sample-config)

В Linux, BSD, или unix-подобных ОС файлы конфигураций называются server.conf и client.conf, а в Windows называются server.ovpn и client.ovpn.

.2. Редактирование файла конфигурации сервера

Лучшее начало создания своей конфигурации сервера - воспользоваться примером этого файла из OpenVPN.

VPN создается с использованием виртуального TUN сетевого интерфейса (для роутинга), с ожиданием подключения клиентов на UDP порт 1194 (официальный номер порта OpenVPN),

 и распределением виртуальных адресов подключаемых клиентов из подсети 10.8.0.0/24.

Перед использованием примера файла конфигурации необходимо установить ca, cert, key, и dh параметры на файлы, полученные при создании PKI.

На этом шаге файл конфигурации готов к использованию. Или можно поменять следующие настройки:

  • Если используете Ethernet bridging, необходимо указать server-bridge и dev tap вместо server и dev tun.
  • Если ваш OpenVPN сервер прослушивает TCP порт вместо UDP порта, используйте proto tcp вместо proto udp (если необходимо прослушивать и TCP и UDP порты, необходимо запустить две независимые копии OpenVPN).
  • При необходимости использования другого виртаульного IP адресного пространства (вместо 10.8.0.0/24), нужно модифицировать директиву server. Помните, что это адресное пространство не должно использоваться вашей сетью.
  • Раскомментируйте директиву client-to-client, если хотите, чтобы клиенты могли устанавливать между собой соединения при помощи VPN. По умолчанию клиенты могут подлючаться только к серверу.
  • Если используете Linux, BSD, или Unix-подобную ОС, можно улучшить безопасность, раскомментировав директивы user nobody и group nobody.

Если необходимо запустить несколько копий OpenVPN на одной машине, каждая копия использует свой файл конфигурации. При этом необходимо выполнить следующие условия:

  • Используйте разные номера портов (port) для каждой запущенной копии OpenVPN (UDP и TCP протоколы используют разные пространства портов, таким образом можно запустить одну копию OpenVPN с прослушиванием порта UDP-1194, а другую - TCP-1194).
  • В Windows, каждой OpenVPN конфигурации необходим свой TAP-Win32 адаптер. Дополнительные адаптеры можно добавить из Пуск -> Программы -> OpenVPN -> Add a new TAP-Win32 virtual ethernet adapter.
  • Если несколько копий OpenVPN запускается в одном каталоге, установите директивы, создающие файлы с данными таким образом, чтобы каждая копия не перезаписывала файлы друг у друга. Это директивы log, log-append, status и ifconfig-pool-persist.

2.3. Редактирование конфигурационных файлов клиентов

 

В примере конфигурационного файла клиента (client.conf в Linux/BSD/Unix или client.ovpn в Windows) директивы по умолчанию отражают значения из

 примера конфигурацонного файла сервера.

 

Как и в серверном файле конфигурации, вначале отредактируйте значения параметров ca, cert и key , указав файлы, сгенерированные в PKI.

 Помните, что каждый клиент должен иметь свою пару сертификат/ключ (cert/key). Только ca файл один и тот-же на сервере и всех клиентах.

 

Затем отредактируйте remote директиву для указания хоста/IP адреса и номера порта OpenVPN сервера (если ваш OpenVPN сервер запущен за файрволом или NAT'ом, укажите реальный IP адрес шлюза, а также номер порта, который проброшен со шлюза к вашему OpenVPN серверу).

 

В завершении проверьте, совпадают ли директивы в конфигурационном файле клиента и сервера.

 Проверьте совпадение директив dev (tun или tap) и proto (udp или tcp).

 Также проверьте, чтобы comp-lzo и fragment, если используются, присутствовали в конфигурационных файлах сервера и клиента.

 

3. Запуск VPN и тестирование начального соединения
3.1. Запуск сервера

 

Вначале убедитесь, что OpenVPN сервер доступен из интернета

  • откройте UDP порт 1194 (или TCP/UDP порт, который вы указали в своей конфигурации)
  • или установите перенаправление UDP порта через файрвол/роутер к машине с запущенным OpenVPN сервером

 

Затем необходимо отключить файрвол на TAP/TUN интерфейсе

 

Для упрощения обнаружения неполадок лучше вначале запустить OpenVPN сервер из командной строки (или щелкнуть на .ovpn файле в Windows),

 чем запускать сервер как демон или сервис:

 

openvpn [server config file] 

 

При нормальном запуске можно увидеть это (на разных платформах вывод может немного отличаться):

 

Sun Feb  6 20:46:38 2005 OpenVPN 2.0_rc12 i686-suse-linux [SSL] [LZO] [EPOLL] built on Feb  5 2005

Sun Feb  6 20:46:38 2005 Diffie-Hellman initialized with 1024 bit key

Sun Feb  6 20:46:38 2005 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]

Sun Feb  6 20:46:38 2005 TUN/TAP device tun1 opened

Sun Feb  6 20:46:38 2005 /sbin/ifconfig tun1 10.8.0.1 pointopoint 10.8.0.2 mtu 1500

Sun Feb  6 20:46:38 2005 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2

Sun Feb  6 20:46:38 2005 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23 ET:0 EL:0 AF:3/1 ]

Sun Feb  6 20:46:38 2005 UDPv4 link local (bound): [undef]:1194

Sun Feb  6 20:46:38 2005 UDPv4 link remote: [undef]

Sun Feb  6 20:46:38 2005 MULTI: multi_init called, r=256 v=256

Sun Feb  6 20:46:38 2005 IFCONFIG POOL: base=10.8.0.4 size=62

Sun Feb  6 20:46:38 2005 IFCONFIG POOL LIST

Sun Feb  6 20:46:38 2005 Initialization Sequence Completed

 

3.2. Запуск клиента

 

Первый раз OpenVPN клиент лучше запускать из командной строки (или щелкнуть на .ovpn файле в Windows):

openvpn [client config file]

 

При нормальном запуске в Windows должны увидеть такой-же вывод, как и у сервера (см.выше), а в конце должно быть сообщение Initialization Sequence Completed.

 

Теперь попробуем пинг через VPN. Если используется роутинг (т.е. dev tun в файле конфигурации), выполняем:

ping 10.8.0.1

 

Если используется режим моста (т.е. dev tap в файле конфигурации), пробуем пинг к IP адресу в подсети сервера.

 

Если пинг проходит, примите поздравления! VPN функционирует.

 

3.3. Проблемы

 

Если пинг не проходит или инициализация OpenVPN клиента завершилась неудачей, здесь можно почитать некоторые симптомы и возможные решения проблем:

 

Сообщение об ошибке: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity).

 Эта ошибка означает, что клиент не смог установить соединение с сервером.

Решения проблемы:

  • Проверьте, что клиент использует корректное имя/IP сервера и номер порта.
  • Если компьютер с OpenVPN сервером находится в защищенной сети, проверьте, чтобы использовалось корректное правило
  •  перенаправления порта на брандмауэре/шлюзе сервера. К примеру ваш OpenVPN имеет IP адрес 192.168.4.4 за брандмауэром и
  • ожидает подключение клиентов на UDP порт 1194. NAT шлюза в подсети 192.168.4.x может иметь правило перенаправления порта, звучащее примерно так перенаправить UDP порт 1194 с внешнего IP адреса на 192.168.4.4.
  • Разрешить брандмауэру сервера входящие соединения на UDP порт 1194 (или другой TCP/UDP порт, который вы указали в файле конфигурации сервера).

 

Сообщение об ошибке: Initialization Sequence Completed with errors – такая ошибка может случится в Windows если (a) не запущен DHCP сервис, или (b) используется персональный брандмауэр сторонних производителей на XP SP2.Решение проблемы: Запустите DHCP сервис и проверьте, что ваш брандмауэр корректно работает с XP SP2.

 

Получено сообщение Initialization Sequence Completed, но пинг не проходит - это означает, что брандмауэр на сервере или клиенте блокирует VPN сетевой трафик на TUN/TAP интерфейсе.

Решение проблемы: запретите брандмауэру клиента (если есть) фильтрацию TUN/TAP интерфейса клиента. К примеру на Windows XP SP2 зайдите в Центр обеспечения безопасности -> Брандмауэр Windows -> Дополнительно и снимите галочку напротив TAP-Win32 адаптера

(запрещение брандмауэру клиента фильтровать TUN/TAP адаптер в целом приемлемо в перспективе безопасности,

так как вы по существу указываете брандмауэру не блокировать заверенный VPN трафик).

 Также удостоверьтесь, что TUN/TAP интерфейс на сервере не фильтруется брандмауэром

(выборочная фильтрация на TUN/TAP интерфейсе со стороны сервера дает определенные выгоды в безопасности. Политики доступа рассмотрены в другом месте).

 

Соединение установлено при использовании конфигурации proto udp, лог сервера содержит следующую строку:

TLS: Initial packet from x.x.x.x:x, sid=xxxxxxxx xxxxxxxx

однако лог клиента не содержит эквивалентной строки.

Решение проблемы: вы имеете одностороннее соединение от клиента к серверу. Соединение от сервера к клиенту блокируется брандмауэром,

 как правило со стороны клиента. Или (a) персональным брандмауэром, запущенным у клиента, или (b) NAT'ом шлюза/роутера клиента.

 Установите в брандмауэре разрешение на возврат UDP пакетов от сервера к клиентам.

# для маршрутизации внутренней сети

routing.bat

route -p add 220.220.220.0 mask 255.255.255.0 10.8.1.1

или

route -p add 192.168.1.4 mask 255.255.255.254 10.8.1.1

Пример client1.ovpn

client

dev tap

;dev tun

;dev-node MyTap

proto tcp

;proto udp

remote 77.51.187.104 1194

;remote my-server-2 1194

;remote-random

resolv-retry infinite

nobind

# Downgrade privileges after initialization (non-Windows only)

#user nobody

#nobody

persist-key

persist-tun

http-proxy 192.168.1.2 8080

;mute-replay-warnings

ca ca.crt

cert client1.crt

key client1.key

ns-cert-type server

;tls-auth ca.key 1

cipher BF-CBC

comp-lzo

# Set log file verbosity.

verb 3

# Silence repeating messages

;mute 20

Пример server1.ovpn

 

;local a.b.c.d

port 1194

proto tcp

;proto udp

dev tap

;dev tun

;dev-node MyTap

ca ca.crt

cert server1.crt

key server1.key

dh dh1024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

;push "route 192.168.10.0 255.255.255.0"

;push "route 192.168.20.0 255.255.255.0"

;push "redirect-gateway"

;push "dhcp-option DNS 10.8.0.1"

;push "dhcp-option WINS 10.8.0.1"

;client-to-client

;duplicate-cn

keepalive 10 120

;tls-auth ta.key 0

comp-lzo

;max-clients 100

# non-Windows systems.

;user nobody

;group nobody

persist-key

persist-tun

status openvpn-status.log

;log         openvpn.log

;log-append  openvpn.log

verb 3

;mute 20

 

Для запуска 1с. (Если установлен Citrix на сервере)

Устанавливаем ica client( можно 9) копируем настройки 7 версии в программ files и

E:\Documents and Settings\user\Application Data\ICAClient\

 

ЗАГРУЖАЕТ 1С  БЕЗ CITRIX В ОКНЕ ("D:\Program Files\Citrix\ICA Client\pn.exe"  /APP "1C" /PNI "passwd" /DI)

citrix 7 версия в окне проходит, 9 версия не получилось.

MEtaframe xp version 1.00 1467sp3

 

Рассмотрим настройку терминального сервера на Windows XP.

Можно почитать статью в инете. Там много чего познавательного. Единственно, что не совсем гладко настраивается терминальный сервер.

http://pkporhov.narod.ru/terminal.htm

Можно настроить терминальный сервер другим путем.

Из WINDOWS XP можно сделать сервер терминалов и подключаться по сети к удалённому рабочему столу удалённо, работая в отдельной сессии с графическим интерфейсом, при этом не отключая локального пользователя.

В безопасном режиме :

Copy %SystemRoot%\temp\termsrv.dll %SystemRoot%\system32\DLLCache\termsrv.dll - копируем в dll-кэш

copy %SystemRoot%\temp\termsrv.dll %SystemRoot%\system32\termsrv.dll - копируем в систем32

Скачать готовый SFX-архив terminal.exe (внутри всё необходимое)

net user asdf 1234 /add /expires:never /times:all  и net localgroup "Администраторы" asdf /add (из архива ) - добавляем пользователя asdf, пароль 1234 (будем подключаться такой учёткой)

Пользователя можно переименовать как вам угодно.

Подключение к удаленному столу , просмотр количества подключенных юзеров, наша dlltermsrv.dll в архиве rdp.rar

Хорошая программа Teamviewer для подключения к компу удаленно в случае управления компьютером на расстоянии (teamviewer.rar).Устанавливается на обоих компьютерах. Вариант radmin , netop – но freeware.

Дополнение.

Запуск 1с8.1 в терминальном режиме. (Не обнаружен ключ защиты).

1с8.1 устанавливаем на сервере с эмулятором или с ключом... Но в терминалке (на servere 2003) с клиентской машины(xpsp3) 1с8.1 через удаленный рабочий стол запустится только с ключом  /console и exe  файлом от server2003(sp2)  в архиве term1c8.rar   и только одним пользователем с правами администратора (для консольного режима)!!!! (Даже если на клиентской машине не установлен 1с8.1!!!). Запуск удаленного стола с машины xpsp3 на xpsp3 проходит, но 1с8 не может обнаружить ключ....удаленный стол mstsc проверялся на версиях с серверов 2003 и с xpsp3.


 

1c8.1.15.14 - как заставить работать в терминальном режиме ?

baskend.dll и эмулятор в архиве архив1,архив2,архив3,архив4 скачать. Позволяет работать неограниченному числу пользователей в терминальном режиме на сервере 2003.

 

Хостинг от uCoz