天天看點

Postfix全功能 (1)

拓撲圖

Postfix全功能 (1)

dns server

192.168.101.95

配置正向和反向dns

mail  server

192.168.101.85

APACHE

yum -y install *gcc* openssl-devel rpm -e httpd –nodeps rpm -e mysql --nodeps rpm -e php --nodeps

tar –zxvf   httpd-2.2.19.tar.gz   -C   /usr/local/src

#cd /usr/local/src/httpd-2.2.19

#./configure  --prefix=/usr/local/apache2  --enable-so --enable-rewrite

#make

#make install

cd /usr/local/apache2/bin vim apachectl # chkconfig: 35 85 15 # description: Apache is a World Wide Web Server cp apachectl /etc/init.d/apache chkconfig --add apache chkconfig apache on service apache start vim /usr/local/apache2/conf/httpd.conf ServerName mail.bj.cn service apache stop

mysql

useradd –M –s /sbin/nologin mysql

tar -zxvf mysql-5.0.40.tar.gz -C /usr/local/src

cd /usr/local/src/mysql-5.0.40

./configure --prefix=/usr/local/mysql  --

with-mysqld-user=mysql

make

make install

cp  support-files/my-medium.cnf  /etc/my.cnf

/usr/local/mysql/bin/mysql_install_db --user=mysql

chown -R root:mysql /usr/local/mysql

chown -R mysql /usr/local/mysql/var

echo “/usr/local/mysql/lib/mysql” >>/etc/ld.so.conf 添加庫檔案路徑

ldconfig 重新整理庫檔案搜尋路徑

/usr/local/mysql/bin/mysqld_safe --user=mysql &

cp support-files/mysql.server /etc/init.d/mysqld

chmod o+x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig mysqld on

echo “PATH=$PATH:/usr/local/mysql/bin”>>/etc/profile

service mysqld start
Postfix全功能 (1)
mysqladmin -u root password 123456 mysql -u root -p Enter password: (輸入密碼123456

php

tar -jxvf php-5.3.0.tar.bz2 -C /usr/local/src

cd /usr/local/src/php-5.3.0

./configure --prefix=/usr/local/php5 --enable-mbstring

--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql

--with-config-file-path=/usr/local/php5

make test

cp php.ini-dist /usr/local/php5/php.ini

vim /usr/local/apache2/conf/httpd.conf

修改apache服務的主配置檔案使其支援php

LoadModule php5_module modules/libphp5.so 确認這行的存在,如果沒有就重新編譯php

AddType application/x-httpd-php .php 添加這行記錄

DirectoryIndex index.php index.html 在這行添加關于php格式的首頁

然後儲存退出

測試php是否與apache整合成功

#vim /usr/local/apache2/htdocs/test.php

<?php

phpinfo();

?>

在浏覽器中輸入http://192.168.101.95/test.php看到下圖表示跟apache服務整合成功

Postfix全功能 (1)

Mysql測試

#vim /usr/local/apache2htdocs/testdb.php

$link=mysql_connect(‘localhost’,‘test’,‘’);

If (!$link) echo “Fail!!!”;

else echo “Success!!!”;

mysql_close();

postfix

service sendmail stop chkconfig sendmail off groupadd -g 1200 postdrop groupadd -g 1000 postfix useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix

cd

tar -zxvf postfix-2.6.5.tar.gz -C /usr/local/src/ cp postfix-2.6.5-vda-ng.patch.gz /usr/local/src/ cd /usr/local/src/ gunzip postfix-2.6.2-vda-ng.patch.gz cd postfix-2.6.2 patch -p1 < ../postfix-2.6.2-vda-ng.patch yum -y install db*-devel cyrus-sasl-devel make makefiles

vim /etc/postfix/main.cf

Inet_interfaces = all 預設設定

myhostname = mail.bj.cn 主機名

mydomain = bj.cn郵件域名

myorigin = $mydomain 外發郵件時發件人位址中的郵件域名

mydestination = $mydomain,$myhostname 可接收的郵件位址中的域名

home_mailbox = Maildir/ 郵件存儲位置格式

#postfix check 檢查配置

#postfix start

echo "/usr/sbin/postfix start" >&gt; /etc/rc.local groupadd mailusers useradd -g mailusers -s /sbin/nologin tom useradd -g mailusers -s /sbin/nologin jerry passwd tom passwd jerry telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220 mail.crazylinux.cn ESMTP Postfix

helo localhost

250 mail.bj.cn

mail from:[email protected]

250 2.1.0 Ok

rcpt to:[email protected]

250 2.1.5 Ok

data

111111

.

250 2.0.0 Ok: queued as AA4BD157939

quit

221 2.0.0 Bye

Connection closed by foreign host.

Dovecot

useradd -M -s /sbin/nologin dovecot

tar zxf dovecot-1.1.4.tar.gz -C /usr/local/src

cd /usr/local/src/dovecot-1.1.4

yum -y install pam-devel

./configure --sysconfdir=/etc --with-mysql

make

cp /etc/dovecot-example.conf /etc/dovecot.conf

vim /etc/dovecot.conf

ssl_disable = yes 禁用SSL機制

protocols = pop3 imap 指定郵局協定

disable_plaintext_auth = no 允許明文密碼認證

mail_location = maildir:~/Maildir 設定郵件存儲格式和位置

#vim /etc/pam.d/dovecot 建立pam認證檔案

auth required pam_nologin.so

auth include system-auth

account include system-auth

session include system-auth

#/usr/local/sbin/dovecot -c /etc/dovecot.conf 啟動

把這句話寫入開機腳本

cat /etc/pam.d/dovecot

telnet localhost 110

Trying127.0.0.1...

Connectedtolocalhost.localdomain(127.0.0.1).

Escapecharacteris'^]'.

+OKDovecotready.

useruser2

+OK

pass123

+OKLoggedin.

list

+OK1messages:

1460

.

retr1

+OK460octets

Return-Path:<[email protected]>

X-Original-To:[email protected]

Delivered-To:[email protected]

Received:fromlocalhost(localhost.localdomain[127.0.0.1])

bypostfixmail.nxq.com(Postfix)withSMTPid5560C249BA4

for<[email protected]>;Fri, 4Nov201105:36:24+0800(CST)

Subject:test

Message-Id:<[email protected]>

Date:Fri, 4Nov201105:36:24+0800(CST)

From:[email protected]

To:undisclosed-recipients:;

tar -jxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs

#cd /usr/lcaol/apache2/htdocs/

#mv squirrelmail-1.4.13 webmail

#tar -jxvf zh_CH-1.4.13.tar.gz -C /usr/local/apache2/htdocs/webmail 解壓漢化軟體

配置webmail

#cd /usr/local/apache2/htdocs/webmail

#mkdir -p attach data

#chown -R daemon:daemon attach/ data/

#chmod 730 attache/

#cp config/config_default.php config/config.php 建立配置檔案

#vim config/config.php

$squirrelmail_default_language = ‘zh_CN’;

$default_charset = ‘zh_CN.UTF-8’;

$domain = ‘wisefund.com’;

$smtpServerAddress = ‘localhost’; 設定發信伺服器位址

$smtpPort = 25; 設定發信伺服器端口

$imap_server_type = 'dovecot'; 設定收信伺服器軟體

$imapPort = 143;設定收信伺服器端口

$data_dir = '/usr/local/apache2/htdocs/webmail/data/';

$attachment_dir = '/usr/local/apache2/htdocs/webmail/attach/';

#/usr/localapache2/bin/apachectl restart 重新開機apache服務

用戶端IE位址欄中輸入http://mail.bj.cn/webmail(前提mail.bj.cn可以被解析,否則

用ip)

extman

service mysqld restart

#tar zxf extman-0.2.5.tar.gz -C /usr/local/src

#cd /usr/local/src/extman-0.2.5/docs

#mysql -u root -p <extmail.sql

出現錯誤

原因:編寫資料庫的版本比目前安裝的版本不相同。

解決:

1、用文本編輯器打開extmail.sql;

2、查找/替換,将資料庫檔案内的所有TYPE=MyISAM修改為ENGINE=MyISAM,儲存退出;

3、重新導入extmail.sql即可。

#mysql -u root -p &lt;init.sql 腳本導入資料庫的時候會詢問密碼,預設情況下root使用者密碼為空

配置 postfix

postconf -m|grep mysql傳回值有mysql,說明可以支援mysql資料庫的查詢表

#vim /etc/postfix/main.cf

              #mydestination = $mydomain,$myhostname 該行需要注釋掉

virtual_mailbox_base = /mailbox指定虛拟郵箱存儲目錄的路徑起點

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

                  指定虛拟郵件使用者對應的别名檔案位置

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

指定記錄虛拟郵箱位址與存儲位置對應關系的映射檔案位置

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

設定postfix伺服器可以接收的虛拟郵件域的域名

virtual_uid_maps=static:1000 設定所有虛拟郵件使用者映射的本地使用者的UID号

virtual_gid_maps=static:1000 設定所有虛拟郵件使用者映射的本地組的GID号

#cp mysql_virtual_* /etc/postfix/ 在上面的三行配置中指定了這三個檔案

虛拟使用者設定SMTP發信認證

tar -jxvf courier-authlib-0.60.2.tar.bz2 -C /usr/local/src

#cd /usr/local/src/courier-authlib

#./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmysql

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

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

#make install

#make install-configure 生成預設配置檔案authmysqlrc和authdaemonrc

添加courier-authlib的庫檔案路徑

#vim /etc/ld.so.conf

/usr/local/courier-authlib/lib/courier-authlib

#ldconfig

修改authdaemonrc主配置檔案

#cd /usr/local/courier-authlib/etc/authlib

#cp authdaemonrc authdaemonrc.bak

#vim authdaemonrc

authmodulelist=”authmysql”

authmodulelistorig=”authmysql”

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

修改authmysqlrc檔案

#cp authmysqlrc authmysqlrc.bak

#vim authmysqlrc

MYSQL_SERVER localhost資料庫伺服器位置

MYSQL_USERNAME extmail資料庫管理者賬戶

MYSQL_PASSWORD extmail資料庫管理者賬戶密碼

MYSQL_SOCKET /tmp/mysql.sock 檔案位置

MYSQL_DATABASE extmail 虛拟使用者資料庫

MYSQL_USER_TABLE mailbox 從mailbox表獲得郵件賬戶資訊

MYSQL_CRYPT_PWFIELD password從password字段獲得賬戶密碼

MYSQL_UID_FIELD uidnumber從uidnumber字段獲得映射的本地使用者UID

MYSQL_GID_FIELD gidnumber從gidnumber字段獲得映射的本地組GID

MYSQL_LOGIN_FIELD username從username字段獲得賬戶名稱,帶@字尾

MYSQL_HOME_FIELD concat('/mailbox/',homedir)合并出使用者的宿主目錄路徑

MYSQL_NAME_FIELD name從name字段獲得賬戶名稱,不帶@字尾

MYSQL_MAILDIR_FIELD concat('/mailbox/',maildir)合并出使用者的郵件存儲路徑

複制courier-authlib腳本,并啟動courier-authlib服務

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

chmod755    /etc/rc.d/init.d/courier-authlib

chkconfig   --level 35  courier-authlib   on

service   courier-authlib   start

修改Cyrussasl設定

vim /usr/lib/sasl2/smtpd.conf

pwcheck_method:authdaemond

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

修改Dovecot配置

vim /etc/dovecot.conf ( 把875 、908 、913 、916 行注釋) 218 mail_location = maildir:/mailbox/%d/%n/Maildir 837 auth default { 842 mechanisms = plain 950 passdb sql { 952 args = /etc/dovecot-mysql.conf 953 } 1028 userdb sql { 1030 args = /etc/dovecot-mysql.conf 1031 }

vim

/etc/dovecot-mysql.conf

driver = mysql

connect = host=localhost dbname=extmail user=extmail password=extmail

default_pass_scheme = CRYPT

password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'

user_query = SELECT maildir,uidnumber AS uid,gidnumber AS gid FROM mailbox WHERE username = '%u'

mkdir -p /mailbox/extmail.org/postmaster/Maildir/

cd /mailbox/extmail.org/postmaster/Maildir

chown -R postfix:postfix /mailbox/ pkill dovecot dovecot

确認authlib服務

/usr/local/courier-authlib/sbin/authtest -s login [email protected]      extmail Authentication succeeded.

Authenticated: [email protected] (uid 1000, gid 1000)

Home Directory: /mailbox/extmail.org/postmaster

Maildir: /mailbox/extmail.org/postmaster/Maildir/

Quota: (none)

Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0

[root@mail authlib]#

perl -e 'use MIME::Base64; print encode_base64("postmaster\@extmail.org")' cG9zdG1hc3RlckBleHRtYWlsLm9yZw== [root@mail authlib]# perl -e 'use MIME::Base64; print encode_base64("extmail")' ZXh0bWFpbA== [root@mail ~]# telnet localhost 25 auth login

334 VXNlcm5hbWU6

334 UGFzc3dvcmQ6

235 2.7.0 Authentication successful

tar -zxf Unix-Syslog-1.1.tar.gz -C /usr/local/src

#cd /usr/local/src/Unix-Syslog-1.1

#perl Makefile.PL

#tar -zxf DBI-1.607.tar.gz -C /uar/local/src

#cd /usr/local/src/DBI-1.607

#tar -zxf DBD-mysql-4.011.tar.gz -C /usr/local/src

#cd /usr/loca/src/DBD-4.011

注意以上三個包在編譯安裝過程可能會提示警告資訊隐式函數計算出的變量值未被使用等,隻要沒有

error資訊就一切ok

安裝ExtMail

#tar -zxf extmail-1.0.5.tar.gz -C /usr/local/apache2/htdocs

#cd /usr/local/apache2/htdocs

#mv extmail-1.0.5 extmail

#cd extmail

#chown -R postfix:postfix cgi

#cp webmail.cf.default webmail.cf

cd /usr/local/apache2/htdocs/extmail

#vim webmail.cf

SYS_CONFIG = /usr/local/apache2/htdocs/extmail/ 程式根目錄

SYS_LANGDIR = /usr/local/apache2/htdocs/extmail/lang 語言封包件目錄

SYS_TEMPLDIR = /usr/local/apache2/htdocs/extmail/html 系統模版目錄

SYS_MAILDIR_BASE = /mailbox 郵件存儲目錄

SYS_MYSQL_USER = extmail 通路mysql資料庫的使用者

SYS_MYSQL_PASS = extmail 通路mysql資料庫的使用者的密碼

SYS_MYSQL_DB = extmail 使用資料庫的名稱

SYS_MYSQL_HOST = localhost 資料庫伺服器位址

SYS_MYSQL_SOCKET = /tmp/mysql.sock 資料庫套接檔案位置

修改apache服務,添加虛拟主機

#vim /usr/local/apache2/conf/httpd.conf

NameVirtualHost*:80

&lt;VirtualHost*:80>

ServerNamemail.wisefund.com

DocumentRoot/usr/local/apache2/htdocs/extmail/html/

ScriptAlias/extmail/cgi/"/usr/local/apache2/htdocs/extmail/cgi/"

Alias/extmail"/usr/local/apache2/htdocs/extmail/html/"

</VirtualHost>

User postfix 找到User該使用者為postfix

Group postfix 找到Group該組為postfix

這裡 由于前面 我們并沒 有啟用Suexec 是以 我們沒有 在虛拟主 機中添 加SuexecUerGroup postfix  postfix

#/usr/local/apache2/bin/apachectl restart

測試:在浏覽器中輸入http://mail.bj.cn

賬戶:[email protected]

密碼:extmail

#tar -zxvf GD-2.41.tar.gz -C /usr/local/src

#cd /usr/local/src/GD-2.41

#tar -zxvf File-Tail-0.99.3.tar.gz -C /uar/local/src

#cd /usr/local/src/File-Tail-0.99.3

#rpm -ivh rrdtool-1.2.23-3.el5.i386.rpm

#rpm -ivh rrdtool-perl-1.2.23-3.el5.i386.rpm

Extman套件

#tar -zxf extman-0.2.5.tar.gz -C /usr/local/apache2/htdocs

#cd /usr/local/apache2/htdocs

#mv extman-0.2.5 extman

#cd extman

#mkdir /tmp/extman 臨時回話儲存目錄

#chown -R postfix:postfix /tmp/extman

修改配置檔案

#vim /usr/localapache2/htdocs/extman/webman.cf

SYS_CONFIG = /usr/local/apache2/htdocs/extman/ 程式根目錄

SYS_LANGDIR = /usr/local/apache2/htdocs/extman/lang語言封包件目錄

SYS_TEMPLDIR = /usr/local/apache2/htdocs/extman/html 系統模版目錄

SYS_MAILDIR_BASE = /mailbox 郵件資料存放路徑

SYS_MYSQL_USER = webman 通路mysql資料庫的使用者

SYS_MYSQL_PASS = webman 通路mysql資料庫的使用者的密碼

SYS_MYSQL_DB = extmail 使用的資料庫名稱

調整apache主配檔案。添加extman相關目錄别名

<VirtualHost*:80>

ScriptAlias/extman/cgi"/usr/local/apache2/htdocs/extman/cgi/"

Alias/extman"/usr/local/apache2/htdocs/extman/html/"

測試:在浏覽器中輸入http://mail.bj.cn/extman

賬戶:[email protected]

密碼:extmail*123*

Postfix全功能 (1)

設定郵件系統的圖形化日志資訊

[root@localhost~]#ln–sf

/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-ini

/usr/sbin/

[root@localhost~]#ln–sf

/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init

[root@localhost~]#cp–a

/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/usr/local

[root@localhost~]#mailgraph-initstart

[root@localhost~]#qmonitorstart

[root@localhost~]#echo“/usr/sbin/mailgraph-initstart”&gt;&gt;

/etc/rc.d/rc/local

[root@localhost~]#echo“/usr/sbin/qmoonitor-initstart”&gt;&gt;

/etc/rc.d/rc/local

垃圾郵件過濾

根據用戶端的主機名/位址過濾郵件

[root@localhost~]#vim  /etc/postfix/main.cf

smtpd_client_restrictions=check_client_accesshash:/etc/postfix/access

[root@localhost~]#vim   /etc/postfix/access

192.168.4REJECT

192.168.4.1OK

bbc.comREJECT

[root@localhost~]#postMAP  /etc/postfix/access

根據客戶機HELO資訊中的主機名位址過濾郵件

[root@localhost~]#vim/etc/postfix/main.cf

smtpd_helo_required=yes

smtpd_helo_restrictions=reject_invalid_hostname

[root@localhost~]#postfixreload

根據發件人的位址過濾郵件

[root@localhost~]#vim/etc/postfix/mail.cf

smtpd_sender_login_maps=

mysql:/etc/postfix/mysql_virtual_sender_maps.cf,

mysql:/etc/postfix/mysql_virtual_alias_maps.cf

smtpd_sender_restrictions=

permit_mynetworks,

reject_sender_login-mismatch,

reject_non_fqdn_sender,

reject_unknown_sender_domain,

check_sender_accesshash:/etc/postfix/sender_access

[root@localhost~]#vim/etc/postfix/sender_access

根據收件人的位址過濾郵件

smtpd_recipient_restrictions=

permit_mynetworks,

permit_sasl_authenticated,

reject_unauth_destination,

reject_non_fqdn_recipient,

reject_unknown_recipient_domain

[root@localhost~]#postfixrestart

安裝并配置MailScanner掃描排程工具

1)安裝MailScanner掃描排程工具

[root@localhost~]#tar  -zxvf  MailScanner-4.75.11-1.rpm.tar.gz

[root@localhost~]#cd MailScanner-4.75.11-1

[[email protected]]#./install.sh

2)修改配置檔案MailScanner

[root@localhost~]#vim /etc/MailScanner/MailScanner.conf

RunAsUser=postfix

RunAsGroup=postfix

IncomingQueueDir=/var/spool/postfix/hold

OutgoingQueueDir=/var/spool/postfix/incoming

MTA=postfix

RequiredSpamAssassinScore=7

HighSpamAssassinScore=10

SpamActions=deliverheader“X-Spam-Status:Yes”

[email protected]

3)配置Postfix支援調用MailScanner

header_checks=regexp:/etc/postfix/header_checks

[root@localhost~]#vim  /etc/postfix/header_checks

/^Received:/HOLD

4)調整郵件過濾隊列的目錄屬主、屬組,并啟動MailScanner服務程式

[root@localhost~]#chown –R  postfix.postfix

/var/spool/MailScanner/incoming

[root@localhost~]#chown  –R   postfix.postfix

/var/spool/MailScanner/quarantine

[root@localhost~]#service  MailScannerstart

[root@localhost~]#chkconfig  –level  35  MailScanneron

安裝并配置SpamAssassin垃圾郵件過濾器

1)安裝并配置SpamAssassin垃圾郵件過濾器

[root@localhost~]#mount  /dev/cdrom   /mnt/cdrom

[root@localhost~]#cd  /mnt/cdrom/Server

[root@localhost Server]#rpm–ivhspamassassin-3.1.7-4.e15.i386.rpm

2)修改配置檔案local.cf

(位于“/etc/mail/spamassassin/local.cf”,一般不需要進行任何修改,保

持預設設定即可)

3)啟動SpamAssassin服務

[root@localhost~]#service  spamassassin start

[root@localhost~]#chkconfig  –level  35  spamassassinon

安裝并配置F-Port病毒清除軟體

1)安裝F-Port軟體包安裝過程中出現提示是按Enter鍵接受預設設定

[root@localhost~]#tar  -zxvf   fp-Linux-i686-ws.tar.gz   –C   /opt/

[root@localhost~]#cd  /opt/f-prot/

[root@localhostf-prot]#./install-f-prot.pl

2)更新F-Port病毒庫(伺服器要能夠通路Internet網際網路)

[root@localhostf-prot]#/opt/f-prot/fpupdate

[root@localhostf-prot]#crontab  -e (計劃任務)

008***/opt/f-prot/fpupdate

[root@localhostf-prot]#service  crond  start

[root@localhostf-prot]#chkconfig    -level 35  crondon

繼續閱讀