在linux下配置sendmail邮件服务器
- 格式:doc
- 大小:25.00 KB
- 文档页数:1
Linux服务器部署系列之⼋—Sendmail篇Sendmail是⽬前Linux系统下⾯⽤得最⼴的邮件系统之⼀,虽然它存在⼀些不⾜,不过,⽬前还是有不少公司在使⽤它。
对它的学习,也能让我们更深的了解邮件系统的运作。
下⾯我们就来看看sendmail邮件服务器的部署。
本⽂将从以下⼏个⽅⾯讲解Sendmail邮件系统:1.Sendmail安装;2.Sendmail基本配置;3.Openwebmail安装和配置;4.配置Mailscanner+clamav过滤病毒;5.配置SpamAssassin+mimedefang过滤垃圾邮件。
本⽂系统运⾏环境:CentOS 5。
⼀、安装Sendmail1. 软件需求(以下软件在安装光盘上都可以找到)cyrus-sasl-2.1.22-4.i386.rpmcyrus-sasl-lib-2.1.22-4.i386.rpmcyrus-sasl-plain-2.1.22-4.i386.rpmcyrus-sasl-devel-2.1.22-4.i386.rpmcyrus-sasl-md5-2.1.22-4.i386.rpmsendmail-8.13.8-2.el5.i386.rpmsendmail-cf-8.13.8-2.el5.i386.rpmsendmail-devel-8.13.8-2.el5.i386.rpmsendmail-doc-8.13.8-2.el5.i386.rpmm4-1.4.5-3.el5.1.i386.rpmdovecot-1.0.7-2.el5.i386.rpm另外,dovecot需要两外两个程序包的⽀持:perl-DBI-1.52-1.fc6.i386.rpmmysql-5.0.45-7.el5.i386.rpm2. 软件安装1)cyrus-sasl的安装先检查⼀下,系统默认安装了哪些软件包,如下图:安装cyrus-sasl-md5-2.1.22-4.i386.rpm,如下图:2)安装sendmail、dovecot等相关程序包,如下图:Sendmail要正常⼯作,是需要DNS⽀持的,⼀般企业都有DNS服务器,如果没有,可以参考我的另⼀篇⽂章:Linux服务器部署系列之三—DNS篇(/379574/169718),⾃⼰搭建⼀台DNS服务器。
如何在Linux系统上搭建邮件代理服务器随着互联网的发展,电子邮件已经成为我们日常生活和工作中不可或缺的一部分。
为了更好地管理和保护我们的电子邮件,搭建邮件代理服务器是非常有必要的。
在本文中,我将介绍如何在Linux系统上搭建邮件代理服务器,并提供一些实用的技巧和建议。
一、选择适合的邮件代理服务器软件在搭建邮件代理服务器之前,首先需要选择适合的邮件代理服务器软件。
常见的邮件代理服务器软件有Postfix、Sendmail和Exim等。
在选择之前,我们需要考虑以下几个方面:1.稳定性和安全性:选择一个稳定且有良好安全记录的邮件代理服务器软件是非常重要的,以确保您的电子邮件安全。
2.易于配置和管理:选择一个易于配置和管理的邮件代理服务器软件将帮助您节省时间和精力。
3.可扩展性:选择一个具有良好扩展性的邮件代理服务器软件,以便您可以根据需要进行功能扩展和定制。
基于以上几个方面的考虑,我推荐使用Postfix作为邮件代理服务器软件。
Postfix是一款稳定、安全且易于配置的邮件代理服务器软件,广泛应用于各种Linux发行版中。
二、安装和配置Postfix1.安装Postfix在Linux系统上安装Postfix非常简单。
首先,打开终端并以root用户身份运行以下命令来安装Postfix:```sudo apt-get install postfix```根据系统提示进行配置,一般选择“Internet Site”选项,并输入您的域名。
2.配置PostfixPostfix的配置文件位于/etc/postfix/main.cf。
您可以使用任何文本编辑器打开该文件并进行必要的配置。
以下是几个常见的配置选项:- myhostname:设置您的邮件代理服务器的主机名。
- mydomain:设置您的邮件代理服务器的域名。
- mydestination:设置邮件将被投递的目的地域名。
根据您的实际需求进行配置,并保存文件。
Linux1 邮件服务器配置Sendmail完成Sendmail安装操作后,接下来以开放Sendmail监听端口与设置收件计算机名称、使用MTA Relay权限设置/etc/mail/access为目的来对Sendmail邮件服务器进行配置。
1.开放监听端口及设置收件计算机名称事实上Red Hat Enterprise Linux5.4在安装Sendmail后默认已经启动Sendmail (端口25处于LISTEN状态),只是它仅接收来自本计算机的MTA要求,验证此结果可在终端下输入“netstat -tulnp”命令,并按【回车】键查阅,如图9-19所示。
图9-19 查看Sendmail默认端口状态由图9-19可查看到端口25处于LISTEN状态,且只监听127.0.0.1这个lookup 接口。
所以用户的重点就是如何将监听的接口开启到整个Internet上,否则它是无法接收来自Internet的邮件的。
虽然配置文件在/etc/mail/sendmail.cf中,但建议不要手动修改它,应该修改的是sendmail.mc文件。
这个文件设置项目的基本语法为“设置组件(`设置项目’,`参数一’,`参数二’)”。
提示每个设置项目与参数左边使用的符号均为数字键1左边的引用键(quote),右边则是单引号。
这个文件的设置项目用户可以参考/m4/readme.html网页说明。
若要开放Sendmail对整个Internet的监听功能,只需要在终端下输入“vi /etc/mail/sendmail.mc”命令,按【回车】键进入sendmail.mc文件的编辑界面。
然后按“i”,切换到插入模式,将第116行中“Addr=127.0.0.1”改为“Addr=0.0.0.0”,按【ESC】键退出插入模式,最后按“:”并输入wq”按【回车】键保存配置,如图9-20所示。
图9-20 开放Sendmail监听功能修改sendmail.mc参数后,在使用m4宏文件生成器和修改后的配置创建新的sendmail.cf配置文件之前,还需要使用mv命令对原有的设置文件进行备份,这一点很重要,如图9-21所示。
linux mail 命令参数使用mail发邮件时,必须先将sendmail服务启动。
mail –s “邮件主题”–c”抄送地址”–b “密送地址” -- -f 发送人邮件地址–F 发件人姓名 < 要发送的邮件内容三种常用格式发信mail -s test yangfang@ #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束echo “mail content”|mail -s test yangfang@ #第二种方法,我用的最多,可能是喜欢管道的缘故吧mail -s test yangfang@ < file #第三种方法,以file的内容为邮件内容发信指定特定的发送人:$ mail -s "just a test" 收信人邮箱地址 < 要发送的邮件内容文件 -- -f 发送人邮件地址 -F 发件人姓名。
效果是: 信件内容将发送给收信人邮箱,显示的发送人为发送人姓名<发送人邮件地址>,显示的内容为发送的邮件内容...包含命令执行结果的MAIL发送:echo -e `ls /tmp`|mail -s "test" fff@ < /tmp/dd.txt -- -f cc@ -F cci 忽略 tty 的中断讯号。
(interrupt)I 强迫设成互动模式。
(Interactive)v 列印出讯息,例如送信的地点、状态等等。
(verbose)n 不读入 mail.rc 设定档。
s 邮件标题。
c cc 抄送邮件地址。
b bcc密送邮件地址。
需要sendmail或postfix服务如果单纯的发文件文件可以用cat xxxx.txt |mail -s "主旨" abc@ fff@ 如果需要发送附件需要安装uuencode来编码 (yum install sharutils)单独发附件,这样xxxx@会收到一个data.txt的附件uuencode /tmp/data_process.log data.txt |mail xxx@如果需要正文和附件一起发:uuencode /tmp/data_process.log data.txt > /tmp/data_temp.txt系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。
Linux下的邮件服务器Postfix(一)在Linux下1、挂载光驱建立DNS服务器的MX记录:正向:反向:2、创建用户和密码:看一下邮箱邮件默认保存在这里:3、安装Postfix包,开启Postfix服务:4、关闭sendmail服务:5、编辑/etc/postfix/main.cf文件找到这几项修改其余不改:myhostname = 邮件主机的完整名称mydomain = 邮件主机域名myorigin = $mydomain(表示所有)设置发件人邮件地址的网域名inet_interfaces = all (表示监听所有端口)监听端口【把下面的inet_interfaces=localhost注释掉】mydestination = $myhostname, $mydomain(表示所有)指定接收邮件时收件人的域名mynetworks = 192.168.1.0/24, 127.0.0.0/8(192.168.1.0/24表示这个网段,127.0.0.0/8表示本地)设置可以为其转发邮件的网络relay_domains = $mydestination(表示所有)设置可以为其转发邮件的域名6、重新启动服务:7、验证:发信:#telnet 25 telnet到邮件服务器的25号端口helo 用helo或ehlo介绍自己(可以不写)mail from:li@ 发信人地址rcpt to:gen@ 收件人地址data 表示开始输入邮件正文Hello! 邮件正文.新起一行以“.”表示正文结束quit 退出telnet收信:Linux下的邮件服务器Postfix(二)windows下第三方软件在(一)的基础上作:1、安装软件包dovecot、perl-DBI和mysql:2、修改主配置文件/etc/dovecot.conf3、开启服务重启服务器:4、将windows的首选DNS指向写成DNS服务器IP:5、验证:安装一个收发邮件的软件,然后在用windows自带的邮件收发软件(开始---程序---Outlook Express)互相测试:Windows自带的:工具-----账户-----添加-----邮件------软件安装完后:开始----程序-----找到刚安装的收发邮件的软件Windows Live Mail点开发一封邮件试一下(抄送是同时发给谁):这里有可能被认为是垃圾邮件:再用另一种软件(pine)测试一下:在windows中安装这个软件(这个软件可以在Linux里用但要依赖很多包所以这里只在windows里试一下):再选几个OK或是就进入:点回车:选择S项:选中前四一项一项调(选中后双击可调,回车确定):到li中查看一下:设置Postfix服务器邮件转发和用户的别名在(一)(二)的基础上(这个大致写一下):1、编辑配置文件/etc/aliases文件的记录格式(在最下面添加)用户的别名(假名):用户的真名admin: root 邮件的别名(发给admin也就是发给root)group: user1,user2邮件的群发(发给group也就是发给user1、user2….. user1:root@邮件转发(将发给user1的邮件发给root用户)2、修改aliases文件后更新aliases.db文件postalias hash:/etc/aliases3、刷新服务器。
在Linux下安装邮件服务器(RHAS3+Qmail+Apache+PHP+smtp-auth+Vpopmail+MySQL+Igenus+ezmlm+autores pond+qmailadmin)版本:2.7最后更新日期: 2004年11月11日功能列表SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持POP3服务器:CRAM-MD5,APOP,和SSL支持IMAP服务器:TLS(SSL)支持病毒和垃圾邮件检测自动回复邮件列表Web管理通过Web显示统计信息WebMailMRTG--------------------------------------------------------------------------------安装准备安装环境这个安装过程基本上你只需要复制粘贴就可以完成.我在RedHat上安装成功,其他系统还没试过.为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel 和mysql-server开发包一定要装上.另外大家在安装LINUX时一定要装上软件开发和内核开发两个软件组,这样可以避免不必要的由于编译环境的问题而导致的安装问题,这点对于LINUX新手犹为重要。
安装系统后,一般另需安装php-mysql 这个包,在安装光碟第三张。
AS3.0安装后,并没有mysql-server软件包,需自行下载安装,为方便大家,mysql-server软件包我已经与所有软件放在一个包中。
要确认下面的软件是否已经安装:rpm -q httpdrpm -q phprpm -q php-mysqlrpm -q mysqlrpm -q mysql-serverrpm -q mysql-develrpm -q gdbmrpm -q gdbm-develrpm -q opensslrpm -q openssl-develrpm -q stunnelrpm -q krb5-devel如果你还没有安装, 请先安装它们. 你可以到安装光盘或是在这里找到它们的RPM包 .启动mysql server:# /etc/rc.d/init.d/mysqld start设置mysql root口令:# mysqladmin -u root password ‘xukixu’(设置你的密码)mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。
Linux1 邮件服务器配置sendmail.cfsendmail.cf文件是sendmail每次启动时要读取的配置文件。
它包含了sendmail 启动时必须的信息。
它列出了所有重要文件的位置,指定了这些文件的缺省权限。
包含了一些影响sendmail行为的选项。
更重要的是,它还包含了地址重写(rewriting addresses)规则。
sendmail.cf文件是按行组织的。
每一个配置命令行都是由命令加上特定参数构成的,例如命令V的参数是一个数字,而F命令的参数则是字母w,再加上绝对路径,如图9-35中第70、91行所示。
图9-35 sendmail.cf配置命令行提示在对sendmail.cf文件进行配置时,必须保证每个配置命令行只能有一个命令,且位于该命令行行首(不存在空格),否则配置将不生效。
在该文件中如果行首的第一个字符为“#”,表示该行为注释;如果第一个字符为空格则表示该行为上一行的延续。
除此之外,行首的第一个字符均为命令,但是命令同变量或值之间没有间隔。
这种格式便于sendmail进行分析,但令很难使用户读懂。
下面介绍一下sendmail.cf配置文件中的命令。
1.D(定义宏)命令D定义宏并为其赋值。
当宏被定义之后,它就负责提供提供其存储的值给sendmail.cf文件中其他的命令使用或者直接提供给sendmail使用。
宏的名字可以是任何单字符,小写的用于sendmail内部宏,用户创建的宏只能使用大写字母作为名字。
一些sendmail的内部宏也在sendmail.cf文件里定义。
例如在配置文件中的第148、149两行定义了宏D和内部宏n,如图9-36所示。
图9-36 定义宏D和内部宏n那么宏D的值为,宏n的值为MAILER-DEAMON。
但若要使用宏的值时,还必须在宏的名字前面加上符号“$”,以这种形式来引用它的值。
例如图9-37配置文件中第150行设置。
图9-37 应用宏的值如果宏w的值为主机名moon,此时宏j的值就为,这便是本主机的全称名(FQDN)。
若有疑问,联系我,帮你答疑!实现两台不同域名的邮件服务器互相发送邮件一、实验环境两台linux服务器(Red Hat Enterprise Linux),主机名分别是RHEL1和RHEL2,一台物理机win7IP:RHEL1:192.168.1.51/24 gateway:192.168.1.1RHEL2:192.168.1.52/24 gateway:192.168.1.1Win7:192.168.1.104/24 gateway:192.168.1.1域:RHEL1:RHEL2:邮件客户端:Outlook 2010两台linux的防火墙、selinux都已关闭二、主机名的修改先在RHEL1上修改:要做三处修改,很重要!(1)[root@RHEL1 ~]# hostname (2)[root@RHEL1 ~]# vi /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=yesHOSTNAME=GATEWAY=192.168.1.1(3)[root@RHEL1 ~]# vi /etc/hosts127.0.0.1 localhost.localdomainlocalhost::1 localhost6.localdomain6 localhost6192.168.1.51 RHEL1在RHEL2上做类似修改全部修改完毕,重启!三、在RHEL1上配置DNS服务器(1)安装bind[root@RHEL1 ~]# mkdir /mnt/cdrom[root@RHEL1 ~]# mount /dev/hdc /mnt/cdrommount: block device /dev/hdc is write-protected, mounting read-only[root@RHEL1 ~]# cd /mnt/cdrom/Server[root@RHEL1 Server]# find -name "bind*"./bind-9.3.4-10.P1.el5.i386.rpm./bind-chroot-9.3.4-10.P1.el5.i386.rpm./bind-devel-9.3.4-10.P1.el5.i386.rpm./bind-libbind-devel-9.3.4-10.P1.el5.i386.rpm./bind-libs-9.3.4-10.P1.el5.i386.rpm./bind-sdb-9.3.4-10.P1.el5.i386.rpm./bind-utils-9.3.4-10.P1.el5.i386.rpm[root@RHEL1 Server]# rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm(依次安装上面几个RPM包)最后安装:[root@RHEL1 Server]# rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm (2)在RHEL1上自定义正向和反向区域[root@RHEL1 Server]# cd /var/named/chroot/etc/[root@RHEL1 etc]# ll婊璁?16-rw-r--r-- 1 root root 405 06-12 18:16 localtime-rw-r----- 1 root named 1195 2009-01-06 named.caching-nameserver.conf-rw-r----- 1 root named 955 2009-01-06 named.rfc1912.zones-rw-r----- 1 root named 113 06-14 10:18 rndc.key[root@RHEL1 etc]# cp -p named.caching-nameserver.confnamed.conf[root@RHEL1 etc]# vinamed.conf修改为如下内容(红色出为修改过的):options {listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";// Those options should be used carefully because they disable port// randomization// query-source port 53;// query-source-v6 port 53;allow-query { any; };};logging {channeldefault_debug {file "data/named.run";severity dynamic;};};viewlocalhost_resolver {match-clients { any; };match-destinations { any; };recursion yes;include "/etc/named.rfc1912.zones";};保存退出[root@RHEL1 etc]# vi named.rfc1912.zones添加以下内容:zone "" IN {type master;file ".hosts";allow-update { none; };};zone "1.168.192.in-addr.arpa" IN {type master;file ".rev";allow-update { none; };};保存退出(3)建立正向和反向区域数据库文件[root@RHEL1 etc]# cd /var/named/chroot/var/named[root@RHEL1 named]# cp -p localhost.zone .hosts[root@RHEL1 named]# cp -p named.local .rev[root@RHEL1 named]# vi .hosts修改为以下内容:$TTL 86400@ IN SOA . . (42 ; serial (d. adams)3H ; refresh15M ; retry1W ; expiry1D ) ; minimumIN NS .IN MX .ns IN A 192.168.1.51mail IN A 192.168.1.51[root@RHEL1 named]# vi .rev修改反向区域数据库文件为以下内容:$TTL 86400@ IN SOA . . ( 1997022700 ; Serial28800 ; Refresh14400 ; Retry3600000 ; Expire86400 ) ; MinimumIN NS .IN NS .51 IN PTR .51 IN PTR .52 IN PTR .52IN PTR .(4)配置DNS客户端[root@RHEL1 named]# vi /etc/resolv.conf修改为:search nameserver 192.168.1.51重启DNS服务:设置开机启动,执行以下命令[root@RHEL1 named]# ntsysv用空格键选中named进程,tab键切换“确定”按钮保存设置!四、安装sendmail[root@RHEL1 named]# cd /mnt/cdrom/Server[root@RHEL1 Server]# find -name "sendmail*"./sendmail-8.13.8-2.el5.i386.rpm./sendmail-cf-8.13.8-2.el5.i386.rpm./sendmail-devel-8.13.8-2.el5.i386.rpm./sendmail-doc-8.13.8-2.el5.i386.rpm[root@RHEL1 Server]# rpm -ivh sendmail-8.13.8-2.el5.i386.rpm(依次安装以上各个RPM包)在RHEL2上安装sendmail:[root@RHEL2 ~]# mkdir /mnt/cdrom[root@RHEL2 ~]# mount /dev/hdc /mnt/cdrommount: block device /dev/hdc is write-protected, mounting read-only [root@RHEL2 ~]# cd /mnt/cdrom/Server[root@RHEL2 Server]# find -name "sendmail*"./sendmail-8.13.8-2.el5.i386.rpm./sendmail-cf-8.13.8-2.el5.i386.rpm./sendmail-devel-8.13.8-2.el5.i386.rpm./sendmail-doc-8.13.8-2.el5.i386.rpm[root@RHEL2 Server]# rpm -ivh sendmail-8.13.8-2.el5.i386.rpm(依次安装以上各个RPM包)五、在RHEL1上建立RHEL2的DNS服务增加区域[root@RHEL1 Server]# cd /var/named/chroot/etc/[root@RHEL1 etc]# vi named.rfc1912.zones添加以下记录:zone "" IN {type master;file ".hosts";allow-update { none; };};创建.hosts的区域数据库文件[root@RHEL1 etc]# cd /var/named/chroot/var/named[root@RHEL1 named]# ll婊璁?44drwxrwx--- 2 named named 4096 06-14 10:50 data-rw-r----- 1 root named 198 2009-01-06 localdomain.zone-rw-r----- 1 root named 195 2009-01-06 localhost.zone-rw-r----- 1 root named 427 2009-01-06 named.broadcast-rw-r----- 1 root named 1892 2009-01-06 named.ca-rw-r----- 1 root named 424 2009-01-06 named.ip6.local-rw-r----- 1 root named 426 2009-01-06 named.local-rw-r----- 1 root named 427 2009-01-06 named.zerodrwxrwx--- 2 named named 4096 2004-07-27 slaves-rw-r----- 1 root named 244 06-14 10:41 .hosts-rw-r----- 1 root named 451 06-14 10:43 .rev[root@RHEL1 named]# cp -p .hosts .hosts[root@RHEL1 named]# vi .hosts修改为以下内容:$TTL 86400@ IN SOA . . (42 ; serial (d.adams)3H ; refresh15M ; retry1W ; expiry 1D ) ; minimumIN NS .IN MX 10 .ns IN A 192.168.1.52mail IN A 192.168.1.52保存退出,重启DNS服务:[root@RHEL1 named]# service named restart六、在RHEL2上修改DNS客户端配置文件,使指向192.168.1.51[root@RHEL2 Server]# vi /etc/resolv.conf修改为以下内容:search nameserver 192.168.1.51保存退出七、验证DNS的配置[root@RHEL1 named]# nslookup> Server: 192.168.1.51Address: 192.168.1.51#53Name: Address: 192.168.1.51> 192.168.1.51Server: 192.168.1.51Address: 192.168.1.51#5351.1.168.192.in-addr.arpa name = .51.1.168.192.in-addr.arpa name = .> Server: 192.168.1.51Address: 192.168.1.51#53Name: Address: 192.168.1.52> 192.168.1.52Server: 192.168.1.51Address: 192.168.1.51#5352.1.168.192.in-addr.arpa name = .52.1.168.192.in-addr.arpa name = .经验证,DNS可以正向、反向解析DNS配置得到验证!八、编辑两台sendmail服务器的宏配置文件sendmail.mc在RHEL1上:[root@RHEL1 named]# cd /etc/mail[root@RHEL1 mail]# vi sendmail.mc找到下面一行:DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 修改为:DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl [root@RHEL1 mail]# m4 sendmail.mc>sendmail.cf在RHEL2上:做与上面相同的修改[root@RHEL2 mail]# m4 sendmail.mc>sendmail.cf九、编辑local-host-names数据库文件在RHEL1上:[root@RHEL1 mail]# vi local-host-names修改为:在RHEL2上:[root@RHEL2 mail]# vi local-host-names修改为:十、编辑access数据库文件在RHEL1上:[root@RHEL1 mail]# vi access修改为:Connect:localhost.localdomainRELAYConnect:localhostRELAYConnect:127.0.0.1 RELAYConnect:192.168.1 RELAYConnect: RELAYConnect: RELAYConnect: RELAYConnect:RHEL1 RELAY保存退出[root@RHEL1 mail]# makemap hash access.db<access重启sendmail[root@RHEL1 mail]# servicesendmail restart在RHEL2上:[root@RHEL2 mail]# vi access修改为:Connect:localhost.localdomainRELAYConnect:localhost RELAYConnect:127.0.0.1 RELAYConnect:192.168.1 RELAYConnect: RELAYConnect: RELAYConnect: RELAYConnect:RHEL2 RELAY保存退出[root@RHEL2 mail]# makemap hash access.db<access重启sendmail[root@RHEL2 mail]# servicesendmail restart十一、配置dovecot服务,开启pop3服务在RHEL1上:安装提供dovecot服务的rpm包[root@RHEL1 ~]# cd /mnt/cdrom/Server[root@RHEL1 Server]# rpm -ivh perl-DBI-1.52-2.el5.i386.rpm[root@RHEL1 Server]# rpm -ivh mysql-5.0.22-2.1.i386.rpm[root@RHEL1 Server]# rpm -ivh postgresql-libs.7.4.6-1.RHEL4.2.i386.rpm[root@RHEL1 Server]# rpm -ivh dovecot-1.0-1.2.rc15.el5.i386.rpm配置[root@RHEL1 Server]# cd /etc[root@RHEL1 etc]# vidovecot.conf找到#protocols = imapimaps pop3 pop3s一行修改为protocols = imapimaps pop3 pop3s保存退出,启动dovecot服务,设置开机启动[root@RHEL1 etc]# service dovecot start[root@RHEL1 etc]# ntsysv空格键选中ntsysv进程,tab键切换保存退出在RHEL2上:[root@RHEL2 ~]# cd /mnt/cdrom/Server/[root@RHEL2 Server]# rpm -ivh perl-DBI-1.52-2.el5.i386.rpm[root@RHEL2 Server]# rpm -ivh mysql-5.0.22-2.1.i386.rpm[root@RHEL2 Server]# rpm -ivh postgresql-libs.7.4.6-1.RHEL4.2.i386.rpm [root@RHEL2 Server]# rpm -ivh dovecot-1.0-1.2.rc15.el5.i386.rpm[root@RHEL2 Server]# cd /etc[root@RHEL2etc]# vidovecot.conf找到#protocols = imapimaps pop3 pop3s一行修改为protocols = imapimaps pop3 pop3s[root@RHEL2etc]# service dovecot start[root@RHEL2etc]# ntsysv十二、测试RHEL1、RHEL2、win7之间的连通性分别在RHEL1和RHEL2上添加用户zhangsan,lisi,并创建密码[root@RHEL1 ~]# useraddzhangsan[root@RHEL1 ~]# passwdzhangsan[root@RHEL2 etc]# useraddlisi[root@RHEL2 etc]# passwdlisi是否能互相ping通[root@RHEL1 ~]# ping 192.168.1.52PING 192.168.1.52 (192.168.1.52) 56(84) bytes of data.64 bytes from 192.168.1.52: icmp_seq=1 ttl=64 time=0.850 ms64 bytes from 192.168.1.52: icmp_seq=2 ttl=64 time=0.258 ms……[root@RHEL1 ~]# ping 192.168.1.104(104为物理机win7的IP)PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.456 ms64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.320 ms……[root@RHEL2 etc]# ping 192.168.1.51PING 192.168.1.51 (192.168.1.51) 56(84) bytes of data.64 bytes from 192.168.1.51: icmp_seq=1 ttl=64 time=8.38 ms64 bytes from 192.168.1.51: icmp_seq=2 ttl=64 time=0.347 ms……[root@RHEL2 etc]# ping 192.168.1.104PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.372 ms64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.369 ms……C:\Users\guoyin>ping 192.168.1.51正在Ping 192.168.1.51 具有32 字节的数据:来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64……C:\Users\guoyin>ping 192.168.1.52正在Ping 192.168.1.52 具有32 字节的数据:来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64……在win7上打开C:\windows\system32\drivers\etc\hosts添加以下两条主机记录:192.168.1.51 192.168.1.52 C:\Users\guoyin>ping 正在Ping [192.168.1.51] 具有32 字节的数据: 来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64……C:\Users\guoyin>ping 正在Ping [192.168.1.52] 具有32 字节的数据: 来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64……经测试,ping ip和域名都能ping通!十三、在outlook上互发邮件验证(1)在outlook上建立两个邮件账户(步骤略)账户信息如下:zhangsanlisi(2)发送测试邮件先用zhangsan@给lisi@发送一份测试邮件,结果显示:zhangsan的”已发送邮件”如下,说明zhangsan给lisi发送成功再看lisi的收件箱中,显示如下,说明lisi收到了zhangsan发来的邮件再用lisi@给zhangsan@发送一封测试邮件,结果如下:lisi的“已发送邮件”中显示如下,说明lisi给zhangsan发送邮件成功同样,在zhangsan的收件箱中可以看到lisi发来的邮件,说明lisi给zhangsan发送成功综上:邮件测试工作完成。
实验一、SMTP服务器的安装与配置1.实验目的通过对Sendmail服务器系统的安装与配置实验,加深对 SMTP协议的理解,掌握Sendmail邮件服务器的安装与配置方法,为将来从事网络工程建设打下基础。
2.实验要求下载Sendmail服务器源代码,在Linux 环境下,编译生成执行代码,并进行安装和配置,然后创建二个测试帐号,分别在本机和网络中其它计算机上使用测试帐号发送邮件,测试Sendmail服务器系统工作是否正常。
3.实验步骤3.1 实验准备1、系统要求●系统配置建议CPU 为PIII 900MHZ以上, 内存128MB以上,磁盘可用空间100MB以上,具有10M/100M网卡,操作系统采用 Red Hat 6.0 版本或更高版本。
●编译器环境系统必须装有ANSI-C编译器,推荐使用来自Free Software Foundation (FSF)的GNU C compiler (GCC)。
2、下载源代码Sendmail最新版本的源代码可以从或其镜像站点下载,本书附带的光盘上包括了 sendmail 8.13.0版本的原代码。
3、源代码解包将下载的安装包sendmail-8.13.0.tar.gz复制到某一个用户目录下(下面以/usr/src/目录为例介绍),然后用以下命令解压:$ cd /usr/src$ tar xvfz sendmail-8.13.0.tar.gz将会在/usr/src/目录下创建/sendmail-8.13.0子目录,该目录下包含sendmail的所有的源代码和相关文档。
3.2 安装设置首先用超级用户在/etc下创建mail目录(如果原来安装过sendmail,则可先把原来的mail目录备份:# mv mail mail.bak):# cd /etc# mkdir mail进入安装包所在目录:# cd /usr/src/sendmail-8.13.0# cd cf/cf编辑generic-linux.mc.mc 文件,在该文件中间增加以下三行,将避免在发送邮件时对发送地址和接收地址进行DNS解析:FEATURE (accept_unresolvable_domains)FEATURE (nocanonify)define( ‘confDONT_PROBE_INTERFACES' )选择与安装机器上操作系统(这里选LINUX)相同的配置文件:# cp generic-linux.mc sendmail.mc生成配置文件sendmail.cf,submit.cf ,并复制到安装目录/etc/mail:# make install-cf3. 3 编译# cd /usr/src/sendmail-8.13.0# make3. 4 安装把编译后的执行文件sendmail 复制到/usr/sbin/, 把配置文件sendmail.cf,submit.cf,statistics,helpfile 等拷贝到目录/etc/mail # make install安装完成后,可以清除编译生成的中间文件(.o),以释放磁盘空间:$ make clean3. 5 配置Sendmail 的配置文件放在/etc/mail/sendmail.cf中, 配置文件比较复杂,不过一般只需要修改几个地方就可以了,其他选项都使用默认设置。
Linux1 邮件服务器启动和停止Sendmail服务安装Sendmail服务器配置之后,接下来需要做的就是启动Sendmail服务确保设置参数生效。
不过linux/unix等系统自带的mail应用,在多数情况下并不需要启用(默认是启用的),但有时会因此而产生不少的安全漏洞(如大量垃圾邮件的干扰),所以在通常情况下将停止(/etc/init.d/sendmail stop)这些系统的Sendmail服务。
在/etc/init.d目录中的脚本文件sendmail是控制Sendmail服务的,通过参数start、stop和restart可控制Sendmail服务的启动、停止和重启。
1.启动Sendmail服务若要启动Sendmail服务,只需在终端中输入“/etc/init.d/sendmail start”命令并按【回车】键,如图9-27所示。
图9-27 启动Sendmail服务或者在终端中,输入“service sendmail start”命令并按【回车】键,同样可以启动Sendmail服务,如图9-28所示。
图9-28 启动Sendmail服务2.自动启动Sendmail服务如果需要让Sendmail服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“sendmail”服务,在其前面加上星号(*),然后选择“确定”即可,如图9-29所示。
图9-29 自动启动Sendmail服务3.重启Sendmail服务重启Sendmail服务,只需在终端中输入“/etc/init.d/sendmail restart”命令并按【回车】键,如图9-30所示。
图9-30 重启Sendmail服务或者在终端中,输入“service sendmial restart”命令并按【回车】键,重启Sendmail 服务,如图9-31所示。
图9-31 重启Sendmail服务4.停止Sendmail服务若要停止Sendmail服务,只需在终端中输入“/etc/init.d/sendmail stop”命令并按【回车】键,如图9-32所示。
在linux下配置sendmail邮件服务器其实很简单具体:
1cd /etc/xinetd.d
2ls查看有没有ipop3和imap协议
3编辑vi /etc/xinetd.d/ipop3 把里面的disable=yes改为disable=no
4编辑vi /etc/xined.d/imap 把里面的disable=yes改为diable=no
5测试一下pop3和imap telnet localhost 110(pop3邮局协议的端口)telnet localhost 143(imap端口)
退出的时候都用ctl+]然后回车在输入quit即可(测试后要记得重启xinetd服务)6编辑vi /etc/mail/sendmail.mc
7把里面的dnl TRUST_AUTH_MECH(.........)和dnl define(`confAUTH_MECHANISMS`,.........)前面的dnl去了
8在添加两条DAEMON_OPTIONS(`port=25,name=MTA`)dnl和DAEMON_OPTIONS(`port=587,name=MSA,m=Ea`)dnl
9在DAEMON_OPTIONS(`port=smtp,Addr=127.0.0.1,name=smTA`)dnl和DAEMON_OPTIONS(`accept_Unres,Olvale_domains`)dnl前面加上dnl
10测试一下MTA telnet localhost 25回车输入ehlo test回车看见AUTH=..250说明成功退出和上面的一样
11做输入重定向m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf
12重启sendmail服务service sendmail restart
13编辑vi/etc/mail/access把允许转发的用户的IP或域名添加上去比如允许192.168.10.10的计算机通过
编辑vi /etc/mail/access在里面加上192.168.10.10 RELAY 或是OK(允许转发与通过)
14编辑vi /etc/mail/local-host-names把邮件服务器使用的域名给添加上去
15在做DNS的时候要在正向解析上添加一个IN MX 5(参数是设优先级的) 16重器一下sendmail服务。