歡迎您光臨本站 註冊首頁

postfix配置main.cf

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  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.

  用於限定系統所接受的最大的單封郵件長度.限制postfix隊列文件的大小.預設值為#10240000 bytes.

  message_size_limit = 1572864000

  限制信頭長度.預設值為102400bytes

  header_size_limit =

  這是用於設定當SMTP連接來時,要顯示的版本資訊

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

  biff是一個能在收到新郵件時,發出通知給本地用戶的小程序.如果你的用戶不會登錄郵#件系統,建議你關掉biff通知,因為這有助於提升郵件系統得效率.

  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

  TLS parameters

  smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # TLS需要的ssl證書位置

  smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key # TLS需要的ssl私鑰位置

  smtpd_use_tls=yes #用ssl加密認證SMTP會話

  smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache

  smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

  sasl parameters

  smtpd_sasl_type=dovecot #使用dovecot進行驗證

  smtpd_sasl_auth_enable = yes #啟用sasl驗證

  smtpd_sasl_path= private/auth #

  這個參數限制了誰可以用你的郵件伺服器中繼和轉發郵件.

  smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,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.

  設置您的主機名稱,且這個設置值被後續很多其他的參數所引用

  myhostname = localhost

  參數決定了Postfix 可以幫忙傳遞哪些域的郵件

  relay_domains = $mydestination, 126.com

  mynetworks 參數指定你所在的網路的網路地址,postfix系統根據其值來區別用戶是遠程的還是本地的,如果是本地網路用戶則允許其訪問.你可以用標準的A、B、C類網路地址,也可以用CIDR(無類域間路由)地址來表示, ( 註:請注意,如果你沒有設定 mynetworks 的話,一定要將 mynetworks_style 設定為 host !不然你的 IP 所在的子網域的 IP 會被自動的認為是『合法的』!)

  mynetworks = 127.0.0.0/8 ,192.168.1.0/24

  用來指定含有用戶別名定義的文件路徑

  alias_maps = hash:/etc/aliases

  用來指定別名表資料庫文件路徑

  alias_database = hash:/etc/aliases

  這個項目用於設置郵件標頭上面的Mail from地址,即代表本MTA傳出去的信件將以此設置值為準.

  myorigin = /etc/mailname

  mailbox_command = procmail -a "$EXTENSION"

  default_transport = smtp

  指定postfix在進行郵件投遞時使用與Qmail類似的Maildir方式,此方式每封郵件是一個獨立的文件,比較易於管理,另外IMAP默認也是在用戶目錄的Maildir中訪問郵箱的.在選Maildir方式時,mailbox_command選項應該置空.

  home_mailbox = Maildir/

  設置「能夠收信的主機名稱」, 你的 postfix 只有在發現 mydestination 這個項目中有寫入

  的主機名稱做為收信主機時,才會將該封信件收下來!

  mydestination = debian.domain, localhost, localhost.localdomain, localhost

  來決定你的郵件是不是直接傳遞到internet還是通過其它的主機進行傳遞

  relayhost =

  mailbox_size_limit = 0

  允許使用擴展的用戶名

  recipient_delimiter =

  指定Postfix郵件系統監視的網路介面

  inet_interfaces = all

  "virtual_gid_maps"和"virtual_uid_maps"是postfix用戶的gid和uid

  virtual_uid_maps = static:5566

  virtual_gid_maps = static:5566

  virtual_mailbox_maps參數定義虛擬郵箱查詢表位置

  virtual_mailbox_maps = mysql:/home/postfix/-mailbox-maps.cf

  這個參數是用在虛擬投遞代理的.它指出了一個域名列表,擁有這些域名的電子郵件才能夠被postfix的虛擬投遞代理處理.它也是代替在$mydestination參數指出一長串的域名.

  virtual_mailbox_domains = mysql:/home/postfix/-mailbox-domains.cf

  virtual_alias_maps參數指向一個虛擬別名表

  virtual_alias_maps = mysql:/home/postfix/-alias-maps.cf

  virtual_alias_maps = mysql:/home/postfix/-alias-maps.cf,mysql:/home/postfix/-email2email.cf

  通過postfix 發送出去的郵件

  sender_bcc_maps = mysql:/home/postfix/-mail-watch.cf

  通過postfix 接收到的郵件

  recipient_bcc_maps = mysql:/home/postfix/-mail-watch.cf

  指定dovecot投遞代理來負責投遞

  virtual_transport = dovecot

  dovecot_destination_recipient_limit = 1

  content_filter = smtp-amavis:[127.0.0.1]:10024

  receive_override_options = no_address_mappings

  可以同時採用多個備用的郵件中繼

  smtp_fallback_relay =

  transport_maps參數可指向一個或多個傳輸表

  transport_maps = hash:/home/postfix/transport

  -----------------------------------------------------

  Postfix 主要的組態檔,刪除了多數說明文字,

  並且嘗試依照最常用的郵件主機設定來依序設定與說明,

  許多不常用的設定並未列出.

  0. 幾個 Postfix 主要的設置參數,一般狀況下不需要更改.

  queue_directory = /var/spool/postfix

  command_directory = /usr/sbin

  daemon_directory = /usr/libexec/postfix

  mail_owner = postfix

  一、設定郵件主機的識別身分(重要)

  myhostname 主機名稱:如果系統設置得當,應該不用設置,系統會以gethostname()取得

  mydomain 網域名稱:預設會以myhostname第一個點之後的作為domain名稱

  myorigin 補齊缺少的資訊:自動補齊資訊所用的,通常使用網域名稱

  mydestination 本地網域:指Postfix應該視為「本地網域」的所有網域名稱

  (本地網域的部份會後續在設定)

  myhostname = host.domain.tld

  mydomain = domain.tld

  myorigin = $mydomain

  二、設定 Postfix 能使用的網路介面(重要)

  (如果是對外服務的郵件主機,就必須要設定為all,預設為localhost)

  inet_interfaces = all

  inet_interfaces = $myhostname

  inet_interfaces = $myhostname, localhost

  inet_interfaces = localhost

  三、先設定簡易的代轉(Relay)管控

  3.1 mynetworks_style 提供三種簡易設定型態

  class =>與伺服器位於同一級IP網路的主機都可以使用代轉服務

  subnet =>所在網域的任一個IP都可以使用代轉服務

  host =>僅開放localhost為信任?可代轉的主機

  mynetworks_style = class

  mynetworks_style = subnet

  mynetworks_style = host

  3.2 mynetworks 明確設定可使用relay的主機範圍

  (優先於mynetworks_style,建議採用此種設定法)

  mynetworks = 192.168.0.0/24, 192.168.1.0/24, 127.0.0.0/8

  mynetworks = $config_directory/mynetworks

  mynetworks = hash:/etc/postfix/network_table

  四、設定Postfix會收下信件的網域

  Postfix會收下四種特定網域的信件,除了main.cf中的設定外,

  也應該被正確的設置在DNS中的MX紀錄中.

  (1)本地網域(local domain)=>由mydestination參數設定

  (2)代轉網域(relay domains)=>由relay_domains參數設定

  (3)虛擬網域(virtual domains)之虛擬別名(virtual aliases)

  =>由 virtual_alias_domains參數設定

  (4)虛擬網域之虛擬信箱(virtual mailboxes)

  =>由 virtual_mailbox_domains參數設定

  (上列四種設定不應重複,網域已設為本地網域,就不應該出現在代轉網域)

  4.1 設定本地網域

  mydestination = $myhostname, localhost.$mydomain

  mydestination = $myhostname, localhost.$mydomain, $mydomain

  mydestination = $myhostname, localhost.$mydomain, $mydomain,

  mail.$mydomain, www.$mydomain, ftp.$mydomain

  4.2 設定代轉網域

  Postfix 預設會提供代轉服務的設置:

  (代轉服務=該網域並非由本Postfix MTA所管控,但可以代轉發)

  - 從信任的客戶端(指ip符合$mynetworks)寄出到任何目的地

  - 從非信任的客戶端寄出到符合$relay_domains或其下次網域的目的地

  若信件終點站是relay_domains參數中的網址,被視為外地郵件,

  由 relay MDA來執行投遞作業.

  relay_domains 預設值= $mydestination.(主機名稱)

  4.3 設定虛擬別名?網域

  4.4 設定虛擬信箱?網域

  五、改寫位址格式

  5.1 Postfix預設會以$myorigin或mydomain附加到不完整的電郵位址.

  5.2 正式位址

  另外提供了一種正式位址代換的機制 canonical map(正格表)

  (1)修改 /etc/postfix/canonical

  (2)再執行 postmap /etc/postfix/canonical

  (3)記得要重新載入 postfix reload

  正格表的撰寫方式:

  eric@example.com eric.wu@example.com

  eric@example.com eric@oreilly.com

  canonical_maps = hash:/etc/postfix/canonical

  Postfix也提供額外的參數設置特定的位址

  sender_canonical_maps 僅修改發信者位址

  recipient_canonical_maps 僅修改收件者位址

  (適用順序為:sender->recipient->canonical)

  5.3 偽裝主機名稱

  用於隱藏內部主機名稱

  masquerade_domains = example.com

  5.4 改變投遞位址

  拒收某人或某網域信件,並回覆一封告知

  relocated_maps = hash:/etc/postfix/relocated

  relocated 撰寫範例:

  kdent@ora.com kdent@oreilly.com

  @example.com oreilly.com

  5.5 不明使用者

  拒絕不存在的本地帳戶/「不明使用者」(unknown user)

  unknown_local_recipient_reject_code = 550

  unknown_local_recipient_reject_code = 450

  如果收信地址的人名部份,在任何對照表、別名表、系統帳戶都查不出來,

  這個人會被視為「不明使用者」(unknown user),系統會拒收.

  如果希望蒐集這類信件,使用下列設定,並指定集中收集的信箱

  local_recipient_maps =

  luser_relay = someuser

  (上列第一個參數維持空白,第二個參數指定一個別名或實際帳戶)

  5.6 chroot

  最安全的設置方式是使用改變根目錄(chroot),但非常複雜;

  postfix安裝時預設並未使用 chroot,記得去檢查 master.cf檔桉,

  建議先取消 chroot,除非您真的很厲害.

  六、一些針對郵件限制的特殊設定

  限制一封信最多可以有幾位收信者,預設值是1000

  smtpd_recipient_limit = 1000

  限制單封信件的體積上限,預設值為 10 MB(改為20MB)

  message_size_limit = 20480000

  七、別名檔資料庫設定(aliases)

  使用default_database_type參數決定資料庫格式,預設為 hash

  alias_maps = hash:/etc/postfix/aliases

  alias_database = hash:/etc/postfix/aliases

  (安裝時隨附的別名檔範本,已經預設了一組慣例別名,都指向root,

  僅需要設置 root 別名,指向一個平常會收取信件的帳戶信箱即可)

  八、本地信件與信箱設置

  預設使用的信箱格式是mbox,下列的參數設置,如果結尾沒有"/",

  就表示是使用mbox;如果結尾跟著"/",就是使用 maildir格式.

  (建議還是使用最通用的mbox,與其他程式的相容性最高)

  所有本地收件人的名稱,都必須列在local_recipient_maps參數所指的表,

  預設值是指向Unix系統的密碼檔與別名表,通常不需要修改它.

  local_recipient_maps = proxy:unix:passwd.byname $aliase_maps

  信箱投遞作業

  mail_spool_directory = /var/mail

  mail_spool_directory = /var/spool/mail

  可以要求 Postfix 將信件放在使用者的主目錄下

  home_mailbox = Mailbox

  home_mailbox = Maildir/

  用於將郵件投遞到信箱的外部命令(通常用來過濾防堵郵件)

  mailbox_command = /usr/bin/procmail

  mailbox_command = /some/where/procmail -a "$EXTENSION"

  用於執行信箱投遞作業的傳輸服務

  mailbox_transport = lmtp:unix:/file/name

  mailbox_transport = cyrus

  八、啟用 SASL 驗證(服務於遠端、外部網域使用的認證機制)

  決定 Postfix SMTP server 是否要支援 SASL 驗證

  smtpd_sasl_auth_enable = yes

  設定信件收件的限制規則

  smtpd_recipient_restrictions = permit_mynetworks,

  permit_sasl_authenticated, reject_unauth_destination

  確認已經通過認證的網域(這條有點疑問...)

  smtpd_sasl_local_domain =

  限制某些登入的方式(拒絕匿名登入)

  smtpd_sasl_security_options = noanonymous

  九、郵件代轉設定(交換站、入境、出境閘道)

  (下列程序示範如何設定 gw.abc.com,讓它將郵件交給正確的內部伺服器)

  (1)hr.abc.com, sales.abc.com的DNS MX均指向 gw.abc.com

  (2)編輯gw的main.cf檔,將子網域列入 relay_domains 參數

  relay_domains = hr.abc.com, sales.abc.com

  (3)設定正確的傳輸表(transport map)

  transport_maps = hash:/etc/postfix/transport

  (4)編輯傳輸表(編完記得postmap一下)

  hr.abc.com relay:[m1.abc.com]

  sales.abc.com relay:[m2.abc.com]

  (5)彙整m1,m2的合法信箱名單成一個受理名單,放在gw上

  relay_recipient_maps = hash:/etc/postfix/relay_recipients

  (怎麼收集、更新,是個大問題)

  (6)postfix reload

  設定出境郵件閘道(將外地郵件交給閘道系統代為遞送)

  relayhost = $mydomain

  relayhost = gateway.my.domain

  relayhost = uucphost

  relayhost = [an.ip.add.ress]

  拒絕不知名用戶的代轉 REJECTING UNKNOWN RELAY USERS

  (其實是將所有合法使用者放入一個名單中)

  relay_recipient_maps = hash:/etc/postfix/relay_recipients

  十、設定 Open Relay Data Base

  smtpd_client_restrictions = hash:/etc/postfix/access,

  reject_rbl_client relays.ordb.org,

  reject_rhsbl_client dsn.rfc-ignorant.org

  除錯管理

  debug_peer_level = 2

  debug_peer_list = 127.0.0.1

  debug_peer_list = some.domain

  debugger_command =

  PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

  xxgdb $daemon_directory/$process_name $process_id & sleep 5

  如果並未安裝X-windows可以改用下列:

  debugger_command =

  PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;

  echo where) gdb $daemon_directory/$process_name $process_id2>&1

  >$config_directory/$process_name.$process_id.log & sleep 5

  其他、安裝時的一些設置資訊

  sendmail_path = /usr/sbin/sendmail.postfix

  newaliases_path = /usr/bin/newaliases.postfix

  mailq_path = /usr/bin/mailq.postfix

  setgid_group = postdrop

  manpage_directory = /usr/share/man

  sample_directory = /usr/share/doc/postfix-2.0.16/samples

  readme_directory = /usr/share/doc/postfix-2.0.16/README_FILES


[火星人 ] postfix配置main.cf已經有1271次圍觀

http://coctec.com/docs/linux/show-post-51758.html