Posfix AntiSpam 文章收集

Filtering spam with Postfix

Postfix as a Mailhub with extensive anti-spam configuration

Postfix Antispam

建置 POSTFIX 伺服器

Postfix 疑難百解收集

目前慢慢會把一些 Postfix 遇到的一些問題,放在這裡

  • timed out while receiving the initial server greeting

echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

原因是 If you use postfix running on Linux and If you try to telnet the above host on port 25, the connection is made but the remote mail server doesn’t send its 220 message upon connection.
上次遇到這種主機是 Microsoft ESMTP MAIL Service, Version: 6.0

ref http://dbraslavsky.blogspot.com/2007/12/timed-out-while-receiving-initial.html

廣告

Postfix Mail Queue 管理

Postfix Mail Queue 管理比 sendmail 簡單許多

  • 顯示 mail queue: postqueue -p 或 mailq

Queue_ID 後面有 * 號的 代表在 active queue 的信件, ! 號代表在 hold queue 的信件。

  • 顯示信件內容: postcat -q Queue_ID

  • 刪除信件

單一信件 postsuper -d Queue_ID

全部刪除 postsuper -d ALL

  • 扣住信件

postsuper -h Queue_ID

回覆 postsuper -H Queue_ID

  • 重進排程

postsuper -r Queue_ID

postsuper -r ALL

  • 掃清信件

postqueue -f (全部)

postqueue -s 主機名稱(by domain name)

Postfix Mailout Server 設定

前言:一般比較大一點的企業 Mail Server 會把 mailin 和 mailout 分開,內部可能使用 Lotus Notes Mail 或是 Exchange Server,寄進來的信由 Linux Mail Server 或 Mail SPAM Server 收下在轉到內部的 mail server;寄出去的信則由內部的 mail server Relay 到 Linux 的 Mail Server。

這是主要設定 mailout Server 使用。
假設這台 Linux ip 192.168.1.1 內部的 Lotus Mail Server ip 192.168.1.25

myhostname,mydomain :分別是設定主機名稱及網域名稱
myorigin :在 mta 本機寄出去的信要帶的主機名稱,
inet_interfaces : postfix 收信的網卡的 ip
mydestination : 可接受的收件者,由於這台主機是做 mailout 不影響。
mynetworks : 設定可接受 RELAY 的 Mail Server ,
alias_maps,alias_database :與 sendmail alias 格式一樣,寫好用 postalias 更新。
transport_maps :定義 postfix 的路由,可視為 sendmail 的 mailtable
message_size_limit:信件大小的上限,以 byte 計。
delay_warning_time : 信件遞延的警告時間, postfix 預設是 0 ,已避免 mail server 太忙, sendmail 預設 4h。

以下為 mail.cf 範例
myhostname = mta01.company.com.tw
mydomain = company.com.tw
myorigin = $myhostname
inet_interfaces = 192.168.1.1 , localhost
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 127.0.0.0/8, hash:/etc/postfix/access
relay_domains = company.com.tw
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
transport_maps = hash:/etc/postfix/transport
message_size_limit = 20480000
delay_warning_time = 4h

定義 Transport
雖然 mailout server 是不會收到要寄到 company.com.tw 的信件,但有時候我們寄出去的信,難免會收不到的問題,我們要把退信寄回內部的 mail server。
如果集團下有一個子公司 subcompany ,跟母公司以專線連線,我們可以直接利用內部路由遞送較快,亦可節省對外頻寬。

以下為 /etc/postfix/transport 範例

company.com.tw smtp:192.168.1.25:25
subcompay.com.tw smtp:10.0.0.25:25

加好後用 postmap /etc/postfix/transport
詳細設定格式, 可以參考 http://www.postfix.org/transport.5.html

以下為 /etc/postfix/access 範例

192.168.1.25 RELAY

寫好後用 postmap /etc/postfix/access

以後只要改過設定,執行 /etc/init.d/postfix reload 即可

Sendmail 轉換成 Postfix

Sendmail 轉換成 Postfix
平台 RHEL / CentOS / Redhat / Fedora

1. 安裝 postfix 及 system-switch-mail
yum install postfix system-switch-mail

2. 設定 postfix
先設定好以免手忙腳亂

3. 開始轉換
方法有兩種 a. 使用 system-switch-mail 切換 b. 手動
不管如何, system-switch-mail 與手動所做的動作是一樣的

a. 執行 system-switch-mail 轉換 MTA 為 postfix

system-switch-mail-nox
or system-switch-mail-nox

執行後,自動將 sendmail 切換 postfix ,自動會停止 sendmail 啟動 postfix。但還是請 check process 以防萬一。

b. 手動 alternatives –config mta 選 postfix

alternatives –set mta /usr/sbin/sendmail.postfix
(or alternatives –config mta 選 postfix)
chkconfig sendmail off (檢查一下是否關閉)
chkconfig –list sendmail
service sendmail stop

chkconfig postfix on
chkconfig –list postfix (檢查一下是否開啟)
service postfix start