Помимо использования iptables для регистрации входящих подключений ..
Есть ли способ регистрировать установленные входящие соединения со службой, для которой у вас нет источника (предположим, что служба не регистрирует подобные вещи сама по себе)? Что я хочу сделать, так это собрать некоторую информацию о том, кто подключается, чтобы иметь возможность сказать такие вещи, как, например, в какое время дня служба используется чаще всего, где в мире находится основная база пользователей и т. Д.
Я знаю, что могу использовать netstat
и просто подключите его к сценарию cron, но это может быть неточно, поскольку сценарий может запускаться не чаще минуты.
Вот о чем я сейчас думаю:
netstat
, ищем установленные связи, которых не было в предыдущем опросе. Эта идея кажется такой пустой тратой времени процессора, поскольку нового соединения может не быть.Изменить: мне только что пришло в голову, что этот вопрос может быть лучше для stackoverflow, хотя я не уверен. Извините, если это не то место.
Вы можете регистрировать новые подключения с помощью iptables таким образом
iptables -I INPUT -m state --state NEW -j LOG --log-level 1 --log-prefix "New Connection "
Это добавит подобное сообщение для нового соединения ssh
6 октября 10:58:23 ядро centos: новое соединение IN = eth0 OUT = MAC = 00: 0c: 29: 5b: a5: ea: 00: 0c: 29: 2d: 94: a0: 08: 00 SRC = 192.168. 1.72 DST = 192.168.254.187 LEN = 52 TOS = 0x00 PREC = 0x00 TTL = 126 ID = 15498 DF PROTO = TCP SPT = 59221 DPT = 22 WINDOW = 8192 RES = 0x00 SYN URGP = 0
или как это для нового http-соединения
6 октября 11:03:56 ядро centos: новое соединение IN = eth0 OUT = MAC = 00: 0c: 29: 5b: a5: ea: 00: 0c: 29: d2: 2c: 38: 08: 00 SRC = 192.168. 254.188 DST = 192.168.254.187 LEN = 60 TOS = 0x10 PREC = 0x00 TTL = 64 ID = 10345 DF PROTO = TCP SPT = 52488 DPT = 80 WINDOW = 14600 RES = 0x00 SYN URGP = 0
и так далее для каждого нового подключения к вашей системе. Будет регистрироваться там, где ваш системный журнал настроен для отправки сообщений kern.warning.
Как насчет tcpdump или wirehark?
вы можете использовать auditd и в конце дня вычислять статистику на основе этих логических линий. Или вы также можете перейти к решению snmp, но, вероятно, у вас есть собственный mib