RHEL5下构建LAMP+Postfix+Dovecot+SquirrelMail+Extmail+Extman+SpamAssassin防垃圾邮件(上)

因字数限制,本博文分为上下篇。

实验前的准备工作:

(1)  实验环境:linux5.4,内核版本:2.6.18-164.el5,ip地址192.168.101.222
(2)  所需相关软件包。(您可以到http://down.51cto.com/data/373697下载所有的源码包)
 
httpd-2.2.9.tar.gz 安装源码包apache
 
mysql-5.0.81.tar.gz 安装源码包mysql
 
php-5.3.7.tar.bz2 安装php软件
 
postfix-2.8.2.tar.gz postfix 主程序
 
dovecot-1.1.4.tar.gz IMAP 和POP3邮件服务器软件
 
squirrelmail-webmail-1.4.22.tar.gz web 界面邮件管理
 
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 extmail 的倚赖包之一
 
DBI-1.616.tar.gz extmail 的倚赖包之一
 
DBD-mysql-4.020.tar.gz extmail 的倚赖包之一
 
GD-2.46.tar.gz extman 的倚赖包之一
 
File-Tail-0.99.3.tar.gz extman 的倚赖包之一
 
rrdtool-1.2.23-3.el5.i386.rpm extman 的倚赖包之一
 
rrdtool-perl-1.2.23-3.el5.i386.rpm extman 的倚赖包之一
 
fp-Linux-i686-ws.tar.gz F-Port 杀毒软件软件包
 
MailScanner-4.84.3-1.rpm.tar.gz MailScanner 扫描调度工具
 
其它包(可选):
 
postfix-2.4.6-vda-ng.patch.gz postfix (2.4.6)的补丁包(高版本不需要)
 
zh_CN-1.4.13-20071220.tar.bz2 汉化包(选作)
 
将以上必选包上传到服务器的管理员家目录(/root)
1 、搭建DNS 服务器
1.1 、挂载光盘
[root@Eleven ~]# mkdir /mnt/cdrom
[root@Eleven ~]# mount /dev/cdrom /mnt/cdrom/
1.2 、编辑yum
[root@Eleven ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
 

 

[root@Eleven ~]# cd /mnt/cdrom/Server/
[root@Eleven Server]# yum  install  bind bind-chroot caching-nameserver –y
 
[root@Eleven Server]# cd /var/named/chroot/etc/
[root@Eleven etc]# cp -p named.caching-nameserver.conf named.conf
[root@Eleven etc]# vim named.conf
 
(红色为修改的内容)

 

 

1.3 、修改区域声明文件
 
[root@Eleven etc]# vim named.rfc1912.zones

 

 

1 .4、生成数据库
[root@Eleven etc]# cd ../var/named/
[root@Eleven named]# cp -p localhost.zone abc.com.db 
[root@Eleven named]# vim abc.com.db
修改为如下内容:

 

 

1.5 、修改vim /etc/resolv.conf

 

 

1.6 、修改主机名:
vim /etc/sysconfig/network

 

 

vim /etc/hosts

 

 

1.7 、重启系统:init 6
[root@mail ~]# service named start
Starting named:                                            [ OK ]
[root@mail ~]# chkconfig named on
DNS 安装完成
 
 
开始前先把系统自带的mysql卸载,把sendmail邮件服务器关闭
系统:RedHat enterprise Linux 5.4
源码包:httpd-2.2.9.tar.gz
下载地址: http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz
mysql-5.0.56.tar.gz
下载地址: http://dev.mysql.com/downloads
php-5.2.6.tar.bz2
下载地址: http://www.php.net/downloads
 
 
2 、搭建lamp环境
 
2.1 、安装apache软件:
下面我们将把所有需要的安装包解压到/usr/src/下面以方便我们统一管理维护
[root@mail ~]# tar -zxvf httpd-2.2.9.tar.gz  -C /usr/src/
[root@mail ~]# cd /usr/src/httpd-2.2.9/
[root@mail httpd-2.2.9]# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
[root@mail httpd-2.2.9]# make && make install
这里我们并没有将Suexec编译进apache中去,提到这个的原因是因为后面我们装postfix时候的后台管理extman是通过CGI的方式来调用程序的,如果不启用Suexec的话那么就会限制其他用户调用CGI程序,但考虑到启用Suexec的风险我们在此就不启用它了。(启用方式:--enable-suexec –with-suexec-caller=daemon –with-suexec-docroot=/usr/local/apache2/htdocs)
 
 
2.2 、安装mysql软件:
[root@mail ~]# useradd -M -s /sbin/nologin mysql # 添加mysql用户,如果安装系统时候已经装过mysql会提示用户已存在,建议在安装前先卸载掉系统自带的mysql,卸载完成后必须重启,否则新装的mysql会无法启动,提示错误信息3306端口被占有
 
[root@mail ~]# tar -zxvf mysql-5.0.95.tar.gz -C /usr/src/
[root@mail ~]# cd /usr/src/mysql-5.0.95/
[root@mail mysql-5.0.95]# ./configure --prefix=/usr/local/mysql
[root@mail mysql-5.0.95]# make && make install
 
安装完成。
2.3 、配置mysql
[root@mail mysql-5.0.95]# cd /usr/src/mysql-5.0.95/
[root@mail mysql-5.0.95]# cp support-files/my-medium.cnf  /etc/my.cnf   # 复制主配置文件
 
[root@mail mysql-5.0.95]# /usr/local/mysql/bin/mysql_install_db --user=mysql # 初始化
[root@mail mysql-5.0.95]# chown -R root:mysql /usr/local/mysql
[root@mail mysql-5.0.95]# chown -R mysql /usr/local/mysql/var
 
[root@mail mysql-5.0.95]# echo "/usr/local/mysql/lib/mysql"   >> /etc/ld.so.conf # 添加库文件路径
[root@mail mysql-5.0.95]# ldconfig # 刷新库文件搜索路径
 
[root@mail mysql-5.0.95]# /usr/local/mysql/bin/mysqld_safe --user=mysql &   # 后台安全启动 (如果显示启动并且卡住不动按回车)
[root@mail mysql-5.0.95]# cp support-files/mysql.server /etc/init.d/mysqld   # 复制启动脚本
[root@mail mysql-5.0.95]# chmod +x /etc/init.d/mysqld # 赋予脚本执行权限
[root@mail mysql-5.0.95]# chkconfig --add mysqld
[root@mail mysql-5.0.95]# chkconfig mysqld on
[root@mail mysql-5.0.95]# service mysqld start
[root@mail mysql-5.0.95]# echo "PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile   # 设置系统全局的环境变量PATH值,方便使用mysql数据库命令
 
2.4 、安装php软件
[root@mail ~]# tar -zxvf php-5.4.0.tar.gz -C  /usr/src/
[root@mail ~]# cd /usr/src/php-5.4.0/
[root@mail php-5.4.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
 
[root@mail php-5.4.0]# make && make test &&make install
[root@mail php-5.4.0]# cp php.ini-production /usr/local/php5/php.ini # 复制配置文件
 
[root@mail php-5.4.0]# vim /usr/local/apache2/conf/httpd.conf   # 修改apache服务的主配置文件使其支持php
 
 
LoadModule php5_module modules/libphp5.so   确认这行的存在(大概在53行),如果没有就重新编译php
AddType application/x-httpd-php .php  添加这行记录
DirectoryIndex index.php index.html  在这行添加关于php格式的首页
 
修改如图:

 

 

 

启动apache,在/usr/local/apache目录下执行指令:bin/apachectl start 
 
2.5 、测试php是否与apache整合成功
[root@mail php-5.4.0]# cd /usr/local/apache2/htdocs/
[root@mail htdocs]# vim index.php
<?php
phpinfo();
?>
在浏览器中输入http://192.168.101.222/index.php

 

 

2.6 、Mysql测试
 
[root@mail ~]# vim /usr/local/apache2/htdocs/index.php
编辑内容如下:
 
<?php
$link=mysql_connect('127.0.0.1','root','');
if ($link)
echo "succeed";
else
echo "fail";
?>
[root@mail ~]# cd /usr/local/apache2/
root@mail apache2]# bin/apachectl restart
 
测试结果:

 

 

3 、编译安装postfix
 
3.1 、安装postfix之前首先停止掉系统自带的sendmail软件
 
service sendmail stop
chkconfig --level 35 sendmail off
yum remove sendmail
 
3.2 、编译安装postfix软件
[root@mail ~]# groupadd -g 1200 postdrop
[root@mail ~]# groupadd -g 1000 postfix
[root@mail ~]# useradd -M -u 1000 -g postfix    -s /sbin/nologin postfix
[root@mail ~]# useradd -g postdrop -u 1200 -s /bin/false -M postdrop
[root@mail ~]# tar -zxvf postfix-2.8.2.tar.gz -C /usr/src/
[root@mail ~]# cd /usr/src/postfix-2.8.2/
[root@mail postfix-2.8.2]# make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -I/usr/local/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib/ -lsasl2' [root@mail postfix-2.8.2]# make && make install
 
安装过程中会出现互动提问,直接选择默认设置即可
 
[root@mail postfix-2.8.2]# postconf -m
btree
cidr
environ
hash
internal
mysql
nis
proxy
regexp
static
tcp
texthash
unix
 
4 、配置postfix
 
4.1 、 postfix主配文件修改
[root@mail ~]# vim /etc/postfix/main.cf
 
Inet_interfaces = all  默认设置

 

 

 

myhostname = mail.wisefund.com  主机名

 

 

 

mydomain = wisefund.com  邮件域名

 

 

 

myorigin = $mydomain  外发邮件时发件人地址中的邮件域名

 

 

mydestination = $mydomain , $myhostname 可接收的邮件地址中的域名,将其打开

 

 

[root@mail ~]# postfix check    # 检查配置
[root@mail ~]# postfix start     # 启动
 
 
4.2 、 Smtp发送邮件测试
邮件本地账户管理
增加账号user1 user2
 
[root@mail ~]# useradd user1
[root@mail ~]# echo "123" |passwd --stdin user1
[root@mail ~]# useradd user2
[root@mail ~]# echo "123" |passwd --stdin user2
 
然后测试:
 
[root@mail ~]# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to mail.abc.com (127.0.0.1).
Escape character is '^]'.
220 mail.abc.com ESMTP Postfix
ehlo mail.abc.com
250-mail.abc.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:[email protected]
250 2.1.0 Ok
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
88888
.
250 2.0.0 Ok: queued as 1D5802681E7
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@mail ~]#
[root@mail ~]#
[root@mail ~]# su - user2
[user2@mail ~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/user2": 1 message 1 new
>N 1 [email protected]         Wed Feb 8 02:23 14/454 
& 1
Message 1:
From [email protected] Wed Feb 8 02:23:56 2012
X-Original-To: [email protected]
Delivered-To: [email protected]
Date: Wed, 8 Feb 2012 02:23:27 +0800 (CST)
To: undisclosed-recipients:;
 
88888
 
& quit
Saved 1 message in mbox
 
邮件发送成功
5 、Dovecot 邮局软件安装(提供pop3/imap4协议)
 
5.1 、安装Dovecot
[root@mail ~]# useradd -M -s /sbin/nologin dovecot
[root@mail ~]# tar -zxvf dovecot-1.1.4.tar.gz -C /usr/src/
[root@mail ~]# cd /usr/src/dovecot-1.1.4/
[root@mail dovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql
[root@mail dovecot-1.1.4]# make && make install
 
5.2 、安装完成,配置
[root@mail dovecot-1.1.4]# cp /etc/dovecot-example.conf /etc/dovecot.conf
[root@mail dovecot-1.1.4]# cd 
[root@mail ~]# vim /etc/dovecot.conf
 
 
ssl_disable = yes  禁用SSL机制

 

protocols = pop3 imap 指定邮局协议

 

 

disable_plaintext_auth = no  允许明文密码认证

 

 

mail_location = maildir:~/Maildir  设置邮件存储格式和位置

 

 

[root@mail ~]# vim /etc/pam.d/dovecot # 创建pam认证文件
 
添加以下内容:
auth required pam_nologin.so
auth include system-auth
account include system-auth
session include system-auth
 
[root@mail ~]# /usr/local/sbin/dovecot -c /etc/dovecot.conf   # 启动
把这句话写入开机脚本
(此时如想重启dovecot,则先执行pkill -1 dovecot,再执行/usr/local/sbin/dovecot -c /etc/dovecot.conf 即可)
测试接受服务器dovecot
 
[root@mail ~]# telnet mail.abc.com 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
user user1
+OK
pass 123
+OK Logged in.
list   # 列出未读邮件
+OK 3 messages:
1 422
2 415
3 417
.
retr 1    # 读取第一封信
+OK 422 octets
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from mail.abc.com (mail.abc.com [127.0.0.1])
   by mail.abc.com (Postfix) with ESMTP id 145E22681E7
   for <[email protected]>; Wed, 8 Feb 2012 01:49:39 +0800 (CST)
Message-Id: <[email protected]>
Date: Wed, 8 Feb 2012 01:49:39 +0800 (CST)
To: undisclosed-recipients:;
 
1111122
.
quit
+OK Logging out.
 
 
6 、安装Webmail软件
 
6.1 、 squirrelmail安装
 
[root@mail ~]# tar -zxvf squirrelmail-webmail-1.4.22.tar.gz -C /usr/local/apache2/htdocs/
[root@mail ~]# cd /usr/local/apache2/htdocs/
[root@mail htdocs]# mv squirrelmail-webmail-1.4.22 webmail
6.2 、 配置webmail
 
[root@mail htdocs]# cd /usr/local/apache2/htdocs/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
 
修改的内容如下图:

 

 

 

 

 

 

 

 

重启apache:
[root@mail webmail]# /usr/local/apache2/bin/apachectl restart
 
 
 
客户端输入地址http://mail.abc.com/webmail
((前提设置本机dns指向为192.168.101.222,否则用ip)
出现如下图:

 

 

 

到此我们的postfix+webmail已经安装完成,但是为了使我们更好的管理维护邮件服务器的前端与后台接下来我们来安装extmail和extman以便实现我们的需求。

 

你可能感兴趣的:(防病毒,全功能电子邮件服务器,防垃圾)