API сервиса мониторинга открытых портов
Сервис мониторинга открытых портов позволяет отслеживать открытые порты на IP-адресах. Вы добавляете в сервис IP-адреса для мониторинга и отмечаете порты, которые должны быть открытыми. Сервис регулярно сканирует порты на адресе, и при обнаружении открытого порта без отметки отправляет уведомление на email аккаунта. Вы также можете подключить уведомления в Telegram.
Подключить мониторинг можно только для IP-адресов, которые назначены на выделенные серверы, размещенное оборудование, межсетевые экраны, объекты облачной платформы (облачные серверы, балансировщики, базы данных и т.д.), а также для PI IP-адресов, которые вы анонсируете через оборудование Selectel.
С помощью API сервиса вы можете:
- включить или отключить мониторинг открытых портов для IP-адреса;
- получить список открытых портов на одном или нескольких IP-адресах;
- отметить порты, которые должны быть открыты;
- проверить состояние конкретного порта на IP-адресе;
- настроить уведомления на email и в Telegram об открывшихся портах.
Авторизация
Для работы с API используются токены Selectel, которые передаются в заголовке X-Token
.
Адрес (URL) можно посмотреть в списке URL.
Пример базовой настройки мониторинга
-
Добавьте IP-адрес в список для мониторинга:
curl -X POST \ -H 'X-Token: <selectel_token>' \ -H 'Content-Type: application/json' \ -d '{"ip":"<ip>"}' \ https://api.selectel.ru/eye/v1/ips
Укажите:
<selectel_token>
— токен Selectel;<ip>
— IP-адрес, который нужно добавить в сервис.
-
Подождите около 10 минут, пока сервис проведет первичное сканирование портов IP-адреса, затем запросите список открытых портов адреса:
curl -X GET \ -H 'X-Token: <selectel_token>' \ -H 'Content-Type: application/json' \ -d '{"ip":"<ip>"}' \ https://api.selectel.ru/eye/v1/ips/ports
Укажите
<ip>
— IP-адрес, для которого нужно получить список портов. -
Опционально: если обнаружены открытые порты, которые должны быть закрытыми, закройте их. Например, для Linux используйте утилиту iptables или UFW.
-
Если вы закрыли порты, подождите 10 минут, чтобы сервис успел выполнить повторное сканирование. Чтобы проверить, что сканирование прошло успешно, снова запросите список открытых портов:
curl -X GET \ -H 'X-Token: <selectel_token>' \ -H 'Content-Type: application/json' \ -d '{"ip":"<ip>"}' \ https://api.selectel.ru/eye/v1/ips/ports
Укажите
<ip>
— IP-адрес, для которого нужно получить список портов. -
Отметьте оставшиеся открытые порты IP-адреса как доверенные, для этого установите для них тег
KNOWN
со значениемtrue
.Одним запросом вы можете отметить:
- конкретный порт — первый запрос устанавливает тег
KNOWN
со значениемtrue
, каждый следующий меняет значение тега на противоположное; - все открытые порты IP-адреса — запрос всегда устанавливает тег
KNOWN
со значениемtrue
.
curl -X PUT \ -H 'X-Token: <selectel_token>' \ -d '{"ip":"<ip>"}' \ https://api.selectel.ru/eye/v1/ips/ports/<port>
Укажите:
<port>
— номер порта, который нужно отметить. Чтобы отметить все открытые порты адреса, не указывайте номер порта;<ip>
— IP-адрес, на котором находится порт.
- конкретный порт — первый запрос устанавливает тег
-
Опционально: чтобы проверить, что тег установлен верно, запросите список всех открытых портов IP-адреса и проверьте значение в поле
KNOWN
:curl -X GET \ -H 'X-Token: <selectel_token>' \ -H 'Content-Type: application/json' \ -d '{"ip":"<ip>"}' \ https://api.selectel.ru/eye/v1/ips/ports
Укажите
<ip>
— IP-адрес, для которого нужно получить список портов. -
Если на адресе будет обнаружен открытый порт с тегом
KNOWN
со значениемfalse
, вы получите уведомление на email, который вы использовали при регистрации аккаунта. Вы также можете подключить уведомления в Telegram.