Вопрос по sendmail'y

Аватар пользователя cyclops

Заметил нехорошую тенденцию у сендмыла - не хочет доставлять почту локальному пользователю. Root'у доставляет как положено. Система ASPLinux 10. После отправки письма (напр. от рута юзеру) автоматом почтовик возвращает письмо с ошибкой (Unknown local user). Не пойму в чем дело. Машина подключена к локальной сети (eth0), в /etc/hosts хост прописан как надо. /etc/mail/access тоже настроил вроде бы. До этого был установлен ASPLinux 9.2, все работало из коробки, дома Debian+exim тоже пашет на ура, поэтому и траблы возникли. Подскажите плз где копать. :-?

Аватар пользователя sergeil

Re: Вопрос по sendmail'y

Цитата:
cyclops писал:
Заметил нехорошую тенденцию у сендмыла - не хочет доставлять почту локальному пользователю. Root'у доставляет как положено. :-?

А может действительно опечатка в имени пользователя?
У меня такой проблемы не наблюдается. Дома стоит sendmail на 10-ке.

Вечером можна будет сравнить конфигурации. Интересует только 'sendmail.mc'

Аватар пользователя cyclops

Re: Вопрос по sendmail'y

вот он:
-----------------------------------------------------------------------------
divert(-1)dnl
dnl #
dnl # This is the sendmail macro config file for m4. If you make changes to
dnl # /etc/mail/sendmail.mc, you will need to regenerate the
dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is
dnl # installed and then performing a
dnl #
dnl # make -C /etc/mail
dnl #
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for ASPLinux')dnl
OSTYPE(`linux')dnl
dnl #
dnl # default logging level is 9, you might want to set it higher to
dnl # debug the configuration
dnl #
dnl define(`confLOG_LEVEL', `9')dnl
dnl #
dnl # Uncomment and edit the following line if your outgoing mail needs to
dnl # be sent out through an external mail server:
dnl #
dnl define(`SMART_HOST',`omo.uvd')
dnl #
define(`confDEF_USER_ID',``8:12'')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
dnl define(`confAUTH_OPTIONS', `A p')dnl
dnl #
dnl # PLAIN is the preferred plaintext authentication method and used by
dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection is not
dnl # guaranteed secure.
dnl # Please remember that saslauthd needs to be running for AUTH.
dnl #
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # cd /usr/share/ssl/certs; make sendmail.pem
dnl # Complete usage:
dnl # make -C /usr/share/ssl/certs usage
dnl #
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap
dnl #
dnl define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl
dnl #
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl #
dnl # The following limits the number of processes sendmail can fork to accept
dnl # incoming messages or process its message queues to 12.) sendmail refuses
dnl # to accept connections once it has reached its quota of child processes.
dnl #
dnl define(`confMAX_DAEMON_CHILDREN', 12)dnl
dnl #
dnl # Limits the number of new connections per second. This caps the overhead
dnl # incurred due to forking new sendmail processes. May be useful against
dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address
dnl # limit would be useful but is not available as an option at this writing.)
dnl #
dnl define(`confCONNECTION_RATE_THROTTLE', 3)dnl
dnl #
dnl # The -t option will retry delivery if e.g. the user runs over his quota.
dnl #
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -T -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't
dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS
dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps
dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6 loopback
dnl # device. Remove the loopback address restriction listen to the network.
dnl #
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl #
dnl # enable both ipv6 and ipv4 in sendmail:
dnl #
dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')
dnl #
dnl # We strongly recommend not accepting unresolvable domains if you want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl #
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl #
LOCAL_DOMAIN(`localhost.localdomain')dnl
dnl #
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
dnl MASQUERADE_AS(`omo.uvd')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
dnl FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(local.omo.uvd)dnl
dnl MASQUERADE_DOMAIN(omo.uvd)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
-----------------------------------------------------------------------------

Аватар пользователя sergeil

Re: Вопрос по sendmail'y

Да, странно, sendmail.mc такой-же.

1. Вы уверены, что на этой машине такой пользователь существует?
2. Какой Email адрес вы использовали, когда слали письмо?

3. что у Вас написано в /etc/mail/local-host-names

Цитата:
[root@homedesk ~]# cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
homedesk
homedesk.homedesk.ua

4. Как вы назвали свой хост, что возвращает `hostname`

Цитата:
[root@homedesk ~]# hostname
homedesk

5. DNS.
5.1 Приписан ли Ваш host в DNS

Цитата:
[root@homedesk ~]# nslookup `hostname`
Server: 127.0.0.1
Address: 127.0.0.1#53

Name: homedesk.homedesk.ua
Address: 192.168.100.100

5.2 Является ли он почтовым сервером для вашего локального домена?

Цитата:
[root@homedesk ~]# nslookup -sil -q=MX homedesk.ua
Server: 127.0.0.1
Address: 127.0.0.1#53

homedesk.ua mail exchanger = 10 homedesk.homedesk.ua.

5.3 Настроено ли разрешение имен на хосте

Цитата:
[root@homedesk ~]# cat /etc/resolv.conf
search homedesk.ua
nameserver 127.0.0.1

Проверьте как трансформируется адрес получателя и его доступность.
[root@homedesk mail]# sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter

Цитата:
> Rcpt_ok sergeil@homedesk.ua
Rcpt_ok input: sergeil @ homedesk . ua
ParseRecipient input: sergeil @ homedesk . ua
CanonAddr input: sergeil @ homedesk . ua
canonify input: sergeil @ homedesk . ua
Canonify2 input: sergeil < @ homedesk . ua >
Canonify2 returns: sergeil < @ homedesk . ua . >
canonify returns: sergeil < @ homedesk . ua . >
Parse0 input: sergeil < @ homedesk . ua . >
Parse0 returns: sergeil < @ homedesk . ua . >
CanonAddr returns: sergeil < @ homedesk . ua . >
ParseRecipient returns: sergeil < @ homedesk . ua >
SearchList input: < + To > $| < F : sergeil @ homedesk . ua > < U : sergeil @ > < D : homedesk . ua > < >
F input: < sergeil @ homedesk . ua > < ? > < + To > < >
F returns: < ? > < >
SearchList input: < + To > $| < U : sergeil @ > < D : homedesk . ua > < >
U input: < sergeil @ > < ? > < + To > < >
U returns: < ? > < >
SearchList input: < + To > $| < D : homedesk . ua > < >
D input: < homedesk . ua > < ? > < + To > < >
D input: < ua > < ? > < + To > < >
D returns: < ? > < >
D returns: < ? > < >
SearchList returns: < ? >
SearchList returns: < ? >
SearchList returns: < ? >
RelayTLS input:
RelayTLS returns: NO
Rcpt_ok returns: RELAY

> Rcpt_ok sergeil

Цитата:
Rcpt_ok input: sergeil
ParseRecipient input: sergeil
CanonAddr input: sergeil
canonify input: sergeil
Canonify2 input: sergeil
Canonify2 returns: sergeil
canonify returns: sergeil
Parse0 input: sergeil
Parse0 returns: sergeil
CanonAddr returns: sergeil
ParseRecipient returns: sergeil
SearchList input: < + To > $| < U : sergeil @ > < >
U input: < sergeil @ > < ? > < + To > < >
U returns: < ? > < >
SearchList returns: < ? >
RelayTLS input:
RelayTLS returns: NO
Rcpt_ok returns: RELAY
> /quit

Проверьте наличие (доступность) локального пользователя

Цитата:
[root@homedesk mail]# sendmail -bv sergeil@homedesk.ua
sergeil@homedesk.ua... deliverable: mailer local, user sergeil

Больше пока придумать ничего не могу. Протестируйте хотя-бы часть пунктов.
Особенно `sendmail -bt`

Аватар пользователя cyclops

Re: Вопрос по sendmail'y

Цитата:
1. Вы уверены, что на этой машине такой пользователь существует?

А как же, это я и есть. Вот прямо щас из-под него и работаю.
[eXe@omo ~]$ users
eXe eXe

Цитата:
2. Какой Email адрес вы использовали, когда слали письмо?

omo.uvd - адрес интерфейса eth0 (смотрит в локальную сеть).

Цитата:
3. что у Вас написано в /etc/mail/local-host-names

[eXe@omo ~]$ cat /etc/mail/local-host-names
omo.uvd
localhost

Цитата:
4. Как вы назвали свой хост, что возвращает `hostname`

[eXe@omo ~]$ hostname
omo.uvd

Цитата:
5. DNS.
5.1 Приписан ли Ваш host в DNS

DNS на другой машине, но мой комп там не прописан. Да, я думаю и не надо, т.к. задача не рассылать с нее и не получать из сети. Просто хотел настроить (как на Дебиане дома) ретрив писем от рута себе.
А DNS у себя не поднимал, ограничившись только записью в /etc/hosts
[eXe@omo ~]$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost local.omo.uvd
172.18.165.101 omo.uvd www.omo.uvd

Цитата:
5.2 Является ли он почтовым сервером для вашего локального домена?

Нет, только для себя использую. Но на удаленные хосты он тоже рассылает.

Цитата:
5.3 Настроено ли разрешение имен на хосте

[eXe@omo ~]$ cat /etc/resolv.conf
domain ul.ru #kppp temp entry
# domain uvd #entry disabled by kppp
# nameserver 172.18.165.1 #entry disabled by kppp
# nameserver 172.18.60.5 #entry disabled by kppp

Цитата:
Проверьте как трансформируется адрес получателя и его доступность.

[eXe@omo ~]$ sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter
>
> eXe@omo.uvd
No address!
>

Цитата:
Проверьте наличие (доступность) локального пользователя

[root@omo eXe]# sendmail -bv eXe@omo.uvd
eXe... User unknown
eXe@omo.uvd... User unknown

Я, вот думаю, может это проблема из-за заглавной буквы Х в имени пользователя?

Аватар пользователя sergeil

Re: Вопрос по sendmail'y

Цитата:
Я, вот думаю, может это проблема из-за заглавной буквы Х в имени пользователя?

Я тоже так думаю...

Дело в том, что почтовая система нечувствительна к регистру ...
То есть, если Вашe имя 'exe', то письма, отосланные на
eXe@omo.uvd, EXe@omo.uvd, EXE@omo.uvd, exe@omo.uvd, EXE@OMO.UVD ...
будут змечательно доходить ...

Переимеуйтесь...
usermod -l exe eXe

man usermod

Цитата:
usermod .... [-l новое_имя_пользователя] ... имя_пользователя

Аватар пользователя cyclops

Re: Вопрос по sendmail'y

А это ни на чем не откликнется?

Аватар пользователя sergeil

Re: Вопрос по sendmail'y

Цитата:
cyclops писал:
А это ни на чем не откликнется?

На имени пользователя...
$HOME, uid, gid останутся старыми...

Аватар пользователя cyclops

Re: Вопрос по sendmail'y

You have new mail in /var/spool/mail/exe
[exe@omo ~]$

УРА! Огромнейшее всем спасибо!
Как всегда, ответ лежит на поверхности и сам напрашивается. А, кто бы мог подумать, что все так просто. :-o Катается от смеха

Аватар пользователя sergeil

Re: Вопрос по sendmail'y

Цитата:
cyclops писал:
You have new mail in /var/spool/mail/exe
[exe@omo ~]$

УРА! Огромнейшее всем спасибо!
Как всегда, ответ лежит на поверхности и сам напрашивается. А, кто бы мог подумать, что все так просто. :-o Катается от смеха

Ну, не настолько просто, как кажется...
Есть спецификации, которые иногда приходится поднимать, есть опыт, которй приходит со временем...
Улыбка

Вопрос закрыт...

RSS-материал