.tw活動

使用iRedMail架設郵件伺服器

前言:

在現今網路環境中,由於垃圾郵件泛濫及病毒釣魚郵件充斥的情況下,若要自行架設郵件伺服器,必須考量阻擋垃圾郵件、及病毒信件的防護功能,而這些功能皆須透過多個套件來完成,有些套件設定複雜,並非一般人可以勝任。雖然大部份的網域名稱擁有者,大多會選擇將郵件伺服器交由專業的郵件代管機構,以加強郵件安全的防護能力,而少部份想自行架設郵件伺服器的使用者,即可以參考本文章介紹的iRedMail整合式郵件伺服器。它會協助安裝所有需要使用的套件及自動完成相關設定,只需要幾個步驟,即可完成一個郵件伺服器的架設,方便有能力自行管理郵件伺服器或想節省經費的單位使用。

示範說明:

一、示範的環境及網域名稱:

  1. 網域名稱: epaper.idv.tw
  2. 作業系統: FreeBSD v11.0
  3. 整合郵件伺服器:iRedMail(Postfix+Dovecot+SpamAssassin+ClamAV+Roundcube……)

二、參考相關資料:

  1. iRedMail網站:http://www.iredmail.org/
  2. iRedMail安裝手冊(FreeBSD):http://www.iredmail.org/docs/install.iredmail.on.freebsd.html
  3. Let's Encrypt網站:https://letsencrypt.org/

三、備註:

  1. FreeBSD版的iRedMail是使用ports的方式進行安裝。
  2. iRedMail的安裝程式無法有效自動判斷套件是否已經安裝,故在網站的安裝說明中,明確表示必須是一個乾淨的系統。
  3. iRedMail安裝完成後,預設使用自己簽發的憑證,可以自行更換正確的憑證資料。
  4. 若預使用Let's Encrypt的免費憑證,可以參考台網中心第173期(2016-05)第184期(2017-04)電子報內容。

安裝及設定方式

  1. 設定Hostname(iRedMail會以hostname來進行相關的設定)
    修改rc.conf:
    # vi /etc/hosts
    hostname="mail.epaper.idv.tw"

    修改hosts:
    # vi /etc/rc.conf
    127.0.0.1   mail.epaper.idv.tw localhost localhost.localdomain
    

    重新啟動Hostname:
    # /etc/rc.d/hostname restart

  2. 更新ports資料
    # portsnap fetch extract update

  3. 安裝必要的套件
    # pkg install wget bash-static

  4. 下載最新的iRedMail套件並安裝
    下載iRedMail套件(最新版本可參考:http://www.iredmail.org/download.html)
  5. # wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.6.tar.bz2
    # tar -jxvf iRedMail-0.9.6.tar.bz2

    修改packages_freebsd.sh檔(此步驟視個人需求而定,可使用預設的版本、也可以自行更改喜歡的版本)
    # cd iRedMail-0.9.6
    # vi functions/packages_freebsd.sh
    export PREFERRED_MARIADB_VER='101'
    
    export PREFERRED_PHP_VER='71'
    
    if [ X"${BACKEND_ORIG}" == X'MARIADB' ]; then
        export PREFERRED_MYSQL_VER='101m'
    fi
    
    freebsd_make_conf_add 'DEFAULT_VERSIONS' 'ssl=libressl python=2.7 python2=2.7 apache=2.4 pgsql=9.5 php=7.1'
    
    lang_perl5.24 \
    
    cat > /var/db/ports/lang_perl5.24/options << EOF
    
    備註:
    1. 紅色的部分,依個人的喜好,更改合適的版本。
    2. iRedMail預設使用的版本:
      Perl -> 5.20
      PHP -> 7.0
      MariaDB -> 5.5

    安裝iRedMail
    # bash ./iRedMail.sh


    安裝過程可能出現的錯誤(例如:memcached的「[x] DTRACE Enable dtrace probes」選項)
    # cd /usr/ports/databases/memcached && make config
    # cd -
    # bash ./iRedMail.sh
    備註:
    1. 將memcached改為「[ ] DTRACE  Enable dtrace probes」,再重新執行iRedMail.sh即可

  6. 設定DNS的DKIM資料
    在iRedMail.tips檔案中,找到DKIM的資料
    # less ./iRedMail.tips


    設定DNS(新增一筆TXT)

    備註:
    1. 新增一筆TXT資料
      域名/主機名稱:dkim._domainkey.epaper.idv.tw
      紀錄型態:字串(TXT)
      IP位址/主機名稱:v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GXc2M2xY...中間省略...jv4MLjgQYt0E+FkwIDAQAB
    2. 詳略資訊,請參考iRedMail.tips裡的內容。

  7. 更改憑證設定(申請Let’s Encrypt免費憑證,請參考先前的電子報文章)
    更新Nginx的憑證設定:
    # vi /usr/local/etc/nginx/conf.d/00-default.conf
    ssl_certificate /var/db/acme/live/mail.epaper.idv.tw/fullchain;
    ssl_certificate_key /var/db/acme/live/mail.epaper.idv.tw/privkey;

    更新Postfix的憑證設定:
    # vi /usr/local/etc/postfix/main.cf
    smtpd_tls_key_file = /var/db/acme/live/mail.epaper.idv.tw/privkey
    smtpd_tls_cert_file = /var/db/acme/live/mail.epaper.idv.tw/cert

    更新Dovecot的憑證設定:
    # vi /usr/local/etc/dovecot/dovecot.conf
    ssl_cert = < /var/db/acme/live/mail.epaper.idv.tw/cert
    ssl_key = < /var/db/acme/live/mail.epaper.idv.tw/privkey
    

    重新啟動Nginx、Postfix、Dovecot服務
    # /usr/local/etc/rc.d/postfix restart
    # /usr/local/etc/rc.d/dovecot restart
    # /usr/local/etc/rc.d/nginx restart

郵件系統相關網址(將XXX換成自己的網域名稱)

  1. iRedMail後台管理(新增管理的網域名稱及郵件帳號)
    https://xxx.xxx.xxx.tw/iredadmin/

  2. Webmail介面
    https://xxx.xxx.xxx.tw/mail/

  3. 簡易的統計資料
    https://xxx.xxx.xxx.tw/awstats/
    https://xxx.xxx.xxx.tw/awstats/awstats.smtp.html
    https://xxx.xxx.xxx.tw/awstats/awstats.web.html

財團法人台灣網路資訊中心,100臺北市羅斯福路二段9號4樓之2
TEL:886-2-23411313,FAX:886-2-2396-8832,版權聲明,禁止未經授權轉貼節錄