歡迎您光臨本站 註冊首頁

linux上安裝基於postfix的全功能郵件伺服器(2)

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

  八、為postfix開啟基於cyrus-sasl的認證功能

  使用以下命令驗正postfix是否支持cyrus風格的sasl認證,如果您的輸出為以下結果,則是支持的:

  # /usr/local/postfix/sbin/postconf -a

  cyrus

  dovecot

  #vi /etc/postfix/main.cf

  添加以下內容:

  ############################CYRUS-SASL############################

  broken_sasl_auth_clients = yes

  smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination

  smtpd_sasl_auth_enable = yes

  smtpd_sasl_local_domain = $myhostname

  smtpd_sasl_security_options = noanonymous

  smtpd_sasl_application_name = smtpd

  smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!

  #vi /usr/local/lib/sasl2/smtpd.conf

  添加如下內容:

  pwcheck_method: saslauthd

  mech_list: PLAIN LOGIN

  讓postfix重新載入配置文件

  #/usr/local/postfix/sbin/postfix reload

  九、讓postfix支持虛擬域和虛擬用戶

  1、編輯/etc/postfix/main.cf,添加如下內容:

  ########################Virtual Mailbox Settings########################

  virtual_mailbox_base = /var/spool/mail

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

  virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf

  virtual_alias_domains =

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

  virtual_uid_maps = static:2525

  virtual_gid_maps = static:2525

  virtual_transport = virtual

  maildrop_destination_recipient_limit = 1

  maildrop_destination_concurrency_limit = 1

  ##########################QUOTA Settings########################

  message_size_limit = 14336000

  virtual_mailbox_limit = 20971520

  virtual_create_maildirsize = yes

  virtual_mailbox_extended = yes

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

  virtual_mailbox_limit_override = yes

  virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please Tidy your mailbox and try again later.

  virtual_overquota_bounce = yes

  2、添加為支持虛擬域和虛擬用戶所用到的配置文件

  編輯/etc/postfix/mysql_virtual_alias_maps.cf ,添加如下內容:

  user = extmail

  password = extmail

  hosts = localhost

  dbname = extmail

  table = alias

  select_field = goto

  where_field = address

  編輯/etc/postfix/mysql_virtual_domains_maps.cf ,添加如下內容:

  user = extmail

  password = extmail

  hosts = localhost

  dbname = extmail

  table = domain

  select_field = description

  where_field = domain

  編輯/etc/postfix/mysql_virtual_mailbox_limit_maps.cf ,添加如下內容:

  user = extmail

  password = extmail

  hosts = localhost

  dbname = extmail

  table = mailbox

  select_field = quota

  where_field = username

  編輯/etc/postfix/mysql_virtual_mailbox_maps.cf ,添加如下內容:

  user = extmail

  password = extmail

  hosts = localhost

  dbname = extmail

  table = mailbox

  select_field = maildir

  where_field = username

  說明:

  1、這裡用到的資料庫及用戶的建立可以後文中的extmail說明部分來實現,您可以參照那一部分來理解這裡指定的資料庫及其用戶名等;

  2、以上新建文件亦可以從extman安裝文件中獲得,您也可以由此不用手動輸入;

  3、虛擬用戶郵箱目錄我這裡沿用了/var/spool/mail,你可以指定為別的目錄,比如常見到的/var/mailbox,或者/home/domains等;但如果這裡做了修改,請在後文中用到時作了相應的修改;

  十、安裝Courier authentication library

  http://jaist.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.59.3.tar.bz2

  # tar jxvf courier-authlib-0.59.3.tar.bz2

  # cd courier-authlib-0.59.3

  ./configure

  --prefix=/usr/local/courier-authlib

  --sysconfdir=/etc

  --without-authpam

  --without-authldap

  --without-authpwd

  --without-authshadow

  --without-authvchkpw

  --without-authpgsql

  --with-authmysql

  --with-mysql-libs=/usr/local/mysql/lib/mysql

  --with-mysql-includes=/usr/local/mysql/include/mysql

  --with-redhat

  --with-authmysqlrc=/etc/authmysqlrc

  --with-authdaemonrc=/etc/authdaemonrc

  CFLAGS="-march=i686 -O2 -fexpensive-optimizations"

  CXXFLAGS="-march=i686 -O2 -fexpensive-optimizations"

  # make

  # make install

  # chmod 755 /usr/local/courier-authlib/var/spool/authdaemon

  # cp /etc/authdaemonrc.dist /etc/authdaemonrc

  # cp /etc/authmysqlrc.dist /etc/authmysqlrc

  修改/etc/authdaemonrc 文件

  authmodulelist="authmysql"

  authmodulelistorig="authmysql"

  daemons=10

  編輯/etc/authmysqlrc 為以下內容,其中2525,2525 為postfix 用戶的UID和GID.

  MYSQL_SERVER localhost

  MYSQL_PORT 3306 (指定你的mysql監聽的埠,這裡使用默認的3306)

  MYSQL_USERNAME extmail (這時為後文要用的資料庫的所有者的用戶名)

  MYSQL_PASSWORD extmail (密碼)

  MYSQL_SOCKET /tmp/mysql.sock

  MYSQL_DATABASE extmail

  MYSQL_USER_TABLE mailbox

  MYSQL_CRYPT_PWFIELD password

  MYSQL_UID_FIELD '2525'

  MYSQL_GID_FIELD '2525'

  MYSQL_LOGIN_FIELD username

  MYSQL_HOME_FIELD concat('/var/spool/mail/',maildir)

  MYSQL_NAME_FIELD name

  MYSQL_MAILDIR_FIELD concat('/var/spool/mail/',maildir)

  # cp courier-authlib.sysvinit /etc/init.d/courier-authlib

  # chmod 755 /etc/init.d/courier-authlib

  # chkconfig --add courier-authlib

  # chkconfig --level 2345 courier-authlib on

  #echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf

  # ldconfig -v

  # service courier-authlib start (啟動服務)

  # netstat -antl|grep :25

  tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN

  十一、安裝Courier-IMAP-4.1.3

  http://nchc.dl.sourceforge.net/sourceforge/courier/courier-imap-4.1.3.tar.bz2

  # tar jxvf courier-imap-4.1.3.tar.bz2

  # cd courier-imap-4.1.3

  # ./configure

  --prefix=/usr/local/courier-imap

  --with-redhat

  --enable-unicode

  --disable-root-check

  --with-trashquota

  --without-ipv6

  CPPFLAGS='-I/usr/local/ssl/include/openssl -I/usr/local/courier-authlib/include'

  LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib'

  COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'

  # make

  ##############出現錯誤start@@@@@@@@@@@@@@@@@@@

  ./.libs/libcouriertls.a(libcouriertls.o): In function `init_session_cache':

  /usr/local/courier-imap-4.1.3/tcpd/libcouriertls.c:590: undefined reference to `SSL_CTX_sess_set_new_cb'

  /usr/local/courier-imap-4.1.3/tcpd/libcouriertls.c:591: undefined reference to `SSL_CTX_sess_set_get_cb'

  /usr/local/courier-imap-4.1.3/tcpd/libcouriertls.c:592: undefined reference to `SSL_CTX_sess_set_remove_cb'

  collect2: ld returned 1 exit status

  make[3]: *** [couriertls] 錯誤 1

  make[3]: Leaving directory `/usr/local/courier-imap-4.1.3/tcpd'

  make[2]: *** [all] 錯誤 2

  make[2]: Leaving directory `/usr/local/courier-imap-4.1.3/tcpd'

  make[1]: *** [all-recursive] 錯誤 1

  make[1]: Leaving directory `/usr/local/courier-imap-4.1.3'

  make: *** [all] 錯誤 2

  解決方法:更新了openssl到openssl-0.9.8f

  ps:極有可能是我openssl-0.9.8e沒有裝好

  tar zxvf openssl-0.9.8f.tar.gz

  cd openssl-0.9.8f

  ./config shared zlib

  make

  make test

  make install

  #不再備份是因為之前已經備份!

  rm -rf /usr/bin/openssl

  rm -rf /usr/include/openssl

  rm /usr/lib/libssl.so

  ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

  ln -s /usr/local/ssl/include/openssl /usr/include/openssl

  ln -sv /usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so

  終於可以通過make

  ##############出現錯誤end@@@@@@@@@@@@@@@@@@@

  # make install

  # cp /usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd

  # cp /usr/local/courier-imap/etc/imapd-ssl.dist /usr/local/courier-imap/etc/imapd-ssl

  # cp /usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d

  # cp /usr/local/courier-imap/etc/pop3d-ssl.dist /usr/local/courier-imap/etc/pop3d-ssl

  配置Courier-IMAP,為用戶提供pop3服務:

  vi /usr/local/courier-imap/etc/pop3d

  POP3DSTART=YES

  註:如果你想為用戶提供IMAP服務,則需在"/usr/local/courier-imap/etc/imapd"文件中設置"IMAPDSTART=yes";其它類同;

  新建虛擬用戶郵箱所在的目錄,並將其許可權賦予postfix用戶:

  #mkdir –pv /var/spool/mail

  #chown postfix -R /var/spool/mail

  #cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imapd

  #chmod 755 /etc/rc.d/init.d/courier-imapd

  #chkconfig --add courier-imapd

  #chkconfig --level 2345 courier-imapd on

  #service courier-imapd start

  接下來重新配置SMTP 認證,編輯 /usr/local/lib/sasl2/smtpd.conf ,確保其為以下內容:

  pwcheck_method: authdaemond

  log_level: 3

  mech_list:PLAIN LOGIN

  authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

  十二、安裝Extmail-1.0.2

  http://www.extmail.org/cgi-bin/download.cgi

  1、安裝

  # tar zxvf extmail-1.0.2.tar.gz

  # mkdir -pv /var/www/extsuite

  # mv extmail-1.0.2 /var/www/extsuite/extmail

  # cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf

  2、修改主配置文件

  #vi /var/www/extsuite/extmail/webmail.cf

  部分修改選項的說明:

  SYS_MESSAGE_SIZE_LIMIT = 5242880

  用戶可以發送的最大郵件

  SYS_USER_LANG = en_US

  語言選項,可改作:

  SYS_USER_LANG = zh_CN

  SYS_MAILDIR_BASE = /home/domains

  此處即為您在前文所設置的用戶郵件的存放目錄,可改作(要根據簽名postfix的位置一致):

  SYS_MAILDIR_BASE = /var/spool/mail

  SYS_MYSQL_USER = db_user

  SYS_MYSQL_PASS = db_pass

  以上兩句句用來設置連接資料庫伺服器所使用用戶名、密碼和郵件伺服器用到的資料庫,這裡修改為:

  SYS_MYSQL_USER = postfix

  SYS_MYSQL_PASS = 123456

  SYS_MYSQL_HOST = localhost

  指明資料庫伺服器主機名,這裡默認即可

  SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock

  連接資料庫的sock文件位置,這裡修改為:

  SYS_MYSQL_SOCKET = /tmp/mysql.sock

  SYS_MYSQL_TABLE = mailbox

  SYS_MYSQL_ATTR_USERNAME = username

  SYS_MYSQL_ATTR_DOMAIN = domain

  SYS_MYSQL_ATTR_PASSWD = password

  以上用來指定驗正用戶登錄里所用到的表,以及用戶名、域名和用戶密碼分別對應的表中列的名稱;這裡默認即可

  SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket

  此句用來指明authdaemo socket文件的位置,這裡修改為:

  SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket


[火星人 ] linux上安裝基於postfix的全功能郵件伺服器(2)已經有533次圍觀

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