Скорая Компьютерная Помощь г. Калуга

Полный спектр компьютерных услуг!

Здравствуйте, гость ( Вход | Регистрация )

> Внимание!

  • Вся информация, расположенная в данном и других разделах форума получена из открытых источников (интернет-ресурсы, средства массовой информации, печатные издания и т.п.) и/или добавлена самими пользователями. Администрация форума предоставляет его участникам площадку для общения / размещения файлов / статей и т.п. и не несет ответственности за содержание сообщений, а также за возможное нарушение авторских, смежных и каких-либо иных прав, которое может повлечь за собой информация, содержащаяся в сообщениях.
Ремонт компьютеров в калуге Рекламное место сдается
 
Ответить в эту темуОткрыть новую тему
> Перенос OpenVPN сервера на Endian Firewall Community, "Твики" настройки EFW 2.5.1
Decker
сообщение 21.12.2012, 2:40
Сообщение #1


Администратор
*****

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1



Не так давно в статье Настройка OpenVPN сервера мы писали о том, как поднять и настроить OpenVPN сервер под Windows. На днях пришлось столкнуться с задачей переноса настроенного OpenVPN сервера на софтовый роутер под управлением Endian Firewall Community 2.5.1. В этом посте мы рассмотрим некоторые моменты, которые касаются непосредственно переноса. Итак, EFW, как и любой другой полноценный софтроутер имеет в своем составе OpenVPN, который можно настроить и в качестве сервера, и в качестве клиента. Но как быть, если ключи и сертификаты у нас уже сгенерированы и мы уже имеем рабочий инстанс OpenVPN?

В нашем примере предполагается что мы имеем настроенный согласно статье Настройка OpenVPN сервер, т.е. для пользователей уже сгенерированы ключи (.key) и сертификаты (.cer), также используется ключ tls-auth. Главная сложность в том, что EFW 2.5.1 поддерживает авторизацию на основе X.509 certificate для OpenVPN, но импортировать ключ и сертификат сервера туда можно только в формате PKCS#12.

Как сконвертировать ключ (.key) и сертификат (.cer) в формат PKCS#12?

Для этого напишем небольшой пакетный сценарий:
make-pkcs12.bat
Код
@echo off
cd %HOME%
rem convert the key/cert and embed the ca cert into a pkcs12 file.
openssl pkcs12 -export -inkey %KEY_DIR%\%1.key -in %KEY_DIR%\%1.crt -certfile %KEY_DIR%\ca.crt -out %KEY_DIR%\%1.p12
rem delete any .old files created in this process, to avoid future file creation errors
del /q %KEY_DIR%\*.old

Выполнив его для серверного ключа make-pkcs12 Server (предварительно не забываем запустить vars.bat для инициализации переменных) на выходе получим файл Server.p12, готовый для импорта в EFW. Заходим в меню VPN -> OpenVPN Server -> Advanced в EFW и в разделе Authentication settings -> Certificate management с помощью Import server certificate from external Certification Authority (CA) импортируем сертификат сервера. Одновременно с сертификатом сервера импортируется ключ сервера, и сертификат CA (Certification Authority). Далее в Advanced settings настраиваем порт и протокол на котором у нас будет находиться OpenVPN сервер, а также другие параметры.

В Authentication settings -> Authentication type выбираем что аутентификация у нас будет производиться по X.509 certificate.

Теперь нам придется столкнуться с другой проблемой, в статье в конфигах у нас используется tls-auth, настройку которого из Web GUI EFW 2.5.1 поддерживает только для клиентских OpenVPN подключений. Т.е. если мы настраиваем сервер, то из web-интерфейса мы никак не сможем указать EFW что надо использовать наш ta.key.

Как в EFW при настройке OpenVPN сервера использовать tls-auth?

Не беда. Правда, нам потребуются небольшие знания Linux и умение работать в командной строке. Подключаемся к EFW по SSH и в /etc/openvpn/openvpn.conf.tmpl (это шаблон файла конфигурации, из него при сохранении настроек OpenVPN сервера через web-интерфейс формируется основной файл конфигурации OpenVPN сервера - /etc/openvpn/openvpn.conf) меняем следующий кусок:

Код
#if $DS.OPENVPN.SETTINGS.AUTH_TYPE == 'psk'
client-cert-not-required
auth-user-pass-verify "/usr/bin/openvpn-auth" via-file
username-as-common-name
#else
; ns-cert-type client
  tls-auth /var/efw/openvpn/ta.key 0
  #if $HAS_CRL == 'on'
crl-verify /var/efw/openvpn/crl.pem
  #end if
  #if $DS.OPENVPN.SETTINGS.AUTH_TYPE == 'certpsk'
auth-user-pass-verify "/usr/bin/openvpn-auth" via-file
username-as-common-name
  #end if
#end if

Т.е. здесь мы закомментировали строчку ns-cert-type client и добавили строчку tls-auth /var/efw/openvpn/ta.key 0. Что это дает? При формировании конфига openvpn.conf, если мы используем метод авторизации по сертификатам в openvpn.conf будет добавлена строка tls-auth /var/efw/openvpn/ta.key 0. Соответственно наш файл ta.key нам необходимо будет поместить в /var/efw/openvpn/. TLS побежден. Рассмотрим еще один вопрос.

Как подключить к EFW (Endian Firewall Community) репозиторий? Как устанавливать в EFW пакеты?

Наверное каждый, кто занимается администрированием EFW задумывался над тем, что было бы удобно добавить туда те же wget или mc, на самом деле такой способ есть. Можно подключить репозиторий от CentOS. Для этого заходим по SSH, набираем команду login чтобы попасть в полноценную linux'овую консоль и далее в ней:

Код
smart config –-set rpm-check-signatures=False
smart channel --remove centos-4
smart channel --add сentos-4 baseurl="http://vault.centos.org/4.9/os/i386/" type=rpm-md -y
smart update
smart install wget
smart install mc

Для удаления данного репозитория следует воспользоваться:
Код
smart channel --remove centos-4

Для тех, кому необходимо собрать что-то свое из исходников в EFW понадобятся следующие пакеты:
Код
smart install binutils gcc glibc-devel glibc-headers glibc-kernheaders kernel-devel make


Ну и напоследок.

Как настроить GREEN IP из консоли?

Всем известно, что при установке EFW IP интерфейса GREEN по-умолчанию - 192.168.0.15, а web-морда доступна по адресу https://192.168.0.15:10443/ ... это не всегда удобно. Допустим мы только что установили (или имеем уже установленный) EFW и нам необходимо получить доступ к web-интерфейсу к примеру из подсети 192.168.10.0/24. Менять настройки сетевой карты ПК, с которого мы будем производить настройку не всегда удобно. Однако, можно временно изменить настройки GREEN IP непосредственно на EFW, для того чтобы он оказался в требуемой сети, а затем уже нормально сконфигурировать его через web. В локальной консоли EFW (имеется ввиду, что к ПК с EFW у нас подключена клавиатура и монитор) переходим в Shell, там вводим команду login для того чтобы попасть в консоль Linux. Интерфейс GREEN - это br0, соотвественно последовательно делаем:
Код
ifconfig br0 down
ifconfig br0 inet 192.168.10.15 netmask 255.255.255.0
ifconfig br0 up

Все. EFW у нас теперь с адресом 192.168.10.15 до следующей перезагрузки. Теперь к нему можно получить доступ из требуемой нам сети и сконфигурировать.

Где хранятся настройки интерфейса GREEN?

Чтобы быстро изменить настройки GREEN интерфейса (можно попробовать изменить их через Web GUI в System -> Network configuration -> Network setup wizard, однако мне он там сначала предлагал сконфигурировать интерфейс RED, настройки которого мне менять совершенно не хотелось) можно воспользоваться SSH. Настройки интерфейсов содержатся в /var/efw/ethernet/settings в виде:
Код
ORANGE_CIDR=
BLUE_ADDRESS=
ORANGE_BROADCAST=
BLUE_NETMASK=
GREEN_IPS=192.168.10.254/24
ORANGE_ADDRESS=
GREEN_NETMASK=255.255.255.0
BLUE_BROADCAST=
CONFIG_TYPE=2
ORANGE_NETMASK=
ORANGE_DEV=br1
GREEN_NETADDRESS=192.168.10.0
BLUE_IPS=
GREEN_BROADCAST=192.168.10.255
ORANGE_IPS=
ORANGE_NETADDRESS=
GREEN_CIDR=24
GREEN_ADDRESS=192.168.10.254
GREEN_DEV=br0
BLUE_CIDR=
BLUE_DEV=br2
BLUE_NETADDRESS=

Соответственно, например, можно добавить "алиас" на GREEN интерфейс. Например, если нам нужно чтобы у нас EFW на интерфейсе GREEN отзывался и на 192.168.10.254, и на 192.168.9.1, нужно в GREEN_IPS через запятую указать требуемые IP, например - GREEN_IPS=192.168.10.254/24,192.168.9.1/24. Сохранить файл и перезагрузить ПК с EFW. После перезагрузки на интерфейсе GREEN (br0) будет уже два IP.

Хотел что-то еще рассказать, но это уже пост по настройке EFW получается, а не про перенос OpenVPN под EFW, поэтому, пожалуй на сегодня на этом и остановимся.


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Рекламное место сдается Рекламное место сдается
Текстовая версия Сейчас: 18.8.2019, 0:54
Рейтинг@Mail.ru
Яндекс.Метрика Яндекс цитирования