Проблема разрешения имен в Sendmail

Меня попросили взглянуть на старый сервер RedHat (со старым, как в uname -a дающий Linux server 2.4.20-27.7 #1 Thu Dec 11 15:04:48 EST 2003 i686 unknown), которая имеет проблемы с sendmail, Сервер был настроен в 2003 году, и с тех пор я его не трогал. После сбоя питания потребовалось fsck загружаться, и с тех пор пользователи не получают свою почту.

Я посмотрел на /var/log/maillogи есть тонны таких строк:

Aug 22 21:26:22 server sendmail[12250]: p7KIujl05665: to=<[email protected]>, delay=2+00:22:16, xdelay=00:00:20, mailer=esmtp, pri=4369005, relay=demons.murgent.com., dsn=4.0.0, stat=Deferred: Name server: demons.murgent.com.: host name lookup failure
Aug 22 21:27:22 server sendmail[12250]: p7KHujo05650: to=<[email protected]>, delay=2+00:27:53, xdelay=00:00:20, mailer=esmtp, pri=4404312, relay=sweclo-web02.driften.net., dsn=4.0.0, stat=Deferred: Name server: sweclo-web02.driften.net.: host name lookup failure
Aug 22 21:27:43 server sendmail[12435]: p7MJNuk12435: SYSERR: putoutmsg ([190.242.41.83]): error on output channel sending "250 2.1.5 <[email protected]>... Recipient ok (will queue)": Connection reset by [190.242.41.83]
Aug 22 21:27:43 server sendmail[12435]: p7MJNuk12435: lost input channel from [190.242.41.83] to MTA after rcpt
Aug 22 21:27:43 server sendmail[12435]: p7MJNuk12435: from=<[email protected]>, size=0, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=[190.242.41.83]
Aug 22 21:28:22 server sendmail[12250]: p7KIujm05665: to=<[email protected]>, delay=1+23:39:41, xdelay=00:00:20, mailer=esmtp, pri=4413757, relay=cgsociety.org., dsn=4.0.0, stat=Deferred: Name server: cgsociety.org.: host name lookup failure

Тем не менее, разрешение имен работает из командной строки с каждой утилитой, которую я пробовал (ping, host, dig...). Сервер также работает named, но, похоже, в какой-то момент он переключился на использование другого сервера имен (/etc/resolv.conf IP-адрес сервера указан, но закомментирован, и вместо этого указывает на маршрутизатор, который пересылает на DNS-серверы интернет-провайдера). Есть ли sendmail есть какой-то внутренний способ сделать разрешение имен?

Я никогда не смотрел на sendmail.cf файл до сегодняшнего дня (то, что было увидено, не может быть невидимым), но не может многое из этого сделать. Это, кажется, не упомянуло разрешение имен. Есть идеи, что я должен проверить?

РЕДАКТИРОВАТЬ: Запрошенные файлы конфигурации:

resolv.conf: (192.168.0.25 - сервер, 192.168.0.1 - шлюз / маршрутизатор)

# nameserver 192.168.0.25
nameserver 192.168.0.1

named.conf:

// generated by named-bootconf.pl

options {
        directory "/var/named";
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
        // query-source address * port 53;
};

// 
// a caching only nameserver config
// 
zone "." IN {
        type hint;
        file "named.ca";
};

zone "localhost" IN {
        type master;
        file "hosts.domain.com";
        allow-update { none; };
};

zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "db.192.168.0";
        allow-update { none; };
};
key "key" {
        algorithm hmac-md5;
        secret "secret-key-edited-out";
};

РЕДАКТИРОВАТЬ 2: я переставил resolv.conf файл для резервного копирования на самом сервере при сбое, и теперь он медленно, но верно (700 МГц, добро!) обрабатывает почтовую очередь. Я не уверен, как долго это было закомментировано, но, может быть, кого-то еще попросили посмотреть недавно... В любом случае, почему это будет работать только при использовании собственного DNS?

2 ответа

Это может помочь

https://stackoverflow.com/questions/43970/configuring-sendmail-behind-a-firewall

Короче:

Обновлен sendmail.mc:

 define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl

А затем настройте файл mail.switch:

 # cat /etc/mail/service.switch
  hosts files

РЕДАКТИРОВАТЬ: давайте посмотрим на вывод resolv.conf. Кроме того, можем ли мы получить выходные данные named.conf?

РЕДАКТИРОВАТЬ 2: Похоже, что эта машина имеет свой собственный главный DNS-сервер с определенными записями зоны в "hosts.domain.com", которые были разрешены до перезагрузки. Я думаю, что если вы посмотрите на этот файл зоны, вы увидите, что домены в этом файле зоны соответствуют доменам, которые sendmail не может разрешить. Конечно, учитывая, что сервер имен был закомментирован в /etc/resolv.conf, это маловероятно. Но на всякий случай, раскомментируйте эту строку и посмотрите, разрешит ли sendmail домены.

Я столкнулся с проблемами с sendmail и неправильным разрешением имен...

Проблема заключалась в том, что мой "публичный" IP-адрес не был назначен никакому интерфейсу в моем почтовом ящике. Sendmail попытался бы разрешить домен в моих электронных письмах, чтобы направить его на соответствующий почтовый сервер... и попытался бы переслать входящие сообщения на его общедоступный адрес NAT. Единственное исправление состояло в том, чтобы настроить сервер связывания локально и дать ему записи, которые разрешают частный адрес в этом поле.

Я сейчас читаю ответ Рилиндо... и это звучит как лучшее решение. Я мог бы попробовать это когда-нибудь.

Другие вопросы по тегам