Skip to content

Операционная система должна предоставлять возможность установления безопасных сетевых соединений по технологии VPN.


[[ЛКНВ.11100-01 90 03 Руководства администратора.pdf]], стр. 243-251 https://www.altlinux.org/OpenVPNhttps://www.altlinux.org/Alterator-net-openvpn

https://forum.altlinux.org/index.php?topic=8557.0 Стенд: openVPN Server, OpenVPN Client, IMA EVM

OpenVPN-сервер

Шаг № 1:

Заходим в Центр управления сервера, Настройка - Режим эксперта

находим OpenVPN-сервер, нажимаем "Сертификат и ключ ssl.."

Оказываемся в Управление ключами SSL, заполняем графу Страна (С) RU большими буквами и нажимаем "Забрать запрос на подпись".

Предлагает сохранить файл openvpn-server.csr Сохраняем у себя.

В разделе Управление ключами SSL появился новый ключ openvpn-server(Нет сертификата)

Шаг № 2:

Переходим в Удостоверяющий Центр   -  Управление сертификатами, чтобы подписать сертификат нажимаем "Обзор", показываем дорогу до полученного openvpn-server.csr и Загружаем запрос.

Выскакивают две группы цифр с кнопкой в конце "Подписать"

Опять предлагает сохранить на нашем компьютере. Сохраняем файл output.pem Это и есть подписанный сертификат.

Шаг № 3:

Возвращаемся в раздел Управление ключами SSL, где лежит наш ключ openvpn-server(Нет сертификата)

Выделяем его и нажимаем "Изменить" и в появившемся окне, в Положить сертификат, подписанный УЦ: нажимаем "Обзор", показываем дорогу до output.pem и нажимаем на "Положить".

Возвращаемся в раздел Управление ключами SSL, где видим, что изменился ключ openvpn-server(истекает_и_дата)

Ключ создан и подписан.

Шаг № 4:

Осталось только Положить сертификат УЦ:

Для этого его находим в разделе Удостоверяющий Центр нажимаем на ссылку Управление УЦ и видим ссылку Сертификат: ca-root.pem

Забираем этот самый ca-root.pem это и есть сертификат УЦ.

Наконец возвращаемся в раздел OpenVPN-сервер

В графе Положить сертификат УЦ: при помощи кнопки "Обзор" показываем дорогу до ca-root.pem и нажимаем "Положить"

Появляется сообщение: Сертификат УЦ успешно загружен

Шаг № 5:

Ставим флаг в графе: Включить службу OpenVPN, первый раз больше ничего не трогаем и нажимаем "Применить"

Диагностика:

Появилось новое соединение

bash
ip a s
# 8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100    link/none     inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0

появилось

bash
ss -na -u | grep 1194
# UNCONN     0      0                         *:1194                     *:*

Со стороны клиента можем проверить открыт ли доступ до сервера можно только от root

bash
nmap -sU -p 1194 192.168.0.1
# Starting Nmap 4.20 ( http://insecure.org ) at 2010-05-06 09:41 YEKSTInteresting ports on 192.168.0.1:PORT STATE SERVICE1194/udp open|filtered unknownMAC Address: 00:E0:4C:F0:C6:45 (Realtek Semiconductor)Nmap finished: 1 IP address (1 host up) scanned in 0.726 seconds1194/udp open|filtered unknown

Видим, что по порту 1194  тип TUN (udp)  сервер ждет нашего подключения клиентом.

Шаг 6:

Так как весь трафик будет проходить через данный OpenVPN сервер, необходимо его настроить, хотя бы, как самый простой маршрутизатор.

Минимально:

  1. Включить ip forward: Отредактировать файл /etc/net/sysctl.conf:
bash
net.ipv4.ip_forward = 1

Затем выполнить

bash
sysctl -p
  1. Настроить MASQUERADE в iptables в зависимости от нужд:
bash
iptables -t nat -A POSTROUTING -o сетевой_адаптер -j MASQUERADE

Также, проверьте таблицу маршрутизации:

bash
ip route

В случае необходимости добавьте или удалите правила.

OpenVPN-соединение на стороне клиента Linux

Шаг № 1 Создаем новое OpenVPN-соединение

Заходим "Центр управления системой"

Нажимаем - Главная

Находим - Сеть - OpenVPN-соединение

Создаем новое соединение - Новое соединение - Сетевой туннель (TUN) - Создать соединение

Шаг № 2 Создаем ключ и запрос на подпись

Нам необходимо создать ключ. Находим кнопку - Управление ключами, в окне нажимаем - Новый - и заполняем поля. Главное заполнить первое поле: Общее имя (CN) , допустим имя будет vova

Ставим галочку "Создать ключ и запрос на подпись" и показываем путь, куда положить этот запрос в поле: "Целевой каталог" Нажимаем в поле "Создать ключ и запрос на подпись" кнопку "Подтвердить" (не путать с Применить в основном меню)

Потом нажимаем "Применить".

Может с первого раза в указанном каталоге ничего не появляется. Проверяем, там должен быть оказаться файл vova.csr

Если там ничего нет, то возвращаемся на шаг назад и повторяем через "Изменить".

В итоге у нас должен быть файл vova.csr (это и есть запрос на подпись) и строка в меню "Управление ключами" vova (Нет сертификата)

Шаг № 3 Подписываем запрос на OpenVPN-server

Заходим уже на сам сервер, в "Центр управления системой" и переходим в "Удостоверяющий центр". Находим "Подписать сертификат_" , нажимаем "Обзор" и показываем путь до нашего vova.csr , далее "Загрузить запрос"

видим Certificate Request:

bash
* Data:  
          o Version: 0 (0x0) Subject: CN=mynetik, C=RU, L=Yekaterinburg

и далее набор цифр а внизу кнопка "Подписать"

Нажимаем и "Центр управления системой" OpenVPN-server предлагает сохранить файл на нашем настольном компьютере-клиенте.

Сохраняем. У нас появился файл output.pem

Шаг № 4 Импортируем сертификат пользователя

На клиенте возвращаемся в наше OpenVPN-соединение, в меню "Управление ключами" находим ми выделяем наш vova (Нет сертификата)

Говорим "Изменить" и в окне "Импортировать сертификат пользователя" показываем путь до output.pem , заканчиваем "Применить" и "ОК"

В меню "Управление ключами" изменился _vova (Истекает и дата когда)
Все хорошо, ключ создан и активизирован.

Шаг № 5 Импортируем сертификат удостоверяющего центра

Сертификат удостоверяющего центра это файл, который находится на OpenVPN-server

Чтобы его получить, возвращаемся на сервер, в "Центр управления системой" и переходим в "Удостоверяющий центр"

Находим ссылку "Управление УЦ", нажимаем и видим строку Сертификат: ca-root.pem

Нажимаем на ссылку ca-root.pem OpenVPN-server предлагает сохранить файл на нашем настольном компьютере-клиенте.

Сохраняем. У нас появился еще один файл, который так и будет называться ca-root.pem

Шаг № 6: Далее уже на клиенте

Заходим "Центр управления системой"

Нажимаем - Главная

Находим - Сеть - OpenVPN-соединение

и в самом низу видим поле "Импортировать сертификат УЦ" и показываем дорогу до ca-root.pem

Примечание: Если не работает импорт через данное поле, то используем один из вариантов: Переместить корневой сертификат в директорию cp /home/user/ca-root.pem /var/lib/ssl/certs/ или cat /home/user/ca-root.pem > /etc/net/ifaces/tun0/ovpnca

Шаг № 7 Устанавливаем OpenVPN-соединение с OpenVPN-server'ом

Заходим "Центр управления системой"

Нажимаем - Главная

Находим - Сеть - OpenVPN-соединение -

В меню меняем "Состояние" - с "не менять" на "запустить"

Сервер - указываем IP адрес или домен

Порт - оставляем 1194

Ключ - выбираем в меню наш vova

Запускать при запуске - оставляем так или ставим галочку, по вашему усмотрению

Маршрут по умолчанию через VPN - оставляем галочку или снимаем, по вашему усмотрению

Сжатие LZO - оставляем галочку или снимаем, по вашему усмотрению

Разумнее согласиться с уже имеющимися настройками.

Дальше говорим Применить и видим, что изменилось состояние с "Выключено" на "Включено"

Но это еще ничего не значит.

Особенность такого подключения (TUN), что если даже не будет соединения TCP или инета вообще, состояние "Включено" появится всегда.

Проверить, появилось ли соединение с сервером можно командой

bash
ip a s

должно появиться новое соединение tun0. При обычных настройках это может выглядеть так:

bash
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100    link/[65534]     inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0

Проверьте сетевую связность с сервером, а также связь с офисами.

Также, проверьте таблицу маршрутизации:

bash
ip route

В случае необходимости добавьте или удалите правила.

Контакты: bystrovno@basealt.ru