Postfix kiểm tra thư đi cho thư rác


11

Làm cách nào tôi có thể buộc postfix kiểm tra (và log / flag / etc) tất cả thư gửi đi để nhận thư rác?

Chỉ muốn chắc chắn rằng tôi đang thực hiện phần của mình trên máy chủ của mình.

EDIT : Postfix config, theo yêu cầu.

main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =
   permit_sasl_authenticated,
   permit_mynetworks,
   reject_unauth_destination

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

alias_maps = hash:/etc/aliases

myhostname = example.com
myorigin = /etc/mailname
mydestination = localhost, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
content_filter = smtp-amavis:[127.0.0.1]:10024

transport_maps = mysql:/etc/postfix/mysql/transport_maps.cf

virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_alias_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf


virtual_mailbox_base = /var/mail
virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
dovecot_destination_recipient_limit = 1

thạc sĩ

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       -       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628      inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       -       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       -       -       -       smtp
    -o smtp_fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache

127.0.0.1:10025     inet    n   -   y   -   -   smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject

    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=100

smtp-amavis unix -  -   y   -   2   smtp
    -o smtp_data_done_timeout=1200
    -o disable_dns_lookups=yes
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -   n   n   -   2   pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}

mysql / Transport_maps.cf

user = user
password = password
hosts = 127.0.0.1

dbname = postfix

query = SELECT target FROM transports WHERE hostname = '%d' AND active = 1

mysql / virtual_alias_domains.cf

user = user
password = password
hosts = 127.0.0.1

dbname = postfix
select_field = domain
table = domains
where_field = domain
additional_conditions = AND active = 1

mysql / virtual_alias_maps.cf

user = user
password = password
hosts = 127.0.0.1

dbname = postfix
select_field = forward
table = aliases
where_field = source
additional_conditions = AND active = 1

mysql / virtual_mailbox_maps.cf

user = user
password = password
hosts = 127.0.0.1

dbname = postfix

query = SELECT mailbox_path FROM users WHERE address = '%s' AND active = 1

Bạn đã cân nhắc sử dụng một cái gì đó như MIMEDefang (hoặc amavribution -new ) với SpamAssassin chưa?
Khóc Havok

Có phải tất cả các email gửi đi hiện đang được cung cấp cho máy chủ Postfix của bạn hoặc nó đi ra ngoài thông qua một tuyến đường khác? Bất kỳ cơ hội bạn có thể gửi tập tin cấu hình của bạn?
Brian Showalter

@Brian: Tất cả các tập tin cấu hình đã được đăng. Ngoài ra, tất cả các thư chạy qua postfix.
Glen Solsberry

1
Có vẻ như cấu hình này đã quét các email gửi đi cho SPAM. Xin lỗi, nhưng bạn có chắc là họ không được quét SPAM không?
Srikrishnan Chitoor

Bất kỳ thẻ spam nào bạn thêm vào email gửi đi đều có khả năng bị các bộ lọc thư đến tại trang web từ xa bỏ qua. Họ không muốn email đến nơi có tiêu đề thẻ spam. Tuy nhiên, bạn có thể kiểm tra việc quét trên amavis của mình bằng cách gửi tin nhắn kiểm tra và tìm kiếm (grep) cho điều này trong tệp nhật ký tài sản của bạn.
labradort

Câu trả lời:


7

Dưới đây là một cấu hình "sơ khai" để kiểm tra các tin nhắn gửi đi.

Trong main.cf:

smtpd_sender_restrictions = 
   check_client_access cidr:/etc/postfix/internal_clients_filter

Và: / etc / postfix / Internal_clents_filter

192.168.0.0/24 FILTER smtp:[127.0.0.1]:12501
10.0.0.0/24 FILTER smtp:[127.0.0.1]:12501

(bạn cũng có thể làm điều này theo những cách khác để đăng nhập người dùng, ip, từ v.v.)

Sử dụng một ngân hàng chính sách trong Amav điều khoản mới:

$interface_policy{'12501'} = 'INTERNAL'; 
$policy_bank{'INTERNAL'} = {  # mail originating from clients in cidr:/etc/postfix/internal_clients_filter
  bypass_spam_checks_maps   => [0],  # spam-check outgoing mail 
  bypass_banned_checks_maps => [0],  # banned-check outgoing mail 
  bypass_header_checks_maps => [0],  # header-check outgoing mail  
  forward_method => 'smtp:[127.0.0.1]:12502', # relay to Postfix listener on port 12502
};

Và đường dẫn từ chối trong postfix:

127.0.0.1:12502 inet    n    -    n    -    -    smtpd
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o smtpd_restriction_classes=
    -o smtpd_delay_reject=no
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o mynetworks=127.0.0.0/8
    -o smtpd_data_restrictions
    -o smtpd_end_of_data_restrictions=
    -o local_header_rewrite_clients=
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0
    -o smtpd_milters=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings

Cảm ơn câu trả lời này. Chỉ muốn chỉ ra rằng khổ master.cf của bạn bị thiếu "=" sau smtpd_data_restrictions. Điều này sẽ phá vỡ cấu hình.
TommyPeanuts

1

Đây là một câu hỏi cũ nhưng tôi nghĩ rằng tôi sẽ chia sẻ một số cấu hình cho phép sử dụng bộ lọc Procmail bên ngoài. Thứ nhất, trong master.cf:

submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o broken_sasl_auth_clients=yes
  -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  -o content_filter=procmail-outbound

procmail-outbound unix  -       n       n       -       -       pipe
  flags=Rq user=mail argv=/usr/bin/procmail -t -m SENDER=${sender} RECIPIENT=${recipient} /etc/procmail/outbound.rc

và sau đó bạn có thể chạy bất kỳ công thức procmail nào bạn cần outbound.rctrước khi từ chối tin nhắn được xử lý sendmailgiống như công thức ví dụ dưới đây:

# Send mail
:0 w
| /usr/bin/sendmail -G -i -f $SENDER $RECIPIENT

(Lưu ý ví dụ chấp nhận thư trên dịch vụ gửi (cổng 587) thay vì smtpdịch vụ chuyển tiếp và chuyển phát.)


1

Khách hàng của bạn gửi thư bằng máy chủ smtp - có lẽ đó là máy chủ postfix này.

Thư gửi đi được chuyển qua vận chuyển smtp của Postfix và cấu hình ở trên sẽ chuyển tất cả thông qua amav điều khiển thông qua content_filter - vì vậy tôi nghĩ rằng thư gửi đi của bạn đã được xử lý.

Tôi đề nghị bạn kiểm tra để thỏa mãn bản thân cho dù đây là trường hợp.

Nếu máy chủ không quá bận rộn, bạn sẽ điều chỉnh maillog của mình và xem điều gì xảy ra khi bạn gửi thông báo kiểm tra có chứa chuỗi GTUBE ( XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X). Amavilities / spamassassin sẽ bắt được tin nhắn. Nếu vậy thì bạn biết thư của bạn đang được quét trên đường ra.


Chuỗi GTUBE bạn đã dán bị hỏng bởi một số ký tự được hiểu là định dạng.
hủy hoại

backtick để giải cứu
dunxd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.