Перейти к содержимому
Обложка сообщества Разное

Настройка 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 SHA1

cipher 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 2

up /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 и подключаемся

Еще по теме

Настройка OpenVPN сервера - Yvision.kz