exim: ratelimit - чё-то туплю

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

exim: ratelimit - чё-то туплю

Непрочитанное сообщение Alex Keda » 2009-12-04 9:51:45

Код: Выделить всё

deny    message         = Sender rate overlimit - $sender_rate / $sender_rate_period
         ratelimit       = 100 / 1h / strict / $sender_address_local_part
         condition       = ${if !match_local_part{$sender_address_local_part}{lsearch;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}
вот такая хренована в конфиге - для локальных пользователей.
работает. и исключения работают тоже.
Хочется большего.
в файле просто список:

Код: Выделить всё

srv1# more /usr/local/etc/exim/exclude_ratelimits
root
mailnull
хочеться чтобы был такой:

Код: Выделить всё

root: 100000
mailnull: 100000
vasya: 300
а вот кто в списке не найден - было дефолтовые 100
==========
собсно - непойму с какой стороны подойти - вопрос выборки параметровиз базы в доке слабо освещён...
да, муси нет. есть тока текстовые файлы.
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение dikens3 » 2009-12-04 19:32:56

Попробуй:

Код: Выделить всё

root: 100000
mailnull: 100000
vasya: 300
*:100
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Alex Keda » 2009-12-05 12:59:54

ага. вкурил.
если кому интересно будет:

Код: Выделить всё

        acl_check_not_smtp:
                warn    ratelimit       = ${lookup{$sender_address_local_part}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 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;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}

                # added by lissyara 2009-04-13 in 21:53 MSK
                deny    message         = Sender rate overlimit - $sender_rate / $sender_rate_period
                        ratelimit       = ${lookup{$sender_address_local_part}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 1h / strict / $sender_address_local_part
                        #condition      = ${if !match_local_part{$sender_address_local_part}{lsearch;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}

                accept

Код: Выделить всё

        acl_check_rcpt:

 ... some another acl's ...

                # added by lissyara for limit mail send
                warn    authenticated   = *
                        ratelimit       = ${lookup{$authenticated_id}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 1h / strict / $authenticated_id
                        log_message     = Authenticated sender rate $sender_rate / $sender_rate_period
#                       condition       = ${if !match_local_part{$authenticated_id}{lsearch;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}

                deny    authenticated   = *
                        ratelimit       = ${lookup{$authenticated_id}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 1d / strict / $authenticated_id
                        log_message     = Authenticated sender rate $sender_rate / $sender_rate_period
#                       #condition       = ${if !match_local_part{$authenticated_id}{lsearch;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}
в файле вперемешку мона юзать как локальные учётные записи, так и полные адреса отправителей.

Код: Выделить всё

srv1# more /usr/local/etc/exim/exclude_ratelimits
# limits messages per day

# system users
root:                   10000
mailnull:               10000

# some users
admin@dddd.ru:     200

# limit for all undefined users
*:                      100
Убей их всех! Бог потом рассортирует...

noname
проходил мимо

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение noname » 2010-10-17 16:06:46

С использованием $authenticated_id получается выставлять ограничения только для полного адреса, типа piter@example.com
А как сделать, чтобы ограничение срабатывало сразу для всех ящиков, принадлежащих системному пользователю?
Пробовал использовать $sender_ident, а он почему-то не сожержит в себе ничего.
Использую FreeBSD, exim 4.71

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Alex Keda » 2010-10-17 17:29:55

acl_check_not_smtp:
Убей их всех! Бог потом рассортирует...

noname
проходил мимо

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение noname » 2010-10-17 17:45:23

Alex Keda писал(а):acl_check_not_smtp:
Ага, тут работает.
И что, выходит что так как мне надо ограничить можно только для писем отправляемых через скрипты?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Alex Keda » 2010-10-17 20:05:30

нет. но вам надо строить базу всех доменов на сервере и их владельцев.
писать процедуру на перл по определению владельца.
и вот по нему, владельцу, делать ограничение.
в общем - ничего сложного. на пару дней писанины на перле
Убей их всех! Бог потом рассортирует...

noname
проходил мимо

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение noname » 2010-10-17 20:26:11

Спасибо за пояснения. Посмотрел доку как подключать перловые модули, прикольно.
Вроде бы все достаточно понятно.
Осталось перл освоить : :crazy:

Виктор
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-12-10 22:35:03

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Виктор » 2011-03-30 1:21:56

Alex Keda писал(а):ага. вкурил.
если кому интересно будет:

Код: Выделить всё

        acl_check_not_smtp:
                warn    ratelimit       = ${lookup{$sender_address_local_part}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 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;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}

                # added by lissyara 2009-04-13 in 21:53 MSK
                deny    message         = Sender rate overlimit - $sender_rate / $sender_rate_period
                        ratelimit       = ${lookup{$sender_address_local_part}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 1h / strict / $sender_address_local_part
                        #condition      = ${if !match_local_part{$sender_address_local_part}{lsearch;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}

                accept

Код: Выделить всё

        acl_check_rcpt:

 ... some another acl's ...

                # added by lissyara for limit mail send
                warn    authenticated   = *
                        ratelimit       = ${lookup{$authenticated_id}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 1h / strict / $authenticated_id
                        log_message     = Authenticated sender rate $sender_rate / $sender_rate_period
#                       condition       = ${if !match_local_part{$authenticated_id}{lsearch;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}

                deny    authenticated   = *
                        ratelimit       = ${lookup{$authenticated_id}lsearch*{/usr/local/etc/exim/exclude_ratelimits}} / 1d / strict / $authenticated_id
                        log_message     = Authenticated sender rate $sender_rate / $sender_rate_period
#                       #condition       = ${if !match_local_part{$authenticated_id}{lsearch;/usr/local/etc/exim/exclude_ratelimits} {yes}{no}}
в файле вперемешку мона юзать как локальные учётные записи, так и полные адреса отправителей.

Код: Выделить всё

srv1# more /usr/local/etc/exim/exclude_ratelimits
# limits messages per day

# system users
root:                   10000
mailnull:               10000

# some users
admin@dddd.ru:     200

# limit for all undefined users
*:                      100
Работает не корректно.
Создаю например в файле exclude_ratelimits, несколько ограничений, для разных пользователей:

Код: Выделить всё

srv1# more /usr/local/etc/exim/exclude_ratelimits
# limits messages per day

# system users

user1:                  3
user2:                  1000
...
root:                   10000

# some users

# limit for all undefined users
*:                      300
В итоге всё равно у всех пользователей ограничение прописаное под звёздочкой, т.е. 300 писем в час, не смотря на то, что прописано для некоторых пользователей.
В чём может быть проблема?

Виктор
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-12-10 22:35:03

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Виктор » 2011-03-31 12:41:29

Гуру exim'a, не ужели ни у кого нет ни каких идей, в чём может быть проблема?
Может конфиг exim'a показать или ещё что-то?

P.S. ОС CentOS 5.5 x86_64, Exim 4.75

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение blade_007 » 2011-03-31 22:41:47

log_message = Authenticated sender rate $sender_rate / $sender_rate_period
Согласно этой опции (см. выше) в лог пишутся данные о текущих лимитах пользователя.
У вас аутентифицированные пользователи? Если да, то добавьте логгирования в данную конструкцию, либо прогоните с дебагом (естественно, для пользователя, от которого будете отправлять, уменьшите значения до 2-3 писем в час) и смотрите в логи.

Виктор
проходил мимо
Сообщения: 9
Зарегистрирован: 2010-12-10 22:35:03

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Виктор » 2011-04-01 17:05:52

blade_007 писал(а):log_message = Authenticated sender rate $sender_rate / $sender_rate_period
Согласно этой опции (см. выше) в лог пишутся данные о текущих лимитах пользователя.
У вас аутентифицированные пользователи? Если да, то добавьте логгирования в данную конструкцию, либо прогоните с дебагом (естественно, для пользователя, от которого будете отправлять, уменьшите значения до 2-3 писем в час) и смотрите в логи.
1. Если быть точным, то Sender rate overlimit - $sender_rate / $sender_rate_period, при отправке через скрипт.
2. Да.
С дебагом пробовал прогонять, но на рабочем сервере, это просто не реально, т.к. слишком много данных проходит за секунду.

P.S. Вот конфиг exim'a:

Код: Выделить всё

VIRUS_SCAN = no
SPAMCBIN=__ISP_SPAMCBIN__
EXIMBIN=/usr/sbin/exim
log_selector =  \
        +all_parents \
        +lost_incoming_connection \
        +received_sender \
        +received_recipients \
        +tls_cipher +tls_peerdn \
        +smtp_confirmation \
        +smtp_syntax_error \
        +smtp_protocol_error
  
# CONFDIR=__ISP_CONFDIR__
# daemon_smtp_port = 25:465
# tls_certificate = CONFDIR/certificate.crt
# tls_privatekey = CONFDIR/certificate.key
# tls_on_connect_ports = 465

.ifdef MAILMAN_ENABLE
MAILMAN_HOME=__MAILMAN_HOME__
MAILMAN_WRAP=__MAILMAN_WRAP__
MAILMAN_USER=__MAILMAN_USER__
MAILMAN_GROUP=__MAILMAN_GROUP__
.endif

trusted_groups = mgrsecure
trusted_users = apache

domainlist local_domains = lsearch;/etc/exim/domains
domainlist dummy_domains =
hostlist relay_from_hosts = 127.0.0.1 : ip

domainlist relay_to_domains = lsearch;/etc/exim/domains
exim_user = exim
exim_group = exim

#.ifdef VIRUS_SCAN
#av_scanner = 
#.endif

never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
acl_not_smtp = acl_check_not_smtp

begin acl

	acl_check_not_smtp:
		warn ratelimit = ${lookup{$sender_address_local_part}lsearch*{/etc/exim/exclude_ratelimits}} / 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/exim/exclude_ratelimits} {yes}{no}}
		deny message = Sender rate overlimit - $sender_rate / $sender_rate_period
		    ratelimit = ${lookup{$sender_address_local_part}lsearch*{/etc/exim/exclude_ratelimits}} / 1h / strict / $sender_address_local_part
		    #condition = ${if !match_local_part{$sender_address_local_part}{lsearch;/etc/exim/exclude_ratelimits} {yes}{no}}
		accept
		
	acl_check_rcpt:
		warn authenticated = *
		    ratelimit = ${lookup{$authenticated_id}lsearch*{/etc/exim/exclude_ratelimits}} / 1h / strick / $authenticated_id
		    log_message = Authenticated sender rate $sender_rate / $sender_rate_period
		    condition = ${if !match_local_part{$authenticated_id}{lsearch;/etc/exim/exclude_ratelimits} {yes}{no}}
		deny authenticated = *
		    ratelimit = ${lookup{$authenticated_id}lsearch*{/etc/exim/exclude_ratelimits}} / 1h / strick / $authenticated_id
		    log_message = Authentacated sender rate $sender_rate / $sender_rate_period
		    #condition = ${if !match_local_part{$authenticated_id}{lsearch;/etc/exim/exclude_ratelimits} {yes}{no}}

		accept	hosts = net-lsearch;/etc/exim/whitelist
		
		deny	hosts = net-lsearch;/etc/exim/blacklist
				message = $host_data                        

		deny	message       = Restricted characters in address
				domains       = +local_domains
				local_parts   = ^[.] : ^.*[@%!/|]

		deny    message       = Restricted characters in address
				domains       = !+local_domains
				local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

		accept  local_parts   = postmaster
				verify        = recipient
				domains       = +local_domains

		require verify        = sender

#.ifdef VIRUS_SCAN
#        warn set acl_m3 = no
#        
#        warn set acl_m3 = ok
#            condition        = ${lookup{$domain}lsearch{/usr/local/ispmgr/etc/clamav_domain} {yes}{no}}
#            control          = fakedefer
#            
#        warn set acl_m3 = no
#            condition        = ${lookup{$domain}lsearch{/usr/local/ispmgr/etc/clamav_domain} {no}{yes}}
#.endif

		accept  hosts         = +relay_from_hosts
				control       = submission

		accept  authenticated = *
				condition     = ${if eq{${extract{5}{:}{${lookup{$authenticated_id}lsearch{/etc/exim/passwd}}}}}{no} {yes}{no}}
				condition     = ${if eq{${extract{3}{:}{${lookup{${domain:$authenticated_id}}lsearch{/etc/exim/domains}}}}}{no} {yes}{no}}
				control       = submission/domain=

		deny	message       = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text
				dnslists      = ${readfile {/etc/exim/dnsblists}{:}} 

		require message       = relay not permitted
				domains       = +local_domains : +relay_to_domains

		require verify        = recipient

.ifdef POSTGREY_SOCKET
		defer log_message = greylisted host $sender_host_address
			set acl_m0  = request=smtpd_access_policy\nprotocol_state=RCPT\nprotocol_name=${uc:$received_protocol}\nhelo_name=$sender_helo_name\nclient_address=$sender_host_address\nclient_name=$sender_host_name\nsender=$sender_address\nrecipient=$local_part@$domain\ninstance=$sender_host_address/$sender_address/$local_part@$domain\n\n
			set acl_m0  = ${sg{${readsocket{POSTGREY_SOCKET}{$acl_m0}{5s}{}{action=DUNNO}}}{action=}{}}
			message     = ${sg{$acl_m0}{^\\w+\\s*}{}}
			condition   = ${if eq{${uc:${substr{0}{5}{$acl_m0}}}}{DEFER}{true}{false}}
.endif

		accept

	acl_check_data:
#.ifdef VIRUS_SCAN
#        deny message = This message contains virus ($malware_name)
#        demime  = *
#        malware = *
#        condition = ${if eq{$acl_m3}{ok}{yes}{no}}
#.endif
		accept

begin routers
	dnslookup:
		driver = dnslookup
		domains = !+dummy_domains
		transport = remote_smtp
		ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
		self = pass
		no_more

	disabled_domains:
		driver = redirect
		condition = ${extract{3}{:}{${lookup{$domain}lsearch{/etc/exim/domains}}}}
		allow_fail = yes
		data = :fail: Domain disabled
		no_more

	disabled_users:
		driver = redirect
		condition = ${extract{5}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}
		allow_fail = yes
		data = :fail: User disabled
		no_more

	local_domains:
		driver = redirect
		data = ${quote_local_part:$local_part}@${extract{1}{:}{${lookup{$domain}lsearch{/etc/exim/domains}}}}
		cannot_route_message = Unknown user
		no_more

.ifdef SA_ENABLE
	spamcheck_router:
		no_verify
		condition = "${if and { {!def:h_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}}} {1}{0}}"
		driver = accept
		transport = spamcheck
.endif

	group_aliases:
		driver = redirect
		data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/aliases}}}}
		condition = ${if and{\
						{exists{/etc/exim/aliases}}\
						{eq {${extract{2}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/aliases}}}}} {group} }\
					} {yes} {no} }
		redirect_router = a_dnslookup
		pipe_transport = address_pipe

	aliases:
		driver = redirect
		data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/aliases}}}}
		condition = ${if exists{/etc/exim/aliases} {yes} {no} }
		pipe_transport = address_pipe

	local_users:
		driver = redirect
		condition = ${lookup {$local_part@$domain} lsearch {/etc/exim/passwd} {yes} {no} }
		data = $local_part@$domain
		redirect_router = autoreplay

.ifdef MAILMAN_ENABLE
	mailman:
		driver = accept
		require_files = MAILMAN_HOME/lists/$local_part/config.pck
		local_part_suffix_optional
		local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
		transport = mailman

	mailman_isp:
		driver = accept
		require_files = MAILMAN_HOME/lists/$local_part-$domain/config.pck
		local_part_suffix_optional
		local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
		transport = mailman_isp
.endif

	catchall_for_domains:
		driver = redirect
		headers_add = X-redirected: yes
		data = ${extract{2}{:}{${lookup{$domain}lsearch{/etc/exim/domains}}}}
		file_transport = local_delivery

	unknown_users:
		driver = redirect
		allow_fail = yes
		data = :fail: Unknown user
		no_more

	autoreplay:
		driver = accept
		condition = ${if exists{${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}/message.txt} {yes} {no}}
		retry_use_local_part
		transport = address_reply
		unseen

	localuser:
		driver = accept
		transport = local_delivery

# Same routers without autoreplay

	a_dnslookup:
		driver = dnslookup
		domains = !+dummy_domains
		transport = remote_smtp
		ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
		self = pass
		no_more

	a_disabled_domains:
		driver = redirect
		condition = ${extract{3}{:}{${lookup{$domain}lsearch{/etc/exim/domains}}}}
		allow_fail = yes
		data = :fail: Domain disabled
		no_more

	a_disabled_users:
		driver = redirect
		condition = ${extract{5}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}
		allow_fail = yes
		data = :fail: User disabled
		no_more

	a_local_domains:
		driver = redirect
		data = ${quote_local_part:$local_part}@${extract{1}{:}{${lookup{$domain}lsearch{/etc/exim/domains}}}}
		cannot_route_message = Unknown user
		redirect_router = a_dnslookup
		no_more

	a_aliases:
		driver = redirect
		data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/aliases}}}}
		condition = ${if exists{/etc/exim/aliases} {yes} {no} }
		redirect_router = a_dnslookup
		pipe_transport = address_pipe

	a_local_users:
		driver = accept
		transport = local_delivery
		condition = ${lookup {$local_part@$domain} lsearch {/etc/exim/passwd} {yes} {no} }

.ifdef MAILMAN_ENABLE
	a_mailman:
		driver = accept
		require_files = MAILMAN_HOME/lists/$local_part/config.pck
		local_part_suffix_optional
		local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
		transport = mailman

	a_mailman_isp:
		driver = accept
		require_files = MAILMAN_HOME/lists/$local_part-$domain/config.pck
		local_part_suffix_optional
		local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
		transport = mailman_isp
.endif

	a_catchall_for_domains:
		driver = redirect
		headers_add = X-redirected: yes
		data = ${extract{2}{:}{${lookup{$domain}lsearch{/etc/exim/domains}}}}
		file_transport = local_delivery
		redirect_router = a_dnslookup

begin transports
	remote_smtp:
		driver = smtp
		interface = ${extract{1}{;}{${lookup{$sender_address_domain}lsearch{/etc/exim/domainips}}}}
  
	local_delivery:
		driver = appendfile
		file = ${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}/mbox
		delivery_date_add
		envelope_to_add
		return_path_add
		mode = 0660
		quota = ${extract{3}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}M
		quota_warn_threshold = 75%
		use_lockfile = no
		no_mode_fail_narrower
		user = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}
		group = ${extract{2}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}
						  
	address_pipe:
		driver = pipe
		ignore_status
		return_output
		use_shell
									
	address_reply:
		driver = autoreply
		headers = ${readfile{${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/passwd}}}}/message.txt}}
		to = $sender_address

.ifdef MAILMAN_ENABLE
	mailman_isp: 
		driver = pipe
		command = MAILMAN_WRAP '${if def:local_part_suffix {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} {post}}' $local_part-$domain
		current_directory = MAILMAN_HOME
		home_directory = MAILMAN_HOME
		user = MAILMAN_USER
		group = MAILMAN_GROUP

	mailman:
		driver = pipe
		command = MAILMAN_WRAP '${if def:local_part_suffix {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} {post}}' $local_part
		current_directory = MAILMAN_HOME
		home_directory = MAILMAN_HOME
		user = MAILMAN_USER
		group = MAILMAN_GROUP
.endif

.ifdef SA_ENABLE
	spamcheck:
		debug_print = "T: spamassassin_pipe for $local_part@$domain"
		driver = pipe
		command = EXIMBIN -oMr spam-scanned -bS
		use_bsmtp
		transport_filter = SPAMCBIN
		home_directory = "/tmp"
		current_directory = "/tmp"
		user = exim
		group = exim
		return_fail_output
		message_prefix =
		message_suffix =
.endif


begin retry
*		*		F,2h,15m; G,16h,1h,1.5; F,4d,6h

begin rewrite
.ifdef MAILMAN_ENABLE
	\N^(.*<)?([^<]*)@([^>]*).*$\N   "${if exists{MAILMAN_HOME/lists/${sg{$2}{-$3.*}{-$3}}/config.pck} {${sg{$0} {-$3} {}}} {$0} }" S
	\N^(.*<)?([^<]*)@([^>]*).*$\N   "${if exists{MAILMAN_HOME/lists/${sg{$2}{-$3.*}{-$3}}/config.pck} {${sg{$0} {-$3} {}}} {$0} }"
.endif

begin authenticators


cram:
  driver = cyrus_sasl
  public_name = CRAM-MD5
  server_set_id = $1

plain:
  driver = cyrus_sasl
  public_name = PLAIN
  server_set_id = $1

login:
  driver = cyrus_sasl
  public_name = LOGIN
  server_set_id = $1
Может в нём надо что-то поправить?

P.P.S. До этого не совсем коректно поисал ситуацию, дело в том, что ограничение указаное под звёздочкой, распространяется абсолютно на всех пользователей, т.е. если кто-то один превысил, то уже ни кто не может отправить почту.

alexnadtoka
проходил мимо
Сообщения: 2
Зарегистрирован: 2014-01-24 3:06:08

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение alexnadtoka » 2014-01-24 3:15:44

Ребят, а может подскажите как модифицировать код от Виктора чтоб он считал количество отосланых писем а не просто аутентификации ?
по логике вещей он и должен был отрабатывать по количеству писем но на деле считает утентификации...
Я так думаю надо добавить опцию per_rcpt ...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Alex Keda » 2014-01-24 22:25:12

точное число писем только попозжа поди узнать мона - на стадии acl_check_not_smtp
но вы попробуйте, расскажете что получилось =)
Убей их всех! Бог потом рассортирует...

alexnadtoka
проходил мимо
Сообщения: 2
Зарегистрирован: 2014-01-24 3:06:08

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение alexnadtoka » 2014-01-24 22:30:55

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

*@domain.com : 100

Хотя по логике вещей должно работать

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: exim: ratelimit - чё-то туплю

Непрочитанное сообщение Alex Keda » 2014-01-26 0:37:51

в дефолтовом ISP конфиге нет ограничений на число получателей.
я одного словил, он с лимитом 5 писем в час рассылал по несколько тысяч - все в копиях были =))
лучше уж пусть считает =)
Убей их всех! Бог потом рассортирует...