Настройка простейшего почтового сервера, реализующего отправку электронной почты как с сервера, так и клиентам внутренней сети, так и прием почты по протоколам POP3/IMAP.
Исходные данные:
1.Сервер имеет постоянное подключение к интернету с постоянным статическим IP-адресом
2.Сервер имеет постоянное подключение к локальной сети, в которую подключены клиенты
3.У клиентов установлены почтовые клиенты Outloock Express и The Bat.
4.Необходимо принимать почту для домена test.ru
5.Полное доменное имя почтового сервера mail.test.ru
Алгоритм настройки
1.Настроить DNS сервер для нормального функционирования почтового сервера
В файле test.ru.host добавить строки
mail.test.ru. IN A 172.0.0.10
test.ru. IN MX 10 mail.test.ru.
Обратите внимание на точки в конце имен.
Разрешить в правилах безопасности ipchains прием и отправление почты.
2.Установить sendmail.Установить pop3-imap2000
3.Остановить sendmail,imap,pop3.
4.Проверить наличие файла /etc/mail/sendmail.mc и закоментировать в нем строчку DAEMON_OPTIONS ('Port=smtp,Addr=127.0.0.1,Name=MTA') набрав в начале этой строки dnl и не закоментированной строчки FEATURE ('access_db')или возьмите готовый.
5.Компилируем файл sendmail.cf
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
6.В полученном файле
находим строку
Cwlocalhost
заменяем на
Cwmail.test.ru
без пробелов, без точки на конце
строчку Dj$w.foo.com???????
заменяем на
Dj$w.test.ru
без пробелов, без точки на конце
проверяем наличие строки
Kaccess hash /etc/mail/access
7.Редактируем файл /etc/mail/access
localhost.localdomain RELAY
mail.test.ru RELAY
test.ru RELAY
192.168.0.10 RELAY
192.168.1 RELAY
где 192.168.0.10 - адрес клиента, а 192.168.1 - адрес сети клиентов, которым разрешено отправлять почту
8.Выполняем команду
makemap hash /etc/mail/access.db < /etc/mail/access
9.Проверяем в файле sendmail.cf наличие строки
Fw/etc/mail/local-host-names
10. Создаем файл /etc/mail/local-host-name, где указываем домены которые будет принимать наш сервер при этом надо учитывать, что почтовые адреса user@mail.test.ru и user@test.ru будут равносильны. Для разделения используйте настройку виртуальных доменов в sendmail.
mail.test.ru
test.ru
11.Запускаем sendmail
/etc/rc.d/init.d/sendmail start
12.Проверка работы
/etc/rc.d/init.d/sendmail status
13.Настройка POP3 и IMAP
Находим файлы
/etc/xinetd.d/ipop3
/etc/xinetd.d/imap
и исправляем в обоих строчку
disable=yes
на
disable=no
или набираем команду ntsysv и напротив pop3 и imap ставим галочки
14.Запуск супердемона
/etc/rc.d/init.d/xinet.d restart
в /var/log/messages появиться сообщение о рестарте xinetd и указании активных процессов
15.Настраиваем почтовые программы у клиентов.
В качестве сервера указываем его адрес (символьный или IP)(смотри варианты), в качестве логина/пароля - логин/пароль соотвествующего пользователя на сервере.
16.Проверка работоспособности
Локально под root отправить почту user (команда mail user@mail.test.ru далее ввести тему и само сообщение. Текст заканчивается строчкой постановкой точки на свободной строке Должен появиться файл /var/spool/mail/user с набранным сообщением. Заходим на сервер под user и отправляем почту root (mail root@mail.test.ru). Должен появиться файл (дополниться) /var/spool/mail/root. Отправляем на внешний доступный почтовый ящик письмо (mail test@hotbox.ru). Заходим туда и проверяем наличие письма. После чего отправляем его обратно. Файл /var/spool/mail/user должен увеличиться и там будет содержаться ответ. После чего пытаемся с машины пользователя забрать почту user. А потом отправить ее на адрес test@hotbox.ru. Если все проходит успешно, то настройка завершена.
Также тестирование можно провести с помощью telnet
telnet 172.0.0.10 25
получаем следующее
Trying 172.0.0.10...
Connect to 172.0.0.10
Escape charset is '^]'
220 mail.test.ru ESMTP Sendmail 8.11.0/8.8.7 Sun, 17 Jun 2001 11:54:22 +300
Вводим
mail from: my@my.ru
220 2.1.0 my@my.ru ... Sender Ok
rcpt to: user@test.ru
220 2.1.0 user@test.ru ... Recipient Ok
data
текст сообщения
на свободной строке ставим точку
Sendmail сообщает что письмо поставлено на отправку