Настройка OpenVPN сервера
Скачиваем openvpn
Компилируем
# ./configure --disable-pthread --with-lzo-lib=/usr/local/lib --with-lzoheaders=/usr/local/include
# make
# make install# groupadd -g 500 _openvpn
# useradd -u 500 -g 500 -c 'OpenVPN Server' -s /sbin/nologin -d /var/openvpn -m _openvpn
Создаем каталог, где будем хранить ключи
# mkdir -p /etc/openvpn/keys
Копируем в /etc/openvpn каталог
# mkdir -p /etc/openvpn/easy-rsa
# cp -rp easy-rsa/2 /etc/openvpn/easy-rsa
Инициализируем директорию /etc/openvpn/easy-rsa/keys:
# cd /etc/openvpn/easy-rsa
# . ./vars# ./clean-all
Формируем сертификаты
Создаем корневой и серверный сертификаты:
# ./build-ca
# ./build-key-server server
Для создания файла параметров Диффи-Хелмана, предназначенного для обеспечения более надежной защиты данных при установке соединения клиента с сервером, выполняем:
# ./build-dh
Снизить вероятность успешного проведения DoS-атаки на сервер OpenVPN можно за счет использования клиентом и сервером статического ключа HMAC (так называемый shared secret):
# /usr/local/sbin/openvpn --genkey --secret keys/ta.key
Перемещаем все созданные файлы в подкаталог keys и выставляем для них корректные права доступа:
# cd keys/
# mv ca.crt dh1024.pem server.crt server.key ta.key /etc/openvpn/keys # chown -R root:wheel /etc/openvpn
# chmod 700 /etc/openvpn/keys
# chmod 644 /etc/openvpn/keys/{ca.crt,dh1024.pem,server.crt}
# chmod 600 /etc/openvpn/keys/{server.key,ta.key}
Процедура создания клиентских сертификатов практически аналогична соответствующей процедуре для сервера:
# ./build-key client1
# mkdir -p /home/vpn/client1
# mv client1.crt client1.key /home/vpn/client1
# cp /etc/openvpn/keys/{ca.crt,ta.key} /home/vpn/client1
Теперь каталог client1 копируем удаленному сотруднику
Конфигурирование сервера
# vi /etc/openvpn/server.conf
status /var/openvpn/status 10
local X.X.X.X
port 5000
proto udp
dev tun0
comp-lzo
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
tls-auth /etc/openvpn/keys/ta.key 0
ifconfig 192.168.3.1 192.168.3.2
server 192.168.3.0 255.255.255.0# push "route 192.168.1.0 255.255.255.0"
push "route 192.168.0.0 255.255.255.0"keepalive 10 120
auth SHA1cipher AES-256-CBC
max-clients 10
log-append /var/log/openvpn.log
verb 3
mute 20
user _openvpn
group _openvpn
persist-key
persist-tun
chroot /var/empty
script-security 2up /etc/openvpn/server.up
down /etc/openvpn/server.down
Создаем файлы /etc/openvpn/server.up
/usr/sbin/iptables -I INPUT -i tun0 -j ACCEPT
и /etc/openvpn/server.down
iptables -D INPUT -i tun0 -j ACCEPT
Копируем стартующий скрипт из искходников openvpn
# cp suse/openvpn.init /etc/init.d/openvpn
# chmod 755 /etc/init.d/openvpn
И запускаем его
# /etc/init.d/openvpn start
Лог сервера пишется в файл /var/log/openvpn.log
Настройка клиента Windows
на клиентский комьютер скачиваем устанавливаем http://swupdate.openvpn.org/community/releases/openvpn-2.2.2-install.exe
Копируем сертификаты и создаем файл с конфигурацией C:\Program Files\OpenVPN\config\client1.ovpn
client
remote X.X.X.X 5000
dev tun
proto udp
resolv-retry infinite
nobind
pull
comp-lzo
persist-key
persist-tun
verb 3
ca "D:\\keys\\ca.crt"
cert "D:\\keys\\client1.crt"
key "D:\\keys\\client1.key"
tls-auth "D:\\keys\\ta.key" 1
ns-cert-type server
; Нижеследующие алгоритмы должны совпадать с теми, что заданы на сервере
auth SHA1
cipher AES-256-CBC
; Без этих двух директив Vista-клиенты не смогут получать маршруты от сервера
; route-method exe
; route-delay 2
Затем запускаем OpenVPN Gui и подключаемся
