Установка и настройка OpenVPN в Ubuntu Server

Авторизация пользователей будет проходить при помощи сертификатов.

Установим OpenVPN:

1
apt-get install openvpn

Настройка сервера OpenVPN

Создадим в папке /etc/openvpn файл server.conf:

1
nano /etc/openvpn/server.conf

Содержимое файла:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# порт
port 1194
# протокол
proto udp
dev tun
# пути к ключам и сертификатам
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
# подсеть для сети openvpn
server 10.10.10.0 255.255.255.0 
# содержит информацию о ip адресах клиентов
# файл необходимо создать вручную
ifconfig-pool-persist ipp.txt
# передача клиенту информацию о домашней сети, то что за сервером
push "route 10.20.0.0 255.255.255.0" 
# передача dns клиенту
push "dhcp-option DNS 10.20.0.1"
# интервал пинга хоста 10 сек, если не отвечает
# 120 сек то считать недоступным
keepalive 10 120
# сжатие
comp-lzo
# понижение привилегий сервера до указанных
user nobody
group nogroup
persist-key
persist-tun
# уровень информативности логов
verb 4
mute 20
# разрешить клиентам видеть друг друга
client-to-client
# конфиги клиентов
client-config-dir /etc/openvpn/ccd
# маршурт что бы с компьютеров из сети за сервером
# был доступ к клиентам
route 10.10.10.0 255.255.255.0

Создаем ключи и сертификаты:

1
2
3
4
5
cd  /usr/share/doc/openvpn/examples/easy-rsa/2.0
bash
. ./vars
./clean-all
./build-ca

Создаем сертификат и ключ для сервера:

1
./build-key-server server

Создаем ключи для клиента (сlientx — уникальное имя клиента):

1
./build-key clientx

Если клиентов необходимо добавить спустя некоторое время то выполним следующие действия:

1
2
3
cd  /usr/share/doc/openvpn/examples/easy-rsa/2.0
source ./vars
./build-key clientn

Генерируем параметры
./build-dh
Копируем в папку /etc/openvpn следующие файлы:
ca.crt
server.crt
dh1024.pem
server.key

Настройка клиента

Путь к файлу конфигурации в windows будет отличаться. В ubuntu — /etc/openvpn/client.conf, в windows по умолчанию в C:\Program Files\OpenVPN\сonfig\openvpn.ovpn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# адрес сервера
remote 85.114.25.150 1194
# говорим что клиент
client
dev tun
proto udp
resolv-retry infinite 
nobind
persist-key
persist-tun
# пути к ключам и сертификатам клиента
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 4
mute 20

Необходимо скопировать с сервера в папку /etc/openvpn/ (C:\Program Files\OpenVPN\сonfig\) сгенерированные клиентские ключи и авторитарный сертификат сервера:
ca.crt
client1.crt
client1.key

Если хотим получить доступ к сети за клиентом (например 192.168.10.0) то:
необходимо добавить в файл server.conf строки:

1
2
client-config-dir ccd
route 192.168.10.0 255.255.255.0

необходимо создать файл /etc/openvpn/ccd/clientx такого содержания:

1
iroute 192.168.10.0 255.255.255.0

2 комментария

  1. Отличная статья! Большое спасибо за доступное изложение материала. Настроила по мануалу, все завелось с первого раза!

  2. Спасибо за пост. В некоторых случаях нужно быстро поднять тунель между двома точками. И самый быстрый способ с минимальной безопасностью, это общий ключ, как пишут, к примеру здесь — http://sysadm.pp.ua/linux/shifrovanie/openvpn-point-to-point.html . Генерацию ключей через OpenSSL никто не подскажет как делать?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *