>Уважаемый all...
>Может кто знает где взять более менее универсальный скрипт для генерации кофига
>sendamila....
>Если нет мож ктонить поскажет как сконфить для выделенного email сервака.
>для домена gelios.ru машина зовется www.gelios.ru
>
>Заранее благодарен...
выкачай sources - там все расписано
почитай http://sendmail.net/ там для 8.10 расписана основная суть,
для 8.12.x несколько по иному, там еще дополнительно нужно submit.cf
сгенерить
Предварительно делаешь копии своих ошметков sendmail'а
скачиваешь sources, лучше sendmail-8.11.6 вместо всех предыдущих
1. tar zxvf sendmail.8.11.6.tar.gz
2. cd sendmail-8.11.6
3. less INSTALL - здесь по шагам, черным по белому все расписано
4. создаешь нужный тебе для компиляции site.config.m4 и кладешь его в devtools/Site/ - если оно тебе нужно, например:
define(`confEBINDIR',`/usr/local/libexec')
define(`confMANROOT',`/usr/local/man/cat')
define(`confMANROOTMAN',`/usr/local/man/man')
define(`confMBINDIR',`/usr/local/sbin')
define(`confSBINDIR',`/usr/local/sbin')
define(`confUBINDIR',`/usr/local/bin')
остальное по вкусу, флаги оптимизации, milter...
прим: данный пункт можно опустить, тогда встанет автоматом поверх
текущей версии или оставить только нужные флаги не относящиеся к
местонахождению bin/sbin/man/libexec...
5. sh Build
должен собраться новый sendmail со всей атрибутикой
6. cd cf/cf
берешь за основу любой из *.mc, например: generic-bsd4.4.mc
cp generic-bsd4.4.mc config.mc
дополняешь его нужными вставками для нужной тебе конфигурации:
-------------------------- config.mc ---------------------
divert(-1)
#
# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
# 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(`$Id: generic-bsd4.4.mc,v 8.10 1999/02/07 07:26:02 gshapiro Exp $')
OSTYPE(bsd4.4)dnl
DOMAIN(generic)dnl
dnl вставляем нужные настройки
dnl "FEATURE" started:
FEATURE(always_add_domain)
FEATURE(access_db, `hash -o /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(nouucp,reject)
dnl use local_procmail for procmail filter
dnl PROCMAIL...PATH must be define before local_procmail
define('PROCMAIL_MAILER_PATH','/usr/local/bin/procmail')
dnl define('PROCMAIL_MAILER_FLAGS',...)
dnl define('PROCMAIL_MAILER_ARGS',...)
dnl FEATURE(local_procmail)
FEATURE(local_lmtp)
dnl local_kav - use kavkeeper as LDA (Local Delivery Agent)
dnl FEATURE(local_kav)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(relay_hosts_only)
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
dnl Lavr - do envelope e-mail address for has chance to see it
FEATURE(`masquerade_envelope')dnl
dnl disable MSA port=587
FEATURE(`no_default_msa')
dnl use file /etc/mail/local-host-names as cw
FEATURE(`use_cw_file')
dnl anti-spam checkers delay
FEATURE(`delay_checks')
dnl use anti-spam dnsbl feature
FEATURE(`dnsbl')dnl
dnl ORDB Anti-Spam Database http://www.ordb.org/
dnl FEATURE(`dnsbl', `relays.ordb.org', `Spam bloked - see http://ordb.org/')dnl
FEATURE(`dnsbl', `relays.ordb.org', `Spam bloked - see http://ordb.org/')dnl
dnl ORBZ Anti-Spam Database http://orbz.org/sysadmin-lightside.php
FEATURE(dnsbl,`inputs.orbz.org', `Input Spam bloked - see http://orbz.org/')dnl
dnl uncomment below for filter output mail/lavr
dnl FEATURE(dnsbl,`outputs.orbz.org', `Output Spam bloked - see http://orbz.org/
')dnl
dnl SPAMCOP - http://spamcop.net/bl.shtml
FEATURE(dnsbl,`bl.spamcop.net', `Spam blocked - see http://spamcop.net/bl.shtml?$&{client_addr}')dnl
dnl DNSBL - http://www.dnsbl.org/ - DNSbl
FEATURE(dnsbl,`ex.dnsbl.org', `Spam bloked - see http://www.dnsbl.org/')dnl
dnl OSIRUSOFT - http://relays.osirusoft.com/ - union anti-spam databases
dnl Five in One, see below
FEATURE(dnsbl, `relays.osirusoft.com', `Spam bloked - see http://relays.osirusof
t.com/')dnl
dnl "define" started:
dnl Dialup users should uncomment and define this appropriately
define(`SMART_HOST', `sunct0.jinr.dubna.su')
dnl define(`LOCAL_MAILER_FLAGS', LOCAL_MAILER_FLAGS`'P)dnl
dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')
dnl local-host-names == default see use_cw
dnl define(`confCW_FILE', `-o /etc/mail/local-host-names')
dnl Uncomment both of the following lines to listen on IPv6 as well as IPv4
dnl DAEMON_OPTIONS(`Name=IPv4, Family=inet')
dnl DAEMON_OPTIONS(`Name=IPv6, Family=inet6')
define(`confMAX_HEADERS_LENGTH',16384)
define(`confMAX_MIME_HEADER_LENGTH', `256/128')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy,noetrn')
dnl use a different aliases
dnl define(`ALIAS_FILE', `/etc/mail/aliases,/etc/mail/majordomo.aliases')
dnl
dnl Lavr - permit 8bit-body 8bit=pass8, by default SMTP8 has "8"
dnl
dnl define(`confEIGHT_BIT_HANDLING', `pass8')
define(`confSMTP_MAILER', `smtp8')
dnl Lavr - max-mail lenght in bytes
dnl
define(`confMAX_MESSAGE_SIZE', `50000')
dnl Lavr - max recepients for any maillist
dnl
define(`confMAX_RCPTS_PER_MESSAGE', `25')
dnl Lavr don't make more than 3-connections per sec per IP
define(`confCONNECTION_RATE_THROTTLE',3)
dnl define(`confSMTP_LOGIN_MSG',`$j Sendmail $v/$Z; $b\n"Use of this system for
third party and non-authorized relaying is prohibited." ')
define(`confSMTP_LOGIN_MSG',`JINR-Net Lavr-Antispam-MTA; "Non-authorized relayin
g DENIED." ')
dnl define(`KAVKEEPER_MAILER',`/usr/local/share/AVP/kavkeeper')
dnl define(`KAVKEEPER_CONFIG',`/usr/local/share/AVP/kavkeeper.ini')
dnl if LDA == procmail
dnl define(`KAVKEEPER_LOCAL_MAILER',`procmail')
dnl define(`KAVKEEPER_LOCAL_MAILER',`mail.local')
dnl for check local mail
dnl define(KAV_LOCAL_HACK)
dnl milter
dnl APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_MILTER')
dnl APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER')
dnl DrWeb
dnl MAIL_FILTER(`drweb-filter', `S=inet:3000@localhost, F=T, T=S:5m;R:5m;E:1h')
dnl define(`confINPUT_MAIL_FILTERS', `drweb-filter')
dnl define(`confMILTER_LOG_LEVEL',`6')
MAILER(local)
dnl MAILER(kavkeeper)
MAILER(smtp)
dnl usr procmail as LDA
dnl MAILER(procmail)
------------------------------------------------------------------
прим.: базовая конфигурация file.mc строится в таком порядке:
VERSIONID
OSTYPE
DOMAIN
ниже вставляются нужные FEATURE - читай cf/README
FEATURE
ниже вставляются нужные define - читай cf/README
local macro definitions
завершается все описанием MAILER для локальной доставки и по smpt
MAILER
дополнительно можно вставить свои локальные правила разборки-обработки
LOCAL_RULE_*
LOCAL_RULESETS
7. собираем свой config.cf:
sh Build config.cf
получаем config.cf который копируем в /etc/mail как sendmail.cf
или если делаем cp config.mc sendmail.mc то
sh Build sendmail.cf
прим: прежде чем что-то куда-то копировать - убедиться что sendmail
положен.
8. Возвращаемся в корень sources чтобы сделать install:
sh Build install
9. Читаем файл cf/README - там все расписано про создание своего config.mc
10. После install - смотрим куда установился sendmail, создаем все
необходимые для новой конфигурации дополнительные файлы:
/etc/mail:
local-host-names
relay-domains
карты(maps):
access
mailertable
virtusertable
заполняешь(настраиваешь) файлы НУЖНОЙ информацией, строишь из них базы:
makemap hash access.db < access
...
или используешь make (Makefile) см ниже
--------------------------- Makefile ----------------------------------
# $FreeBSD: src/etc/mail/Makefile,v 1.9.2.1 2000/08/27 17:31:38 gshapiro Exp $
all: access.db mailertable.db virtusertable.db \
# /etc/mail/aliases.db
access.db: access
/usr/sbin/makemap hash access < access
virtusertable.db: virtusertable
/usr/sbin/makemap hash virtusertable < virtusertable
mailertable.db: mailertable
/usr/sbin/makemap hash mailertable < mailertable
#/etc/mail/aliases.db: /etc/mail/aliases
# newaliases
mailertable:
@echo Generating empty mailertable
sed -e 's/^/#/' < mailertable.sample > mailertable
access:
@echo Generating empty access
sed -e 's/^/#/' < access.sample > access
virtusertable:
@echo Generating empty virtusertable
sed -e 's/^/#/' < virtusertable.sample > virtusertable
clean:
rm -f access.db virtusertable.db mailertable.db
-----------------------------------------------------------------
11. пересобираешь файл aliases:
newaliases
12. из sources берешь все дерево cf/* и кладешь его например в
/usr/local/share/sendmail и получаешь /usr/local/share/sendmail/cf
либо пишешь скрипт do-cf (правишь на свой вкус):
---------------------------- do-cf --------------------------------------
#!/bin/sh
if [ -z "$1" ]; then
echo
echo "Purpose: generate template.cf from template.mc"
echo " Usage: do-cf filename.mc target.cf"
exit 1
fi
#--lavr: change this to your specific path
M4=/usr/bin/m4
#--lavr: change this to your specific path
#SENDMAIL_CF_DIR=/path/sendmail/cf
SENDMAIL_CF_DIR=/usr/local/share/sendmail/cf
${M4} -D_CF_DIR_=${SENDMAIL_CF_DIR}/ ${SENDMAIL_CF_DIR}/m4/cf.m4 $1 > $2
echo "New Sendmail config for" $1 done $2
------------------------------------------------------------------------
теперь в любом месте создаешь конфигурацию filename.mc для препроцессора
m4 и запускаешь, например:
do-cf filename.mc sendmail.cf
Все.