
PfSense + DSR ( openvpn и два офиса ) |
![]() |
![]() |
![]() |
19.09.14 10:26 |
PfSense + DSR
Необходимость написания этой статьи была продиктована реальной задачей объединить несколько распределенных филиалов с центральным офисом в одну VPN сеть. В качестве типа VPN соединения был выбранOpenVPN. Во многом такой выбор был сделан в силу того, что в центральном офисе в качестве роутера в свое время был установлен pfSense на базе FreeBSD. Идеальным вариантом было бы установить в удаленных филиалах также pfSense, однако для сетевого оборудования в филиалах отведено очень мало места и надо было найти оптимальный вариант машрутизатора, который мог справится со следующими задачами: быть достаточно компактным, поддерживать OpenVPN, а также, что немаловажно при местных не очень качественных операторах связи, иметь как минимум 2 канала для подключения к внешней сети интернет. В итоге был выбран D-link DSR-500. Дальнейшее рассуждение также справедливо и для DSR-250(N) и для DSR-1000(N). На pfSense настроен по методу OpenVPN PKI: Site-to-Site. Для начала необходимо создать сертификаты. Для этого воспользуемся статьей с сайта 3cx.com.ua немного измененной под наши нужды. СодержаниеСоздание сертификатов1. Загрузите OpenVPN сервер отсюда. Я использовал файл Windows Installer. 2. Установите приложение. Все опции установки оставьте по умолчанию. На этапе установки появится запрос установки TAP адаптера. Соглашайтесь. 3. Поскольку OpenVPN использует SSL сертификаты для взаимной аутентификации узлов, следует создать ряд сертификатов • Сертификат Certificate Authority, т.е. корневой сертификат — он загружается в роутер pfSense • Сертификат Server, т.е. сертификат сервера — он загружается в роутер pfSense • Сертификат Client, т.е. сертификат клиента — он загружается в роутер DSR Внимание! Сертификаты создаются из командной строки Windows. 4. Создадим корневой сертификат Certificate Authority (CA). Перейдите в папку C:\program files\OpenVPN\easy-rsa\ и в командной строке введите init-config. 5. Отредактируйте переменные в файле vars.bat, который тоже находится в папке C:\program files\OpenVPN\easy-rsa\. Для редактирования рекомендую использовать Notepad++. Редактировать переменные не обязательно, но желательно. Я установил значения, соответствующие нашей компании, а вы должны установить ваши. После этого сохраните файл. 6. Откройте файл openssl.cnf и закомментируйте в нем строки, связанные с пакетным режимом. и сертификатами PKCS#11. Это особенность версии OpenVPN (v. 2.2.0), которую я использовал. 7. В командной строке последовательно введите vars и clean-all (См. процедуру создания сертификатов в файле Readme.txt в папке C:\program files\OpenVPN\easy-rsa\). 8. Введите build-ca. Эта команда создаст корневой сертификат CA в папке c:\Program Files\OpenVPN\easy-rsa\keys\, используя значения из файла vars.bat. На все вопросы отвечайте нажатием клавиши Enter. В качестве Common Name укажите имя сервера (хоста) OpenVPN или любое подходящее название. Я указал просто server. 9. Создайте параметры Diffie-Hellman. Введите build-dh. 10. Создав сертификат CA, нужно создать сертификат сервера OpenVPN, то есть, роутера DSR. Этот сертификат будет подписан корневым сертификатом CA. Введите build-key-server server. На вопросы о подписании сертификата и на загрузке его в базу сертификатов ответьте y. Common Name также укажите server для простоты решения. 11. Теперь сгенерируйте сертификат клиента. Введите build-key client. Common Name также укажите client. 12. После этого в папке keys должны присутствовать все необходимые сертификаты.
Настройка сервера pfSenseТакже воспользуемся уже написанной статьей с форума psSense и также немного переработанной. На сервере (pfSense) переходим в меню System -> Cert Manager на вкладку CAs Импортируем и сохранеем сертификат нового центра сертификации Переходим на вкладку Certificates и сохраняем сертификаты сервера и клиента/ов Переходим в меню VPN -> OpenVPN на вкладку Server и добавляем новый сервер кнопкой “+”: Переходим на вкладку Client Specific Overrides и кнопкой “+” добавляем настройки специфичные для нашего клиента: Обратите внимание на поле Advanced, в нем необходимо указать команду: iroute 192.168.101.0 255.255.255.0 для указания подсети данного клиента, а также в случае необходимости команду push "route 192.168.102.0 255.255.255.0" для доступа данного филиала к другому филиалу и соответственно их свзяи между собой. Все комманды прописываются черех ";" . Переходим в меню Firewall – Rules и на вкладке WAN добавляем правило для доступа извне к созданному OpenVPN серверу: Переходим на вкладку OpenVPN и добавляем правило: Настройка клиента D-Link DSR500В первую очередь особо хочу отметить, что OpenVPN реализован только на WW прошивках. На прошивках RU этого функционала нет. WW прошивка ничем кроме расширенного функционала не отличается. В любом случае интерфейс будет на английском языке. 1. Откройте web интерфейс роутера. У меня испытательный роутер имеет IP адрес 192.168.101.10. Перейдите в раздел Setup – VPN Settings – OpenVPN – OpenVPN Authentication. 2. Загрузите в роутер созданные файлы сертификатов в соответствии с таблицей. Trusted Certificate (CA Certificate) ca.crt Server/Client Certificate client.crt Server/Client Key client.key DH Key dh1024.pem Убедитесь, что файлы загружены успешно. 3. Перейдите в раздел Setup – VPN Settings – OpenVPN – OpenVPN Configuration. Установите галочку Enable Openvpn. Выберите режим Client. Server IP – это адрес вашего VPN сервера. Port рекомендуется оставить по умолчанию. Encryption Algorithm — в данном примере я установил AES-256 (как на сервере). Hash Algorithm – SHA-1, по умолчанию. Далее я отметил галочкой используемые сертификаты. Enable TLS Authentication Key включается, если предполагается шифрование сертификатов, иначе сертификаты будут передаваться в открытом виде. В IP телефонах Yealink режим шифрования сертификатов не поддерживается. 4. Перейдите в раздел Setup – VPN Settings – OpenVPN – OpenVPN Remote Networks (Split Tunneling). Здесь следует добавить удаленную сеть сервера, к которой OpenVPN клиент будет иметь доступ. Я добавил свою локальную сеть 192.168.100.0. 5. Доступ к сетям других филиалов, если это необходимо настраивается на сервере. Соединение, дополнительные настройкиЧерез несколько секунд в меню Status – OpenVPN видим успешно подключившийся клиент: Таблица маршрутов сервера (pfSense1 головного офиса): Таблица маршрутов клиента Сети головного офиса и филиала доступны друг другу через созданный туннель. Как видите, какие либо настройки маршрутизации на OpenVPN клиенте полностью отсутствуют. Заполнив поле Remote Network на клиенте, мы передали маршрут в сеть головного офиса клиенту. Напомню, это действие абсолютно аналогично тому, что на сервере в поле Advanced мы написали бы: push “route 192.168.10.0 255.255.255.0” или тому, что на клиенте в Remote Network написали: 192.168.10.0/24, или на клиенте в поле Advanced: route 192.168.10.0 255.255.255.0. Но и это не все. Мы могли бы написать: push “route 192.168.10.0 255.255.255.0” в Client Specific Overrides для ovpnc на сервере и это привело бы к тому же результату. OpenVPN в режиме PKI позволяет централизованно и гибко управлять клиентами. Все можно сделать на сервере, не прописывая route или Remote Network на каждом клиенте. Все можно настроить индивидуально в Client Specific Overrides. Для сравнения, push “route 192.168.10.0 255.255.255.0” в поле Advanced сервера действует глобально на всех клиентов.
источник:http://it-pedia.com/index.php?title=PfSense_%2B_DSR {jcomments on} |
Последнее обновление 19.09.14 11:09 |
