後綴轉發openrelay這p和nr和l一種是open relay
大家好。今天,我在我的 CentOS 7 vps 上設置了 postfix。
我想要的是
我希望我的伺服器/後綴按照以下規則行事:
- 地球上的每個人都應該能夠郵寄
foo@server.com
- Postfix 必須將此郵件轉發到
bar@externalmail.com
- 沒有其他東西可以發送到任何域
為簡單起見,我稱我的域為
server.com
.是)我有的
現在,我可以向 發送郵件
foo@server.com
,這些郵件會被轉發到bar@externalmail.com
(通過 telnet 測試,像這樣)。所有 DNS 記錄設置正確,SSL 證書執行良好。我的問題
我注意到我可以通過 telnet 連接將郵件發送到我想要的任何域。
可悲的是,垃圾郵件機器人也注意到了這一點,因為根據我的
/var/log/maillog
. 我通過線上黑名單檢查器檢查了一些 IP 地址,所有這些都被列入黑名單。我在 Linux 系統方面經驗豐富(足夠),但對根據我的意願設置後綴伺服器非常陌生。現在,我只是在 ufw 中阻塞了埠 25 來阻止機器人,直到問題解決。
問題
如何設置後綴以僅將具有特定收件人(
foo@server.com
)的郵件轉發到特定的轉發地址(bar@externalmail.com
)?其次,如何阻止在垃圾郵件和 CBL 列表中被阻止的 IP 地址?
配置
這是我的 /etc/postfix/main.cf (適應問題,不包括評論):
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = all inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES ################################### # My stuff ################################### # Host and site name. myhostname = server.com mydomain = server.com myorigin = server.com # Virtual aliases. virtual_alias_domains = server.com virtual_alias_maps = hash:/etc/postfix/virtual smtpd_use_tls = yes smtpd_tls_cert_file = /etc/letsencrypt/live/server.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/server.com/privkey.pem smtp_use_tls = yes smtp_tls_security_level = encrypt smtp_tls_note_starttls_offer = yes smtp_tls_cert_file = /etc/letsencrypt/live/server.com/fullchain.pem smtp_tls_key_file = /etc/letsencrypt/live/server.com/privkey.pem
這是我的 /etc/postfix/master.cf:
smtp inet n - n - - smtpd pickup unix n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr unix n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - n - - smtp relay unix - - n - - smtp showq unix n - n - - showq error unix - - n - - error retry unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache
我認為可能重要的最後一個文件是 /etc/postfix/virtual:
foo@server.com bar@externalmail.com
最後一句話
我擁有的配置都是從我在網際網路上可以找到的任何東西組裝而成的,我認為這對實現我想要 postfix 做的事情很有用。我是這個 postfix-setup-world 的新手,必須說這是一個難以破解的難題。如果您在我的配置中發現任何錯誤,請發表評論!
編輯
今天,我為 Postfix 配置了一些限制。這些限制似乎解決了我的問題並強制執行我想要的行為。以下是新的相關部分
/etc/postfix/main.cf
:################################### smtpd_client_restrictions = reject_invalid_hostname, reject_rbl_client zen.spamhaus.org, reject_unknown_client ################################### smtpd_helo_restrictions = reject_unauth_pipelining, reject_non_fqdn_hostname, reject_invalid_hostname, reject_unknown_hostname ################################### smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unknown_address, reject_unknown_reverse_client_hostname, reject_unknown_client_hostname ################################### smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination
在找到有關阻塞的更多資訊後,我創建了一個新配置。這是為了阻止所有
unknown[ipv4]
連接發送郵件。此外,它還會阻止嘗試在我的域之外發送郵件,
server.com
.我使用mxtoolbox開放中繼工具進行了測試,看看它是否有效,並且確實有效。
對於繼電器控制,使用
smtpd_relay_restrictions
,例如:smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
用於
smtpd_recipient_restrictions
垃圾郵件控制,例如:smtpd_recipient_restrictions = reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_non_fqdn_recipient, reject_rbl_client zen.spamhaus.org
必讀: