[VPN] Как настроить VPN сервер на роутере Asus — OpenVPN
Введение
- Что такое VPN?
- Создание OpenVPN Сервера
- Экспорт настроек OpenVPN
- FAQ
Что такое VPN?
Виртуальная частная сеть: Виртуальные частные сети шифруют Ваше сетевое соединение, обеспечивая безопасную передачу важной информации и предотвращая ее кражу. Позволяет удаленным потребителям (VPN-клиентам) безопасно подключаться к VPN-серверам.
VPN имеет множество способов подключения, в этой статье информация о настройках OpenVPN сервера в маршрутизаторах Asus, для выполнения настроек, связанных с другими типами поддерживаемых серверов (PPTP VPN, IPSec VPN) настройки можно найти в следующих связанных часто задаваемых вопросах. Рекомендации могут быть выбраны в зависимости от типа VPN, поддерживаемого Вашим устройством.
Для настройки PPTP VPN сервера, пожалуйста,oбратитесь к https://www.asus.com/ru/support/FAQ/114892
Для настройки IPSec VPN сервера, пожалуйста, обратитесь к https://www.asus.com/support/FAQ/1044190
VPN-серверы, поддерживаемые беспроводными маршрутизаторами ASUS, различаются в зависимости от модели. Рекомендуется обратиться к руководству пользователя продукта или странице технических характеристик продукта, чтобы подтвердить, что Ваш маршрутизатор поддерживает данный функционал.
Пожалуйста следуйте следующим шагам для создания своего OpenVPN сервера:
Шаг 1. Пожалуйста, подключите свой компьютер или устройство к маршрутизатору, запустите веб-браузер и введите http://router.asus.com, чтобы войти на страницу входа в маршрутизатор.(Графический веб интерфейс, GUI)
Примечание: воспользуйтесь ссылкой, чтобы узнать больше о том, как войти в интерфейс.
Шаг 2. Введите свое имя пользователя и пароль для входа на страницу входа, а затем нажмите [Войти].
Примечание: Если Вы забыли Имя пользователя и пароль, пожалуйста, сбросьте настройки роутера по умолчанию. Пожалуйста, обратитесь к Как сбросить настройки роутера по умолчанию?
Шаг 3. Откройте настройки [VPN] > [VPN Server] > [OpenVPN], Включите OpenVPN сервер — положение [ON].
Шаг4. Основные настройки
a. Подробнее о VPN: По умолчанию как [Основные].
b. Порт сервера: Укажите порт соединения. Текущий порт по умолчанию 1194 определяется IANA номерами портов для OpenVPN.
c. RSA Encryption: По умолчанию как [1024 bit].
d. Клиент будет использовать VPN для доступа: По умолчанию [Только локальная сеть]. Когда VPN-клиент подключается к VPN-серверу, он может получить доступ только к локальной сети за VPN-сервером.
[Интернет и локальная сеть]: Когда клиент подключается к VPN-серверу, он может одновременно получить доступ к локальной сети за VPN-сервером, а также может получить доступ к Интернету через VPN-сервер.
Шаг 5. Введите Ваши имя пользователя и пароль и щелкните по кнопке чтобы создать новую учетную запись для Вашего сервера OpenVPN.
Шаг 6. Пароль будет автоматически скрыт, щелкните [Применить], чтобы сохранить настройки OpenVPN.
Экспорт файла настроек OpenVPN
Потребуется несколько минут, чтобы инициализировать настройки сервера OpenVPN и сгенерировать файл конфигурации openv. После этого, пожалуйста, нажмите кнопку [Экспорт], чтобы сохранить файл конфигурации ovpn с именем «client.ovpn».
Теперь Вы завершаете настройку OpenVPN на стороне сервера. Пожалуйста, перейдите на сторону клиента, чтобы установить клиентское соединение OpenVPN.
Для получения информации о настройках VPN-клиента ASUS Router, пожалуйста, обратитесь к
[VPN] Как настроить VPN клиент в роутерах ASUS (Web GUI)?
Вопросы-Ответы
1: Сколько клиентов может подключиться?
OPEN VPN может поддерживать более 10 клиентских подключений, но стабильность зависит от пропускной способности маршрутизатора.
2. Как сохранить файл настроек OpenVPN сервера?
Когда Вы хотите восстановить или заменить маршрутизатор, Вы можете сохранить исходную сертификацию сервера OpenVPN через Экспорт текущей сертификации и импортировать ее на новый маршрутизатор.
3. Где Дополнительные настройки OpenVPN?
Мы предоставляем более продвинутые настройки для OpenVPN. При необходимости, пожалуйста, перейдите к [VPN Details] >[Advanced Settings] для настройки.
4. Как изменить ключи и сертификат сервера OpenVPN?
Откройте страницу [VPN Details] >[Advanced Settings]
Щелкните по [Content modification of Keys & Certificate].
Измените содержимое и щелкните кнопку [Сохранить] для сохранения настроек.
Нажмите кнопку [Применить] для сохранения настроек OpenVPN.
Как скачать (Утилиты / ПО)?
Вы можете загрузить последние версии драйверов, программного обеспечения, микропрограмм и руководств пользователя в Центре загрузок ASUS.
Узнать больше о Центре загрузок ASUS можно по ссылке.
Последнее обновление:
Из этого руководства вы узнаете, как установить подключение к ExpressVPN на вашем роутере Asus с помощью протокола OpenVPN.
Не все локации ExpressVPN могут быть доступны при ручной настройке соединения. Чтобы иметь возможность подключаться ко всем серверным локациям, используйте приложение.
Важно! Это руководство подходит только для следующих моделей роутеров Asus:
RT-N66U, RT-AC56U, RT-AC66U, RT-AC68U (до v3), RT-AC87U, RT-AC5300, RT-AC3200, RT-AC3100, RT-AC1750, RT-AC88U, RT-AC66R, RT-AC55U, а также роутеров Asus с прошивкой Merlin.
Если вы хотите удалить это предупреждение, откройте файл .ovpn в текстовом редакторе и воспользуйтесь одним из следующих вариантов:
- удалите строку, где упоминается keysize,
- добавьте # перед словом keysize (#keysize 256).
Также вы можете просто игнорировать это предупреждение.
Это видео покажет вам процесс установки при работе с фирменной прошивкой Asus.
Вам нужно будет загрузить конфигурационный файл OpenVPN (.ovpn) для выбранной серверной локации.
Содержание
1. Загрузка конфигурационных файлов VPN
2. Настройка вашего роутера ASUS
1. Загрузка конфигурационных файлов VPN
Откройте страницу установки приложений ExpressVPN. Если будет необходимо, введите учетные данные ExpressVPN и нажмите Войти.
Введите код подтверждения, отправленный вам по электронной почте.
На панели справа (OpenVPN уже будет выбран) вы увидите свое имя пользователя, пароль и список файлов конфигурации OpenVPN.
Выберите локацию или локации, для которых вы хотели бы скачать файл или файлы .ovpn.
Не закрывайте эту вкладку, так как она вам еще понадобится в процессе установки.
Нужна помощь? Обратитесь в службу поддержки ExpressVPN.
Наверх
2. Настройка вашего роутера ASUS
Пожалуйста, выберите раздел, соответствующий вашему устройству.
Фирменная прошивка Asus
Чтобы открыть панель управления роутером, введите router.asus.com в адресной строке браузера.
Если ранее адрес панели управления роутером был изменен и вы не можете его вспомнить, то найти его можно в инструкции к устройству.
Авторизуйтесь, введя логин и пароль роутера. По умолчанию это слово admin и для логина, и для пароля.
В меню сбоку нажмите VPN.
Откройте расположенную вверху вкладку VPN Client (VPN-клиент). Далее нажмите Add profile (Добавить профиль).
Откройте вкладку OpenVPN и заполните следующие поля:
- Description (Описание) — то, что поможет вам узнать это VPN-подключение.
- Username (Имя пользователя) — скопируйте имя пользователя для ручной настройки ExpressVPN, найденное вами ранее.
- Password (Пароль) — скопируйте пароль для ручной настройки ExpressVPN, найденный вами ранее.
- Import .ovpn file (Импортировать файл .ovpn) — загрузите файл, который вы скачали ранее. Нажмите Upload (Загрузить). Вы увидите сообщение «Complete» (Готово).
Нажмите OK.
Нажмите Activate (Активировать), чтобы запустить VPN.
После успешной установки подключения вы увидите значок в поле Connection Status (Статус подключения).
Проверьте ваши местоположение и IP-адрес, чтобы убедиться в наличии VPN-подключения.
Если вам не удается установить подключение, повторите приведенные выше действия или повторите весь процесс, воспользовавшись другим конфигурационным файлом OpenVPN.
Чтобы изменить локацию VPN-серверов, загрузите другой конфигурационный файл OpenVPN, введите ваши имя пользователя и пароль для конфигурационного файла OpenVPN, нажмите Apply (Применить) в нижней части страницы и активируйте подключение кнопкой ON (ВКЛ).
Asuswrt-Merlin
Прошивка Asuswrt-Merlin во многом отличается от стандартной прошивки роутеров Asus. Чтобы настроить ExpressVPN на роутере с прошивкой Asuswrt-Merlin:
- Введите router.asus.com в адресной строке браузера, чтобы открыть панель управления роутером. Если ранее адрес панели управления роутером был изменен и вы не можете его вспомнить, то найти его можно в инструкции к устройству.
- Авторизуйтесь, используя логин и пароль роутера. По умолчанию это слово admin для того и другого.
- В меню Advanced Settings (Продвинутые настройки) слева выберите VPN.
- В меню сверху выберите OpenVPN Clients (Клиенты OpenVPN).
- Нажмите кнопку Browse… (Открыть) сбоку от поля Import .ovpn file (Импортировать файл .ovpn) и загрузите конфигурационный файл .ovpn, который вы скачали ранее.
- Когда загрузка файла будет завершена, прокрутите страницу до раздела Basic Settings (Базовые настройки) и вставьте имя пользователя и пароль ручной настройки ExpressVPN, найденные вами ранее.
- Прокрутите страницу до раздела Advanced Settings (Продвинутые настройки). Установите значение поля Accept DNS Configuration (Принять DNS-конфигурацию), выбрав один из следующих вариантов: Strict (Строгий) — если вы собираетесь использовать ExpressVPN на всех устройствах, подключенных к роутеру, или Exclusive (Исключающий) — если вы собираетесь использовать ExpressVPN только на определенных устройствах.
- Если вы увидите вариант Redirect Internet traffic through tunnel (Перенаправить интернет-трафик через туннель), то выберите Yes/VPN Director (Да/VPN-директор).
- В разделе Custom Configuration (Пользовательские настройки) введите следующий текст и нажмите Apply (Применить).
fast-io
remote-random
pull
tls-client
verify-x509-name Server name-prefix
ns-cert-type server
route-method exe
route-delay 2
tun-mtu 1500
fragment 1300
mssfix 1200
keysize 256
sndbuf 524288
rcvbuf 524288
Нужна помощь? Обратитесь в службу поддержки ExpressVPN.
Наверх
Эта статья помогла вам?
- IT
- Техника
- Cancel
VPN — VPN сервер (общие)
Enable VPN Server — On
Server mode — openvpn
В таблице внизу страницы создать пользователя и пароль.
Экспортировать профиль. Это делается в том же разделе, ниже пункта Server mode есть кнопка Export.
openvpn-клиент — сайт openvpn.net. Раздел Download — Community downloads — installer для Windows (на момент написания заметки версия 2.4.4, которая не работает с Windows XP)
Запустить OpenVPN GUI, в трее щелкнуть правой кнопкой по ярлыку, выбрать «импорт конфигурации», найти профиль (файл с раширением .ovpn).
После импорта в контекстном меню иконки в трее выбрать «Подключить».
Ввести логин и пароль пользователя, созданного на маршрутизаторе.
Если при подключении openvpn-клиента в логе появляется сообщение об ошибке «TLS_ERROR: BIO read tls_read_plaintext error: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:d
Для этого можно использовать утилиту openssl for windows (на сайте раздел Download — Binaries Zip)
http://gnuwin32.sourceforge.net/packages/openssl.htm
Извечь файлы из архива и сгенерировать ключ (это может занять продолжительное время)
cd C:\Path_to_openssl_folder\openssl-0.9.8h-1-bin\bin\
openssl dhparam -out dh.pem 2048
Обсуждение этого вопроса есть по ссылке:
https://www.snbforums.com/threads/asuswrt-merlin-378-54_2-is-now-available.24902/page-12#post-188181
Далее нужно установить этот ключ на роутер.
Подробные инструкции по ссылке:
https://www.snbforums.com/threads/asus-rt-87u-merlin-openvpn-server-fails-diffie-helmann-dh-key-too-small.25326/
Делается это в меню VPN — VPN сервер (расширенные настройки)
Напротив пункта Authorization mode, перейти по ссылке «Content modification of Keys & Certification».
Скопировать содержимое файла «dh.pem 2048» и заменить текущее значение в разделе «Diffie Hellman parameters»
Нажать «Применить» и сохранить настройки
Еще раз экспортировать профиль и импортировать его в vpn-клиенте.
Остальные настройки должны выглядеть примерно так:
Другие ошибки/предупреждения при подключении openvpn-клиента:
«WARNING: —ns-cert-type is DEPRECATED. Use —remote-cert-tls instead»
Внутри профиля можно сделать указанные изменения обычным текстовым редактором.
Дополнение:
В последних версиях прошивки от Merlin для роутеров ASUS, пул адресов для vpn-клиентов, описываемый в настройке «VPN Subnet/Netmask», не может совпадать с пулом адресов, выдаваемых в домашней сети. Т.е., если для внутренней домашней сети используется 192.168.1.0/24, то для vpn-клиентов нужно выдавать другой диапазон, например, 192.168.2.0/27. При этом на vpn-клиенте автоматически будет прописан маршрут на домашнюю сеть и доступ получить можно будет (если установлена настройка «Предоставить локальную сеть клиентам»)
Большинство актуальных моделей роутеров ASUS среднего и топового ценовых сегментов поддерживают подключение к VPN. Вам потребуется файл конфигурации .ovpn, логин и пароль. Вы получите их в боте BlancVPN после выбора локации или в личном кабинете BlancVPN.
Настройка состоит из двух этапов – получение и редактирование файла конфигурации и загрузка его в настройки роутера Asus.
Настройка файла конфигурации
Настройка проводится через веб-интерфейс роутера. К нему можно подключиться, открыв в браузере на компьютере страницу по адресу 192.168.1.1
или router.asus.com
. Также потребуется ввести логин и пароль от роутера.
Если вы не знаете логин и пароль роутера или изменили адрес веб-интерфейса и забыли его – сбросьте маршрутизатор до заводских настроек по инструкции, которая шла в комплекте с устройством.
Подключение к VPN
Настройка VPN производится в соответствующем пункте:
Чтобы отключиться от VPN, нажмите кнопку Deactivate («Отключиться») в строке профиля. Чтобы снова подключиться – нажмите Activate («Подключиться») в строке профиля.
Вы можете добавить несколько профилей, пользуясь этой инструкцией, однако активен может быть только один.
После подключения проверьте, изменился ли ваш IP-адрес. Для этого откройте наш сайт blancvpn.com и посмотрите на панель наверху страницы: там будет указан ваш новый IP-адрес и локация.
Если возникли сложности или что-то пошло не так – напишите нам в Telegram-бот https://t.me/FCK_RKN_bot, поможем!
Другие статьи по теме
Как настроить OpenVPN на роутере Keenetic
Как настроить OpenVPN на Android
Как настроить OpenVPN на iOS (iPhone, iPad)
Как настроить OpenVPN на macOS
Как настроить WireGuard на роутере Keenetic
Часть 1. Введение. Топология.
Часть 2. OpenVPN Server на Asus RT-N10U.
Часть 3. Тестирование подключения изнутри и извне.
Часть 4. Подключение извне с роутера Netgear DGN2200.
В своём примере я использую статическую привзяку mac-ip, поэтому если хотите повторить всё с точностью как в примере не забудьте заполнить эти связки для компьютера и планшета в меню Static DHCP в вашем Tomato.
Этап 1. Включение JFFS.
Во первых необходимо включить в Tomato поддержку jffs. Раздел jffs будет нужен для хранения файла, в котором будут прописаны статические IP устройств внутри подсети OpenVPN. В нем также будут храниться файлы кастомных конфигураций клиентов(client-config-dir), о которых я расскажу ниже.
Для включения jffs необходимо перейти в меню Administration -> JFFS отметить галочкой Enable и сохранить изменения.
Для защиты соединения и проверки прав доступа OpenVPN сервер требует генерации ряда ключей. Для удобной их генерации я собрал архив из связки easy-rsa и openssl.
Для создания ключей используется ряд параметров, такие как название организации, сведения о местоположении, длина ключа и прочие. Для примера они уже заполнены в файле vars.bat. Загрузим их:
vars
Сгенерируем ключ центра сертификации. Т.к. все необходимые переменные уже были заполнены в vars, остается только жать enter на все вопросы.
build-ca
WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key .........++++++ ...............................++++++ writing new private key to 'keys\ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [MSK]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Home]: Organizational Unit Name (eg, section) [MainUnit]: Common Name (eg, your name or your server's hostname) [ServerKey]: Name [ServerKey]: Email Address [admin@home.ru]:
Сгенерируем ключ Диффи — Хеллмана:
build-dh
WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ...........+.......................................+..................+...+........+.......+...................................................................................+.... .......+...+......+...........................................................................................................+..........................+.......................... ........................................................................................+..+......................+.+.....+......................................................... .............+.......................................................................+....................................................................+...........+..+..+....... ..........+........................+...........................+...................+.....................................+.......................................................... .+.......................................+................................................................................................................................+......... ...............................................................+...........+.....................+............................................................+.............+....... ...........................+....................................................................++*++*++*
Сгенерируем серверные ключи указав в качестве имени ServerKey. Опять жмем enter(challenge password можно оставить пустым). В конце 2 раза жмем «y» и enter чтобы подписать сертификат и занести его в базу данных.
build-key-server Serverkey
WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key ...........++++++ ..........................++++++ writing new private key to 'keys\Serverkey.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [MSK]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Home]: Organizational Unit Name (eg, section) [MainUnit]: Common Name (eg, your name or your server's hostname) [ServerKey]: Name [ServerKey]: Email Address [admin@home.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /usr/local/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'MSK' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Home' organizationalUnitName:PRINTABLE:'MainUnit' commonName :PRINTABLE:'ServerKey' name :PRINTABLE:'ServerKey' emailAddress :IA5STRING:'admin@home.ru' Certificate is to be certified until Dec 21 07:48:38 2025 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
На тему типов ключей доступа уже написано много в интернете. Расписаны их недостатки и приемущества. Для себя я выбрал ключи pkcs12.
В процессе генерации уже не нужно будет жать только enter как раньше — нужно будет заполнить имена Common Name и Name значениями отличными от ServerKey, иначе произойдет ошибка записи данных о ключе с теми же именами. Для себя я выбрал имена PCKey, TabletKey, SmartKey и NetgearKey. Также необходимо будет заполнить пароли к ключам. Обязательно сделайте это и сделайте их разными.
build-key-pkcs12 PCKey
WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key .....................................................................++++++ .++++++ writing new private key to 'keys\PCKey.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [MSK]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Home]: Organizational Unit Name (eg, section) [MainUnit]: Common Name (eg, your name or your server's hostname) [ServerKey]:PCKey Name [ServerKey]:PCKey Email Address [admin@home.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /usr/local/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'MSK' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Home' organizationalUnitName:PRINTABLE:'MainUnit' commonName :PRINTABLE:'PCKey' name :PRINTABLE:'PCKey' emailAddress :IA5STRING:'admin@home.ru' Certificate is to be certified until Dec 21 07:48:55 2025 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Enter Export Password: Verifying - Enter Export Password:
build-key-pkcs12 TabletKey
WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key ..............................++++++ ...............................++++++ writing new private key to 'keys\TabletKey.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [MSK]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Home]: Organizational Unit Name (eg, section) [MainUnit]: Common Name (eg, your name or your server's hostname) [ServerKey]:TabletKey Name [ServerKey]:TabletKey Email Address [admin@home.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /usr/local/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'MSK' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Home' organizationalUnitName:PRINTABLE:'MainUnit' commonName :PRINTABLE:'TabletKey' name :PRINTABLE:'TabletKey' emailAddress :IA5STRING:'admin@home.ru' Certificate is to be certified until Dec 21 07:51:44 2025 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Enter Export Password: Verifying - Enter Export Password:
build-key-pkcs12 SmartKey
WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key .......++++++ ..++++++ writing new private key to 'keys\SmartKey.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [MSK]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Home]: Organizational Unit Name (eg, section) [MainUnit]: Common Name (eg, your name or your server's hostname) [ServerKey]:SmartKey Name [ServerKey]:SmartKey Email Address [admin@home.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /usr/local/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'MSK' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Home' organizationalUnitName:PRINTABLE:'MainUnit' commonName :PRINTABLE:'SmartKey' name :PRINTABLE:'SmartKey' emailAddress :IA5STRING:'admin@home.ru' Certificate is to be certified until Dec 21 07:52:37 2025 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Enter Export Password: Verifying - Enter Export Password:
build-key-pkcs12 NetgearKey
WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key ..............++++++ ..............++++++ writing new private key to 'keys\NetgearKey.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [MSK]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Home]: Organizational Unit Name (eg, section) [MainUnit]: Common Name (eg, your name or your server's hostname) [ServerKey]:NetgearKey Name [ServerKey]:NetgearKey Email Address [admin@home.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /usr/local/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'MSK' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Home' organizationalUnitName:PRINTABLE:'MainUnit' commonName :PRINTABLE:'NetgearKey' name :PRINTABLE:'NetgearKey' emailAddress :IA5STRING:'admin@home.ru' Certificate is to be certified until Dec 21 07:53:02 2025 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated WARNING: can't open config file: /usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Enter Export Password: Verifying - Enter Export Password:
Этап 3. Настройка сервера.
Редактируем основные настройки в меню VPN Tunneling -> OpenVPN Server -> Basic:
Отметить галочку Start with WAN нужно для того, чтобы сервер стартовал автоматически когда включается роутер поднимается сеть.
Тип интерфейса лучше оставить TUN. В отличие от TAP, не придется рутовать смартфон на Android чтобы подключиться к сети.
Протокол рекомендуется ставить UDP, потому что сеть так быстрее будет работать. Но есть одно но. Если вы захотите поднять OpenVPN Client на персональном компьютере находясь за HTTP-прокси, сделать этого у вас не получится — UDP можно прокинуть только через SOCKS. TCP же можно прокинуть через HTTP, поэтому я выбрал его.
В качестве подсети указываем желаемую.
Остальные настройки оставляем по умолчанию.
Теперь можно настроить серверные ключи на вкладке Keys.
Содержимое файла ca.crt нужно перенести в Certificate Authority, ключ из конца файла Serverkey.crt в Server Certificate, Serverkey.key в Server Key, dh1024.pem в Diffie Hellman parameters.
После этого можно впервые нажать на кнопку Start Now. Если всё было настроено правильно, надпись на кнопке станет Stop Now, то будет означать что сервер запущен успешно. Если сервер запущен неуспешно ошибки можно посмотреть в файле /var/log/messages непосредственно на роутере.
В качестве подготовки к последней настройке сервера необходимо зайти на роутер по ssh и создать на jffs два файла: /jffs/openvpn/ipp.txt и /jffs/openvpn/ccd/NetgearKey. Оба простые текстовые файлы. Второй без расширения, т.к. должен совпадать с именем Common Name зарегистрированного ключа(в данном случае NetgearKey).
Содержимое файлов:
ipp.txt
NetgearKey,192.168.110.2 PCKey,192.168.110.3 TabletKey,192.168.110.4 SmartKey,192.168.110.5
NetgearKey
iroute 192.168.105.0 255.255.255.0
О назначении файлов я напишу ниже.
Последний шаг — настройка дополнительных параметров во вкладке Advanced.
На этой вкладке я предпочел не включать галки Push LAN to clients и Direct clients to redirect Internet traffic, а объявил команды вручную в блоке Custom Configuration.
В качестве шифрования выбрал AES-128-CBC.
Сжатие трафика отключено, т.к. забегая вперед, вызывало проблемы на роутере Netgear.
В блок Custom Configuration добавлены следующие команды:
client-to-client topology subnet auth sha1 keepalive 10 60 ifconfig-pool-persist /jffs/openvpn/ipp.txt client-config-dir /jffs/openvpn/ccd route 192.168.105.0 255.255.255.0 push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 192.168.110.1" push "ping 10" push "ping-restart 60" push "redirect gateway def1" push "route 192.168.100.0 255.255.255.0" push "route 192.168.105.0 255.255.255.0 vpn_gateway 999" mssfix 1400
client-to-client — Открывает доступ между клиентами внутри vpn.
topology subnet — Рекомендуемая сейчас топология это subnet, но т.к. она не является в текущий момент по-умолчанию включаю её принудительно. Подробнее здесь.
auth sha1 — Метод хеширования кода авторизации при иницииации соединения с клиентом.
keepalive 10 60 — Сервер пингует клиента, если за последние 10 секунд от него не приходило никаких пакетов, и пытается пересоздать соединение, если пакетов не было 60 секунд.
ifconfig-pool-persist /jffs/openvpn/ipp.txt — Указывает на файл, в котором содержатся имена Common Name ключей и соответствующие им статические IP.
client-config-dir /jffs/openvpn/ccd — Указывает на директорию, в которой хранятся файлы совпадающие с именами Common Name ключей. Внутри файлов содержатся команды исполнять которые нужно только при подключении определенного клиента. В моём случае есть только один такой клиент — роутер Netgear. При его подключении выполняется команда iroute, которая создает внутренний маршрут указывающий на Netgear(192.168.105.0/24).
route 192.168.105.0 255.255.255.0 — Добавляет маршрут указывающий на подсеть из Netgear в Asus при старте OpenVPN Server.
mssfix 1400 — Помог мне вылечить нестабильную передачу данных. 1400 это значение в байтах, которое ограничивает максимальный размер пакета передаваемого внутри vpn-сети. В офф. доке написано, что параметр имеет смысл только при использовании UDP, но мне помог и с TCP.
Все опции push отправляют команду в ковычках клиенту и выполняются уже на клиентской машине.
push «dhcp-option DNS 8.8.8.8» — Назначаем клиентам гугловский DNS в качестве основного.
push «dhcp-option DNS 192.168.110.1» — В качестве вторичного DNS назначаем сам OpenVPN Server.
push «ping 10» — То же самое что и 10 секунд в команде keepalive. Просто передать keepalive на сторону клиента нельзя. Поэтому передаются ping и ping-restart.
push «ping-restart 60» — То же самое что и 60 секунд в команде keepalive.
push «redirect gateway def1» — Позволяет клиентам редиректить весь трафик на сервер и уже с сервера в интернет. С момента подключения внешний IP клиента совпадает с внешним IP роутера.
push «route 192.168.100.0 255.255.255.0» — Добавляет клиентам маршрут указывающий на подсеть Asus 192.168.100.0/24.
push «route 192.168.105.0 255.255.255.0 vpn_gateway 999» — Добавляет клиентам маршрут указывающий на подсеть Netgear 192.168.105.0/24. Большая метрика выставлена скорее всего из-за проблем с Netgear, когда маршрут указывающий на подсеть 192.168.105.0/24 со шлюзом 192.168.110.1(OpenVPN Server) имел меньшую метрику, чем тот же маршрут со шлюзом 192.168.105.1(Netgear). Точную причину не помню)
После занесения конфигурации можно нажать на кнопку Save, после чего OpenVPN сервер автоматически перезагрузится.
Поздравляю! OpenVPN сервер настроен. Теперь нужно протестить подключение к нему.