1.Установить из портов Openvpn:
а) cd /usr/ports/security/openvpn
б) make
в) make install
2.Скопировать папку easy-rsa из /usr/local/share/doc/openvpn в /home/test(это пример,на самом деле можно копировать в любое место)
3.В /easy-rsa/vars отредактировать переменные
export KEY_COUNTRY=UK
export KEY_PROVINCE=KH
export KEY_CITY=KHARKOV
export KEY_ORG=»server»
export KEY_EMAIL=test@kiev.ua #E-Mail администратора
4.На папку /easy-rsa дать права 4755:
Chmod –R 4755 /home/test/easy-rsa
5.Перейти в оболочку sh
Находясь в /home/test/easy-rsa/ выполнить команду :
sh
6. . ./vars
7. mkdir –p $KEY_DIR
8. ./clean-all # очистка от старых сертефикатов и ключей, а также создание файлов serial и index.txt
9. ./build-ca # создание корневого сертификата для сервера
Organization Name : server
Organization Unit Name : server
Common Name : server
10. ./build-key-server server # создание сертификата X.509 для сервера
Organization Name : server
Organization Unit Name : server
Common Name : server
11. ./build-key client # создание сертификата X.509 для клиента
Organization Name : server
Organization Unit Name : server
Common Name : client
Optional company : client
12. ./build-key client2 # создание сертификата X.509 для клиента2
Organization Name : server
Organization Unit Name : server
Common Name : client
Optional company : client
13. ./build-dh # создание ключа Диффи Хельман
14. Выйти из оболочки sh:
Exit
16. Создание ключа для tls-аутентификации:
Openvpn —genkey —secret keys/ta.key
17. В /usr/local/etc/ создать папку /openvpn, а в этой папке – папку /keys
18. В папку /usr/local/etc/openvpn/keys скопировать все ключи из папки /home/test/keys, необходимые для сервера:
Ca.crt
Dh1024.pem
Server.crt
Server.key
Ta.key
19. В паку C:\Program Files\Openvpn\config скопировать из папки /home/test/keys все ключи необходимые клиенту
Ca.crt
Client.crt
Client.key
Ta.key
(если для клиента2, то соответственно ключи – Ca.crt, Client2.crt, Client2.key, Ta.key)
20. Отредактировать основной конфиг файл сервера /usr/local/etc/openvpn/server.conf и основной конфиг файл клиента C:\Program Files\Openvpn\config\client(этот файл скопировать из паки C:\Program Files\Openvpn\Sample-config)
Для автоматического запуска openvpn во время загрузки добавить в /etc/rc.conf:
Openvpn_enable=”YES”
Opevpn_if=”tun”
Openvpn_configfile=”/usr/local/etc/openvpn/server.conf”
Openvpn_dir=”/usr/local/etc/openvpn”
Для ручного запуска openvpn:
Openvpn /usr/local/etc/openvpn/server.conf
Контроль запуска openvpn
ps –ax | grep openvpn( или sockstat | grep 443)
Открыть доступ в файерволле(у меня ipfw)
$cmd 00360 allow tcp from any to me 443 in via $pif setup limit-src-addr 2
Примечание: если со временем понадобятся сгенерировать еще ключи для клиентов, то поступаем так
cd /home/test/easy-rsa
sh
. ./vars
build-key client3
А дальше все по аналогии с ранее генерированными ключами
Server.conf
dev tun
port 443
proto tcp
tls-server
tls-auth /usr/local/etc/openvpn/keys/ta.key 0
tls-timeout 120
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
server 192.168.3.0 255.255.255.0
push «route 192.168.136.0 255.255.255.0»
route 192.168.3.0 255.255.255.0
user nobody
group nobody
comp-lzo
keepalive 10 120
max-clients 10
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 4
client.conf
client
dev tun
proto tcp
remote 10.11.4.36 443
tls-client
tls-auth ta.key 1
ca ca.crt
cert client.crt
key client.key
cipher BF-CBC
persist-key
persist-tun
resolv-retry infinite
comp-lzo
verb