Настраиваем Sendmail

Как настроить небольшой почтовый сервер

[Денис Колесниченко]

Для начала небольшое отступление

SMTP - Simple Mail Transfer Protocol - сервис в сетях TCP/IP для передачи сообщений (т.е. почты). Обычно для SMTP используется 25-ый порт (см. файл /etc/services)

POP - Post Office Protocol - используется для получения почты с сервера. Порт по умолчанию - 110 (для протокола POP3)

Сейчас я попробую объяснить, как настроить небольшой почтовый сервер, использующий POP3 и SMTP

Для начала установим необходимый софт. Нам понадобятся sendmail и imap. Если вы используете RH-совместимую версию Linux, вам потребуется установить соответствующие пакеты.
Я использую
 sendmail-8.11.0
 imap-4.7c2

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

Произведем базовую настройку sendmail. Для этого нужно запустить утилиту
netconf. Она работает как из-под Х, так и из-под консоли.
Утилита netconf есть в RH, Mandrake - насчет других версий я точно не знаю. (ее нет в KSI Linux). Естественно, вы должны быть зарегистрированы в системе под root'ом

Выберите в меню Mail delivery system, затем Basic sendmail configuration
В поле Present your system as просто введите свое доменное имя
Затем отметьте флажок Accept email for ...
Протокол отправки сообщений установите в smtp (Mail gateway protocol)

Этой информации уже вполне достаточно, чтобы ваш sendmail функционировал.
Вы можете установить дополнительные опции программы sendmail с помощью
netconf. Если у вас нет программы sendmail, вы получите незабываемое
удовольствие от ручного редактирования файла /etc/sendmail.cf - в нем
хранятся настройки) :)

Теперь сделаем так, чтобы sendmail принимал почту только с разрешенных
адресов. Для этого даже не нужно настраивать сам sendmail - нужно только
подправить файлы /etc/hosts.allow и /etc/hosts.deny
В первом из них содержится список хостов, которым разрешен доступ к этой
машине, а во втором - запрещен. Обратите внимание: несмотря на название
(разрешен|запрещен), ограничения, которые устанавливаются первым файлом
намного строже.

Пример. Для запрещения доступа всем хостам, кроме компьютеров вашей
сети в файл /etc/hosts.allow добавьте строку
'192.168.1.
Здесь имеется в виду, что сеть имеет адрес 192.168.1.0 и маску 255.255.255.0
Более подробно о формате файлов hosts.allow и hosts.deny вы можете прочитать,
введя команду man /etc/hosts.allow

Для того, чтобы принимать почту только со "своих" доменов, нужно добавить в
mc-файл (обычно /etc/mail/sendmail.mc) следующие строки (используйте
табуляцию, а не пробелы)
LOCAL_CONFIG
FR-o /etc/sendmail.cR

LOCAL_RULESETS
Scheck_rcpt
# anything terminating locally is ok
R< $+ @ $=w >           $@ OK
R< $+ @ $=R >           $@ OK

# anything originating locally is ok
R$*                     $: $(dequote "" $&{client_name} $)
R$=w                    $@ OK
R$=R                    $@ OK
R$@                     $@ OK

# anything else is bogus
R$*                     $#error $: "550 Relaying Denied"

Теперь создайте файл /etc/sendmail.cR и введите в него имена "своих" доменов -
по одному в каждой строчке.
Только на эти домены почтовик сможет получать почту - все остальные получат
сообщение 550 Relaying Denied

Теперь настала очередь POP3. После установки пакета imap у вас практически
все настроено, т.е. я хочу сказать, что уже можно проверять конфигурацию.

Для начала перезапустите демон inetd
После его перезапуска сервисы sendmail и popd будут активированы (точнее
один sendmail, а popd вызывается по мере необходимости)

Попробуйте сделать следующее:
введите telnet <имя_только_созданного_почтовика> 25
Вы должны увидеть примерно следующее:
Trying 192.168.1.1 ...
Connected to 192.168.1.1
Escape character is '^]'
220 de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 Sun, 17 Jun 2001 10:54:22 +300

Это означает, что sendmail работает, осталось проверить насколько правильно :)

Вводим
mail from: me@my.host.com
220  2.1.0 me@my.host.com .... Sender Ok
rcpt to: den@den.dhsilabs.com
220  2.1.5 den@den.dhsilabs.com .... Recipient Ok
Теперь вводим data, потом текст сообщения, для окончания ввода ставим точку
в пустой строке

Sendmail сообщит, что сообщение отправлено (точнее помещено в
очередь на отправление)

den@den.dhsilabs.com -имя пользователя, которому я отправляю почту.
den.dhsilabs.com - имя моего почтовика
Обратите внимание, что узла my.host.com и в природе нет, а Sender Ok.
Вот поэтому, в настройках sendmail лучше включить опцию Wait for DNS

Теперь нужно запустить какой-нибудь почтовый клиент например kmail
и забрать почту.
Настройки сети в kmail
Сеть -> Отправка почты установите SMTP, 25-ый порт, имя сервера -
имя вашего почтовика,
у меня - den.dhsilabs.com

Затем добавьте аккуант для POP3
Логи - den
Пароль - пароль который используется для входа в систему
Сервер - den.dhsilabs.com
Порт - 110

Вы должны получить то, сообщение, которое ввели после data.



[Источник Softterra.ru]

[ опубликовано 22/10/2001 ]

Денис Колесниченко - Настраиваем Sendmail   Версия для печати