亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網管 > 服務器 > 正文

搭建完整郵件系統(postfix+dovecot+clamAV+Spamassassin+amavisd-new)

2020-05-27 13:25:35
字體:
來源:轉載
供稿:網友

   相關軟件:

  1. 發送郵件 --- postfix

  2. 身份認證 --- sasl2

  3. 接收郵件 --- dovecot

  4. 防病毒郵件 --- clamAV

  5. 防垃圾郵件 --- spamassassin

  6.控制病毒及垃圾郵件掃描程序 --- amavisd-new

  ============================

  待完善的問題:

  1. 群發郵件的權限設置

  2. 用戶郵箱的配額限制

  ============================

  完整郵件系統架構簡介

  我們知道,一個完整的郵件系統應該包括以下幾個重要功能:

  基本功能: 發送郵件、收取郵件

  安全性功能: 收發郵件的身份認證、防病毒、防垃圾

  完整的郵件系統架構流程圖如下:

搭建完整郵件系統(postfix+dovecot+clamAV+Spamassassin+amavisd-new) 武林網

  相關軟件的安裝及配置

  1. 安裝postfix,同時讓postfix支持mysql查詢

  # aptitude install postfix postfix-mysql

  2. 查看postfix是否支持外部數據庫mysql認證

  # postconf -m

  btree

  cidr

  environ

  hash

  internal

  mysql

  nis

  proxy

  regexp

  sdbm

  static

  tcp

  unix

  3. 查看postfix支持的sasl認證類型

  # postconf -a

  cyrus

  dovecot

  4. 安裝cyrus sasl認證

  # aptitude install sasl2-bin libsasl2-modules-sql

  5. 修改/etc/default/saslauthd

  START=no ====> START=yes

  6. 重啟saslauthd,并驗證saslauthd正常工作

  # /etc/init.d/saslauthd restart

  # testsaslauthd -u {username} -p {password}

  若出現如下結果,表示saslauthd已正常運行,并可進行認證服務,否則請檢查username和password并重試

  0: OK "Success."

  注:{username},{password}是登錄linux系統的用戶名和密碼

  7. postfix啟用sasl認證

  編輯/etc/postfix/main.cf,在最后添加如下內容:

  smtpd_sasl_auth_enable = yes

  broken_sasl_auth_clients = yes

  smtpd_sasl_security_options = noanonymous

  8. 修改/etc/postfix/master.cf,禁止postfix啟用chroot

  smtp inet n - - - - smtpd

  rewrite unix - - - - - trivial-rewrite

  cleanup unix n - - - 0 cleanup

  ==========>>>>>>

  smtp inet n - n - - smtpd

  rewrite unix - - n - - trivial-rewrite

  cleanup unix n - n - 0 cleanup

  這樣設置的原因:如果不這么設置,則在發送郵件時,總是報如下錯誤,且郵件無法發送成功:

  postfix/trivial-rewrite[10698]: warning: connect to mysql server localhost: Cant connect to local MySQL server through socket /var/run/mysqld/mysqld.sock

  postfix/trivial-rewrite[10698]: fatal: mysql:/etc/postfix/mysql_virtual_alias_maps.cf(0,lock|fold_fix): table lookup problem

  postfix/smtpd[10394]: warning: problem talking to service rewrite: Success

  postfix/master[10386]: warning: process /usr/lib/postfix/trivial-rewrite pid 10698 exit status 1

  postfix/smtpd[10697]: warning: problem talking to service rewrite: Connection reset by peer

  postfix/master[10386]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling

  9. 安裝mysql并創建數據庫和表,同時插入數據

  # aptitude install mysql-client mysql-server

  # mysql -u root -p

  輸入密碼

  # sql> create database mail;

  # sql> create table mail.users( id in(8) primary key auto_increment, username varchar(50), password varchar(50), domain varchar(50), quota int(10), maildir varchar(200));

  # sql> insert into mail.users(username,password,domain,maildir,quota) values(test,test,tiddy.com,tiddy.com/test/,16000);

  # sql> commit;

  10. 修改postfix通過sasl的認證方式(pam/shadow/sql/ldap),在/etc/postfix/sasl目錄下新建文件smtpd.conf,內容如下:

  pwcheck_method: auxprop

  auxprop_plugin: sql

  mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM

  sql_engine: mysql

  sql_hostnames: 127.0.0.1

  sql_user: root

  sql_passwd: tiddy

  sql_database: mail

  sql_select: SELECT password FROM users WHERE username = %u

  11. 在postfix上安裝telnet并進行測試

  # aptitude install telnet

  # telnet localhost 25

  Trying 127.0.0.1...

  Connected to localhost.

  Escape character is ^].

  220 mail.tiddy.com ESMTP Postfix (Debian/GNU)

  auth login

  334 VXNlcm5hbWU6

  dGVzdA==

  334 UGFzc3dvcmQ6

  dGVzdA==

  235 2.7.0 Authentication successful

  mail from:

  250 2.1.0 Ok

  rcpt to:

  250 2.1.5 Ok

  data

  354 End data with .

  Subject: alskdjlasd

  lasdjflasdf

  .

  250 2.0.0 Ok: queued as 4C1FB440E6

  postfix sasl mysql認證成功

  注意:上述紅色標記的文字表示經過BASE64編碼的用戶名(test)和密碼(test)

  12. 安裝POP3軟件dovecot

  # aptitude install dovecot-pop3d

  13. 創建虛擬用戶(以便該用戶有權限訪問郵件存放目錄)

  # groupadd -g 5000 vmail

  # useradd -u 5000 -g 5000 vmail -d /var/vmail -m

  14. 配置dovecot

  修改/etc/dovecot/dovecot.conf,主要修改如下部分

  1) 去掉注釋符號(#)

  base_dir = /var/run/dovecot

  2) dovecot所使用的協議

  protocols = pop3 pop3s

  3) dovecot所監聽的端口(*:監聽所有網絡端口)

  listen = *

  4) 打開明文密碼認證(采用pop3協議收取郵件時,采用明文密碼認證)

  disable_plaintext_auth = no

  5) 日志文件

  log_path = /var/log/dovecot.log

  6) debug日志文件

  info_log_path = /var/log/dovecot.info

  7) 每行日志輸出的前綴

  log_timestamp = "%Y-%m-%d %H:%M:%S "

  8) 客戶端用pop3協議收取郵件時的服務器收取路徑

  mail_location = maildir:/var/vmail/%d/%n/

  9) 是否開啟debug(測試階段使用,正式投入使用后,最好關閉)

  mail_debug = yes

  10) dovecot的pop3認證

  auth default {

  #認證方式

  mechanisms = plain login

  #認證過程中的密碼查詢方式(采用sql查詢)

  passdb sql {

  # Path for SQL configuration file

  args = /etc/dovecot/dovecot-sql.conf

  }

  #認證過程中的用戶查詢方式(采用sql查詢)

  userdb sql {

  # Path for SQL configuration file

  args = /etc/dovecot/dovecot-sql.conf

  }

  #監聽客戶端socket以便隨時發現客戶端發起的用戶身份認證

  socket listen {

  client {

  path = /var/spool/postfix/private/auth

  mode = 0660

  user = postfix

  group = postfix

  }

  }

  }

  15. 修改/etc/dovecot/dovecot-sql.conf

  1) 數據庫驅動

  driver = mysql

  2) 數據庫連接信息

  connect = host=localhost dbname=mail user=root password=tiddy

  3) 數據庫密碼的加密方式(PLAIN:明文方式,不加密)

  default_pass_scheme = PLAIN

  4) 數據庫查詢語句

  password_query = SELECT username, domain, password FROM users WHERE username = %n

  user_query = SELECT maildir, 5000 AS uid, 5000 AS gid FROM users WHERE username = %n

  16. 重新修改/etc/postfix/main.cf(注意:有的內容已經存在或添加過,請務必不要重復添加)

  ######################## 基本配置 ##########################

  myhostname = postfixsvr

  alias_maps = hash:/etc/aliases

  alias_database = hash:/etc/aliases

  myorigin = tiddy.com

  relayhost =

  mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

  mailbox_size_limit = 0

  recipient_delimiter = +

  inet_interfaces = all

  #我們使用虛擬網域virtual_mailbox_domains變量來決定哪些網域的郵件可以被投遞,此處注釋掉

  #relay_domains = tiddy.com

  #mydestination = tiddy.com

  ##################### 啟用SASL Auth ########################

  # 設定 Postfix 使用 SASL 認證。

  smtpd_sasl_auth_enable = yes

  # 設定 SASL 支持非標準 E-mail Client 的認證動作。

  broken_sasl_auth_clients = yes

  # 不使用 ANONYMOUS 這個認證。

  smtpd_sasl_security_options = noanonymous

  # 對收件人,發件人的限制(允許授權認證用戶,本地網絡用戶<即mynetwork定義的網絡客戶端>,其他一律拒絕)

  smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject

  # 客戶端限制(允許授權認證客戶端,本地網絡客戶端<即mynetwork定義的網絡客戶端>,其他一律拒絕)

  smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks, reject

  # 認證類型

  smtpd_sasl_type = dovecot

  # sasl認證路徑(注意與dovecot配置文件/etc/dovecot/dovecot.conf中的socket listen內容path末端保持一致)

  smtpd_sasl_path = private/auth

  ############################### 虛擬郵箱 #####################################

  # 虛擬郵箱的根路徑

  virtual_mailbox_base = /var/vmail

  # 虛擬郵箱映射表

  virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

  # 虛擬網域

  virtual_mailbox_domains = tiddy.com

  # 虛擬別名映射表(用戶郵箱別名,郵件群組都由該參數決定,群組也是別名的一種形式)

  virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

  # 哪些用戶可以訪問虛擬郵箱

  virtual_uid_maps = static:5000

  virtual_gid_maps = static:5000

  ########################### 郵件投遞程序 #################################

  virtual_transport = virtual

  ########################## 郵箱容量限制################################

  #每封信的最大大小(10M),postfix的默認值為10M,但這指的是郵件正文和

  #編碼后附件的總和,經過base64編碼,附件的大小會增加35%左右,因此這里設定郵件大小為14M

  message_size_limit = 14336000

  # 如果使用Courier maildir++ quotas,則使用yes,默認為no

  virtual_maildir_extended = yes

  virtual_create_maildirsize = yes

  #默認郵箱大小限制

  virtual_mailbox_limit = 16000000

  #是否允許覆蓋默認的郵箱大小設置。

  virtual_mailbox_limit_override = yes

  # no限制整個maildir,yes只限制inbox,默認為no

  virtual_mailbox_limit_inbox = no

  #針對每個用戶的限制

  virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

  # 這個選項在未設置’virtual_maildir_limit_message_maps’時,如果用戶超出了限額的提示信息

  virtual_maildir_limit_message = Sorry, overquota

  # yes的話使用5xx錯誤,no使用4xx錯誤,郵件還是會被放入隊列

  virtual_overquota_bounce = yes

  # 是否在計算限額時加上垃圾文件夾,這個選項需要virtual_trash_name配合,默認為no

  virtual_trash_count = no

  # 設置垃圾文件夾名稱,默認值為:.Trash

  virtual_trash_name = “.Trash”

  17. 創建相關文件

  (1) 創建文件/etc/postfix/mysql_virtual_mailbox_maps.cf,內容如下(下面內容其實是查詢數據庫,具體語句涵義不再贅述):

  user = root

  password = tiddy

  hosts = localhost

  dbname = mail

  table = users

  select_field = maildir

  where_field = username

  (2) 創建文件/etc/postfix/mysql_virtual_alias_maps.cf,內容如下(下面內容其實是查詢數據庫,具體語句涵義不再贅述):

  user = root

  password = tiddy

  hosts = localhost

  dbname = mail

  table = alias

  select_field = goto

  where_field = address

  18. 數據庫結構

  數據庫名稱:mail

  數據庫表users( id in(8) primary key auto_increment, username varchar(50), password varchar(50), domain varchar(50), quota int(10), maildir varchar(200))

  數據庫表alias( id int(8) primary key auto_increment, address varchar(100), goto varchar(5000), isgroup int(2))

  注意:

  (1) 表users中的字段maildir保存的郵件存放路徑的最后一個字符/有無,決定了郵件的存放方式:有/表示以maildir方式存放,無/表示以mailbox方式存放

  (2) 表alias中的字段goto表示根據別名郵箱將郵件實際轉發的目標郵箱,如果是群組轉發,則goto字段可能保存多個郵箱地址,這些郵箱地址以分號隔開

  -----------------------------------------------------------------以上是基本郵件系統的安裝及配置---------------------------------------------------------------------------------

  -----------------------------------------------------------------以下是對基本郵件系統的完善(包括殺毒和防垃圾郵件的處理)---------------------------------------------------------------------------------

  1. 安裝殺毒軟件(ClamAV)和防垃圾軟件(SpamAssassin)及其相關依賴包

  # apt-get install libnet-dns-perl pyzor razor arj bzip2 cabextract cpio file gzip lha nomarch pax rar unrar unzip zip

  # apt-get install amavisd-new spamassassin clamav-daemon

  2. 修改用戶權限

  # usermod -a -G clamav amavis

  # usermod -a -G amavis clamav

  3. 修改spamassassin配置文件/etc/default/spamassassin

  ENABLED=0 ====> ENABLED=1

  CRON=0 ====> CRON=1

  4.啟動spamassassin

  # /etc/init.d/spamassassin start

  5. 修改amavis配置文件/etc/amavis/conf.d/15-content_filter_mode

  去掉如下內容注釋(目的:check病毒和垃圾郵件)

  @bypass_virus_checks_maps = (

  %bypass_virus_checks, @bypass_virus_checks_acl, $bypass_virus_checks_re);

  @bypass_spam_checks_maps = (

  %bypass_spam_checks, @bypass_spam_checks_acl, $bypass_spam_checks_re);

  6. 修改postfix配置文件/etc/postfix/main.cf,注釋掉mydestination,并添加如下內容

  # 將postfix接收到的郵件傳遞給amavis程序進行掃描

  content_filter = smtp-amavis:[127.0.0.1]:10024

  7. 編輯文件/etc/postfix/master.cf,在文件最后添加如下內容(注意:-o之前必須至少有兩個空格,表示跟前面一行在邏輯上是一行)

  smtp-amavis unix - - - - 2 smtp

  -o smtp_data_done_timeout=1200

  -o smtp_send_xforward_command=yes

  -o disable_dns_lookups=yes

  -o max_use=20

  127.0.0.1:10025 inet n - - - - smtpd

  -o content_filter=

  -o local_recipient_maps=

  -o relay_recipient_maps=

  -o smtpd_restriction_classes=

  -o smtpd_delay_reject=no

  -o smtpd_client_restrictions=permit_mynetworks,reject

  -o smtpd_helo_restrictions=

  -o smtpd_sender_restrictions=

  -o smtpd_recipient_restrictions=permit_mynetworks,reject

  -o smtpd_data_restrictions=reject_unauth_pipelining

  -o smtpd_end_of_data_restrictions=

  -o mynetworks=127.0.0.0/8

  -o smtpd_error_sleep_time=0

  -o smtpd_soft_error_limit=1001

  -o smtpd_hard_error_limit=1000

  -o smtpd_client_connection_count_limit=0

  -o smtpd_client_connection_rate_limit=0

  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

  8. 在文件/etc/postfix/master.cf中的pickup行添加如下內容(注意:-o之前必須至少有兩個空格,表示跟前面一行在邏輯上是一行)

  -o content_filter=

  -o receive_override_options=no_header_body_checks

  9. 重啟postfix

  # /etc/init.d/postfix reload

  10. amavis對相關郵件(病毒,垃圾郵件等)的處理方式,修改/etc/amavis/conf.d/20-debian_defaults

  關于如下參數的含義,詳情請參見我的另一篇文章《郵件系統之amavisd-new的簡介、安裝及配置》

  $final_spam_destiny = D_BOUNCE ===> $final_spam_destiny = D_DISCARD

  $QUARANTINEDIR = "/data/virusmails";

  11. 修改/etc/amavis/conf.d/05-node_id(若不修改成如下格式,在啟動郵件系統的一些軟件時,在/var/log/mail.log中總是報錯,且軟件無法正常啟動)

  $myhostname = "mail.tiddy.com";

  12. 修改/etc/amavis/conf.d/50-user,添加如下內容(注意如下內容不能添加到最后面):

  #垃圾郵件和病毒郵件將被存放的目錄(該目錄spam-quarantine對應/etc/amavis/conf.d/20-debian_defaults文件中的變量$QUARANTINEDIR )

  #這里的設置表示垃圾及病毒郵件的保存目錄為/data/virusmails

  $spam_quarantine_to = "spam-quarantine";

  $virus_quarantine_to = "spam-quarantine";

  #黑白名單設置

  @whitelist_sender_maps = read_hash("/etc/amavis/whitelist");

  @blacklist_sender_maps = read_hash("/etc/amavis/blacklist");

  13. 在目錄/etc/amavis下創建文件blacklist(黑名單)和whitelist(白名單)

  # touch /etc/amavis/whitelist

  # touch /etc/amavis/blacklist

  14. 重啟所有服務

  # /etc/init.d/clamav-daemon restart

  # /etc/init.d/clamav-freshclam restart

  # /etc/init.d/spamassassin restart

  # /etc/init.d/amavis restart

  # /etc/init.d/postfix restart

  # /etc/init.d/dovecot restart

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91色在线免费| 国产精品激情av在线播放| 中文字幕日韩欧美| 人九九综合九九宗合| 国产mv久久久| 一区二区三区回区在观看免费视频| 欧美激情18p| 亚洲第一免费播放区| 国产欧美亚洲视频| 97色在线观看免费视频| 亚洲自拍另类欧美丝袜| 国产精品爽爽爽爽爽爽在线观看| 亚洲欧美在线播放| 亚洲色图第一页| 韩国v欧美v日本v亚洲| 精品中文视频在线| 国产91露脸中文字幕在线| 国产亚洲精品91在线| 91九色国产社区在线观看| 黄色一区二区在线| 57pao国产精品一区| 成人观看高清在线观看免费| 久久精品亚洲国产| 国产专区精品视频| 激情av一区二区| 精品久久久久久久久久久久久| 国内成人精品一区| 欧美精品www| 91午夜理伦私人影院| 中文字幕欧美国内| 精品一区精品二区| 91av国产在线| 欧美电影在线免费观看网站| 黄色成人av网| 亚洲精品久久久久久下一站| 日韩麻豆第一页| 日韩成人久久久| 欧美午夜女人视频在线| 亚洲xxxx妇黄裸体| 亚洲精品xxx| 亚洲人成自拍网站| 久久久之久亚州精品露出| 91精品视频在线免费观看| 88国产精品欧美一区二区三区| 中文字幕亚洲一区二区三区| 国产日本欧美视频| 国产噜噜噜噜噜久久久久久久久| 在线午夜精品自拍| 中文字幕亚洲一区二区三区五十路| 欧美日韩在线观看视频小说| 超薄丝袜一区二区| 日韩电影免费观看在线观看| 日韩精品中文在线观看| 91精品国产91| 欧美一区二区三区免费观看| 久久青草福利网站| 欧美日韩国产在线看| 精品在线小视频| 永久免费精品影视网站| 国产有码在线一区二区视频| 国产精品久久色| 亚洲精品在线视频| 久热精品视频在线| 日韩视频―中文字幕| 欧美成人性色生活仑片| 久久久伊人日本| 久久视频在线观看免费| 国产精品video| 久久久久久国产| 成人观看高清在线观看免费| 亚洲精品乱码久久久久久金桔影视| 国产精品丝袜久久久久久不卡| 亚洲电影免费观看高清完整版在线观看| 日韩电影免费在线观看中文字幕| 亚洲中国色老太| 黑人欧美xxxx| 尤物九九久久国产精品的分类| 亚洲国产精品国自产拍av秋霞| 国产欧美va欧美va香蕉在| 欧美在线xxx| 亚洲国产美女精品久久久久∴| 社区色欧美激情 | 亚洲男人av电影| 91欧美视频网站| 成人在线视频网| 亚洲欧美资源在线| 久久久久中文字幕2018| 国产久一一精品| 亚洲成**性毛茸茸| 欧美成人午夜视频| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲a级在线播放观看| 日韩电影在线观看永久视频免费网站| 久久久久亚洲精品成人网小说| 美女啪啪无遮挡免费久久网站| 欧美日本亚洲视频| 亚洲综合在线做性| 亚洲一区二区久久| 韩国美女主播一区| 浅井舞香一区二区| 久久电影一区二区| 国产69精品99久久久久久宅男| 国产精品视频资源| 成人久久18免费网站图片| 久久久在线视频| 欧美一级bbbbb性bbbb喷潮片| 亚洲视频在线免费看| 成人在线激情视频| 色噜噜久久综合伊人一本| 久久精品国产欧美亚洲人人爽| 91成人精品网站| 亚洲激情视频在线播放| 成人激情视频小说免费下载| 成人国产精品一区| 精品国产一区二区三区四区在线观看| 影音先锋日韩有码| 欧美日韩国产专区| 一区二区三区动漫| 欧美自拍大量在线观看| 久久影视电视剧免费网站清宫辞电视| 国产999在线观看| 国产精品久久久久9999| 亚洲欧美色婷婷| 欧美亚洲国产精品| 51精品国产黑色丝袜高跟鞋| 亚洲成人免费在线视频| 国产精自产拍久久久久久蜜| 精品国内产的精品视频在线观看| www.亚洲免费视频| 国产在线精品一区免费香蕉| 色婷婷亚洲mv天堂mv在影片| 色在人av网站天堂精品| 欧美肥臀大乳一区二区免费视频| 亚洲一品av免费观看| 精品国产一区av| 懂色av影视一区二区三区| 欧美精品制服第一页| 亚洲国产成人精品久久| 最近更新的2019中文字幕| 欧美精品日韩三级| 成人免费黄色网| 日韩精品在线观看一区二区| 久久久久久网址| 国产午夜精品麻豆| 成人国产精品av| 欧美高清不卡在线| 亚洲国产精品yw在线观看| 亚洲精品久久久久国产| 色爱av美腿丝袜综合粉嫩av| 成人激情电影一区二区| 欧美在线亚洲一区| 欧美日韩国产专区| 亚洲最大av网| 在线日韩日本国产亚洲| 日韩精品在线免费观看| 亚洲国产精久久久久久| 深夜福利91大全| 国产亚洲精品美女久久久| 国产精品成人一区| 久久久久久久久久久亚洲| 国产99久久久欧美黑人| 国产精品无码专区在线观看| 欧美午夜片在线免费观看| 成人自拍性视频|