Дайти ссылки по сетевому администрированию почтовых серверов

Автор: Юрий Клещетников Дата: 16.10.2009 11:43
Я стал кандидатом в админы и хочу, пока есть время почитать про почтовые сервера в Линукс.
Накидайте мне, пожалуйста, ссылки на хорошую литературу.
Re: Дайти ссылки по сетевому администрированию почтовых серверов 16.10.2009 22:53daydrim
Книга "UNIX Руководство системного администратора. Для профессионалов" Автор Э.Немет
Это классика.
Re: Дайти ссылки по сетевому администрированию почтовых серверов 17.10.2009 08:31blH,
Не помню, говорил ли я уже про книгу Марка Г.Собелла "практическое руководство по RedHat Linux". В любом случае, если её трудно достать -- можно на сайте АСПа заказать книжку "Администрирование ASPLinux. Авторизованный учебный курс", написана она исключительно доходчиво и после её прочтения проблем с настройкой сендмаила как-то не возникает.

Правда, существует ещё хитрая и не поддающаяся никаким вменяемым действиями программа postfix, но про неё ещё в далёком детстве мне был даден правильный совет "брось каку"

Re: Дайти ссылки по сетевому администрированию почтовых серверов 17.10.2009 09:46BigAndy
Хм.постфикс настраивется путем коррекции пяти строчек конфига... Что я не так делал? (хотя предпочитаю сендмыл)
Re: Дайти ссылки по сетевому администрированию почтовых серверов 18.10.2009 15:18blH,
Не знаю... я эти 5 строчек в первую очередь скорректировал. А научить постфикс ловить мыло не с локального компа, а из тырнета -- так и не смог. То, что сендмаилом делается запросто, в постфиксе... короче, я сдался.
Re: Дайти ссылки по сетевому администрированию почтовых серверов 23.10.2009 13:52bsm
Юрий Клещетников Пишет:
-------------------------------------------------------
> Я стал кандидатом в админы и хочу, пока есть время
> почитать про почтовые сервера в Линукс.
> Накидайте мне, пожалуйста, ссылки на хорошую
> литературу.

[www.intuit.ru]
[people.ee.ethz.ch]
[www.opennet.ru]
[www.linux.org.ru]
[www.sendmail.org]
[sendmail.by.ru]
[www.sendmail.net]
[www.anrb.ru]
[www.anrb.ru]
[www.dul.ru]
[linux.ufaras.ru]

[ddnsbl.sourceforge.net]
[chronos.cs.msu.su]
[smc.iszf.irk.ru]
[www.computerra.ru]

[www.opennet.ru]
[www.opennet.ru]
[www.kryukov.biz]
[www.vnc.org.ua]
[linuxportal.ru]

Рабочий конфиг-

divert(-1)
#
# Вто 04 Окт 2005 10:14:39
#
# 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 Linux.
# 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.
#

dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new /etc/sendmail.cf by running the following command:
dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl

divert(0)dnl
dnl # Установка из исходников
include(`/usr/src/sendmail-8.14.3/cf/m4/cf.m4')
VERSIONID(`$Id: generic-linux.mc, v 8.14.0 1999/09/24 22:48:05 gshapiro Exp $')
dnl # Из .rpm
dnl # include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
dnl # VERSIONID(`generic for ASPLinux Срд 20 Сен 2006 13:53:16')
OSTYPE(linux)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 #
undefine(`BITNET_RELAY')dnl
undefine(`UUCP_RELAY')dnl
dnl #**************************************************************************
dnl #
dnl # Чтв 10 Апр 2008 17:21:54
dnl # Авторизация отправки почты (Cyrus SASL2)
dnl #
dnl # plaintext authentication (PLAIN/LOGIN)
dnl define(`confAUTH_OPTIONS', `A')dnl
dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confDEF_AUTH_INFO', `/etc/mail/default-auth-info')dnl
dnl DAEMON_OPTIONS(`Post=587, Name=MSA, M=E')dnl
dnl #
dnl # Для увеличения объёма отладочной информации в /var/log/maillog
dnl define(`confLOG_LEVEL', `15')dnl
dnl #**************************************************************************
dnl #
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 #
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 #
dnl # для Debian
dnl define(`confAUTO_REBUILD')dnl
dnl #
define(`confDEF_USER_ID', ``8:12'')dnl
define(`confDOMAIN_NAME', `my_domain')dnl
define(`confDONT_PROBE_INTERFACES', true)dnl
define(`confHOST_STATUS_DIRECTORY', `/etc/mail/.hoststat')dnl
dnl #
dnl # Кол-во получателей для каждого письма не более 24 *** Срд 25 Апр 2007 11:03:59
define(`confMAX_RCPTS_PER_MESSAGE', `24')dnl
dnl #
dnl # Максимальный размер письма, b
dnl # Если нет необходимости ограничивать, то соглашение закомментировать.
dnl #
define(`confMAX_MESSAGE_SIZE', `48000000')dnl
dnl #
define(`confMCI_CACHE_SIZE', `16')dnl
define(`confMCI_CACHE_TIMEOUT', `10m')dnl
define(`confPRIVACY_FLAGS', `authwarnings, novrfy, noexpn, restrictqrun')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTO_QUEUERETURN', `5d')dnl
define(`confTO_QUEUEWARN', `4h')dnl
define(`confTRY_NULL_MX_LIST', true)dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
dnl define(`POP_B4_SMTP_TAG', `')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
dnl #
dnl # Убираем банер sendmail *** Срд 25 Апр 2007 11:03:08
define(`confSMTP_LOGIN_MSG', `$b')dnl
dnl #
dnl # Пнд 04 Дек 2006 15:18:26
dnl #
dnl # Замедление процесса подбора имени локального пользователя-
dnl #
dnl # Через 3 неудачные попытки подбора имени почтового юзера происходит
dnl # односекундная задержка с ответом после каждой команды RCPT со
dnl # стороны спамера..
define(`confBAD_RCPT_THROTTLE', `3')
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # make -C /usr/share/ssl/certs usage
dnl #
dnl define(`confCACERT_PATH', `/usr/share/ssl/certs')
dnl define(`confCACERT', `/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT', `/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY', `/usr/share/ssl/certs/sendmail.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 FEATURE(delay_checks)dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
dnl #
dnl # Spam check is done.
dnl #
dnl # Вставка SPAM-фильтра Пнд 23 Фев 2004 17:59:28 **************************
dnl include(`/home/bsm/working/SendMail/sendmail-regex.mc')
dnl #
dnl # Блокирование рассылок с SPAM-узлов Срд 29 Июн 2005 13:04:19 ************
dnl FEATURE(`dnsbl', `opm.blitzed.org', `Message from $&{client_addr} blocked as SPAM - see [opm.blitzed.org')dnl]
dnl FEATURE(`dnsbl', `blackholes.mail-abuse.org', `Message from $&{client_addr} blocked as SPAM - see [blackholes.mail-abuse.org')dnl]
dnl FEATURE(`dnsbl', `cbl.abuseat.org', `Message from $&{client_addr} blocked as SPAM - see [cbl.abuseat.org')dnl]
dnl FEATURE(`dnsbl', `dialups.mail-abuse.org', `Message from $&{client_addr} blocked as SPAM - see [dialups.mail-abuse.org')dnl]
dnl FEATURE(`dnsbl', `relays.mail-abuse.org', `Message from $&{client_addr} blocked as SPAM - see [relays.mail-abuse.org')dnl]
dnl FEATURE(`dnsbl', `relays.ordb.org', `Message from $&{client_addr} blocked as SPAM - see [ordb.org')dnl]
dnl FEATURE(`dnsbl', `dynablock.wirehub.net', `Message from $&{client_addr} blocked as SPAM - see [dynablock.wirehub.net')dnl]
dnl #
FEATURE(`dnsbl', `bl.spamcop.net', `Message from $&{client_addr} blocked as SPAM - see [spamcop.net], [www.spamcop.net];{client_addr}')dnl
FEATURE(`dnsbl', `dnsbl.njabl.org',`Message from $&{client_addr} blocked as SPAM - see [njabl.org];{client_addr}')
FEATURE(`dnsbl', `dul.ru', `Message from $&{client_addr} blocked as SPAM - see [dul.ru]
FEATURE(`dnsbl', `list.dsbl.org', `Message from $&{client_addr} blocked as SPAM - see [dsbl.org];{client_addr}')dnl
FEATURE(`dnsbl', `sbl.spamhaus.org', `Message from $&{client_addr} blocked as SPAM - see [www.spamhaus.org];{client_addr}')dnl
FEATURE(`dnsbl', `xbl.spamhaus.org', `Message from $&{client_addr} blocked as SPAM - see [www.spamhaus.org];{client_addr}')dnl
FEATURE(`dnsbl', `work.drbl.caravan.ru', `Message from $&{client_addr} blocked as SPAM - see [drbl.caravan.ru];{client_addr}')dnl
dnl #
dnl #*** Чтв 27 Июл 2006 15:05:33 *** milter-greylist (source)
dnl #
dnl INPUT_MAIL_FILTER(`greylist', `S=local:/var/milter-greylist/milter-greylist.sock, F=, T=S:4m;R:4m')dnl
dnl #
dnl #*** Вто 07 Ноя 2006 14:11:03 *** (SpamAssassin & Spamass-milter).rpm
dnl # spamassassin-3.1.9-1.110asp
dnl # spamass-milter-0.3.1-3.110asp
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
dnl #
dnl # Virus check in done
dnl #
dnl #*** Вто 07 Ноя 2006 14:11:47 *** (ClamAntiVirus Milter).rpm
dnl # clamav-0.93.3-1.rh9.rf
dnl # clamav-db-0.93.3-1.rh9.rf
dnl # clamav-devel-0.93.3-1.rh9.rf
dnl # clamav-milter-0.93.3-1.rh9.rf
dnl # clamd-0.93.3-1.rh9.rf
dnl # clamsmtp-1.9-1.110asp
INPUT_MAIL_FILTER(`clamav-milter', `S=local:/var/clamav/clamav-milter.sock, F=, T=S:4m;R:4m;E:10m')dnl
dnl #
dnl #*** Вто 07 Ноя 2006 15:37:55 *** kav4milter-redhat-5.6.20-2.i386.rpm
dnl define(`_FFR_MILTER', `true')dnl
dnl INPUT_MAIL_FILTER(`KAVMilter', `S=inet:1052@127.0.0.1, F=T, T=S:3m;R:5m;E:10m')dnl
dnl #
dnl #*** Птн 16 Май 2008 10:28:41 *** Dr.Web
dnl INPUT_MAIL_FILTER(`drweb-filter', `S=inet:3001@127.0.0.1, F=T, T=C:1m;S:5m;R:5m;E:10m')dnl
dnl #
dnl # Если отключим confMILTER_LOG_LEVEL, то в общем логе будет меньше сообщений
dnl # всех ..-milter-ов
dnl # Как не странно, но получается на оборот!!!
define(`confMILTER_LOG_LEVEL', `6')dnl
dnl #
define(`confMILTER_MACROS_CONNECT', `t, b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl
define(`confMILTER_MACROS_HELO', `s, {tls_version}, {cipher}, {cipher_bits}, {verify}, {cert_subject}, {cert_issuer}')dnl
define(`confMILTER_MACROS_ENVFROM', `i, j, {auth_type}, {auth_authen}')dnl
define(`confMILTER_MACROS_ENVRCPT', `r, v, Z, {spamassassin}')dnl
dnl #
define(`confINPUT_MAIL_FILTERS', `clamav-milter, spamassassin')dnl
dnl define(`confINPUT_MAIL_FILTERS', `drweb-filter, clamav-milter, spamassassin')dnl
dnl define(`confINPUT_MAIL_FILTERS', `greylist, KAVMilter, clamav-milter, spamassassin')dnl
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.
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
EXPOSED_USER(`root')dnl
dnl #**************************************************************************
dnl #
dnl # 25.01.2003 г. Изменена секция в /etc/sendmail.cf
dnl # "Smart" relay host (may be null)
dnl #
dnl # если почта не приходит, то:
dnl # 1. Перенаправим к провайдеру- пусть он её отправляет
dnl # см. выше- define(`SMART_HOST', `mail.domain_ISP')
dnl # 2. Максимальный размер письма, b - define(`confMAX_MESSAGE_SIZE', `10000000')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 #
DAEMON_OPTIONS(`Port=smtp, Addr=127.0.0.1, Name=MTA')dnl
dnl #
dnl # Если почта от локальных пользователей не уходит наружу, то
DAEMON_OPTIONS(`Port=smtp, Addr=my_localnet_ip, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp, Addr=my_internet_ip, Name=MTA')dnl
dnl #
dnl # Для того, что бы ГП с 10.10.1.247 могли отправлять почту через КБ, а не через
dnl # провайдера (по кольцу)
DAEMON_OPTIONS(`Port=smtp, Addr=my_ip_ISP_localnet, 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 # NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl # a kernel patch
dnl #
dnl DAEMON_OPTIONS(`port=smtp, Addr=::1, Name=MTA-v6, Family=inet6')dnl
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 #
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 #
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 # Срд 25 Апр 2007 11:16:00
dnl # localdomain в адресе отправителя заменяются на произвольную строку
dnl #
dnl MASQUERADE_AS(`mydomain.com')dnl
dnl MASQUERADE_AS(localdomain)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
dnl #
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl HACK(`popauth')dnl
Cwlocalhost.localdomain

dnl #
dnl # Птн 03 Июн 2005 14:43:44
dnl # Чтв 21 Дек 2006 09:26:06
dnl # Вто 21 Окт 2008 15:37:19
dnl #

LOCAL_CONFIG

#
# Вто 21 Окт 2008 15:31:39
#
# Правила-исключения
#
# пропускать адреса вида relay2.domain
Krelays regex -a@MATCH ^(mail|mta|mx|relay|smtp).*[0-9]*(\..*){2,}
#
# пропускать почту с доменов..
Kexdoms regex -a@MATCH \.(2upost\.com|adsl\.com\.ua|alcatel-lucent\.com|aleniaspazio\.it|atminst\.ru|demostech\.ca|hotmail\.com|kharkov\.ua|imperija\.com|isppan\.waw\.pl|mail\.ru|navis\.ru|navis\.spb\.su|nvstech\.ch|moneybookers\.com|orizon-navigation\.com|pppoe\.TeleportSV\.net|rambler\.ru|socadvantage\.com|subscribe\.ru|telelogic\.com|qmail\.com|ukrpost\.net|ukrtel\.net|ukr\.net|ukrtel\.net|voliacable\.com|yandex\.ru)$
#
# пропускать соединения с ip-адресов сетей..
Kournet0 regex -a@MATCH 127\.0\.0\.1
Kournet1 regex -a@MATCH 10\.10\.1\.247
Kournet2 regex -a@MATCH 192\.168\.[0-9]{1}\.[0-9]{1,3}

#
# Правила блокировки
#
# Правило 1: Имя хоста содержит 4 группы цифр, разделённых символами [._x-]
# cpe-98-27-181-209.neo.res.rr.com
# dialup-88-147-133-182.san.ru
# 109.251-224-87.telenet.ru
# 125x103x16x176.ap125.ftth.ucom.ne.jp
# 219-180-207-85.zapcechy.adsl-llu.static.bluetone.cz
#
Kblock1 regex -a@MATCH ([0-9]{1,3}[._x-]){4}

#
# Правило 2: имя хоста содержит как минимум 2 группы цифр
#
Kblock2 regex -a@MATCH ([0-9]+[._x-]){2,}.*(\..*){2,}

#
# Правило 3: Имя хоста содержит как минимум 8 шестнадцатеричных цифр подряд
# bd21a11bd.virtual.com.br
#
Kblock3 regex -a@MATCH [0-9a-f]{8,}(\..*){3,}

#
# Правило 4: Имя хоста содержит одно из указанных сочетаний
# 1.pool85-58-70.dynamic.orange.es
# 0x5735c879.esnxx7.dynamic.dsl.tele.dk
# 122.208.c1008-a53.dsl.dynamic.vsi.ru
# 17-4.gprs.tmcz.cz
# abfx26.neoplus.adsl.tpnet.pl
#
Kblock4 regex -a@MATCH [0-9].*(cable|client|connect|dhcp|dial|dsl|dynamic|gprs|internet|netversion|pool|ppp||static|telpol|video|user).*(\..*){2,}

#
# Правило 5: имя хоста содержин указанные сочетания с последующими цифрами
# pool3.provider.ru
#
Kblock5 regex -a@MATCH (cable|client|connect|dhcp|dial|dsl|dyn|gprs|internet|ip|nat|netversion|pool|ppp||static|telpol|video|vpn|user)[a-z_-]*[0-9]+.*(\..*){2,}

#
# Правило 6: имя хоста, почту от которого не принимать!
#
Kblock6 regex -a@MATCH (depacco\.com|dynamic\.orange\.es|(loveplanet|mamba|odnoklasniki|vkontakte|vspomni)\.ru|odnoklassniki\.km\.ru|mediating\.barrier\.volia\.net|stalinhost\.cn|telecomitalia\.it|vectranet\.pl)$
#
#***

#
# BlackList для e-mail:
#
# Электронные адреса, в которых встречается больше 2 знаков подчеркивания:
#
KSPAM1 regex -a@MATCH ^([[:alnum:]]*)(_+)([[:alnum:]]*)(_+)([[:alnum:]]*)(_+)[[:alnum:]_]*$

#
# Стандартные спам-слова:
#
# ..|office|.. отменено, т.к. имеется абонент office@erdcad-support.at
KSPAM2 regex -a@MATCH addres|adres|adsl|adult|anekdot|anonymous|astrolog|bonus|c[0o]ck|cable|cash|casino|customer|D[d]eposits|deal|devnull|dhcp|dial|discount|dollar|donna|dynamic|fuck|game|girl|honey|horoscopes|job|kiss|lolita|love|market|modem|money|movie|noemail|nomail|nouser|offer|penis|playboy|porno|P[p]ersonal|ppp|prize|rassylk|reclam|reklam|romantic|R[r]efinance|sales|sex|shop|sms|spam|spool|sweet|viagra|warning|woman|xxx|zhifa
#
# ..|sms|.. - отменено, т.к. имеется абонент в thsmsgxrt11p.thalesgroup.com
KSPAM_TEST regex -a@MATCH addres|adres|adsl|adult|anekdot|anonymous|astrolog|bonus|c[0o]ck|cable|cash|casino|customer|D[d]eposits|deal|dhcp|dial|discount|dollar|donna|dynamic|fuck|game|girl|honey|horoscopes|job|kiss|lolita|love|market|modem|money|movie|noemail|nomail|nouser|offer|office|penis|playboy|porno|P[p]ersonal|ppp|prize|rassylk|reclam|reklam|romantic|R[r]efinance|sales|sex|shop|spam|spool|sweet|viagra|warning|woman|xxx|zhifa

#
# Цифровые электронные адреса:
#
KSPAM3 regex -a@MATCH ^[[:digit:]]+$

#
# Комбинированные адреса вида 12.23abc@mail.ru, 12-23dfg@mail.ru, 123-345_567@mail.ru:
#
KSPAM4 regex -a@MATCH ^([[:digit:]]+)([-+=._~]+)([[:digit:]]+)[[:alnum:]+=._~-]*$

#
# Доменная часть, в которой встречается 3 или более цифры, дефиса или знака подчеркивания (например,
# jackshck@66-50-94-20.prtc.net, kelvin@69.37.99.9.adsl.snet.net, head@p3EE251E8.dip.t-dialin.net,
# htmltmpl@d99-ps0-ros.alphalink.com.au)
#
KSPAM5 regex -a@MATCH .*[0-9_-].+[0-9_-].+[0-9_-].*
KSPAM6 regex -a@MATCH .+[.].+[.].+[.].+[.].+[.].+

LOCAL_RULESETS

#
# Срд 07 Фев 2007 15:37:46 ***
#
# Как именно средствами Sendmail запретить прием внешних писем от своего домена
#
SChk_from_localdom
R127.0.0.1 $@ OK
R192.168.0.$* $@ OK
#
# Пнд 12 Мар 2007 16:45:02
#
# Изменение необходимо учитывать в файлах-
#
# /etc/mail/{access,sendmail.mc},
# /etc/hosts.allow,
# /home/bsm/working/firewall/blocking.iptables.sh
#
R192.168.3.120 $@ OK
R10.10.1.247 $@ OK
#
R$* $#error $@ 5.7.1 $: "550 Access denied ("$&{client_addr}" cannot originate mail from "$&{f}";-)"
# или, что лучше-
#R$* $#error $@ 5.7.1 $: "You can't send a letter to this user. Go away."

SLocal_check_mail
R$* $: $1 $| $>3 $1
R$* $| $*<@$*local.domain.>$* $: $1 $| $>"Chk_from_localdom" $&{client_addr}
R$* $| $#$* $#$2
R$* $| $* $: $1
#
#***

#
# Вто 21 Окт 2008 15:31:39
#
SLocal_check_relay

#
# Пропускаем соединения со своей подсети
#
R$* $: $(ournet0 $&{client_name} $)
R@MATCH $@ OK
R$* $: $(ournet1 $&{client_name} $)
R@MATCH $@ OK
R$* $: $(ournet2 $&{client_name} $)
R@MATCH $@ OK

#
# Применяем правила-исключения
#
R$* $: $(relays $&{client_name} $)
R@MATCH $@ OK
R$* $: $(exdoms $&{client_name} $)
R@MATCH $@ OK

#
# Выполним разрешение имени клиента
#
# Каждый почтовый сервер должен иметь доменное имя
#
# <TEMP>- временная ошибка DNS
# <FORGED>- запрос А-записи по доменному имени возвращает IP-адрес, отличный от исходного
# <FAIL>- отсутствует PTR-запись почтового сервера
#
R$* $: < $&{client_resolve} >
R<TEMP> $#error $@ 4.4.0 $: "450 TEMP denied (dns rule 1). Cannot resolve PTR for " $&{client_addr}
R<FORGED> $#error $@ 5.7.1 $: "550 FORGED denied (dns rule 2). IP name forged (PTR and A records mismatch) for " $&{client_name}
R<FAIL> $#error $@ 5.7.1 $: "550 FAIL denied (dns rule 3). IP name lookup failed for " $&{client_name}

#
# Блокируем соединения согл. правилам блокировки
# Необходимо протестировать!!!
#
R$* $: $(block6 $&{client_name} $)
R@MATCH $#error $@ 5.7.1 $: "554 Bad hostname for mailserver (regex rule 6): " $&{client_addr}
#
R$* $: $(block1 $&{client_name} $)
R@MATCH $#error $@ 5.7.1 $: "554 Bad hostname for mailserver (regex rule 1): " $&{client_addr}
#
R$* $: $(block2 $&{client_name} $)
R@MATCH $#error $@ 5.7.1 $: "554 Bad hostname for mailserver (regex rule 2): " $&{client_addr}
#
R$* $: $(block3 $&{client_name} $)
R@MATCH $#error $@ 5.7.1 $: "554 Bad hostname for mailserver (regex rule 3): " $&{client_addr}
#
#R$* $: $(block4 $&{client_name} $)
#R@MATCH $#error $@ 5.7.1 $: "554 Bad hostname for mailserver (regex rule 4): " $&{client_addr}
#
#R$* $: $(block5 $&{client_name} $)
#R@MATCH $#error $@ 5.7.1 $: "554 Bad hostname for mailserver (regex rule 5): " $&{client_addr}
#
R$* $: $(SPAM_TEST $&_ $)
R@MATCH $#error $: 553 Your relay looks like SPAM_TEST-relay: $&_.

##################################################
# [www.softerra.ru] #
##################################################
HX-Mailer: $>CheckMailer
HX-Server: $>CheckMailer

SCheckMailer
RAdvanced Direct Remailer $* $#error $@ 5.7.1 $: "554 Spam (ADR)"
RAdvanced Mass Sender $* $#error $@ 5.7.1 $: "554 Spam (AMS)"
R$* advcomtest $* $#error $@ 5.7.1 $: "554 Spam (advcomtest)"
R$* Bomber $* $#error $@ 5.7.1 $: "554 Spam (Bomber)"
RCaretop $* $#error $@ 5.7.1 $: "554 Spam (Caretop)"
RDynamic Opt-In Emailer $* $#error $@ 5.7.1 $: "554 Spam (Dynamic Opt-In Emailer)"
R$* Group Spamer $#error $@ 5.7.1 $: "554 Spam (WE Group Spamer)"
RLigra Mailer $* $#error $@ 5.7.1 $: "554 Spam (Ligra Mailer)"
RLK SendIt $* $#error $@ 5.7.1 $: "554 Spam (LK SendIt)"
RMailer $* $#error $@ 5.7.1 $: "554 Spam (Mailer)"
RMailer Signature $#error $@ 5.7.1 $: "554 Spam (Mailer Si)"
RMailList Express $* $#error $@ 5.7.1 $: "554 Spam (MailList Express)"
RMailloop $* $#error $@ 5.7.1 $: "554 Spam (Mailloop)"
RMail Sender $* $#error $@ 5.7.1 $: "554 Spam (Mail Sender)"
RMail Service $* $#error $@ 5.7.1 $: "554 Spam (Mail Service)"
RMega-Mailer $* $#error $@ 5.7.1 $: "554 Spam (Mega-Mailer)"
RMMailer $* $#error $@ 5.7.1 $: "554 Spam (MMailer)"
Rnone $#error $@ 5.7.1 $: "554 Spam (none)"
RPersMail $* $#error $@ 5.7.1 $: "554 Spam (PersMail)"
RPG-MAILINGLIST $#error $@ 5.7.1 $: "554 Spam (PG-MAILINGLIST)"
RSpammer $* $#error $@ 5.7.1 $: "554 Spam (Spammer)"
RWC Mail $* $#error $@ 5.7.1 $: "554 Spam (WC Mail)"
Ryo yo mail $#error $@ 5.7.1 $: "554 Spam (yo yo mail)"
RZanziMailer $* $#error $@ 5.7.1 $: "554 Spam (ZanziMailer)"
RZUBA ZUB $* $#error $@ 5.7.1 $: "554 Spam (ZUBA ZUB-)"

SLocal_check_mail

#
# check address against various regex checks
#
R$* $: $>Parse0 $>3 $1

#
# Проверяем доменную части на SPAM2 & SPAM5:
#
R$+<@$*> $: $(SPAM1 $1 $: $1<@$2> $)
R@MATCH $#error $: 553 SPAM1-relay is not wanted!
#
# Необходимо проверить SPAM2.
R$+<@$*> $: $(SPAM2 $1 $: $1<@$2> $)
R@MATCH $#error $: 553 SPAM2-relay is not wanted!
#
R$+<@$*> $: $(SPAM3 $1 $: $1<@$2> $)
R@MATCH $#error $: 553 SPAM3-relay is not wanted!
#
R$+<@$*> $: $(SPAM4 $1 $: $1<@$2> $)
R@MATCH $#error $: 553 SPAM4-relay is not wanted!
#
R$+<@$*> $: $(SPAM5 $2 $)
R@MATCH $#error $: 553 Looks like SPAM5-relay.
#
# Необходимо проверить SPAM6.
R$+ $: $(SPAM6 $1 $)
R@MATCH $#error $: 553 Looks like SPAM6-relay.

#
# Заблокируем письма с пустым заголовком
#
R$* $: < $1 >
R< > $#error $@ 5.7.1 $: "554 Illegal header (empty header)"
R$* $@ OK

#
# Проверка на наличие информации в "From:", "To:", если отсутствуют, то письмо
# отклоняется
#
SCheckFrom
R$+ $@ OK
R$* $#error $: Отсутствует заголовок From
SCheckTo
R$+ $@ OK
R$* $#error $: Отсутствует заголовок To

#
# Заблокируем все мейлеры с названием только из одного слова:
#
Rnethack $@ OK
RZ-Mail-SGI $@ OK
RDipost $@ OK
RSquirrelMail $@ OK
R$- $#error $@ 5.7.1 $: "554 Spam (one-word mailer)"

#
# проверим поле To на "undisclosed-recipients;" или "undisclosed recipient"
# комбинации могут быть практически произвольными.
#
HTo: $>CheckTo
HCc: $>CheckTo
SCheckTo
R$*Recipient$* $#error $@ 5.7.1 $: "554 Unspecified Mailbox ID (Recipient)"
R$*Undisclosed$* $#error $@ 5.7.1 $: "554 Unspecified Mailbox ID (Undisclosed)"

#
# проверим правильность формата поля Message-ID (оно должно быть в формате
# (идентификатор@домен).
#
HMessage-ID: $>CheckMessageID
SCheckMessageID
R<$+@$+> $@ < $1 @ $2 >
R$* $#error $@ 5.5.2 $: "553 Bad Message-ID"

dnl # Spam check is done.

Re: Дайти ссылки по сетевому администрированию почтовых серверов 23.10.2009 20:29Юрий Клещетников
Спасибо за ссылки.
Обязательно скачаю послезавтра // флягу с собой не взял для скачивания...

К сожалению взяли специалиста с техническим образованием, а не меня,
но я всё равно благодарен за помощь, тем более, что мне светит перспектива в смежной области,
надеюсь....

Ещё раз спасибо!

RSS-материал