Chinaunix首页 | 论坛 | 博客
  • 博客访问: 118004
  • 博文数量: 31
  • 博客积分: 781
  • 博客等级: 军士长
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 16:52
文章分类

全部博文(31)

文章存档

2014年(1)

2012年(9)

2011年(21)

分类: LINUX

2011-05-11 21:00:45

E-mail电子邮件由3部分组成。
1、MUA(Mailer User Agent,邮件用户代理程序),e.g Outlook/Eudora等都属于MUA
2、邮件传送代理程序
MTA(Mail Transfer Agent,邮件传送代理程序)用来监控以及传送电子邮件,如Windows下的Exchange、Imail Server和Mdaemon等,Linux下

的Sendmail、Qmail、Postfix、Exim等。从严格意义上说,MTA只是具备SMTP协议的主机,包括接收邮件、转发(Relay)邮件、响应用户收

信要求(MTA使用POP3或者IMAP协议,让客户端通过MUA将邮件接收下来)。
3、E-mail protocol
SMTP(Simple Mail Transfer Protocol)监听25端口,是一个请求/响应协议,用于接收用户的Mail请求,并与远程Mail服务器建立起SMTP连

接。重要特点,接力传送邮件。
POP3(Post Office Protocol)使用Tcp的110端口,用于接收。3个工作阶段:特许阶段,用户代理以明文发送用户名和密码;事务处理阶段

,用户代理取回报文并可以对邮件进行操作;更新阶段,客户机发出quit,结束该POP3会话。
IMAP4(Internet Message Access Protocol)通过Internet获取信息的一种协议,本身是一种邮箱访问协议,可以离线阅读等
Web Mail,如Yahoo Mail、Hotmail都是这种管理方式,并不是协议,而是一种Web支持插件,插件专门针对安装在服务器上的邮件程序,实

现了直接通过浏览器查收、阅读和发送邮件。
4、MDA(Mail Delivery Agent)邮件转发代理,分析MTA邮件的表头决定去向。

Postfix服务器
比Sendmail更安全,配置简单功能强大。
1、关闭Sendmail
两个邮件系统冲突,先关闭sendmail
#netstat -nutlp|grep :25
#service sendmail stop
#chkconfig sendmail off  ;配置不会随系统启动而自动运行。
2、安装postfix
检查是否已安装
#rpm -qa|postfix
安装postfix的rpm包

Postfix配置文件
位于/etc/postfix,主要包括main.cf、master.cf、access和aliases。
main.cf几乎所有的Postfix参数都可以在这里设置。
master.cf 规定运行时的参数,默认即可
access存取控制文件,设置开放传递,拒绝联机的来源或IP地址
alias别名数据库

Postfix基本配置
Postfix默认只监听本地127.0.0.1端口的邮件收发,要使其成为服务器,必须能够监听其他客户端
1、语法规则
变量1 = 值  ;将值赋给变量
变量2 = $变量1 ;引用变量1的值赋给变量2
注:等号两边加空格,多个变量赋值用逗号或空格隔开
2、打开Postfix的网络发送邮件支持
修改main.cf配置文件
inet_interfaces=all
#inet_interfaces=$myhostname
3、设置主机名和域名
myhostname=toplinux.localdomain.tst
mydomain=gdvcp.localdomain.tst
4、设置本机寄出的邮件使用的域名
myorigin=$mydomain
5、设置可转发网络
mynetworks=192.168.1.0/26
mynetworks-style(class(A类/B类/C类)/subnet/host)
两个都设置了以mynetworks为准
6、设置允许接受的邮件
mydestination=$mydomain,$myhostname
7、设置可转发邮件的网域
relay_domains=localdomain.tst
8、DNS设置
toplinux.localdomain.tst IN A 192.168.1.6
mail.localdomain.tst    IN CNAME toplinux.localdomain.tst
localdomain.tst         IN MX mail.localdomain.tst
9、检查更改的配置
#postconf -n

虚拟别名域
通过一个虚拟别名表,实现了虚拟域邮件地址到真实域的邮件地址的重定向
1、打开/etc/postfix/main.cf,配置虚拟别名域
virtual_alias_domains = csoftz.cn,localdomain.tst
virtual_alias_maps = hash:/etc/postfix/virtual_domains
2、编辑配置文件/etc/postfix/virtual_domains
@csofts.cn              @localdomain.tst
sales@localdomain.tst  toplinux
3、使配置文件生效
#postmap /etc/postfix/virtual_domains
#postfix reload

用户别名
通过别名表在系统范围内实现别名邮件地址到真实user email address的重定向,使用用户别名最重要的功能是实现群组邮递,可以将发送

给某个别名邮件地址的邮件转发给真实用户的邮箱中。
1、修改/etc/postfix/main.cf配置文件
#vi /etc/postfix/main.cf
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
2、编辑配置文件/etc/postfix/virtual_aliases
#vi /etc/postfix/virtual_aliases
team1: user1,user2,user3,user4
team2: :include:/etc/mail/team2user
toplinux: lu
newuser: ln,test@localdomain.tst
3、使其生效
#postalias /etc/postfix/virtual_aliases
#postfix reload

SMTP认证
给postfix服务加上用户认证,只允许通过了认证的用户发送邮件。
Cyrus SASL(Cyrus Simple Authentication and Security Layer,塞勒斯简单认证和安全层)是为应用程序提供认证的函数库,而应用程序

通过函数库所提供的功能定义认证方式,让SASL通过与邮件服务器主机的沟通来实现认证的功能。
1、安装包
#rpm -qa|grep sasl
2、密码验证机制
默认情况下,使用守护进程saslauthd进行密码认证,查看当前系统所支持的密码验证机制
#saslauthd -v
最简单的验证方法是shadow,直接用/etc/shadow文件中的用户账号及密码验证,将默认的密码验证机制有pam改为shadow,在配置文

件/etc/sysconfig/saslauthd中定义语句
MECH=shadow
3、测试
#ps aux|grep saslauthd (是否启动)
#chkconfig --level 345 saslauthd on   (设置成开机启动)
#/etc/init.d/saslauthd start
#/usr/sbin/testsaslauthd -u toplinux -p '123456' (测试是否通过)
4、设置postfix启用SMTP认证
#vi /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
5、测试SMTP认证
通过TELNET指令来测试SMTP认证,首先TELNET连接到Postfix服务器的25端口,即发信服务器端口。
(1)计算用户名和密码
#perl -MMINE::Base64 -e 'print encode_base64("toplinux");'
#perl -MMINE::Base64 -e 'print encode_base64("mypassword")'
(2)测试登录
#telnet server.localdomain.tst 25
EHLO gmail.com
AUTH LOGIN
encrpted username
encrpted password
quit
6、启动postfix服务
#/etc/rc.d/init.d/postfix start

POP和IMAP邮件服务
通过前面部分的操作后,postfix服务器已经可以为授权的网段或者网域发送和转发邮件了,但是要使用客户端授权邮件,需要安装POP3和

IMAP功能。
1、dovecot服务
postfix只是邮件传输代理,提供邮件的转发及本地的分发功能即SMTP服务。发送邮件和保存邮件需要安装POP或IMAP服务。通常将SMTP服务

和POP或IMAP服务安在同一主机上,该主机称为电子邮件服务器。
dovecot和CyrusImapd两个软件都同时提供POP和IMAP服务,先介绍dovecot服务
(1)安装
#rpm -ivh /mnt/Server/perl-DBI-1.52-1.fc6.i386.rpm
#rpm -ivh /mnt/Server/mysql-5.0.45-7.e15.i386.rpm
#rpm -ivh /mnt/Server/postgresql-libs-8.1.11-1.e15_1.1.i386.rpm
#rpm -ivh /mnt/Server/dovecot-1.0.7-2.e15.i386.rpm
(2)配置dovecot
dovecot的配置文件是/etc/dovecot.conf,启动最基本的dovecot服务,只需修改以下内容
protocols = imap imaps pop3 pop3s
protocol imap {
listen = *;10143
ssl_listen= *: 10943
}
protocol pop3{
listen = *:10100
}
(3)配置自动启动dovecot
#chkconfig --level 345 dovecot on
#service dovecot start

CyrusImapd服务
1、创建本地安装源文件,在/etc/yum.repos/目录下,新建文件rhel5.localinstall.repo
[rhel-localinstall]
name=Red Hat Enterprise Linux 5.2 LocalInstall
baseurl=fie:///mnt/cdrom/Server
gpgcheck=1
enabled=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
2、导入key文件
#rpm --import /mnt/cdrom/RPM-GPG-KEY-redhat-beta
#rpm --import /mnt/cdrom/RPM-GPG-KEY-redhat-release
3、通过图形界面安装
4、配置CyrusImapd
CyrusImapd服务的配置文件包括/etc/sysconfig/cyrusimapd(用于启动服务)、/etc/cyrus.conf(主要配置文件)和/etc/imapd.conf
为了是postfix和CyrusImapd整合在一起,在postfix配置文件/etc/postfix/main.cf加入以下内容:
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp
5、启动CyrusImapd
#chkconfig --level 345 cyrus-imapd on
#service cyrus-imapd start
6、创建用户邮箱
(1)设置CyrusImap管理员账号cyrus的密码:
#passwd cyrus
(2)创建邮箱,使用cyradm管理工具
#/usr/bin/cyradm -u cyrus localhost
(3)为用户toplinux创建邮箱
>creatE-mailbox user.toplinux
(4)添加文件夹
>creatE-mailbox user.toplinux.Drafts
>creatE-mailbox user.toplinux.Send
>creatE-mailbox user.toplinux.Trash
(5)设置信箱配额
>setquota user.toplinux 10240
>su -l cyrus -c /usr/lib/cyrus-imapd/quota

Web支持电子邮件
postfix也支持web方式收发邮件
1、安装Squirrelmail
Squirrelmail是REHL5内置的web支持软件,需要安装Apache和PHP支持
2、配置Squirrelmail
/etc/squirrelmail/config.php是主配置文件,可以通过配置工具完成
#/usr/share/squirrelmail/config/conf.pl
3、登录Squirrelmail
在Apache服务器的默认Web站点中,已经存在一个安装程序配置的别名Webmail,该别名在/etc/httpd/conf.d/squirrelmail.conf中定义,定

义如下
Alias /webmail /usr/share/squirrelmail
在浏览器中登录


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

jamesbert2011-05-12 00:12:23

上周末做过一个实验,回来我整理一下发出来,呵呵