Tôi có máy chủ thư postfix trên Ubuntu 18, hoạt động như một máy chủ email chuyển tiếp cho một số máy ảo và máy chủ imap/smtp cho các trường đại học của chúng tôi. Nếu tôi gửi email từ ứng dụng thư khách bằng smtp trực tiếp qua máy chủ chuyển tiếp, thì email được máy chủ ký chính xác.
Tuy nhiên nếu tôi gửi email từ máy ảo, thông qua máy chủ postfix của máy ảo, máy chủ này sẽ chuyển tiếp mọi thứ đến máy chủ chuyển tiếp, thì thư sẽ không được ký
. Đây là phần thích hợp của mail.log
của máy chủ chuyển tiếp:
Ngày 29 tháng 3 15:43:15 zg-3 postfix/pickup[6925]: D6775A2CE0: uid=1002 from=<[email protected]>
Ngày 29 tháng 3 15:43:15 zg-3 postfix/dọn dẹp[9282]: D6775A2CE0: message-id=<[email protected]>
Ngày 29 tháng 3 15:43:15 zg-3 postfix/qmgr[28882]: D6775A2CE0: from=<[email protected]>, size=1005, nrcpt=1 (hàng đợi đang hoạt động)
Ngày 29 tháng 3 15:43:18 zg-3 postfix/smtp[9292]: D6775A2CE0: to=<[email protected]>, relay=mail.destination.org[109.61.0.141]:25, delay=2.4, delays= 0.01/0.01/0.16/2.2, dsn=2.0.0, status=sent (250 2.0.0 từ MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: xếp hàng là 31688123853)
Ngày 29 tháng 3 15:43:18 hậu tố zg-3/qmgr[28882]: D6775A2CE0: đã xóa
Của tôi /etc/opendkim/trusted.hosts
:
127.0.0.1
máy chủ cục bộ
*.mydomain.org
Của tôi /etc/opendkim/key.table
:
default._domainkey.mydomain.org mydomain.org:default:/etc/opendkim/keys/mydomain.org/default.private
Và tôi có khóa trong đúng tệp (lưu ý rằng email được gửi trực tiếp đang sử dụng
cùng một khóa để ký chính xác):
$ ls -l /etc/opendkim/keys/mydomain.org/default.*
-rw------- 1 opendkim opendkim 1675 Ngày 25 tháng 6 năm 2018 /etc/opendkim/keys/mydomain.org/default.private
-rw------- 1 gốc gốc 495 Ngày 25 tháng 6 năm 2018 /etc/opendkim/keys/mydomain.org/default.txt
Của tôi /etc/postfix/main.cf
:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = không
# nối thêm .domain là công việc của MUA.
append_dot_mydomain = không
# Bỏ ghi chú dòng tiếp theo để tạo cảnh báo "thư bị trì hoãn"
#delay_warning_time = 4h
readme_directory = không
myhostname = zg-3.mydomain.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = mydomain.org
mydestination = zg-3.mydomain.org, localhost.mydomain.org, localhost
máy chủ chuyển tiếp =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 zg-2.mydomain.org zg-3.mydomain.org lu1.mydomain.org 172.16.0.0/16
# 50MB
message_size_limit = 52428800
### Thông số TLS
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=có
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
### Xác thực Dovecot SMTP
smtpd_sasl_type = bồ câu
smtpd_sasl_path = riêng tư/xác thực
smtpd_sasl_auth_enable = có
# Với phiên bản Postfix trước 2.10, hãy sử dụng smtpd_recipient_restrictions
#smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# Cấu hình Milter
# MởDKIM
milter_default_action = chấp nhận
milter_protocol = 6
smtpd_milters = local:/opendkim/opendkim.sock
non_smtpd_milters = local:/opendkim/opendkim.sock
hộp thư_size_limit = 0
virtual_mailbox_limit = 0
người nhận_delimiter = +
inet_interfaces = tất cả
### Cấu hình cho hộp thư ảo
home_mailbox = Maildir/
virtual_mailbox_domains = /etc/postfix/vhosts
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = hash:/etc/postfix/vmaps
ảo_minimum_uid = 1000
virtual_uid_maps = tĩnh:1002
virtual_gid_maps = tĩnh:1002
virtual_transport = bồ câu
spamassassin_destination_recipient_limit = 1
dovecot_destination_recipient_limit = 1
Của tôi /etc/postfix/master.cf
:
# Tệp cấu hình quy trình tổng thể Postfix. Để biết chi tiết về định dạng
# của tệp, hãy xem trang hướng dẫn chính (5) (lệnh: "man 5 master").
#
# Đừng quên thực hiện "tải lại postfix" sau khi chỉnh sửa tệp này.
#
# ================================================= ==========================
# loại dịch vụ riêng tư unpriv đánh thức chroot lệnh maxproc + args
# (có) (có) (có) (không bao giờ) (100)
# ================================================= ==========================
smtp inet n - - - - smtpd
-o content_filter=spamassassin
#smtp inet n - - - 1 màn hình sau
#smtpd vượt qua - - - - - smtpd
#dnsblog unix - - - - 0 dnsblog
#tlsproxy unix - - - - 0 tlsproxy
đệ trình inet n - - - - smtpd
-o syslog_name=postfix/gửi
# SSL/TLS
-o smtpd_tls_wrappermode=có
# BẮT ĐẦU
# -o smtpd_tls_security_level=mã hóa
-o smtpd_sasl_auth_enable=có
-o smtpd_client_restrictions=permit_sasl_authenticated,từ chối
-o milter_macro_daemon_name=BẮT ĐẦU
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
# SSL/TLS
-o smtpd_tls_wrappermode=có
# BẮT ĐẦU
# -o smtpd_tls_security_level=mã hóa
-o smtpd_sasl_auth_enable=có
-o smtpd_client_restrictions=permit_sasl_authenticated,từ chối
-o milter_macro_daemon_name=BẮT ĐẦU
#628 inet n - - - - qmqpd
xe bán tải fifo n - - 60 1 xe bán tải
dọn dẹp unix n - - - 0 dọn dẹp
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
tlsmgr unix - - - 1000? 1 tlsmgr
viết lại unix - - - - - viết lại tầm thường
thoát unix - - - - 0 thoát
trì hoãn unix - - - - 0 thoát
dấu vết unix - - - - 0 thoát
xác minh unix - - - - 1 xác minh
tuôn ra unix n - - 1000? 0 tuôn ra
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
chuyển tiếp unix - - - - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
lỗi unix - - - - - lỗi
thử lại unix - - - - - lỗi
loại bỏ unix - - - - - loại bỏ
unix cục bộ - n n - - cục bộ
unix ảo - n n - - ảo
lmtp unix - - - - - lmtp
đe unix - - - - 1 đe
scache unix - - - - 1 scache
#
# ================================================= ===================
# Giao diện cho phần mềm không phải Postfix. Hãy chắc chắn kiểm tra hướng dẫn
# trang của phần mềm không phải Postfix để tìm ra những tùy chọn mà nó muốn.
#
# Nhiều dịch vụ sau sử dụng phân phối Postfix pipe(8)
# đại lý. Xem trang man pipe(8) để biết thông tin về ${recipient}
# và các tùy chọn phong bì thư khác.
# ================================================= ===================
#
# gửi thư. Xem tệp Postfix MAILDROP_README để biết chi tiết.
# Cũng chỉ định trong main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ================================================= ===================
#
# Các phiên bản Cyrus gần đây có thể sử dụng mục "lmtp" master.cf hiện có.
#
# Chỉ định trong cyrus.conf:
# lmtp cmd="lmtpd -a" nghe="localhost:lmtp" proto=tcp4
#
# Chỉ định trong main.cf một hoặc nhiều điều sau:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# ================================================= ===================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Cũng chỉ định trong main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix - n n - - ống
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ================================================= ===================
# Ví dụ cũ về giao hàng qua Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ================================================= ===================
#
# Xem tệp Postfix UUCP_README để biết chi tiết về cấu hình.
#
uucp unix - n n - - ống
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($người nhận)
#
# Các phương thức giao hàng bên ngoài khác.
#
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - ống
cờ = Fq.user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 ống
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
người đưa thư unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${người dùng}
spamassassin unix - n n - - pipe
flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/local/v2_mail/v2/script/v2_lda.sh ${sender} ${user}@${nexthop}
dovecot unix - n n - - ống
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}