# cd /usr/local/share/doc/openvpn/easy-rsa/
# sh
# . ./vars
Шаг 2 Запустите скрипт для создания серийного и индексного файла для новых ключей:
# ./clean-all
Шаг 3 Создайте сертификат. При создании сертификата введите всю необходимую информацию:
# ./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) [KG]:UA
State or Province Name (full name) [NA]:Dnepropetrovsk
Locality Name (eg, city) [BISHKEK]:Dnepropetrovsk
Organization Name (eg, company) [OpenVPN-TEST]:server
Organizational Unit Name (eg, section) []:server
Common Name (eg, your name or your server's hostname) []:server
Email Address [me@myhost.mydomain]:kravchenko@xxxxxx.dp.ua
Шаг 4 Создайте сертификат X.509 для сервера. На вопросы отвечайте как и на предыдущем шаге, после этого введите пароль и имя организации, и подтвердите подпись:
# ./build-key-server server
Generating a 1024 bit RSA private key
...........................++++++
..........................................++++++
writing new private key to 'gamma.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]:UA
State or Province Name (full name) [NA]:Dnepropetrovsk
Locality Name (eg, city) [BISHKEK]:Dnepropetrovsk
Organization Name (eg, company) [OpenVPN-TEST]:server
Organizational Unit Name (eg, section) []:server
Common Name (eg, your name or your server's hostname) []:server
Email Address [me@myhost.mydomain]:kravchenko@xxxxxx.dp.ua
Шаг 5 Создайте ключ Диффи Хельман:
# ./build-dh
Шаг 6 Выйдите из оболочки sh и создайте ключ для tls-аутентификации:
Шаг 2 Скопируйте все ключи (ca.crt, dh1024.pem, server.crt, server.key, ta.key) в /usr/local/etc/openvpn/keys. Шаг 3 Создайте конфигурационный файл /usr/local/etc/openvpn/server.conf:
# Включаем плагин и в качестве аргумента - конфигурационный файл
plugin /usr/local/lib/openvpn-auth-ldap.so
"/usr/local/etc/openvpn/openvpn-auth-ldap.conf"
port 2000
proto tcp
# На tun0 у меня провайдер PPPoE
dev tun1
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
client-cert-not-required
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
server 10.8.0.0255.255.255.0
push "route 192.168.1.0255.255.255.0"
push "dhcp-option DNS 192.168.1.1"
#client-config-dir ccd
route 10.8.0.0255.255.255.252
tls-server
tls-auth /usr/local/etc/openvpn/keys/ta.key 0
tls-timeout 120
auth MD5
cipher BF-CBC
keepalive 10120
comp-lzo
max-clients 100
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
Шаг 4 Создайте директории и файлы, указанные в переменных status и log:
# mkdir /var/log/openvpn/
# cd /var/log/openvpn/
# touch openvpn-status.log openvpn.log
Шаг 5 В директории /usr/local/etc/openvpn/ создайте файл openvpn-auth-ldap.conf следующего содержания: <LDAP> URL ldap://192.168.1.3/ BindDN cn=manager,dc=mycompany,dc=local Password password Timeout 15 TLSEnable no FollowReferrals yes </LDAP>
<Authorization> BaseDN "ou=users,dc=mycompany,dc=local" SearchFilter "(&(uid=%u)(objectclass=posixAccount))" RequireGroup false # Group у меня не используется <Group> BaseDN "ou=groups,dc=vicor-ibs,dc=local" SearchFilter "(|(cn=developers)(cn=artists))" MemberAttribute uniqueMember </Group> </Authorization>
Шаг 6 Для запуска OpenVPN внесите в файл /etc/rc.conf строки:
Шаг 7 Внесите изменения в конфигурационный файл BIND, чтобы VPN-клиенты могли использовать DNS 192.168.1.1. К перечисленным сетям в переменной allow-auery добавьте сеть 10.8.0.0/24:
${FwCMD} add allow all from any to me dst-port 2000
${FwCMD} add allow all from 10.8.0.0/24 to ${lan_net}
${FwCMD} add allow all from ${lan_net} to 10.8.0.0/24
Шаг 9 Запустите OpenVPN:
# /usr/local/etc/rc.d/openvpn start
4. Настройка клиента Windows XP Шаг 1 Скачайте и установите openvpn-2.0.6-gui-1.0.3-install.exe
Шаг 2 Создайте конфигурационный файл C:\Program Files\OpenVPN\config\openvpn.ovpn. И скопируйте в эту директорию сертификат ca.crt и ключ ta.key.
auth-user-pass
dev tun
proto tcp
# Внешний IP сервера OpenVPN
remote 22.22.22.22
port 2000
client
resolv-retry infinite
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
tls-client
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
auth MD5
cipher BF-CBC
ns-cert-type server
comp-lzo
persist-key
persist-tun
push "dhcp-option DNS 192.168.1.1"
verb 3
Шаг 3 Подключитесь к серверу OpenVPN. Для этого: 1. Нажмите правой кнопкой мыши на иконке «OpenVPN GUI» --> «Connect». 2. На приглашение ввести логин и пароль, введите свой логин и пароль в домене (LDAP-е).
Примечание! При таких настройках клиенту не будет выдаваться шлюз по умолчанию, только IP, DNS.