Просмотрите список в реальном времени соединений с Постфиксом

Я выполняю Постфикс на поле Linux с парой сотни локальных пользователей с почтовыми ящиками.

Существует ли способ контролировать все входящие соединения (SMTP) к Постфиксному сервису? Т.е. прямая трансляция "IP-адреса x.x.x.x просто подключенный к Постфиксному серверу" и "IP-адресу y.y.y.y просто разъединенный"?

Я хочу контролировать все входящие соединения, таким образом, я могу искать тенденции того же IP-адреса, пытающегося отправить, несколько посылают спам моим пользователям или возможно пытающийся передать (это не открытое реле btw!).

Просто дамп всех соединений и разъединений, с перечисленным IP-адресом, к текстовому файлу или системному журналу был бы прекрасен. Или возможно существует другой, лучший путь?

Спасибо!

1
задан 8 July 2014 в 18:21
4 ответа

постфикс регистрирует каждое соединение по мере его поступления, и строки журнала выглядят как

Jul  8 16:25:15 swiss postfix/smtpd[11127]: connect from some.host.or.other [192.0.2.1]

, поэтому вы можете tail -F свой лог-файл (в моей системе это /var/log/mail.log), использовать grep для фильтрации нужных вам строк и наблюдать за трафиком в реальном времени.

.
4
ответ дан 3 December 2019 в 17:07

Вышеуказанный плакат близок.

tail позволяет увидеть последние 10 строк в файле. Переключатель -f позволяет видеть новые строки по мере их добавления в файл maillog.

cd /var/log

tail -f maillog

Ctrl+c для экранирования.

Видя, что это уже записано в файл с именем /var/log/maillog, не уверен, зачем вам понадобилось создавать другой файл, если только вы не ищете извлечения специфической информации.

Если вы хотите просто прочитать почтовый журнал, воспользуйтесь любимым редактором или сделайте следующее:

less maillog

Нажатие кнопки Enter (return) переместит файл вниз на одну строку за раз, или вы можете нажать кнопку Page Down для перемещения в полноэкранном режиме.

Нажатие кнопки q убежит от вас.

.
1
ответ дан 3 December 2019 в 17:07

Я нашел следующее полезным:

tail -f maillog | grep connect

Но вы можете использовать grep для отключения или конкретного IP, если хотите?

0
ответ дан 3 December 2019 в 17:07

Это даст вам подсчет всех IP-адресов в вашем файле mail.log, чтобы вы могли идентифицировать мешающие IP-адреса.

grep connect /var/log/mail.log |grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | sort | uniq -c | sort

Используйте ipset для создания черных списков и добавления их в таблицы IP.

Создание черных списков:

ipset create <nameof blacklist> hash:ip (or net) -hashsize 4096

ipset add <nameof blacklist> <IP or network/nn>

Сопоставление черных списков и удаление:

iptables -I INPUT -m set --match-set <nameof blacklist> src -j DROP
iptables -I FORWARD -m set --match-set <nameof blacklist> src -j DROP

Вы, вероятно, могли бы создать сценарий и автоматизировать это.

0
ответ дан 23 February 2020 в 10:57

Теги

Похожие вопросы