Chinaunix首页 | 论坛 | 博客
  • 博客访问: 238437
  • 博文数量: 65
  • 博客积分: 1430
  • 博客等级: 中尉
  • 技术积分: 700
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-27 00:30
文章分类
文章存档

2011年(65)

分类: LINUX

2011-08-27 23:25:18

搭建邮件服务器:
1.先建个dns服务器,实现mail.a.org的正反向解析。
  如何搭建dns服务器在此就不做过多说明了,请参照搭建dns服务器的相关博文。
  注意:必须使其可以进行正反向解析,邮件服务要求必须有反向解析。
2.卸载sendmail,安装postfix
  rpm -e sendmail --nodeps(卸载sentmail,忽略依赖关系)
  yum install postfix
  service postfix start
  chkconfig postfix on(使其可以开机自动启动)
3.添加用户
  useradd gentoo
  useradd centos
  useradd ubuntu
此时postfix已经安装好了,我们就可以实现发邮件了。
发一封邮件试一下:
 telnet 127.0.0.1 25
 HELO mail.a.org
 mail from:
(发件人是不会做验证的,可以随便写)
 rcpt to:
(因为默认postfix只监听了127.0.0.1,所以我们现在还只能使用loclhost,  不能用,a.org是由192.168.0.7解析的)
 data回车
 Subject:how are you
 how are you???
 .(想结束邮件正文使用.即可)
 quit(退出)
tail /var/log/maillog(查看maillog日志)
postqueue -p (查看邮件队列,里面存放的有未发送出去的邮件)
su - gentoo (切换到getoo)
mail(收邮件)
 
下面我们来配置postfix的主配置文件来扩大postfix的功能:
 主配置文件:/etc/postfix/main.cf
  cd /etc/postfix
  cp main.cf main.cf.bak(将主配置文件做一下备份)
  vim main.cf
  myhostname=mail.a.org(做dns时里面应有mail.a.org解析记录)
  inet_interfaces=$myhostname localhost(定义监听哪个接口)
  mydomain = a.org(定义域)
  myorigin = $mydomain
  mydestination=$myhostname, localhost.$mydomain, localhost, $mydomain,mail.$mydomain
 (postfix只负责发送目的为mydestination里定义的域或主机的邮件。
  自己负责接收的都不需要中继,自己不负责的得进行中继才能发出去,否则发不出去。)
  service postfix reload
 此时我们再发邮件时收件人就可以写了,再发一封邮件试试。
  telnet 192.168.0.7 25
  HELO mail.a.org
  mail from:gentoo@a.org
  rcpt to:

  data
  Subject:ok
  ok?
  .
  quit
4.实现可以收邮件:
  yum install dovecot
  主配置文件:/etc/dovecot.conf
  vim /etc/dovecot.conf
  protocols=pop3
  service dovecot start
  chkconfig dovecot on
好了,此时我们的mail服务器已经搭建完成,并且可以实现收发邮件功能了。
可以使用客户端工具outlook来进行测试。 
 
 
 
下面我们来扩展mail服务器的功能
1.添加SMTP用户认证
1》配置并启动saslauthd服务
   建立配置文件:/usr/lib/sasl2/smtpd.conf
   启动saslauthd服务
   cd /usr/lib/sasl2
   cp Sendmail.conf smtpd.conf
   vim /usr/lib/sasl2/smtpd.conf(设置验证方式)
   pwcheck_method:saslauthd(这一行是自动生成的)
   service saslauthd status
   service saslauthd start
2》调整main.cf文件,以便支持认证
   修改后要重载postfix服务:postfix reload
  vim /etc/postfix/main.cf
  ....
  smtpd_sasl_auth_enable=yes(允许进行sasl认证)
  smtpd_sasl_security_options=noanonymous(禁止匿名登录)
  mynetwork=127.0.0.1
  smtpd_recipient_restrictions=  (设置收件人过滤规则)
   permit_mynetworks, (允许来自mynetwork的主机无条件中继邮件)
   permit_sasl_authenticated,(允许通过认证的用户向外网中继邮件)
   reject_unauth_destination(若收件人地址未在授权网络内,则拒绝发送)
 
3》测试带验证的SMTP发信功能
   获得此时用账号,密码的BASE64加密字串
   printf "gentoo" | openssl base64
   printf "123456" | openssl base64
   通过telnet方式连接,并执行测试
   。。。。
   telnet mail.a.org 25
   AUTH LOGIN
   334 VXNIcm5hbwu6
   eGIhb3Fp(加密后的用户名)
   334 UGFzc3dvcmQ6
   MTIzNDU2(加密后的秘密)
   235 2.0.0 Authentication successful
   MAIL FORM:gentoo@a.org。
2.aliases 别名机制
  一般使用/etc/aliases文件
  aliases文件的记录格式:
  别名:地址1,地址2,地址3。。。
  执行newaliases命令,以更新别名设置
  vim /etc/postfix/main.cf
  ....
  alias_maps=hash:/etc/aliases
  :wq
  vim /etc/aliases
  ....
  student:zhangsan,lisi,mike,john
  :wq
  newaliases(发给student的邮件,将自动转发给群组内的4个用户,相当于群发)
  service postfix reload
 
 注意:/etc/aliasers里面定义的别名的格式
       1)a:b
       2)a@a.org:
       3)kehu:a b 只要发给kehu,则a,b,c都会收到,相当于群发
阅读(2560) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~