LINUX.ORG.RU

Сообщения dzhan

 

postfix: подмена адреса отправителя (sender_canonical_maps не подходит) +...

Привет народ!

Сразу оговорюсь, в форуме на данную тему порыл, но вроде ничего не нашел. Так что извините если вдруг вопрос повторяется.

При настройке почтового сервера для небольшого бюро возникло несколько проблем, которые никак не хотят "колоться". Вначале коротко структура:

Локальный домен - LOCALNET Почтовый сервер - MAIL.LOCALNET Пользовательские компьютеры в локальной сети - PCx.LOCALNET

Реальный почтовый адрес, используемый всеми участниками локальной сети для переписки с остальным миром - firma@mail.ru (пример).

*** Проблема 1: ***

Необходимо чтобы письма, исходящие от любого локального пользователя в интернет, имели одного и того же отправителя (firma@mail.ru), но в тоже самое время если пользователи общаются локально, то они должны видеть локальные адреса друг-друга (userx@mail.localnet).

Пример: user1 посылает письмо user2. user2 видит, что отправителем является user1@mail.localnet и соответственно отвечает тоже на локальный адрес. Если user1 отправляет письмо на friend@google.ru, то удаленный получатель должен видеть, что письмо пришло от firma@mail.ru (в данном случае письмо отправляется через relay-сервер smtp.mail.ru)

Если использовать sender_canonical_map (user1 firma@mail.ru \n user2 firma@mail.ru ...), то удаленный пользователь видит правильный адрес отправителя (firma@mail.ru), но при посылке локальных сообщений друг-другу локальные прользователи ТОЖЕ в качестве адреса отправителя видят этот адрес (вместо локального). Если в файле sender_canonical ничего не прописывать, то локальные пользователи нормально общаются, но наружу ничего послать не могут, gоскольку сервер smtp.mail.ru не пропускает сообщния с адресом отправителя, отличным от ...@mail.ru. И даже если бы пропустил, то получатель письма увидел бы в качестве адреса отправителя user1@mail.localnet (вместо firma@mail.ru).

Т.е. либо нужен метод, позволяющий модулю cleanup избирательно подменять адрес отправителя в зависимости от того кому направляется письмо, либо позволяющий уже непосредственно перед самой отправкой заменить адрес отправителя.

Я уже неделю долбаю доки по postfix и наверное скоро выучу их наизусть, но по данному вопросу никак не могу найти решения. Перевернул инет с тем же успехом. Буду очень рад, если кто-то поделится дельным советом. А то эта хрень спать не дает! :)

*** Проблема 2: ***

никак не удается убедить postfix акцептировать локальные почтовые адреса типа user@localnet. user@mail.localnet работает без проблем.

main.cf: ... myhostname = mail.localnet mydestination = $myhostname,$mydomain,localhost.$mydomain masquerade_domains = relayhost = smtp.mail.ru

Собственно mydestination в данном написании, если я все правильно понимаю, должен указывать что адреса типа user@localnet, user@mail.localnet и user@localhost.mail.localnet должны интерпретироваться как локальные и он не должен их изменять. Несмотря на это письмо пользователю user@localnet отправляются на relay (smtp.mail.ru), на что тот справедливо ругается (мол не знаю я такого домена). Другие два варианта работают без проблем и письма нормально доставляются локально.

Но это не самая большая проблема (черт с ними, с адресами. Не будет user@localnet тогда сделаю user@mail.localnet, хотя некрасиво), но тоже не дает жить срокойно.

Привожу конфиг postfix и логи для двух вариантов:

--------------------- main.cf -------------------

queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/lib/postfix mail_owner = postfix unknown_local_recipient_reject_code = 550 debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = maildrop html_directory = /usr/share/doc/packages/postfix/html manpage_directory = /usr/share/man sample_directory = /usr/share/doc/packages/postfix/samples

readme_directory = /usr/share/doc/packages/postfix/README_FILES biff = no mail_spool_directory = /var/mail canonical_maps = hash:/etc/postfix/canonical virtual_maps = hash:/etc/postfix/virtual relocated_maps = hash:/etc/postfix/relocated transport_maps = hash:/etc/postfix/transport sender_canonical_maps = hash:/etc/postfix/sender_canonical masquerade_exceptions = root masquerade_classes = envelope_sender, header_sender, header_recipient myhostname = mail.localnet program_directory = /usr/lib/postfix inet_interfaces = all masquerade_domains = mydestination = $myhostname,$mydomain,localhost.$mydomain defer_transports = disable_dns_lookups = no relayhost = mail.gmx.net mailbox_command = mailbox_transport = smtpd_sender_restrictions = hash:/etc/postfix/access smtpd_client_restrictions = smtpd_helo_required = no smtpd_helo_restrictions = strict_rfc821_envelopes = no smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtpd_sasl_auth_enable = no smtpd_use_tls = no smtp_use_tls = no alias_maps = hash:/etc/aliases mailbox_size_limit = 0 message_size_limit = 10240000 smtp_sasl_security_options =

------------------------ логи (/var/log/mail) ------------------------------ 1) jana@mail.localnet ->victor@mail.localnet

smtpd[22577]: connect from unknown[192.168.1.254] smtpd[22577]: 6B0352B334: client=unknown[192.168.1.254] cleanup[22580]: 6B0352B334: message-id=<41BD1FCF.6010708@mail.localnet> qmgr[21795]: 6B0352B334: from=<jana@mail.localnet>, size=774, nrcpt=1 (queue active) smtpd[22577]: disconnect from unknown[192.168.1.254] local[22581]: 6B0352B334: to=<vmail@mail.localnet>, orig_to=<victor@mail.localnet>, relay=local, delay=0, status=sent (delivered to mailbox) qmgr[21795]: 6B0352B334: removed

2) jana@mail.localnet ->victor@localnet (relay server - mail.gmx.net)

smtpd[22577]: connect from unknown[192.168.1.254] smtpd[22577]: 6F5B42B33C: client=unknown[192.168.1.254] cleanup[22580]: 6F5B42B33C: message-id=<41BD1FE4.3010206@mail.localnet> qmgr[21795]: 6F5B42B33C: from=<jana@mail.localnet>, size=775, nrcpt=1 (queue active) smtpd[22577]: disconnect from unknown[192.168.1.254] smtp[22587]: warning: mail.gmx.net[213.165.64.20] offered AUTH option multiple times smtp[22587]: 6F5B42B33C: to=<victor@localnet.mail.localnet>, orig_to=<victor@localnet>, relay=mail.gmx.net[213.165.64.20], delay=0, status=bounced (host mail.gmx.net[213.165.64.20] said: 550 5.1.8 {mp019} Cannot resolve your domain (in reply to MAIL FROM command)) cleanup[22580]: C3CAD2B344: message-id=<20041213045148.C3CAD2B344@mail.localnet> qmgr[21795]: C3CAD2B344: from=<>, size=2749, nrcpt=1 (queue active) qmgr[21795]: 6F5B42B33C: removed local[22581]: C3CAD2B344: to=<vmail@mail.localnet>, orig_to=<jana@mail.localnet>, relay=local, delay=0, status=sent (delivered to mailbox) qmgr[21795]: C3CAD2B344: removed

vmail - это учетная запись, на которую перенаправляются сообщения для root /etc/aliases root: vmail@mail.localnet

dzhan
()

RSS подписка на новые темы