一、实验所需要的源码包
httpd-2.2.19.tar.bz2 安装源码包apache
mysql-5.0.81.tar.gz 安装源码包mysql
php-5.3.7.tar.bz2 安装php软件
postfix-2.6.2.tar.gz postfix主程序
postfix-2.6.2-vda-ng.patch.gz postfix的补丁包
dovecot-1.1.4.tar.gz IMAP和POP3邮件服务器软件
squirrelmail-1.4.13.tar.bz2 web界面邮件管理
zh_CN-1.4.13-20071220.tar.bz2 汉化包
extman-0.2.5.tar.gz 邮件后台管理程序
extmail-1.0.5.tar.gz web界面邮件管理
courier-authlib-0.62.4.tar.bz2 SMTP发信认证
Unix-Syslog-1.1.tar.gz
DBI-1.616.tar.gz
DBD-mysql-4.020.tar.gz 以上三个包为extmail的倚赖包
GD-2.46.tar.gz
File-Tail-0.99.3.tar.gz
rrdtool-1.2.23-3.el5.i386.rpm
rrdtool-perl-1.2.23-3.el5.i386.rpm 以上四个包为extman的倚赖包
二、搭建LAMP环境
[root@mail ~]# yum -y groupinstall "Development Libraries" "Development Tools" "X Software Development"
[root@mail ~]# yum grouplist
[root@mail ~]# yum list all |grep -E "mysql|httpd|php" #查看是否已经安装相关软件,若安装了需要卸载掉
(1)安装mysql
[root@mail mysql-5.0.81]# useradd -M -s /sbin/nologin mysql
[root@mail mysql-5.0.81]# tar -zxvf mysql-5.0.81.tar.gz -C /usr/local/src/
[root@mail mysql-5.0.81]# cd /usr/local/src/mysql-5.0.81/
[root@mail mysql-5.0.81]# ./configure --prefix=/usr/local/mysql
[root@mail mysql-5.0.81]# make
[root@mail mysql-5.0.81]# make install
[root@mail mysql-5.0.81]# cp support-files/my-medium.cnf /etc/my.cnf #复制主配置文件
[root@mail mysql-5.0.81]# /usr/local/mysql/bin/mysql_install_db --user=mysql #初始化
[root@mail mysql-5.0.81]# chown -R root:mysql /usr/local/mysql
[root@mail mysql-5.0.81]# chown -R mysql /usr/local/mysql/var
[root@mail mysql-5.0.81]# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf #添加库文件路径
[root@mail mysql-5.0.81]# ldconfig #刷新库文件存放路径
[root@mail mysql-5.0.81]# /usr/local/mysql/bin/mysqld_safe --user=mysql & #后台安全启动,卡住不动,按回车键
[root@mail mysql-5.0.81]# cp support-files/mysql.server /etc/init.d/mysqld #复制启动脚本
[root@mail mysql-5.0.81]# chmod +x /etc/init.d/mysqld
[root@mail mysql-5.0.81]# chkconfig --add mysqld #添加到系统自动启动服务中
[root@mail mysql-5.0.81]# chkconfig mysqld on #默认启动
[root@mail mysql-5.0.81]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile #设置系统全局的环境变量PATH值,方便使用mysql数据库命令
[root@mail ~]# /usr/local/mysql/bin/mysql #测试mysql是否安装成功(未安装客户端所以只能以这种方式连接mysql进行测试 ,安装好后运行: /etc/rc.d/init.d/mysqld start 再输入mysql命令就行了 )
说明:已经成功了。
(2)安装apache
[root@localhost ~]# tar -jxvf httpd-2.2.19.tar.bz2 -C /usr/local/src
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ll
[root@localhost src]# cd httpd-2.2.19/
[root@localhost httpd-2.2.19]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-ssl --enable-so --with-z
[root@localhost httpd-2.2.19]# make (时间会长点)
[root@localhost httpd-2.2.19]# make install
[root@localhost httpd-2.2.19]# cd /etc/httpd/
[root@localhost httpd]# ll
[root@localhost httpd]# vim httpd.conf (不用修改只是为了查看有什么不同之处)
测试一下apache是否可用:
[root@localhost httpd]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# vim index.html
[root@localhost htdocs]# cd /usr/local/apache/
[root@localhost apache]# ./bin/apachectl start #启动http服务
[root@localhost apache]# netstat -tupln |grep http #查看端口是否开了
已经开了
http://192.168.5.100/
说明:http服务已经可用
为了能够像mysqld一样方便的进行管理,我们还需要做类似上述mysqld的相关配置:
[root@localhost apache]# vim /etc/rc.local
[root@localhost apache]# vim /etc/profile
[root@localhost apache]# . /etc/profile
[root@localhost apache]# echo $PATH
[root@localhost apache]# cd /usr/include/
[root@localhost include]# ln -s /usr/local/apache/include/ apache
[root@localhost include]# cd /etc/ld.so.conf.d/
[root@localhost ld.so.conf.d]# vim apache.conf
[root@localhost ld.so.conf.d]# ldconfig -v |grep apache
[root@localhost ld.so.conf.d]# apachectl restart
Apache到此安装完毕
(3)安装php
[root@localhost ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src
[root@localhost ~]# cd /usr/local/src/php-5.3.7/
[root@localhost php-5.3.7]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
[root@localhost php-5.3.7]# make
[root@localhost php-5.3.7]# make install
[root@localhost php-5.3.7]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# mv index.html index.php
[root@localhost htdocs]# vim index.php
[root@localhost htdocs]# vim /etc/httpd/httpd.conf
[root@localhost htdocs]# apachectl restart
下面测试以下php是否能够使用:
说明:php已经可用
[root@localhost htdocs]# vim index.php
[root@localhost htdocs]# apachectl restart
下面我们进行php与mysql的连接测试:
http://192.168.5.100/
说明:php,mysql,apache连接成功。
至此,×××lamp环境已经完全实现了,可以进行应用了。
三、安装postfix
安装postfix之前首先停止掉系统自带的sendmail软件
首先,配置dns相关内容
[root@mail ~]# yum install bind bind-chroot caching-nameserver
[root@mail ~]# cd /var/named/chroot/etc/
[root@mail etc]# cp -p named.caching-nameserver.conf named.conf
[root@mail etc]# vim /etc/resolv.conf
[root@mail etc]# vim named.rfc1912.zones
[root@mail etc]# cd ../var/named/
[root@mail named]# cp -p localhost.zone cyz.com.db
[root@mail named]# dig -t mx a.org
[root@mail named]# vim /etc/sysconfig/network
[root@mail named]# chkconfig --add named
[root@mail named]# chkconfig named on
[root@mail named]# service named restart
DNS的相关配置完成。
[root@mail htdocs]# service sendmail stop
[root@mail htdocs]# chkconfig sendmail off
[root@mail htdocs]# mysqladmin -u root password 'redhat' #为root用户设置密码
[root@mail htdocs]# mysql -u root -p #输入密码
mysql> SET PASSWORD FOR root@'localhost'=PASSWORD('redhat');
mysql> SET PASSWORD FOR root@'127.0.0.1'=PASSWORD('redhat'); #以上授权本地用户
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'redhat'; #授权远程用户
mysql> FLUSH PRIVILEGES; # 刷新配置
[root@mail ~]# groupadd -g 2525 postfix
[root@mail ~]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
[root@mail ~]# groupadd -g 2526 postdrop
[root@mail ~]# useradd -g postdrop -u 2526 -s /bin/false -M postdrop
[root@mail postfix-2.6.2]# tar -zxvf postfix-2.6.2.tar.gz -C /usr/local/src/
[root@mail postfix-2.6.2]# cd /usr/local/src/postfix-2.6.2/
[root@mail postfix-2.6.2]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'
[root@mail postfix-2.6.2]# make
[root@mail postfix-2.6.2]# make install
[root@mail postfix-2.6.2]# newaliases
[root@mail postfix-2.6.2]# vim /etc/postfix/main.cf
[root@mail postfix-2.6.2]# postfix start
[root@mail ~]# cd abc/
[root@mail abc]# cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./
[root@mail abc]# rpm2cpio postfix-2.3.3-2.1.el5_2.i386.rpm |cpio -id
[root@mail abc]# cd etc/rc.d/init.d/
[root@mail init.d]# cp postfix /etc/init.d/postfix
[root@mail init.d]# service postfix start #可以使用service管理了
可以通过telnet 进行测试以下:
[root@mail postfix-2.6.2]# telnet localhost 25
四、安装dovecot
[root@mail ~]# useradd -M -s /sbin/nologin dovecot
[root@mail ~]# tar -zxvf dovecot-1.1.4.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/dovecot-1.1.4/
[root@mail dovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql
[root@mail dovecot-1.1.4]# make
[root@mail dovecot-1.1.4]# make install
[root@mail dovecot-1.1.4]# cp /etc/dovecot-example.conf /etc/dovecot.conf
[root@mail dovecot-1.1.4]# vim /etc/dovecot.conf
[root@mail dovecot-1.1.4]# vim /etc/pam.d/dovecot
[root@mail dovecot-1.1.4]# /usr/local/sbin/dovecot -c /etc/dovecot.conf #启动
测试一下接收服务器:
[root@mail dovecot-1.1.4]# telnet localhost 110
说明:dovecot安装成功。
五、安装Webmail软件
[root@mail ~]# tar -zxvf squirrelmail-webmail-1.4.22.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv squirrelmail-webmail-1.4.22 webmail
[root@mail htdocs]# cd webmail/
[root@mail webmail]# mkdir -p attach data
[root@mail webmail]# chown -R daemon:daemon attach/ data/
[root@mail webmail]# chmod 730 attach/
[root@mail webmail]# cp config/config_default.php config/config.php
[root@mail webmail]# vim config/config.php
[root@mail webmail]# /usr/local/apache/bin/apachectl restart
测试一下:
六、初始化 extman 软件
[root@mail ~]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/src/
[root@mail src]# cd /usr/local/src/extman-0.2.5/docs
[root@mail docs]# mysql -u root -p < extmail.sql #需要输入密码,我的root的密码是redhat
[root@mail docs]# mysql -u root -p <init.sql
配置 Postfix
[root@mail docs]# postconf -m |grep mysql #返回值有mysql,说明可以支持mysql 数据库的查询表
让postfix支持虚拟域和虚拟用户:
[root@mail ~]# vim /etc/postfix/main.cf
[root@mail docs]# cp mysql* /etc/postfix/
[root@mail docs]# mysql -u root -p
mysql> GRANT all privileges on extmail.* TO extmail@localhost IDENTIFIED BY 'extmail';
mysql> GRANT all privileges on extmail.* TO extmail@127.0.0.1 IDENTIFIED BY 'extmail';
mysql> FLUSH PRIVILEGES; #让设置的内容生效
七、虚拟用户设置SMTP发信认证
[root@mail ~]# tar -jxvf courier-authlib-0.62.4.tar.bz2 -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/courier-authlib-0.62.4/
[root@mail courier-authlib-0.62.4]# ./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
[root@mail courier-authlib-0.62.4]# make
[root@mail courier-authlib-0.62.4]# make install
[root@mail courier-authlib-0.62.4]# make install-configure #生成默认配置文件authmysqlrc 和 authdaemonrc
[root@mail courier-authlib-0.62.4]# vim /etc/ld.so.conf #添加courier-authlib的库文件路径
[root@mail courier-authlib-0.62.4]# cd /usr/local/courier-authlib/etc/authlib/
[root@mail authlib]# cp authmysqlrc authmysqlrc.bak #修改主配置文件,所以做个备份
[root@mail authlib]# 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)合并出用户的邮件存储路径
设置启动脚本:
[root@mail authlib]# cd /usr/local/src/courier-authlib-0.62.4/
[root@mail courier-authlib-0.62.4]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
[root@mail courier-authlib-0.62.4]# chmod 755 /etc/rc.d/init.d/courier-authlib
[root@mail courier-authlib-0.62.4]# chkconfig courier-authlib on
[root@mail courier-authlib-0.62.4]# chkconfig --add courier-authlib
[root@mail courier-authlib-0.62.4]# service courier-authlib start
修改Cyrus sasl 设置
[root@mail courier-authlib-0.62.4]# vim /usr/lib/sasl2/smtpd.conf
修改Dovecot配置
[root@mail courier-authlib-0.62.4]# vim /etc/dovecot.conf
建立数据查询配置文件
[root@mail courier-authlib-0.62.4]# vim /etc/dovecot-mysql.conf
[root@mail courier-authlib-0.62.4]# vim /etc/postfix/main.cf
八、建立虚拟用户
[root@mail ~]# mkdir -p /mailbox/extmail.org/postmaster/Maildir
[root@mail ~]# cd /mailbox/extmail.org/postmaster/Maildir
[root@mail Maildir]# chown -R postfix:postfix /mailbox
[root@mail ~]# dovecot #启动服务
九、ExtMail平台
先安装三个依赖包:
[root@mail ~]# tar -zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/Unix-Syslog-1.1/
[root@mail Unix-Syslog-1.1]# perl Makefile.PL
[root@mail Unix-Syslog-1.1]# make
[root@mail Unix-Syslog-1.1]# make install
[root@mail ~]# tar -zxvf DBI-1.616.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/DBI-1.616/
[root@mail DBI-1.616]# perl Makefile.PL
[root@mail DBI-1.616]# make
[root@mail DBI-1.616]# make install
[root@mail ~]# tar -zxvf DBD-mysql-4.020.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/DBD-mysql-4.020/
[root@mail DBD-mysql-4.020]# perl Makefile.PL
[root@mail DBD-mysql-4.020]# make
[root@mail DBD-mysql-4.020]# make install
安装extmail:
[root@mail ~]# tar -zxvf extmail-1.0.5.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv extmail-1.0.5 extmail
[root@mail extmail]# chown -R postfix:postfix cgi
[root@mail extmail]# cp webmail.cf.default webmail.cf
[root@mail extmail]# vim webmail.cf #修改主配置文件
修改apache服务,添加虚拟主机:
[root@mail ~]# vim /etc/httpd/httpd.conf
这里由于前面我们并没有启用Suexec 所以我们没有在虚拟主机中添加 SuexecUerGroup postfix postfix
[root@mail ~]# apachectl restart
十、安装EXTMAN
先安装四个依赖包:
[root@mail ~]# tar -zxvf GD-2.46.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/GD-2.46/
[root@mail GD-2.46]# perl Makefile.PL
[root@mail GD-2.46]# make
[root@mail GD-2.46]# make install
[root@mail ~]# tar -zxvf File-Tail-0.99.3.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/File-Tail-0.99.3
[root@mail File-Tail-0.99.3]# perl Makefile.PL
[root@mail File-Tail-0.99.3]# make
[root@mail File-Tail-0.99.3]# make install
[root@mail ~]# rpm -ivh rrdtool-1.2.23-3.el5.i386.rpm
[root@mail ~]# rpm -ivh rrdtool-perl-1.2.23-3.el5.i386.rpm
安装extman套件:
[root@mail ~]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv extman-0.2.5 extman
[root@mail htdocs]# cd extman/
[root@mail extman]# chown -R postfix:postfix cgi
[root@mail extman]# mkdir /tmp/extman
[root@mail extman]# chown -R postfix:postfix /tmp/extman
[root@mail extman]# vim webman.cf
调整apache主配文件。添加extman相关目录别名
[root@mail ~]# vim /etc/httpd/httpd.conf
[root@mail ~]# apachectl restart #重启apache服务
测试一下:
十一、设置邮件系统的图形化日志信息
[root@mail ~]# ln -sf /usr/local/apache/htdocs/extman/addon/mailgraph_ext/mailgraph-init /usr/sbin
[root@mail ~]# ln -sf /usr/local/apache/htdocs/extman/addon/mailgraph_ext/qmonitor-init /usr/sbin
[root@mail ~]# cp -a /usr/local/apache/htdocs/extman/addon/mailgraph_ext /usr/local
[root@mail ~]# mailgraph-init start
[root@mail ~]# qmonitor start
[root@mail ~]# echo "usr/sbin/mailgraph-init start">> /etc/rc.d/rc.local
[root@mail ~]# echo "usr/sbin/qmonitor-init start">> /etc/rc.d/rc.local
十二、垃圾邮件过滤
1 根据客户端的主机名/地址过滤邮件
[root@mail ~]# vim /etc/postfix/main.cf
[root@mail ~]# vim /etc/postfix/access
[root@mail ~]# postmap /etc/postfix/access
2 根据客户机HELO 信息中的主机名地址过滤邮件
[root@mail ~]# postfix reload
3 根据发件人的地址过滤邮件
[root@mail ~]# vim /etc/postfix/sendder_access
[root@mail ~]# postmap /etc/postfix/sender_access
4 根据收件人的地址过滤邮件[root@mail ~]# service postfix restart
5 基于邮件内容的过滤
5.1安装并配置MailScanner 扫描调度工具[root@mail ~]# tar -zxvf MailScanner-4.84.3-1.rpm.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/MailScanner-4.84.3-1/
[root@mail MailScanner-4.84.3-1]# ./install.sh
[root@mail MailScanner-4.84.3-1]# vim /etc/MailScanner/MailScanner.conf
配置Postfix 支持调用MailScanner:
[root@mail ~]# vim /etc/postfix/main.cf
[root@mail ~]# vim /etc/postfix/header_checks
调整邮件过滤队列的目录属主、属组,并启动MailScanner 服务程序:
[root@mail ~]# chown -R postfix.postfix /var/spool/MailScanner/incoming
[root@mail ~]# chown -R postfix.postfix /var/spool/MailScanner/quarantine
[root@mail ~]# service MailScanner start
[root@mail ~]# chkconfig MailScanner on
安装并配置SpamAssassin 垃圾邮件过滤器[root@mail ~]# cd /mnt/cdrom/Server/
[root@mail Server]# yum install spamassassin-3.2.5-1.el5.i386.rpm
[root@mail ~]# service spamassassin start
[root@mail ~]# chkconfig spamassassin on
安装并配置F-Port 病毒查杀软件:
安装F-Port 软件包安装过程中出现提示是按回车键接受默认设置
[root@mail ~]# tar -zxvf fp-Linux-i686-ws.tar.gz -C /opt/
[root@mail ~]# cd /opt/f-prot/
[root@mail f-prot]# ./install-f-prot.pl
升级F-Port 病毒库(服务器要能够访问Internet 互联网)
[root@localhost f-prot]# /opt/f-prot/fpupdate
[root@localhost f-prot]# crontab -e #计划任务
[root@localhost f-prot]# service crond restart
[root@localhost f-prot]# chkconfig crond on
十三、Extman后台管理设置