Exim, stunnel, smtp
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- mike345
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-12-09 15:57:55
Exim, stunnel, smtp
Пара вопросов:
Настроил exim с курьером и системными пользователями по статье.
Установил stunnel и в конфигах курьера прописал коннект pop3 и imap только на 127.0.0.1.
Соответственно теперь коннект идет только через stunnel.
А вот как такое же с smtp провернуть немогу сообразить
Как сделать так, чтобы клиенты по smtp могли соединиться только через stunnel?
И еще, где и что прописать, чтобы клиенты могли отправлять почту только из локалки (сейчас отправляет из любого места по порту 25, что не есть гуд, а если снаружи 25 порт фаером закрыть, то и входящая почта зарежется)?
Настроил exim с курьером и системными пользователями по статье.
Установил stunnel и в конфигах курьера прописал коннект pop3 и imap только на 127.0.0.1.
Соответственно теперь коннект идет только через stunnel.
А вот как такое же с smtp провернуть немогу сообразить
Как сделать так, чтобы клиенты по smtp могли соединиться только через stunnel?
И еще, где и что прописать, чтобы клиенты могли отправлять почту только из локалки (сейчас отправляет из любого места по порту 25, что не есть гуд, а если снаружи 25 порт фаером закрыть, то и входящая почта зарежется)?
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Exim, stunnel, smtp
в статейном конфиге с любого места не могли отправлять.
==========
адресок статьи - скажи?
==========
адресок статьи - скажи?
Убей их всех! Бог потом рассортирует...
- mike345
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-12-09 15:57:55
Re: Exim, stunnel, smtp
http://www.lissyara.su/?id=1181
Вот сам конфиг. Выкладываю целиком, как есть...
Вот сам конфиг. Выкладываю целиком, как есть...
Код: Выделить всё
#!/bin/sh
# моя конфига экзма. Будь проклят тот день,
# когда мне пришла в голову мысль подписать
# русские поясния ко всем пунктам! :) Хоть и
# делал я это в первую очередь для себя -
# чтоб лучше понять его, но работа эта оказалась
# слишком масштабная и неблагодарная...
# Имя хоста. Используется в EHLO.
# Фигурирует в других пунктах, если они не заданы -
# типа qualify_domain и прочих..
# Если тут ничё не установлено (строка закомметрована)
# то используется то, что вернёт функция uname()
#primary_hostname = mx.lissyara.su
primary_hostname = my-domen.ru
# Делаем список локальных доменов. Далее этот
# список будет фигурировать в виде +local_domains
# В данном случае домены выбираются из БД MySQL. Также
# можно их просто перечислить через двоеточие. Есть интересная
# возможность, можно указать юзер@[хост] - lissyara@[222.222.4.5]
#domainlist local_domains = @
domainlist local_domains = my-domen.ru:mx.my-domen.ru:mail.my-domen.ru
# делаем список доменов с которых разрешены релеи.
# Далее этот список будет в виде +relay_to_domains
# Можно использовать символы подстановки, типа:
# .... = *.my.domen.su : !spam.my.domen.su : first.su
# тогда пропускается всё, что похоже на *.my.domen.su, но
# от spam.my.domen.su релеится почта не будет.
domainlist relay_to_domains =
# Составляем список хостов с которых разрешён неавторизованый
# релей. Обычно в нём находятся локальные сети, и локалхост...
# ЛокалХост в двух видах был внесён сознательно - пару раз
# сталкивался с кривым файлом /etc/hosts - результатом было
# непонимание `localhost` но пониманием 127.0.0.1/8
#hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/16:172.16.0.0/16
hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/16
# Вводим названия acl`ов для проверки почты. (В общем-то, это
# необязательно, если вы делаете открытый релей, или хотите
# принимать вообще всю почту с любого хоста для любых
# получателей... Тока потом не жалуйтесь что у Вас спам
# и провайдер выкатывает немеряный счёт :))
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
# Прикручиваем антивирус - при условии, что exim собран
# с его поддержкой. В качестве антивиря юзаем ClamAV,
# ибо - ПО должно быть свободным! :)
# Итак, указываем местоположение сокета clamd.
av_scanner = clamd:/var/run/clamav/clamd
# Адрес куда слать на проверку спама (SpamAssasin), но я
# это не юзаю. Не так много у меня спама...
# spamd_address = 127.0.0.1 783
# Имя домена добавляемое для локальных отправителей (реальных
# юзеров системы) т.е. почта отправляемая от root, будет от
# root@домен_указанный_здесь. Если пункт незадан, то используется
# имя хоста из `primary_hostname`. Логичней было бы написать здесь
# lissyara.su, но мне удобней иначе:
#qualify_domain = mx.lissyara.su
qualify_domain = my-domen.ru
# Имя хоста для ситуации, обратной предыдущей, - это имя домена
# добавляемое к почте для системных юзеров, ну и вообще для почты
# пришедшей на адрес типа `root`, `lissyara`, & etc... Если этот
# пункт незадан то используется значение полученное из
# предыдущего пункта - `qualify_domain`
#qualify_recipient = mx.lissyara.su
qualify_recipient = my-domen.ru
# А это как раз кусок вышеописанного анахронизма - про почту в
# виде user@[222.222.222.222] - принимать её или нет. По дефолту
# (когда строка закомментирована) значение - false. Если захотите
# поставить true то надо будет добавить в список доменов
# комбинацию @[] - она означает `все локальные адреса`
allow_domain_literals = false
# Пользователь от которого работает exim
exim_user = mailnull
# группа в кторой работает exim
exim_group = mail
# запрещаем работу доставки под юзером root - в целях безопасности
never_users = root
# Проверяем соответствие прямой и обратной зон для всех хостов.
# Тока зачем это нужно - даже и незнаю... Спам на этом не режется...
# Зато возможны проблемы - если сервер зоны скажет `сервер файлед`
# то почту от этого хоста Вы не получите :)
#host_lookup = *
# Тоже анахронизм (на самом деле, не такой уж анахронизм, но все давно
# забили на ident и закрыли файрволлом tcp:113...) Это проверка - Ваш
# хост спрашивает у удалённого, с которого было подключение, а кто
# собстно ко мне подключился на такой-то порт? Если на удалённом хосте
# работает identd - он может ответить (а может и не ответить - как
# настроить), скажет UID пользователя от которого установлено
# соединение, тип ОС, и имя пользователя. Теперь, понимаете, почему
# у всех оно зарублено и файрволлами позакрыто? :) Это же палево :)
# Тока на мой взгляд, если на сервере всё настроено правильно -
# то вовсе это и не страшно.
# Короче - если хостс поставить * то будет проверять все. Таймаут -
# если поставить 0 то не будет ждать ответа ни от кого. По
# вышеописанным причинам - отключаем
#rfc1413_hosts = *
rfc1413_query_timeout = 0s
# По дефолту, экзим отфутболивает все `неквалифицированные` адреса,
# состоящие тока из локальной части. Для того чтобы разрешить такие письма
# определённых хостов используются эти директивы:
# для `неквалифицированных` отправителей
sender_unqualified_hosts = +relay_from_hosts
# для `неквалифицированных` получателей
recipient_unqualified_hosts = +relay_from_hosts
# Интересный пункт, тока я не вполне понимаю его логику.
# Позволяет выполнять что-то типа - пришло сообщение на
# локальный ящик user%test.su@lissyara.su и
# переправляет его на user@test.su. Делается это для
# перечисленного списка доменов (* - все):
# percent_hack_domains = *
# Если сообщение было недоставлено, то генерится соощение
# об ошибке. Если сообщение об ошибке не удалось доставить
# то оно замораживается на указанный в этом пункте срок,
# после чего снова попытка доставить его. При очередной
# неудаче - сообщение удаляется.
ignore_bounce_errors_after = 45m
# Замороженные сообщения, находящиеся в очереди, дольше
# указанного времени удаляются и генерится сообщение
# об ошибке (при условии, что это не было недоставленное
# сообщение об ошибке :))
timeout_frozen_after = 15d
# собсно на этом штатный конфиг кончился, но
# меня-то это не устраивает... Поэтому пошли пункты,
# почёрпнутые из других источников.
# список адресов, через запятую, на которые засылаются
# сообщения о замороженных сообщениях (о замороженых
# уведомлениях о заморозке, сообщения не генерятся. - я
# надеюсь эта строка понятна :))
freeze_tell = admin@my-domen.ru
# Список хостов, почта от которых принимается, несмотря
# на ошибки в HELO/EHLO (тут указана моя подсеть)
helo_accept_junk_hosts = 192.168.0.0/16:172.16.0.0/16
# Через какое время повторять попытку доставки
# замороженного сообщения
auto_thaw = 1h
# Приветствие сервера
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"
# Максимальное число одновременных подключений по
# SMTP. Рассчитывать надо исходя из нагрузки на сервер
smtp_accept_max = 50
# максимальное число сообщений принимаемое за одно соединение
# от удалённого сервера (или пользователя). C числом 25
# я имел проблемы тока один раз - когда у меня три дня лежал
# инет и после его подъёма попёрли мессаги. Но у меня не так
# много почты - всего 30 пользователей.
smtp_accept_max_per_connection = 25
# чё-то про логи и борьбу с флудом - я так понимаю -
# максимальное число сообщений записываемых в логи
smtp_connect_backlog = 30
# максимальное число коннектов с одного хоста
smtp_accept_max_per_host = 20
# Ход ладьёй - для увеличения производительности,
# директория `spool` внутри, разбивается на
# директории - это ускоряет обработку
split_spool_directory = true
# Если у сообщения много адресатов на удалённых хостах,
# то запускатеся до указанного числа максимально число
# параллельных процессов доставки
remote_max_parallel = 15
# при генерации сообщения об ошибке прикладывать
# не всё сообщение, а кусок (от начала) указанного
# размера (иногда полезно и целиком - в таком случае
# просто закомментируйте эту строку)
return_size_limit = 70k
# размер сообщения. У меня стоит относительно большой
# размер (`относительно` - потому, что на большинстве
# хостов оно ограничено 2-5-10мб, либо стоит анлим.)
message_size_limit = 64M
# разрешаем неположенные символы в HELO (столкнулся
# с этим случайно - имя фирмы состояло из двух слов
# и какой-то раздолбай домен обозвал my_firme_name
# прям с подчёркиваниями... Виндовые клиенты при
# соединении радостно рапортовали о себе
# `vasya.my_firme_name` ну а экзим их футболил :))
helo_allow_chars = _
# Принудительная синхронизация. Если отправитель
# торопится подавать команды, не дождавшись ответа,
# то он посылается далеко и надолго :) Немного,
# спам режется.
smtp_enforce_sync = true
# Выбираем, что мы будем логировать
# + - писать в логи,
# - - Не писать в логи.
# +all_parents - все входящие?
# +connection_reject - разорваные соединения
# +incoming_interface - интерфейс (реально - IP)
# +lost_incoming_connections - потеряные входящие
# соединения
# +received_sender - отправитель
# +received_recipients - получатель
# +smtp_confirmation - подтверждения SMTP?
# +smtp_syntax_error - ошибки синтаксиса SMTP
# +smtp_protocol_error - ошибки протокола SMTP
# -queue_run - работа очереди (замороженные мессаги)
log_selector = \
+all_parents \
+connection_reject \
+incoming_interface \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
-queue_run
# Убираем собственную временную метку exim`a из логов, её ставит
# сам syslogd - нефига дублировать
syslog_timestamp = no
### конфигурация ACL для входящей почты
begin acl
# Эти правила срабатывают для каждого получателя
acl_check_rcpt:
# принимать сообщения которые пришли с локалхоста,
# не по TCP/IP
accept hosts = :
# Запрещаем письма содержащие в локальной части
# символы @; %; !; /; |. Учтите, если у вас было
# `percent_hack_domains` то % надо убрать.
# Проверяются локальные домены
deny message = "incorrect symbol in address"
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
# Проверяем недопустимые символы для
# нелокальных получателей:
deny message = "incorrect symbol in address"
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
# Принимаем почту для постмастеров локальных доменов без
# проверки отправителя (я закомментировал, т.к. это -
# основной источник спама с мой ящик).
accept local_parts = postmaster
domains = +local_domains
# Запрещщаем, если невозможно проверить отправителя
# (отсутствует в списке локальных пользователей)
# У себя я это закоментил, по причине, что некоторые
# железяки (принтеры, & etc) и программы (Касперский, DrWEB)
# умеют слать почту, в случае проблем но не умеют ставить
# нужного отправителя. Такие письма эта проверка не пускает.
# require verify = sender
# Запрещщаем тех, кто не обменивается приветственными
# сообщениями (HELO/EHLO)
deny message = "!my_test! HELO/EHLO require by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
# Принимаем сообщения от тех, кто аутентифицировался:
# Вообще, большинство конфигов в рунете - это один и тот же
# конфиг написанный Ginger, в котором этот пункт расположен
# внизу. Но при таком расположении рубятся клиенты с adsl,
# ppp, и прочие зарезанные на последующих проверках. Но это
# жа неправильно! Этом мои пользователи из дома! Потому
# я это правило расположил до проверок.
accept authenticated = *
# Рубаем нах, тех, кто подставляет свой IP в HELO
deny message = "Your IP in HELO - access denied!"
hosts = * : !+relay_from_hosts : !81-196.lissyara.su
condition = ${if eq{$sender_helo_name}\
{$sender_host_address}{true}{false}}
# Рубаем тех, кто в HELO пихает мой IP (2500 мудаков за месяц!)
deny condition = ${if eq{$sender_helo_name}\
{$interface_address}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "main IP in your HELO! Access denied!"
# Рубаем тех, кто в HELO пихает только цифры
# (не бывает хостов ТОЛЬКО из цифр)
deny condition = ${if match{$sender_helo_name}\
{\N^\d+$\N}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "can not be only number in HELO!"
# Рубаем тех, кто не пишет отправителя
# deny condition = ${if eq{$sender_address}{}{yes}{no}}
# hosts = !127.0.0.1 : !localhost : *
# message = "А какого HELO пустое?! Не по RFC..."
## Рубаем тех, кто не пишет отправителя (пробел)
# deny condition = ${if match{$sender_address}{\N^\s+$\N}{yes}{no}}
# hosts = !127.0.0.1 : !localhost : *
# message = "А какого HELO пустое (тока пробелы)?! Не по RFC..."
# Рубаем тех, кто не пишет отправителя
# deny condition = ${if eq{$sender_address}{}{yes}{no}}
# hosts = !127.0.0.1 : !localhost : *
# message = "Where sender of this mail?!"
# Рубаем хосты типа *adsl*; *dialup*; *pool*;....
# Нормальные люди с таких не пишут. Если будут
# проблемы - уберёте проблемный пункт (у меня клиенты
# имеют запись типа asdl-1233.zone.su - я ADSL убрал...)
deny message = "your hostname is bad (adsl, poll, ppp & etc)."
condition = ${if match{$sender_host_name} \
{adsl|dialup|pool|peer|dhcp} \
{yes}{no}}
# Задержка. (это такой метод борьбы со спамом,
# основанный на принципе его рассылки) На этом рубается
# почти весь спам. Единственно - метод неприменим на
# реально загруженных MTA - т.к. в результате ему
# приходится держать много открытых соединений.
# но на офисе в сотню-две человек - шикарный метод.
#
# более сложный вариант, смотрите в статье по exim и
# курьер имап. Т.к. там метод боле умный (просто правил
# больше :), то можно и на более загруженные сервера ставить)
warn
# ставим дефолтовую задержку в 20 секунд
set acl_m0 = 30s
# warn
# ставим задержку в 0 секунд своим хостам и
# дружественным сетям (соседняя контора :))
# hosts = +relay_from_hosts:213.234.195.224/28:80.253.9.18/32
# set acl_m0 = 0s
warn
# пишем в логи задержку (если оно вам надо)
logwrite = Delay $acl_m0 for $sender_host_name \
[$sender_host_address] with HELO=$sender_helo_name. Mail \
from $sender_address to $local_part@$domain.
delay = $acl_m0
# Проверка получателя в локальных доменах.
# Если не проходит, то проверяется следующий ACL,
# и если непрошёл и там - deny
accept domains = +local_domains
endpass
message = "In my mailserver not stored this user"
verify = recipient
# Проверяем получателя в релейных доменах
# Опять-таки если не проходит -> следующий ACL,
# и если непрошёл и там - deny
accept domains = +relay_to_domains
endpass
message = "main server not know how relay to this address"
verify = recipient
# Рубаем тех, кто в блэк-листах. Серваки перебираются
# сверху вниз, если не хост не найден на первом, то
# запрашивается второй, и т.д. Если не найден ни в одном
# из списка - то почта пропускается.
deny message = "you in blacklist - $dnslist_domain --> $dnslist_text"
dnslists = opm.blitzed.org : \
cbl.abuseat.org : \
bl.csma.biz : \
dynablock.njabl.org
# Разрешаем почту от доменов в списке relay_from_hosts
accept hosts = +relay_from_hosts
# Если неподошло ни одно правило - чувак явно ищет
# открытый релей. Пшёл прочь. :)
deny message = "relay not permitted"
# Тут идут ACL проверяющие содержимое (тело) письма.
# Без них будут пропускаться все сообщения.
acl_check_data:
# Проверяем письмо на вирусы
deny malware = *
message = "In e-mail found VIRUS - $malware_name"
# Если есть необходимость - тут проверки на спам
# Пропускаем остальное
accept
# чё делаем с почтой
begin routers
# Поиск маршрута к хосту в DNS. Если маршрут не найден в DNS -
# то это `унроутабле аддресс`. Не проверяются локальные
# домены, 0.0.0.0 и 127.0.0.0/8
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
# В качестве файла альясов используется стандартный файл альясов.
# Ребилдить БД командой newaliases не надо - т.к. в данном случае
# используется не БД а именно текстовый файл.
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
user = mailnull
group = mail
file_transport = address_file
pipe_transport = address_pipe
# Это специфический транспорт для адресов сгенерённых форвардингом для
# доставки в файл, pipe или для авто-ответов... Используется файло в
# хомяке, для перенаправления почты...
userforward:
driver = redirect
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
file = $home/.forward
# allow_filter
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
condition = ${if exists{$home/.forward} {yes} {no} }
# Этот роутер проверяет локальный юзер или нет. Если в нём будет
# ошибка (юзер не найден) то он выдаст мессагу "Unknown user".
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user1
# начинаются транспорты - как доставляем почту
begin transports
# Доставка на удалённые хосты - по SMTP
remote_smtp:
driver = smtp
# Транспорт для доставки почты локальным адресатам. Ввиду отсутствия в файле
# /etc/passwd поля для указания пути к почте, используется хомяк.
local_delivery:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = /usr/home/${local_part}/Maildir
# directory = /var/mail/${local_part}
directory_mode = 770
envelope_to_add
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0660
# Это транспорт для доставки через трубу по адресам сгенерённым
# форвардингом или альясингом. Если эта pipe генерит стандартный вывод,
# возвращается отправителью с руганью в виде этого вывода. Установив
# return_fail_output вместо return_output можно добиться чтобы отлупы
# шли тока в случае ошибок, а не просто ругани.
address_pipe:
driver = pipe
return_output
# Транспорт для доставки сгенерённой альясингом или форвардингом.
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
# Транспорт для автоответов
address_reply:
driver = autoreply
# Начинаются повторы недоставленных писем.
begin retry
# Этот кусок я не трогал. Думаю разработчики лучше знают,
# какие тут должны быть цифирьки. Если же вы это знаете
# лучше их - меняйте. Хотя... А какого, если Вы такой
# умный, читаете этот мануал? Может ну, их, цифирьки, а? :)
# Address or Domain Error Retries
# ----------------- ----- -------
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
# преобразование адресов. У меня такого нету.
begin rewrite
# Секция авторизации при отправке писем. Ввиду того,
# что почтовых клиентов много, и все всё делают
# по-своему, то и механизмов авторизации три...
begin authenticators
# следующие два пункта написаны мною, и ручаться могу тока за один - который
# оутлук авторизует.
plain:
driver = plaintext
public_name = PLAIN
server_prompts = :
server_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}}
server_set_id = $auth2
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
server_set_id = $auth1
# есть ещё така хрень - но она тока для нешифрованных паролей.
# А системные - зашифрованы. Летучая мышь - пролетает...
#cram_md5:
# driver = cram_md5
# public_name = CRAM-MD5
# server_secret = "тут кондишен :)"
# server_set_id = $1
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Exim, stunnel, smtp
Закроешь 25 порт входящая почта зарежется.mike345 писал(а):И еще, где и что прописать, чтобы клиенты могли отправлять почту только из локалки (сейчас отправляет из любого места по порту 25, что не есть гуд, а если снаружи 25 порт фаером закрыть, то и входящая почта зарежется)?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Exim, stunnel, smtp
Код: Выделить всё
hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/16
Убей их всех! Бог потом рассортирует...
- mike345
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-12-09 15:57:55
Re: Exim, stunnel, smtp
Через RDP захожу на работу, и с того компа через мой сервер отправляется на другой совсем адрес...
А вот imap, наоборот, по таймауту отваливается...
А вот imap, наоборот, по таймауту отваливается...
- mike345
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-12-09 15:57:55
Re: Exim, stunnel, smtp
Както невнятно я предыдущий пост написал
Вот что в логах:
89.xx.xx.13 (mail.domen2.ru, обратная зона неправильно прописана - xx.moscow.comstar.ru) - адрес шлюза откуда подсоединяюсь (IP компа на котором email клиент в удаленной локалке - 192.168.100.5)
192.168.100.36 - это адрес сервера с exim в моей локалке на который проброшены mail-порты от шлюза 80.xx.xx.179 (mx.my-domen.ru)
А это заголовки письма:
Где засада? почему mx.my-domen.ru отправляет почту от xx.moscow.comstar.ru [89.xx.xx.13] при
Вот что в логах:
Код: Выделить всё
exim[2197]: no IP address found for host xx.moscow.comstar.ru (during SMTP connection from [89.xx.xx.13] I=[192.168.100.36]:25)
exim[2197]: 1JcKaD-0000ZR-Pv <= admin@my-domen.ru H=([127.0.0.1]) [89.xx.xx.13] I=[192.168.100.36]:25 P=esmtpa A=plain:admin S=636 id=47E261DD.7000006@my-domen.ru from <admin@my-domen.ru> for mike@nm.ru
exim[2198]: 1JcKaD-0000ZR-Pv => mike@nm.ru R=dnslookup T=remote_smtp H=mx.pochta.ru [82.204.219.220] C="250 OK id=3050519456-1206018821.541120"
exim[2198]: 1JcKaD-0000ZR-Pv Completed
192.168.100.36 - это адрес сервера с exim в моей локалке на который проброшены mail-порты от шлюза 80.xx.xx.179 (mx.my-domen.ru)
А это заголовки письма:
Код: Выделить всё
Received: from mx5.ks.pochta.ru(mx5.ks.pochta.ru [82.204.219.164])
by node6.ks.pochta.ru with POCHTA.RU LMTP SERVER
id 3012516784-1206018821.460112
Thu, 20 Mar 2008 16:13:41 +0300
Received: from mx.my-domen.ru(my-domen.ru [80.xx.xx.179])
by mx5.ks.pochta.ru with POCHTA.RU MAILER
id 3050519456-1206018821.541120
envelope-from admin@my-domen.ru
Thu, 20 Mar 2008 16:13:41 +0300
X-AS-Feat-ID: 43401332,43401375,43402112
Received: from [89.xx.xx.13] (helo=[127.0.0.1])
by my-domen.ru with esmtpa (Exim 4.69 (FreeBSD))
(envelope-from <admin@my-domen.ru>)
id 1JcKaD-0000ZR-Pv
for mike@nm.ru; Thu, 20 Mar 2008 16:13:25 +0300
Message-ID: <47E261DD.7000006@my-domen.ru>
Date: Thu, 20 Mar 2008 16:08:45 +0300
From: "admin@my-domen.ru" <admin@my-domen.ru>
User-Agent: Thunderbird 2.0.0.12 (Windows/20080213)
MIME-Version: 1.0
To: mike@nm.ru
Subject: test22
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Antivirus: avast! (VPS 080320-0, 20.03.2008), Outbound message
X-Antivirus-Status: Clean
X-SpamTest-Envelope-From: admin@my-domen.ru
X-SpamTest-Group-ID: 00000000
X-SpamTest-Info: Profiles 2445 [Mar 19 2008]
X-SpamTest-Method: none
X-SpamTest-Rate: 10
X-SpamTest-Status: Not detected
X-SpamTest-Status-Extended: not_detected
X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0278], KAS30/Release
Код: Выделить всё
hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/16
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Exim, stunnel, smtp
Подключение к EXIM с IP-Адреса 89.xx.xx.13 (Я так понял Exim у тебя в локалке с IP=192.168.100.36 и слушает 25 порт)exim[2197]: no IP address found for host xx.moscow.comstar.ru (during SMTP connection from [89.xx.xx.13] I=[192.168.100.36]:25)
Пользователь аутентифицирован под именем admin. (ввёл правильные логин и пароль)exim[2197]: 1JcKaD-0000ZR-Pv <= admin@my-domen.ru H=([127.0.0.1]) [89.xx.xx.13] I=[192.168.100.36]:25 P=esmtpa A=plain:admin S=636 id=47E261DD.7000006@my-domen.ru from <admin@my-domen.ru> for mike@nm.ru
Письмо ушло в мир.exim[2198]: 1JcKaD-0000ZR-Pv => mike@nm.ru R=dnslookup T=remote_smtp H=mx.pochta.ru [82.204.219.220] C="250 OK id=3050519456-1206018821.541120"
Сессия завершена.exim[2198]: 1JcKaD-0000ZR-Pv Completed
1-й этап - Аутентификация PLAIN под пользователемГде засада? почему mx.my-domen.ru отправляет почту от xx.moscow.comstar.ru
[89.xx.xx.13]
2-й этап - Что можно аутентифицированному пользователю? (Иначе зачем аутентифицироваться?)
А вот и ответ на твой вопрос из твоего конфига:
Т.е. всё что пожелает.accept authenticated = *
P.S. Если нужно запретить не локальным пользователям аутентифицироваться, тогда используй опцию:
Код: Выделить всё
auth_advertise_hosts
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- mike345
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-12-09 15:57:55
Re: Exim, stunnel, smtp
Большое спасибо! Будем ковырять.
И еще один вопрос.
Сейчас возможна отправка как c SSL, так и без.
Я так понимаю, что SSL шифрует процесс передачи логина и пароля и само соединение. По крайней мере снифер логин и пароль при коннекте через ssl не отлавливает.
Как сделать так, чтобы сервер принимал почту от других серверов по 25 порту, а клиенты могли работать только с портом 465?
(Используется stunnel)
И еще один вопрос.
Сейчас возможна отправка как c SSL, так и без.
Я так понимаю, что SSL шифрует процесс передачи логина и пароля и само соединение. По крайней мере снифер логин и пароль при коннекте через ssl не отлавливает.
Как сделать так, чтобы сервер принимал почту от других серверов по 25 порту, а клиенты могли работать только с портом 465?
(Используется stunnel)
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Exim, stunnel, smtp
Перенастроить клиентов на порт с SSL.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- mike345
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-12-09 15:57:55
Re: Exim, stunnel, smtp
Это понятно.
Но если некоторые сотрудники сами будут дома настраивать клиеты, то они могут настроить и без ssl, а это палево пароля
Поэтому хочется, чтобы у них такой возможности небыло. Тоесть, настроить сервер так, чтобы он не принимал подключения от клиентов без ssl еще до ввода пароля.
Это возможно?
Но если некоторые сотрудники сами будут дома настраивать клиеты, то они могут настроить и без ssl, а это палево пароля
Поэтому хочется, чтобы у них такой возможности небыло. Тоесть, настроить сервер так, чтобы он не принимал подключения от клиентов без ssl еще до ввода пароля.
Это возможно?
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Exim, stunnel, smtp
http://www.lissyara.su/?id=1214
http://www.lissyara.su/?id=1233#33.3Только через stunnel наверное не будет работать. Хотя хз, я не пробовал.
P.S. Читать документацию тоже не помешает. Эта опция включает обязательное TLS шифрование для всех. (И для тех кто через WEB-Интерфейс работать собирается)
http://www.lissyara.su/?id=1233#33.3
Код: Выделить всё
Если вы хотите информировать о доступности AUTH лишь когда подключение зашифровано с использованием TLS, вы можете использовать тот факт, что значение этой опции раскрывается, установкой типа такой:
auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}
Если “$tls_cipher” пуста, сессия не шифрованная, и результат раскрытия пуст, таким образом, не соответствуя никаким хостам. Иначе, разультат раскрытия “*”, соответствующая всем хостам.
P.S. Читать документацию тоже не помешает. Эта опция включает обязательное TLS шифрование для всех. (И для тех кто через WEB-Интерфейс работать собирается)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- mike345
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-12-09 15:57:55
Re: Exim, stunnel, smtp
Еще раз спасибо.
Вроде получилось. Правда экзим с ssl пересобрать пришлось. Как оформлю выложу конфиги, может еще кому пригодится...
Вроде получилось. Правда экзим с ssl пересобрать пришлось. Как оформлю выложу конфиги, может еще кому пригодится...