В iptables я регистрирую определенные общедоступные IP-адреса ... скажем, веб-сайты, посещаемые с разных рабочих станций, в зависимости от номера порта назначения ... Все это на самом деле не имеет отношения к вопросу, но я просто излагаю это здесь, чтобы мои цели стали ясными.
Теперь я хочу проанализировать данные ... У меня есть только IP-адреса ... Как лучше всего получить доменное имя. Хорошо, я знаю, что вы можете использовать nslookup и копать, но отображаемое доменное имя, возможно, является записью A в данных DNS, которая обычно не является доменным именем, которое вы ищете ...
Я немного не уверен в деталях ... но мне нужно, например, что кто-то заходит на cnbc.com, я смотрю зарегистрированные IP-адреса и получаю все виды доменов от веб-сервисов Amazon до facebook.com. Ближайшим доменом, для которого зарегистрирован IP-адрес, был nbcuni.com ...
Доступны ли какие-то «службы», API, программное обеспечение, сторонние решения для получения «ближайшего» узнаваемого доменного имени для данного IP-адреса?
РЕДАКТИРОВАТЬ: Есть еще одна проблема ... Системы мониторинга, похоже, справляются с ними. Прокси-системы (как рекомендовано ниже) не могут отличить указанный URL-адрес от URL-адреса содержимого посещенной страницы. Или могут? Любой посещенный URL-адрес, явно указанный в браузере, или косвенно любой URL-адрес, содержимое которого отображается на странице, будет отображаться как посещенный URL-адрес. Есть ли способ отличить? Через логи прокси или иначе?
Я не уверен, что понимаю всю картину, но поскольку вы пишете о веб-сайтах, я думаю, что вы используете инструмент, который не совсем подходит для этой задачи.
imho, вы ищете эту информацию (посещаемое доменное имя) на неправильном уровне: у вас должен быть прокси-сервер и анализировать его журналы, чтобы собрать эту информацию.
Прокси-сервер находится «рядом» с клиентом и содержит точную и точную информацию, которую вы ищете.
Прозрачный прокси-сервер сможет собирать эту информацию без изменения конфигурации клиента.
Вы решаете эту проблему не на том уровне. Буквально слой 4, когда вам следует использовать слой 7.
Не регистрируйте TCP-соединения в iptables. Вместо этого перехватите HTTP-трафик и проверьте заголовок Host в запросах, которые делают клиенты.
Вы не можете легко определить, что пользователь ввел в адресную строку своего браузера, используя только журнал IP-адресов: вы не можете определить, имеет ли кто-то доступ 104.16.13.13
попал туда, набрав aviation.stackexchange.com
или tex.stackexchange.com
(лучшее, что вы можете определить, это IP-адрес CloudFlare).
Чтобы получить информацию, которую вы ищете, вам нужно будет либо выполнить перекрестную ссылку с запросами на вашем DNS-сервере примерно в одно и то же время, либо захватить весь пакет и найти что-то в данных протокола (например, HTTP-запрос), раскрывающее имя хоста. . Последнее легко обмануть: просто заходите на сайты через https или другой зашифрованный транспорт.
Учитывая IP-адрес, лучшее, что вы можете сделать, это получить обратный DNS PTR
запись (dig -x
или аналогичный), или информацию о сетевых блоках и владельцах сетевых блоков (через whois
), которую вы уже отклонили как не отвечающую вашим требованиям.