# Postfix 的 Relay Control

> 

Published: 2005-03-01
URL: http://cdn.kaochenlong.com/postfix-relay-control

---

Postfix 的 Relay 控制，是在 `/etc/postfix/main.cf` 裡面做設定，主要有四個部份：

1. inet_interfaces
2. mynetworks_style
3. mynetworks
4. relay_domains

## inet_interfaces：

預設值是`all`，如果你的機器有多張網路卡，但又不想要全部都開放 relay，就可以指定只開放給某張網路卡。

## mynetworks_style：

有三種型態：`class`、`subnet` 及 `host`，預設值是 subnet。

- class 是可以指定開放給 A/B/C class 的來源，這種設定方式滿冒險。
- subnet 代表你的機器的 IP 所在網域的任何一個 IP 都可以接受 relay。（如果同一個 subnet 裡的機器多，要小心可能被當成垃圾信跳板）
- host 表示只會設定 localhost 為信任的網域而已。

## mynetworks:

這可以設定成檔案的方式或是直接以 IP/netmask 來做設定。例如：

    mynetworks=192.168.1.0/24, 127.0.0.0/8

而如果要用檔案方式：

    mynetworks = 127.0.0.0/8, hash:/etc/postfix/access

記得 postmap 一下這個 access 檔。

### 注意：

1. 如果沒有設定 mynetworks 的話，記得把 mynetworks_style 改成 `host`，不然同一個子網域的 IP 都可以透過你的機器 relay 信件(當然如果所有子網域的使用者你都認識的話倒還 ok)
2. 如果有設定 mynetworks_style 以及 mynetwork 時，mynetworks 的設定會取代掉 mynetworks_style。

## relay_domains：

可以一次指定一個 domain 來開放 relay。例如：

    relay_domains = eddie.com.tw

這樣的設定是代表所有由 eddie.com.tw 這個 domain 來的信件都會被當做可信任的，postfix 會幫忙 relay。但要注意的是，由「任何地方」來的信件，並且要寄往 eddie.com.tw 網域的信件，postfix 也會幫忙 Relay。

詳細設定在 `/etc/postfix/main.cf` 裡有說明。

Hinet 廣告信跳板測試： http://lcss.hinet.net/antispam/or_check.pl

