设为首页 收藏本站
查看: 1493|回复: 0

[经验分享] RedHat 9中配置sendmail服务器

[复制链接]

尚未签到

发表于 2015-11-25 14:09:45 | 显示全部楼层 |阅读模式
这篇文章主要是示范如何在一台新装的 redhat 9上用配置 sendmail-8.12.8-4 服务,构架你的e-mail服务器.


1.sendmail的安装
若用户在Redhat9默认安装时已经安装了sendmail 8.11服务.可忽略安装过程,相关资料请查阅redhat CD里的文档.
若没有安装,安装sendmail服务,操作如下:
//查看是否安装了sendmail
#rpm –qa|grep sendmail
//将RedHat Linux9的第一张安装光盘放入光驱后挂载
#cd /mnt/cdrom

//进入光盘的RedHat/RPMS目录
#cd /mnt/cdrom/RedHat/RPMS
//安装所需的软件包
#rpm –ivh sendmail-8.12.8-4.i386.rpm
//将RedHat Linux9的第3张安装光盘放入光驱后挂载
#cd /mnt/cdrom
//进入光盘的RedHat/RPMS目录
#cd /mnt/cdrom/RedHat/RPMS
//安装所需的软件包
#rpm –ivh sendmail-cf-8.12.8-4.i386.rpm
#rpm –ivh sendmail-doc-8.12.8-4.i386.rpm
//弹出光盘
#cd;eject

2.检验DNS SERVER的正反向解析是否成功
要使你的新e-mail服务器正常工作,必须先解决DNS问题.把你的e-mail服务器的主机名和ip地址加入到DNS中,并用nslookup来确认:
# nslookup -sil mail.supermaster.com
Server: 192.168.0.100
Address: 192.168.0.100#53
Name: mail.supermaster.com
Address: 192.168.0.100
同样你也要试一下反向域名解析,这个对防止邮件延迟有很重要的作用.现在大部分的邮件服务器都是把反向域名解析作为邮件传送时
认证的一部分.所以用的你ip地址来试一下反向域名解析是否正确.
# nslookup -sil 192.168.0.100
Server: 192.168.0.100
Address: 192.168.0.100#53
100.0.168.192.in-addr.arpa name = mail.supermaster.com.

3.配置sendmail服务

1).监听本机的smtp端口
redhat 9 默认安装已经可以使SMTP服务在本机运行.
你用netstat -nl可以看到所有后台程序监听的端口,注意这一行:127.0.0.1:25,这个表示sendmail服务已经在监听本机的25(SMTP)
端口了:
# netstat -nl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:32768 0.0.0.0:*
udp 0 0 0.0.0.0:667 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 1119 /dev/gpmctl
unix 2 [ ACC ] STREAM LISTENING 1172 /tmp/.font-unix/fs7100
但这个仅仅表示e-mail服务器只接收你本机的邮件.为了解决这个问题,你必须修改配置,告诉sendmail去监听你对外的网卡地址.

2).解决对外smtp端口的监听
假设你的服务器上安装了一块网卡(eth0),并用ifconfig配置好你的ip地址.这个地址可以和DNS解析的地址不一样,但你要保证DNS可以正确
地解析邮件服务器的地址.这里我们使用的地址是一样的(推荐):
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:60:97:DE:E9:99
inet addr:192.168.0.100 Bcast:192.168.0.100 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12421 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
可以看到这台主机的eth0的ip地址是192.168.0.100.现在修改/etc/mail/sendmail.cf文件来配置sendmail的监听端口:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
更改为
O DaemonPortOptions=Port=smtp,Addr=192.168.0.100, Name=MTA
改完后保存退出,并且重新启动sendmail服务:
# service sendmail restart
Shutting down sendmail: [ OK ]
Starting sendmail: [ OK ]
#
现在可以用netstat -nl来查看是不是已经更改了.如你所看到的,sendmail的监听端口现在是eth0的ip地址:192.168.0.100了.
# netstat -nl
Active Internet connections (only servers)
Proto Recv-Q send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.100.134:25 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:32768 0.0.0.0:*
udp 0 0 0.0.0.0:667 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 1119 /dev/gpmctl
unix 2 [ ACC ] STREAM LISTENING 1172 /tmp/.font-unix/fs7100
#
////////////////////////////////////////////////////////////////////////////////////////////

3).设置允许接受的域名
现在sendmail已经可以接收来自外部的连接了.我们还需要设定sendmail允许接收的域名.这个可以在
/etc/mail/local-host-names

文件中设定.就把域名输入进去就可以了:
# local-host-names - include all aliases for your machine here.
supermaster.com
保存退出后重新启动sendmail服务:
/etc/init.d/sendmail restart .这样sendmail就可以接收来自多个域的信件了. 如果你需要再增加新的域,只有修改这个文件就可以了.

4).client 端的设置
现在的e-mail服务器在本机上已经可以完全正常的工作.它已经可以接收来自任何地方的信件(允许的域),但如果想要发送和传递邮 件,则必须在这台电脑上执行.如果你的用户都直接登录到你的服务器上来发送邮件,则不需要更改任何配置,如果你希望大部分或者所有的用户可以在远程主机上使用该e-mail服务器,例如利用KMail和Outlook Express及Mozilla Mail等客户端工具,则你必须更改配置来允许这些主机使
用你的e-mail服务器.你需要在
/etc/mail/access
文件中加入下面一行,保存后运行make access.db 的命令来生成access.db文件.
supermaster.com RELAY
改完后的access文件应该是这样的:
# Check the /usr/share/doc/ sendmail-8.12.8-4/README.cf file for a
description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/ sendmail-8.12.8-4/README.cf is part of the
sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
supermaster.com RELAY
然后运行:
# make access.db
#
这个make access.db命令把你的新的设定添加到sendmail的hash数据库里.sendmail用它来判断允许那些主机通过你的e-mail服务器来传递邮件.而且这样还可以通过设定子网(例如:192.168)来限制该域.但你要注意,这样设定就对外开放了,可能会有人发大量的垃圾 信件来攻击你的系统.
现在你可以收到所有来自外部的邮件.并且允许信赖的客户在远程传递信件.接下去你想要做的可能是如何在远程收取这些信件.要达到
这个目的,你需要安装IMAP 或者 POP. redhat 9默认安装的时候并没有安装POP/IMAP,所以你需要安装imap-2000-9 rpm包.
要查看这个包的安装状态,可以用下面的命令:rpm -aq | grep -i imap.如果发现没有安装,那就把redhat 9第二张安装光盘
放到光驱里.然后运行如下命令:
# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
(Successful Mount of Read-Only Media)
mount上光盘后运行这个命令来安装这个包:rpm -Uvh /mnt/cdrom/RedHat/RPMS/imap-2000-9.i386.rpm.
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/imap-2000-9.i386.rpm
Preparing... ########################################### [100%]
1:imap ########################################### [100%]
再运行一次 rpm -aq | grep -i imap
IMAP 包就罗列出来了.
# rpm -aq | grep -i imap
imap-2000-9
#

5).ipop3的设置

当正确的包被安装后你要打开POP3的连接端口,这需要修改/etc/xinetd.d/下面的
ipop3
文件,把disable的值改成yes.这个文件
大致是这样的:
# default: off
# description: The POP3 service allows remote users to access their mail
# using an POP3 client such as Netscape Communicator, mutt,
# or fetchmail.
service pop3
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
log_on_success += USERID
log_on_failure += USERID
disable = no
}

接下去重新启动xinetd来是它生效:
# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
#
建议将ipop3 设置成自动启动,操作如下:
#redhat-config-services或setup或ntsysv
OK,至此sendmail的配置完成,发送一封测试邮件到你的e-mail服务器,并且用你熟悉的收信工具来收取这封信.笔者用的是Mozilla Mail进行测试,成功 。

4.sendmail的性能优化
或许你会收到这样的抱怨,说是当客户端程序运行在防火墙后面的话会发生连接pop端口速度变慢.
造成这个延时的原因是你的e-mail服务器初始一个IDENT会话来确认客户端的身份.如果这个询问没有反应,那服务器就会在5秒后发出
一个超时信号.这个值可以降低到1秒,从而减少IDENT产生影响.修改/etc/mail/sendmail.cf文件,把timeout的值改成你想要的值.
# timeouts (many of these)
#O Timeout.ident=5s
change to
O Timeout.ident=1s
现在你的e-mail服务器可以给你的用户提供服务了.当然还有更多的配置可以用来提高服务器性能,在这篇文章中就不多提了.
Linux将会为你的e-mail服务提供一个稳定的,高效的平台.如果想了解更多的关于sendmail的知识,请访www.sendmail.org.
注:笔者建议大家在第一测试sendmail时,把fireware 服务关闭。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143473-1-1.html 上篇帖子: RHEL5.7下的sendmail服务器配置 下篇帖子: sendMail 发邮件 tls
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表