Кроме того, для использования iptables для входа входящих соединений ..
Есть ли способ регистрировать установленные входящие соединения со службой, к которой у вас нет источника (предположим, что служба сама не регистрирует подобные вещи)? То, что я хочу сделать, это собрать некоторую информацию, основанную на том, кто подключается, чтобы иметь возможность сказать, например, в какое время дня служба используется чаще всего, где в мире основная база пользователей и т. Д.
Я знаю, что могу использовать netstat
и просто подключить его к скрипту cron, но это может быть неточно, так как скрипт может запускаться с частотой всего минуту.
Вот что я сейчас думаю:
- Напишите программу, которая постоянно опрашивает
netstat
, ищет установленные соединения, которые не появлялись в предыдущем опросе. Эта идея кажется пустой тратой процессорного времени, так как не может быть нового соединения. - Напишите программу-обертку, которая принимает входящие соединения на любом порту, на котором работает служба, но тогда я не знаю, как передать это соединение реальной службе.
Редактировать: Мне пришло в голову, что этот вопрос может быть лучше для stackoverflow, хотя я не уверен. Извините, если это не то место.
Ответы:
Таким образом, вы можете регистрировать новые соединения с iptables
Это добавит сообщение как это для нового соединения SSH
или как это для нового http-соединения
и так далее для каждого нового подключения к вашей системе. Будет зарегистрировано, где ваш системный журнал настроен на отправку сообщений kern.warning.
источник
Вы можете использовать audd и в конце дня вычислить некоторую статистику на основе этих логов. Или вы могли бы также перейти к решению SNMP, но, вероятно, вы должны написать свой собственный MIB
источник
Как насчет tcpdump или wireshark?
источник
tcpdump -i <interface> -s 65535 -w <some-file>
Кроме того, вам придется прекратить захват с помощью ^ C, когда вы считаете, что захватили достаточно пакетов.