API сервиса мониторинга открытых портов

Сервис находится в режиме бета-тестирования.

Сервис мониторинга открытых портов позволяет отслеживать открытые порты на IP-адресах.

Подключить мониторинг можно только для IP-адресов, которые назначены на выделенные серверы, размещенное оборудование, межсетевые экраны, объекты облачной платформы (облачные серверы, балансировщики, базы данных и т.д.), а также для PI IP-адресов, которые вы анонсируете через оборудование Selectel.

С помощью API сервиса вы можете:

  • включить или отключить мониторинг открытых портов для IP-адреса;
  • получить список открытых портов на одном или нескольких IP-адресах;
  • отметить порты, которые должны быть открыты;
  • проверить состояние конкретного порта на IP-адресе;
  • настроить уведомления об открывшихся портах.

Авторизация

Для работы с API необходимо получить токен Selectel и передавать его в заголовке X-Token при выполнении каждого запроса.

Используйте URL-адрес: https://api.selectel.ru/eye/v1/

Пример запроса:

curl -X POST https://api.selectel.org/eye/v1/ips -H "X-Token: nat789jSd2bKACNKv2deXDNyj_0000" -H "Content-Type: application/json" -d '{"ip":"99.99.99.99"}'

Пример базовой настройки мониторинга

  1. Добавьте IP-адрес в список для мониторинга:

    curl -X POST https://api.selectel.org/eye/v1/ips -H "X-Token: <token_value>" -H "Content-Type: application/json" -d '{"ip":"<ip>"}'
    
  2. Запросите список всех открытых портов IP-адреса:

    curl -X GET https://api.selectel.org/eye/v1/ips/ports -H "X-Token: <token_value>" -H "Content-Type: application/json" -d '{"ip":"<ip>"}'
    
  3. Опционально: если обнаружены открытые порты, которые должны быть закрытыми, закройте их. Например, для Linux используйте утилиту iptables или UFW.

  4. Если вы закрыли порты, подождите 10 минут, чтобы сервис успел выполнить повторное сканирование. Чтобы проверить, что сканирование прошло успешно, снова запросите список открытых портов:

    curl -X GET https://api.selectel.org/eye/v1/ips/ports -H "X-Token: <token_value>" -H "Content-Type: application/json" -d '{"ip":"<ip>"}'
    
  5. Отметьте оставшиеся открытые порты IP-адреса как доверенные, для этого установите для них тег KNOWN со значением true:

    curl -X PUT https://api.selectel.org/eye/v1/ips/ports -H "X-Token: <token_value>"
    

    Первая отправка запроса устанавливает тег со значением true, каждая следующая меняет значение тега на противоположное.

  6. Опционально: чтобы проверить, что тег установлен верно, запросите список всех открытых портов IP-адреса и проверьте значение в поле KNOWN:

    curl -X GET https://api.selectel.org/eye/v1/ips/ports -H "X-Token: <token_value>" -H "Content-Type: application/json" -d '{"ip":"<ip>"}'
    

    При необходимости используйте другие методы группы Ports, чтобы менять значение тега для определенного порта, а не всех портов IP-адреса.

  7. Если на адресе будет обнаружен открытый порт с тегом KNOWN со значением false, вы получите уведомление на email, который вы использовали при регистрации аккаунта. Вы также можете подключить уведомления в Telegram.