Показаны сообщения с ярлыком exim. Показать все сообщения
Показаны сообщения с ярлыком exim. Показать все сообщения

пятница, 5 сентября 2014 г.

Exim::sender white list

Для защиты от рассылки спама из дырявых php движков типа Joomla.

в основной секции:
addresslist whitelist_senders = wildlsearch;/etc/exim4/whitelist_senders

в секции acl rcpt первое правило:
 
  deny message = "user prohibited"
  !verify = sender/callout
  !senders = +whitelist_senders


список /etc/exim4/whitelist_senders вида:

sender_address_local_partN@domainX
sender_address_local_partY@domainY
sender_address_local_partX@domainN

четверг, 31 января 2013 г.

exim ratelimit


С форума лиссяры:


acl_not_smtp = acl_check_not_smtp

 .....

acl_check_not_smtp:
        warn  ratelimit = ${lookup{$sender_address_local_part}lsearch*{/etc/exim4/userwhitelist}} / 1h / strict / $sender_address_local_part
        log_message     = Sender rate $sender_rate / $sender_rate_period

        condition      = ${if !match_local_part{$sender_address_local_part}{lsearch;/etc/exim4/userwhitelist} {yes}{no}}

        deny    message    = Sender rate overlimit - $sender_rate / $sender_rate_period
        ratelimit       = ${lookup{$sender_address_local_part}lsearch*{/
etc/exim4/userwhitelist}} / 1h / strict / $sender_address_local_part
         condition      = ${if !match_local_part{$sender_address_local_part}{lsearch;/etc/exim4/userwhitelist} {yes}{no}}

accept

.....

acl_smtp_rcpt = acl_check_rcpt

.....

  warn    authenticated   = *
          ratelimit       = ${lookup{$authenticated_id}lsearch*{/etc/exim4/userwhitelist}} / 1h / strict / $authenticated_id
          log_message     = Authenticated sender rate $sender_rate / $sender_rate_period

           condition       = ${if !match_local_part{$authenticated_id}{lsearch;/etc/exim4/userwhitelist} {yes}{no}}

  deny    authenticated   = *
          ratelimit       = ${lookup{$authenticated_id}lsearch*{/etc/exim4/userwhitelist}} / 1d / strict / $authenticated_id
          log_message     = Authenticated sender rate $sender_rate / $sender_rate_period

           condition       = ${if !match_local_part{$authenticated_id}{lsearch;/etc/exim4/userwhitelist} {yes}{no}}

------------------------------------------

thanatos:/usr/sbin# cat /etc/exim4/userwhitelist
# limits messages per day

# system users
root:                   10000
mailnull:               10000

# some users
www-data@domain.ru:     100

# limit for all undefined users
*:                      200





или по простецки:



begin acl

        acl_not_smtp:
                deny message = Sender rate overlimit - $sender_rate / $sender_rate_period
                ratelimit = 50 / 1h / leaky
                accept

        acl_check_rcpt:
                deny message = Sender rate SMTP overlimit - $sender_rate / $sender_rate_period
                ratelimit = 100 / 1h / leaky

                accept  hosts = net-lsearch;/etc/exim/whitelist



 в /etc/exim/whitelist список хостов.

понедельник, 17 декабря 2012 г.

мелкие полезности


Удалить запись из retry db

post1:/etc/bind# exinext googlemail.com
Transport: aspmx3.googlemail.com [2607:f8b0:4001:c02::1a] error 101: Network is unreachable
first failed: 07-Dec-2012 17:28:10
last try: 12-Dec-2012 08:04:44
next try: 12-Dec-2012 14:04:44

post1:/etc/bind# exim_dumpdb /var/spool/exim4 retry | grep googlemail.com
T:aspmx3.googlemail.com:2607:f8b0:4001:c02::1a 101 77 Network is unreachable

post1:/etc/bind# exim_fixdb /var/spool/exim4 retry
Modifying Exim hints database /var/spool/exim4/db/retry
> T:aspmx3.googlemail.com:2607:f8b0:4001:c02::1a
12-Dec-2012 08:04:44
0 error number: 101 Network is unreachable
1 extra data: 77
2 first failed: 07-Dec-2012 17:28:10
3 last try: 12-Dec-2012 08:04:44
4 next try: 12-Dec-2012 14:04:44
5 expired:  no
> d
deleted


exipick - показывает сообщения в очереди экзима.
exipick -z - показывает замороженные сообщения
exipick -i - показывает ID сообщений
exipick -o S - показывает сообщения с возрастом >S, где S задаётся в секундах
exim4 -Mrm ID - удаляет из очереди сообщение с указанным ID
В итоге получаем:
exipick -zi | xargs exim4 -Mrm //удалит из очереди все замороженные сообщения
exipick -i | xargs exim4 -Mrm //удалит все сообщения из очереди
exipick -io 86400 | xargs exim4 -Mrm //удалит из очереди сообщения, с возрастом более недели

Число сообщений в очереди
/usr/sbin/exim -bpc

Удаление "замороженных" сообщений
/usr/sbin/exim -bp | awk '$6~"frozen" { print $3 }' | xargs exim -Mrm

Принудительная рассылка всей почты в очереди (flush)
/usr/sbin/exim -qff -v -C /etc/exim.conf &

"Заморозить" почту по email
/usr/sbin/exiqgrep -i -f email | xargs exim -Mf

Удалить почту по email
/usr/sbin/exiqgrep -i -f email | xargs exim -Mrm

Удалит замороженные более 1 часа
for i in `exipick -o 3600 | awk '{print $3}'`; do exim4 -Mrm $i; done




PS
exim cmd line options: http://www.lissyara.su/doc/exim/4.62/the_exim_command_line/

понедельник, 27 августа 2012 г.

exim autoreply


Автоответчик с шаблонами в Mysql
http://subnets.ru/blog/?p=650

Простой автоответчик
http://odminblog.ru/autoreply-for-exim/

среда, 22 августа 2012 г.

exim4 logging


В основной секции log_file_path


Возможные значения:

log_file_path=syslog syslog only
log_file_path=:syslog syslog and default path
log_file_path=syslog : /usr/log/exim_%s syslog and specified path
log_file_path=/usr/log/exim_%s specified path only



переведенная дока по ссылке: http://www.lissyara.su/doc/exim/4.62/log_files/

четверг, 16 июня 2011 г.

How To Automatically Add A Disclaimer To Outgoing Emails

Как автоматически добавить подпись ко всем отправляемым письмам.
Типовое решение altermime, входит в текущий debian/stable

Связка с exim4, в моем случае подпись добавляется выборочно.

1. создать дополнительный транспорт с фильтром:

remote_smtp_filter:
  driver = smtp
  transport_filter = /usr/bin/altermime --multipart-insert \
                     --disclaimer-html=/etc/exim4/disclaimer.htm
\
                    --disclaimer-b64=/etc/exim4/disclaimer.base64 \
                   --disclaimer=/etc/exim4//disclaimer.txt \
                   --input=- --force-for-bad-html --htmltoo --log-syslog


Теоретически "--disclaimer" не должен работать в связке с  --input=-, на практике нормально отрабатывает на ASCII письмах.

"--disclaimer-b64" работает на plain text non ASCII, т.е. все что на русском.

" --force-for-bad-html" спэшел фо Microsoft Outlook.
Последнему необходимо перегнать pst в utf8, иначе чудо не произойдет

С "--xheader" бреет: "Error: reading/writing from stdin/stdout not implemented for --xheader,--disclaimer, or --replace." Про disclaimer врет конечно, а с xheader реально обломал.

"--log-syslog" воткнуть обязательно, иначе будет играть в молчанку.

2. Поправить роутер:

dnslookup:
    driver = dnslookup
     domains = ! +local_domains : ! domain.ru
    transport = ${if eq {$sender_address}{xxxxx@domain.ru} \
                                      {remote_smtp_filter}{remote_smtp}}

ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more