Страница 1 из 2
Первая статистика по заблокированным письмам
Добавлено: 2007-06-10 13:32:05
dikens3
Код: Выделить всё
Пользователь не найден (root, mailer-daemon и т.п.) 297
Запрещённые символы в адресе 4
Relay у нас запрещён, а письмо не для нашего домена 6
Отправитель не существует (подделан) 143
IP-Адрес в HELO/EHLO 15
В HELO/EHLO нет точки (.) 172
В HELO/EHLO находится localhost или мой_домен 175
Заблокирован по нашему списку HELO/EHLO 23
Заблокированый нами хост (wanadoo и т.п.) 12
SPF проверка отрицательна (fail) 54
SPF проверка отрицательна (softfail) 152
Хост находится в списках рассылающих спам. (RBL) 306
Некорректные заголовки в письме. (header_syntax) 9
Поле от содержит E-Mail:<> 4
Заблокированый нами E-Mail отправителя 3
Всего: 1379
Так это я к чему? Просто делюсь своей статистикой и косвенно принципами блокировки.
Добавлено: 2007-06-12 14:37:13
kunaksergey
Оч интересно.. не подскажите чем вы собираете статистику.
Добавлено: 2007-06-12 18:17:34
dikens3
Exim складывает в mysql. Потом на PHP смотрю.
На данный момент 2521 заблокировано и 756 принято.
Добавлено: 2007-06-12 18:22:53
kunaksergey
Хотел бы прикрутить такое себе на postfix для борьбы со спамом и т.д. Не могли бы вы привести пример скрипта и как его настроить.(Если конечно не тяжело).
Добавлено: 2007-06-12 18:26:28
dikens3
kunaksergey писал(а):Хотел бы прикрутить такое себе на postfix для борьбы со спамом и т.д. Не могли бы вы привести пример скрипта и как его настроить.(Если конечно не тяжело).
Завтра на работу приду, скину что есть по postfix.
Добавлено: 2007-06-12 18:27:47
kunaksergey
буду ждать.Спасиб.
Добавлено: 2007-06-13 11:16:24
dikens3
statdbl.sh
Код: Выделить всё
#!/usr/local/bin/bash
cd /root/scripts/postfix/statdbl
outfile="mystatdbl"
cat /dev/null > $outfile
logfile="/var/log/postfix.log"
#logfile="/mnt/inbound/postfix/postfix.log"
filters=" ix.dnsbl.manitu.net relays.ordb.org list.dsbl.org dnsbl.njabl.org dynablock.njabl.org combined.njabl.org sbl-xbl.spamhaus.org cbl.abuseat.org dnsbl.ahbl.org bl.spamcop.net block.rhs.mailpolice.com "
filters_sender=" blackhole.securitysage.com spf.pobox.com "
echo "------ Postfix filters ------" >> $outfile
for dbl in ${filters}
do
#echo $dbl
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "$dbl" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n " " >> $outfile
let mylen=mylen+1
done
echo "-- $kol" >> $outfile
done
for dbl in ${filters_sender}
do
#echo $dbl
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "$dbl" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n " " >> $outfile
let mylen=mylen+1
done
echo "-- $kol" >> $outfile
done
echo >> $outfile
echo "--------- My filters ---------" >> $outfile
# Наши несуществующие E-Mail'ы
dbl="Is not present such a"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/8 | bc)
echo -n "bad_dest_emails" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n " " >> $outfile
let mylen=mylen+1
done
echo "-- $kol" >> $outfile
# С каких E-Mail'ов из внешнего мира мы не принимаем почту
dbl="You are blocked"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "bad_emails" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n " " >> $outfile
let mylen=mylen+1
done
echo "-- $kol" >> $outfile
# Блокировка helo
dbl="You not"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/3 | bc)
echo -n "helo_access" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n " " >> $outfile
let mylen=mylen+1
done
echo "-- $kol" >> $outfile
# Заблокированные мной лично
dbl="sent me spam"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "sender_bad" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n " " >> $outfile
let mylen=mylen+1
done
echo "-- $kol" >> $outfile
echo >> $outfile
echo "------------------------------" >> $outfile
all=$(cat $outfile | awk '{s+=$3} END {print s}')
echo "Total: $all" >> $outfile
echo >> $outfile
echo "---- Total accepted mail ----" >> $outfile
# Всего принятых писем
dbl="delivered to maildir"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "Total accepted mail" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n " " >> $outfile
let mylen=mylen+1
done
echo "-- $kol" >> $outfile
Статистика получалась примерно такая:
Код: Выделить всё
------ Postfix filters ------
ix.dnsbl.manitu.net -- 158
relays.ordb.org -- 0
list.dsbl.org -- 590
dnsbl.njabl.org -- 37
dynablock.njabl.org -- 653
combined.njabl.org -- 0
sbl-xbl.spamhaus.org -- 717
cbl.abuseat.org -- 5
dnsbl.ahbl.org -- 19
bl.spamcop.net -- 15
block.rhs.mailpolice.com -- 0
rhsbl.ahbl.org -- 0
dsn.rfc-ignorant.org -- 0
blackhole.securitysage.com -- 0
spf.pobox.com -- 0
--------- My filters ---------
bad_dest_emails -- 2
bad_emails -- 0
helo_access -- 104
sender_bad -- 0
------------------------------
Total: 2300
---- Total accepted mail ----
Total accepted mail -- 169
Добавлено: 2007-06-13 11:19:10
dikens3
Статистика по входящему траффику, принятой и непринятой почте на определённый E-Mail:
В папке где лежит это файл нужно создать директорию tmp и в ней будут 3 файла
testone.sh
Код: Выделить всё
#!/usr/local/bin/bash
emails=" user@domain "
logfile="/var/log/postfix.log"
# Создаём цикл для почтовыйх ящиков в списке emails
for myemail in ${emails}
do
# Непринятая почта
cat $logfile | grep "$myemail" | grep "NOQUEUE" | awk '{ for (i=NF;i>0;--i) {{a=$i} if ( a~"from=" ) {print $1,$2,$3,a}}}' > ./tmp/noqueue.$myemail
# Кто присылал почту
cat /dev/null > ./tmp/who-is-send.$myemail
id=$(cat $logfile | grep "$myemail" | grep "postfix/virtual" | awk '{print $6}' | cut -d\: -f1)
for myid in ${id}
do
cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g >> ./tmp/who-is-send.$myemail
done
# Кому посылали почту
cat /dev/null > ./tmp/$myemail.send-to
id=$(cat $logfile | grep "$myemail" | grep "postfix/qmgr" | awk '{print $6}' | cut -d\: -f1)
for myid in ${id}
do
kol=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g | wc -l | awk '{print $1}')
if [ $kol != 0 ]
then
firstlog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7}' | sed s/","/""/g)
traflog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $8}' | sed s/","/""/g | sed s/"size="/""/g)
secondlog=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $7}' | sed s/","/""/g)
echo "$firstlog $secondlog $traflog" >> ./tmp/$myemail.send-to
fi
done
traf=$(cat ./tmp/who-is-send.$myemail | awk '{s+=$5} END {print s}')
echo "$myemail (Входящий траффик) -- $traf Байт"
Добавлено: 2007-06-13 19:01:16
kunaksergey
спасиб..будут пробовать..
кстати в скриптах логи берутся с postfix.log; maillog он обработает?
Добавлено: 2007-06-13 21:40:15
dikens3
kunaksergey писал(а):спасиб..будут пробовать..
кстати в скриптах логи берутся с postfix.log; maillog он обработает?
Я сделал логи в syslog.conf для постфикс, чтобы в отдельный файл ложил. Удобно.
Должен отработать.
Добавлено: 2007-06-14 19:18:01
kunaksergey
Не у меня млин неправильно обрабатывает.. вот статистика:
------ Postfix filters ------
ix.dnsbl.manitu.net -- 0
relays.ordb.org -- 0
list.dsbl.org -- 0
dnsbl.njabl.org -- 0
dynablock.njabl.org -- 0
combined.njabl.org -- 0
sbl-xbl.spamhaus.org -- 0
cbl.abuseat.org -- 1
dnsbl.ahbl.org -- 0
bl.spamcop.net -- 0
block.rhs.mailpolice.com -- 0
blackhole.securitysage.com -- 0
spf.pobox.com -- 0
--------- My filters ---------
bad_dest_emails -- 0
bad_emails-- 0
helo_access-- 0
sender_bad -- 0
------------------------------
Total: 1
---- Total accepted mail ----
Total accepted mail -- 129
а по файлам старым типа maillog.1.bz - ваще по нулям.
Добавлено: 2007-06-14 19:36:46
dikens3
Ну показывай вывод:
Код: Выделить всё
cat $logfile | grep "$dbl" | wc -l | awk '{print $1}'
в $dbl твой блэк лист напиши.
Попробуй понять что мои запросы делают. :-)
К примеру проверки HELO можешь убрать.
У меня блокировка по HELO пишет в логи You not ... Я по ней и ориентировался.
Опиши задачу пока просто, к примеру нужен отчёт по определённому NOQUEUE(непринятым) от какого-нибудь блок листа.
Добавлено: 2007-06-14 19:55:55
kunaksergey
Ну вобщем "0"
Да думаю скрипт сделать или найти что бы- писем пересланных-стока-то. отложеных столько-то, удачно забранных-столько то. ну и т.д
Добавлено: 2007-06-14 20:04:42
kunaksergey
Кстати в твоей первой статистике у тебя выпало 4 письма кудато.
Добавлено: 2007-06-15 7:44:30
dikens3
kunaksergey писал(а):Кстати в твоей первой статистике у тебя выпало 4 письма кудато.
Я уже на Exim и мне это не актуально.
Добавлено: 2007-06-15 7:45:21
dikens3
kunaksergey писал(а):Ну вобщем "0"
Да думаю скрипт сделать или найти что бы- писем пересланных-стока-то. отложеных столько-то, удачно забранных-столько то. ну и т.д
Ну тогда научись понимать логи. И выдирай из логов нужную инфу, как это делал я.
Добавлено: 2007-06-15 10:11:17
Alex Keda
поделись кстати, впечатлениями - плюсы/минусы/трудности...
как переходил - скакого конфига - на какой и т.п...
Добавлено: 2007-06-15 10:58:17
dikens3
lissyara писал(а):поделись кстати, впечатлениями - плюсы/минусы/трудности...
как переходил - скакого конфига - на какой и т.п...
Обосновался у тебя на сайте, никому помочь с exim не могу (postfix в работе стоял). Надумал изучить exim.
Сначала възжал что за зверь недели 2-е. Потом начал составлять аналогичный конфиг exim+postgresql. Создал, опробовал(в тест моде так сказать. Сам посылал письма и смотрел что будет и как что работает).
Решил делать новый сервер в Jail. Но так и не смог побороть проблему с несколькими postgresql. (При запуске в Jail падал в основной системе). Начал изучать плотнее mysql и попутно проектирование баз данных.(Конфиги составлял раньше по примерам из инета)
В итоге начал делать связку exim+mysql аналогичную postfix+postgresql(которая стояла в работе)
Вобщем время шло, конфиги дописывались, доки по exim читались и т.д. Dspam с mysql связывать не стал ибо почты у меня не так много и глюк mysql я не поборол.
В итоге сейчас exim+mysql+WEB(roundcube). Вся отправка или приём только аутентифицированным через TLS, логи отправки/приёма писем exim хранятся в mysql. Перехода как такового небыло, я создавал аналогичный конфиг.(усовершенствованный возможностями exim) 8 Июня всем пользователям изменил настройки в почтовых клиентах и всё. Все рады и счастливы. Пока ни одного обращения пользователей о проблемах с почтой.
Через WEB сделал(доделываю еще) админискую статистику, а так же для каждого пользователя(чтобы они мне не говорили что им что-то не пришло, т.к. есть логи и пусть сами смотрят)
P.S. Статистика приведённая выше отборажается у меня через www, я её просто скопировал. :-)
Добавлено: 2007-06-15 11:02:26
Alex Keda
8 Июня всем пользователям изменил настройки в почтовых клиентах и всё.
это зачем? прозрчно не получилось?
Добавлено: 2007-06-15 11:03:55
dikens3
это зачем? прозрчно не получилось?
IP-Адрес почтового сервера изменился. А старый мне пока ещё нужен. Там ещё много для чего он используется. Пользователей у меня не много, так что заняло пару часов.
Добавлено: 2007-06-15 11:12:22
kunaksergey
>dikens3
Замечательно.. по ходу возникло куча вопросов Ж)-но уже немного не по скриптам- а к твоей проведенной работе. Конекретно меня интересует часть конфига postfix+postgresql
в которой разрешается работа только по TLS. У мну стоит такая связка, стоит TLS, но сделать чтобы было возможно отправлять только через него не получалось. Если не сложно приведи часть конфига main.cf относительно данного вопроса. А насчет понимания maillog- то опыта пока у мну не много, а инфу приходится собирать по крупицам. Вот щас пытаюсь вкурить.. что же значит "Envelope-to" в письме, а то там стоит адрес моего лок. пользователя, а отправитель и получатель вообще левые.
Добавлено: 2007-06-15 11:15:53
dikens3
Код: Выделить всё
smtpd_recipient_restrictions =
reject_unknown_recipient_domain,
permit_sasl_authenticated,
reject_unauth_pipelining,
reject_unauth_destination,
reject_non_fqdn_recipient,
reject_unlisted_recipient,
reject_non_fqdn_hostname,
reject_invalid_hostname,
reject_multi_recipient_bounce,
check_policy_service unix:private/policy
check_policy_service inet:127.0.0.1:10023
Envelope-to - это скрытые копии(рассылки короче)
Добавлено: 2007-06-15 11:46:53
kunaksergey
Вот часть моего конфига:
smtpd_recipient_restrictions =reject_unauth_pipelining,permit_sasl_authenticated,permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unlisted_recipient,check_recipient_access regexp:/etc/postfix/recipient_access,reject_unauth_destination,reject_non_fqdn_hostname,reject_invalid_hostname,reject_multi_recipient_bounce,permit
Но отсылка без TLS как работала так и работает. Кстати возможно ли, что из-за сбоя и повреждения каталога usr нарушилась конфигурация работы и терь такое происходит
ps.lissyara удали плыз. мое прев. сообщение от имени(гость.)
Добавлено: 2007-06-15 11:48:35
Alex Keda
не удалю.
ты же автоответчик не можешь отключить

Добавлено: 2007-06-15 11:54:53
Гость
>lissyara - ну е-мое. изменил почтовый ящик. "Ваш профиль не активный, активируйте через письмо ушедшее на е-mail" А ящика такого не существует. Ааа... Можно вернуть его обратно.. Я отключу оповещение о новых сообщениях- если это возможно.