sendmail邮件服务权限的设定

运维 系统运维
我们的sendmail主机想要支持内部网域的所有的信件,或者是排除来自外部IP的网段地址的邮件,或者是想要阻止商业广告的发送,我们就应当学会使用sendmail邮件使用权限的设置。

  设定sendmail 邮件服务器使用权限:

   /etc/mail/access

  在你启动了 Sendmail 以及设定好主机名称 ( local-host-names )之后,那你就可以利用『在你的主机上面利用你的主机来寄信』了!为什么要加上『在你的主机上面』呢?还记得我们在前面有提过,为了杜绝广告与垃圾信件,所以预设的情况中, Sendmail 是关闭 Open Relay 的对吧!但是为了主机使用者的方便,所以我们预设是有启动 local 这个 Mailer ,也就是说:

  1. 只有使用者是在主机上面发信的,例如使用 SSH 登入主机后,以 mail 这个指令来发信;

  2. 又或者使用者直接在主机上面使用 X-Window System 里面的邮件代理人,亦即是 Netscape 或者是 Kmail 等软件来发信

  的时候,我们的 Sendmail 才会帮使用者『寄信』喔!至于其它的计算机来源的『寄信』邮件,Sendmail 一概将他退信回去!那么如果我想要在其它的计算机上面使用我这部 Mail Server 来寄信呢?这个时候就要编辑『/etc/mail/access』这个信任网域设定的档案啦!假设一个例子好了:

  我的 Sendmail 主机想要支持我内部网域的所有计算机来寄信,而我内部网域的计算机 IP 网段为 192.168.0.0/24 这一段;

  还有,我另外有一个公共 IP ( Public IP )为 140.116.44.125 ,也想要让他可以寄信;

  此外,我发现 192.168.1.100 计算机使用者都会乱寄垃圾给我的邮件主机,所以我想要挡掉他;

  那个 h8h.com 也有问题,我也要挡掉这个网域 (domain) 的来源;

  更发现有个使用者叫做 test@testing.domain.name 也是色情广告信业者!那么我可以怎样设定 Sendmail 的存取权限呢?

 

sendmail

 

 

  在 /etc/mail/access 当中,只要有加上 # 就是批注内容,所以不会被读入数据库当中!其实真正的 Sendmail 可以读得到的数据库是 /etc/mail/access.db 这个档案,不过,我们必需先在 /etc/mail/access 编辑完毕后,再以 makemap 这支程序将他改写成为数据库!所以,不要忘记 makemap 那个步骤喔!由上面的档案我们就可以知道啦, access 的语法为

  规定的范围:规定可以在sendmail上面的动作

  IP/不完整IP/主机名称/E-mail RELAY/DISCARD/REJECT

  在『规定范围』与『规定可以在 sendmail 上面的动作』两项目之间最好以 按键来隔开会比较正确!『规定的范围』还可以设定『来源』与『目的』喔!例如:

  from:test@your-domain.com.tw REJECT

  to:blah@your-domain.com.tw REJECT

  当信件想要使用我们的邮件主机来进行寄信或者是 Relay 的动作时,首先会传送 mail header 到我们的 mail server 上面,这也就是一些邮件的基本数据(如认证信息、来源IP、目标的 MTA 等等),但并不包含邮件的内容(例如信件本体、附件夹带等等的内容)。也就是说,一封邮件基本上可以分为两大部分,分别是 Header 与 Body ,Header 仅记录邮件基本信息,Body 才是真正的信件内容。当邮件想要进入 MTA 时,会先发送 Header 给 MTA ,MTA 判断这个 Header 的信息是可接受的之后,才后继续接受来源主机的邮件 Body 内容!如果这些基本讯息传送过来的主机信息包括在 /etc/mail/access.db 里面所记录到的主机(或IP)范围时,就可以指定底下这些动作:

  RELAY:允许该来源主机所传送过来的邮件可以被接受,然后再进行 Relay 的动作。以上面的范例为例,则 192.168.0.0/24 来源的计算机所发送来我们 Mail Server 的邮件将会被接受喔!•REJECT:若来源主机的主机名称或 IP 在 REJECT 的情况下,则我们 Mail Server 将不会接受对方的邮件内容(就是 body 部分),『并且会回传一个错误或警告讯息给原发信端』喔!•DISCARD:与 REJECT 相似,亦即关闭规定范围内的计算机主机的 RELAY 功能,不过, Sendmail 会直接将该信件『丢弃』而不会『退回』!通常我们比较建议使用 DISCARD 啦!为什么呢?如果该 IP 来源传送的是广告信件,您又使用 REJECT 的话,那么两方面的邮件主机将会一再地进行 mail header 的传送,也是挺消耗频宽的!所以我们比较建议使用 DISCARD!再来,由于 access 不支持网域的写法,亦即

  192.168.0.0/24

  192.168.0.0/255.255.255.0

  这种类型的网域写法并不能被使用的!所以,只能以 192.168.0 这种写法来达成整个网域的设定了!也就是说, access 里面大概只能支持 A/B/C Class 的网域, subnet 大概就无法达成了!只能一个一个 IP 的 Keyin 啰!编辑完这个档案之后,就可以让你的其它主机使用 Sendmail 的 Relay 功能啰!还不赖吧!

 

【编辑推荐】

  1. Sendmail配置策略
  2. Linux 下sendmail的配置
  3. Thunderbird的安装方法
  4. Sendmail配置笔记之启动服务器
  5. sendmail的安装方法
  6. Postfix的配置
  7. Sendmail Server 的档案
责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-01-21 13:21:21

sendmail安全

2011-01-21 11:21:38

sendmail

2011-01-21 09:49:18

sendmail目录

2011-01-18 14:53:25

sendmail邮件

2011-01-21 10:10:44

sendmail

2011-02-21 16:33:53

2011-02-21 16:21:49

Sendmail

2011-01-21 16:27:43

NagiosSendmail

2011-01-21 10:58:57

sendmail流程

2011-01-21 10:46:47

sendmail流程

2011-02-21 11:35:29

sendmail命令

2009-09-03 13:39:49

RHEL4Sendmail邮件服务器

2011-01-21 11:32:07

sendmail

2010-07-26 13:16:11

telnet pop

2009-03-06 16:11:49

RHEL5SendmailDovecot

2011-03-01 15:11:26

DebianProFTPD

2011-03-01 15:11:26

DebianProFTPD

2011-01-21 12:12:54

sendmail

2011-01-21 13:41:09

Sendmail

2011-01-21 13:29:03

Sendmail
点赞
收藏

51CTO技术栈公众号