qmail ограничивают количество электронных писем, посланных пользователем или доменом в час

Поскольку squillman и восстановление сказал это абсолютно отдельный, но это также недорого. Цены колеблются на Amazon, но я видел R2 всего для 42 маркеров, и можно поместить его на несколько машин, пока они не производственные машины.

0
задан 12 September 2013 в 01:15
5 ответов

Там есть своего рода патч дроссельной заслонки доступно для Qmail, которое соответствует вашему описанию. Я сомневаюсь, что есть встроенная функциональность без исправления Qmail, поскольку Qmail, кхм, отлично закодирован как есть.

Пожалуйста, взгляните на это обсуждение различных MTA , особенно на заметку о Qmail. Имейте в виду, что это обсуждение началось 6 лет назад, и то, что было сказано тогда о Qmail, еще более верно. Возможно, это не входит в ваше краткосрочное или среднесрочное планирование, но переход с Qmail должен быть чем-то, что нужно учитывать, особенно если вам нужно применить кучу случайных патчей, чтобы заставить его делать то, что вы хотите.

Хм, обсуждение того, как сделать что-то подобное в Postfix, заключается в использовании политики policyd добавить. Взгляд на этот проект показывает, что его можно использовать с различными MTA, так что, возможно, вы сможете убедить Qmail использовать его.

1
ответ дан 4 December 2019 в 12:35

Этот сценарий ограничивает количество писем, отправляемых на пользователя в день. Если пользователь достиг максимального предустановленного значения, сценарий изменит пароль, и администратору будет отправлено электронное письмо.

Для установки:

  1. У вас должен быть установлен qmt со spamdyke.
  2. Сохранить и выполнить разрешения для этого сценария как: / home / vpopmail / bin / qmail-antispam
  3. Создайте этот файл: / etc / qmailadmin / qmail-spam / blacklist
  4. В crontab добавьте

     * / 5 * * * * / home / vpopmail / bin / qmail-антиспам >> / var / log / maillog 2> & 1
    

Просмотрите журналы, чтобы проверить, работает ли это:

tail -f /var/log/maillog | grep "qmail-antispam"

#!/bin/sh
#Qmail Toaster AntiSpam - qmail limit number of emails sent by user by day
#PseudoAntiSpam - Fake Antispam - Toxic Antispam - LogBased Antispam
#Prevent when an attacker steal a user password and abuse the server.
#
#Español Spanish
#Script para limitar la cantidad de envios realizados por usuario por dia. Si el usuario alcanzo un maximo prefijado se la cambia el password y se envia un correo al administrador.
#Este script previene los casos en los que un atacante roba una clave y abusa de nuestro server haciendo envios masivos. Normalmente estos envios masivos implican multiples autenticaciones y contando la cantidad de envios con autenticacion se identifica el ataque, y se le cambia el password para frenar esos envios.
#
#Para instalar:
#1- Guardar y dar permisos de ejecucion a este script como: /home/vpopmail/bin/qmail-antispam
#2- Crear este archivo: /etc/qmailadmin/qmail-antispam/blacklist
#3- En el crontab agregar
#*/5 * * * * /home/vpopmail/bin/qmail-antispam >> /var/log/maillog 2>&1
#
#
#Revisar los logs asi para verificar que este funcionando
#tail -f /var/log/maillog | grep "qmail-antispam"
#
#English Ingles
#Google translate:
#
#This script limit the number of emails sent ​​per user per day. If the user reached a maximum preset, the script will change the password and an email is sent to the administrator.
#
# To install:
# 1 - Save and execute permissions to this script as: /home/vpopmail/bin/qmail-antispam
# 2 - Create this file: /etc/qmailadmin/qmail-spam/blacklist
# 3 - In the crontab add
# * / 5 **** /home/vpopmail/bin/qmail-antispam >> /var/log/maillog 2>&1
#
#
# Review the logs so to check if it works:
# tail-f / var / log / maillog | grep "qmail-antispam"
#
#
#Author: 3.14
#Contact: 3.141592x5@gmail.com

#Configuracion / Config
MAILLOG="/var/log/maillog"
MAX_CORREOS=3000
ID_SERVER="ID_SERVER"
CONTACTO=admin@server.com
LISTA_NEGRA=/etc/qmailadmin/qmail-antispam/blacklist
VUSERINFO="/home/vpopmail/bin/vuserinfo"
VPASSWD="/home/vpopmail/bin/vpasswd"
AUX=$(mktemp)

echo "$(date) qmail-antispam : Revisando logs"

function LstUsers
{
    grep "$(date +"%b %d")" /var/log/maillog| grep auth: | grep ALL| awk -Fauth: {'print $2'} | awk {'print $1'} | sort | uniq -c | sort -n | grep -v \(unknown\) | awk {'print $1"|"$2'}
}

LstUsers >$AUX

#cat $AUX

for i in $(cat $AUX); do

    cantidad=$(echo $i | awk -F\| {'print $1'})
    usuario=$(echo $i | awk -F\| {'print $2'})

    if [ $cantidad -gt $MAX_CORREOS ]; then

        #echo "$(date) Limite de autenticaciones exedido: $usuario"
        #echo "$(date) Verificando si $usuario se encuentra suspendido"

        if [ "$(cat $LISTA_NEGRA | grep "$(date +"%b %d %Y")" | grep $usuario)" == "" ]; then
            echo "$(date) qmail-antispam : Suspendiendo al usuario: $usuario envios: $cantidad maximo_permitido: $MAX_CORREOS" >> $MAILLOG
            password_capturado=$($VUSERINFO $usuario | grep "clear passwd" | awk -F: {'print $2'})
            echo "$(date +"%b %d %Y")" $usuario $password_capturado>>$LISTA_NEGRA
            echo -e "Fecha: $(date) \nUsuario: $usuario \nPassword: $password_capturado \nEnvios: $cantidad" | mail -s "Aviso de spam en el $ID_SERVER" "$CONTACTO"
            $VPASSWD $usuario -r                
        fi

    fi

done

echo "$(date) qmail-antispam : Fin de revision"
0
ответ дан 4 December 2019 в 12:35

Сработало отлично, спасибо!

Вам также следует включить следующую строку, следующую за первым grep:

grep "$ (date +"% b% d ")" / var / log / maillog | представление grep: | awk -Fsuccess {'print $ 2'} | awk -F: {'print $ 1'} | сортировать | uniq -c | sort -n | grep -v (неизвестно) | awk {'print $ 1 "|" $ 2'}

Таким образом, вы можете также блокировать простые незашифрованные отправки smtp.

Приветствую!

1
ответ дан 4 December 2019 в 12:35

Также вы можете отслеживать исходящую почту с помощью Swatch, когда Swatch обнаруживает qmail-send на максимуме (например, удаленный 30/30), отправляет вам предупреждение.

Вы можете использовать патч tcpserver limits : дает tcpserver возможность отклонять подключения, когда средняя загрузка сервера превышает определенное число, когда с одного IP-адреса получено более определенного количества подключений или когда с компьютеров в одном и том же IP-адресе получено более определенного количества подключений блок класса C (т.е. «первые три числа» в их IP-адресах совпадают. «1.2.3.4» и «1.2.3.100» находятся в одном блоке класса C.) https: // qmail. jms1.net/ucspi-tcp/[12153 impression

1
ответ дан 4 December 2019 в 12:35

Также добавьте эту строку для защиты вашего сервера от пользователей, прошедших локальную аутентификацию:

grep "$(date +"%b %_d")" /var/log/maillog |
grep auth: |
grep ALL |
grep '127.0.0.1' |
awk -Ffrom\: {'print $2'} |
awk -Fto\: {'print $1'} |
sort | uniq -c | sort -n | grep -v bounce |
awk {'print $1"|"$2'}

Приветствую!

0
ответ дан 4 December 2019 в 12:35

Теги

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