avatar Ubuntu Postfix как почтовый шлюз для MS Exchange 2003

Как отфильтровать спам из потока электронных писем поступающих на почтовый сервер, с одной стороны-сложная задача, с другой, есть определенные признаки по которым можно определить что хост отправитель, участвует в рассылке нежелательной корреспонденции.


Схема работы:


Рассмотрим схему подробнее:
Есть Linux сервер, который открыт для приема корреспонденции из интернет, есть сервер Windows 2003/2008- версия не важна, с установленной ролью Active Directory и почтовый сервер Exchange. Exchange может жить как на одном сервере с AD( такое обычно бывает в небольших организациях) или на выделенном сервере (тут все зависит от IT-инфраструктуры)
Значит, сама выгрузка данных о получателях, т.е. список почтовых ящиков пользователей будет происходить из AD, благо, когда в системе с AD установлен Exchange, информация об e-mail адресе пользователя, добавляется автоматически в свойства учетной записи Active Directory.

Для примера мы будим использовать имя домена example.com
Предполагается, что сервер Ubuntu уже установлен и обновлен до последней актуальной версии.

Часть первая, подготовка Postfix

Для начала, устанавливаем необходимые пакеты
sudo apt-get install postfix 


редактируем основной конфигурационный файл postfix, предварительно залогинившись как супер-пользователь

sudo su

nano /etc/postfix/main.cf

Нас интересуют следующие строки (находим их и редактируем, так как указанно ниже, адрес example.com меняем на свой)

myhostname = mail.example.com # полное имя хоста
mydomain = example.com # имя домена, от имени которого приходит почта


mydestination = mail.example.com, localhost, example.com

mynetworks = 127.0.0.0/8, 192.168.0.20 [::ffff:127.0.0.0]/104 [::1]/128 

список доверенных сетей из которых разрешена неавторизированная отправка, сервер win2k3 имеет адрес 192.168.0.20, этой директивой мы разрешаем отправку почты наружу через postfix только непосредственно серверу с Exchange на борту, даже клиенты локальной сети должны отправлять почту только через Exhcange.

virtual_mailbox_domains = example.com

transport_maps = hash:/etc/postfix/transport
virtual_transport = hash:/etc/postfix/transport

Эти пункты отвечают за то, куда будет передаваться принятая почта.

В конце конфига добавляем

bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
minimal_backoff_time = 180s
maximal_backoff_time = 12h

strict_rfc821_envelopes = yes
disable_vrfy_command = yes
smtpd_delay_reject = yes
smtpd_helo_required = yes
anvil_rate_time_unit = 60s
smtp_always_send_ehlo = yes
smtpd_hard_error_limit = 1
smtpd_recipient_limit = 1
smtpd_sasl_security_options = noanonymous

anvil_rate_time_unit = 60s
smtpd_client_connection_count_limit = 5
smtpd_client_connection_rate_limit = 6
smtpd_client_message_rate_limit = 6
smtpd_client_recipient_rate_limit = 1

smtpd_client_restrictions =
    reject_unauth_pipelining,
    permit_sasl_authenticated,
    permit_mynetworks,
    check_helo_access regexp:/etc/postfix/helo,
    reject_unknown_client_hostname,
    check_client_access regexp:/etc/postfix/dul_checks,
    permit

smtpd_helo_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unknown_client,
   # проверяем IP на присутствие в спам-листах
    reject_rbl_client cbl.abuseat.org,
    reject_rbl_client sbl-xbl.spamhaus.org,
    reject_rbl_client sbl.spamhaus.org,
    reject_rbl_client dnsbl.njabl.org,
    check_helo_access regexp:/etc/postfix/helo,
    reject_invalid_helo_hostname,
    reject_non_fqdn_helo_hostname,
    reject_unknown_helo_hostname,
    check_sender_access hash:/etc/postfix/access,
    check_recipient_access hash:/etc/postfix/recipients,
    permit

smtpd_sender_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    permit

smtpd_recipient_restrictions =
    reject_unauth_pipelining,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_invalid_hostname,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    permit


сохраняем конфиг и выходим в консоль.
Подробно на всех пунктах останавливаться не буду, их назначение легко найти в гугле,
Все содержимое можно просто скопировать как есть.
Далее нам необходимо создать следующие файлы:
nano /etc/postfix/transport 

содержащий
example.com  smtp:[192.168.0.20] 


отвечает за то, куда нужно передавать принятую почту.
где: smtp:серер получатель, IP в [ ] говорит о том, что не нужно проверять его ДНС зону, а передавать почту на этот адрес как есть, а там разберутся!

nano /etc/postfix/recipients

Это наш список получателей, который экспортируется из Exchange
Содержит записи вида:

username@example.com OK


где: username-имя пользователя в AD c mailbox, example.com -домен получателя, OK –директива, как поступить с письмом, в нашем случае – пропустить.
Сведения о получателях будут содержаться именно в этом файле, можно конечно сделать опрос exchange в реальном времени и у меня даже где-то был скрипт, но все руки не доходили, тут еще появляется ненужная нагрузка на контроллер домена, а оно вам надо?! Причем если одновременно долбиться несколько сот тыс. отправителей, все эти запросы посыпятся и на AD. Это и потерянное время на ожидание ответа, от винды и нагрузка на процессор уже 2х серверов. По моему глубокому мнению, проще запустить скрипт в заданное время, выгрузинт список получателей, и перебросит их в файл, как часто его запускать-решать вам, у меня он запускается 2 раза в день 12 и 15 часов — чаще не требуется.

Едем дальше:
nano /etc/postfix/helo


/([0-9]{1,3}(\.|-)){3}[0-9]{1,3}/i      REJECT IP-able helo SPAM!
/localhost/i    REJECT you are SPAM!
/example.com/i REJECT you are not in my local networks-SPAM!

В этом файле используются регулярные выражения, для фильтрации команды helo
Если отправитель представился IP адресом-то это нарушение и почту от него, не принимают, тоже самое со вторым пунктом localhost –нормальный сервер не может представляться так, либо там админ криворукий (пускай настраивает нормально) либо на другом конце просто сильно запаршивевший компьютер, который является частью ботнета, рассылающего спам. Ну и последнее если отправитель представляется — example.com, ну не может на другом конце быть наш сервер, это на 100% спам- можно смело заворачивать письмо. Команда REJECT указывает на то, что сделать при выполнении условий.
Да к стати, после идет ответ сервера, с указанием причины отказа в принятии почты, туда можно вписать что-то обидное ;) и это сообщение увидят на том конце. Но это дело воспитания конкретного индивидуума.

nano /etc/postfix/access

содержание данного файла схоже с предыдущим, но тут уже используются явные указатели, этим файлом можно, например, блокировать отдельные ящики пользователей.
bad_user@example.com REJECT user is note available
example.com  REJECT you are not in my local networks
Внешний IP нашего сервера REJECT you are not in my local networks
localhost       REJECT you are SPAM!


nano /etc/postfix/dul_checks

Проверка на принадлежность к различным сетям.
Содержит регулярные выражения различных сетей и как следствие, признаков что это не почтовые сервера, а зараженные клиентские компьютеры, а если там действительно работают нормальные сервера, то почту можно отправлять и через релей провайдера или на худой конец обратиться в тех поддержку чтобы прописали обратную DNS зону.

/([0-9]*-){3}[0-9]*(\..*){2,}/i         REJECT 553 SPAM_ip-add-rr-ess_networks
/([0-9]*\.){4}(.*\.){3,}.*/i    REJECT 553 SPAM_ip-add-rr-ess_networks
/.*\.broadband\.hu/i    REJECT 553 SPAM_broadband-hu
/client.*\..*\..*/i     REJECT 553 SPAM_CLIENT
/cable.*\..*\..*/i      REJECT 553 SPAM_CABLE
/pool.*\..*\..*/i       REJECT 553 SPAM_POOL
/dial.*\..*\..*/i       REJECT 553 SPAM_DIAL
/ppp.*\..*\..*/i        REJECT 553 SPAM_PPP
/dslam.*\..*\..*/i      REJECT 553 SPAM_DSLAM
/dhcp.*\..*\..*/i       REJECT 553 SPAM_DHCP
/[\.-]dsl.*\..*\..*/i   REJECT 553 SPAM_DSL
/[ax]dsl.*\..*\..*/i    REJECT 553 SPAM_XDSL
/.*([0-9]*\.){4}cableonline\.com\.mx/i  REJECT 553 SPAM_IP-cableonline-com-mx
/.*\.([0-9]*\.){4}ip\.holtonks\.net/i   REJECT 553 SPAM_ip-holtonks-net
/([0-9]*-){3}[0-9]*\.fibertel\.com\.ar/i        REJECT 553 SPAM_IP-fibertel-com-ar
/.*[0-9]*-[0-9]*\.fibertel\.com\.ar/i   REJECT 553 SPAM_IP-fibertel-com-ar
/[0-9]*\.user\.veloxzone\.com\.br/i     REJECT 553 SPAM_user-veloxzone-com-br
/[0-9]*\.customer\.alfanett\.no/i       REJECT 553 SPAM_customer-alfanett-no
/.*([0-9]*-){3}[0-9]*\.telecom\.net\.ar/i       REJECT 553 SPAM_host-telecom-net-ar
/.*(-[0-9]*){2}\.telpol\.net\.pl/i      REJECT 553 SPAM_host-telpol-net-pl
/(.*\.){2}maxonline\.com\.sg/i  REJECT 553 SPAM_host-maxonline-com-sg
/(.*-){2}.*\.fairgamemail\.us/i REJECT 553 SPAM_host-fairgamemail-us
/[0-9]*[0-9]*-\.wispnet\.net/i  REJECT 553 SPAM_host-wispnet-net
/.*-.*(\..*){2}\.ne\.jp/i       REJECT 553 SPAM_host-ne-jp
/[0-9]*\..*\.ne\.jp/i   REJECT 553 SPAM_h09t-ne-jp
/(.*\.){3}ad\.jp/i      REJECT 553 SPAM_host-ad-jp
/(.*\.){4}revip\.asianet\.co\.th/i      REJECT 553 SPAM_revip-asianet-co-th
/[0-9]*\..*\.virtua\.com\.br/i  REJECT 553 SPAM_host-virtua-com-br
/([0-9]*-){3}[0-9]*\.exatt\.net/i       REJECT 553 SPAM_host-exatt-net
/([0-9]*\.){4}ip\.alltel\.net/i REJECT 553 SPAM_host-ip-alltel-net
/[0-9]{6,}\.chello\.../i        REJECT 553 SPAM_host-chello
/.*[0-9]*\..*\.chello\.../i     REJECT 553 SPAM_host-chello-xx
/.*\..*\.t-dialin\.net/i        REJECT 553 SPAM_t-dialin-net
/.*\..*\.t-ipconnect\.de/i      REJECT 553 SPAM_t-ipconnect-de
/([0-9]*-){2,3}[0-9]*\..*\.cgocable\.net/i      REJECT 553 SPAM_host-cgocable-net
/.*\..*\.shawcable\.net/i       REJECT 553 SPAM_host-shawcable-net
/p[0-9]*\.mp[0-9]*\.aaanet\.ru/i        REJECT 553 SPAM_aaa_modem_pool
/([0-9]*-){2}[0-9]*\.ip\.adsl\.hu/i     REJECT 553 SPAM_ip-adsl-hu
/([0-9]{1,3}\.){2}broadband4\.iol\.cz/i REJECT 553 SPAM_broadband-iol-cz


В результате у нас должно получиться 5 файлов,
их необходимо переконвертировать в фалы базы данных используемые posfix.

postmap /etc/postfix/transport
postmap /etc/postfix/recipients
postmap /etc/postfix/helo
postmap /etc/postfix/access
postmap /etc/postfix/dul_checks

если все проходит без ошибок, двигаемся дальше.
Это что касается ubuntu…

Чась вторая: Настройка Win2k3


По моему, глубокому мнению, не имеет смысла пускать сервер с передовой, в тыл нашей обороны, по этой же причине мы не будем давать лазить в системе и опрашивать ее, а разрешим ей видеть только то, что ей необходимо для работы, не более.
Как это можно реализовать на практике?! Postfix будет видеть только тот список получателей который мы ему сами дадим -уже готовый!
На сервере Windows, через планировщик заданий, мы будем запускать скрипт который будет экспортировать список пользователей в файл recipients.

Схема работы системы Win:
В AD заводится пользователь с минимальными правами (без почтового ящика), с правом доступа, лишь в одну папку. Назовем его, для примера, postfix с паролем 1234567.
Через планировщик заданий создается новое задание с частотой выполнения нужной вам.
На просторах сети был найден скрипт, который не полностью соответствовал нашим задачам, я его слегка допилил и теперь он делает на 100% то, что нужно.
Сам скрипт написан на VBS, назовем его mail.vbs — такого содержания:
( прошу просмотреть его очень внимательно, конкретно “objOutputFileName.Writeline( objADobject.Mail & “ там есть комментарии)

Option Explicit

Dim StartTime,EndTime: StartTime = Now ' For seeing how long the script takes to run
Dim objShell
Dim objFSO
Const ScriptVersion = "1.01"
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo "StartTime =  " &  StartTime
' ***************************************************************** '
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim objRootDSE
Dim objDomain
Dim objContainer
Dim objOrganizationalUnit
Dim strOutputFileName, objOutputFileName, GarbageRC
Dim intUserObjectCountAll, intUserObjectCountSelected

strOutputFileName = "c:\путь\ к расшаренной папке\ для пользователя postfix\recipients"

Set objOutputFileName = objFSO.OpenTextFile(strOutputFileName, ForWriting, True)
intUserObjectCountAll = 0
intUserObjectCountSelected = 0

Set objRootDSE = GetObject("LDAP://RootDSE")
Set objDomain = GetObject("LDAP://" & objRootDSE.Get("DefaultNamingContext"))

Call Sub_EnumOUs(objDomain.ADsPath)

Sub Sub_EnumOUs(sADsPath)
Set objContainer = GetObject(sADsPath)
objContainer.Filter = Array("OrganizationalUnit")
For Each objOrganizationalUnit in objContainer
WScript.Echo "Checking OU: " & objOrganizationalUnit.ADsPath
Wscript.Echo " User Object Count: " & intUserObjectCountAll
Sub_EnumUsers(objOrganizationalUnit.ADsPath)
Sub_EnumOUs(objOrganizationalUnit.ADsPath)
Next
End Sub

Sub Sub_EnumUsers(sADsPath)
Dim objADobject
Set objContainer = GetObject(sADsPath)
objContainer.Filter = Array("User")
For Each objADobject in objContainer
If objADobject.Class = "user" Then
intUserObjectCountAll = intUserObjectCountAll + 1
If objADobject.Mail <> "" Then
objOutputFileName.Writeline( objADobject.Mail & "	OK" )  ' *** "[TAB]OK"- разделение с помощью табуляции **** '
intUserObjectCountSelected = intUserObjectCountSelected + 1
End If
End If
Next
End Sub

objOutputFileName.Close


' ***************************************************************** '


Чтобы создать задание в планировщике, в строку инициализации нашего скрипта пишем:
c:\windows\system32\cscript.exe c:\путь к папке со скриптом\mail.vbs

ВСЕ это одной строкой!
Ну и выставляем время, когда он будет выполнятся и как часто.
Далее создаем директорию и открываем в нее доступ по сети пользователю postfix.

Часть третья –заключительная.

Теперь задача, чтобы наш linux сервер мог увидеть содержимое сетевой папки с файлом recipients.
Я предпочел монтировать расшаренную директорию при старте системы, по этому, запихал команду монтирования в файл /etc/rc.local.
Также необходимо создать в директории media директорию win. Почему именно win- чтобы, через несколько месяцев, можно было понять, что это такое и откуда оно взялось.
Сначала ставим пакет smbfs -без него наша директория не примонтируется.
sudo apt-get install smbfs


Редактируем файл rc.local
nano /etc/rc.local

И перед строкой exit0 вписываем команду монтирования шары:
mount -t smbfs //192.168.0.20/antispam /media/win/ -o iocharset=utf8,user=postfix,pass=1234567


где: 192.168.0.20-ip сервера с exchange.
antispam-директория в которой лежит файл recipients.
/media/win/-куда должна примонтироваться виндовая шара.
iocharset=utf8-кодировака, если случайно в ней появятся папки с русскими названиями, то они будут читаемы, а не ???????????, да и хуже от этого не будет, в общем делаем сразу как надо и спим спокойно.
user=postfix,pass=1234567
–имя пользователя и пароль для доступа к шаре.

Перезагружаем Ubuntu лезем в /media/win/ видим ее содержимое виндовой шары- значит все отлично.

Далее создадим небольшой скрипт который будет переписывать файл recipients
в директорию /etc/postfix, а затем будет экспортировать его в базу данных postfix и перезагружать почтовик.

#!/bin/bash
cp /media/win/recipients /etc/postfix/
postmap /etc/postfix/recipients
/etc/init.d/postfix restart

Создаем задание в CRON которое будет выполняться через 3 мин после выполнения задания на Win2k3-на всякий случай. (например 12:03 и в 15:03)

Вот и все!

Что мы получили

Аниспам фильтр, с высокой степенью эффективности-до его установки я каждое утро разгребал по 240-260 писем сейчас наблюдаю, только нужную почту.
Единственный ящик в который спам, все таки доходит, это ящик на который приходят заявки для нашей конторы, но их число не превышает 3-4 шт.
Безопасность — в случае компрометации сервера Linux шлюз легко восстанавливается, Да и злоумышленник не получит доступа к корреспонденции, т.к ее на нем просто нет, она сразу передается Exchange-если проходит все проверки.
Кроссплатформенность-нет смысла собирать модули с поддержкой всяких экзотических функций.

Время на развертывание-1 час с условием того, что Интернет шустрый, да и если все скопировать как есть. Система протестирована в течении года-работает без сбоев.
А что еще можно прикрутить к нему- решать вам. Там можно сделать и грейлистинг и установить spamassassin в общем нет предела фантазии, но нужно соблюдать меру.
Ну и на последок, судя по комментариям настройка вызвала сложности, по этому выкладываю копию конфигов с боевого сервера, все домены в нем заменены на example.org от вас требуется- заменить только IP адреса собственно архив
Есть что добавить?! Прошу в комментарии…

96 комментариев

avatar
Приветствую! Всё настроил по данной статье… Вижу в логах то что почта фильтруется ставится в очередь но на Exchange Зараза не поступает в чем беда может быть?!!!
avatar
Postfix ищет сервер Exchange по IP или по доменному имени, если по данному мануалу — (example.com smtp:[192.168.0.20]) лучше коннектиться по IP, так надежнее.
Если есть желание подключаться по доменному имени, то в DNS необходимо добавить IP вашего контроллера домена, для коректного разрешения имен.
avatar
example.com 10.0.1.15
Таким макаром…
avatar
IP дожнен быть в [10.0.1.15] -это важно, чтобы почтфикс не проверял обратную DNS зону.
avatar
Да ксати, вы уверены что postfix поставил письма в очередь? По все вариантам он должен сразу передавать на IP без проверки принял их сервер или нет. Если Exchange недоступен письмо грохается.

Провеить достпность самого exchange сервера, он работает? внутри эксченджа письма ходят?
avatar
Установил Webmin в настройках postfixa есть пункт Mail Queue вот там та письма и зависают дальше не идут… Exchange работает проблем с ним нету… Может в самом Exchange надо какие настройки делать?!!!
avatar
webmin в топку!
Настраивать ручками-тем более что все расписано от и до. Все эти админ-панели от лукавого.
avatar
Через вебмин я ни чего и не настраивал я просто его прикрутил для визуального наблюдения а в конфиги он ко мне даже не залазил через него ни чего не сохранял и не изменял касательно Postfixa…
Вот такое содержание транспорта должно быть: example.com [10.0.1.15]. Такое стоит толку нет!!!
avatar
Новичок я в никсах тока начинаю переходить на них… Так что извиняйте!!!
avatar
В логах присутствует такая ошибка что бы это могло значит, куда копать?!!!
warning: connect to transport private/[10.0.1.15]: No such file or directory
avatar
Поробуйте в этом выражении между example.com и smtp:[192.168.0.20] поставить не пробел, а табуляцию, тоесть нажать TAB вместо SPACE.
avatar
ну и проверить, пингуется IP 10.0.1.15 c Linux сервера.
avatar
В общем с начала моей настройки прошло две недели до сих пор не могу разобраться!!! Решил выложить конфиг, доги может кто что подскажет…
Выслал письмо с адреса pochta_moya@mail.ru на адрес S.Shabanov@example.com лог очистил предварительно…

main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate «delayed mail» warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = example.com # Имя моего домена
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = example.com, antigate.example.com, localhost.example.com, localhost
#antigate — имя моего шлюза данной машины
mynetworks = 127.0.0.0/8, 10.0.1.15 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
virtual_mailbox_domains = example.com # Имя моего домена

transport_maps = hash:/etc/postfix/transport
virtual_transport = hash:/etc/postfix/transport

#----------------------------------------------------------------------------

bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
minimal_backoff_time = 180s
maximal_backoff_time = 12h

strict_rfc821_envelopes = yes
disable_vrfy_command = yes
smtpd_helo_required = yes
anvil_rate_time_unit = 60s
smtp_always_send_ehlo = yes
smtpd_hard_error_limit = 1
smtpd_recipient_limit = 1
smtpd_sasl_security_options =

anvil_rate_time_unit = 60s
smtpd_client_connection_count_limit = 5
smtpd_client_connection_rate_limit = 6
smtpd_client_message_rate_limit = 6
smtpd_client_recipient_rate_limit = 1

smtpd_client_restrictions =
reject_unauth_pipelining,
permit_sasl_authenticated,
permit_mynetworks,
check_helo_access regexp:/etc/postfix/helo,
reject_unknown_client_hostname,
check_client_access regexp:/etc/postfix/dul_checks,
permit

smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client dnsbl.njabl.org,
check_helo_access regexp:/etc/postfix/helo,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname,
check_sender_access hash:/etc/postfix/access,
check_recipient_access hash:/etc/postfix/recipients,
permit

smtpd_sender_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit

mail.log
Jul 28 23:51:16 antigate postfix/smtpd[25312]: connect from f268.mail.ru[217.69.128.189]
Jul 28 23:51:16 antigate postfix/trivial-rewrite[25316]: warning: do not list domain nabrk.kz in BOTH mydestination and virtual_mailbox_domains
Jul 28 23:51:17 antigate postfix/smtpd[25312]: E4F311C08CA: client=f268.mail.ru[217.69.128.189]
Jul 28 23:51:18 antigate postfix/cleanup[25317]: E4F311C08CA: message-id=<E1QmUjQ-0004Kf-00.camics-mail-ru@f268.mail.ru>
Jul 28 23:51:18 antigate postfix/qmgr[25310]: E4F311C08CA: from=<moya_pochta@mail.ru>, size=1657, nrcpt=1 (queue active)
Jul 28 23:51:18 antigate postfix/trivial-rewrite[25316]: warning: do not list domain example.com in BOTH mydestination and virtual_mailbox_domains
Jul 28 23:51:18 antigate postfix/local[25318]: E4F311C08CA: to=<S.Shabanov@example.com>, relay=local, delay=1.4, delays=1.3/0.01/0/0.14, dsn=5.1.1,
status=bounced (unknown user: «s.shabanov»)
Jul 28 23:51:18 antigate postfix/cleanup[25317]: 562CE1C08DC: message-id=<20110728175118.562CE1C08DC@example.com>
Jul 28 23:51:18 antigate postfix/bounce[25319]: E4F311C08CA: sender non-delivery notification: 562CE1C08DC
Jul 28 23:51:18 antigate postfix/qmgr[25310]: 562CE1C08DC: from=<>, size=3353, nrcpt=1 (queue active)
Jul 28 23:51:18 antigate postfix/qmgr[25310]: E4F311C08CA: removed
Jul 28 23:51:18 antigate postfix/smtpd[25312]: disconnect from f268.mail.ru[217.69.128.189]
Jul 28 23:51:19 antigate postfix/smtp[25320]: 562CE1C08DC: to=<moya_pochta@mail.ru>, relay=mxs.mail.ru[94.100.176.20]:25, delay=1.4, delays=0.12/0.01/0.53/0.74,dsn=2.0.0, status=sent (250 OK id=1QmUjU-00027C-00)
Jul 28 23:51:19 antigate postfix/qmgr[25310]: 562CE1C08DC: removed

После чего на почту отправителя почему то в спам падает сообщение с таким названием: Undelivered Mail Returned to Sender
И содержанием:

This is the mail system at host examle.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

<S.Shabanov@examle.com>: unknown user: «s.shabanov»

Reporting-MTA: dns; examle.com
X-Postfix-Queue-ID: E4F311C08CA
X-Postfix-Sender: rfc822; moya_pocta@mail.ru
Arrival-Date: Thu, 28 Jul 2011 23:51:16 +0600 (ALMT)

Final-Recipient: rfc822; S.Shabanov@examle.com
Original-Recipient: rfc822;S.Shabanov@examle.com
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: «s.shabanov»

Как быть что ни так?!!!
avatar
Вы можете контролировать домен example.com, его аналоги в зоне org,net и т.п. держат специально для указания в примерах. Или так было написано чтобы не палить свое доменное имя?!
Из того что я увидел проблема, исключительно в разрешении имен через ДНС. Прикрутите свой собственный домен и настройте MX запись на IP адрес вашего почтового сервера. И все будет ходить нормально
avatar
У меня в настройках вместо examle.com конечно же стоит домен моей почты. MX Запись настроена нормально с днс проблем нету… Без шлюза почта ходит в полнее нормально ну не считая бешеного количества Спама!!!
avatar
На example.com я сам исправил все в написанном…
avatar
А список маилбоксов из exchange выгрузился нормально, скрипт vbs отработал?
Просто по данному мануалу у меня работает 2 системы, она уже почти 2 года другая чуть меньше года. Так что мануал рабочий на 100%!
avatar
Выгружается всё нормально скрипт отработал список есть!!!
avatar
В VBS скрипте есть маленький нюанс, о нем есть в мануале, user@domain.tld отделяется от OK табуляцией, а не пробелом! Это важно!
Задается в этой строке:
objOutputFileName.Writeline( objADobject.Mail & "(тут нажать TAB)OK" ) '
avatar
вручную проставил табуляцию оставил только 3 адреса в файле сделал postmap /etc/postfix/recipients появился файл с расширением .db один черт все так же в логе присутствует:
4B3F01C08ED: to=<s.shabanov@example.com>, relay=local, delay=4.8, delays=4.7/0/0/0.06, dsn=5.1.1, status=bounced (unknown user: «s.shabanov»)
avatar
Из того что написано postfix не отправляет на exchange письмо а ищет локальный ящик на сервере relay=local, а должно быть relay=IP сервера Exchangeвидимо небыло выполнено:
postmap transport
avatar
Все сделал так, лог изменился но письмо так и не доходить ((((
теперь пишет в логе:

Aug 5 23:59:04 antigate postfix/smtpd[17279]: connect from f267.mail.ru[217.69.128.188]
Aug 5 23:59:05 antigate postfix/trivial-rewrite[17239]: warning: do not list domain example.com in BOTH mydestination and virtual_mailbox_domains
Aug 5 23:59:06 antigate postfix/smtpd[17279]: 848EB1C0080: client=f267.mail.ru[217.69.128.188]
Aug 5 23:59:06 antigate postfix/cleanup[17294]: 848EB1C0080: message-id=<E1QpOdn-0003nu-00.camics-mail-ru@f267.mail.ru>
Aug 5 23:59:06 antigate postfix/qmgr[14933]: 848EB1C0080: from=<camics@mail.ru>, size=2201, nrcpt=1 (queue active)
Aug 5 23:59:06 antigate postfix/trivial-rewrite[17239]: warning: do not list domain example.com in BOTH mydestination and virtual_mailbox_dom
Aug 5 23:59:06 antigate postfix/smtp[17295]: warning: host 10.0.1.15[10.0.1.15]:25 greeted me with my own hostname example.com
Aug 5 23:59:06 antigate postfix/smtp[17295]: warning: host 10.0.1.15[10.0.1.15]:25 replied to HELO/EHLO with my own hostname example.com
Aug 5 23:59:06 antigate postfix/smtpd[17279]: disconnect from f267.mail.ru[217.69.128.188]
Aug 5 23:59:06 antigate postfix/smtp[17295]: 848EB1C0080: to=<s.shabanov@example.com>, relay=10.0.1.15[10.0.1.15]:25, delay=1.3, delays=1.2/0.01/0.01/0, dsn=5.4.6, statu$
Aug 5 23:59:06 antigate postfix/cleanup[17294]: DFE161C08C5: message-id=<20110805175906.DFE161C08C5@example.com>
Aug 5 23:59:07 antigate postfix/bounce[17296]: 848EB1C0080: sender non-delivery notification: DFE161C08C5
Aug 5 23:59:07 antigate postfix/qmgr[14933]: DFE161C08C5: from=<>, size=3927, nrcpt=1 (queue active)
Aug 5 23:59:07 antigate postfix/qmgr[14933]: 848EB1C0080: removed

На почту приходит ответ:

This is the mail system at host example.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

<s.shabanov@example.com>: mail for [10.0.1.15] loops back to myself

Reporting-MTA: dns; example.com
X-Postfix-Queue-ID: 848EB1C0080
X-Postfix-Sender: rfc822; camics@mail.ru
Arrival-Date: Fri, 5 Aug 2011 23:59:05 +0600 (ALMT)

Final-Recipient: rfc822; s.shabanov@example.com
Original-Recipient: rfc822;s.shabanov@example.com
Action: failed
Status: 5.4.6
Diagnostic-Code: X-Postfix; mail for [10.0.1.15] loops back to myself
avatar
Честно говоря, затрудняюсь ответить.
Вчера вечером залез в конфиги работающего сервера, все работает именно так как описано, были мысли что я что-то упустил, но нет все также.
avatar
Скинь пожалуйста конфиги на почту мне и все файлы упомянутые в мануале данном… Camics@mail.ru
avatar
Конфиги тут пользуйтесь :)
avatar
Спасибо за конфиги проставил все как в них вроде лог стал по чище одна ошибка при отправке почты на сервак, и письмо в ответ приходит:
NOQUEUE: reject: RCPT from f211.mail.ru[217.69.138.211]: 554 5.7.1 <S.Shabanov@example.com>: Relay access denied; from=<camics@mail.ru> to=<S.Shabanov@example.com> proto=ESMTP helo=<f211.mail.ru>

И в ответ письмо такого содержания:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

S.Shabanov@example.com
SMTP error from remote mailer after RCPT TO:<S.Shabanov@example.com>:
host example.com [92.46.109.130]: 554 5.7.1 <S.Shabanov@example.com>:
Relay access denied

— This is a copy of the message, including all the headers. — Return-path: <camics@mail.ru>
Received: from mail by f211.mail.ru with local
id 1Qq7v0-0005lz-00
for S.Shabanov@nabrk.kz; Sun, 07 Aug 2011 22:17:46 +0400
Received: from [91.185.30.195] by e.mail.ru with HTTP;
Sun, 07 Aug 2011 22:17:46 +0400
From: =?UTF-8?B?0JXQstCz0LXQvdC40Lkg0KjQsNCx0LDQvdC+0LI=?= <camics@mail.ru>
To: =?UTF-8?B?Uy5TaGFiYW5vdg==?= <S.Shabanov@nabrk.kz>
Subject: =?UTF-8?B?c3Nzc3Nzc3Nzc3NhYWFhYWFhYWFhYWFhYWE=?=
Mime-Version: 1.0
X-Mailer: mPOP Web-Mail 2.19
X-Originating-IP: [91.185.30.195]
Date: Sun, 07 Aug 2011 22:17:46 +0400
Reply-To: =?UTF-8?B?0JXQstCz0LXQvdC40Lkg0KjQsNCx0LDQvdC+0LI=?= <camics@mail.ru>
Content-Type: multipart/alternative;
boundary="--ALT--1YZaJFeo1312741066"
Message-Id: <E1Qq7v0-0005lz-00.camics-mail-ru@f211.mail.ru>
X-Spam: Not detected
X-Mras: Ok

----ALT--1YZaJFeo1312741066
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKCgotLQrQktGB0LUg0LLQvtC30LzQvtC2
0L3QvtGB0YLQuCBATWFpbC5SdSDQsiDRgtCy0L7QtdC8INC80L7QsdC40LvRjNC90L7QvC4K0J/R
gNC+0YHRgtC+INC30LDQudC00Lgg0YEg0YLQtdC70LXRhNC+0L3QsCDQvdCwIG0ubWFpbC5ydQ==

----ALT--1YZaJFeo1312741066
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

CjxIVE1MPjxCT0RZPmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhPGJyPjxicj48YnI+
LS08YnI+0JLRgdC1INCy0L7Qt9C80L7QttC90L7RgdGC0LggQE1haWwuUnUg0LIg0YLQstC+0LXQ
vCDQvNC+0LHQuNC70YzQvdC+0LwuPGJyPtCf0YDQvtGB0YLQviDQt9Cw0LnQtNC4INGBINGC0LXQ
u9C10YTQvtC90LAg0L3QsCBtLm1haWwucnU8L0JPRFk+PC9IVE1MPgo=

----ALT--1YZaJFeo1312741066--
avatar
ВСЁ спасибо!!! Наконец то я запустил этот анти спам шлюз… Ура!!! Вот только из-за этого спама теперь сам Exchange тупить зараза стал…
avatar
В смысле тупить?! У него нет прямого соединения с отправителями, по всем вариантам тупить должен постфикс, а Exchange только получать от него отфильтрованную почту и только «тихо шуршать».
avatar
Все разобрался просто одно письмо зависло в очереди… Удалил, всё за шуршало! ))) Вот только не могу сделать так чтоб Exchange отправлял почту через Postfix, пришлось открыть правило на отправку Exchange а на приём Postfix-у. Если шлюзом прописываешь у Exchange ip Postfix почта становится не уходит…
avatar
Да на самом деле это не проблема, пускай Exchange гонит почту на прямую, а прием идет через Postfix, ведь ради этого все и делалось, тоже так сделал и не парюсь. Чем меньше точек для отказа-тем лучше.
avatar
connect from mail-bw0-f44.google.com[209.85.214.44]
Aug 24 17:49:12 antz-gate postfix/smtpd[4658]: AD4641010B7: client=mail-bw0-f44.google.com[209.85.214.44]
Aug 24 17:49:12 antz-gate postfix/cleanup[4665]: AD4641010B7: message-id=<19718483.20110824174926@gmail.com>
Aug 24 17:49:12 antz-gate postfix/qmgr[4657]: AD4641010B7: from=<6689363@gmail.com>, size=1601, nrcpt=1 (queue active)
Aug 24 17:49:13 antz-gate postfix/local[4666]: AD4641010B7: to=<test@antz.ru>, relay=local, delay=0.69, delays=0.59/0/0/0.09, dsn=5.1.1, status=bounced (unknown user: «test»)
Aug 24 17:49:13 antz-gate postfix/cleanup[4665]: 146DA1013B1: message-id=<20110824134913.146DA1013B1@web.antz.ru>
Aug 24 17:49:13 antz-gate postfix/bounce[4667]: AD4641010B7: sender non-delivery notification: 146DA1013B1
Aug 24 17:49:13 antz-gate postfix/qmgr[4657]: 146DA1013B1: from=<>, size=3296, nrcpt=1 (queue active)
Aug 24 17:49:13 antz-gate postfix/qmgr[4657]: AD4641010B7: removed
Aug 24 17:49:15 antz-gate postfix/smtp[4668]: 146DA1013B1: to=<6689363@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.43.27]:25, delay=2.1, delays=0.17/0/0.15/1.7, dsn=2.0.0, status=sent (250 2.0.0 OK 1314193756 r7si359829bke.168)
Aug 24 17:49:15 antz-gate postfix/qmgr[4657]: 146DA1013B1: removed
avatar
Привет помогите разобраться в чем дело почему то уч. записи в AD не импортируются в файлик
вот скрипт из Вашего мануала и только те пункты в которых я произвел изменения

strOutputFileName = «D:\mail\antispam\recipients» — вот здесь я прописал путь до файлика куда должны импортироваться учетки

If objADobject.Mail <> "" Then
objOutputFileName.Writeline( objADobject.Mail & " OK" ) ' *** " OK"- разделение с помощью табуляции **** '

вот в этом пункте я не пойму сюда надо вписывать что либо????
avatar
If objADobject.Mail <> "" Then
objOutputFileName.Writeline( objADobject.Mail & " OK" ) ' *** " OK"- разделение с помощью табуляции **** '


objOutputFileName.Writeline( objADobject.Mail & "[В этом месте нажать TAB]OK" ) 
avatar
все равно не хочет импортировать((
avatar
Аналогичная проблема как была у Вас

каким способом она была решена?

connect from mail-bw0-f44.google.com[209.85.214.44]
Aug 24 17:49:12 antz-gate postfix/smtpd[4658]: AD4641010B7: client=mail-bw0-f44.google.com[209.85.214.44]
Aug 24 17:49:12 antz-gate postfix/cleanup[4665]: AD4641010B7: message-id=<19718483.20110824174926@gmail.com>
Aug 24 17:49:12 antz-gate postfix/qmgr[4657]: AD4641010B7: from=<6689363@gmail.com>, size=1601, nrcpt=1 (queue active)
Aug 24 17:49:13 antz-gate postfix/local[4666]: AD4641010B7: to=<test@antz.ru>, relay=local, delay=0.69, delays=0.59/0/0/0.09, dsn=5.1.1, status=bounced (unknown user: «test»)
Aug 24 17:49:13 antz-gate postfix/cleanup[4665]: 146DA1013B1: message-id=<20110824134913.146DA1013B1@web.antz.ru>
Aug 24 17:49:13 antz-gate postfix/bounce[4667]: AD4641010B7: sender non-delivery notification: 146DA1013B1
Aug 24 17:49:13 antz-gate postfix/qmgr[4657]: 146DA1013B1: from=<>, size=3296, nrcpt=1 (queue active)
Aug 24 17:49:13 antz-gate postfix/qmgr[4657]: AD4641010B7: removed
Aug 24 17:49:15 antz-gate postfix/smtp[4668]: 146DA1013B1: to=<6689363@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.43.27]:25, delay=2.1, delays=0.17/0/0.15/1.7, dsn=2.0.0, status=sent (250 2.0.0 OK 1314193756 r7si359829bke.168)
Aug 24 17:49:15 antz-gate postfix/qmgr[4657]: 146DA1013B1: removed
avatar
Все разобрался.
Немного поправил конфиги и заработало
но скриптом импортировать учетки так и не получилось в ручную заводил в файлик
avatar
Спасибо, за статью еще бы неплохо было прилепить к этой статье про настройку Exchange она не значительная, но для новичков будет кстате
avatar
Весь фокус в том, что Exchange перенастраивать не требуется. Скрипт выгружает список email адресов, а postfix их использует в работе.
avatar
Что то не получается. скрипт отрабатывает, но файл recipiens пустой. в чем может быть проблема?
стоит Win2008R2 Exchange 2010
avatar
Странно, вообще скрипт экспортирует список email адресов из AD.
Запускать его на сервере с Exchange который введен в домен бесполезно-неоткуда брать информацию. Запускать его нужно на контроллере домена.
avatar
на контроллере. на почтовике. все равно пустой файлик выдает.
avatar
Тогда наверное, только свой написать.
Но на досуге, попробую тестовую среду поднять и протестировать.
avatar
Интересная статья, спасибо. Но есть одно но. Регулярно сталкиваешься с ситуацией, когда ждут важное письмо (обычно дирекция и приближенные), а его спам фильтр не пропустил и нужно это письмо СРОЧНО достать. Как из этой ситуации выходите? В статье как с этим бороться не увидел.
avatar
Действительно, решения данной проблемы у меня нет!
наиболее простой вариант, попросить прислать письмо с серверов типа mail,yandex,gmail оттуда проходят т.к. настройки тех серверов выполнены по стандартам. Почему то письмо было отброшено, можно узнать по логам. Но скажу честно, за время работы, а это уже 4й год и жалобы, что не доходят письма, была всего 2 раза. Не дошли письма из банка, причиной было не соответствие адреса HELO и обратного DNS, я это сказал по телефону кому-то из руководства и все это быстро исправили на их стороне.
Ничего не мешает настроить грейлистинг и тогда можно добавлять нужные вам домены и почта будет приходить.
Кстати! Если вы найдете решение свое проблемы- было бы интересно на него взглянуть…
avatar
У меня была такая задача. Подрезать спам, но «чтобы если что» достать письмо можно было.
Спам не резал совсем, а просто помечал его в поле «Тема» как [-=SPAM=-]
Потом уже правилами самого почтового клиента у пользователя отправлял такие письма в отдельною папку Спам.
Они просто иногда чистили эту папку. Некоторые даже с удовольствием читали всю эту ахинею. )) Но работе такие письма уже не мешали )
Ах да, забыл. Еще у меня антивирус на Linux рубил письма с вирусами. Те уж точно не доходили до адресата. ))
avatar
ну помечает письма как спам это сам Exchange расставляя баллы.

Было бы очень интересно взглянуть на схему работы вашей системы, ну а если вы напишите отдельную статью, то совсем здорово…
avatar
Этот скрипт умеет сохранять и на шару. Так что я сделал так:
Расшарил шару анонимным доступом по ip. Ее прописал в скрипте.
А в main.cf указал другой путь. Мне кажется так проще.
avatar
да скрипту вообще все равно куда сохранять, главное чтобы были права на запись.
куда все это скинуть это ваше решение и если оно работает -пусть будет так…
Я, когда все это придумывал, старался сделать чтобы все лежало в соответствующих директориях, чтобы потом было проще искать.
avatar
И еще вопрос. Раз ты пишешь вот так:
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client,
# проверяем IP на присутствие в спам-листах
reject_rbl_client cbl.abuseat.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client dnsbl.njabl.org,
check_helo_access regexp:/etc/postfix/helo,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname,
check_sender_access hash:/etc/postfix/access,
check_recipient_access hash:/etc/postfix/recipients,
permit

А если в файле /etc/postfix/recipients одни ok, то смысл в следующей строчке permit? Если пройдет весь список и не увидит нужного адреса, то все равно в permit он пройдет и перейдет в следующую проверку.
avatar
Сейчас жуе и не вспомню, с момента написания прошло больше 2х лет.
avatar
Давно работает данная система все хорошо но недавно обнаружил то что recipients.db не обрабатывается что ли, так как завел пользователя (почтовый адрес) на почтовом сервере exchange но не добавляя его в базу получателей на postfix (файл recipients.db). Почта все равно приходит к данному адресату exchange.
Для чего тогда нужен файл с почтовыми адресами если почта проходит все равно?..
avatar
Хотя не существующий адрес откидывается видно по логам, получается что проверка наличия пользователя все же производится Exchange-м?!!!
avatar
1)проверьте права доступа, возможно они не дают прочитать файл recipients.db
2)если почта приходит, значит адресат попал в recipients.db, нужно проверить что он находится в OU которая экспортируется в postfix и перенести в OU содержимое которой не экспортируется.
3) Проверка наличия пользователя производит сам Postfix, иначе для чего вы экспортируете список почтовых ящиков, а этот список выкатывается из AD
avatar
Ну вот я и сам не могу понять точно знаю что в файле recipients.db нет определенного пользователя отправляю почту она доходит…
И еще вопрос не могу увеличить message_size_limit прописываю в конфиге message_size_limit = message_size_limit перегружаю постфикс да что там постфикс полностью сервер оди черт не увеличивается в конфиге прописано одно а команда выдает следующие:
root@antigate:~# postconf -d|grep -i message_size_limit
message_size_limit = 10240000
Где его прописать чтоб чтоб постфикс съел лимит?!!!
avatar
Допустил ошибку вместо прописываю message_size_limit = message_size_limit хотел написать message_size_limit = 25240000
avatar
что показывает
postconf -d
avatar
mailbox_size_limit = 51200000
mailbox_transport =
mailbox_transport_maps =
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
maps_rbl_domains =
maps_rbl_reject_code = 554
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains =
masquerade_exceptions =
master_service_disable =
max_idle = 100s
max_use = 100
maximal_backoff_time = 4000s
maximal_queue_lifetime = 5d
message_reject_characters =
message_size_limit = 10240000

Вот это кусок который нужен по теме иначе там на несколько страниц. Тут лимит 10240000 хотя в конфиге так 26000000…
avatar
И все таки я так и не могу разобраться… (((( С размером письма…
avatar
для начала пробуй увеличить mailbox_size_limit т.к. message_size_limit не может быть больше него!
avatar
можно попробовать так
mailbox_size_limit = 0

затем:
postconf -e 'message_size_limit = 104857600'

Проверить дефолтные настройки
postconf -d

и проверить то что было низменно:
postconf -n
avatar
Всё после этих действий и перезагрузки сервера все заработало!!! Спасибо…
avatar
вы хоть mailbox_size_limit выставьте побольше, а то совсем квоты на ящик отключили, уж пользователи-то туда всякой хренатени накидают на радостях… :)
avatar
Доброго времени суток! Хорошая статья по ней сделал себе свой шлюз!!!
Но есть один вопрос? У меня на сервере Exchange 2 домена для почты 2 организаций.
Может у вас есть решение для моего вопроса.
avatar
Сколько доменов, сколько лесов в Active Directory?
avatar
Ой не туда написал!!!
1 Домен 1 лес я просто
Exchange 2003
делал не я, работаю не давно мне вот досталось в мести со спамом )))).
avatar
1 домен 1 лес.
avatar
так настройте скрипт чтобы он экспортировал email адреса из нужных OUшек, а на Linux сервере, слейте файлы в один и пройдитесь postmap по готовому файлу
avatar
С этим проблемм вроде нет.
Проблемма в другом в main.cf как указать втрой домен приёма, тоесть по ваше статье указываю
avatar
Ой извиняюсь что у вас бордак устроил, я это случайно.

Проблемма в другом в main.cf как указать втрой домен Exchange, тоесть по ваше статье я пробывал сделать

myhostname = mail.example.com
mydomain = example.com

virtual_mailbox_domains = example.com

в /etc/postfix/transport

добавил
example.com smtp:[192.168.0.20]
exam.ru smtp:[192.168.0.20]

в /etc/postfix/recipients
вписывал 2 своих адресов своих доменов не работает
кпримеру
Ivanov@examle.com
ivanov@examo.ru
на Ivanov@examle.com почта проходит а на ivanov@examo.ru не проходит
avatar
Вот статью нашёл www.linwin.faq-cisco.ru/?p=13 тут вроде описывают как мой вопрос решить
avatar
Лично я такое не делал, но можно посмотреть в направлении:
www.opennet.ru/openforum/vsluhforumID1/84368.html
avatar
Вся задача стоит в обслуживании postfix 2х доменов
avatar
Ну да ладно думаю за один вечер такое решить сильно быстро, решить данную задачу придётся хорошенько по гуглив и дотошно изучить постфикс. будет результат отпишусь.
avatar
Вот это было-бы здорово!
avatar
Ну всё, задачу решил.
Оказывается всё очень просто. В Main.cf нужно добавить запись

relay_domains = example1.com, example2.com, subdomain.example.com

и пересылка почты заработает на все перечисленные домены.

У меня есть ещё один вопрос??? Вот я не делал скрипт не вытягиваю адреса с AD. Пересылка работает нормально. Если я не буду экспартировать адреса что мне за это грозит???
avatar
Ничем страшным не грозит, просто пересылка работает на основе списка адресов-3я ступень проверки, если добавится новый пользователь, то он не будет экспортирован в базу postfix, письма будут отбрасываться т.к. не найден получатель.
avatar
Добрый день!!! Может вы мне сможете помочь в одной проблемке???
У меня после настройки перестала приходить одна рассылка.
Вот ошибка в логе.
connect from mail2.111.111.ru[83.66.249.88]
Apr 8 22:54:54 MailGateway postfix/smtpd[1678]: 8E7D0100273: client=mail2.111.111.ru[83.66.249.88]
Apr 8 22:54:54 MailGateway postfix/smtpd[1678]: warning: Recipient address rate limit exceeded: 2 from mail2.111.111.ru[83.66.249.88] for service smtp
Apr 8 22:54:54 MailGateway postfix/smtpd[1678]: too many errors after RCPT from mail2.111.111.ru[83.66.249.88]

По ошибке я понял что, что то с отправителем, то есть с его адресом, я думаю, что он отсутствует на самом сервере.
Но другие письма с данного сервера приходят, не работает только рассылка. Как мне можно и что можно сделать, чтобы postfix больше не обращал внимание на этот домен и пропускал все с него письма???
avatar
нет, там по умолчанию разрешено за одно соединение отправлять только одному получателю, а в письме видимо было указано 2 адресата, я у себя делал именно так.
Recipient address rate limit exceeded: 2
avatar
в строке:
smtpd_recipient_limit = 1

укажите нужное число получателей за раз
avatar
исправил! Не помогло!!!
avatar
connect from mail2.samara.ocs.ru[83.242.249.209]
Apr 11 09:24:06 MailGateway postfix/smtpd[7590]: 25F12100277: client=mail2.samara.ocs.ru[83.242.249.209]
Apr 11 09:24:06 MailGateway postfix/smtpd[7590]: warning: Recipient address rate limit exceeded: 2 from mail2.samara.ocs.ru[83.242.249.209] for service smtp
Apr 11 09:24:06 MailGateway postfix/smtpd[7590]: too many errors after RCPT from mail2.samara.ocs.ru[83.242.249.209]
Apr 11 09:24:06 MailGateway postfix/smtpd[7590]: disconnect from mail2.samara.ocs.ru[83.242.249.209]
Apr 11 09:24:14 MailGateway postfix/smtpd[7590]: connect from mail2.samara.ocs.ru[83.242.249.209]
Apr 11 09:24:14 MailGateway postfix/smtpd[7590]: warning: Recipient address rate limit exceeded: 3 from mail2.samara.ocs.ru[83.242.249.209] for service smtp
Apr 11 09:24:14 MailGateway postfix/smtpd[7590]: too many errors after RCPT from mail2.samara.ocs.ru[83.242.249.209]
Apr 11 09:24:14 MailGateway postfix/smtpd[7590]: disconnect from mail2.samara.ocs.ru[83.242.249.209]

вот полный лог попытки!!!
avatar
и ещё я присмотрелся с этого домена ( mail2.samara.ocs.ru ) совсем письма не приходят, а письма приходят с (sam-mail2.samara.ocs.ru )
avatar
домен sam-mail2.samara.ocs.ru я через nslookup найти не смог.
А вот с записью mail2.samara.ocs.ru весё нормально и с праяой и с обратной
avatar
Можно попробовать с ними связаться пусть отправят 1 тестовое письмо
avatar
Вообще то доменов у них много, через grep 'ocs.ru' mail.lig посмотрели почта практически вся приходит, не приходит только с одного адреса которая является рассылкой. Я много искал по ошибке и на забугорных форумах и натыкался что пишут типа такая ошибка возможно когда сервер используется для рассылки без авторизации на сервере. то есть адрес с рассылки на почтовом сервере отсутствует. Я к примеру таким же методом делаю рассылку на корпоративном портале c postfix передаю на zimbra а zimbra передавала хоть кому эти письма, а адрес портала на zimbra отсутствует. Правда потом я всё-таки сделал через авторизацию и адрес на zimbra завёл. Postfix на моём шлюзе просто может запрашивать у сервера отправителя существует ли у него адрес с которого он мне шлёт письма.
avatar
Добрый день.
А каким образом можно добавить определенные адреса, чтобы они не проверялись, а без проверки пропускались на Exchange?
avatar
Ну я такого не реализовывал, у меня не было такой задачи, так что проверялась вся почта.
Можно сделать что-то типа адреса ловушки, как это делается, кажется поднималась тема на русскоязычном форуме postfix, но читал я это давно, но поиск рулит…
avatar
подниму немножко такой некропост:)
Скажите если есть такая схема
Exchange-->ASA---> postfix
то есть я не хочу делать постфикс с внутр и внеш интерфейсом, вот будет он только с белым IP тупо релееить на Exch? а в ASA проделаю дырочку для него.
какие принципиальные изменения в конфиге postfix надо будет сделать по сравнению с приведенной выше?
просто получается что и exch и postfix по идее в моем случае будут иметь одино и тоже название машины mail.domain.ru
avatar
Здравствуйте.
не вижу никаких проблем, главное чтобы IP и порт Exchange сервера был доступен серверу postfix
avatar
а еще такой вопрос, есть ли какой-нибудь удобный, не знаю вэб интерфес, что бы хотя бы видеть какие письма попали в спам, и если письмо здоровое то его от тудова вытащить? или же только ручками?
avatar
Я этим вопросом не занимался, все что есть в статье то и было сделано, оно к вашим услугам.
avatar
а подскажите еще такой вопрос по скрипту
у меня есть группы рассылки, и соотв. когда запускаю скрипт, он выводит только ящики, а как бы мне еще вывести имена почтовых адресов групп рассылки?
или только ручками?
avatar
поправьте названия атрибутов в с скрипте, чтобы он дергал содержимое нужных полей
avatar
Приветствую! Подскажите пожалуйста по такой схеме настройки постфикса смогут ли пользователи (с почтовых клиентов) подключаться из интернета к серверу эксчендж для отправки почты через стандартный порт отправки smtp 25 (который в свою очередь открыт на постфиксе для приема внешней почты? Или необходимо чтото допилить в настройках?
avatar
Upd. exchange и соответственно постфикс перед ним стоят за маршрутизатором и 25 порт пробрасавается на постфикс.
avatar
Здравствуйте.
Если пользователи ходят через SMTP то их можно перевести на другой порт, например 2525, и пробрасывать на 25 порт Exchange
Есть что добавить? Регистрируйся и оставляй комментарии!