Страница 1 из 1
Exim - not free relay!
Добавлено: 2008-09-13 16:24:56
Liv
Доброго времени суток всем!
Я только недавно начал изучать Exim и уже проникся огромным уважением

к нему (особенно после qmail

)! Но он оказался настолько

обширным, что его не освоишь за пару дней!... А время не терпит!.. В настоящее время мой сервер является открытым релеем и от этого надо избавиться весьма срочно!
Поэтому у меня есть несколько вопросов к уважаемым гуру:
- Есть ли вероятность того, что открытый релей был заложен при компилляции? Если да, то какую опцию нужно обязательно указать при перекомпилляции Exim'а чтобы запретить релей по-умолчанию?
В qmail это делалось с помощью перекомпилляции с использованием специальных патчей! Там всё делается с помощью этих патчей и если кумыл скомпиллирован для специального использования в составе с панелью управления хостингом, то с ним почти ничего нельзя сделать!!
- Есть ли какая-то команда/опция/директива для запрета релеинга? Если есть, то какая и где её прописать (в каком месте конфига)? Если этого нет, то расскажите как это указать в ACL?
- Как можно найти (проконтролировать) релей, т.е. обнаружить пользователей, пересылающих спам?
Простите, если мои вопросы кажутся вам ламерскими и не отправляйте, пожалуйста, читать доки и хелпы - я уже указал, что нужно срочно закрыть открытый релей! Заранее благодарю всех ответивших!

Re: Exim - not free relay!
Добавлено: 2008-09-13 16:39:29
dikens3
acl_smtp_rcpt показывай.
Re: Exim - not free relay!
Добавлено: 2008-09-13 16:41:49
lerryc
если настраивал по кофигам с этого сайта - проверь что последняя команда после всех провек - deny а не acept
проверить можно по логам - от кого пришло и кому ушло
заметишь что "не наш" пересылает наружу - проверяй условия акцептов
Re: Exim - not free relay!
Добавлено: 2008-09-13 17:04:26
Liv
dikens3 писал(а):
acl_smtp_rcpt показывай
вот:
Код: Выделить всё
#!!# ACL that is used after the RCPT command
check_recipient:
# Exim 3 had no checking on -bs messages, so for compatibility
# we accept if the source is local SMTP (i.e. not over TCP/IP).
# We do this by testing for an empty sending host field.
# Log all senders' rates
warn ratelimit = 0 / 1h / strict
log_message = Sender rate $sender_rate / $sender_rate_period
accept hosts = :
accept hosts = +skipsmtpcheck_hosts
# Accept bounces to lists even if callbacks or other checks would fail
warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes
condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \
{yes}{no}}
accept condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \
{yes}{no}}
# Accept bounces to lists even if callbacks or other checks would fail
warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes
condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \
{yes}{no}}
accept condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \
{yes}{no}}
#if it gets here it isn't mailman
# deny must be on the same line as hosts so it will get removed by buildeximconf if turned off
deny hosts = ! +senderverifybypass_hosts
! verify = sender/callout=60s
accept hosts = *
authenticated = *
#if they poped before smtp we just accept
accept condition = ${if match_ip{$sender_host_address}{iplsearch;/etc/relayhosts}{1}{${if eq{$sender_host_address}{127.0.0.1}{1}{0}}}}
add_header = ${if exists{/etc/eximpopbeforesmtpwarning}{${perl{popbeforesmtpwarn}{$sender_host_address}}{}}
accept hosts = +relay_hosts
add_header = ${if exists{/etc/eximpopbeforesmtpwarning}{${perl{popbeforesmtpwarn}{$sender_host_address}}{}}
#recipient verifications are now done after smtp auth and pop before smtp so the users get back bounces instead of
# a clogged outbox in outlook
deny message = JunkMail rejected - $sender_fullhost is in an RBL, see $dnslist_text
dnslists = zen.spamhaus.org : bl.spamcop.net
hosts = +backupmx_hosts
warn
dnslists = zen.spamhaus.org : bl.spamcop.net
set acl_m8 = 1
set acl_m9 = "JunkMail rejected - $sender_fullhost is in an RBL, see $dnslist_text"
warn
condition = ${if eq {${acl_m8}}{1}{1}{0}}
ratelimit = 0 / 1h / strict / per_conn
log_message = "Increment Connection Ratelimit - $sender_fullhost because of RBL match"
drop
condition = ${if eq {${acl_m8}}{1}{1}{0}}
message = ${acl_m9}
warn
log_message = "Detected Dictionary Attack (Let $rcpt_fail_count bad recipients though before engaging)"
condition = ${if > {${eval:$rcpt_fail_count}}{4}{yes}{no}}
set acl_m7 = 1
warn
condition = ${if eq {${acl_m7}}{1}{1}{0}}
ratelimit = 0 / 1h / strict / per_conn
log_message = "Increment Connection Ratelimit - $sender_fullhost because of Dictionary Attack"
drop
condition = ${if eq {${acl_m7}}{1}{1}{0}}
message = "Number of failed recipients exceeded. Come back in a few hours."
#recipient verifications are required for all messages that are not sent to the local machine
#this was done at multiple users requests
require verify = recipient
message = "The recipient cannot be verified. Please check all recipients of this message to verify they are valid. Details: $acl_verify_message"
# The only problem with this setup is that if the message is for multiple users on the same server
# and they are on different unix accounts, the settings for the first recipient which has spamassassin enabled will be used.
# This shouldn't be a problem 99.9% of the time, however its a very small price to pay for a massive speed increase.
warn domains = ! ${primary_hostname} : +local_domains
condition = ${if <= {$message_size}{200K}{${if eq {${acl_m0}}{1}{0}{${if exists{/etc/global_spamassassin_enable}{1}{${if exists{${extract{5}{:}{${lookup{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}lsearch{/etc/passwd}{$value}}}}/.spamassassinenable}{1}{0}}}}}}}{0}}
set acl_m0 = 1
set acl_m1 = ${lookup{$domain}lsearch*{/etc/userdomains}{$value}}
warn domains = ${primary_hostname}
condition = ${if <= {$message_size}{200K}{${if eq {${acl_m0}}{1}{0}{${if exists{/etc/global_spamassassin_enable}{1}{${if exists{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/passwd}{$value}}}}/.spamassassinenable}{1}{0}}}}}}}{0}}
set acl_m0 = 1
set acl_m1 = $local_part
accept domains = +relay_domains
deny message = $sender_fullhost is currently not permitted to \
relay through this server. Perhaps you \
have not logged into the pop/imap server in the \
last 30 minutes or do not have SMTP Authentication turned on in your email client.
Честно говоря, я ещё не вполне въезжаю во всё это! Но последняя команда и есть дени!...
Re: Exim - not free relay!
Добавлено: 2008-09-13 17:19:58
Liv
да, наверно надо пояснения...
skipsmtpcheck_hosts:
hostlist skipsmtpcheck_hosts = net-iplsearch;/etc/skipsmtpcheckhosts
На сервере - пустой файл
backupmx_hosts:
hostlist backupmx_hosts = lsearch;/etc/backupmxhosts
На сервере - пустой файл
relay_domains:
domainlist relay_domains = lsearch;/etc/localdomains : lsearch;/etc/secondarymx
Первый - это список доменов на сервере, второй пустой (вторичных mx нет)
senderverifybypass_hosts:
hostlist senderverifybypass_hosts = net-iplsearch;/etc/senderverifybypasshosts
На сервере этот файл содержит только 1 строку:
127.0.0.1
Re: Exim - not free relay!
Добавлено: 2008-09-13 17:36:35
dikens3
Я так и не понял где у тебя почта принимается из внешнего мира, а вообще открытого релея вроде нет.
Почему у тебя есть такое предположение?
Re: Exim - not free relay!
Добавлено: 2008-09-13 17:48:31
Liv
Потому, что я попробовал отправлять письма без какой-либо авторизации, без логина и пароля... просто указав майл сервер!
Получение не возможно, но отправка - без проблем!
А нужно сделать обязательную авторизацию!
Re: Exim - not free relay!
Добавлено: 2008-09-13 18:19:43
Liv
Вот, для примера соединение telnet из дома
Код: Выделить всё
220-server2.*****.ru ESMTP Exim 4.69 #0 Sat, 13 Sep 2008 19:12:22 +0400
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
helo mail.system-admin.ru
250 server2.******.ru Hello mail.system-admin.ru [193.19.134.96]
mail from:<>
250 OK
rcpt to:<******@rambler.ru>
250 Accepted
quit
221 server2.*****.ru closing connection
Звёздочки я нарисовал - не хочу увеличения спамеров!
Как видите: зашёл и отправил (бы) без проблем!....
Re: Exim - not free relay!
Добавлено: 2008-09-13 18:37:30
dikens3
Ну так попробовал бы отправить с пустым отправителем.
В полезных скриптах есть пример для отладки, используй его и посмотри в каком условии происходит приём (accept) твоего письма. (В данном случае с пустым отправителем)
Вот это неадекватный случай и возможно в нём кроется проблема.
Сделай просто:
Re: Exim - not free relay!
Добавлено: 2008-09-13 23:36:34
Liv
dikens3 писал(а):
Ну так попробовал бы отправить с пустым отправителем.
Попробовал - отправляет!!!
dikens3 писал(а):
В полезных скриптах есть пример для отладки, используй его и посмотри в каком условии происходит приём (accept) твоего письма. (В данном случае с пустым отправителем)
Сделал 3 теста (смотрите логи в архиве )
testlog.zip
- Логи тестовых отправлений
- (15.37 КБ) 29 скачиваний
- testlog_empty - отправление от <> на локальный адрес - похоже ушло...
- testlog_local - отправление user@mail.ru на локальный адрес - ушло...
- testlog_remote - отправление user@mail.ru на удалённый адрес (мой ящик на рамблере) - имитация релея (?) - вроде как не ушло....
dikens3 писал(а):
Сделай просто:
Это не помогает!
Re: Exim - not free relay!
Добавлено: 2008-09-14 17:08:38
dikens3
http://test.nettools.ru/
Этим тестируй свой релей.
Одна сессия, один лог. Нафига всё свалил в одну кучу?
По логам всё нормально вроде.
Re: Exim - not free relay!
Добавлено: 2008-09-14 18:30:33
Liv
dikens3 писал(а):http://test.nettools.ru/
Этим тестируй свой релей.
Одна сессия, один лог. Нафига всё свалил в одну кучу?
По логам всё нормально вроде.
Я уже говорил в
соседней ветке о достоинстве этого сервиса!...
А в том архиве как раз три лога на три сессии!...
Re: Exim - not free relay!
Добавлено: 2008-09-14 19:43:02
dikens3
Вероятно ты ещё не совсем понимаешь работу SMTP(ESMTP) протокола.
Re: Exim - not free relay!
Добавлено: 2008-09-15 12:53:05
Liv
Ну,... я и не говорил, что я асс в этом деле...

Потому сразу к спецам и обратился! Хотя уже начал кое-что понимать в экзиме и, думаю, скоро уже и сам решу все вопросы настройки...