免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1943 | 回复: 3
打印 上一主题 下一主题

Linux学习笔记——Mail邮件综合实验 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-04 13:11 |只看该作者 |倒序浏览

Linux学习笔记——Mail综合实验
                                        作者:Ajian
实验环境:
       用虚拟机模拟互联网中的邮件服务器,是如何工作的,并进行相关的一样配置。实现不同的邮件服务器上通信,实现跨网段进行通信。
       Linux sina.com为Sendmail邮件服务器,Linux sohu.com为Postfix邮件服务器。
说明:因为是用虚拟机来模拟整个环境,所以中间有些东西就用到虚拟机Vmware的一些特性,本来还要一台DNS服务器,现在为了实验就在Sina.com上做Linux的DNS服务器。
实验要求:在Windows客户端上用Outlook登录Sina.com的用户发信到sohu..com 看是否可以在sohu.com上收到信。
实验拓扑图:

实验配置:
一、环境的搭建
       在真正的实际环境中是不要这一步的,但现在没办法是学习过程中,要把实验做出来就得有好的环境,同样还可以理解实际中整个系统是怎么运行的。
1、  Linux都用虚拟机并且网卡用连到物理上的。Windows客户机用本机的物理机就可以了。就省去了再开一个虚拟机(当然认为不好理解可以多开一台用同一个Vmnet,现在的Vmnet相当于一个集线器或者交换机的作用)。并配置好相应的如图IP(当然也可以不用图上的,自己定)。还有顺便把Nameserver DNS都指向10.0.0.254。但先不要设置网关。
2、  解决不同网段互通的问题:
1)  在两台Linux上开启路由功能
#echo 1 > /proc/sys/net/ipv4/ip_forward
2)  在Linux sina.com上设置静态路由:
#route add –net 20.0.0.0 netmask 255.0.0.0 dev eth0
记住现在下一跳不能再用gw 20.0.0.254因为已经不是同网段的了。是设置不了的,只有告诉路由从自己的Eth0出去。
在Linux sohu.com就配置相反的,一样。
#route add –net 10.0.0.0 netmask 255.0.0.0 dev eth0
3)  现在互Ping下看能否通,通了后,最好先把Linux的防火墙关闭,因为现在还没配置Iptables,关掉DNS才可以解析。(至于自己会配置Iptables的就自己配目的只有一个,让每一台都可以解析到。)
#iptales –F
#service iptables stop
二、配置DNS服务器
       先要有DNS后面的实验才好做。
1、  在主配置文件中加入区域
#vi /etc/named.conf
zone “sina.com”  IN {
     type  master;
     file  “sina.com.dns”;
     allow-update { none; };
};
zone  “sohu.com”  IN  {
      type  master;
      file  “sohu.com.dns”;
      allow-update { none; };
};
2、在/var/named下加入相应区域文件,并对区域文件进行配置。
Sina.com.dns的配置文件:
       @       IN      SOA     sina.com. root.sina.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
                      IN      NS      sina.com.
                       IN      MX 5    sina.com.    ##其中的5是优先级,在多台的情况下.
sina.com.       IN      A       10.0.0.254
mail           IN      A       10.0.0.254
www          IN      A       10.0.0.254
sohu.com.dns的配置文件略。
3、  开启服务#service named start       。
现在可以在每台机器上试下解析DNS看能否都成功,没有成功就再检查找问题。
三、在Linux sina.com上配置Sendmail
    1、修改主配置文件
    #cd /etc/mail      (先进到这个目录,因为这个以后的操作常在这个目录里)
       #vi sendmail.mc
修改第123行:LOCAL_DOMAIN(`Localhost.com')dnl
              将Loclhost.com改为邮件服务器的域名
                         LOCAL_DOMAIN(`sina.com')dnl
生成Sendmail.cf
       #m4 sendmail.mc > sendmail.cf
或者#make –C /etc/mail        (注意:C是大写)
2、加入自己的主机名(sina.com)
#vi /etc/mail/local-host-names
#hostname sina.com
3、设置SMTP认证(如果设置了这个就不用设置Access,一般情况下Access也是用不到的,因为在实际中不可能自己去手动去打那么多的邮件域名)
  #vi /etc/sendmail.mc
       改:1)去掉43、44行的注释,一定要顶格,不能有空格。
       TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
2)85行加上注释dnl,格式和前面的一样。 加的dnl后有空格。。
Dnl  DAEMON_OPTIONS(`Port=smtp,Addr=192.168.0.254, Name=MTA')dnl
3 )92行:DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
将submission改成25。
4)运行:#make –C /etc/mail
5)重启Sendmail服务.
记得在Windows客户机上用Outlook时要进行设置。
设置:工具——》帐户——》属性——》服务器。 选择“我的服务器需要认证”。
4、设置pop3/IMAP  (作用:用于客户端存取远程服务器中信件的功能)
       #vi /etc/xinetd.d/ipop3    将中间的disable=yes  的yes 改为no
       #vi /etc/xinetd.d/imap    改的也是一样的。。。
       #service xinetd restart         重启服务。。
5、建一个用户,待会验证时,让Windows的客户端用。
   #useradd  aa
   #passwd   aa
四、在Linux sohu.com上配置Postfix
    准备工作:先杀掉Sendmail 或其它邮件服务。。(确保没有其它邮件服务)
    1、安装 postfix
  首先,下载postfix-20010228-pl04.tar.gz,然后解开源代码包:
[root@test /tmp]# tar xvzf postfix-20010228-pl04.tar.gz
  命令执行完后,会生成postfix-20010228-pl04目录,然后进入该目录:
[root@test /tmp]# cd postfix-20010228-pl04
  接下来,依次执行以下命令编译postfix:
[root@test postfix-20010228-pl04]# make tidy
[root@test postfix-20010228-pl04]#make makefiles CCARGS='-DUSE_SASL_AUTH -I/usr/include' AUXLIBS='-L/usr/lib -lsasl'
[root@test postfix-20010228-pl04]# make
建立一个新用户“postfix”,该用户必须具有唯一的用户id和组id号,同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用的用户宿主目录。我们可以先用adduser postfix 添加用户再编辑/etc/passwd文件中的相关条目如下所示:
postfix:*:12345:12345:postfix:/no/where:/no/shell
  最后执行安装脚本安装postfix
[root@test postfix-20010228-pl04]# ./INSTALL.sh

  对于安装脚本的问题,可以统统回车确定
       2、配置基本的Postfix  vi /etc/postfix/main.cf
       A     改:69行  去掉#    myhostnamed=abc.com
       B     76行             去掉#号 mydomain = abc.com
       C     88行             去掉#号  myorigin = $mydomain
       D     97行             加上#号
              98行             去掉#号  inet_interfaces   
       E  157行             去掉#号  mynetsorks_style=subnet  我的网络类型
       F     172行            去掉#号 mynetworks =192.168.0.0/24  控制访问的网段。。
       3、配置Postfix的SMTP认证:
  首先要保证postfix版本是snapshot-20000507及其以上的版本,从而保证postfix对SASL的支持。可以从www.postfix.org下载postfix的源代码包,保证您的SASL的版本是1.5.5及其以上版本,可以从ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/下载SASL。
 步骤:
1).检查系统中是否安装了cyrus-sasl-1.5.24
  执行以下命令查看系统中是否安装了cyrus-sasl:
rpm –qa |grep cyurs
  如果看到以下提示,则说明已经安装了
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
  否则,请用rpm –ivh 命令先安装所需sasl-cyrus包。
2)、配置postfix
在/etc/postfix/main.cf文件的最后添加以下几行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
说明如下:
smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination
reject:仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
broken_sasl_auth_clients = yes:有一些Microsoft 的SMTP客户端,比如Outlook Express 4.X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
smtpd_sasl_security_options = noanonymous:控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
3).配置SASL
  进入/usr/lib/sasl/目录,用touch新建这样一个文件:
[root@test sasl]# touch smtpd.conf
  在该文件中加入以下内容:
[root@test sasl]# more smtpd.conf
pwcheck_method:pam
  也就是指定通过PAM来进行用户认证。
4).配置PAM
  进入/etc/pam.d/目录,用touch新建这样一个文件:
[root@test pam.d]# touch smtp
  在该文件中加入如下内容:
[root@test pam.d]# more smtp
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
  也即和/etc/pam.d/pop文件的内容是一致的。
5).修改/etc/shadow文件权限
  因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
  执行以下命令,让root组也可以读取shadow:
[root@test /etc]# chmod 640 /etc/shadow
  然后再将postfix用户加入root组,采用以下命令:
[root@test /etc]# usermod -G root postfix
7.启动postfix
  执行
[root@test /etc]# postfix start
         3、安装POP3或者IMAP(方法同上就不写了)
五、测试:由于服务器都用了SMTP认证不能用一般的发信方法发信了,现服务器上用Openwebmail进行收信和发信。
  详细操作:
1、软件的安装
必需的软件:
# rpm -ivh perl-5.8.5-12.1.i386.rpm
# rpm -ivh perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
# rpm -ivh perl-Compress-Zlib-1.34-1.2.el4.rf.i386.rpm
# rpm -ivh perl-suidperl-5.8.5-12.1.1.i386.rpm
# rpm -ivh perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
OpenWebmail软件包详细安装过程:
# rpm -ivh openwebmail-2.52-1.i386.rpm (安装openwebmail软件包)
warning: openwebmail-2.52-1.i386.rpm: V3 DSA signature: NOKEY, key ID cfb164d8
Preparing...                ########################################### [100%]
     1:postfix                ########################################### [100%]
You may login with non-root account from
http://mail.easy.com/cgi-bin/openwebmail/openwebmail.pl
2、使用openwebmail-tool.pl命令来改变/etc/目录中的dbm.conf文件内容,详细操作如下:
详细操作:
# cd /var/www/cgi-bin/openwebmail/ (进入openwebmail程序目录)
# ./openwebmail-tool.pl --init (使用命令来改变dbm.conf文件内容)
Please change './etc/dbm.conf' from
And execute './openwebmail-tool.pl --init' again!
ps: If you are running openwebmail in persistent mode,
    don't forget to 'touch openwebmail*.pl', so speedycgi
    will reload all scripts, modules and conf files in --init.
3、修改 /var/www/cgi-bin/openwebmail/etc/目录中的openwebmail.conf 文件,详细内容如下:
domainnames         auto (更改为自己定义的域名)
更改为:
domainnames         sohu.com
default_language             en  (更改为简体中文版介面)
更改为:
default_language       zh_CN.GB2312
default_iconset        Cool3D.Englist  (更改为中文3D按键)
更改为:
default_iconset        Cool3D.Chinese.Simplified
smtpserver                 127.0.0.1 (更改smtp服务器的地址)
更改为:
smtpserver                 20.0.0.254
authpop3_server                localhost (更改pop3服务器的地址)
更改为:
authpop3_server                20.0.0.254
dbmopen_ext           none
更改为:
dbmopen_ext           %dbm_ext%
dbmopen_haslock       no
更改为:
dbmopen_haslock       yes
# ./openwebmail-tool.pl --init (使用命令来改变dbm.conf文件内容)
creating db /var/www/cgi-bin/openwebmail/etc/maps/b2g ...done.
creating db /var/www/cgi-bin/openwebmail/etc/maps/g2b ...done.
creating db /var/www/cgi-bin/openwebmail/etc/maps/lunar ...done.
Welcome to the Open WebMail!
This program is going to send a short message back to the developer,
so we could have the idea that who is installing and how many sites are
using this software, the content to be sent is:
OS: Linux 2.6.9-34.EL i686
Perl: 5.008005
WebMail: Open WebMail 2.52 20060502
Send the site report?(Y/n) y (输入y,然后按回车键)
sending report...
Thank you.
4、修改/etc/httpd/conf/目录中的httpd.conf文件,解决乱码问题
修改语言为GB2312 (大概在772行)
# service httpd start(启动http服务)

5、登录:在Internet Explorer或者Mozilla Firefox等浏览器中输入以下地址:
地址:
http://www.sohu.com
/cgi-bin/openwebmail/openwebmail.pl
就可以在上面写信和发信了。。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26011/showart_252975.html

论坛徽章:
0
2 [报告]
发表于 2012-06-17 18:50 |只看该作者
谢谢

论坛徽章:
0
3 [报告]
发表于 2012-07-11 12:51 |只看该作者
学习下:wink:

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
4 [报告]
发表于 2012-07-26 08:22 |只看该作者
确实比较详细的 赞! ^_^
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP