Назад | Перейти на главную страницу

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

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

Есть ли способ контролировать все входящие подключения (SMTP) к службе Postfix? Т.е. прямой поток «IP-адрес x.x.x.x только что подключен к серверу Postfix» и «IP-адрес y.y.y.y только что отключен»?

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

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

Спасибо!

postfix регистрирует каждое входящее соединение, и строки журнала выглядят как

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 для фильтрации нужных вам строк и просмотра трафика в реальном времени.

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

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

cd /var/log

tail -f maillog

Ctrl+c Сбежать.

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

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

less maillog

ударяя по Войти Клавиша (return) перемещает файл вниз по одной строке за раз, или вы можете нажать Листать вниз клавиша для полноэкранного перехода.

H Нажатие на q Ключ ускользнет от вас.

Это даст вам подсчет всех 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

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

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

tail -f maillog | grep connect

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