管理不善或粗心管理的aliases文件很容易被用来获取特权状态。例如,许多供应商在系统中默认带有decode别名在/etc/mail/aliases文件中。其目的是为用户提供一种使用邮件传输二进制文件的简便方法。在发送站点,用户使用 ASCII 将二进制文件转换为uuencode,然后将结果邮件发送到decode接收站点的别名。该别名通过/usr/bin/uuencode程序管道传输邮件消息,该程序将 ASCII 转换回原始二进制文件。
删除decode别名行,从你的/etc/mail/aliases文件中。同样,每个执行你没有亲自放置并且完全检查过的程序的别名都应该被质疑,并可能被删除。编辑aliases文件 vi/etc/mail/aliases并删除以下行
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
games: root
ingres: root
nobody: root
system: root
toor: root
uucp: root
# Well-known aliases.
manager: root
dumper: root
operator: root
# trap decode to catch security attacks
decode: root
# Person who should get root's mail
#root: marc
|
为了使更改生效,你需要运行
[root@deep] /# /usr/bin/newaliases
|
你需要防止你的 Sendmail 被未授权用户滥用,Sendmail 现在包含了强大的反垃圾邮件功能,这可以帮助防止你的邮件服务器被未授权用户滥用。为此,请更改配置文件以阻止垃圾邮件发送者。编辑sendmail.cf文件,vi/etc/mail/sendmail.cf并更改行
O PrivacyOptions=authwarnings
|
改为如下内容
O PrivacyOptions=authwarnings,goaway
|
设置
goaway选项会导致 Sendmail 禁止所有
SMTP EXPN 命令,它还会导致拒绝所有
SMTP VERB 命令,并禁止所有
SMTP VRFY 命令。这些更改阻止垃圾邮件发送者在 Sendmail 中使用
EXPN 和
VRFY 命令。
你必须限制谁可以检查队列内容,通常,任何人都可以使用 mailq 命令检查邮件队列的内容。要限制谁可以检查队列内容,你必须指定restrictmailq选项在/etc/mail/sendmail.cf文件中。使用此选项,Sendmail 仅允许与队列目录的组所有权属于同一组的用户root检查内容。这允许队列目录以模式完全保护0700, 同时选定的用户仍然能够看到内容。
编辑sendmail.cf文件,vi/etc/mail/sendmail.cf并更改行
O PrivacyOptions=authwarnings,goaway
|
改为如下内容
O PrivacyOptions=authwarnings,goaway,restrictmailq
|
现在我们更改队列目录的模式以完全保护
[root@deep] /# chmod 0700 /var/spool/mqueue
|
现在手动重启 sendmail 进程以使更改生效
[root@deep] /# /etc/rc.d/init.d/sendmail restart
|
Shutting down sendmail: [ OK ]
Starting sendmail: [ OK ]
|
: 我们已经添加了goaway选项到行PrivacyOptions=在sendmail.cf文件中。现在我们可以直接添加restrictmailq选项到此行。
任何尝试检查邮件队列内容的非特权用户都将收到此消息
[user@deep /]$ /usr/bin/mailq
|
You are not permitted to see the queue
|