Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1284471
  • 博文数量: 161
  • 博客积分: 10192
  • 博客等级: 上将
  • 技术积分: 2165
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 17:09
文章分类

全部博文(161)

文章存档

2012年(2)

2011年(13)

2010年(137)

2009年(5)

2008年(4)

我的朋友

分类: LINUX

2010-07-21 15:31:50

1. 系统安装:
1)centos4.3 选上MAIL组件里的全部。
2)hostname: mail.51test.com
 
2。搭建域名服务器DNS:
设置 mail.51test.com ==192.168.1.223,并PING、NSLOOKUUP测试。
注意:#nmap mail.test.com要看到25、110、143等端口才行。
 
3。设置POSTFIX
[root@sample ~]# vi /etc/postfix/main.cf  ← 编辑Postfix的配置文件
#myhostname = host.domain.tld  ← 找到此行,将等号后面的部分改写为主机名
 ↓
myhostname = sample.centospub.com  ← 变为此状态,设置系统的主机名
#mydomain = domain.tld  ← 找到此行,将等号后面的部分改写为域名
 ↓
mydomain = centospub.com  ← 变为此状态,设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)
#myorigin = $mydomain  ← 找到此行,将行首的#去掉
 ↓
myorigin = $mydomain  ← 变为此状态,将发信地址“@”后面的部分设置为域名(非系统主机名)
inet_interfaces = localhost  ← 找到此行,将“localhost”改为“all”
 ↓
inet_interfaces = all
  ← 变为此状态,接受来自所有网络的请求
mydestination = $myhostname, localhost.$mydomain, localhost  ← 找到此行,在行为添加“$mydomain”
 ↓
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain  ← 变为此状态,指定发给本地邮件的域名
#relay_domains = $mydestination  ← 找到此行,将行首的#去掉
 ↓
relay_domains = $mydestination  ← 变为此状态,定义允许转发的域名
#mynetworks = 168.100.189.0/28, 127.0.0.0/8  ← 找到此行,依照自己的内网情况修改
 ↓
mynetworks = 168.100.189.0/28, 127.0.0.0/8  ← 变为此状态,指定内网和本地的IP地址范围
#home_mailbox = Maildir/  ← 找到这一行,去掉行首的#
 ↓
home_mailbox = Maildir/  ← 变为此状态,指定用户邮箱目录
# SHOW SOFTWARE VERSION OR NOT
#
# The smtpd_banner parameter specifies the text that follows the 220
# code in the SMTP server's greeting banner. Some people like to see
# the mail version advertised. By default, Postfix shows no version.
#
# You MUST specify $myhostname at the start of the text. That is an
# RFC requirement. Postfix itself does not care.
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
  ← 找到这一行,接此行添加如下行:
smtpd_banner = $myhostname ESMTP unknow  ← 添加这一行,不显示SMTP服务器的相关信息
在配置文件的文尾,添加如下行:
smtpd_sasl_auth_enable = yes  ← 服务器使用SMTP认证
smtpd_sasl_local_domain = $myhostname  ← 指定SMTP认证的本地域名(主机名)
smtpd_sasl_security_options = noanonymous   ← 不允许匿名的方式认证
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
message_size_limit = 15728640  ← 规定邮件最大尺寸为15MB
 
4。 配置SMTP认证的相关选项
为了提 高安全性,我们不将系统用户的密码作为相应用户SMTP认证的密码,而将在后面为用户建立SMTP认证专用的密码。
[root@sample ~]# vi /usr/lib/sasl2/smtpd.conf  ← 编辑SMTP认证的配置文件
pwcheck_method: saslauthd  ← 找到此行,将“saslauthd”改为“auxprop”

pwcheck_method: auxprop  ← 不使用系统用户密码作为用户的SMTP认证密码

[root@sample ~]# vi /etc/sysconfig/saslauthd

MECH=shadow  ← 找到这一行,在前面加#
 ↓
#MECH=shadow
  ← 不使用shadow机制

FLAGS=
  ← 找到此行,在等号后面添加“sasldb”
 ↓

FLAGS=sasldb   ← 定义认证方式为sasldb2
5。建立用户的邮箱目录
首先建立用户模板 下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。
[root@sample ~]# mkdir /etc/skel/Maildir  ← 在用户模板下建立用户邮箱目录
[root@sample ~]# chmod 700 /etc/skel/Maildir  ← 设置用户邮箱目录属性为700
 
然后再为已经存在的用 户建立相应邮箱目录。
[root@sample ~]# mkdir /home/centospub/Maildir  ← 为用户(这里以centospub用户为例)建立邮箱目录

[root@sample ~]# chmod 700 /home/centospub/Maildir  ← 设置该用户邮箱目录属性为700

[root@sample ~]# chown centospub. /home/centospub/Maildir  ← 设置该用户邮箱目录为该用户所有

6。为用户设置SMTP认证密码
[root@sample ~]# saslpasswd2 -u sample.centospub.com -c centospub  ← 为centospub用户设置SMTP认证密码

Password:  ← 在这里输入密码(不会显示)
Again (for verification):  ← 再次输入密码

7。改变SALS的属性及归属
[root@sample ~]# chgrp postfix /etc/sasldb2  ← 将数据库归属改为postfix,

[root@sample ~]# chmod 640 /etc/sasldb2  ← 将数据库属性改为640

8。关闭sendmail服务及设置默认MTA
因为在 用Postfix作为SMTP服务器的前提下,我们不准备再用sendmail,所以将sendmail服务关掉,以确保安全及节省系统资源。
[root@sample ~]# /etc/rc.d/init.d/sendmail stop  ← 关闭sendmail服务

Shutting down sendmail:         [ OK ]
Shutting down sm-client:         [ OK ]

[root@sample ~]# chkconfig sendmail off  ← 关闭sendmail自启动

[root@sample ~]# chkconfig --list sendmail  ← 确认sendmail自启动已被关闭(都为off就OK)
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off

9。然后再将默认的MTA设置为 Postfix。
[root@sample ~]# alternatives --config mta  ← 设置默认MTA

There are 2 programs which provide 'mta'.

Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail  ← 当前状态:sendmail为默认MTA
 2 /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number: 2  ← 在这里输入2,使Postfix成为默认MTA

10。最后,启动SMTP认证及Postfix服务,并设 置相应服务为自启动。
[root@sample ~]# chkconfig saslauthd on  ← 将SMTP-Auth设置为自启动

[root@sample ~]# chkconfig --list saslauthd  ← 确认SMTP-Auth服务状态
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2~5为on的状态就OK

[root@sample ~]# /etc/rc.d/init.d/saslauthd start  ← 启动SMTP-Auth

Starting saslauthd:           [ OK ]

[root@sample ~]# chkconfig postfix on  ← 将Postfix设置为自启动

[root@sample ~]# chkconfig --list postfix  ← 确认Postfix服务状态
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2~5为on的状态就OK

[root@sample ~]# /etc/rc.d/init.d/postfix start  ← 启动Postfix

Starting postfix:            [ OK ]
至此,就完成了SMTP服务器方面的配置,但目前只具从备客户端通过服务器发 送邮件的功能。做为完整的邮件服务器,还需具备从客户端通过POP/IMAP协议接受邮件到本地的功能。

11。POP / IMAP
pop/imap是 MUA 从邮件服务器中读取邮件时使用的协议。其中,与 POP3 是从邮件服务器中下载邮件比起来,IMAP4 则是将邮件留在服务器端直接对邮件进行管理、操作。这里,我们用 Dovecot 来实现对 POP3 及 IMAP4 等协议支持的邮件接收服务器的搭建。
  Dovecot 是一个比较新的软件,由 Timo Sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 Dovecot 在安全性方面比较出众。另外,Dovecot 支持多种认证方式,所以在功能方面也比较符合一般的应用。

12。首先,安装 Dovecot
[root@sample ~]# yum -y install dovecot  ← 在线安装 Dovecot

13。 然后,修改相应配置文件,配置 Dovecot 。
[root@sample ~]# vi /etc/dovecot.conf  ← 编辑Dovecot 的配置文件
#protocols = imap imaps  ← 找到这一行,将协议设置为imap与pop3
 ↓
protocols = imap pop3  ← 变为此状态

#default_mail_env =  ← 找到这一行,定义邮件目录
 ↓
default_mail_env = maildir:~/Maildir
  ← 定义邮件目录为用户目录下的Maildir目录


14。由于 POP3 协议与 IMAP4 协议要分别用到110号和143号端口,所以在启动服务前,配置防火墙,开通这两个端口。
root@sample ~]# vi /etc/sysconfig/iptables  ← 编辑防火墙规则

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT  ← 找到此行,接着添加如下两行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT  ← 允许POP使用的110号端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT  ← 允许IMAP使用的143号端口

[root@sample ~]#
/etc/rc.d/init.d/iptables restart  ← 重新启动防火墙,使新的设置生效

Flushing firewall rules:          [ OK ]
Setting chains to policy ACCEPT: filter   [ OK ]
Unloading iptables modules:       [ OK ]
Applying iptables firewall rules:      [ OK ]

15。最后,启动 Dovecot ,并将其设置为自启动。
[root@sample ~]# chkconfig dovecot on  ← 设置Dovecot为自启动
[root@sample ~]# chkconfig --list dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2~5为on的状态就OK

[root@sample ~]# /etc/rc.d/init.d/dovecot start  ← 启动Dovecot服务

Starting Dovecot Imap:        [ OK ]

至此,配合Postfix,就可以通过E-mail客户端软件实 现电子邮件的收发了。
-------------------------------------
上面设置好后,结合“MUTT”和进程监控脚本,即可实现系统在有问题的时候自动发送邮件到指定的邮箱。

1。POSTFIX设置:(同上)

2。#vi httpdbk.sh

#!/bin/sh

date=`date +%y-%m-%d[%T]`

httpd=`ps -ef |grep httpd |awk '{if($3==1)print $0}' |awk '{if($1=="root")print $3}'`

echo -e $date

echo -e $httpd

if [ $httpd == "1" ]

 then 

      echo -e "$date:OK">>/root/httpmonitor.log

 else

   /sbin/service httpd restart

   echo -e "$date:RESTART">>/root/httpmonitor.log

   echo "httpd restart"|mutt -s "$date" szx@163.com

fi



3. #crontab -e

0-59/2 * * * * sh /root/httpdbk



4.测试OK。
-----------------------------------------
-------------------postfixadmin------------------------------------------------

[root@mail ~]# mkdir /var/www                    //建立postfixadmin存放目录

[root@mail ~]#cd /var/www

[root@mail www]# tar xzvf /root/postfixadmin-2.1.0.tgz   //解压到当前目录

[root@mail www]# ln -s postfixadmin-2.1.0/ postfixadmin   //做个连接

[root@mail www]# chown -R daemon:daemon postfixadmin-2.1.0/  //修改所有者为httpd用户

[root@mail www]#cd postfixadmin

[root@mail postfixadmin]#chmod 640 admin/*.php       //设置权限增加安全性

[root@mail postfixadmin]#chmod 640 images / *.png

[root@mail postfixadmin]#chmod 640 languages/*.lang

[root@mail postfixadmin]#chmod 640 templates/*.tpl

[root@mail postfixadmin]#chmod 640 users/ *.php

[root@mail postfixadmin]#mysql -u root -p123456 < DATABASE_MYSQL.TXT //导入数据库当然了,实际中我的sql的密码不可能是123456而是标准的强密码。

[root@mail postfixadmin]#cp config.inc.php.sample config.inc.php   //复制配置文件

[root@mail postfixadmin]#vi config.inc.php

找这行$CONF['default_language'] = 'en';

改为$CONF['default_language'] = 'cn';               //让postfixadmin 支持中文

找到 $CONF['domain_in_mailbox'] = 'YES';

改为$CONF['domain_in_mailbox'] = 'NO';              // If you don't want to have the domain in your mailbox set this to 'NO'.

找到此行:$CONF['encrypt'] =

改为CONF['encrypt'] = 'cleartext';               //明文存入mysql

[root@mail postfixadmin]# mv motd-admin.txt motd-admin.txt.move //删除烦人的提示,当然喽,你也可以自已写一些说明性的文字!

#下面的设置需要细研

*[root@mail postfixadmin]#vi  /usr/local/apache/conf/httpd.conf

*在110行左右加入以下内容,加强安全性,要不每个人不经认证都可以用*postfixadmn了!

*

* Options FollowSymLinks

*DirectoryIndex  index.php

* AllowOverride None

*AuthType Basic

*authname Private

*authuserfile /var/phpaccess/tony

*require valid-user

* Order allow,deny

*  Allow from all

*

*注意tony是我的密码档文件名。

[root@mail postfixadmin]#mkdir /var/phpaccess

ouch /var/phpaccess/tony

[root@mail postfixadmin]#cd /var/phpaccess/

[root@mail phpaccess]# /usr/local/apache/bin/htpasswd -c tony jim  //添加用户jim 

New password: 

Re-type new password: 

Adding password for user tony

[root@mail phpaccess]#

然后我们就可以打开网页浏览器来访问了



至此postfixadmin配置完毕。在这里我推荐对mysql比较了解的人更改默认的postfix连接密码!默认数据名为postfix,用户名密码都是postfix!!!!

-------------------------------------------end---------------------------------------------------------
安装squirrelmail 1.4.4



下载squirrelmail及中文包

# wget 

# wget 

把squirreelmail解压到/var/www目录下。

# tar -jxvf squirrelmail-1.4.4.tar.bz2 -C /var/www/

# mv /var/www/squirrelmail-1.4.4 /var/www/squirrelmail 

解压中文包

# tar -jxvf zh_CN-1.4.4-20050122.tar.bz2 -C /var/www/squirrelmail/



在配置squirrelmail之前先下载三个插件:

Quota Usage Version 1.3

# wget %3A%2F%2F%2Fplugins%2Fquota_usage-1.3-1.2.7.tar.gz 

Compatibility Version 1.3

# wget %3A%2F%2F%2Fplugins%2Fcompatibility-1.3.tar.gz

Change MySQL Password Version 3.2

# wget %3A%2F%2F%2Fplugins%2Fchange_mysqlpass-3.2-1.2.8.tar.gz



把这三个插件解压到squirrelmail的plugin目录下并设置权限。

# tar -zxvf quota_usage-1.3-1.2.7.tar.gz -C /var/www/squirrelmail/plugins/

# tar -zxvf compatibility-1.3.tar.gz -C /var/www/squirrelmail/plugins/

# tar -zxvf change_mysqlpass-3.2-1.2.8.tar.gz -C /var/www/squirrelmail/plugins/

第一个插件是用来显示邮箱的使用情况的;第二个和第三个插件是用来修改密码的。

如果不想装这些插件,请跳过。



配置Quota Usage

# cd /var/www/squirrelmail/plugins/quota_usage

# cp config.php.sample config.php



配置Change MySQL Password 

# cd /var/www/squirrelmail/plugins/change_mysqlpass

# cp config.php.sample config.php

# vi config.php

更改如下几个变量:

$mysql_database = 'postfix';

$mysql_table = 'mailbox';

$mysql_userid_field = 'username';

$mysql_password_field ='password';

$mysql_manager_id = 'postfix';

$mysql_manager_pw = 'postfix';

$mysql_unixcrypt = 0;

//$mysql_MD5crypt = 1;

$mysql_MD5crypt = 0;

$use_ssl_for_password_change = 0;



如果你的密码是MD5加密的,就把$mysql_MD5crypt = 0;改成$mysql_MD5crypt = 1;



配置squirrelmail

# cd /var/www/squirrelmail

# ./configure

进入10. Languages

把1. Default Language : 的en_US改成zh_CN。

进入8. Plugins,添加这三个插件



打开浏览器输入,用test@test.com登陆,你将会在屏幕的左上角看到邮箱的使用情况,你还会看到一条警告信息:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/squirrelmail/plugins/change_mysqlpass/functions.php on line 129

这是由于数据库结构不一致造成的,你只要把functions.php中的129行注释调即可(在行首加//)。

现在你还可以用选项中的change passwd修改你的密码了,不过这个模块是英文的,如果你想改成中文的,可以自己修改,squirrelmail网站上有介绍。或者请参考:



1、把change_mysqlpass.po与locale/zh_CN/LC_MESSAGES/squirrelmail.po合并

最简单的方法就是:

# cat change_mysqlpass.po >;>; /var/www/squirrelmail/locale/zh_CN/LC_MESSAGES/squirrelmail.po 

2、执行:

# cd /var/www/squirrelmail/locale/zh_CN/LC_MESSAGES/

# msgfmt -o squirrelmail.mo squirrelmail.po 



由于安全原因,建议把data目录移出web tree,比如移到/usr目录下,设置权限

# cp -R /var/www/squirrelmail/data/ /var/data

# chown -R vmail.vmail /var/data

# chmod 730 -R /var/data

---------------------------



阅读(2138) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~