久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    在 Ubuntu 12.04 上安裝和配置郵件服務 | vpsee.com

     創昕聯合 2014-02-20

    postfix

    前段時間把一臺 FreeBSD 郵件服務器移到了 Ubuntu 虛擬機,又痛苦的配置了一次郵件服務器,配置完后再寫一遍 Puppet 代碼,把整個配置過程代碼化,然后再重建一次虛擬機測試和應用 Puppet 代碼,每次看到滿屏的自動配置過程都會驚訝 Puppet 的魔力

    郵件服務器配置之所以麻煩是因為需要了解很多東西,牽涉到域名服務 DNS/Bind,Web 收發郵件 Apache/PHP/MySQL/SquirrelMail,認證服務 LDAP, Kerberos, PAM,郵件通常存放在額外存儲上還要 NFS/SAN,郵件服務 Postfix/Dovecot,反垃圾反病毒 Postgrey/Clam AV/SpamAssassion,安全認證 SSL,監控和備份等等,這一套下來基本包括了 Linux 系統管理的方方面面,所以說配置一個安全可靠的企業級郵件系統不容易,足夠寫一本書。個人配置郵件服務器通常不需要 LDAP/Kerbersos/NFS/SAN/SSL 這些,剔除這些后就不是那么復雜了,不過再想一下,個人有必要配置郵件服務器么?直接用免費的 Google App 不是很方便么。

    準備工作

    簡單介紹一下我們將要安裝的軟件包:

    • Postfix: 用來接受和發送郵件的郵件服務器,正確說法應該叫郵件傳送代理(Mail Transfer Agent,MTA),是郵件服務最重要的部分;
    • Dovecot: POP 和 IMAP 服務器,用來管理本地郵件目錄以便用戶能通過 Mail.app, Thunderbird, Mutt 等郵件客戶端(又叫郵件用戶代理 Mail User Agent, MUA)登陸和下載郵件;
    • Postgrey: 郵件灰名單工具,可簡單的抵擋垃圾郵件;
    • amavisd-new: 一個代理,用于連接郵件傳輸代理和內容檢查器,可以理解為 Postfix 把郵件交給它,它負責聯系病毒掃描和垃圾郵件過濾;
    • Clam AntiVirus: 病毒掃描工具;
    • SpamAssassin: 垃圾郵件內容過濾工具;
    • Postfix Admin: Postfix 的 Web 前端,用來管理郵件用戶和域名。

    設置主機名(不要跳過這一步):

    # hostname mail.
    
    # vi /etc/hosts
    127.0.0.1 mail. localhost
    

    更新系統:

    $ sudo apt-get update
    $ sudo apt-get upgrade
    

    安裝必要軟件包

    安裝 LAMP,Postfix 本身不需要 Apache/PHP/MySQL,但是因為要安裝 Postfix Admin,并且管理用戶需要用到數據庫,所以要安裝 Apache/PHP 和 MySQL.

    $ sudo apt-get install lamp-server^
    $ sudo apt-get install php-apc php5-curl php5-gd php-xml-parser php5-imap
    

    安裝郵件服務器及一些工具:

    $sudo apt-get install mail-server^
    
    $sudo apt-get install postfix-mysql dovecot-mysql postgrey
    $sudo apt-get install amavis clamav clamav-daemon spamassassin
    
    $sudo apt-get install libnet-dns-perl pyzor razor
    $sudo apt-get install arj bzip2 cabextract cpio file gzip nomarch pax unzip zip
    

    配置 Apache

    編輯 apache 配置文件后重啟:

    $ sudo vi /etc/apache2/sites-available/default
    ...
        DocumentRoot /var/www
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
    ...
    
    $ sudo /etc/init.d/apache2 restart
    

    配置 MySQL 數據庫

    創建一個名為 mail 的數據庫并設置權限和密碼:

    $ mysql -uroot -p
    
    mysql> create database mail;
    mysql> grant all on mail.* to 'mail'@'localhost' identified by 'password';
    

    配置 Postfix Admin

    下載 psotfixadmin,解壓后放到 /var/www:

    $ wget http://downloads./project/postfixadmin/postfixadmin/postfixadmin-2.3.5/postfixadmin-2.3.5.tar.gz
    $ gunzip postfixadmin-2.3.5.tar.gz
    $ tar -xf postfixadmin-2.3.5.tar
    $ sudo mv postfixadmin-2.3.5 /var/www/postfixadmin
    $ sudo chown -R www-data:www-data /var/www/postfixadmin
    

    配置 postfixamdin,標準的 php 程序配置方法,填入訪問數據庫需要的信息,其中 setup_password 部分稍后再填入:

    $ sudo vi /var/www/postfixadmin/config.inc.php
    ...
    $CONF['configured'] = true;
    $CONF['setup_password'] = '稍后替代';
    $CONF['postfix_admin_url'] = 'http://mail./postfixadmin';
    $CONF['database_type'] = 'mysql';
    $CONF['database_host'] = 'localhost';
    $CONF['database_user'] = 'mail';
    $CONF['database_password'] = 'password';
    $CONF['database_name'] = 'mail';
    $CONF['admin_email'] = 'admin@';
    $CONF['encrypt'] = 'md5crypt';
    ...
    

    用瀏覽器訪問 http://mail./postfixadmin/setup.php,用哈希后的密碼字符串替代上面 $CONF['setup_password'] = ‘稍后替代’ 中的相關部分。

    為了安全考慮,最好禁止 web 訪問 setup.php:

    $ sudo vi /var/www/postfixadmin/.htaccess
    
    deny from all
    
    

    配置 Dovecot

    給系統添加 vmail 賬號:

    $ sudo useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail" vmail
    $ sudo mkdir /var/vmail
    $ sudo chmod 770 /var/vmail
    $ sudo chown vmail:mail /var/vmail
    

    開始配置 Dovecot,dovecot 支持多種認證方式,這里采用數據庫認證,注意下面的配置文件一個包含一個,初看比較亂,10-auth.conf 有 !include auth-sql.conf.ext 一行,會包含 /etc/dovecot/conf.d/auth-sql.conf.ext,而 auth-sql.conf.ext 會包含下面要提到的 /etc/dovecot/dovecot-sql.conf.ext,這樣只要用不同的 include 就可以切換不同的認證方式,雖然初看復雜一點但是熟悉以后用起來還是挺方便的。

    $ sudo vi /etc/dovecot/conf.d/10-auth.conf
    
    disable_plaintext_auth = yes
    auth_mechanisms = plain login
    
    !include auth-sql.conf.ext
    

    配置 Dovecot,設置數據庫參數,以便 dovecot 能正確訪問剛才創建的 mail 數據庫:

    $ sudo vi /etc/dovecot/dovecot-sql.conf.ext
    ...
    driver = mysql
    connect = host=localhost dbname=mail user=mail password=password
    default_pass_scheme = MD5-CRYPT
    ...
    password_query =   SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home,   'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid   FROM mailbox WHERE username = '%u' AND active = '1'
    
    user_query =   SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail,   150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota   FROM mailbox WHERE username = '%u' AND active = '1'
    ...
    

    用戶在服務器上用來存放郵件的地方在哪呢?所以需要指定郵件存放地址 /var/vmail,這個目錄上面在創建 vmail 賬號時已經創建了:

    $ sudo vi /etc/dovecot/conf.d/10-mail.conf
    ...
    mail_location = maildir:/var/vmail/%d/%n
    mail_uid = vmail
    mail_gid = mail
    ...
    

    修改 /etc/dovecot/conf.d/10-master.conf

    $ sudo vi /etc/dovecot/conf.d/10-master.conf
    ...
    service auth {
      unix_listener auth-userdb {
       mode = 0600
        user = vmail
        group = mail
      }
      unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix        
      }
    ...
    

    確認 dovecot 有權限讀取配置文件:

    $ sudo chown -R vmail:dovecot /etc/dovecot
    $ sudo chmod -R o-rwx /etc/dovecot
    

    配置 Amavis, ClamAV, SpamAssassin

    互加 clamav, amavis 用戶到對方組里以便能互相訪問,配置過濾模式:

    $ sudo adduser clamav amavis
    $ sudo adduser amavis clamav
    
    $ sudo vi /etc/amavis/conf.d/15-content_filter_mode
    use strict;
    @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);
    1; # ensure a defined return
    

    啟用 spamassassin:

    $ sudo vi /etc/default/spamassassin
    ...
    ENABLED=1
    CRON=1
    ...
    

    配置 Postfix

    main.cf 是 postfix 的主要配置文件:

    $ sudo /etc/postfix/main.cf
    ...
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    
    myhostname = mail.
    myorigin = /etc/hostname
    mydestination = mail., localhost
    mynetworks = 127.0.0.0/8
    inet_interfaces = all
    mynetworks_style = host
    
    virtual_mailbox_base = /var/vmail/
    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/m
    ysql_virtual_alias_domainaliases_maps.cf
    virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
    
    mail_spool_directory = /var/mail
    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    
    content_filter = amavis:[127.0.0.1]:10024
    
    header_checks = regexp:/etc/postfix/header_checks
    ...
    

    注意上面配置有行 header_checks = regexp:/etc/postfix/header_checks,我們現在還沒有 header_checks 文件,創建一個并包含一下內容,給自己郵件增加一點隱私,過濾一些信息:

    $ sudo vi /etc/postfix/header_checks
    /^Received:/                 IGNORE
    /^User-Agent:/               IGNORE
    /^X-Mailer:/                 IGNORE
    /^X-Originating-IP:/         IGNORE
    /^x-cr-[a-z]*:/              IGNORE
    /^Thread-Index:/             IGNORE
    

    還需要配置 master.cf 文件:

    $ sudo vi /etc/postfix/master.cf
    ...
    smtps     inet  n       -       -       -       -       smtpd
      -o syslog_name=postfix/smtps
      -o smtpd_tls_wrappermode=yes
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_tls_auth_only=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject
      -o smtpd_sasl_security_options=noanonymous,noplaintext
      -o smtpd_sasl_tls_security_options=noanonymous
    
    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
    
    dovecot      unix   -        n      n       -       -   pipe
      flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/dovecot-lda -d $(recipient)
    

    還需要配置幾個文件:

    $ sudo vi /etc/postfix/mysql_virtual_alias_domainaliases_maps.cf
    user = mail
    password = password
    hosts = 127.0.0.1
    dbname = mail
    query = SELECT goto FROM alias,alias_domain
      WHERE alias_domain.alias_domain = '%d'
      AND alias.address=concat('%u', '@', alias_domain.target_domain)
      AND alias.active = 1
    
    $ sudo vi /etc/postfix/mysql_virtual_alias_maps.cf
    user = mail
    password = password
    hosts = 127.0.0.1
    dbname = mail
    table = alias
    select_field = goto
    where_field = address
    additional_conditions = and active = '1'
    
    $ sudo vi /etc/postfix/mysql_virtual_domains_maps.cf
    user = mail
    password = password
    hosts = 127.0.0.1
    dbname = mail
    table = domain
    select_field = domain
    where_field = domain
    additional_conditions = and backupmx = '0' and active = '1'
    
    $ sudo vi /etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf
    user = mail
    password = password
    hosts = 127.0.0.1
    dbname = mail
    query = SELECT maildir FROM mailbox, alias_domain
      WHERE alias_domain.alias_domain = '%d'
      AND mailbox.username=concat('%u', '@', alias_domain.target_domain )
      AND mailbox.active = 1
    
    $ sudo vi /etc/postfix/mysql_virtual_mailbox_maps.cf
    user = mail
    password = password
    hosts = 127.0.0.1
    dbname = mail
    table = mailbox
    select_field = CONCAT(domain, '/', local_part)
    where_field = username
    additional_conditions = and active = '1'
    

    大功告成,重啟相關服務:

    $ sudo service spamassassin restart
    $ sudo service clamav-daemon restart
    $ sudo service amavis restart
    $ sudo service dovecot restart
    $ sudo service postfix restart
    

    測試 Postfix

    用 telnet 連上郵件服務器的 25 端口(SMTP),然后發送 HELO mail. 指令就會得到 250 mail. 確認信息:

    $ telnet mail2. 25 
    Trying 192.168.2.66...
    Connected to mail..
    Escape character is '^]'.
    220 mail. ESMTP Postfix (Ubuntu)
    HELO mail.
    250 mail.
    

    用 telnet 發送一封郵件試一下,下面的 MAIL FROM, RCPT TO, DATA, ., QUIT 都是指令:

    $ telnet mail2. 25 
    Trying 192.168.2.66...
    Connected to mail..
    Escape character is '^]'.
    220 mail. ESMTP Postfix (Ubuntu)
    MAIL FROM:<test1@>
    250 2.1.0 Ok
    RCPT TO:<test2@>
    250 2.1.5 Ok
    DATA
    354 End data with <CR><LF>.<CR><LF>
    Subject: a test message
    This is a test message!
    .
    250 2.0.0 Ok: queued as 6832FF0036
    QUIT
    221 2.0.0 Bye
    Connection closed by foreign host.
    

    ssh 登陸郵件服務器后去 /var/vmail 郵件目錄看一下就可以證實 test2 用戶是否收到來自 test1 用戶的郵件,當然這個郵件也可以通過 Mail.app, Thunderbird, Mutt 這類工具收到本地電腦上看

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 中文字幕亚洲无线码在线一区| 亚洲中文字幕久久精品无码喷水 | 精品日韩亚洲AV无码一区二区三区| 毛片免费观看天天干天天爽| 免费人成网站免费看视频| 国产日产欧产精品精品| 虎白女粉嫩尤物福利视频| 国产精品久久久久久久网 | 无码乱人伦一区二区亚洲| 国产影片AV级毛片特别刺激| 欧产日产国产精品精品| 日产国产一区二区不卡| 亚洲另类精品无码专区| 国色天香成人一区二区| 美女又黄又免费的视频| 欧美老少配性行为| 免费久久人人爽人人爽AV| 亚洲欧洲日产国无高清码图片 | 国产成人综合95精品视频| 日日躁夜夜躁狠狠躁超碰97| 免费人成网站视频在线观看| 欧美xxxx做受欧美.88| 日韩人妻系列无码专区| 在线精品国产中文字幕| 一二三四在线视频观看社区| 无码人妻斩一区二区三区| 亚洲综合激情另类小说区 | 免费网站看V片在线毛| 亚洲人成色99999在线观看| 99久久久国产精品消防器材| 精品视频在线观看免费观看| 97视频精品全国免费观看 | 欧美一本大道香蕉综合视频 | 又大又爽又硬的曰皮视频| 国产91午夜福利精品| 亚洲国产精品无码久久98| 国产激情电影综合在线看| 高清无码爆乳潮喷在线观看| 国产成人毛片无码视频软件| 人妻丰满AV无码中文字幕| 夜夜爱夜鲁夜鲁很鲁|