Часть 1. Введение. Топология.
Часть 2. OpenVPN Server на Asus RT-N10U.
Часть 3. Тестирование подключения изнутри и извне.
Часть 4. Подключение извне с роутера Netgear DGN2200.
Этап 1. Тестирование доступа к серверу из локальной подсети.
Первым делом необходимо протестировать подключение к серверу из локальной подсети 192.168.100.0/24. Проще всего тестировать с узла 192.168.100.3(ПК).
Для этого качаем OpenVPN Client. Устанавливаем. В папке с установленным клиентом находим папку config и заливаем туда файл. Сюда же нужно скинуть ключевой файл с расширением p12 из папки с ключами, в моём случае это PCKey.p12(он же прописан и в конфиге).
client.ovpn
client dev tun proto tcp remote 192.168.100.1 1194 # Keep trying indefinitely to resolve the host name of the OpenVPN server. resolv-retry infinite pkcs12 PCKey.p12 cipher aes-128-cbc # Set log file verbosity. verb 3 comp-lzo
В нем прописан локальный адрес сервера 192.168.100.1 и стандартный порт доступа. Т.к. на сервере было отключено шифрование(comp-lzo no), в конфиге клиента также прописана эта директива.
После этого можно запустить OpenVPN Client и проверить подключение. При подключении клиент спросит у вас пароль от ключа. После его введения подключение должно пройти успешно.
Этап 2. Настойка динамического DNS.
Этот этап необходим, если у вас динамический, а не статический внешний IP. Здесь мы зарегистрируем поддомен, по которому будем подключаться к OpenVPN Server из интернета.
Многие провайдеры не выдают своим клиентам реальный IP, а скрывают их за NAT. Для начала убедимся что мы не за NAT.
Во-первых, разрешим пинговать роутер извне. Для этого в Tomato перейдем в меню Advanced -> Firewall, включим галочку Respond to ICMP ping и сохраним изменения. Затем на сайте myip.ru узнаем свой внешний IP и попытаемся его пропинговать на сайте ping.eu.
Если пинг не прошел, изучайте возможность отключения NAT у своего провайдера. Если прошел — идем дальше.
Есть множество сервисов предлагающих бесплатную регистрацию поддоменов для использования с динамическим DNS. Многие поддерживаются и Tomato, но я остановился на одном — freedns.afraid.org.
Заходим. Регистрируемся. Переходим в меню Subdomains и регистрируем поддомен в выбранном домене(тысячи их внутри комбика Domain при переходе по ссылке Many many more available …).
Затем переходим в меню Dynamic DNS и выдираем из ссылки Direct URL напротив своего поддомена ключ доступа вида «UzBaaFBKeFhFSTFFOXZiMUI2Tlg6MTM2ODI2MDg=».
Теперь переходим в Tomato в меню Basic -> DDNS. Выбираем в комбике Service наш FreeDNS, копируем в Token выдранный ключ, отмечаем галочкой Force next update для того чтобы после нажатия на кнопку Save роутер сразу закрепил свой IP за выбранным поддоменом и нажимаем Save.
Если всё хорошо, в строке Last Result появится дата и статус Update successful.
Этап 3. Проверка доступа извне.
Для проверки доступа извне можно использовать любое устройство в интернете, на которое можно установить OpenVPN Client. Проще всего также использовать какой-нибудь компьютер, но я для этих целей буду использовать смартфон на Android.
Из всех доступных под Android клиентов мне нравится OpenVPN for Android.
Перед созданием в ней соединения необходимо не забыть скопировать на смартфон ключевой файл в формате p12.
В меню создания нового соединения на вкладке Основные нужно будет указать путь к этому файлу и по желанию заполнить пароль. Отметить галочкой сжатие lzo и проименовать соединение как-нибудь.
На вкладке Список серверов необходимо указать адрес поддомена и стандартный порт. Протокол TCP в моём случае.
На вкладке Маршрутизация разрешить перенаправлять IPV4 трафик, если галочка еще не отмечена.
На вкладке Авторизация/Шифрование указать алгоритм шифрования aes-128-cbc согласно настроенному на сервере.
Остальные вкладки можно оставить без внимания и сохранить соединение.
Всё готово. Можно проверить подключение к серверу, указав пароль к ключевому файлу во время подключения, если вы его не сохранили.
В следующей статье мы настроим подключение с Netgear DGN2200.