- Linux
- Step 1: Install the ngrok Agent
- Step 2: Enable SSH access
- Step 3: Adding IP restrictions
- Step 4: Configure ngrok to recover on outages
- What’s next?
- Logging Traffic Events from ngrok
- Remote checks, stop, start, and updates
- 🌐Как установить и использовать Ngrok на Kali Linux
- Как установить ngrok в Kali Linux
- Загрузка и настройка Ngrok на Kali Linux
- Использование Ngrok в Kali Linux
Linux
ngrok allows you to create secure ingress to any app, device, or service without spending hours learning arcane networking technologies. You can get started with a single command or a single line of code.
What is ngrok? ngrok is an ingress-as-a-service platform that removes the hassle of getting code online from developers’ plates by decoupling ingress from infrastructure with one line of code, all without provisioning proxies or VPNs.
In this guide, we’ll walk you through the process of installing the ngrok agent on a remote Linux device, ensuring the agent runs integrated into your operating system, restricting traffic to trusted origins, and integrating traffic events with your preferred logging tool.
Step 1: Install the ngrok Agent
To download and install the ngrok agent on your remote Linux device, follow these steps:
- Open a terminal into your remote Linux device.
- Download the latest ngrok binary for your Linux distribution. You can find the correct binary on our ngrok download page: Select your operating system, select the version, and copy the link that appears in the Download button. Below is an example for x86-64:
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
- Unzip the downloaded file and move it to a directory in your PATH. Below is an example for /usr/local/bin :
sudo tar xvzf ./ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin
- Now that you have installed ngrok on your Linux device, link it to your ngrok account by using your authtoken:
ngrok authtoken NGROK_AUTHTOKEN
Note: Replace NGROK_AUTHTOKEN with your unique ngrok authtoken found in the ngrok dashboard.
Step 2: Enable SSH access
To enable remote SSH access to your device via ngrok:
- Test that the ngrok agent is configured correctly by starting a TCP tunnel on your remote device. Note: If you get an error, ensure your authtoken is configured correctly.
- The ngrok agent assigns you a TCP address and port. Use these values to test the SSH access via ngrok by running the following command from another server or from a desktop.
ssh -p NGROK_PORT USER@NGROK_TCP_ADDRESS
Note: Replace the variables in the command line with the following:
- NGROK_PORT: The port number of the ngrok agent (i.e. if the agent shows tcp://1.tcp.ngrok.io:12345 , your port number is 12345 .
- USER: A valid ssh login to access your remote device’s operating system.
- NGROK_TCP_ADDRESS: The address of the ngrok agent (i.e. if the agent shows tcp://1.tcp.ngrok.io:12345 , your TCP address is 1.tcp.ngrok.io .
Step 3: Adding IP restrictions
Once you confirmed that you have connectivity to the device, add some security so that you are the only one who can access it.
Note: This capability requires ngrok’s IP Restrictions feature, which is only available with a paid subscription.
- On the remote Linux device terminal, stop the ngrok process using the ctrl+c command.
- Add an allow rule to restrict access to your Linux device to an IP address or a range of IP addresses.
ngrok tcp 22 --cidr-allow ALLOWED_IP_ADDRESS_CIDR
Note: Replace ALLOWED_IP_ADDRESS_CIDR with the CIDR notation for the allowed IP Address(es) (i.e. 123.123.123.0/24 ).
Setting IP restrictions for the entire fleet
Alternatively, you can create an IP policy in the ngrok dashboard (under Security > IP Restrictions), and leverage the same policy to control access to your entire device fleet.
Step 4: Configure ngrok to recover on outages
The ngrok agent works with native OS services like systemd . This helps you ensure that the ngrok service is available even after the machine restarts. Before we do this though, it’s useful to reserve a TCP address in the ngrok dashboard which allows you to reuse the same address each time the device is restarted.
- Navigate to the ngrok Dashboard and access Cloud Edge > TCP Addresses. Create a new TCP address with a description and click Save. Your new TCP address will look something like 1.tcp.ngrok.io:12345 .
Update the ngrok config file in your Linux device to start the ngrok agent using this TCP address.
tunnels: device-ssh: proto: tcp addr: 22 remote_addr: NGROK_TCP_ADDRESS ip_restriction: allow_cidrs: - ALLOWED_IP_ADDRESS_CIDR
Note: Make sure to replace NGROK_TCP_ADDRESS with the address you reserved earlier in the ngrok dashboard (i.e. 1.tcp.ngrok.io:12345 ) and ALLOWED_IP_ADDRESS_CIDR with the CIDR notation of the allowed IP Address(es) (i.e. 123.123.123.0/24 ).
Note: Make note of the location of the ngrok.yml file.
ngrok service install --config $HOME/.config/ngrok/ngrok.yml
You may need to run this command using sudo depending on your system
- Run the following command to ensure your operating system launches ngrok with the ssh ingress whenever your device starts:
You may need to run this command using sudo depending on your system
- With ngrok running on your device, you should be able to SSH into the device using the reserved address from the dashboard.
ssh -p NGROK_PORT user@NGROK_TCP_ADDRESS
What’s next?
Now that your device is integrated to ngrok, you can execute tasks at the ngrok dashboard to operationalize your fleet:
Logging Traffic Events from ngrok
Each action that happens in ngrok is published as an event, and Event Subscriptions allow you to subscribe to the events that are interested in and write them to one or more destinations.
An Event Subscription is made up of a set of event sources (some of which can be filtered), and event destinations. Each subscription can send the events to one or more destinations, such as Amazon CloudWatch Logs, Amazon Kinesis (as a data stream), or Amazon Kinesis Firehose (as a delivery stream).
Event subscriptions can be configured through the ngrok Dashboard or the ngrok API.
You can also forward all or some of your traffic events from ngrok to your preferred logging tool.
Remote checks, stop, start, and updates
ngrok provides APIs and a dashboard UI for you to monitor the health of ngrok agents running in your fleet. The interfaces also allow you to remotely stop, start, and update agents.
🌐Как установить и использовать Ngrok на Kali Linux
Мануал
Ngrok – это многоплатформенное приложение, которое позволяет нам направлять наш локальный сервер разработки в интернет без переадресации портов.
Ngrok размещает наш локально размещенный веб-сервер в поддомене ngrok.com.
Это означает, что мы можем легко показать наш localhost в интернете без собственных доменных имен/статических IP или переадресации портов.
Ngrok – очень хороший инструмент для разработчиков, позволяющий проверять и показывать проекты клиентам перед запуском проекта.
Но, как и все остальное, он также может быть неправильно использован плохими парнями.
Они всегда пытаются разместить на Ngrok свою фишинговую страницу localhost для захвата жертв в интернете.
Поэтому нам, как экспертам по кибербезопасности, необходимо обратить внимание на этот Ngrok.
Как установить ngrok в Kali Linux
Загрузка и настройка Ngrok на Kali Linux
Чтобы установить Ngrok на нашу систему Kali Linux, нам нужно открыть браузер и перейти на официальную страницу загрузки Ngrok.
Затем мы увидим веб-страницу, как показано на следующем скриншоте:
Здесь нам нужно нажать на “Linux”, поскольку мы используем Kali.
Для других ОС мы можем нажать на “More Options”.
После нажатия на кнопку “Download” мы увидим, что загрузка началась.
После начала скачивания это не займет много времени при наличии приличного интернета. ZIP-файл будет загружен в нашу директорию “Downloads”.
Нам нужно перейти в каталог “Downloads” и распаковать сжатый файл.
Затем мы распакуем скачанный ZIP-файл с помощью следующей команды:
Теперь наш файл ngrok распакован.
Перед его запуском нам нужно дать права на выполнение, используя следующую команду:
Теперь все готово к запуску.
Но подождите, нам нужно настроить Ngrok перед запуском.
Нам нужно установить аутентификацию с помощью токена API Ngrok.
Для этого нам нужно зарегистрироваться на сайте Ngrok.
Давайте перейдем на страницу регистрации Ngrok в нашем браузере.
Здесь нам нужно заполнить имя, электронную почту и выбрать пароль.
Далее надо зайти в Your Authtoken
На скриншоте выше мы видим наш ключ API аутентификации Ngrok и команду для его установки.
Для безопасности мы скрыли часть наших API-ключей.
Далее мы запускаем команду с API-ключом для настройки Ngrok.
ngrok config add-authtoken 2Iod6Vw58rEd6eZK
Использование Ngrok в Kali Linux
Работа Ngrok проста – он просто размещает наш локальный сайт в интернете.
Итак, сначала нам нужен локальный сайт.
Здесь у нас есть демонстрационная html-страница на рабочем столе, и мы открыли ее в браузере Firefox.
Но это всего лишь html-страница, которую нужно разместить локально.
Для этого нам нужно запустить сервер localhost на нашем рабочем столе.
Откроем другой терминал и перейдем в каталог, где хранится наша html-страница.
Затем запускаем там python localhost server, чтобы разместить html-страницу на нашем localhost с помощью следующей команды:
sudo python3 -m http.server 80
Теперь мы можем проверить, открыв наш в браузере 127.0.0.1.
Теперь страница доступна с нашего компьютера, используя IP-адрес localhost (127.0.0.1), и с устройств в той же сети, используя наш локальный IP (IP, назначенный маршрутизатором для нашей системы Kali Linux).
Но он не доступен для других сетей, потому что этот веб-сервер не размещен в интернете.
Теперь мы оставляем терминал нашего веб-хоста как есть, возвращаемся в предыдущее окно терминала (где мы настраивали Ngrok) и выполняем следующую команду для запуска Ngrok:
Здесь мы запускаем скрипт Ngrok на http с портом 80, потому что наш сервер localhost работает на порту 80. (Если мы не можем использовать порт 80 локального хоста, мы можем использовать другие порты, например 8080 или 8888, в этом случае нам нужно указать этот порт в Ngrok).
Используя эту переадресационную ссылку (в реальных ссылках и http, и https), мы можем увидеть нашу страницу из браузера.
Мы можем видеть эту страницу на нашем мобильном телефоне, который подключен к мобильным данным (не в нашей сети WiFi).
Эта ссылка будет активна до тех пор, пока мы не закроем туннель Ngrok, но в реальной жизни Ngrok не может использовать это в течение длительного времени в своем бесплатном плане.
Это может быть временным решением.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (105)
- Книги (27)
- Мануал (2 306)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (820)
- Обход запретов (34)
- Опросы (3)
- Скрипты (114)
- Статьи (352)
- Философия (114)
- Юмор (18)
Anything in here will be replaced on browsers that support the canvas element
OpenVPN Community Edition (CE) – это проект виртуальной частной сети (VPN) с открытым исходным кодом. Он создает защищенные соединения через Интернет с помощью собственного протокола безопасности, использующего протокол SSL/TLS. Этот поддерживаемый сообществом проект OSS (Open Source Software), использующий лицензию GPL, поддерживается многими разработчиками и соавторами OpenVPN Inc. и расширенным сообществом OpenVPN. CE является бесплатным для […]
Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]
В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]
Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]
Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]