Простая настройка почты на FREEBSD 8 (pop3+sendmail)

В данной записи я хотел бы привести пример самой примитивной и простой настройки почтового сервера на базе FreeBSD 8. Планируем использовать FreeBSD 8 + sendmail + pop3 (cucipop). Автор не в коем случае не утверждает что это лучшие решение, но если вы никогда не настраивали почтовые сервера на базе UNIX систем я предлагаю вам начать именно с этого.

Начать с простого.

Итак в чем прелесть этой связки ? FreeBSD 8 + sendmail + pop3 (cucipop)? все это уже установлено у вас, при установке по умолчанию, осталось это настроить, запустить и получить базовые знания о том как это работает. :) По основам работы в FreeBSD у меня есть много чего на этом сайте.

Что такое sendmail ?

sendmail – это самый старый почтовик Интернета, созданный в седые времена и находящийся в постоянном развитии. В принципе простой в настройке эту программу нельзя, но для простых задач - ничего сложно в его настройке нет. SENDMAIL – это сервер отправки и получения почты, за доставку этой самой почты у нас будет отвечать другой сервер POP3 на базе cucipop. Конфигурационные файлы sendmail находятся в папке /etc/mail/. Центральный файл конфигурации sendmail – это sendmail.cf, этот файл на прямую редактировать нельзя! необходимо редактировать файл с расширением .mc а потом создавать из него sendmail.cf. К нашей радости – нам не придется его править для нашей простой задачи – (прием отправка почты для одного домена + POP3 сервер для ее доставки) подойдет стандартный файл установленный по умолчанию.

Настраиваем sendmail.

ifreebsd:/etc/mail>vim local-host-names

Прописываем в файл /etc/mail/local-host-names имя домена для которого должен работать отправка и получение почты. К примеру test.ru

Так авторизацию мы будем проводить через стандартное средство FreeBSD PAM основанное на passwd, то все наши пользователи системы которые будут забирать и отправлять почту должны быть пользователями системы. (заведены как юзвери в системе – можно и без shell) Прописать соответствия между пользователями и адресами почты нужно в файле /etc/virtusertable

К примеру вот так
ifreebsd:/etc/mail>cat virtusertable
@localhost ifreebsd
ifreebsd@test.ru ifreebsd
root@test.ru ifreebsd
postmaster@test.ru ifreebsd
hostmaster@test.ru ifreebsd
@test.ru error:nouser No such user here

Объясняю что в этом файле – так как домен у нас описан в local-host-names = test.ru, то работаем мы именно с этим доменом. Для начала устанавливаем пользователя ifreebsd как получателя локальной почты, далее присваиваем ему личный почтовый ящик ifreebsd@test.ru, далее устанавливаем ридерект что получатель всей почты root@test.ru – это ifreebsd@test.ru, остальные ридеректы по аналогии. А вот последняя строка весьма полезна – она отказывается принимать любую почту которая не отправлена на неописанные в этом файле почтовые адреса - @test.ru error:nouser No such user here.

Далее давайте пропишем кому именно можно отправлять почту с нашего почтового сервера, мы же не планируем быть почтовым сервером для миллионов почтовых ботов мира ? :) Это можно сделать в файле /etc/mail/access, пример этого файла ниже

ifreebsd:/etc/mail>cat access

# $FreeBSD: src/etc/mail/access.sample,v 1.3 2000/11/02 23:40:40 dirk Exp $

#

# Mail relay access control list. Default is to reject mail unless the

# destination is local, or listed in /etc/mail/local-host-names

#

#Разрешаем отправку почты с локального хоста.

localhost RELAY

#Разрешаем отправку почты изнутри нашей сети (вся сеть 192.168.1.0 до 192.168.1.255)

192.168.1 RELAY
На этом минимально необходимая настройка SENDMAIL закончилась. Теперь необходимо запустить его. Для начала редактируем файл rc.conf и прописываем -
#==mail
sendmail_enable=”YES”
sendmail_flags=”-bd -q15m”
Теперь стартуем sendmail к примеру так -
ifreebsd#/etc/mail>/etc/rc.d/sendmail start
Проверить работоспособность сервера почты можно к примеру так (где test.ru – имя вашего домена) -
ifreebsd#/etc/mail>telnet test.ru 25
Trying ::1…
Trying 127.0.0.1…
Connected to test.ru.
Escape character is ‘^]’.
220 test.ru ESMTP Sendmail 8.14.4/8.14.4; Tue, 23 Nov 2010 13:38:52 GMT
Все :) Теперь нам необходимо как то забирать попавшую к нам почту, находясь в консоли это можно делать при помощи команды mail или из портов поставить более продвинутый mutt. Но для удаленного доступа необходим внешний сервер который проведет авторизацию и будет работать по популярному протоколу ( в нашем случае это POP3 от cucipop )
Настраиваем POP3 (cucipop).
Для нашего случая для запуск в работу cucipop будет достаточно элементарных действий. Итак мы его запустим через суперсервер inetd, потому что для этого нам нужно просто раскоментровать одну строку и перезапустить inetd, и все :)
Находим в файле inetd.conf и раскоментируем (убираем # перед ним) данную ниже строку:
pop3 stream tcp nowait root /usr/local/libexec/cucipop cucipop -aY
И перезапускаем inetd.
ifreebsd#/etc/rc.d>/etc/rc.d/inetd restart
Stopping inetd.
Starting inetd.
ifreebsd#/etc/rc.d>

Удачи .

http://ifreebsd.org/freebsd/простая-настройка-почты-на-freebsd-8-pop3sendmail/

Обновлено: 12.03.2015