Предисловие:
Есть «одаренные» админы почтовых серверов, которые в заголовке HELO указывают хрен знамо что. Таких мало, но как оказалось не только наши, но и америкосы так болеют.
В результате почтовик их шлёт куда подальше как спамеров, по сути:
mail postfix/smtpd: NOQUEUE: reject: RCPT 450 4.7.1 Helo command rejected: Host not found;
Задача:
Выявить этих нерадивых без строк с явным спамом, хотя бы раз в сутки.
Что придумал:
1) Фильтруем лог по «Helo command rejected: Host not found»
2) В найденном фильтр по дате «$(date +»%b %d")"
3) В оставшемся удаляем строки с «unknown» т.к. ip адреса без А записей это точно спам
4) В файл и на мыло
cat /var/log/mail.log | grep "Helo command rejected: Host not found" | grep "$(date +"%b %d")" | grep -v -e "unknown" > /home/user/mail_grep.log
(echo "Subject:mail_grep $(date +"%Y %b %d %R:%S")"; cat /home/user/mail_grep.log) | sendmail root
Вопросы:
Может есть более красивое решение? Каковы мои ошибки/недочеты? Предложения? :)