Автор:
Сергей Черепенин- Короткий URL: openvpn/windows
Организация соединения с использованием статических ключей
В данной главе рассматривается подготовка и организация vpn соединения с использованием статического ключа. В качестве сервера используется компьютер с операционной системой Debian GNU/Linux Etch на ядре 2.6.18-4-686, а в качестве клиента - Windows 2003 SP2.
Настройки сетевых интерфейсов сервера и клиента:
- сервер
$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:76:A1:EF:BB
inet addr:10.0.17.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::204:76ff:fea1:efbb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5663951 errors:0 dropped:0 overruns:1 frame:0
TX packets:2928925 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1850432381 (1.7 GiB) TX bytes:330532572 (315.2 MiB)
Interrupt:169
eth1 Link encap:Ethernet HWaddr 00:60:08:20:7B:0B
inet addr:192.168.16.15 Bcast:192.168.16.255 Mask:255.255.255.0
inet6 addr: fe80::260:8ff:fe20:7b0b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:104476 errors:0 dropped:0 overruns:0 frame:0
TX packets:120582 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19294593 (18.4 MiB) TX bytes:48250297 (46.0 MiB)
Interrupt:185 Base address:0xc400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:64752 errors:0 dropped:0 overruns:0 frame:0
TX packets:64752 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:43343011 (41.3 MiB) TX bytes:43343011 (41.3 MiB)
- клиент
C:\Documents and Settings\Administrator>ipconfig /all
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . : net.nt
Description . . . . . . . . . . . : 3Com EtherLink XL 10/100 PCI For Complete
PC Management NIC (3C905C-TX)
Physical Address. . . . . . . . . : 00-04-75-75-46-C1
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.16.197
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.16.15
DHCP Server . . . . . . . . . . . : 192.168.16.15
DNS Servers . . . . . . . . . . . : 192.168.16.15
Lease Obtained. . . . . . . . . . : 12 июля 2011 г. 11:49:13
Lease Expires . . . . . . . . . . : 12 июля 2011 г. 11:59:13
Теперь необходимо проинсталлировать необходимое программное обеспечение принятым, для каждой операционной системы, способом.
На сервере под управлением ОС Debian GNU/Linux достаточно выполнить команду:
$ sudo apt-get install openvpn -y
Список файлов, входящих в состав пакета openvpn_2.0.9-4_i386.deb можно просмотреть с помощью команды:
$ sudo dpkg -L openvpn
Кроме этого, проверьте имеет ли Ваше ядро поддержку TUN/TAP устройств. Сделать это можно выполнив следующую команду:
$ grep CONFIG_TUN /boot/config-`uname -r`
CONFIG_TUN=m
Если Ваше ядро не поддерживает эти устройства:
$ grep CONFIG_TUN /boot/config-`uname -r`
# CONFIG_TUN is not set
то для продолжения Вам необходимо скомпилировать этот модуль.
На клиенте, под управлением ОС Windows 2003 SP2, необходимо в первую очередь получить инсталляционный файл. Скачать его можно с помощью ссылки. На момент написания статьи текущая версия OpenVPN - 2.0.9. Затем необходимо проинсталлировать полученное программное обеспечение обычным вызовом .exe файла. Во время инсталляции оставьте все значения по умолчанию.
После установки необходимо сгенерировать статический ключ на любом компьютере - сервере или клиенте, скопировать его на другой компьютер и отредактировать конфигурационные файлы сервера и клиента.
- Для генерации статического ключа в ОС Debian необходимо выполнить следующую команду:
$ sudo openvpn --genkey --secret /etc/openvpn/static.key
- Для генерации статического ключа в ОС Windows необходимо запустить следующую команду: Пуск -> Программы -> OpenVPN -> Generate a static OpenVPN key. В результате будет создан файл C:\Program Files\OpenVPN\config\key.txt. Затем необходимо скопировать этот ключ на другого участника соединения.
Далее отредактируйте конфигурационные файлы сервера и клиента:
- конфигурационный файл сервера /etc/openvpn/sample.conf:
cat /etc/openvpn/sample.conf
dev tap
ifconfig 172.16.0.1 255.255.255.0
secret key.txt
comp-lzo
- конфигурационный файл клиента C:\Program Files\OpenVPN\config\sample.ovpn:
remote 192.168.16.15
dev tap
ifconfig 172.16.0.2 255.255.255.0
secret key.txt
comp-lzo
Из указанных выше конфигурационных файлов видно, что различие серверного и клиентского конфигов очень мало, и сервером будет тот компьютер, у которого не указан параметр remote
Выполним команду на сервере:
sudo openvpn --config /etc/openvpn/sample.conf
Tue Jul 12 11:54:44 2011 OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Jan 21 2007
Tue Jul 12 11:54:44 2011 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Tue Jul 12 11:54:44 2011 WARNING: file 'key.txt' is group or others accessible
Tue Jul 12 11:54:44 2011 TUN/TAP device tap0 opened
Tue Jul 12 11:54:44 2011 /sbin/ifconfig tap0 172.16.0.1 netmask 255.255.255.0 mtu 1500 broadcast 172.16.0.255
Tue Jul 12 11:54:44 2011 UDPv4 link local (bound): [undef]:1194
Tue Jul 12 11:54:44 2011 UDPv4 link remote: [undef]
Tue Jul 12 11:54:57 2011 Peer Connection Initiated with 192.168.16.197:1194
Tue Jul 12 11:54:58 2011 Initialization Sequence Completed
Затем на windows:
Запустить сервис OpenVPN под Windows можно и из cmd:
C:\Documents and Settings\Administrator>cd "c:\Program Files\OpenVPN\config"
C:\Program Files\OpenVPN\config>openvpn --config sample.ovpn
Tue Jul 12 12:52:24 2011 us=640078 Current Parameter Settings:
Tue Jul 12 12:52:24 2011 us=640364 config = 'sample.ovpn'
Tue Jul 12 12:52:24 2011 us=640535 mode = 0
Tue Jul 12 12:52:24 2011 us=640688 show_ciphers = DISABLED
Tue Jul 12 12:52:24 2011 us=640852 show_digests = DISABLED
Tue Jul 12 12:52:24 2011 us=641022 show_engines = DISABLED
Tue Jul 12 12:52:24 2011 us=641192 genkey = DISABLED
Tue Jul 12 12:52:24 2011 us=641358 key_pass_file = '[UNDEF]'
Tue Jul 12 12:52:24 2011 us=641529 show_tls_ciphers = DISABLED
Tue Jul 12 12:52:24 2011 us=641706 proto = 0
Tue Jul 12 12:52:24 2011 us=641863 NOTE: --mute triggered...
Tue Jul 112 12:52:24 2011 us=642076 178 variation(s) on previous 10 message(s) su
ppressed by --mute
Tue Jul 12 12:52:24 2011 us=642346 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built o
n Oct 1 2006
Tue Jul 12 12:52:24 2011 us=643308 IMPORTANT: OpenVPN's default port number is n
ow 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta1
6 and earlier used 5000 as the default port.
Tue Jul 12 12:52:24 2011 us=643684 WARNING: --ping should normally be used with
--ping-restart or --ping-exit
Tue Jul 12 12:52:24 2011 us=644588 Static Encrypt: Cipher 'BF-CBC' initialized w
ith 128 bit key
Tue Jul 12 12:52:24 2011 us=644902 Static Encrypt: Using 160 bit message hash 'S
HA1' for HMAC authentication
Tue Jul 12 12:52:24 2011 us=645257 Static Decrypt: Cipher 'BF-CBC' initialized w
ith 128 bit key
Tue Jul 12 12:52:24 2011 us=645528 Static Decrypt: Using 160 bit message hash 'S
HA1' for HMAC authentication
Tue Jul 12 12:52:24 2011 us=645839 LZO compression initialized
Tue Jul 12 12:52:24 2011 us=650456 TAP-WIN32 device [Local Area Connection 2] op
ened: \\.\Global\{59380ED2-2769-41B0-97F6-C4BC571471CA}.tap
Tue Jul 12 12:52:24 2011 us=650817 TAP-Win32 Driver Version 8.4
Tue Jul 12 12:52:24 2011 us=651030 TAP-Win32 MTU=1500
Tue Jul 12 12:52:24 2011 us=651244 Notified TAP-Win32 driver to set a DHCP IP/ne
tmask of 172.16.0.2/255.255.255.0 on interface {59380ED2-2769-41B0-97F6-C4BC5714
71CA} [DHCP-serv: 172.16.0.0, lease-time: 31536000]
Tue Jul 12 12:52:24 2011 us=687896 Successful ARP Flush on interface [65540] {59
380ED2-2769-41B0-97F6-C4BC571471CA}
Tue Jul 12 12:52:24 2011 us=694501 Data Channel MTU parms [ L:1577 D:1450 EF:45
EB:135 ET:32 EL:0 AF:3/1 ]
Tue Jul 12 12:52:24 2011 us=698395 Local Options String: 'V4,dev-type tap,link-m
tu 1577,tun-mtu 1532,proto UDPv4,ifconfig 172.16.0.0 255.255.255.0,comp-lzo,ciph
er BF-CBC,auth SHA1,keysize 128,secret'
Tue Jul 12 12:52:24 2011 us=704162 Expected Remote Options String: 'V4,dev-type
tap,link-mtu 1577,tun-mtu 1532,proto UDPv4,ifconfig 172.16.0.0 255.255.255.0,com
p-lzo,cipher BF-CBC,auth SHA1,keysize 128,secret'
Tue Jul 12 12:52:24 2011 us=710006 Local Options hash (VER=V4): '94889dd0'
Tue Jul 12 12:52:24 2011 us=712199 Expected Remote Options hash (VER=V4): '94889
dd0'
Tue Jul 12 12:52:24 2011 us=716063 Socket Buffers: R=[8192->8192] S=[8192->8192]
Tue Jul 12 12:52:24 2011 us=720016 UDPv4 link local (bound): [undef]:1194
Tue Jul 12 12:52:24 2011 us=722180 UDPv4 link remote: 192.168.16.15:1194
Tue Jul 12 12:52:30 2011 us=303168 Peer Connection Initiated with 192.168.16.15:
1194
Tue Jul 12 12:52:31 2011 us=54350 TEST ROUTES: 0/0 succeeded len=-1 ret=1 a=0 u/
d=up
Tue Jul 12 12:52:31 2011 us=58342 Initialization Sequence Completed
Теперь проверьте состояние интерфейсов при помощи команды /sbin/ifconfig на сервере:
/sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:76:A1:EF:BB
inet addr:10.0.17.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::204:76ff:fea1:efbb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5663951 errors:0 dropped:0 overruns:1 frame:0
TX packets:2928925 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1850432381 (1.7 GiB) TX bytes:330532572 (315.2 MiB)
Interrupt:169
eth1 Link encap:Ethernet HWaddr 00:60:08:20:7B:0B
inet addr:192.168.16.15 Bcast:192.168.16.255 Mask:255.255.255.0
inet6 addr: fe80::260:8ff:fe20:7b0b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:104476 errors:0 dropped:0 overruns:0 frame:0
TX packets:120582 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19294593 (18.4 MiB) TX bytes:48250297 (46.0 MiB)
Interrupt:185 Base address:0xc400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:64752 errors:0 dropped:0 overruns:0 frame:0
TX packets:64752 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:43343011 (41.3 MiB) TX bytes:43343011 (41.3 MiB)
tap0 Link encap:Ethernet HWaddr 86:FA:EC:53:C3:84
inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0
inet6 addr: fe80::84fa:ecff:fe53:c384/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:83 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:10893 (10.6 KiB) TX bytes:9344 (9.1 KiB)
И на windows-клиенте при помощи команды ipconfig /all:
C:\Documents and Settings\Administrator>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : win0
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : net.nt
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . : net.nt
Description . . . . . . . . . . . : 3Com EtherLink XL 10/100 PCI For Complete
PC Management NIC (3C905C-TX)
Physical Address. . . . . . . . . : 00-04-75-75-46-C1
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.16.197
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.16.15
DHCP Server . . . . . . . . . . . : 192.168.16.15
DNS Servers . . . . . . . . . . . : 192.168.16.15
Lease Obtained. . . . . . . . . . : 12 июля 2011 г. 12:14:14
Lease Expires . . . . . . . . . . : 12 июля 2011 г. 12:24:14
Ethernet adapter Local Area Connection 2:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : TAP-Win32 Adapter V8
Physical Address. . . . . . . . . : 00-FF-59-38-0E-D2
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 172.16.0.2
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . : 172.16.0.0
Lease Obtained. . . . . . . . . . : 12 июля 2011 г. 12:15:23
Lease Expires . . . . . . . . . . : 12 июля 2011 г. 12:15:23
И проверьте только что установленный туннель :
ping 172.16.0.2 -c 4
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=128 time=4.57 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=128 time=0.813 ms
64 bytes from 172.16.0.2: icmp_seq=3 ttl=128 time=0.950 ms
64 bytes from 172.16.0.2: icmp_seq=4 ttl=128 time=1.11 ms
--- 172.16.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.813/1.863/4.578/1.571 ms
На этом организация vpn соединения с использованием статических ключей завершена.
Создание сертификатов на Windows с использованием easy-rsa
В первую очередь необходимо создать каталог c:\Progam Files\OpenVPN\easy-rsa\keys и скопировать в него файлы serial.start и index.txt.start без суффикса .start. Сделать это можно при помощи следующей команды запущенной в cmd:
C:\Documents and Settings\Administrator>cd "c:\Program Files\OpenVPN\easy-rsa" && mkdir keys && copy serial.start keys\serial && copy index.txt.start keys\index.txt
1 file(s) copied.
1 file(s) copied.
Затем необходимо скопировать файлы vars.bat.sample и openssl.cnf.sample в vars.bat и openssl.cnf соответственно. Сделать это можно, выполнив batch файл C:\Program Files\OpenVPN\easy-rsa\init-config.bat при помощи следующей команды:
C:\Documents and Settings\Administrator>cd "c:\Program Files\OpenVPN\easy-rsa" && init-config.bat
C:\Program Files\OpenVPN\easy-rsa>copy vars.bat.sample vars.bat
1 file(s) copied.
C:\Program Files\OpenVPN\easy-rsa>copy openssl.cnf.sample openssl.cnf
1 file(s) copied.
Файл openssl.cnf --- >>>>
Файл vars.bat ----->>>
Затем необходимо отредактировать файл vars.bat:
@echo off
set HOME=%ProgramFiles%\OpenVPN\easy-rsa\
set KEY_CONFIG=openssl.cnf
set KEY_DIR=keys
set KEY_SIZE=1024
set KEY_COUNTRY=UA
set KEY_PROVINCE=Kiev
set KEY_CITY=Kiev
set KEY_ORG=TechExpert
set KEY_EMAIL=otradnyi@mail.ru
Затем необходимо внести изменения в среду окружения согласно файла vars.bat. Сделать это можно из cmd при помощи следующей команды:
C:\Documents and Settings\Administrator>cd "c:\Program Files\OpenVPN\easy-rsa" && vars.bat
- Затем необходимо создать Diffie-Hellman key:
C:\Program Files\OpenVPN\easy-rsa>vars.bat
C:\Program Files\OpenVPN\easy-rsa>build-dh.bat
Loading 'screen' into random state - done
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
..................+...............................................................................+..........+.......................
.....+.....+.............+........................................................+.........+........................................
+.........+...................................................................................+......................................
.................................................................+...................................................+...............
.........+............................................................................+........+............................+........
....................+........................................+.........+............................+................................
.......................+...........+.................................................................+..........+....................
............................................+......+.........................+.......................+.....................+.........
........................................................+....+.......................................................................
.............................+..........................................+............................................................
..................................+...........+....................................................+.................................
.............................................................+......................................+.............................+..
.................................................................................................................+...................
.....++*++*++*
В результате в каталоге C:\Program Files\OpenVPN\easy-rsa\keys появится файл dh1024.pem:
C:\Program Files\OpenVPN\easy-rsa>dir keys
Volume in drive C has no label.
Volume Serial Number is 508A-A105
Directory of C:\Program Files\OpenVPN\easy-rsa\keys
13.07.2011 13:22 <DIR> .
13.07.2011 13:22 <DIR> ..
13.07.2011 13:22 245 dh1024.pem
13.07.2011 13:06 0 index.txt
13.07.2011 13:06 3 serial
3 File(s) 248 bytes
2 Dir(s) 7 517 777 920 bytes free
- Теперь необходимо создать Certificate Authority. Создается он путем выполнения файла build-ca.bat:
C:\Program Files\OpenVPN\easy-rsa>vars.bat
C:\Program Files\OpenVPN\easy-rsa>build-ca.bat
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
.......++++++
...................++++++
writing new private key to 'keys\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) [UA]:UA
State or Province Name (full name) [Kiev]:Kiev
Locality Name (eg, city) [Kiev]:Kiev
Organization Name (eg, company) [TechExpert]:TechExpert
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:win0
Email Address [otradnyi@mail.ru]:otradnyi@mail.ru
В результате выполнения этой команды в каталоге keys было создано два файла ca.crt и ca.key:
C:\Program Files\OpenVPN\easy-rsa>dir keys
Volume in drive C has no label.
Volume Serial Number is 508A-A105
Directory of C:\Program Files\OpenVPN\easy-rsa\keys
13.07.2011 13:38 <DIR> .
13.07.2011 13:38 <DIR> ..
13.07.2011 13:38 1 224 ca.crt
13.07.2011 13:38 887 ca.key
13.07.2011 13:22 245 dh1024.pem
13.07.2011 13:06 0 index.txt
13.07.2011 13:06 3 serial
5 File(s) 2 359 bytes
2 Dir(s) 7 517 769 728 bytes free
ca.crt --->>>
ca.key ---->>>
- Далее необходимо создать ключи сервера и клиента.
Для этого необходимо выполнить файл build-key-server.bat с параметром имени сервера, в нашем случае это win0:
C:\Program Files\OpenVPN\easy-rsa>vars.bat
C:\Program Files\OpenVPN\easy-rsa>build-key-server.bat win0
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
............................................++++++
....................++++++
writing new private key to 'keys\win0.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) [UA]:
State or Province Name (full name) [Kiev]:
Locality Name (eg, city) [Kiev]:
Organization Name (eg, company) [TechExpert]:
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:win0
Email Address [otradnyi@mail.ru]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl.cnf
Loading 'screen' into random state - done
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'UA'
stateOrProvinceName :PRINTABLE:'Kiev'
localityName :PRINTABLE:'Kiev'
organizationName :PRINTABLE:'TechExpert'
organizationalUnitName:PRINTABLE:'IT'
commonName :PRINTABLE:'win0'
emailAddress :IA5STRING:'otradnyi@mail.ru'
Certificate is to be certified until Jul 13 11:25:57 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
В результате в каталоге:
C:\Program Files\OpenVPN\easy-rsa>dir keys
Volume in drive C has no label.
Volume Serial Number is 508A-A105
Directory of C:\Program Files\OpenVPN\easy-rsa\keys
13.07.2011 14:26 <DIR> .
13.07.2011 14:26 <DIR> ..
13.07.2011 14:26 3 629 01.pem
13.07.2011 13:38 1 224 ca.crt
13.07.2011 13:38 887 ca.key
13.07.2011 13:22 245 dh1024.pem
13.07.2011 14:26 99 index.txt
13.07.2011 14:26 21 index.txt.attr
13.07.2011 14:26 3 serial
13.07.2011 14:26 3 629 win0.crt
13.07.2011 14:25 680 win0.csr
13.07.2011 14:25 887 win0.key
10 File(s) 11 304 bytes
2 Dir(s) 7 517 663 232 bytes free
- Теперь создадим ключ клиента:
C:\Program Files\OpenVPN\easy-rsa>build-key.bat roman
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
........++++++
........++++++
writing new private key to 'keys\roman.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) [UA]:
State or Province Name (full name) [Kiev]:
Locality Name (eg, city) [Kiev]:
Organization Name (eg, company) [TechExpert]:
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:roman
Email Address [otradnyi@mail.ru]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl.cnf
Loading 'screen' into random state - done
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'UA'
stateOrProvinceName :PRINTABLE:'Kiev'
localityName :PRINTABLE:'Kiev'
organizationName :PRINTABLE:'TechExpert'
organizationalUnitName:PRINTABLE:'IT'
commonName :PRINTABLE:'roman'
emailAddress :IA5STRING:'otradnyi@mail.ru'
Certificate is to be certified until Jul 13 11:37:01 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
В результате в каталоге:
C:\Program Files\OpenVPN\easy-rsa>dir keys
Volume in drive C has no label.
Volume Serial Number is 508A-A105
Directory of C:\Program Files\OpenVPN\easy-rsa\keys
13.07.2011 14:37 <DIR> .
13.07.2011 14:37 <DIR> ..
13.07.2011 14:26 3 629 01.pem
13.07.2011 14:37 3 531 02.pem
13.07.2011 13:38 1 224 ca.crt
13.07.2011 13:38 887 ca.key
13.07.2011 13:22 245 dh1024.pem
13.07.2011 14:37 199 index.txt
13.07.2011 14:37 21 index.txt.attr
13.07.2011 14:37 3 serial
13.07.2011 14:37 3 531 roman.crt
13.07.2011 14:37 680 roman.csr
13.07.2011 14:37 887 roman.key
13.07.2011 14:26 3 629 win0.crt
13.07.2011 14:25 680 win0.csr
13.07.2011 14:25 887 win0.key
14 File(s) 20 033 bytes
2 Dir(s) 7 517 650 944 bytes free
- Теперь необходимо скопировать roman.crt, roman.key и ca.crt в каталог /etc/openvpn.
- mkdir /etc/openvpn/keys
- Теперь необходимо поправить конфиги:
--Винда:
###remote 192.168.16.15
###secret key.txt
dev tap
ifconfig 172.16.0.2 255.255.255.0
###comp-lzo
tls-server
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/win0.crt
key keys/win0.key
-- Linux
remote 192.168.16.197
dev tap
tls-client
ifconfig 172.168.0.1 255.255.255.0
dh dh1024.pem
ca ca.crt
cert roman.crt
key roman.key
Если при старте сервера на Windows возникнет ошибка:
system library:fopen:No such file or directory
Необходимо переместить каталог c:\Progam Files\OpenVPN\easy-rsa\keys в с:\keys и после этого модифицировать конфиг:
dev tap
ifconfig 172.16.0.2 255.255.255.0
tls-server
dh c:\\keys\\dh1024.pem
ca c:\\keys\\ca.crt
cert c:\\keys\\win0.crt
key c:\\keys\\win0.key
Теперь запустим сервер vpn из cmd под Windows с помощью следующей команды:
C:\Documents and Settings\Administrator>openvpn --config "c:\Program Files\OpenVPN\config\sample.ovpn"
Tue Jul 12 17:02:23 2011 us=612115 Current Parameter Settings:
Tue Jul 12 17:02:23 2011 us=612409 config = 'c:\Program Files\OpenVPN\config\sample.ovpn'
Tue Jul 12 17:02:23 2011 us=612634 mode = 0
Tue Jul 12 17:02:23 2011 us=612791 show_ciphers = DISABLED
Tue Jul 12 17:02:23 2011 us=612953 show_digests = DISABLED
Tue Jul 12 17:02:23 2011 us=613112 show_engines = DISABLED
Tue Jul 12 17:02:23 2011 us=613270 genkey = DISABLED
Tue Jul 12 17:02:23 2011 us=613427 key_pass_file = '[UNDEF]'
Tue Jul 12 17:02:23 2011 us=613591 show_tls_ciphers = DISABLED
Tue Jul 12 17:02:23 2011 us=613753 proto = 0
Tue Jul 12 17:02:23 2011 us=613910 NOTE: --mute triggered...
Tue Jul 12 17:02:23 2011 us=614111 178 variation(s) on previous 10 message(s) suppressed by --mute
Tue Jul 12 17:02:23 2011 us=614331 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2006
Tue Jul 12 17:02:23 2011 us=615260 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment
. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Tue Jul 12 17:02:23 2011 us=615596 WARNING: --ping should normally be used with --ping-restart or --ping-exit
Tue Jul 12 17:02:23 2011 us=671943 Diffie-Hellman initialized with 1024 bit key
Tue Jul 12 17:02:23 2011 us=675391 Control Channel MTU parms [ L:1573 D:138 EF:38 EB:0 ET:0 EL:0 ]
Tue Jul 12 17:02:23 2011 us=680475 TAP-WIN32 device [Local Area Connection 4] opened: \\.\Global\{DDA59CFF-B7AE-4F0E-91DA-C111AF5139B
Tue Jul 12 17:02:23 2011 us=680823 TAP-Win32 Driver Version 8.4
Tue Jul 12 17:02:23 2011 us=681026 TAP-Win32 MTU=1500
Tue Jul 12 17:02:23 2011 us=681234 Notified TAP-Win32 driver to set a DHCP IP/netmask of 172.16.0.2/255.255.255.0 on interface {DDA59
E-4F0E-91DA-C111AF5139B5} [DHCP-serv: 172.16.0.0, lease-time: 31536000]
Tue Jul 12 17:02:23 2011 us=716919 Successful ARP Flush on interface [196612] {DDA59CFF-B7AE-4F0E-91DA-C111AF5139B5}
Tue Jul 12 17:02:23 2011 us=725976 Data Channel MTU parms [ L:1573 D:1450 EF:41 EB:4 ET:32 EL:0 ]
Tue Jul 12 17:02:23 2011 us=726302 Local Options String: 'V4,dev-type tap,link-mtu 1573,tun-mtu 1532,proto UDPv4,ifconfig 172.16.0.0
.255.0,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Tue Jul 12 17:02:23 2011 us=726626 Expected Remote Options String: 'V4,dev-type tap,link-mtu 1573,tun-mtu 1532,proto UDPv4,ifconfig 1
.0 255.255.255.0,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Tue Jul 12 17:02:23 2011 us=726987 Local Options hash (VER=V4): '79e31c21'
Tue Jul 12 17:02:23 2011 us=727192 Expected Remote Options hash (VER=V4): '5a258ee1'
Tue Jul 12 17:02:23 2011 us=727475 Socket Buffers: R=[8192->8192] S=[8192->8192]
Tue Jul 12 17:02:23 2011 us=727723 UDPv4 link local (bound): [undef]:1194
Tue Jul 12 17:02:23 2011 us=727898 UDPv4 link remote: [undef]
Затем на клиенте дадим команду:
sudo openvpn --config /etc/openvpn/sample.conf
И смотрим на продолжение вывода на сервере:
Tue Jul 12 17:05:23 2011 us=993139 TLS: Initial packet from 192.168.16.15:1194, sid=76cd5180 622a0d09
Tue Jul 12 17:05:24 2011 us=505011 VERIFY OK: depth=1, /C=UA/ST=Kiev/L=Kiev/O=TechExpert/OU=IT/CN=win0/emailAddress=otradnyi@mail.ru
Tue Jul 12 17:05:24 2011 us=506441 VERIFY OK: depth=0, /C=UA/ST=Kiev/O=TechExpert/OU=IT/CN=roman/emailAddress=otradnyi@mail.ru
Tue Jul 12 17:05:24 2011 us=567168 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Tue Jul 12 17:05:24 2011 us=567435 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Jul 12 17:05:24 2011 us=567739 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Tue Jul 12 17:05:24 2011 us=567977 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Jul 12 17:05:24 2011 us=569802 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Tue Jul 12 17:05:24 2011 us=570075 [roman] Peer Connection Initiated with 192.168.16.15:1194
Tue Jul 12 17:05:26 2011 us=153485 TEST ROUTES: 0/0 succeeded len=-1 ret=1 a=0 u/d=up
Tue Jul 12 17:05:26 2011 us=153796 Initialization Sequence Completed
И проверяем
ping 172.16.0.2 -c 4
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=128 time=8.91 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=128 time=1.00 ms
64 bytes from 172.16.0.2: icmp_seq=3 ttl=128 time=1.23 ms
64 bytes from 172.16.0.2: icmp_seq=4 ttl=128 time=1.34 ms
Создание сертификатов на Debian с использованием easy-rsa
ls -l /usr/share/doc/openvpn/examples/easy-rsa/
итого 80
drwxr-xr-x 2 root root 4096 2011-07-13 00:18 2.0
-rwxr-xr-x 1 root root 242 2011-07-13 13:06 build-ca
-rwxr-xr-x 1 root root 228 2011-07-13 13:06 build-dh
-rwxr-xr-x 1 root root 529 2011-07-13 13:06 build-inter
-rwxr-xr-x 1 root root 516 2011-07-13 13:06 build-key
-rwxr-xr-x 1 root root 424 2011-07-13 13:06 build-key-pass
-rwxr-xr-x 1 root root 695 2011-07-13 13:06 build-key-pkcs12
-rwxr-xr-x 1 root root 662 2011-07-13 13:06 build-key-server
-rwxr-xr-x 1 root root 466 2011-07-13 13:06 build-req
-rwxr-xr-x 1 root root 402 2011-07-13 13:06 build-req-pass
-rwxr-xr-x 1 root root 280 2011-07-13 13:06 clean-all
-rw-r--r-- 1 root root 264 2011-07-13 13:06 list-crl
-rw-r--r-- 1 root root 268 2011-07-13 13:06 make-crl
-rw-r--r-- 1 root root 7487 2011-07-13 13:06 openssl.cnf
-rw-r--r-- 1 root root 2619 2011-07-13 13:06 README.gz
-rw-r--r-- 1 root root 268 2011-07-13 13:06 revoke-crt
-rwxr-xr-x 1 root root 593 2011-07-13 13:06 revoke-full
-rwxr-xr-x 1 root root 411 2011-07-13 13:06 sign-req
-rw-r--r-- 1 root root 1266 2011-07-13 13:06 vars
sudo mkdir /usr/share/doc/openvpn/examples/easy-rsa/keys
sudo touch /usr/share/doc/openvpn/examples/easy-rsa/keys/index.txt
sudo touch /usr/share/doc/openvpn/examples/easy-rsa/keys/serial
sudo sh -c "echo 01 > /usr/share/doc/openvpn/examples/easy-rsa/keys/serial"
egrep -v '^\ *$|^#' vars
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY_DIR=$D/keys
echo NOTE: when you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export KEY_SIZE=1024
export KEY_COUNTRY=UA
export KEY_PROVINCE=Kiev
export KEY_CITY=Kiev
export KEY_ORG="TechExpert"
export KEY_EMAIL="otradnyi@mail.ru"
# . vars
NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn/examples/easy-rsa/keys
# echo $KEY_
$KEY_CITY $KEY_COUNTRY $KEY_EMAIL $KEY_PROVINCE
$KEY_CONFIG $KEY_DIR $KEY_ORG $KEY_SIZE
# echo $KEY_CITY
Kiev
# echo $KEY_CONFIG
/usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf
# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
..................................................+.+.............
..................................................................
........................................+..+......................
............+........+............................................
........+.........................................+...............
...............................................+..................
..................................................................
..................................................................
..........................+.......................................
...................................................+..............
....+.......................................................+.....
.......................................+...........+..............
....+........+....................................................
..................+........+...............+......................
..................+...............................................
........................................................+.......+.
...................................+..........+....+..........+...
...............+..................................+...............
.........................................................+........
....................+...++*++*++*
# ./build-ca
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) [UA]:
State or Province Name (full name) [Kiev]:
Locality Name (eg, city) [Kiev]:
Organization Name (eg, company) [TechExpert]:
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:roman
Email Address [otradnyi@mail.ru]:
# ls keys/
ca.crt ca.key dh1024.pem index.txt serial
# ./build-key-server roman
Generating a 1024 bit RSA private key
.............++++++
........++++++
writing new private key to 'roman.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) [UA]:
State or Province Name (full name) [Kiev]:
Locality Name (eg, city) [Kiev]:
Organization Name (eg, company) [TechExpert]:
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:roman
Email Address [otradnyi@mail.ru]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'UA'
stateOrProvinceName :PRINTABLE:'Kiev'
localityName :PRINTABLE:'Kiev'
organizationName :PRINTABLE:'TechExpert'
organizationalUnitName:PRINTABLE:'IT'
commonName :PRINTABLE:'roman'
emailAddress :IA5STRING:'otradnyi@mail.ru'
Certificate is to be certified until Jul 13 09:00:09 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
# ls keys/
01.pem ca.crt ca.key dh1024.pem index.txt index.txt.attr index.txt.old serial serial.old roman.crt roman.csr roman.key
# ./build-key student
Generating a 1024 bit RSA private key
.++++++
....................++++++
writing new private key to 'student.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) [UA]:
State or Province Name (full name) [Kiev]:
Locality Name (eg, city) [Kiev]:
Organization Name (eg, company) [TechExpert]:
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:student
Email Address [otradnyi@mail.ru]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'UA'
stateOrProvinceName :PRINTABLE:'Kiev'
localityName :PRINTABLE:'Kiev'
organizationName :PRINTABLE:'TechExpert'
organizationalUnitName:PRINTABLE:'IT'
commonName :PRINTABLE:'student'
emailAddress :IA5STRING:'otradnyi@mail.ru'
Certificate is to be certified until Jul 13 10:06:23 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
cp keys/student1.crt ; keys/student1.key ; keys/ca.crt и keys/dh1024.pem на Windows
Конфиг сервера:
# cat /etc/openvpn/student1.conf
dev tap
ifconfig 172.16.0.1 255.255.255.0
tls-server
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/roman.crt
key keys/roman.key
Конфиг клиента:
dev tap
tls-client
dh c:\\keys\\dh1024.pem
ca c:\\keys\\ca.crt
cert c:\\keys\\student.crt
key c:\\keys\\student.key
ifconfig 172.16.0.2 255.255.255.0
Запуск openvpn на сервере:
# openvpn --config /etc/openvpn/student1.conf
Wed Jul 13 13:11:59 2011 OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Jan 21 2007
Wed Jul 13 13:11:59 2011 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Wed Jul 13 13:12:00 2011 TUN/TAP device tap0 opened
Wed Jul 13 13:12:00 2011 /sbin/ifconfig tap0 172.16.0.1 netmask 255.255.255.0 mtu 1500 broadcast 172.16.0.255
Wed Jul 13 13:12:00 2011 UDPv4 link local (bound): [undef]:1194
Wed Jul 13 13:12:00 2011 UDPv4 link remote: [undef]
Запуск на Windows клиенте из cmd:
C:\Documents and Settings\Administrator>openvpn --config "c:\Program Files\OpenV
PN\config\client.ovpn"
Проверка:
# ping 172.16.0.2 -c 4
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=128 time=3.72 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=128 time=1.35 ms
64 bytes from 172.16.0.2: icmp_seq=3 ttl=128 time=1.44 ms
64 bytes from 172.16.0.2: icmp_seq=4 ttl=128 time=1.49 ms
--- 172.16.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3052ms
rtt min/avg/max/mdev = 1.353/2.004/3.727/0.996 ms
# ifconfig tap0
tap0 Link encap:Ethernet HWaddr 42:FC:5B:E3:33:D2
inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:6199 (6.0 KiB) TX bytes:902 (902.0 b)
Настройка пула адресов для получения их клиентами
Для этого необходимо использовать tun устройство или с использованием tap устройства необходимо будет прописывать для каждого клиента адрес и маску:
- на сервере:
# cat /etc/openvpn/student1.conf
dev tap
ifconfig 172.16.0.1 255.255.0.0.
ifconfig-pool 172.16.0.2 172.16.0.253 255.255.0.0
mode server
tls-server
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/serzh.crt
key keys/serzh.key
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
- на клиенте:
pull
auth-user-pass
dev tap
remote 10.0.17.1
tls-client
dh c:\\keys\\dh1024.pem
ca c:\\keys\\ca.crt
cert c:\\keys\\student1.crt
key c:\\keys\\student1.key
Настройка парольной аутентификации системных пользователей для установки подключения
Для этого необходимо в файле /etc/openvpn/student1.conf дописать следующие строки:
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
А в клиентском конфиге:
pull
auth-user-pass
Настройка OpenVPN для работы в качестве сервера
- Во-первых, необходимо создать конфигурационный файл сервера. Его можно скопировать из каталога /usr/share/doc/openvpn/examples/sample-config-files/ и затем распаковать:
gzip -cd /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz \
>> /etc/openvpn/server.conf
- Затем необходимо отредактировать этот файл:
# egrep -v '^\ *$|^#|;' /etc/openvpn/server.conf
port 1194
proto tcp-server
dev tap
ca keys/ca.crt
cert keys/serzh.crt
key keys/serzh.key
dh keys/dh1024.pem
ifconfig-pool-persist ipp.txt
ifconfig 172.16.0.1 255.255.255.0
server-bridge 172.16.0.1 255.255.255.0 172.16.0.2 172.16.0.253
client-config-dir ccd
client-to-client
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log 3500
verb 3
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
- port 1194 - порт для прослушивания демоном openvpn
- proto tcp-server - указание протокола соединения. Если опция не указана, то используется протокол не гарантированной доставки udp. Для tcp соединения необходимо указать онду из опций tcp-server или tcp-client для сервера и клиента соответственно. Демон, запущенный с опцией tcp-server ожидает входящие соединения. Демон, запущенный с опцией tcp-client, будет инициировать соединение и в случае неудачи будет производить повторные попытки подключения через каждые 5 секунд (определяется connect-retry опцией, 5 секунд - значение по умолчанию).
- dev tap
. . .
- ca keys/ca.crt - Опция ca определяет корневой (root) сертификат, которым подписаны клиентские пары сертификат/ключ. Значение этой опции keys/ca.crt указывает месторасположение этого сертификата относительно каталога /etc/openvpn. (Или, иными словами, это открытый ключ сервера)
- cert keys/serzh.crt - Каждый участник OpenVPN соединения в TLS режиме должен иметь собственный сертификат и файл с закрытым ключом. Каждый сертификат должен быть подписан закрытым ключом центра сертификатов, чей открытый ключ указывается в опции ca.
- key keys/serzh.key - Закрытый ключ, который генерируется вместе с сертификатом, указанным в опции cert
- dh keys/dh1024.pem - Файл, содержащий параметры Diffie Hellman
. . .
- ifconfig-pool-persist ipp.txt - Файл ассоциаций client <-> virtual IP.
Например:
# cat ipp.txt
student1,172.16.0.2
natali,172.16.0.5
где первое поле - имя используемого с TLS режиме сертификата.
- ifconfig 172.16.0.1 255.255.255.0 - IP-адрес, присваиваемый серверу на устройстве /dev/tap
- server-bridge 172.16.0.1 255.255.255.0 172.16.0.2 172.16.0.253 - Использование сервера в режиме моста. Это дает возможность видеть клиетам не только сервер но и других клиентов (при указании опции client-to-client).
- client-config-dir ccd - Опция определяет каталог в /etc/openvpn/ с конфигурационными файлами клиентов. В этих файлах могут быть переопределены опции основного конфигурационного файла для каждого из клиентов.
- keepalive 10 120
- persist-key - Не перечитывать заново файлы ключей при получении сигнала SIGUSR1 (переустановка соединения) или через интервал, указанный опцией ping-restart n (переустановить соединение через n секунд после отправки последнего icmp пакета клиенту, который остался без ответа)
- persist-tun - Не закрывать или переоткрывать устройства TUN/TAP при получении сигнала SIGUSR1 или по прошествию интервала n опции ping-restart n.
- status openvpn-status.log 3500 - В файл /etc/openvpn/openvpn-status.log будет записываться статус активных подключений каждые 5 минут
- verb 3 - Уровень вывода отладочной информации.
- plugin /usr/lib/openvpn/openvpn-auth-pam.so login - Подключение модуля аутентификации openvpn-auth-pam.so и использование программы login для аутентификации пользователей во время установки соединения.
Конфигурационный файл клиента:
pull
auth-user-pass
dev tap
proto tcp-client
remote 10.0.17.1
tls-client
dh c:\\keys\\dh1024.pem
ca c:\\keys\\ca.crt
cert c:\\keys\\student1.crt
key c:\\keys\\student1.key
[
Openvpn FreeBSD
Инсталляция:
$ cd /usr/ports/security/openvpn
$ sudo make install clean
___________________________________
Options for openvpn 2.0.6_4
[X] PW_SAVE Interactive passwords may be read from a file
___________________________________
Настройка:
$ sudo mkdir /usr/local/etc/openvpn
$ sudo openvpn --genkey --secret /usr/local/etc/openvpn/static.key
$ sudo sh -c 'cat << CONF >> /usr/local/etc/openvpn/sample.conf
dev tun
ifconfig 172.16.0.1 172.16.0.2
secret /usr/local/etc/openvpn/static.key
comp-lzo
CONF'
Копируем на Windows static.key в C:\Program Files\OpenVPN\static.key
Затем создаем конфигурационный файл клиента openvpn - C:\Program Files\OpenVPN\config на Windows:
remote 192.168.15.238
dev tun
ifconfig 172.16.0.2 172.16.0.1
secret "C:\\Program Files\\OpenVPN\\config\\static.key"
comp-lzo
Запускаем на сервере FreeBSD openvpn:
$ sudo openvpn --config /usr/local/etc/openvpn/sample.conf
Wed Aug 29 19:42:16 2007 OpenVPN 2.0.6 i386-portbld-freebsd6.2 [SSL] [LZO] built on Aug 29 2007
Wed Aug 29 19:42:16 2007 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Wed Aug 29 19:42:16 2007 LZO compression initialized
Wed Aug 29 19:42:16 2007 TUN/TAP device /dev/tun0 opened
Wed Aug 29 19:42:16 2007 /sbin/ifconfig tun0 172.16.0.1 172.16.0.2 mtu 1500 netmask 255.255.255.255 up
Wed Aug 29 19:42:16 2007 UDPv4 link local (bound): [undef]:1194
Wed Aug 29 19:42:16 2007 UDPv4 link remote: [undef]
.
.
.
И подключаемся с Windows клиентом:
C:\Documents and Settings\Administrator>openvpn --config "C:\Program Files\OpenV
PN\config\sample.ovpn"
Wed Aug 29 19:44:50 2007 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2
006
Wed Aug 29 19:44:50 2007 IMPORTANT: OpenVPN's default port number is now 1194, b
ased on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earl
ier used 5000 as the default port.
Wed Aug 29 19:44:50 2007 LZO compression initialized
Wed Aug 29 19:44:50 2007 TAP-WIN32 device [??????????? ?? ????????? ???? 3] open
ed: \\.\Global\{338C1B96-AA76-4B7F-8E7F-489452A64B06}.tap
Wed Aug 29 19:44:50 2007 Notified TAP-Win32 driver to set a DHCP IP/netmask of 1
72.16.0.2/255.255.255.252 on interface {338C1B96-AA76-4B7F-8E7F-489452A64B06} [D
HCP-serv: 172.16.0.1, lease-time: 31536000]
Wed Aug 29 19:44:50 2007 Successful ARP Flush on interface [131076] {338C1B96-AA
76-4B7F-8E7F-489452A64B06}
Wed Aug 29 19:44:50 2007 UDPv4 link local (bound): [undef]:1194
Wed Aug 29 19:44:50 2007 UDPv4 link remote: 192.168.15.238:1194
Wed Aug 29 19:45:01 2007 Peer Connection Initiated with 192.168.15.238:1194
Wed Aug 29 19:45:02 2007 Initialization Sequence Completed
И проверяем:
C:\Documents and Settings\Administrator>ping 172.16.0.1
Pinging 172.16.0.1 with 32 bytes of data:
Reply from 172.16.0.1: bytes=32 time=1ms TTL=64
Reply from 172.16.0.1: bytes=32 time<1ms TTL=64
Reply from 172.16.0.1: bytes=32 time<1ms TTL=64
Reply from 172.16.0.1: bytes=32 time<1ms TTL=64
Ping statistics for 172.16.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
Дополнительная информация
Материалы по OpenVPN на xgu.ru
- OpenVPN в Windows
- OpenVPN Bridge — передача тегированного трафика через VPN