Данный документ написан в основном для личного пользования, ибо я постоянно забываю где чего лежит, и содержимое всех файлов конфигурации.
Итак, дано: дистрибутив sendmail 8.9.3, FreeBSD любой версии, некоторое желание админа, и полное нежелание читать документацию ( какой русский читает доки? ;) Метод решения: 0. ps | grep sendmail; kill -15 sendmail_id Убиваем его короче. 1. Сваливаем дистрибутив в любимый каталог с исходниками, например /var/local/src 2. gunzip send*.gz 3. tar xvf send*.tar 4. cd send*/src 5. sh Build ( в это время можно пока в другом окне сделать cp /etc/aliases /etc/aliases.DDMMYYYY и то же самое с sendmail.cf и /usr/sbin/sendmail ) 6. Теперь время вспомнить какая у нас операционка. Если вспоминается тяжело, то просто cd obj* 7. make all; make install 8. Итак, sendmail встал, но не стоит. ;) Идем дальше. cd ../../cf/cf 9. В этом каталоге лежат конфиги под каждую ось. Их много, выяснять какой именно - влом, делаем grep FreeBSD *.mc Результат - файл с именем generic-bsd4.4.mc 10. сp generic-bsd4.4.mc ../m4/config.mc 11. cd ../m4 12. vi config.mc добавим несколько строчек к стандартным, приведем файл к нижеследующему виду:
divert(-1) # # Copyright (c) 1998 Sendmail, Inc. All rights reserved. # Copyright (c) 1983 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 # The Regents of the University of California. All rights reserved. # # By using this file, you agree to the terms and conditions set # forth in the LICENSE file which can be found at the top level of # the sendmail distribution. # # This is a generic configuration file for 4.4 BSD-based systems, # including 4.4-Lite, BSDi, NetBSD, and FreeBSD. # It has support for local and SMTP mail only. If you want to # customize it, copy it to a name appropriate for your environment # and do the modifications there. # divert(0)dnl VERSIONID(`@(#)generic-bsd4.4.mc 8.7 (Berkeley) 5/19/1998') OSTYPE(bsd4.4)dnl DOMAIN(generic)dnl MAILER(local)dnl MAILER(smtp)dnl #MAILER(uucp)dnl define(`confSMTP_MAILER', `smtp8')dnl FEATURE(`access_db')dnl FEATURE(`access_db', `hash -o /etc/mail/access')dnl #FEATURE(`uucpdomain')dnl FEATURE(`mailertable')dnl FEATURE(nocanonify)dnl Две закомментареные строчки нужны нам если тачка используется как UUCP-хост. Если нет - значит нафиг. Строчка с smtp8 это для древних sendmail-ов, которые имеют проблемы с BASE64, в частности этим болеют отдельные хосты Демоса.
13. Теперь мы его поимеем: m4 ./cf.m4 ./config.mc > config.cf Получили готовый sendmail.cf под именем config.cf, который благополучно ложим на место: cp config.cf /etc/sendmail.cf 14. сd /etc/mail 15. Теперь надо разрешить нашим юзверям отправлять почту через наш свежеиспеченный smtp-хост. vi relay-domains, приводим его к виду примерно такому:
192.168.0 192.168.55
Т.е. описаны две сетки, из которых юзверя могут отправлять почту.
16. Теперь займемся спаммерами. Сделаем файлик с названием access.txt, в который запихаем следующее:
uu.net REJECT ftpmail@cnd.caravan.ru 550 We not accept ftpmail hitexchange.ru REJECT crosswinds.net 550 We not accept mail from spammers xcelcom.com 550 We not accept mail from spammers emailfile.com 550 We not accept ftpmail pvminc.com 550 We not accept mail from spammers icqhelp@1.digital.cnet.com 550 We not accept mail from spammers spotshop.com 550 We not accept mail from spammers
Ну и в таком духе. Списки жертв обычно можно найти в инете. Сюда же загоняются все, кто вам не нравится. ;) 17. Теперь установим пальцы высокого разрешения и наберем makemap hash /etc/mail/access < /etc/mail/access.txt В результате получим 32килобайтный файлик access.db, который счастливые обладатели утилитки tdb, например из комплекта tacacs+, могут посмотреть по tdb -L access, остальным же придется поверить что все создалось нормально. 18. Если вы держите на машине uucp, то аналогичную процедуру надо сделать с файлом mailertable, где прописать:
host1.domain.ru uucp-dom: host1
Полученый mailertable.db положим в /etc/ То же касается файла uucp.db, внутри которого надо прописать:
host1 PERMIT
Полученый uucp.db оставить тут же, в /etc/mail
19. Вот и все. /usr/sbin/sendmail -bd Тащимся. :)
Примечание: я так понимаю, если у вас нет uucp, то строчки FEATURE(`mailertable')dnl FEATURE(nocanonify)dnl можно смело закомментировать и про п.18 забыть.