nixp.ru v3.0

24 мая 2017,
среда,
07:19:27 MSK

DevOps с компанией «Флант»
HanTengry написал 19 сентября 2009 года в 14:20 (1961 просмотр) Ведет себя как мужчина; открыл 36 тем в форуме, оставил 111 комментарий на сайте.

Здравствуйте!

В общем пытаюсь сделать почтовый сервер на SUSE SLES SP4.

1) С помощью Yast установил Sendmail.

2) С помощью SMTP-диалога, удалось отправить сообщение на внешний почтовый ящик(на ???@yandex.ru).

3) Пытаюсь на клиентской машине в локальной сети запустить почтовый клиент(Outlook), для получения, отправки почты, выдает ошибки: cannot connect to your POP3 mail server.

Проверяю запущены ли сервисы или протоколы(я уже запутался) командой netstat -at. Не нахожу там pop3 и smtp. В YAST есть: pop3 — qpoper и imap — pop3, smtp вообще нет..Нужны ли они и что на самом деле мне нужно установить, где брать, подскажите пожалуйста..

На telnet 192.168.42.1 25 и telnet 192.168.42.1 110 с клиентской машины с WinXP вижу просто черный экран без всяких надписей в терминале т.е. порты как бы открыты..

HanTengry

Зашел в Yast\Network Services\Network Services(initd) нажал запустить все сервисы..

Теперь на клиентских машинах почтовый клиент запрашивает пароль к почтовой учетной записи..вводишь правильный пароль нажимаешь ок, окно не исчезает. Команда netstat -at говорит что запущены различные (pop3,pop2 и еще какие-то), но smtp опять нет, неужели в дистрибутиве нет smtp, посоветуйте и как правельнее взять и установить smtp сервис.. telnet тоже не срабатывает на 25, а 110 отвечает.

Dr. Evil

Установка и настройка любого почтового сервера начинается с присвоения DNS-имени. Оно у тебя есть?

Кроме того, в качестве ПО для почтовика не рекомендую использовать sendmail. Его конфигурационные файлы для новичка не всегда легко понятны.

Так что рекомендую связку postfix + dovecot. Примеров настройки этой связки в Интернете просто валом.

HanTengry

Спасибо за ответ!

Со старого сервера я перенес конфиг. файлы: Юзеров, Iptables, DNS, Squid. Через Webmin сравнил настройки на 2-х серверах(ну как умею :) ). Иногда были какие-то проблемы в связи с тем что в старом Slackware и новом сервере SUSE разные пути для каких-то файлов — исправлял линками. Squid на новом сервере работает, фаервол тоже-в этом уверен. DNS не знаю как проверить. Мне кажеться работает потому что если его не включить и пытаться запустить Sendmail через webmin, Sendmail виснет, при включеном не виснет и еще ответы на пинг снаружи по доменому имени идут.

Добить бы Sendmail, тем более что конфиги есть..

Postfix по примитивному ставил, получалось, наверное смогу..но хотелось бы поразбираться с Sendmail-ом.  

fly4life
HanTengry
Здравствуйте!

В общем пытаюсь сделать почтовый сервер на SUSE SLES SP4.

1) С помощью Yast установил Sendmail.

2) С помощью SMTP-диалога, удалось отправить сообщение на внешний почтовый ящик(на ???@yandex.ru).

3) Пытаюсь на клиентской машине в локальной сети запустить почтовый клиент(Outlook), для получения, отправки почты, выдает ошибки: cannot connect to your POP3 mail server.

Проверяю запущены ли сервисы или протоколы(я уже запутался) командой netstat -at. Не нахожу там pop3 и smtp. В YAST есть: pop3 — qpoper и imap — pop3, smtp вообще нет..Нужны ли они и что на самом деле мне нужно установить, где брать, подскажите пожалуйста..

На telnet 192.168.42.1 25 и telnet 192.168.42.1 110 с клиентской машины с WinXP вижу просто черный экран без всяких надписей в терминале т.е. порты как бы открыты..

У тебя в настройках Outlook в качестве имени сервера указан его IP-адрес (192.168.42.1)?

Вот из этой фразы: «В YAST есть: pop3 — qpoper и imap — pop3, smtp вообще нет..» — лично мне неясно, что там есть, а чего нет. Pop3, imap и smtp — это протоколы; qpopper — название программы. Нафига их перемешивать в столь странном порядке в одном предложении?

Ты разберись, что тебе надо и что сейчас не работает. Отправка — это одно, получение — другое. Если не работает ни то, ни другое, то вопрос следовало бы разбить на две части:

1. Описать, что не работает при отправке. Какие сообщения выдает почтовый клиент, что в логах сервера sendmail.

2. Описать, по какому протоколу ты хочешь получать почту (pop3/imap). Затем, понять, на какой протокол у тебя настроен почтовый клиент. Убедиться, что для выбранного протокола у тебя на сервере поднят соответствующий сервис. После этого, проверить, на какое имя сервера настроен клиент. Попробовать получить почту и, если не работает, то смотреть сообщения об ошибках на экране клиента и в логах сервера.

Фирштейн?

HanTengry

У тебя в настройках Outlook в качестве имени сервера указан его IP-адрес (192.168.42.1)?

Да, его.

1. Описать, что не работает при отправке. Какие сообщения выдает почтовый клиент, что в логах сервера sendmail.

На Outlook Express появляется окно с запросом логина и пароля после нажатия кнопки отправить, сервер почему-то не видит такого юзера:

«There was a problem logging onto your mail server. Your User Name was rejected. Account: '192.168.42.1\′, Server: '192.168.42.1\′, Protocol: POP3, Server Response: '-ERR Unknown AUTHORIZATION state command’, Port: 110, Secure(SSL): No, Server Error: 0×800CCC90, Error Number: 0×800CCC91»

2. Описать, по какому протоколу ты хочешь получать почту (pop3/imap).

На старом сервере работало по pop3.

Затем, понять, на какой протокол у тебя настроен почтовый клиент.

Так как клиента я не трогал а пытаюсь подменить сервер новым, то настройки прежнии остались на 25 и 110 порт. Значит ли это, что он настроен на SMTP и POP3 соответсвенно..

Убедиться, что для выбранного протокола у тебя на сервере поднят соответствующий сервис.

Вот я и пытался убедиться в этом командой netstat -at, на данный момент не вижу там SMTP сервиса. Почему его там нет и как его поднять я не знаю.

то смотреть сообщения об ошибках на экране клиента и в логах сервера.

Эта запись в /var/log/mail:

Sep 21 10:41:24 hostname ipop3d[12513]: pop3 service init from 192.168.42.31

Sep 21 10:41:24 hostname ipop3d[12513]: Command stream end of file while reading line user=??? host=[192.168.42.31]

HanTengry

В общем думаю что SMTP у меня соединение не слушает…мне нужно что бы при netstat -at, была запись об SMTP LISTEN.

Хотя с сервера SMTP-диалог(HELO и тд.) работает.

Цитирую статью из журнала «Linux Format Март 2008"-правда про Postfix.

«Если вы не можете передать и принять почту используя ваш почтовый сервер, попробуйте проверить следующее:

1) На клиенте что почтовый сервер пингуется…

2) На сервере что SMTP и POP3 слушают соединения, используя команду #netstat -at».

3) На клиенте telnet c 25»

Последние 2 пункта у меня не работают.

sky

Почитате неспеша /var/log/maillog ежели сервисы стартованы, там будет информация о возникающих в работе ошибках

fly4life
HanTengry
На Outlook Express появляется окно с запросом логина и пароля после нажатия кнопки отправить, сервер почему-то не видит такого юзера:

«There was a problem logging onto your mail server. Your User Name was rejected. Account: '192.168.42.1\′, Server: '192.168.42.1\′, Protocol: POP3, Server Response: '-ERR Unknown AUTHORIZATION state command’, Port: 110, Secure(SSL): No, Server Error: 0×800CCC90, Error Number: 0×800CCC91»

Теперь немного более понятно.

Очень похоже на то, что твой клиент пытается передать на сервер пароль PLAIN-текстом в открытом виде. В SLES, вроде как, pop3-сервер по умолчанию собирается в поддержкой SSL, поэтому твои старые настройки клиента могут не подойти.

Поробуй в Outlook Express в настройках pop3 включить что-то типа «Secure POP3».

HanTengry

Значит так установил Postfix и qpopper.

С клиента «telnet hostname.domenname.kz»  SMTP и POP3 вижу сервер.

При отправке сообщения из исходящих теперь уходят(Outlook Express). Отправка на внешний почтовый ящик на yandex(е) работает с клиента. В обратную сторону не работает. В письме от postmaster с ящика на yandex-e говорится: Статус доставки:

messagedelivery-status1.2

Reporting-MTA: dns; forward7.yandex.ru

X-Yandex-Queue-ID: C6726310A50

X-Yandex-Sender: rfc822; ???@yandex.ru

Arrival-Date: Sun, 20 Sep 2009 13:48:20 +0400 (MSD)

Final-Recipient: rfc822; isergey@hostname.ru

Original-Recipient: rfc822;isergey@hostname.ru

Action: failed

Status: 5.0.0

Remote-MTA: dns; domenname.hostname.ru

Diagnostic-Code: smtp; 554 : Relay access denied

375

Логи /var/log/mail:

Sep 21 20:41:00 domenname postfix/smtpd[11464]: connect from unknown[192.168.42.31]

Sep 21 20:41:00 domenname postfix/smtpd[11464]: 9350A2026: client=unknown[192.168.42.31]

Sep 21 20:41:00 domenname postfix/cleanup[11750]: 9350A2026: message-id=<000901ca3a02$ca994b70$5fcbe250$@ru>

Sep 21 20:41:00 domenname postfix/qmgr[8948]: 9350A2026: from=, size=8909, nrcpt=1 (queue active)

Sep 21 20:41:00 domenname postfix/smtp[11751]: 9350A2026: to=, relay=none, delay=0, status=bounced (mail for hostname.ru loops back to myself)

Sep 21 20:41:00 domenname postfix/cleanup[11750]: A73C12028: message-id=<20090922024100.A73C12028@domenname.hostname.ru>

Sep 21 20:41:00 domenname postfix/qmgr[8948]: A73C12028: from=<>, size=10523, nrcpt=1 (queue active)

Sep 21 20:41:00 domenname postfix/qmgr[8948]: 9350A2026: removed

Sep 21 20:41:00 domenname postfix/smtp[11751]: A73C12028: to=, relay=none, delay=0, status=bounced (mail for hostname.ru loops back to myself)

Sep 21 20:41:00 domenname postfix/qmgr[8948]: A73C12028: removed

Sep 21 20:41:03 domenname postfix/smtpd[11464]: disconnect from unknown[192.168.42.31]

Что не так, где искать?

fly4life

Видимо, что-то недонастроил в постфиксе. Искать в его настройках и логах.

Приведенный кусок лога не про письмо от яндекса (бесполезный то есть).

HanTengry
fly4life
Приведенный кусок лога не про письмо от яндекса (бесполезный то есть).

Мда..действительно, подустал. Это письмо от клиента самому себе, кусок совсем бесполезный? Потому что даже так не работает.

Вот что меня смущает, и тут я позапутался, то, что нет файлов пользователей под письма в /var/spool/mail. Там только файл root. Хотя если через webmin смотреть Почтовые ящики пользователей в разделе про Postfix, там юзеры все есть, то есть все у которых есть учетные записи на сервере. На почтовый ящик root я тоже слал письма, в файле ниче не меняется.

fly4life

Что у тебя в main.cf постфикса, в параметрах «mydestination» и «inet_interfaces»?

HanTengry
fly4life
Что у тебя в main.cf постфикса, в параметрах «mydestination» и «inet_interfaces»?

Привожу строчки как есть:

mydestination = $myhostname, localhost.$mydomain

inet_interfaces = all

Здесь название изменил, для публикации здесь:

myhostname = asdf.qwer.ru

Чему равен mydomain: раскоментированой строчки не нашел в main.cf.

fly4life

В $mydestination добавь еще просто «$mydomain».

$mydomain по умолчанию равен «$myhostname минус первая часть хостнейма». В твоем примере: qwer.ru.

HanTengry

Спасибо! После того как дописал $mydomain, стало работать.

Поэтому, так как понял, что SMTP у меня не работал в Sendmail как надо и что нужно добиться что бы он слушал соединения на сетевых интерфейсах установил и добился.

Нагуглил здесь:http://linux.ufaras.ru/sendmail_tips.html#1

про это:"Но если вы используете SUSE, то следует посмотреть и в файл /etc/sysconfig/mail

и исправить в опции SMTPD_LISTEN_REMOTE «no» на «yes». По умолчанию sendmail в SUSE слушает только локальный интерфейс».

и это:

«Ну и владельцам SUSE и некоторых других nix-систем не стоит забывать про прибамбас по умолчанию SMTPD_LISTEN_REMOTE=«no» в /etc/sysconfig/mail или в /etc/rc.conf: sendmail_enable=«NO» .

Нужно изменить эту строку на SMTPD_LISTEN_REMOTE=«yes» (SUSE) или (sendmail_enable=«YES» и sendmail_submit_enable=«YES») (FreeBSD) и будет вам счастье. Хотя я бы за такие «прибамбасы» создателей дистрибутивов бы прибивала на месте. Это издевательство. У sendmail есть свой конфиг и в нем все прописано. Зачем еще огороды городить?

Когда на форумах спрашивают про слушающие только на локальных интерфейсах sendmail’ы, я все время забываю вот про эти извращения, и начинаю советовать то, о чем написано в начале этого пункта. У человека ничего не получается. Я выхожу из себя. А потом оказывается, что есть еще один конфиг. «Поубывала бы !!!» Тех, кто это придумал».

:)

fly4life
HanTengry
Поэтому, так как понял, что SMTP у меня не работал в Sendmail как надо и что нужно добиться что бы он слушал соединения на сетевых интерфейсах установил и добился.

Ты сам-то понял, что написал? =).

HanTengry
«Ну и владельцам SUSE и некоторых других nix-систем не стоит забывать про прибамбас по умолчанию SMTPD_LISTEN_REMOTE=«no» в /etc/sysconfig/mail или в /etc/rc.conf: sendmail_enable=«NO» .

Нужно изменить эту строку на SMTPD_LISTEN_REMOTE=«yes» (SUSE) или (sendmail_enable=«YES» и sendmail_submit_enable=«YES») (FreeBSD) и будет вам счастье. Хотя я бы за такие «прибамбасы» создателей дистрибутивов бы прибивала на месте. Это издевательство. У sendmail есть свой конфиг и в нем все прописано. Зачем еще огороды городить?

Затем, что надо матчасть учить. «Прибамбас», о котором ты говоришь, называется SuSEconfig и является первым, с чем знакомится каждый, кто работает с suse. Если админ никогда не работал с данным дистрибутивом, то грабля неудивительна.

И так… в качестве отступления в сторону.

Пример в тему «слака линуксу научит», да, шикарный! =). В голове сразу вырисовалась фантазия, как какое-нибудь чудо, учившее слакварь, ебется с настройкой почтового сервера на той системе, которая действительно используется в продакшене.