Итак, предположим что у нас есть сервер на Ubuntu(либо Debian – не суть важно).
1) Установка пакета Openvpn на сервере:
sudo apt-get install openvpn
2) Копируем конфигурацию демона из примеров в документации:
zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
3) Конфигурация – бесспорно личное дело каждого, однако на мой взгляд имеет смысл:
- Изменить подсеть, которая будет использоваться сетью (строка server 10.8.0.0 255.255.255.0).
- Снять комментарий с строки client-to-client, если есть необходимость в междуклиентских взаимодействиях(по умолчанию весь трафик будет идти через сервер)
- Ограничить количество единовременных подключений к серверу(строка max-clients 100)
- Ограничить пользователя openvpn в правах (строки user nobody и group nobody)
4) Создадим сертификат СА
Перейдем в папку /usr/share/doc/openvpn/examples/easy-rsa/2.0 , где находятся скрипты для этого.
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
- Для того чтобы не вводить несколько раз одну и ту же информацию, измените любимым текстовым редактором настройки в файле vars.
Создадим сам сертификат(при его создании надо будет ответить на несколько вопросов):
. ./vars &&./clean-all &&./build-ca
5)Создание сертификата для самого сервера
./build-key-server server
6)Создание параметров Diffie-Hellman(о том что это такое)
./build-dh
7)Копирование ключей в папку самого впн сервера
cp -r keys/* /etc/openvpn/
8)Создание сертификатов для клиентов. Для этого надо для каждого клиента запустить команду:
./build-key computer
где вместо computer – уникальное название каждой “машины”.