Курсы по использованию Asterisk

IP-телефония — технология будущего. Обучитесь работе с IP-АТС Asterisk для того чтобы внедрить и профессионально использовать при решении коммуникационных задач.

Работайте с Asterisk профессионально!

Многоуровневая защита IP-АТС Asterisk

Телефонные станции очень часто становятся объектами хакерских атак. Узнайте, каким образом необходимо строить многоуровневую защиту для Вашей IP-АТС.

Не оставьте хакерам шансов. Защитите свой Asterisk от атак.

Используйте Веб-Интерфейс для удобства настройки

Панель управление FreePBX позволяет легко и удобно управлять всей системой. Научитесь эффективно использовать FreePBX для решения своих задач.

Управление станцией и статистика в окне браузера.

Научитесь работать с Asterisk из консоли

Для понимания работы с Asterisk необходимо уметь настраивать его вручную с конфигурационными файлами и командной строкой CLI Asterisk.

Научитесь «тонкой» настройке Asterisk

Цель курсов - максимум практики.

Обучение нацелено на практическую работу с IP-оборудованием: платы потоков E1, VoIP-телефонные аппараты, голосовые шлюзы FXS и прочее.

Обучение на реальном оборудовании — залог успеха.

Генерация клиентских сертификатов VPN сертификатов на сервере OpenVPN

База знаний Linux

Из этой статьи Вы узнаете о том, как генерировать клиентские сертификаты, отчего отталкиваться при написании клиентского файла конфигурации, как писать клиентский файл конфигурации.

Содержание статьи

Введение

Генерация сертификатов

Руководство по созданию базового файла конфигурации

Создание единого файла конфигурации, содержащего все сертификаты и ключи

Введение

Стоит начать с того, что для того, чтобы создавать клиентские ключи и сертификаты, Вам необходимо наличие функционирующего VPN сервера. В рамках данной статьи используется серверный дистрибутив на базе CentOS 6.9 совместно с OpenVPN сервером версии 2.4.6

 если у Вас нет VPN сервера, ознакомьтесь со статьёй на нашем сайте: (https:// Установка и конфигурирование сервера OpenVPN на CentOS).

Генерация сертификатов

Первым делом нам необходимо сгенерировать ключ и сертификат для клиента. Происходит это по следующей схеме:
1) Создаётся ключ и запрос сертификата.

2) Создаётся сертификат, затем производится подпись центром сертификации.

Подготовимся к созданию ключа и сертификата. Для этого перейдём в рабочую директорию easy-rsa. У меня это:

# cd /usr/share/easy-rsa/3.0.3/




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

# ./easyrsa gen-req client1 nopass    
 



Разберём основной синтаксис:

  • gen-req (generate request) – сгенерировать запрос, под этой командой понимается так же генерация ключа.
  • client1 – имя нашего файла (может быть любым)
  • nopass – директива, которая указывает не устанавливать пароль на клиентский сертификат, в противном случае, каждый раз, когда клиент будет пытаться подключиться, для сертификата будет запрашиваться пароль.

Когда выполнение будет начато, мы увидим:



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

файл vars хранит переменные, в которых записаны заданные администратором значения. Благодаря этому файлу мы избавляемся от нужды отвечать на множество вопросов сервера каждый раз, когда генерируем ключ и сертификат. О том, что в нём должно содержаться, Вы так же можете ознакомиться в статье на нашем сайте про конфигурацию VPN сервера на базе OpenVPN: (https:// Установка и конфигурирование сервера OpenVPN на CentOS).


Затем сервер генерирует клиентский ключ размерностью 2048 бит, после сразу же записывает его в директорию:

/usr/share/easy-rsa/3.0.3/pki/private/client1.key.FkMNLTEczC



Здесь мы задаём имя объекта, которому выдаётся сертификат. Т.к. нет общеупотребительного варианта перевода, смысл такой.



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

Создаётся файл client1.req – файл, хранящий запрос о сертификате, а также файл client1.key – хранящий клиентский ключ.

Следующим шагом будет создание и подпись клиентского сертификата. Для этого введите в консоль команду:

# ./easyrsa sign-req client client1


Синтаксис остаётся примерно тем же, со следующими отличиями:

  • sign-req (signature request) запрос на создание и подпись сертификата.
  • второе значение – client - говорит о типе сертификата, который нужно подписать: клиент или сервер. В нашем случае – это клиент.
  • client1 – имя файла (может быть любым).

Во время выполнения увидим следующее:



Процедура схожа с созданием запроса. Происходит обращение к файлу vars, затем сервер уведомляет нас о том, что сертификат будет сгенерирован на 3650 дней, после чего нам предлагается ввести ‘yes’, чтобы продолжить или ввести что угодно, чтобы отменить запрос.



Т.к. нам нужен подписанный сертификат, пишем ‘yes’.



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



В результате получаем следующий вывод: происходит проверка соответствия запроса требованиям центра сертификации, подпись и генерация сертификата по указанному пути: /usr/share/easy-rsa/3.0.3/pki/issued/client1.crt

По итогу мы получаем 2 файла:

  • key – клиентский ключ
  • crt – клиентский сертификат

Для того, чтобы поднять клиентский доступ на slave-устройстве, необходимо иметь минимальный набор файлов:

  • crt – сертификат центра сертификации
  • key – клиентский ключ
  • crt – клиентский сертификат

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

Руководство по созданию базового файла конфигурации.

Здесь я дам необходимый набор информации о том, из чего исходить при написании конфига для клиента.

# Первым делом, указываем тип: клиент/сервер.

client

 

# Укажите адрес VPN сервера, вместо a.b.c.d,

# к которому желаете подключиться. Через пробел можно указать порт.

# Смотрите закомментированый пример. Если указываете адрес и порт

# директивой remote, директиву port использовать не нужно.

remote a.b.c.d

;remote a.b.c.d 1194

 

# Укажите порт OpenVPN сервера. Должен быть таким же, как и на сервере.

port 1194

 

# Укажите тип интерфейса tun/tap. Зависит от конфигурации сервера.

dev tun

 

# Укажите протокол.

# Должен быть таким, как на сервере.

proto tcp

;proto udp

    

# Укажите непривилегированного пользователя и соответствующую группу

# пользователей. Для всех клиентов, кроме Windows.

;user nobody

;group nobody

 

# persist-key – не перечитывать файлы ключей после перезапуска тоннеля.

# persist-tun – не закрывать и не перезапускать tun/tap интерфейс, так же не

# выполнять up/down скрипты. Если не указать этот параметр, то каждый раз,

# когда будет падать интернет, нужно будет вручную всё поднимать при условии, # что приложение OpenVPN работает на правах непривилегированного

# пользователя.

persist-key

persist-tun

   

# Укажите пути к сертификатам. В моём случае сертификаты лежат в той папке,

# где и сам конфигурационный файл, т.е. путь остаётся пустым.

ca ca.crt

cert client1.crt

key client1.key

 

# Укажите ключ tls, если имеется. Генерируется на стороне сервера. Целью TLS

# ключа является повышение безопасности тоннеля и шифрование трафика.

# В моём случае не используется, потому закомментировано.

;tls-auth ta.key" 1

 

# Укажите алгоритм шифрования. Должен соответствовать серверному.

cipher AES-256-CBC

 

# Укажите: нужно ли использовать сжатие. Должно соответствовать серверу.

# У меня не используется, потому закомментировано.

;comp-lzo

 

# Укажите уровень логгирования.

verb 6

 

# Укажите параметр проверки доступности хоста. В данном случае:

# Посылать пакет icmp каждые 10 секунд в течение 120 секунд.

# Если хост не отвечает спустя 120 секунд, считать его недоступным и выполнять # перезапуск тоннеля.

keepalive 10 120

 

На данном этапе всё готово. Осталось передать архив, состоящий из четырёх файлов (ca.crt, client1.crt, client1.key, tun0.ovpn).

Количество файлов, а так же состав директив в файле конфигурации клиента могут отличаться в зависимости от конфигурации Вашего OpenVPN сервера.

Создание единого файла конфигурации, содержащего все сертификаты и ключи

Следует рассказать о том, как разместить все сертификаты и конфигурацию клиента в один файл расширения .ovpn. Реализуется это следующим образом.

В конфигурационный файл вносится следующая конструкция:

<certificate>                                   - открывающий тэг

 [...]                                                  - содержимое сертификата

</certificate>                                  - закрывающий тэг

Указывая тэг certificate, мы сообщаем о том, что в его рамках будет находиться некое содержимое некоего сертификата. Для того, чтобы явно указать, какой сертификат нужно заключить в конфигурационный файл, в тэг <certificate> вместо слова ‘certificate’ необходимо вписать тип файла, например, вписав в тэг <cert> мы сообщаем, что в рамках тэга будет описан сертификат клиента сервера VPN.

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

Теперь рассмотрим на нашем примере.

У нас в данный момент есть 3 файла, сгенерированные OpenVPN сервером, это:

  • crt
  • crt
  • key

В файле конфигурации они объявлены таким образом:

  • ca ca.crt
  • cert client1.crt
  • key clientkey

Их необходимо удалить из файла конфигурации .ovpn, затем внести в конец конфигурационного файла следующую конструкцию:

<ca>

 [...]

</ca>

<cert>

 [...]

</cert>

<key>

 [...]

</key>

После этого полностью скопируйте содержимое каждого из файлов, затем вставьте вместо [...].

На данном этапе всё готово, осталось выслать клиенту готовый конфигурационный файл.

 

установка, тип, centOS, 1C