насколько я понимаю, dnl в начале строки обозначает
комментарий, но в также он стоит в конце некоторых рабочих опций.
что это значит нужно смотреть в инструкции к макропроцессору m4.
divert(-1)dnl dnl # dnl # This is the sendmail
macro config file for m4. If you make changes to dnl #
/etc/mail/sendmail.mc, you will need to regenerate the dnl #
/etc/mail/sendmail.cf file by confirming that the sendmail-cf
package is dnl # installed and then performing a dnl # dnl
# make -C /etc/mail dnl
# include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`setup
for Red Hat Linux')dnl OSTYPE(`linux')dnl dnl # dnl #
default logging level is 9, you might want to set it higher to dnl
# debug the configuration dnl # dnl define(`confLOG_LEVEL',
`9')dnl dnl # dnl # Uncomment and edit the following line if
your outgoing mail needs to dnl # be sent out through an external
mail server: dnl # dnl
define(`SMART_HOST',`smtp.your.provider') dnl
# define(`confDEF_USER_ID',``8:12'')dnl dnl
define(`confAUTO_REBUILD')dnl define(`confTO_CONNECT',
`1m')dnl define(`confTRY_NULL_MX_LIST',true)dnl define(`confDONT_PROBE_INTERFACES',true)dnl define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl define(`ALIAS_FILE',
`/etc/aliases')dnl define(`STATUS_FILE',
`/var/log/mail/statistics')dnl define(`UUCP_MAILER_MAX',
`2000000')dnl define(`confUSERDB_SPEC',
`/etc/mail/userdb.db')dnl define(`confPRIVACY_FLAGS',
`authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confAUTH_OPTIONS',
`A')dnl dnl # dnl # The following allows relaying if the user
authenticates, and disallows dnl # plaintext authentication
(PLAIN/LOGIN) on non-TLS links dnl # dnl
define(`confAUTH_OPTIONS', `A p')dnl dnl # dnl # PLAIN is the
preferred plaintext authentication method and used by dnl #
Mozilla Mail and Evolution, though Outlook Express and other MUAs
do dnl # use LOGIN. Other mechanisms should be used if the
connection is not dnl # guaranteed secure. dnl # Please
remember that saslauthd needs to be running for AUTH. dnl # dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5
LOGIN PLAIN')dnl dnl # dnl # Rudimentary information on
creating certificates for sendmail TLS: dnl # make -C
/usr/share/ssl/certs usage dnl # or use the included makecert.sh
script dnl
# define(`CERT_DIR',`/etc/mail/certs') define(`confCACERT_PATH',`CERT_DIR') define(`confCACERT',`CERT_DIR/cacert.pem') define(`confSERVER_CERT',`CERT_DIR/cert.pem') define(`confSERVER_KEY',`CERT_DIR/key.pem') define(`confCLIENT_CERT',`CERT_DIR/cert.pem') define(`confCLIENT_KEY',`CERT_DIR/key.pem')
dnl
# dnl # This allows sendmail to use a keyfile that is shared with
OpenLDAP's dnl # slapd, which requires the file to be readble by
group ldap dnl # dnl
define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl dnl
# dnl define(`confTO_QUEUEWARN', `4h')dnl dnl
define(`confTO_QUEUERETURN', `5d')dnl dnl define(`confQUEUE_LA',
`12')dnl dnl define(`confREFUSE_LA',
`18')dnl define(`confTO_IDENT', `0')dnl dnl
FEATURE(delay_checks)dnl FEATURE(`no_default_msa',`dnl')dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl FEATURE(`mailertable',`hash
-o /etc/mail/mailertable.db')dnl FEATURE(`virtusertable',`hash -o
/etc/mail/virtusertable.db')dnl FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl dnl
# dnl # The -t option will retry delivery if e.g. the user runs
over his quota. dnl # FEATURE(local_procmail,`',`procmail -t
-Y -a $h -d $u')dnl FEATURE(`access_db',`hash -T<TMPF>
-o /etc/mail/access.db')dnl-? #возможно это нужно для
обеспечения работы DNSBL FEATURE(`blacklist_recipients')dnl -
? EXPOSED_USER(`root')dnl - ? dnl # dnl # The following
causes sendmail to only listen on the IPv4 loopback address dnl #
127.0.0.1 and not on any other network devices. Remove the
loopback dnl # address restriction to accept email from the
internet or intranet. dnl # dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl dnl # dnl
# The following causes sendmail to additionally listen to port 587
for dnl # mail from MUAs that authenticate. Roaming users who
can't reach their dnl # preferred sendmail daemon due to port 25
being blocked or redirected find dnl # this useful. dnl # dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl dnl # dnl
# The following causes sendmail to additionally listen to port 465,
but dnl # starting immediately in TLS mode upon connecting. Port
25 or 587 followed dnl # by STARTTLS is preferred, but roaming
clients using Outlook Express can't dnl # do STARTTLS on ports
other than 25. Mozilla Mail can ONLY use STARTTLS dnl # and
doesn't support the deprecated smtps; Evolution <1.1.1 uses
smtps dnl # when SSL is enabled-- STARTTLS support is available
in version 1.1.1. dnl # dnl # For this to work your OpenSSL
certificates must be configured. dnl # dnl
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl dnl # dnl #
The following causes sendmail to additionally listen on the IPv6
loopback dnl # device. Remove the loopback address restriction
listen to the network. dnl # dnl
DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6,
Family=inet6')dnl dnl # dnl # enable both ipv6 and ipv4 in
sendmail: dnl # dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet,
Name=MTA-v6, Family=inet6') dnl # dnl # We strongly recommend
not accepting unresolvable domains if you want to dnl # protect
yourself from spam. However, the laptop and users on computers dnl
# that do not have 24x7 DNS do need this. dnl #
dnl FEATURE(`accept_unresolvable_domains')dnl -
эту фичу закомментил dnl # dnl
FEATURE(`relay_based_on_MX')dnl dnl # dnl # Also accept email
sent to "localhost.localdomain" as local email. dnl #
LOCAL_DOMAIN(`localhost.localdomain')dnl dnl # dnl # The
following example makes mail from this host and any additional dnl
# specified domains appear to be sent from mydomain.com dnl # dnl
MASQUERADE_AS(`mydomain.com')dnl dnl # dnl # masquerade not
just the headers, but the envelope as well dnl # dnl
FEATURE(masquerade_envelope)dnl dnl # dnl # masquerade not
just @mydomainalias.com, but @*.mydomainalias.com as well dnl
# dnl FEATURE(masquerade_entire_domain)dnl dnl # dnl
MASQUERADE_DOMAIN(localhost)dnl dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl
MASQUERADE_DOMAIN(mydomainalias.com)dnl dnl
MASQUERADE_DOMAIN(mydomain.lan)dnl
#это собственно адреса сайтов DNSBL, но реализация
от Ihtiandr расширена. чтобы можно было исключить пользователей
которых нужно освободить от этой ступени защиты. добавляем FEATURE
('access_db')dnl и FEATURE ('delay_checks','friend')dnl. в
/etc/mail/access добавляем пользователей
которых осовбождаем. обновляем#/etc/mail/access_db
FEATURE(dnsbl, `bl.spamcop.net', `550 Mail from
$&{client_addr} rejected - see
bl.spamcop.net') FEATURE(`access_db')dnl FEATURE(`delay_checks',`friend')dnl FEATURE(dnsbl,
`cbl.abuseat.org', `550 Mail from $&{client_addr} rejected - see
cbl.abuseat.org') FEATURE(`access_db')dnl FEATURE(`delay_checks',`friend')dnl FEATURE(dnsbl,
`dnsbl.njabl.org', `550 Mail from $&{client_addr} rejected - see
dnsbl.njabl.org') FEATURE(`access_db')dnl FEATURE(`delay_checks',`friend')dnl FEATURE(dnsbl,
`dnsbl.sorbs.net', `550 Mail from $&{client_addr} rejected - see
dnsbl.sorbs.net') FEATURE(`access_db')dnl FEATURE(`delay_checks',`friend')dnl FEATURE(dnsbl,
`list.dsbl.org', `550 Mail from $&{client_addr} rejected - see
list.dsbl.org') FEATURE(`access_db')dnl FEATURE(`delay_checks',`friend')dnl FEATURE(dnsbl,
`zen.spamhaus.org', `550 Mail from $&{client_addr} rejected -
see
zen.spamhaus.org') FEATURE(`access_db')dnl FEATURE(`delay_checks',`friend')dnl
#Ожидаем
5000ms перед выдачей приглашения, если команды писал спам-бот раньше
приглашения,то почту от него принимать не будем.
#точно не ясно. возможно нам звонят снаружи мы
откликаемся и говорим что начнем принимать почту через 5000ms . спам
бот не ждет это время а сразу пуляет письма а мы не принимаем. а
нормальный ждет. также с точки зрения простого пользовтеля который
отсылает письмо через наш серевер с помощью Thunderird это выглядит
так, что он жмет кнопку отправить после этого идет пауза 5 секунд а
потом только письмо начинает отправляться. чтобы этого избежать для
пользователей нашей локальной сети нужно прописать эту сеть,сети в
/etc/mail/access. с параметром GreetPause.
INPUT_MAIL_FILTER(`greylist',`S=local:/var/milter-greylist/milter-greylist.sock,F=,
T=S:1m;R:1m')dnl # Различные опции - макросы нужные для работы
milter-greylist
так как sendmail реально читает и работает именно с
sendmail.cf
на этом этапе может возникать ошибка вид ее не скажу.
m4 ругается. происходит если в sendmail.cf используются неправильные
кавычки в директивах, опциях . должно быть: первая обратная кавычка
вторая замыкающая одинарная. пример
далее защита против bogus helo. создаем файл
/etc/mail/top-level-domain. в
/etc/mail/sendmail.cf (внимание НЕ в /etc/mail/sendmail.mc)
добавляем кусок. делалось на основе
этого. как включить через
sendmail.mc неясно, как указано сделать у Ihtiandr не проверял.
соответственно данную поправку нужно вносить заново в
/etc/mail/sendmail.cf каждый раз как мы поменяли /etc/sendmail.mc и
после пересобрали /etc/sendmail.cf c помощью #m4 sendmail.mc >
sendmaill.cf
чтобы работали некоторые фичи их поддержка должна быть
включена при компиляции sendmail. вот фичи моего sendmail
#clamd -V ClamAV 0.92.1/8572/Wed Nov 5 15:59:50 2008
c другими соседними версиями Clamav наблюдается зависон
после дня-трех дней и далее проверка писем прекращается. в инете
внятной причины этого найти не удалось. мое подозрение что это дело
связано с обновлением антивирусной базы через freshclam
в файле /etc/sysconfig/clamav-milter ключ --external
обеспечивает что файлы на проверку отсылаются из clamav-milter -->
--> в clamd. поэтому служба clamd должна быть запущена.
как проверить что связка clamd-clamav-milter-sendmail
работает. посылаем пустое письмо себе и смотрим исходный текст
письма. должно появится что то вроде X-virus status clean. но точно
сейчас не помню нотификация в теле письма заложена по умолчанию или
нужно где то прописать. потом вкладываем тестовый вирус, кстати
такие есть в комплекте clamav и смотрим то ли в /var/log/maillog то
ли /var/log/clamav/clamd.log то ли в /var/log/messages
далее сменилось доменное имя (скажем box.net, почтовому
серверу было выбрано имя mail.box.net и IP=192.168.11.6 ),
соответственно нужно было изменить настройки в почтовом сервере. Что
от чего зависит отлично описано здесь.
:)
В моем случае я не пользуюсь virtusers(он пустой).
Почта принимается с одного домена.
Что фактически было сделано.
1. написано письмо хостеру с просьбой изменить mx
запись на сервере DNS на
mail.box.net
проверить можно так:
#nslookup - IPDNShostera
>set query=mx
>box.net
...
2. в /etc/mail/Local-host-names прописать
box.net
3. в обратной зоне dns у провайдера (а не у хостера)
было прописано
192.168.11.6 mail.box.net
чтоб почтовый сервер не причисляли к спамерам у тех у
кого включена проверка обратной зоны.
4. /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.11.6 mail.box.net mail
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mail.box.net
после изменения /etc/sysconfig/network нужно
перезагрузить комп иначе sendmail как то не подцепляет изменение
даже если перезапустить service network и service sendmail
описание файла /etc/sysconfig/network и кстати про
назначениие и других файлов в папке /etc/sysconfig написано в
/usr/share/doc/initscripts*/sysconfig.txt. Кстати там написано что
HOSTNAME подразумевается fdqn но необязательно.
образец письма в этом случае.
[root@mail ~]# echo ""|mail -s "####"
john
[john@mail mail]$ cat /var/spool/mail/john
From root@mail.box.net Fri Jan 9 15:25:22 2009
Return-Path: <root@mail.box.net>
Received: from mail.box.net (localhost.localdomain
[127.0.0.1])
by mail.box.net (8.13.4/8.13.4) with ESMTP id
n09FPLAS001937
for <john@mail.box.net>; Fri, 9 Jan 2009
15:25:21 GMT
Received: (from root@localhost)
by mail.box.net (8.13.4/8.13.4/Submit) id
n09FPLrh001936
где то в статье nixp.ru про настройкиу freebsd для
linux оида было сказао про ssh . про настройку отмены аутентификации
по паролю а только по публичному ключу..