это со сканера в электронном виде не нашёл так что смотри могут быть ошибки..
Настройка почтового сервера на базе sendmail на FreeBSD 4.7
Предстоит следующая задача:
- Настроить почтовый сервер на FreeBSD чтоб клиенты могли работать с ним по протоколам рорЗ, smtp
(тоесть забирать почту клиентами The Bat, Outlook и т.п.).
- Сервер должен обслуживать почту 3 доменов причем пользователи должны иметь одноименную почту в разных доменах т.е. (dima@domain.ru dima@mail.domain.ru dima@domain2.ru должен быть одним и ткм же пользователем и почта для него должна складываться в один ящик.)
- Почтовый сервер должен иметь дублирующий сервер которй мог бы принимать на себя почту этих 3-х
доменов в случае выхода из строя основного сервера и затем пересылать почту на основной сервер когда
восстановится основной сервер.
- Доступ к серверу должен осуществляться только с определенных адресов (локальная сеть офиса) как для
отправки так и для приема почты.
- Пользователи старого почтового сервера (sendmail on FreeBSD 4.6) должны быть перенесены на новый
сервер без изменения пароля.
В качестве сервера выбрана следующая конфигурация.
CPU: 2xPIII 1133 Mhz 512k кэш
RAM: 2x512 DIMM ECC
HDD: Seagate Barracuda IV 7200 rpm 40 Gb
MB: Intel Server Board SAI2 ServerWorks ServerSet III LE chipset+LAN 100Mbit(lntel 82559)+Video
Для установки скачиваем полседнию версию Sendmail:
Sendmail sendmail-8.12.7.tar.gz
http://www.sendmail.org/ ftp://ftp.sendmail.org/
Разархивирую пакет
-cd /
-mkdirsrc
-tar xvfz sendmail-8.12.7.tar.gz
Компилирую и инсталирую новую версию вместо старой, шедшей в составе дистрибутива.
#cd sendmail.8.12.7
#sh Build
#sh Build install
#cd ./mailstats
#sh Build install
#cd ../makemap
#sh Build install
#cd ../praliases
#sh Build install
#cd..
#install -d -m 755 /var/spool/mqueue
#ln -fs /usr/sbin/sendmail /usr/lib/sendmail
Приступаю к конфигурированию. /src/sendmail-8.12.7/cf/cf/sendmail.mc
divert(-1)
divert(0)dnl
define(confDEF_USER_ID 26:26)dnl
OSTYPE(freebsd4)dnl # Если у вас FreeBSD 5.0 то пишем freebsd5 \
DOMAIN(generic)dnl
define(confTRY_NULL_MX_LIST,true)dni
define(confDONT_PROBE^INTERFACES,true)dnl
define{PROCMAiL^MAILER_PATH,/usr/local/bin/procmail)dnl
define{LOCAL_MAILER_FLAGS,ShPfn)dnl
define(LOCAL_MAILER_ARGS,procmail -a $h -d $u)dnl
FEATURE(mailertable)dnl
FEATURE(virtusertable,hash -o /etc/mail/virtusertable)dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(local_procmail)dni
FEATURE(access_db)dnl
Следующие семь строк следует добавлять если сервер будет испольхзовать публичные антиспамовые базы данных.
FEATURE(blacklist_recipients)dnl .
FEATURE(dnsbl)dnl
FEATUREt'dnsbl', 'relays.ordb.org', 'Spam bloked - see http:/A3rdb.org/')
FEATURE(dnsbl,'inputs.orbz.org', 'Input Spam bloked - see http://orbz.org/')
FEATURE(dnsbl,'bl.spamcop.net', 'Spam blocked - see jrttg;//spamcgp,net/bl,shtml?$&{client addr}')
FEATU RE (dnsbl,'ex.dnsbl.org', 'Spam bloked - see http://www.dnsM.org/')
FEATURE(dnsbl, 'relays.osirusoft.com'. 'Spam bloked - see http://relavs..osirusoft.com/')
MAILER(local)dnl
MA!LER(smtp)dnl
MAlLER(procmail)dnl
Генерирование конфигурационного файла sendmail.cf из sendmail.mc с помощью m4
#m4 ../m4/cf.tn4 sendmail.mc > /etc/mail/sendmail.cf
#cd /usr/ports/mail/procmail
#make
#makeinstall
#cd /etc/mail
Составление файла access и создания хэш базы, /etc/mail/access
localhost.localdomain RELAY
localhost RELAY
uni12.ru RELAY
uni12.ac.ru RELAY
193.215.78 RELAY
informs12.ru RELAY
#makemap hash access.db < access
Составления файла в котором сождержатся те домены для которых будет приниматься почта сервером, /etc/mail/local-host-names
uni12.ru
data.uni12.ru
system.uni12.ac.ru
Создание пустых хэш баз. В моем случае их конфигурирование не нужно было.
#ie virtusertable
#rnakemap hash virtusertable.db < virtusertable
#©e mailertable
;|rr|akemap hash mailertable.db < mailertable
lie domaintable
#makemap hash domaintable.db < domaintable
Редактирование файла rc.conf /etc/rc.conf
defaultrouter="193.215.78-xxx"
hostname="data.uni12.ru"
ifconfig_xlO="inet 193.215.78.xxx netmask 255.255.255.0"
kern_securelevel_enable="NO"
nfs_reserved_porLonly="NO"
sendmail_enable="YES" # Включаю sendmail
sendmail_flags="-bd -q30m"
sshd_enable="YES"
usbd_enable="NO"
inetd^.enable="YES" #Для работы рорЗ используется qpopper работающий под inetd
firewall_enable="YES" #Включаю поддержку firewall
firewall_type="filename" #Для его поддержки нужно перекомпилировать ядро с поддержкой
firewalLscript="/etc/firewall.conf" # firewall.
firewall_quiet="NO" # Настройки firewall хранятся в отдельном файле firewall.conf
Файл настроек firewall /etc/firewall.conf
/sbin/ipfw add 1 allow tcp from any to 193.233.78.37 80 in # Открываю 80 порт для веб сервера
/sbin/ipfw add 2 allow tcp from 193.233.78.33 to 193.233.78.37 22 in # 22 порт для ssh
/sbin/ipfw add 3 allow tcp from 193.233.78.33 to 193.233.78.37 110 in # 110 порт для рорЗ
/sbin/ipfw add 4 allow tcp from any to 193.233.78.37 25 in # 25 порт для приема почты с Интернета
/sbin/ipfw add 5 allow udp from any to 193.233.78.37 25 in
/sbin/ipfw add 6 allow tcp from any to 193.233.78.37 443 in # 443 для вебсервера работающего по
https
/sbin/ipfw add 7 allow tcp from 193.233.78.33 to 193.233.78.37 20-21 in # открываю ftp
/sbin/ipfw add 50 reset tcp from any to 193.233.78.37 1-1024 in # дальше все блокирую
/sbin/ipfw add 60 deny udp frornlany to any 1-1024 in
/sbin/ipfw add 70 unreach port tcp from any to 193.233.78.37 1025-65535 in setup
/sbin/ipfw add 65000 allow ip from any to any
Переношу файла спаролями и пользователями со старого сервера. Обьеденяю их с новым и стираю лишние записи из получившегося файлаю. Затем заменяю им оригинал.
#cat master, passwd ./old/master, passwd > master
#cp master master, passwd
Создаю базу паролей из файла master.passwd
#pwd_mkdb master.passwd Устанавливаю qpopper из портов
#cd /usr/ports/mail/qpopper
#make
#make install
На этом конфигурирование почтового сервера закончена. Перезагружаю сервер и смотрю что из этого получилось. Все используемые адреса в статье заменены на несуществующие. Статья посвящена моему новомудругу.