Sendmail现在是最流行的邮件服务器,那我们来看看如何在Linux下安装Sendmail服务器。

  Sendmail现在是最流行的邮件服务器,那我们来看看如何在Linux下安装Sendmail服务器。

转自:nawangting.blog.51cto.com/608135/204161

  Sendmail作为一种免费的邮件服务器软件,已被广泛的应用于各种服务器中,它在稳定性、可移植性、及确保没有bug等方面具有一定的特色,且可以在网络中搜索到大量的使用资料。

电子邮件是计算机史上最老的服务了,目前常用的MTA(邮件传输代理)软件主要有sendmail和postfix,exchange,qmail等;其中sendmail最为古老,且最为复杂;邮件传输过程中主要有MTA,MUA,MAA,MDA等,MUA,邮件用户代理主要指的是客户端程序,比如outlook,foxmail,thunderbird等;MAA则是指dovecot软件提供的pop3,imap等收信服务,MDA则是邮件过滤代理,主要有procmail等…,sendmail的配置十分的复杂,本节中只介绍rhce考试的热点…

1、从www.sendmail.org下载最新的版本(这个snedmail倒是有必要升级为最新的版本,因为它的升级主要是安全漏洞问题)。这里说明的是用的sendmail-8.12.2.tar.gz

  1、从www.sendmail.org下载最新的版本(这个snedmail倒是有必要升级为最新的版本,因为它的升级主要是安全漏洞问题)。这里说明的是用的sendmail-8.12.2.tar.gz

Linux下Sendmail 服务器的搭建

  一.安装Sendmail

1:配置sendmail监听本机所有端口,并在远程客户端上进行发邮件测试
[root@server2 ~]# rpm -q sendmail-cf 
//安装sendmail-cf包,改包提供了主要的模板
package sendmail-cf is not installed
[root@server2 ~]# yum -y install sendmail-cf
[root@server2 ~]# service sendmail status
sendmail (pid  2591) 正在运行…
[root@server2 ~]# netstat -ntpl |grep :25 
//sendmail默认启动,且只侦听回环接口上的25端口
tcp        0      0 127.0.0.1:25                0.0.0.0:*             
    LISTEN      2591/sendmail: acce

2、cd /usr/local/src/

  2、cd /usr/local/src/

搭建sendmail服务器之前我们往往需要域名服务器的支持,需要在域名服务器中添加mx邮件交换记录。这里我的邮件服务器地址是192.168.0.2域名是mail.benet.com
而域名服务器的地址则是192.168.0.1 如下图所示

  完全安装Red Hat
Linux
9.0时,Sendmail就会自动内置,版本号为8.12.8-4。如果你不确定Linux是否已经安装有sendmail,可以输入以下命令查看:

[root@server2 ~]# cp /etc/mail/sendmail.mc
/etc/mail/sendmail.mc.orig  //备份下模板和主配置文件,这步很关键
[root@server2 ~]# cp /etc/mail/sendmail.cf
/etc/mail/sendmail.cf.orig
[root@server2 ~]# grep ‘127.0.0.1’ /etc/mail/sendmail.mc 
dnl # 127.0.0.1 and not on any other network devices. Remove the
loopback
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl 
//注释掉本行,dnl代表注释,也可将127.0.0.1改成0.0.0.0
[root@server2 ~]# m4 /etc/mail/sendmail.mc >
/etc/mail/sendmail.cf  //使用m4宏生成半二进制的配置文件
[root@server2 ~]# cat /etc/mail/local-host-names
# local-host-names – include all aliases for your machine here.
server2.yang.com
[root@server2 ~]# service sendmail restart          //重启服务
关闭 sm-client:                                          [确定]
关闭 sendmail:                                            [确定]
启动 sendmail:                                            [确定]
启动 sm-client:                                          [确定]
[root@server2 ~]# netstat -ntpl |grep :25
tcp        0      0 0.0.0.0:25                  0.0.0.0:*             
    LISTEN    2673/sendmail: acce

3、把文件下载到:/usr/local/src中

  3、把文件下载到:/usr/local/src中

图片 1

  [root@ahpeng root] rpm–qa grep sendmail

[root@server2 ~]# useradd -s /sbin/nologin test1 
//添加两个测试用户
[root@server2 ~]# useradd -s /sbin/nologin test2
[root@server2 ~]# echo  ‘123’|passwd –stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.
[root@server2 ~]# echo  ‘123’|passwd –stdin test2
Changing password for user test2.
passwd: all authentication tokens updated successfully.

4、tar zxvf sendmail-8.12.2.tar.gz

  4、tar zxvf sendmail-8.12.2.tar.gz

同时我们需要在邮件服务器上指明dns服务器的地址。

  如果确定没有安装,请在图形界面下依次选择单击“主菜单-系统设置-添加删除应用程序”,然后在打开的“软件包管理”窗口里选中“邮件服务器”选项,点“更新”后按照提示安装即可。

C:\>telnet 192.168.122.20 25 
//使用telnet命令测试,sendmial默认配置helo和mail
from可以进行欺骗,可在配置文件中调整
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Fri, 9 Apr 2010
12:51:55
+0800
helo www.6688.cc
250 localhost.localdomain Hello [192.168.122.50], pleased to meet
you
mail from:admin@6688.cc
250 2.1.0 admin@6688.cc… Sender ok
rcpt to:test1@server2.yang.com 
250 2.1.5 test1@server2.yang.com… Recipient ok
data
354 Enter mail, end with “.” on a line by itself
just one test!
.
250 2.0.0 o394ptpb002905 Message accepted for delivery
quit
[root@server2 ~]# mailq  //查看邮件队列,用于MTA-MTA之间
/var/spool/mqueue is empty
Total requests: 0
[root@server2 ~]# mailq -Ac      //查看邮件队列,用于MTA-MUA之间
/var/spool/clientmqueue is empty
Total requests: 0
[root@server2 ~]# grep ‘o394ptpb002905’ /var/log/maillog 
//查看邮件日志信息
Apr  9 12:53:01 server2 sendmail[2905]: o394ptpb002905:
from=admin@6688.cc, size=15, class=0, nrcpts=1,
msgid=<201004090452.o394ptpb002905@localhost.localdomain>,
proto=SMTP, daemon=MTA, relay=[192.168.122.50]Apr  9 12:53:02 server2
sendmail[2912]: o394ptpb002905: to=test1@server2.yang.com,
delay=00:00:16, xdelay=00:00:00,
mailer=local, pri=30333, dsn=2.0.0,
stat=Sent(使用outlook收信,需要配置dovecot)

5、cd /usr/local/src/sendmail-8.12.2

  5、cd /usr/local/src/sendmail-8.12.2

图片 2

  另一种办法是:直接插入Linux第1张安装光盘,选择/RedHat/RPMS目录下的sendmail-
8.12.8-4.i386.rpm安装包,之后运行[root@ahpeng RPMS] # rpm -ivh
sendmail-8.12.8-4.i386.rpm即可开始安装,再用此方法在第3张安装光盘的同目录下依次安装sendmail-
cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm。

图片 3

6、chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

  6、chmod go-w / /etc /etc/mail /usr /var /var/spool
/var/spool/mqueue

图片 4

图片 5

2:配置允许192.168.122.0/24段的ip进行RELAY操作,同时限制test2@server2.yang.com发送邮件

7、chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

  7、chown root / /etc /etc/mail /usr /var /var/spool
/var/spool/mqueue

图片 6

8、cd /usr/local/src/sendmail-8.12.2/sendmail

  8、cd /usr/local/src/sendmail-8.12.2/sendmail

图片 7

9、sh Build

  9、sh Build

图片 8

10、cd /usr/local/src/sendmail-8.12.2/cf/cf

  10、cd /usr/local/src/sendmail-8.12.2/cf/cf

11、建立文件sendmail.mc内容如下,你可根据需要修改相应部分。

  11、建立文件sendmail.mc内容如下,你可根据需要修改相应部分。

divert(-1)

  divert(-1)

dnl This is the macro config file used to generate the /etc/sendmail.cf

  dnl This is the macro config file used to generate the
/etc/sendmail.cf

dnl file. If you modify thei file you will have to regenerate the

  dnl file. If you modify thei file you will have to regenerate the

dnl /etc/sendmail.cf by running this macro config through the m4

  dnl /etc/sendmail.cf by running this macro config through the m4

dnl preprocessor:

  dnl preprocessor:

dnl m4 /etc/sendmail.mc > /etc/sendmail.cf

  dnl m4 /etc/sendmail.mc > /etc/sendmail.cf

dnl You will need to have the Sendmail-cf pacage installed for this to
work.

  dnl You will need to have the Sendmail-cf pacage installed for this
to work.

include(`/usr/local/src/sendmail-8.12.2/cf’)

  include(`/usr/local/src/sendmail-8.12.2/cf’)

define(`confDEF_USER_ID’,`8:12′)

  define(`confDEF_USER_ID’,`8:12′)

OSTYPE(`linux’)

  OSTYPE(`linux’)

undefine(`UUCP_RELAY’)

  undefine(`UUCP_RELAY’)

undefine(`BITNET_RELAY’)

  undefine(`BITNET_RELAY’)

define(`confTO_CONNECT’, `1m’)

  define(`confTO_CONNECT’, `1m’)

define(`confTRY_NULL_MX_LIST’,true)

  define(`confTRY_NULL_MX_LIST’,true)

define(`confDONT_PROBE_INTERFACES’,true)

  define(`confDONT_PROBE_INTERFACES’,true)

define(`PROCMAIL_MAILER_PATH’,`/usr/bin/procmail’)

  define(`PROCMAIL_MAILER_PATH’,`/usr/bin/procmail’)

define(`SMART_HOST’,compaq.rd.xxx.com)

  define(`SMART_HOST’,compaq.rd.xxx.com)

<—这条用于(非HUB)缺省使用HUB发送邮件

  <—这条用于(非HUB)缺省使用HUB发送邮件

MASQUERADE_AS(`rd.xxx.com’)

  MASQUERADE_AS(`rd.xxx.com’)

<————————-

  <————————-

FEATURE(`masquerade_entire_domain’)

  FEATURE(`masquerade_entire_domain’)

<—这三条用于邮件地址伪装

  <—这三条用于邮件地址伪装

FEATURE(`masquerade_envelope’)

  FEATURE(`masquerade_envelope’)

<————————-

  <————————-

FEATURE(`smrsh’,`/usr/sbin/smrsh’)

  FEATURE(`smrsh’,`/usr/sbin/smrsh’)

FEATURE(`mailertable’,`hash -o /etc/mail/mailertable’)

  FEATURE(`mailertable’,`hash -o /etc/mail/mailertable’)

FEATURE(`virtusertable’,`hash -o /etc/mail/virtusertable’)

  FEATURE(`virtusertable’,`hash -o /etc/mail/virtusertable’)

FEATURE(redirect)

  FEATURE(redirect)

FEATURE(always_add_domain)

  FEATURE(always_add_domain)

FEATURE(use_cw_file)

  FEATURE(use_cw_file)

FEATURE(local_procmail)

  FEATURE(local_procmail)

FEATURE(`access_db’)

  FEATURE(`access_db’)

FEATURE(`blacklist_recipients’)

  FEATURE(`blacklist_recipients’)

FEATURE(`accept_unresolvable_domains’)

  FEATURE(`accept_unresolvable_domains’)

MAILER(smtp)

  MAILER(smtp)

MAILER(procmail)

  MAILER(procmail)

dnl We strongly recommend to comment this one out if you want to protect

  dnl We strongly recommend to comment this one out if you want to
protect

dnl yourself from spam. However, the laptop and users on computers that
do

  dnl yourself from spam. However, the laptop and users on computers
that do

dnl not hav 24×7 DNS do need this.

  dnl not hav 24×7 DNS do need this.

dnl FEATURE(`relay_based_on_MX’)

  dnl FEATURE(`relay_based_on_MX’)

现在是最流行的邮件服务器,那我们来看看如何在 Linux
下安装Sendmail服务器。
1、从www.sendmail.org下载最新的版本(这个snedmail倒是有必…

  12、sh Build install-cf

  13、groupadd smmsp

  14、useradd smmsp

  15、cd cd /usr/local/src/sendmail-8.12.2/sendmail

  16、sh Build install

  17、cd /usr/local/src/sendmail-8.12.2/makemap

  18、sh Build clean

  19、sh Build all

  20、sh Build install

  21、cd /usr/local/src/sendmail-8.12.2/

  22、在本域DNS主数据库文件中增加MX纪录:

  rd.xxx.com. IN MX 0 compaq

  注意修改相应部分。那个0是有几个邮件集中器的时候用于标记先后顺序的。当有好几个MX的时候,建议顺序写为10、20、30…

  23、在/etc/mail目录下创建access文件,内容类似如下:

  127.0.0.1 RELAY

  21.9.22 RELAY

  211.99.221.238 RELAY

  然后:makemap hash access.db < access

  24、创建文件/etc/mail/local-host-names,其内容为本机的拥有的域名信息。

  rd.xxx.com

  compaq.rd.xxx.com

  25、创建文件/etc/mail/aliases,内容类似:

  MAILER-DAEMON: postmaster

  postmaster: root

  bin: root

  daemon: root

  nobody: root

  运行newaliases创建数据库。

  创建别名文件的意义之一在于当邮件发往域中其他邮件服务器的用户而不是mail
HUB用户的时候用。

  比如增加一条:

  atan: atan@fbsd

  则导致邮件发往mail HUB的时候自动转发到atan@fbsd.rd.xxx.com

  26、启动sendmail: /usr/sbin/sendmail -bd -q30m

  排错:如果有问题导致启动不了,大部分问题和DNS配置有关,可以使用nslookup检查DNS是否正常。挨个检查/etc/mail中的文件内容也是排错的好办法。另外,修改配置,不建议直接编辑sendmail.cf文件,建议使用m4宏编译工具,因为有些带有安全漏洞或过时的宏在编译的时候会有提示,这样以免造成相关安全问题。

  通过上面文章,我们应该了解了在Linux下安装Sendmail服务器的方法,希望对你们有帮助!

图片 9

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图