Pull to refresh

Мониторинг публичных IP-адресов пользователей в Интернете

В одной организации, в которой я работал, возникла необходимость централизованного сбора информации о сетевых адресах сотрудников, с которых они выходят в Интернет. Многие сотрудники организации работали удаленно из дома на своих домашних компьютерах. Задача состояла в том, чтобы фиксировать дату, время, сетевой адрес и некоторую информацию о пользователе (далее – Информация), позволяющую его идентифицировать.

С целью упрощения, было решено, что на домашнем компьютере каждого сотрудника будет установлен командный файл, который автоматически запускается при входе пользователя в систему. Командный файл по HTTP протоколу «посылает» POST-запрос на специальный web-сервер в Интернете. Сервер сохраняет в своем логе переданную в запросе информацию.

Информация обрабатывается на сервере и формируются ежедневные CSV файлы, содержащие в нашем конкретном случае строки с датами, временем, сетевыми адресами и фамилиями с инициалами пользователей. Эти файлы доступны для скачивания по FTP-протоколу.

В качестве web-сервера был выбран универсальный SHS-сервер (официальный сайт smallsrv.com), работающий на Linux и Windows платформах. На этом сервере был создан сайт всего из одной страницы, которая отображает сетевой адрес посетителя и наименование страны, в которой его адрес зарегистрирован. Вся информация для мониторинга берется из логов SHS-сервера. Для выгрузки информации мониторинга был развернут FileZilla-сервер (официальный сайт filezilla-project.org), работающий на Linux и Windows платформах.

Так как домашние компьютеры пользователей работали на Windows 10, для передачи Информации на сервер были использованы только стандартные средства данной операционной системы. Для автоматического запуска на компьютерах пользователей было создано задание стандартного планировщика на запуск командного файла, выполняющего отправку Информации. Информация хранится в стандартном для Windows конфигурационном файле. В архиве oldmaker01.zip находятся образцы задания (mytask.xml), командного (sender.cmd), конфигурационного (config.txt), инсталляционного (install.cmd) файлов, а также пример лога web-сервера, содержащий POST-запрос клиента.

Примечания

  1. Данные файлы должны размещаться в папке MISC на диске С, так как с целью упрощения настройки файлы mytask.xml и install.cmd содержат ссылки на эту папку.
  2. Информация для идентификации пользователя содержится в строке WHOIS файла config.txt. В моем случае в качестве такой информации использовалась фамилия и инициалы пользователя, набранные на латинице.
  3. Если пользователем используется локальный прокси-сервер, то в строке PROXY файла config.txt следует скорректировать его адрес и порт. Если он не используется, то изменять config.txt не требуется.
  4. Запуск инсталляционного файла следует выполнять от имени администратора (требуются права администратора на добавление задания планировщика).
  5. В POST-запросах лога web-сервера ищутся строки, содержащие KTOTAM=ХХХХХХ, где ХХХХХХ – это, собственно, Информация. Также из POST-запроса извлекаются дата, время и IP адрес.
  6. В приложенном примере лога сервера вместо реальных указаны случайные наименование домена и сетевой адрес клиента.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.