Я разрабатываю продукт, и в определенный момент мне нужно получить доменные имена, используемые для доступа к какой-либо службе через определенный порт. Предположим, у меня есть компьютерная сеть с доступом в Интернет через шлюз Linux. В качестве примера меня интересует порт 6208 (это может быть любой порт).
Когда кто-то в этой сети подключается к [доменное имя]: 6208 Я хочу, чтобы приложение, которое я разработаю, получило бы [доменное имя] на шлюзе.
При подключении к eg.example.com:6208 приложение должно получить eg.example.com .
Что я могу сделать на шлюзе, чтобы добиться такого поведения? Есть ли способ сделать это с помощью существующих инструментов? Я прошу не о том, как разработать указанное приложение, а о том, как / где я могу получить эти данные (доменное имя). Учитывая, что на шлюзе работает дистрибутив Linux, у него должен быть какой-то способ это сделать.
Итак, есть нам подсказка?
На основании ваших ответов на @user2629636 - т.е. прослушивание трафика не обнаружено, вероятный ответ - "вы не можете". TCP не знает доменного имени, связанного с IP-адресом.
В зависимости от того, что вы пытаетесь сделать, вы можете назначить уникальный IP-адрес (возможно, адрес RFC1918) каждому доменному имени, а затем использовать IP-таблицы для запуска скрипта. В действительности, IPTables не может сделать это самостоятельно, поэтому это вопрос записи лога, а затем использования что-то вроде "Fail2Ban" для действия на запись лога в качестве триггера. Messy.
Или посмотрите на использование Knockd для запуска скрипта, когда вы подключаетесь к порту. Это означает, что каждому IP-адресу нужен отдельный порт для работы - вероятно, на самом маршрутизаторе, так что, вероятно, это также тупик.
.Скорее всего, вы захотите использовать либо tcpdump, либо wireshark на вашем шлюзе. С wireshark вы получите более подробную информацию.
Если трафик на самом деле http тип трафика, вам может понадобиться что-то подобное:
tshark -d tcp.port==6208,http
После того, как вы получите какое-либо поле из пакета, вы должны быть в состоянии обвязать его в mysql-оператор вставки и т.д.