- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- ngrok
- Описание ngrok
- Справка по ngrok
- Справка по команде authtoken
- Справка по команде credits
- Справка по команде http
- Справка по команде start
- Справка по команде tcp
- Справка по команде tls
- Справка по команде update
- Справка по команде version
- Руководство по ngrok
- Примеры запуска ngrok
- Установка ngrok
- Ngrok: создаём защищенный URL-адрес на локальный сервер минуя NAT и Firewall
- Как это работает
- Установка
- Использование
- HTTP туннели
- TCP туннели
- Конфигурационный файл
- Инспектор трафика (web-интерфейс)
- Вместо вывода
- Рассылка от программиста
- Комментарии
- Как поделиться своим локальным веб-сервером с Интернетом. Ngrok
- Установка Ngrok
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
ngrok
Описание ngrok
Программа ngrok делает доступными в Глобальной сети локальные сервисы, даже если компьютер не имеет белого IP адреса и находится за NAT и файерволами. С помощью ngrok из Интернета будет доступен любой порт на вашем локальном компьютере будет доступен через безопасный туннель. Например, вы можете сделать так, чтобы ваш локальный веб-сервер стал доступным из Интернета по прямой ссылке без дополнительной настройке.
Как работает программа
Вы загружаете и запускаете программу на вашей машине и указываете порт сетевой службы, обычно это веб-сервер.
Программа подключается к облачной службе ngrok, которая выдаёт вам сгенерированный адрес (домен третьего уровня). Если открыть этот адрес в веб-браузере, то трафик будет перенаправлен на вашу локальную сетевую службу или на любой адрес, который вы указали.
Для чего подходит ngrok
- Демонстрация веб-сайтов без развёртывания на реальном хостинге
- Создание веб хуков на вашем компьютере для разработки ПО
- Тестирование мобильных приложений, подключённых к локально работающему бэкэнду
- Стабильные адреса для подключённых устройств, развёрнутых в полевых условиях
- Запуск персональных облачных сервисов из вашего дома
Автор: Keith Rarick
Лицензия: Apache License
Справка по ngrok
Справка по команде authtoken
authtoken сохраняет токен аутентификации в конфигурационный файл.
Команда authtoken изменяет ваш файл конфигурации, чтобы записать в него указанный authtoken. По умолчанию этот файл конфигурации находится в $HOME/.ngrok2/ngrok.yml.
Для использования многих расширенных функций службы, служба ngrok.com требует, чтобы вы зарегистрировали учётную запись. Чтобы связать вашего клиента с учётной записью, он должен передать секретный токен службе ngrok.com при запуске. Вместо того, чтобы передавать этот authtoken при каждом вызове, вы можете использовать эту команду, чтобы сохранить его в файле конфигурации, чтобы ваш клиент всегда аутентифицировал вас должным образом.
Справка по команде credits
credits печатает информацию об авторе и лицензировании.
Отображает автора, благодарности и информацию о лицензии.
Справка по команде http
http запускает HTTP туннель.
Запускает туннель, прослушивающий HTTP/HTTPS трафик с указанным именем хоста. Заголовок HTTP Host на входящих публичных запросах проверяется, чтобы определить, какой туннель ему подходит.
Конечные точки HTTPS завершают трафик TLS на сервере ngrok с помощью сертификатов ngrok.io. Затем расшифрованный HTTP-трафик направляется через безопасный туннель, а затем на ваш локальный сервер. Если вы не хотите, чтобы ваш трафик TLS заканчивался на сервере ngrok, используйте туннель TLS или TCP.
Перенаправляет субдомен ngrok.io на локальный порт 80:
Перенаправляет трафик на example.com:9000:
Запрашивает имя субдомена: ‘bar.ngrok.io’:
Запрашивает туннель ‘ex.com’ (DNS CNAME):
Запрашивает basic аутентификацию на конечной точке тоннеля:
Переписывает заголовок Host на ‘ex.com’:
Открывает доступ из интернета к локальным файлам в /var/log:
Перенаправляет на локальный https сервер:
Справка по команде start
start запускает туннель по имени из конфигурационного файла.
Запускает туннели по имени из файла конфигурации. Вы можете указать любое количество имён туннелей. Вы можете запустить все туннели из файла конфигурации, для этого укажите ключ —all.
Запустить туннель с именем в конфигурационном файле ‘dev’:
Запустить туннели ‘web’ и ‘blog’:
Запустить все туннели, определённые в конфигурационном файле:
Справка по команде tcp
tcp запускает туннель TCP.
Запускает туннель, который перенаправляет весь TCP-трафик с публичного порта на локальный адрес. Это чрезвычайно полезно для предоставления сервисов, которые работают на не HTTP-трафике (ssh, sip, rdp, игровые серверы и т. д.).
Туннель TCP связывает публичный адрес на удалённом сервере ngrok. Любые службы, которым требуется стабильный публичный адрес, должны использовать параметр —remote-addr. ngrok.com требует, чтобы вы зарезервировали адрес туннеля TCP для своей учётной записи, прежде чем сможете его использовать.
Перенаправить порт на ваш локальный сервер ssh
Предоставить RDP-сервер по определённому общедоступному адресу, который вы зарезервировали
Справка по команде tls
tls запускает туннель TLS.
Запускает туннель для прослушивания трафика TLS через порт 443 с указанным именем хоста. Поле расширения TLS SNI (Server Name Indication) в соединении TLS проверяется, чтобы определить, к какому туннелю оно подходит.
Сервер ngrok не прерывает соединения TLS, пересылаемые с помощью этой команды. Может быть использован любой базовый протокол. При желании вы можете указать пару ключ/сертификат TLS, которая будет использоваться для завершения трафика на стороне клиента до его переадресации. Если не указано, трафик будет пересылаться в зашифрованном виде.
Использование этой команды рекомендуется только с опцией -hostname. Другое использование будет работать, но всегда приведёт к предупреждениям о несоответствии сертификатов.
Пересылать трафик TLS для example.com на порт 443 (требуется CNAME)
Пересылать трафик TLS на поддомен (предупреждение о несовпадении сертификата)
Прервать трафик TLS для t.co перед пересылкой
Справка по команде update
update обновляет ngrok до последней версии.
Обновляет ngrok до последней версии. Эта команда проверяет веб-сервис ngrok на наличие более новых версий клиента ngrok. Если доступна более новая версия, то она будет загружена, будет проверена подлинность скаченного файла и текущий исполнимый файл будет заменён новым.
Для успешного обновления двоичный файл ngrok должен находиться в каталоге, доступном для записи текущему пользователю. Если вы поместили ngrok в системный PATH, вам может потребоваться запустить его с правами root или администратора.
Обновить ngrok до последней стабильной версии:
Обновить ngrok до последней бета версии:
Справка по команде version
version — print the version string
Руководство по ngrok
Страница man отсутствует.
Примеры запуска ngrok
Создать тоннель от сгенерированного поддомена, доступного по публичной ссылке, до локального порта 80 (веб-сервер):
Туннель на указанные ХОСТ:ПОРТ (foo.dev:80) вместо localhost:
Сделать доступным из Глобальной сети локальный HTTPS сервер:
Туннелирование произвольного TCP трафика на порт 22:
Создание туннеля (http) до сайта hackware.ru по протоколу https (https://hackware.ru) с заменой HTTP заголовка Host на hackware.ru (-host-header=hackware.ru):
Установка ngrok
Установка в Kali Linux
Установка в BlackArch
Программа предустановлена в BlackArch
Установка в любой дистрибутив Linux
Установка в Windows
Перейдите на страницу официального сайта и скачайте ngrok для Windows: https://ngrok.com/download
Распакуйте скаченный архив, отройте командную строку и перейдите в папку с исполнимым файлом с помощью cd, например, у меня программа помещена в папку C:\Users\MiAl\Downloads\:
Для проверки выведите справку командой:
Информация об установке в другие операционные системы будет добавлена позже.
Ngrok: создаём защищенный URL-адрес на локальный сервер минуя NAT и Firewall
Если вы связаны с web-разработкой, то наверняка сталкивались с проблемой ограничения доступа к localhost через Интернет.
Процесс разработки обычно выглядит следующим образом. Вы запускаете локальный сервер для разработки и работаете над web-приложением на своем компьютере. Вносите правки в код и тут же проверяете в браузере, это удобно и экономит кучу времени.
Проблемы начинаются когда к локальному серверу необходим доступ из вне. Например необходимо:
- Дать доступ заказчику, чтобы обсудить и внести мелкие правки в верстке
- Протестировать web-приложения на мобильных устройствах
- Интегрировать сторонний сервис требующий обработки уведомлений (webhook)
Выгружать каждый раз код на хостинг из-за небольших правок неудобно и не всегда возможно.
В этой статье поговорим о том, как с помощью простой программы легко и быстро открыть доступ к локальному серверу не заморачиваясь с настройками сети.
Ngrok консольный клиент, который пробрасывает защищенный туннель с локального хоста в интернет, минуя NAT и Firewall. Прост в использовании и работает в Windows, Mac и Linux.
Как это работает
Консольный клиент Ngrok подключается к облачному сервису ngrok, который выделяет url-адрес доступный через интернет и принимает на него трафик. Весь полученный трафик будет передан запущенному клиенту ngrok на вашем компьютере, а затем на локальный адрес.
Такой подход позволяет мгновенно открывать доступ к локальным службам, при этом не затрагивая настройки локальной сети.
Установка
Скачайте архив с программой для своей операционной системы с официального сайта. В нем содержится единственный исполняемый файл ngrok . Для удобства использования переместите его в директорию, которая прописана в системной переменной PATH , чтобы ngrok запускался из любого места. Я использую операционную систему Ubuntu, в моем случае это директория /usr/bin .
Откройте терминал если вы используете Linux или Mac, в Windows запустите командную оболочку CMD. Для проверки успешной установки введите команду:
Если вы все сделали правильно, на экране появится что-то вроде этого ngrok version 2.2.8 .
Ngrok готов к использованию, но для некоторых возможностей необходимо зарегистрироваться. Пройдите регистрацию на сайте ngrok.com и скопируйте authtoken на странице с токеном. Введите в терминале команду заменив на настоящий токен:
На этом установка завершена, приступим к использованию.
Использование
Чтобы вывести список доступных команд, введите команду:
HTTP туннели
HTTP туннели с поддержкой шифрования https .
Туннель для HTTP-сервера, который слушает 80 порт:
Постоянный поддомен для туннеля:
Защита туннеля паролем:
Виртуальные хосты (XAMPP, MAMP, Vagrant, и др.). Изменение заголовка Host :
Расположение сервера на котором запускается туннель:
TCP туннели
TCP туннели помогут открыть доступ к службам использующим TCP-соединения: SSH, игровые сервера, базы данных и т.д.
Туннель для SSH:
Туннель для PostgreSQL:
Туннель для MySQL:
Конфигурационный файл
Ngrok поддерживает конфигурационные файлы в формате YAML, которые хранят все настройки и позволяют запускать несколько туннелей одновременно.
По умолчанию конфигурационный файл находится по адресу $HOME/.ngrok2/ngrok.yml :
- OS X /Users/username/.ngrok2/ngrok.yml
- Linux /home/username/.ngrok2/ngrok.yml
- Windows C:\Users\username\.ngrok2\ngrok.yml
Пример конфигурационного файла:
Запуск нескольких тунеллей одновременно:
Инспектор трафика (web-интерфейс)
Ngrok предоставляет web-интерфейс, в котором отображаются входящие запросы и ответы вашего приложения. Пригодится при отладке API, Ajax или Webhook.
Если ngrok клиент запущен, откройте в браузере:
Вместо вывода
Раньше мне приходилось настраивать роутер и DynDNS пока я не нашел ngrok. Надеюсь эта простая, но очень полезная программа сэкономит вам кучу времени так же как и мне!
P.S. Напишите в комментариях какие задачи решаете в web-разработке (фронтенд, бекенд, все вместе, …)? Какие технологии и языки программирования используете? Какими программами пользуетесь?
Евгений Прокопьев
Рассылка от программиста
Подпишись и получай полезные материалы
Комментарии
Рассказываю о программировании и как с помощью него сделать жизнь чуточку легче
Как поделиться своим локальным веб-сервером с Интернетом. Ngrok
Довольно часто у разработчика возникает необходимость показать свои наработки, расположенные на локальном компьютере. Если же приходится тестировать мобильные приложения, то доступ к API также нужен.
Конечно, можно купить ip-адрес, домен, хостинг, настроить всё это. Но проще, быстрее и доступнее использовать утилиту ngrok, создающую туннель к localhost.
Скачать ngrok можно по адресу: https://ngrok.com/
Программа доступна для Mac OS, Windows, Linux и FreBSD. В ограниченном режиме можно использовать бесплатно, которого, к слову сказать, хватает с лихвой в большинстве случаев.
Для начала нужно установить программу.
Установка Ngrok
Mac OS X 64-Bit:
Linux 64-Bit:
Linux 32-bit:
FreeBSD 64-Bit:
FreeBSD 32-Bit:
Например, для Xubuntu:
Если выдаёт ошибку, проверьте права на запись файлов в указанной директории.
Далее необходимо распаковать архив. В нашем случае с Xubuntu:
Или сделать распаковку в окне:
Теперь перемещаем утилиту:
Затем даём права на запуск скрипта:
Вывести помощь в терминале можно командой:
Создание туннеля в простейшем варианте (обратите внимание на порт, обычно он 80, у мена 8000):
Где http://370f2cc5.ngrok.io уникальный адрес в Интернет.
Можно в hosts файл прописать домен, например, mysite.local, после чего запустить туннель:
Если зарегистрироваться, то:
- будет доступ через SSL
- появится возможность защиты туннеля паролем
- станет доступен выбор поддоменов с резервированием
- будет возможно туннелирование TCP и UDP