Я підтримую поштовий сервер, який використовують сотні клієнтів. Час від часу клієнт заражається вірусом і починає відправляти тонну спаму. Я в першу чергу звертаю увагу на це, оскільки він заповнює чергу поштою десятками тисяч відкладених листів, а не парою сотень.
Пошук IP-адреси відправника спаму та його блокування є простим, але у мене все ще є десятки тисяч спам-листів у черзі пошти, часто з різними адресами відправника.
Коли я друкую чергу публікацій за допомогою postqueue -p
він відображає ідентифікатор пошти, адресу електронної пошти відправника та всіх одержувачів. Він не відображає IP-адресу відправника.
Я можу знайти IP-адресу відправника пошти, виконавши:
postcat -q ABCDEF1234 | egrep "\\bclient_address="
Де "ABCDEF1234" є ідентифікатором пошти.
Я написав інструмент, який перераховує всі ідентифікатори пошти, а потім виконує цикли postcat -q
на кожному з них і фільтрувати ті, які не збігаються з ідентифікатором введення.
Це працює, але це надзвичайно повільний . Фільтрація черги повідомлень із 441 листами займає 7-8 секунд. Якщо я намагаюся фільтрувати спам-заповнену чергу поштою десятками тисяч листів, цей інструмент буде марним.
Я сподіваюся, що є якийсь інструмент або прапор, який я не знаю про те, що ми фільтруємо за IP-адресою відправника.
Я працюю з Postfix 2.10