sendmail接收,转发权限控制文件access配置详解
2012-06-26 10:17
483 查看
例文环境centos 5
当sendmail从任意MTA收到一封邮件时,首先检查收信地址. 如果”@”后面的部分和本机文件”/etc/mail/local-host-names”里的一条匹配则尝试将其作为本地邮件保存, 无匹配项时则尝试将该邮件转发给外部MTA.
※MTA: 邮件转发代理,邮件服务的一部分.
如上sendmail的邮件接收,转发机制是作为MTA最重要的部分.这里的设置如果有问题,邮件服务器很可能成为垃圾邮件的中转站.所以有必要熟悉理解这部分的设置方法.
MTA 通常通过邮件的送信人地址或者域名来判断是否接收或转送.
Sendmail 通过参照二进制数据库文件”/etc/mail/access.db”来进行各种控制.
“/etc/mail/access.db”可以通过”makemap”命令将文本文件“/etc/mail/access”转换生成. 因此实际修改时,先改文本文件“/etc/mail/access”,然后转换.
生成二进制文件命令:
[root@sunnybox mail]#makemap – v hash /etc/mail/access.db < /etc/mail/access
基本格式
标签:设置对象IP地址或域名空格或Tab 制约关键字.
[标签]:[参数] [制约关键字]
redhat linux版本可能默认情况下没有标签项。
不加标签的默认为Connect.,另外标签还可以指定为From,To
Connect: 检查对象域名或IP
From: 检查对象 送信人地址
(这里注意送信人地址和收信人地址是可以伪装的,所以送信人地址和送信服务器地址不一定一致.所以From 的设置有时是必要的)
From 设置例:
From:spam@obenrispam.com REJECT (拒绝某人发来的邮件)
From:obenrispam.com REJECT (拒绝从obenrispam.com发来的所以邮件)
From:spam@ REJECT(拒绝所以名字叫spam的邮件,无论来自哪个域)
To: 检查对象 收信人地址(设置理由,方法同上)
制约关键字
OK RELAY REJECT 550 DISCARD
OK : 只接收发给自己/本地的邮件. 其他的全部拒绝并向送信服务器返回错误消息.
未指定的默认值为OK.
RELAY: 允许接收允许转发.
REJECT:拒绝接收,转发. 向送信服务器返回错误消息.
500: 与reject基本相同,拒绝接收,转发,并向送信服务器返回错误消息和原邮件.
DISCARD:丢弃接收到的邮件,并且不向送信邮件服务器返回任何消息.
sendmail 使用下列配置文件:
29.3.1.
访问数据库定义了什么主机或者 IP 地址可以访问本地邮件服务器和它们是哪种类型的访问。 主机可能会列出
例 29.1. 配置 sendmail 的访问许可数据库cyberspammer.com 550 We do not accept mail from spammers
FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAY
在上面的例子中我们有 5 条记录。 与左边列表匹配的发件人受到右边列表动作的影响。 前边的两个例子给出了 sendmail 的出错处理程序检测到的错误代码。 当一个邮件与左边列表相匹配时,这个信息会被打印到远程主机上。 下一条记录拒绝来自 Internet 上的一个特别主机的邮件
当这个文件被升级的时候,您必须在
29.3.2.
别名数据库包含一个扩展到用户,程序或者其它别名的虚拟邮箱列表。 下面是一些在
例 29.2. 邮件别名root: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"
这个文件的格式很简单; 冒号左边的邮箱名, 会被展开成右边的形式。 第一个例子简单地将
更新此文件时, 您需要在
29.3.3.
这是一个 sendmail(8) 被接受为一个本地主机名的主机名列表。 可以放入任何 sendmail 将从那里收发邮件的域名或主机。例如,如果这个邮件服务器从域
example.com
mail.example.com
当这个文件被升级,sendmail(8) 必须重新启动,以便更新设置。
29.3.4.
sendmail的主配置文件
sendmail 主配置文件可以用 m4(1) 宏定义 sendmail 的特性和行为。它的细节请看
当这个文件被修改时, sendmail 必须重新启动以便对新修改生效。
29.3.5.
例 29.3. 虚拟域邮件映射的例子root@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joe
在上面这个例子中, 我们映射了一个域
当sendmail从任意MTA收到一封邮件时,首先检查收信地址. 如果”@”后面的部分和本机文件”/etc/mail/local-host-names”里的一条匹配则尝试将其作为本地邮件保存, 无匹配项时则尝试将该邮件转发给外部MTA.
※MTA: 邮件转发代理,邮件服务的一部分.
如上sendmail的邮件接收,转发机制是作为MTA最重要的部分.这里的设置如果有问题,邮件服务器很可能成为垃圾邮件的中转站.所以有必要熟悉理解这部分的设置方法.
MTA 通常通过邮件的送信人地址或者域名来判断是否接收或转送.
Sendmail 通过参照二进制数据库文件”/etc/mail/access.db”来进行各种控制.
“/etc/mail/access.db”可以通过”makemap”命令将文本文件“/etc/mail/access”转换生成. 因此实际修改时,先改文本文件“/etc/mail/access”,然后转换.
生成二进制文件命令:
[root@sunnybox mail]#makemap – v hash /etc/mail/access.db < /etc/mail/access
基本格式
标签:设置对象IP地址或域名空格或Tab 制约关键字.
[标签]:[参数] [制约关键字]
redhat linux版本可能默认情况下没有标签项。
不加标签的默认为Connect.,另外标签还可以指定为From,To
Connect: 检查对象域名或IP
From: 检查对象 送信人地址
(这里注意送信人地址和收信人地址是可以伪装的,所以送信人地址和送信服务器地址不一定一致.所以From 的设置有时是必要的)
From 设置例:
From:spam@obenrispam.com REJECT (拒绝某人发来的邮件)
From:obenrispam.com REJECT (拒绝从obenrispam.com发来的所以邮件)
From:spam@ REJECT(拒绝所以名字叫spam的邮件,无论来自哪个域)
To: 检查对象 收信人地址(设置理由,方法同上)
制约关键字
OK RELAY REJECT 550 DISCARD
OK : 只接收发给自己/本地的邮件. 其他的全部拒绝并向送信服务器返回错误消息.
未指定的默认值为OK.
RELAY: 允许接收允许转发.
REJECT:拒绝接收,转发. 向送信服务器返回错误消息.
500: 与reject基本相同,拒绝接收,转发,并向送信服务器返回错误消息和原邮件.
DISCARD:丢弃接收到的邮件,并且不向送信邮件服务器返回任何消息.
sendmail 使用下列配置文件:
文件名 | 功能 |
---|---|
/etc/mail/access | sendmail 访问数据库文件 |
/etc/mail/aliases | 邮箱别名 |
/etc/mail/local-host-names | sendmail 接收邮件主机列表 |
/etc/mail/mailer.conf | 邮寄配置程序 |
/etc/mail/mailertable | 邮件分发列表 |
/etc/mail/sendmail.cf | sendmail的主配置文件 |
/etc/mail/virtusertable | 虚拟用户和域列表 |
29.3.1. /etc/mail/access
访问数据库定义了什么主机或者 IP 地址可以访问本地邮件服务器和它们是哪种类型的访问。 主机可能会列出 OK、
REJECT、
RELAY或者简单的通过 sendmail 的出错处理程序检测一个给定的邮件错误。 主机默认列出
OK,允许传送邮件到主机, 只要邮件的最后目的地是本地主机。列出
REJECT将拒绝所有的邮件连接。如果带有
RELAY选项的主机将被允许通过这个邮件服务器发送邮件到任何地方。
例 29.1. 配置 sendmail 的访问许可数据库cyberspammer.com 550 We do not accept mail from spammers
FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAY
在上面的例子中我们有 5 条记录。 与左边列表匹配的发件人受到右边列表动作的影响。 前边的两个例子给出了 sendmail 的出错处理程序检测到的错误代码。 当一个邮件与左边列表相匹配时,这个信息会被打印到远程主机上。 下一条记录拒绝来自 Internet 上的一个特别主机的邮件
another.source.of.spam。接下来的记录允许来自
okay.cyberspammer.com的邮件连接, 这条记录比上面那行
cyberspammer.com更准确。更多的准确匹配使不准确的匹配无效。最后一行允许电子邮件从主机和
128.32开头的 IP 地址转发。 这些主机将被允许通过这台邮件服务器前往其它邮件服务器发送邮件。
当这个文件被升级的时候,您必须在
/etc/mail/运行
make升级数据库。
29.3.2. /etc/mail/aliases
别名数据库包含一个扩展到用户,程序或者其它别名的虚拟邮箱列表。 下面是一些在 /etc/mail/aliases中使用的例子:
例 29.2. 邮件别名root: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"
这个文件的格式很简单; 冒号左边的邮箱名, 会被展开成右边的形式。 第一个例子简单地将
root邮箱扩展为
localuser, 之后将继续在别名数据库中进行查找。 如果没有找到匹配的记录, 则邮件会被发给本地用户
localuser。 第二个例子展示了一个邮件列表。 发送到
ftp-bugs的邮件会被展开成
joe,
eric和
paul这三个邮箱。 注意也可以通过
<user@example.com>这样的形式来指定远程的邮箱。 接下来的例子展示了如何把邮件写入到文件中, 这个例子中是
/dev/null。 最后一个例子展示了如何将邮件发给一个程序, 具体而言是通过 UNIX 管道发到
/usr/local/bin/procmail的标准输入。
更新此文件时, 您需要在
/etc/mail/中使用
make来更新数据库。
29.3.3. /etc/mail/local-host-names
这是一个 sendmail(8) 被接受为一个本地主机名的主机名列表。 可以放入任何 sendmail 将从那里收发邮件的域名或主机。例如,如果这个邮件服务器从域 example.com和主机
mail.example.com接收邮件,它的
local-host-names文件,可以看起来象如下这样:
example.com
mail.example.com
当这个文件被升级,sendmail(8) 必须重新启动,以便更新设置。
29.3.4. /etc/mail/sendmail.cf
sendmail的主配置文件 sendmail.cf控制着 sendmail 的所有行为, 包括从重写邮件地址到打印拒绝远程邮件服务器信息等所有事。 当然,作为一个不同的角色,这个配置文件是相当复杂的, 它的细节部分已经超出了本节的范围。幸运的是, 这个文件对于标准的邮件服务器来说很少需要被改动。
sendmail 主配置文件可以用 m4(1) 宏定义 sendmail 的特性和行为。它的细节请看
/usr/src/contrib/sendmail/cf/README。
当这个文件被修改时, sendmail 必须重新启动以便对新修改生效。
29.3.5. /etc/mail/virtusertable
virtusertable映射虚拟域名和邮箱到真实的邮箱。 这些邮箱可以是本地的、远程的、
/etc/mail/aliases中定义的别名或一个文件。
例 29.3. 虚拟域邮件映射的例子root@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joe
在上面这个例子中, 我们映射了一个域
example.com。 这个文件是按照从上到下, 首个匹配的方式来处理的。 第一项将
<root@example.com>映射到本地邮箱
root。 下一项则将
<postmaster@example.com>映射到位于
noc.example.net的
postmaster。 最后, 如果没有来自
example.com的匹配, 则将使用最后一条映射, 它表示将所有的其它邮件发给
example.com域的某个人。 这样, 将映射到本地信箱
joe。
相关文章推荐
- Thinkphp中RBAC的权限控制之配置文件(RBAC详解之连载2)
- Thinkphp中RBAC的权限控制之配置文件(RBAC详解之连载3)
- MYSQL数据库配置文件与权限详解
- Git对库文件权限的管理与filemode配置详解
- Nginx列出目录和文件并用密码控制访问权限配置方法
- .NET 控制Windows文件和目录访问权限研究(FileSystemAccessRule)
- shiro实现url级别的权限控制(用户登录)配置文件分析
- linux创建用户 限制权限-用户(User)和用户组(Group)配置文件详解
- 最新Subversion(SVN)权限控制配置详解
- ThinkPHP中RBAC的权限控制之配置文件2
- wamp 修改配置文件控制访问权限
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
- linux创建用户 限制权限-用户(User)和用户组(Group)配置文件详解
- sendmail中關於只認access控制文件的問題
- 控制文件和文件夹的访问权限-FileIOPermission,CodeAccessPermission 类
- apache 配置文件目录访问权限控制
- EBS配置文件权限控制
- Apache常用目录详解、配置文件详解及优化、配置文件权限详解
- **HTTP配置文件详解(访问控制、虚拟主机、DEFLATE、HTTPS配置)**
- samba 配置文件详解 及 权限设置