Alt linux настроить vpn

L2TP VPN Client Server

Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

В данной статье будет описана настройка L2TP VPN-тунеля между двумя машинами:

  • VPN-сервер 10.10.170.1
  • VPN-клиент 10.10.170.10

Установка [ править ]

В качестве клиента и cервера мы будем успользовать xl2tpd. Установим необходимые пакеты:

Настройка Сервера [ править ]

Внесём изменения в конфигурационный файл xl2tpd ( /etc/xl2tpd/xl2tpd.conf ).
Общие настройки находяися в секции global:

Настройки сервера находятся в секции lns:

В файле /etc/ppp/options.xl2tpd можно указать необходимые опции ppp, файл должен существовать.
В файле /etc/ppp/chap-secrets указываются аутентификационные данные пользователей для CHAP аутентификации:

  • client — логин
  • server — указывается имя сервера к которому можно подсоединиться (параметр name), можно заменить на *
  • Pa$$word — пароль клиента
  • * — Разрешает соединения с любых IP

Добавляем сервис в автозапуск и запускаем его:

Настройка Клиента [ править ]

Настройка клиента производится в том же файле ( /etc/xl2tpd/xl2tpd.conf ), но в секции lac:

Далее редактируем /etc/ppp/chap-secrets указывая сервер, имя и пароль:

В файле /etc/ppp/options.l2tpd указываем опцию noauth:

Пробуем подключиться к серверу:

Если подключение прошло успешно то добавляем сервис в автозапуск и запускаем его:

Источник

OpenVPN

Рассмотрена настройка OpenVPN в режиме «server» на сервере Alt linux P7 с SysVinit. В случае systemd есть отличия.

Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Содержание

Пакеты [ править ]

Размещение файлов [ править ]

  • /var/lib/openvpn/ — Корневой каталог после инициализации демона (chroot).
    • /var/lib/openvpn/etc/openvpn/ccd — Каталог, в котором размещаются файлы особых параметров для подключаемых клиентов (Client Config Directory).
    • /var/lib/openvpn/cache — Каталог для рабочих файлов после инициализации соединения. В файле конфигурации для таких файлов нужно писать путь /cache/файл
  • /etc/openvpn/ — Каталог с файлами настройки.
    • /etc/openvpn/ccd — Символическая ссылка на /var/lib/openvpn/etc/openvpn/ccd (файлы доступны и до, и после chroot). Требуется для отладки, когда openvpn запускается без chroot.
    • /etc/openvpn/keys/ — Каталог для хранения ключей (точнее, для информации ограниченного доступа)

Особенности работы и конфигурации [ править ]

Каждый файл конфигурации по маске /etc/openvpn/*.conf является конфигурацией отдельного экземпляра демона openvpn. Для имени экземпляра берётся имя файла без суффикса «.conf».

Настройки стартового скрипта располагаются в файле /etc/sysconfig/openvpn, по умолчанию он устанавливает следующие переменные окружения:

Стартовый скрипт /etc/init.d/openvpn может запускать и останавливать как все экземпляры демона, так и каждый по отдельности. Значение переменной MANUAL в /etc/sysconfig/openvpn указывает экземпляры, которые не нужно автоматически запускать при старте системы (и при запуске стартового скрипта без параметра).

Для ручного запуска (остановки, проверки) одного экземпляра в конце командной строки указываем имя экземпляра. Например для экземпляра openvpn с конфигом /etc/openvpn/server.conf::

Когда запускаем сервис, демон openvpn запускается, читает файл конфигурации из /etc/openvpn/, читает оттуда же файлы dh, ca и ключи. Этот каталог доступен демону только при его запуске.

Дальше демон выполняет chroot в /var/lib/openvpn/ и cd в /var/lib/openvpn/cache, понижает привилегии до пользователя openvpn, затем инициализирует работу с сетью.

Размещение файлов

  • Файл конфигурации в /etc/openvpn/.
  • Все ключи в /etc/openvpn/keys/.
  • CRL в /var/lib/openvpn/etc/openvpn/.
  • Файлы настроек клиентов в /etc/openvpn/ccd/ или /var/lib/openvpn/etc/openvpn/ccd/ (сюда адресован симлинк).
  • Файл параметров DH в /etc/openvpn/ или /etc/openvpn/keys/.
  • Указанный в ifconfig-pool-persist файл демон читает и пишет от корня, в /etc/openvpn/ нужен подкаталог с правом записи для openvpn.
  • Файл, указанный в status, демон с правами рута читает и пишет от корня (в /etc/openvpn)
Читайте также:  Сканирование поверхности жесткого диска windows 10

Совет.

Важно правильно указать права доступа. Ключи должны быть доступны только руту, конфигурации клиентов и файл отзывов сертификатов должны быть доступны на чтение пользователю openvpn:

В файле конфигурации указываем

  • ifconfig-pool-persist и status — без полного пути либо с путём /cache/
  • ca, dh, cert, key — с путём /etc/openvpn/keys/
  • client-config-dir /etc/openvpn/ccd
  • crl-verify — с путём относительно /var/lib/openvpn (например, файл копируем в /var/lib/openvpn/etc/openvpn/server.crl.pem, в конфиге указываем crl-verify /etc/openvpn/server.crl.pem)

Совет.

Если нужны несколько экземпляров сервера openvpn, файлы в параметрах status, ifconfig-pool-persist и client-config-dir указывайте разные, например, с именем экземпляра в префиксе.

Пример [ править ]

Создание ключей [ править ]

openssl [ править ]

Создание ключей для OpenVPN тунеля средствами openssl утилиты. Проверено:(p7,p8 systemd, sysv)

Наличие в системе установленного пакета.

Открываем файл /var/lib/ssl/openssl.cnf и меняем значение параметра policy на:

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

(без этого OpenSSL будет сильно ругаться, ответ кроется в файле /var/lib/ssl/openssl.cnf ).

Создадим «самоподписанный» сертификат my-ca.crt и закрытый ключ my-ca.pem, которыми мы будем заверять/подписывать ключи и сертификаты клиентов, желающих подключиться к нашему серверу.

  • -req — запрос на создание сертификата,
  • -x509 — создать самоподписанный сертификат стандарта X.509,
  • -keyout — записать закрытый ключ в файл,
  • -out — записать сертификат в файл.

В процессе создания, первым делом, нам предложат ввести пароль для закрытого ключа (крайне важно). Придумываем пароль, вводим, подтверждаем. Далее, будет задано несколько вопросов о том, кто мы такие. Вводим международное обозначение страны, например RU, UA, CN, далее указываем регион, город/село/деревню, название нашей организации, свои ФИО, адрес электронной почты. Все. Наш корневой «самоподписанный» сертификат готов к употреблению.

Далее, нам потребуется создать пару «ключ-сертификат» для сервера и каждого клиента, желающего подключиться к нашему серверу.

Создание ключа и запроса на подпись для сервера:

  • -nodes — означает, что шифровать закрытый ключ не нужно (иначе при каждом запуске туннеля надо будет вводить пароль на ключ).

Так же вводим описание для владельца ключа, как и ранее.

И подписываем запрос на сертификат своим «самоподписанным» my-ca.crt сертификатом и ключом my-ca.pem:

  • -cert, корневой сертификат удостоверяющего центра
  • -keyfile, секретный ключ удостоверяющего центра

Отвечаем два раза положительным «игреком» (y), в итоге, получаем связку «ключ-сертификат» для сервера server.

Теперь генерируем запрос на сертификат для пользователя:

И подписываем запрос на сертификат своим «самоподписанным» my-ca.crt сертификатом и ключом my-ca.pem:

Отвечаем два раза положительным «игреком» (y), в итоге, получаем связку «ключ-сертификат» для пользователя user_1.

Некоторые клиенты, например для Android, могут использовать бандл в формате pkcs12 вместо трёх отдельных файлов. Его тоже можно сделать:

Последние действие — создание параметров Диффи-Хеллмана (исключительно для сервера):

Файлы запросов на сертификаты можно удалить:

В результате в каталоге /root/CA должен получиться такой набор файлов:

Разносим ключи и сертификаты по каталогам сервера и клиента.

  • my-ca.crt — для сервера и клиентов
  • my-ca.pem — только для подписи сертификатов, лучше хранить на отдельном от OpenVPN сервера компьютере
  • my-ca.crt, server.crt, server.dh, server.pem — для сервера OpenVPN
  • my-ca.crt, user_1.crt, user_1.pem — для клиента OpenVPN

Для новых клиентов создать новые ключи и отдать комплектом my-ca.crt, новый_сертификат.crt, новый_ключ.pem.

В конфигурационном файле OpenVPN сервера размещаем ссылку на эти ключи (пути до ключей подставляем свои) :

Читайте также:  0xc0000012f как исправить windows 10

В конфигурационном файле OpenVPN клиента размещаем ссылку на эти ключи (пути до ключей подставляем свои):

Смотрим базу ключей:

Создание списка отзыва сертификатов

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

Отозвать серификат user_1.crt:

Обновить список (обязательно после каждого отзыва сертификата):

Для Alt Linux файл crl.pem поместить в каталог /var/lib/openvpn

Easy-Rsa [ править ]

Создание ключей для OpenVPN тунеля средствами Easy-Rsa скриптов.

Утилита для работы с командной строкой (openssl) в OpenSSL является оболочкой для многих «подпрограмм», одна из которых является Easy-rsa.

Для OpenVPN версии выше 2.3 набор скриптов easy-rsa не входит в инсталляцию по умолчанию, а устанавливается отдельно.

Установим данный пакет, но для начала просмотрим кеш пакетов в системе, на наличие Easy-rsa пакета скриптов.

apt-get update && apt-cache search easy rsa | grep easy

apt-get install easy-rsa

Сделаем поиск по ключевому слову «easyrsa*» и посмотрим куда установилась утилита:

find / -name «easyrsa*»

В OpenSSL есть пример файла openssl.cnf, который находится в соответствующей папке (название директории может изменяться от версии к версии). По умолчанию openssl утилита обращается к файлу /var/lib/ssl/openssl.cnf. В большинстве случаев (и особенно при тестировании) можно использовать как раз этот файл без каких-либо изменений. Если же вы планируете более плотно поработать с сертификатами, следует поподробнее ознакомиться с содержимым файла конфигурации. В нем есть несколько полезных параметров, например, местонахождение серийных номеров и списка отозванных сертификатов (Certificate Revocation List).

Однако некоторые записи из раздела [ CA_default ] ссылаются на директории и файлы, которые, в случае их отсутствия, могут привести к проблемам при развертывании центра сертификации, и вы должны создать все необходимые файлы и папки перед тем, как подписывать CSR. В составе OpenSSL идет простая утилита CA.pl, которая упрощает весь процесс (на самом деле просто создается структура директорий, на которые ссылается файл openssl.cnf)

Заглянем в каталог /usr/share/easyrsa3:

Файл openssl-1.0.cnf, является конфигуратором для утилиты openssl, запущенной через скрипты easy-rsa. В случае с использованием скриптов easy-rsa нам не нужно думать о создании инфраструктуры каталогов PKI (Public Key Infrastructure — Инфраструктура открытых ключей). Программа упрощает процесс создания инфраструктуры каталогов.

Перейдем в каталог в котором создадим инфраструктуру каталогов для ключей и сертификатов.

Создать структуру каталогов:

В текущей директории создается каталог pki c вложенными каталогами для ключей и запросов.

Дальнейшие действия необходимо выполнять в текущей директории, иначе утилита будет выводить ошибки из-за отсутствия pki каталога в текущей директории при запуске easyrsa команды.

Ключи центра сертификации.

Создать корневой сертификат. Обязательно ввести сложный пароль и Common Name сервера, например CA-ORG:

Создать ключи Диффи-Хелмана:

Создание ключа занимает некоторое продолжительное время.

Проверим содержание каталога pki

  • ca.crt — сертификат корневого центра сертификации
  • dh.pem — ключ Диффи-Хелмана
  • ./private/ca.key — секретный ключ центра сертификации

Создать запрос на сертификат для сервера OVPN. Обращаю внимание, что сертификат будет не зашифрован (запаролен), за это отвечает параметр nopass, иначе при каждом старте OpenVPN будет запрашивать этот пароль:

easyrsa gen-req vpn-server nopass

Создать сам сертификат сервера OVPN:

easyrsa sign-req server vpn-server (client | server) — это параметр предположительно берущий настройки из файла /usr/share/easyrsa3/x509-types/server

Скопировать полученные ключи в рабочий каталог openvpn и в конфиге сервера указать полный путь к ключам.

cp ./pki/ca.crt /etc/openvpn/keys

cp ./pki/issued/vpn-server.crt /etc/openvpn/keys

cp ./pki/private/vpn-server.key /etc/openvpn/keys

cp ./pki/dh.pem /etc/openvpn/keys

Для создания пары ключ/сертификат минуя создания запросов и подписи необходимо выполнить команду:

easyrsa build-server-full vpn-server nopass — без пароля

easyrsa build-server-full vpn-server — с паролем

Читайте также:  Пакет офис для mac os

Процесс создания ключей клиентам аналогичен созданию ключей для сервера.

Создание запроса запароленного ключа для клиента (потребуется вводить при каждом подключении) с именем User:

easyrsa gen-req User

Если авторизация будет внешней (например ADшная), то пароль не потребуется. Создание запроса без парольного ключа для клиента:

easyrsa gen-req User nopass

Создание ключа пользователя (по дефолту сроком на 10 лет):

easyrsa sign-req client User

(client | server) — это параметр предположительно берущий настройки из файла /usr/share/easyrsa3/x509-types/client

Или cоздание ключа пользователя с ограничением действия сертификата в 90 дней (после истечения срока можно только перевыпустить):

./easyrsa sign-req client User -days 90

Клиенту передать эти файлы:

Для создания пары ключ/сертификат минуя создания запросов и подписи необходимо выполнить команду:

easyrsa build-client-full User nopass — без пароля

easyrsa build-client-full User — с паролем

Генерация файла отозванных ключей:

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

ln -s /root/pki/crl.pem /var/lib/openvpn

В файл конфигурации openvpn сервера добавить строку

Отзыв сертификата пользователя User:

easyrsa revoke User

Каждый раз при отзыве сертификата необходимо обновлять crl.pem, чтобы внести в него изменения:

Одноименный файл ключа не может быть создан пока не отозван старый.

При попытке создать сертификат с уже имеющимся именем выдаст ошибку:

failed to update database Easy-RSA error: signing failed (openssl output above may have more detail)

Для исключения возможности mitm атаки, ошибка которого так выглядит в логах клиента:

WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.

служит параметр remote-cert-tls server.

Список валидных и отозванных сертификатов можно посмотреть в файле ./pki/index.txt.

Начало строки описания каждого сертификата начинается с букв V или R, что значит Valid и Revoked (действующий и отозванный)

При помощи OpenSSL можно создать свой собственный центр сертификации и не прибегать к услугам коммерческих центров и тем самым сэкономить немного денег.

В документации утверждается, что средства по созданию своего собственного центра сертификации были разработаны лишь в демонстрационных целях. Их никогда не планировалось использовать для работы в боевых условиях. Выдержка из документации:

«Первоначальной цель утилиты ca — продемонстрировать на примере, как происходит подпись запроса в центре сертификации, и не предполагается ее использование в реальной жизни. Тем не менее, некоторые пользователи используют утилиту ca для подписи запросов»

Для нечастого использования – средства OpenSSL вполне подходят, однако если вы хотите создать что-то более масштабное, необходимо развернуть серьезную инфраструктуру по управлению сертификатами.

Базовая настройка для P8 [ править ]

Рассмотрим установку и настройку OpenVPN. Установим необходимые пакеты на сервере:

Для настройки OpenVPN сервера мы будем использовать образец файла конфигурации OpenVpn:

Скопированный на предыдущем этапе файл server.conf является вполне работоспособной конфигурацией. Ее достаточно для нормальной работы сервера. Только стоит обратить внимание на имена и пути файлов сертификата сервера (.crt) и его ключа (.key), а также сертификата CA (.crt).
Начиная с версии 2.3 утилиту easy-rsa из пакета убрали, поэтому придется установить пакет отдельно:

Генерируем все необходимые ключи и сертификаты. Вводим для них пароли.

Переносим полученные ключи и сертификаты в каталог /etc/openvpn/keys/. Далее запускаем сервер OpenVPN:

Сервер успешно запущен.
Настроим openVPN клиент:

Открываем client.conf ищем строку remote и меняем ее на:

Запускаем клиент OpenVPN:

Клиент успешно запущен.
Между клиентом и сервером получится виртуальная сеть. На этом настройка OpenVPN завершена.

Источник

Оцените статью