Linux网络配置Sendmail.docx
- 文档编号:14919096
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:24
- 大小:31.86KB
Linux网络配置Sendmail.docx
《Linux网络配置Sendmail.docx》由会员分享,可在线阅读,更多相关《Linux网络配置Sendmail.docx(24页珍藏版)》请在冰点文库上搜索。
Linux网络配置Sendmail
sendmail运行的主机需要具有完整的域名
#servicesendmailstart
#m4sendmail.mc>sendmail.cf
实例配置要求
邮件服务器的IP地址为192.168.1.2,主机域名为
邮件服务器将为“”域中的用户提供邮件服务
邮件服务器具有SMTP用户认证功能
域名设置:
邮件服务器需要进行域名注册
在区域文件中进行A记录和MX记录的设置
@ IN MX 5 .
mail IN A 192.168.1.2
设置local-host-names文件,local-host-names文件用于设置提供邮件服务的域名
在local-host-names文件中增加“”域
#vi/etc/mail/local-host-names
//添加邮件服务器提供邮件服务的域名
开启sendmail服务的网络接口
在sendmail.mc文件中设置服务地址
#visendmail.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
设置SMTP的用户认证,sendmail.mc文件中的配置
#vi/etc/mail/sendmail.mc
dnlTRUST_AUTH_MECH(`EXTERNALDIGEST-MD5CRAM-MD5LOGINPLAIN')dnl
dnldefine(`confAUTH_MECHANISMS',`EXTERNALGSSAPIDIGEST-MD5CRAM-MD5LOGINPLAIN')dnl
//去除行首的注释标记“dnl”,修改为
TRUST_AUTH_MECH(`EXTERNALDIGEST-MD5CRAM-MD5LOGINPLAIN')dnl
define(`confAUTH_MECHANISMS',`EXTERNALGSSAPIDIGEST-MD5CRAM-MD5LOGINPLAIN')dnl
启动saslauthd服务程序
#servicesaslauthdstart
邮件用户帐号,Sendmail服务器使用Linux系统中的用户帐号作为邮件帐号 建立邮件用户组
#groupaddmailuser
建立邮件用户帐号
#adduser-gmailuser-s/sbin/nologinmike
初始化用户口令
#passwdmike
设置邮件别名和邮件群发功能
邮件别名和邮件群发功能使用aliases机制实现,aliases和aliases.db文件
/etc/aliases /etc/aliases.db
aliases文件的记录格式
name:
addr_1,addr_2,addr_3,...
设置邮件别名
admin:
mike
设置邮件群发
testgroup:
mike,john
修改aliases文件后更新aliases.db文件
#newaliases
访问控制的设置,access.db数据库可实现基于主机地址的访问控制
#cat/etc/mail/access
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
192.168.1 RELAY(加入允许网段)
#makemaphashaccess.db
access.db数据库默认开启了对邮件服务器本机用户的邮件投递生成sendmail.cf文件
#cd/etc/mail
#m4sendmail.mc>sendmail.cf
重新启动sendmail服务器,当完成对sendmail服务器的配置后,需要重新启动服务程序
#servicesendmailrestart
验证服务程序启动
#netstat-ntpl|grep25
tcp 0 00.0.0.0:
25 0.0.0.0:
* LISTEN 6835/sendmail:
acce
安装dovecot服务器(pop3服务)
#system-config-packages
开启dovecot的pop3服务
修改dovecot.conf文件
#vi/etc/dovecot.conf
//将以下配置行
#protocols=imapimaps
//修改为
protocols=imapimapspop3pop3s
使用脚本启动dovecot服务
对dovecot.conf配置文件进行设置后,需要重新启动dovecot服务程序
#servicedovecotrestart
设置dovecot服务的启动状态
设置dovecot的启动状态
#chkconfig--level35dovecoton
验证dovecot服务启动
使用netstat命令查看dovecot已经监听110端口
#netstat-ntpl|grep110
loris注:
未经验证
基本配置需要修改的配置文件:
/etc/mail/sendmail.mc
/etc/mail/local-host-names
/etc/mail/access
打开sendmail.mc,搜索”127.0.0.1″,找到如下代码;
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA’)
修改为:
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA’)
监听所有IP地址,搜索”MD5″,找到如下代码:
dnlTRUST_AUTH_MECH(`EXTERNALDIGEST-MD5CRAM-MD5LOGINPLAIN’)dnl
dnldefine(`confAUTH_MECHANISMS’,`EXTERNALGSSAPIDIGEST-MD5CRAM-MD5LOGINPLAIN’)dnl,去掉这两行前面的”dnl”,后面的dnl保留.
在shell下执行命令:
m4sendmail.mc>sendmail.cf
在local-host-names中添加邮件服务所使用的域名,比如有账户
zbwz@
这里面就填,一个域名占一行,域名最后不用加”.”,域名要解析要sendmail服务器的IP.
最后就是access文件,这个文件只有跨服务器发送邮件时才会用到.
比如现在的sendmail服务器S1的IP为”192.168.1.2″,另外一台sendmail服务器S2的IP为”192.168.2.2″,要用S1上的一个邮箱帐号向S2服务器上的邮箱帐号发送邮件.在S2上就需要修改access文件了,在access文件中添加如下内容:
192.168.1.2 RELAY
中继来自192.168.1.2的邮件.
保存一下,然后在shell中执行命令:
makemaphashaccess.db
最终sendmail程序要用到的还是access.db文件,所以这里要把access文件转换为access.db文件.
access文件中其他的一些选项:
192.168.1 REJACK(拒绝)
192.168.1.2 OK(绝对允许,完全信任该IP)
这里的IP可以使一个IP地址,也可以是一个网段.
两台sendmail服务器之间发送邮件需要注意的一些问题:
两台sendmail服务器的主机名不可为localhost.localdomain(默认的主机名).
需要修改配置文件:
/etc/sysconfig/network.或者直接在”网络”里修改,修改后重启网卡,打开/etc/hosts.里面的内容为不能包含新的主机名.
telnet到Sendmail服务器的25端口,这里的主机名不为localhost.localdomain时,两台Sendmail就可以互发邮件了.
DNS服务器里一定要做好相应的A记录和MX记录.
以服务器S1为例:
域名为
在dns服务器中建立如下记录:
@ IN A 192.168.1.2
mail IN A 192.168.1.2
@ IN MX 10 mail
群发功能的实现:
实现向team1发送邮件People[1-3]都能收到
打开/etc/aliases文件.添加如下内容:
team1:
People1,People2,People3
team2:
People4,People5,People6
这里的team[1-2],People[1-6]都是真实用户.需要用useradd命令创建
新建Sendmail用户时,如果不希望该用户登陆到系统,可以使用如下命令添加用户:
useradd用户名-s/sbin/nologin
照这样配置好后,Sendmail服务器就可以进行最基本的收发邮件工作了
Sendmail邮件配置
(sendmail-8.13.8-2.el5.i386.rpm,sendmail-cf-8.13.8-2.el5.i386.rpm,m4-1.4.5-3.el5.1.i386.rpm)
由于sendmail的真正配置文件作者是用一种生僻的语言写的,号称天书,没几个人看得懂,所以我们配置的时候是配置的/etc/mail/sendmail.mc,这个比较好懂,每次修改后都要用m4sendmail.mc>sendmail.cf将修改的内容写到天书里面去。
/etc/mail下面的文件
[root@Servermail]#ls
access domaintable.db mailertable sendmail.cf submit.cf trusted-usersaccess.db helpfile mailertable.db sendmail.cf.bak submit.cf.bak virtusertabledomaintable local-host-names Makefile sendmail.mc submit.mc virtusertable.db
首先修改local-host-names
vilocal-host-names
#local-host-names-includeallaliasesforyourmachinehere.
#让sendmail知道哪些邮件属于本地域的邮件,这里添加了@
,#和@,凡是邮件后缀是这2个的都认为是本地邮件。
首先先来修改服务器smtp的监听范围,就是来自哪个地方的邮件sendmail会帮他发送。
默认是监听本机的,所以在客户端发邮件不成功。
修改之前我们应该备份一下配置文件,以免修改乱了还可以还原回来。
cp-avp/etc/mail/sendmail.mc/etc/mail/sendmail.mc.bak
cp-avp/etc/mail/sendmail.cf/etc/mail/sendmail.cf.bak
修改的地方:
112dnl#ThefollowingcausessendmailtoonlylistenontheIPv4loopbackaddress
113dnl#127.0.0.1andnotonanyothernetworkdevices.Removetheloopback
114dnl#addressrestrictiontoacceptemailfromtheinternetorintranet.
115dnl#
116DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl
将Addr=127.0.0.1改为0.0.0.0即可
m4sendmail.mc>sendmail.cf
servicesendmailrestart #如果启动很慢,vim/etc/hosts文件,加入
#192.168.x.xServer(DNS里面设置的也加进来)
现在默认本地用户就可以发信了,还不能用pop收信,要安装dovecot这个组件才能启用pop3收信。
那么往外域发送邮件呢?
下面就来进行邮件中继的设置
2台电脑之间发生的邮件收发不会产生中继,涉及到3台电脑的就会有中继发生,最常见的就是内部用户通过本地的邮件服务器外发给外域的用户。
有2个方法:
1、修改/etc/mail/access文件,
#Checkthe/usr/share/doc/sendmail/README.cffileforadescription
#oftheformatofthisfile.(searchforaccess_dbinthatfile)
#The/usr/share/doc/sendmail/README.cfispartofthesendmail-doc
#package.
#
#bydefaultweallowrelayingfromlocalhost...
Connect:
localhost.localdomain RELAY
Connect:
localhost RELAY
Connect:
127.0.0.1 RELAY
(默认只对本机发送的邮件中继,在下面添加中继)
192.168.2 RELAY #192.168.2.0/24网段可以中继
2、启用smtp身份认证,凡是属于我服务器的合法用户都中继
修改/etc/mail/sendmail.mc
……
50dnl#PleaserememberthatsaslauthdneedstoberunningforAUTH.
51dnl#
52dnlTRUST_AUTH_MECH(`EXTERNALDIGEST-MD5CRAM-MD5LOGINPLAIN')dnl
53dnldefine(`confAUTH_MECHANISMS',`EXTERNALGSSAPIDIGEST-MD5CRAM-MD5LOGINPLAIN')dnl
……
红色2行就是和smtp认证有关的,取消前面的dnl注释,不要留空格,就开启了smtp认证功能。
m4/etc/mail/sendmail.mc>/etc/mail/sendmail.cf
servicesendmailrestart
servicesaslauthdrestart#和认证相关的服务,不开这个就启用不了smtp身份认证。
开启认证以后客户端的MUA要在服务器一项上设置我的smtp服务器需要身份验证,但是如果是第一种方法就不需要了。
邮件别名:
可以定义一个或多个用户的别名,发送的时候收件人为设定的别名就可以了
修改/etc/aliases #启用转发,发给某个用户的邮件自动转发到指定的另外一个用户
#Personwhoshouldgetroot'smail
#root:
marc
rsb:
tom,mike#这里rsb这个是没有的用户
修改后执行newaliases#不执行发送的时候会拒绝这个收件人
启动pop3
这个最简单,直接安装dovecot,然后servicedovecotstart就可以了,什么都不用设置。
在rhel4中配置sendmail服务器:
实验的拓扑结构图:
MTA1 MTA2
DNS.SINA.COM
SMTP.SINA.COM SMTP.YAHOO.COM
POP.SINA.COM POP.YAHOO.COM
IP:
192.168.1.10 IP:
192.168.1.40
DNS:
192.168.1.10 DNS:
192.168.1.10
MUA1 MUA2
CLIENT.SINA.COM CLIENT.YAHOO.COM
IP:
192.168.1.100 IP:
192.168.1.140
DNS:
192.168.1.10 DNS:
192.168.1.10
Lastlogin:
TueSep1809:
00:
242007
[root@dnsroot]#hostname
---->首先配置域名服务器
[root@localhost~]#rpm-qa|grepbind ---->检查是否具备域名服务器软件包
bind-utils-9.2.4-2
bind-libs-9.2.4-2
ypbind-1.17.2-3
[root@localhost~]#mount/media/cdrom/ ---->挂载第4章光盘
mount:
blockdevice/dev/hdciswrite-protected,mountingread-only
[root@localhost~]#rpm-ivh/media/cdrom/RedHat/RPMS/bind-*
warning:
/media/cdrom/RedHat/RPMS/bind-9.2.4-2.i386.rpm:
V3DSAsignature:
NOKEY,keyIDdb42a60e
Preparing... ###########################################[100%]
1:
bind ###########################################[33%]
2:
bind-chroot ###########################################[67%]
3:
bind-devel ###########################################[100%]
---->安装域名服务器软件包
[root@localhost~]#umount/media/cdrom/
[root@localhost~]#mount/media/cdrom/ ---->挂载第1章光盘
mount:
blockdevice/dev/hdciswrite-protected,mountingread-only
[root@localhost~]#rpm-ivh/media/cdrom/RedHat/RPMS/caching-nameserver*
warning:
/media/cdrom/RedHat/RPMS/caching-nameserver-7.3-3.noarch.rpm:
V3DSAsignature:
NOKEY,keyIDdb42a60e
Preparing... ###########################################[100%]
1:
caching-nameserver warning:
/etc/named.confsavedas/etc/named.conf.rpmorig
###########################################[100%]
[root@localhost~]#vi/etc/named.conf
以下是我添加的内容:
正向:
zone""IN{
typemaster;
file".zone";
};
zone""IN{
typemaster;
file".zone";
};
反向:
zone"1.168.192.in-addr.arpa"IN{
typemaster;
file".local";
};
从上面的配置中看到,本机将作为负责两个域名解析的域名服务器
[root@localhost~]#cd/var/named/chroot/var/named/
根据上述内容创建区域数据库文件:
[root@dnsnamed]#touch.zone.local.zone
其中.zone文件内容:
$TTL 8640
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 网络 配置 Sendmail