Достался мне почтовый сервер с SUSE, на борту которого Postfix amavis clamav spamassasin.
По умолчанию было сделано так что все входящие сообщения отвергаются. Проходят только те сообщения домены которых есть в белом списке spamassasin (local.cf).
Стоит задача перенастроить сервер что бы он принимал все входящие сообщения, но при этом и антиспам решение тоже работало бы.
Не могу накопать где же стоит это правило, которое режет все входящие. Есть подозрения что это правило есть в spamassasin.
Помогите пожалуйста разобраться.
Спасибо.
Лог mail, при приеме сообщения от незнакомого домена:
Код: Выделить всё
Aug 3 14:21:12 mail postfix/smtpd[853]: connect from mail.sender-server.ru[217.21.215.55]
Aug 3 14:21:12 mail postfix/smtpd[853]: 805BB863AA5: client=mail.sender-server.ru[217.21.215.55]
Aug 3 14:21:12 mail postfix/cleanup[911]: 805BB863AA5: message-id=<CB3F6BCFFC831542A85684FFF084F93D01865E9F5FB0@MAIL.domain>
Aug 3 14:21:12 mail postfix/smtpd[853]: disconnect from mail.sender-server.ru[217.21.215.55]
Aug 3 14:21:12 mail postfix/qmgr[29185]: 805BB863AA5: from=<sender@dom.ru>, size=17233, nrcpt=1 (queue active)
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) LMTP::10024 /var/spool/amavis/tmp/amavis-20120803T141327-00840: <sender@dom.ru> -> <user@user.com> SIZE=17233 Received: from mx1.domain.ru ([127.0.0.1]) by localhost (mx1.domain.ru [127.0.0.1]) (amavisd-new, port 10024) with LMTP for <user@user.com>; Fri, 3 Aug 2012 14:21:12 +0400 (MSK)
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) smtp connection cache, dt: 22.2, state: 0
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) body hash: 3ab837c62ce40401469c496ecd42789d
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) client IP address unknown, fetching from Received: 217.21.215.55
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) Checking: 3pAh3zsddVri [217.21.215.55] <sender@dom.ru> -> <user@user.com>
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) 2822.From: <sender@dom.ru>
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p004 1 Content-Type: multipart/related
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p005 1/1 Content-Type: multipart/alternative
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p001 1/1/1 Content-Type: text/plain, size: 324 B, name:
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p002 1/1/2 Content-Type: text/html, size: 4171 B, name:
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p003 1/2 Content-Type: image/png, size: 7324 B, name: image001.png
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) Checking for banned types and filenames
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) collect banned table[0]: user@user.com, tables: DEFAULT=>Amavis::Lookup::RE=ARRAY(0x8185b38)
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p.path user@user.com: "P=p004,L=1,M=multipart/related | P=p003,L=1/2,M=image/png,T=image,T=png,N=image001.png"
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p.path user@user.com: "P=p004,L=1,M=multipart/related | P=p005,L=1/1,M=multipart/alternative | P=p001,L=1/1/1,M=text/plain,T=txt"
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) p.path user@user.com: "P=p004,L=1,M=multipart/related | P=p005,L=1/1,M=multipart/alternative | P=p002,L=1/1/2,M=text/html,T=html"
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) ask_av Using (ClamAV-clamd): CONTSCAN /var/spool/amavis/tmp/amavis-20120803T141327-00840/parts\n
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) ClamAV-clamd: Connecting to socket /var/run/clamav/clamd.sock
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) ClamAV-clamd: Sending CONTSCAN /var/spool/amavis/tmp/amavis-20120803T141327-00840/parts\n to UNIX socket /var/run/clamav/clamd.sock
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) run_av (ClamAV-clamd): CLEAN
Aug 3 14:21:12 mail amavis[840]: (00840-02-7) run_av (ClamAV-clamd) result: clean
Код: Выделить всё
Aug 3 16:56:29 mail amavis[3654]: (03654-04-3) client IP address unknown, fetching from Received: 211.1.11.11
Aug 3 16:56:30 mail amavis[3654]: (03654-04-3) rw_loop sent 49152 (of 51600)> X-Virus-Scanned: amavisd-new at domain.ru\r\nReceived: from mx1.domain 0.1])\r\n\tby localhost (mx1.domain.ru [127.0.0.1]) (amavisd-new, port 10024)\r\n\twith LMTP id fhnXfNc2yHSH for <user@domain [...]
main.cf
Код: Выделить всё
# Задает месторасположение всех программ демонов postfix. Это программы,
# перечисленные в файле master.cf. Владельцем этой директории должен быть root
daemon_directory = /usr/lib/postfix
setgid_group = maildrop
default_privs = nobody
# INTERNET HOST AND DOMAIN NAMES
#
#myhostname = mail.domain.ru
myhostname = mx1.domain.ru
mydomain = domain.ru
# SENDING MAIL
#
myorigin = $mydomain
# RECEIVING MAIL
#
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost, domain.ru
# NAT/proxy Definition
#proxy_interfaces =
proxy_interfaces = 192.168.0.3
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
#
unknown_local_recipient_reject_code = 550
# TRUST AND RELAY CONTROL
#
mynetworks = 127.0.0.0/8, 192.168.0.0/24
# LOCAL RECIPIENT
local_recipient_maps =
# ALIAS DATABASE
#
alias_maps = hash:/etc/aliases
#alias_maps =
# JUNK MAIL CONTROLS
#
# For details, see "man header_checks".
#
#header_checks = regexp:/usr/local/etc/postfix/header_checks
# SHOW SOFTWARE VERSION OR NOT
#
smtpd_banner = $myhostname mail server
# DEBUGGING CONTROL
#
debug_peer_level = 5
#debug_peer_list = 127.0.0.1
#debug_peer_list = teachers
#bounce_template_file = /usr/local/etc/postfix/bounce.cf
# RESTRICTIONS
#
#soft_bounce = yes
soft_bounce = no
# client, helo, sender, recipient, data, end-of-data
#
# IP-адрес и (если возможно доменное имя клиентского ПК (или другого почтового сервера),
# который соединяется с сервером postfix для отправки письма
#
#smtpd_client_restrictions = permit_mynetworks,
# check_client_access hash:/etc/postfix/client_access,
# reject_rbl_client,
# reject_unknown_client
# Отклонять запрос, если хост не имеет в DNS A или MX записи.
# Имя ПК и (если возможно) его IP-адрес по имени, преданному в команде HELO/ELHO hostname
#
smtpd_helo_restrictions = permit_mynetworks,
# check_helo_access hash:/etc/postfix/hello_access,
reject_invalid_hostname,
reject_non_fqdn_hostname,
# reject_unknown_hostname
# Отклонять команду ETRN
#smtpd_etrn_restrictions = reject
#Не принимать почту от доменов, которых не существует.Адрес указанный в команде MAIL FROM:<sender>
#smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_sender_restrictions = permit_mynetworks,
check_sender_access hash:/etc/postfix/sender_restrictions,
# reject_authenticated_sender_login_mismatch,
reject_unknown_sender_domain,
reject_unlisted_sender,
#reject_unverified_sender
#Белые списки. Локальные клиенты могут указывать любого получателя. Другие клиенты не могут.
#Адрес указанный в команде RCPT TO:<recipient>
#smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination,
# check_recipient_access hash:/etc/postfix/recipient_access,
reject_unlisted_recipient,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient,
reject_unverified_recipient
# Отклонять запрос, когда клиент посылает SMTP команду раньше времени.
smtpd_data_restrictions = reject_unauth_pipelining,
reject_multi_recipient_bounce
# Заставляем отклонять почту с неизвестным адресом отправителя.
# Позволяет бороться с червями и некоторыми вирусами.
smtpd_reject_unlisted_sender = no
#smtpd_reject_unlisted_sender = yes
# Отключает SMTP команду VRFY. В результате чего, невозможно определить
# существование определенного ящика. Данная техника (применение команды
# VRFY) используется спамерами для сбора имен почтовых ящиков.
disable_vrfy_command = yes
# Требуем чтобы адреса, передаваемые в SMTP командах MAIL FROM и RCPT TO
# заключались в <>, а также не содержали стилей или фраз RFC 822.
strict_rfc821_envelopes = yes
# Скрываем отображение имени таблицы получателей в ответе "User unknown"
# yes: User unknown in virtual mailbox table
# no: User unknown
show_user_unknown_table_name = no
# Данный адрес будет использоваться при проверки существования адреса отправителя.
address_verify_sender = <>
# Числовой код ответа SMTP сервера Postfix в случае, когда адрес
# получателя отвергнут ограничением reject_unverified_sender.
unverified_sender_reject_code = 550
# Требуем, чтобы удаленный SMTP клиент представлял себя
# в начале SMTP сессии с помощью команды HELO или EHLO.
smtpd_helo_required = yes
# Всегда отправлять EHLO вначале SMTP сессии
smtp_always_send_ehlo = yes
# Максимальное количество ошибок, которое может сделать удаленный SMTP клиент.
# При превышение данного числа Postfix отсоединится.
smtpd_hard_error_limit = 8
# Интервал времени в течение которого SMTP сервер Postfix должен послать ответ,
# а удаленный SMTP клиент получить запрос
smtpd_timeout = 30s
# Интервал времени, в течение которого SMTP клиент должен послать
# SMTP команду HELO или EHLO и получить ответ сервера.
#smtp_helo_timeout = 15s
# Интервал времени, в течение которого SMTP клиент должен послать
# SMTP команду RCPT TO и получить ответ сервера.
#smtp_mail_timeout = 15s
# Интервал времени, в течение которого SMTP клиент должен послать
# SMTP команду MAIL FROM и получить ответ сервера.
#smtp_rcpt_timeout = 15s
# Включаем поддержку sasl аутентификации
#smtpd_sasl_auth_enable = yes
#smtpd_sasl_local_domain =
# Необходимо для корректной работы клиентов, использующих устаревший
# метод AUTH, например outlook express
#broken_sasl_auth_clients = yes
# Запрещаем анонимную авторизацию
#smtpd_sasl_security_options = noanonymous
# Создаем копии исходящих сообщений
sender_bcc_maps = hash:/etc/postfix/sender_bcc
# Создаем копии входящих сообщений
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
# ***********Common LDAP Configuration**************************************
# Указываем, где postfix должен брать информацию о транспорте
transport_maps = hash:/etc/postfix/transport
# Указываем, где postfix должен брать информацию о доменах
#virtual_mailbox_domains = $mydomain, $myhostname, localhost.$mydomain, localhost
# Корень для почтовых сообщений
virtual_mailbox_base = /var/mail
# 800 - uid и gid пользователя и группы vmail соответственно
virtual_gid_maps = static:800
virtual_uid_maps = static:800
virtual_minimum_uid = 799
# Ограничиваем максимальный размер письма до 15Мб
message_size_limit = 20480000
# Указываем, где postfix должен брать информацию о почтовых ящиках
virtual_mailbox_maps = ldap:ldapvirtual
ldapvirtual_server_host = mldap
ldapvirtual_server_port = 389
ldapvirtual_bind = yes
ldapvirtual_bind_dn = cn=ldap,dc=domain,dc=ru
ldapvirtual_bind_pw = letlorien
ldapvirtual_search_base = dc=domain,dc=ru
ldapvirtual_query_filter = (mail=%s)
ldapvirtual_result_attribute = mailbox
# Описываем alias'ы.
virtual_alias_maps = hash:/etc/postfix/virtual
#virtual_alias_maps = ldap:ldapalias
ldapalias_server_host = mldap
ldapalias_server_port = 389
ldapalias_bind = yes
ldapalias_bind_dn = cn=ldap,dc=domain,dc=ru
ldapalias_bind_pw = letlorien
ldapalias_search_base = dc=domain,dc=ru
ldapalias_query_filter = (mailAlternateAddress=%s)
ldapalias_result_attribute = mail
# Настраиваем поддержку квот
virtual_mailbox_limit_maps = ldap:ldapquota
ldapquota_server_host = mldap
ldapquota_server_port = 389
ldapquota_bind = yes
ldapquota_bind_dn = cn=ldap,dc=domain,dc=ru
ldapquota_bind_pw = letlorien
ldapquota_search_base = dc=domain,dc=ru
ldapquota_query_filter = (mail=%s)
ldapquota_result_attribute = mailQuotaSize
#virtual_maildir_extended=yes
virtual_mailbox_limit_override=yes
virtual_create_maildirsize = yes
virtual_overquota_bounce = yes
virtual_maildir_limit_message="Sorry, the user's maildir has overdrawn his diskspace quota, please try again later"
#**************************END LDAP Confiruration ***********************************
# Перенаправляем всю почту amavisd-new. Если вы еще не настроили amavisd,
# то пока закомментируйте эту строку. Иначе почтовая система не будет работать.
content_filter = smtp-amavis:[127.0.0.1]:10024
#header_checks = regexp:/etc/postfix/header_checks
#body_checks = regexp:/etc/postfix/body_checks
Код: Выделить всё
required_hits 5.0
# Whether to change the subject of suspected spam
#rewrite_subject 1
rewrite_header Subject [*****SPAM*****]
# Text to prepend to subject if rewrite_subject is used
#subject_tag '*****SPAM*****'
# Encapsulate spam in an attachment
#report_safe 1
report_safe 0
# Use terse version of the spam report
#use_terse_report 0
# Enable the Bayes system
use_bayes 1
bayes_path /var/spool/amavis/.spamassassin/bayes
# Enable Bayes auto-learning
bayes_auto_learn 1
# Enable or disable network checks
skip_rbl_checks 0
use_razor2 1
use_dcc 0
use_pyzor 0
# Mail using languages used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_languages ru en
# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales ru en
normalize_charset 1
#Добавлено с сайта http://www.opennet.ru/base/net/antispam_openbsd.txt.html
#
#dcc_add_header 1
dns_available yes
header LOCAL_RCVD Received =~ /.*\(\S+\.domain\.ru\s+\[.*\]\)/
describe LOCAL_RCVD Received from local machine
score LOCAL_RCVD -50
## Optional Score Increases
score DCC_CHECK 4.000
score RAZOR2_CHECK 2.500
score BAYES_99 4.300
#score BAYES_90 3.500
score BAYES_80 3.000
whitelist_from .........