通过设置/etc/mail/Sendmail.mc的一些目录限度,DoS攻击的有效性就会大受限制。(可参考本刊8月刊《分类防范对Linux的DoS》)。另外可以考虑使用非root权限运行Sendmail服务,使用基于xinetd的SMTP服务即可。
缺省情况下Sendmail的守护进程作为set-UID用户进程来运行。如果Sendmail的守护进程被缓冲区溢出攻击的话,可能危及root账号的安全,而root用户的权限最高,攻击者可以摧毁整个服务器。因此需要降低Sendmail运行权限为普通用户。方法如下:
A.建立mail用户名称:
#useradd mail -s /bin/false
B.修改Sendmail使用的文件和目录的权限:
#chown root:mail /var/spool/mail;#chmod 1775 /var/spool/mail
#chown -R :mail /var/spool/mail/*;#chmod -R 660 /var/spool/mail/*
#chown mail:mail /usr/sbin/Sendmail;#chmod 6555 /usr/sbin/Sendmail
#chown mail /var/spool/mqueue/*;chown -R mail:mail /etc/mail
#chmod -R 664 /etc/mail
C.为Sendmail创建一个超级访问程序/etc/xine.d/Sendmail:
service smtp
{socket_type=stream
wait=no
user=mail
group=mail
server=/usr/sbin/Sendmail
server_args=-bs
log_on_success+=DURATION USERID
log_on_failure+=USERID
nice=10
disable=no}
D.修改/etc/crontab,使其拥有如下实体:
10 * * * * mail /usr/sbin/Sendmail -q
表示10分钟运行一次邮件服务器。
E.修改配置文件site.config.m4,添加以下内容:
define(`confTEMP_FILE_MODE’, `0660’)dnl
define(`ALIAS_FILE’, `/etc/mail/aliases’)
F.停止Sendmail守护进程。
G.使用“killall -USR1 xinetd”重新启动xinetd超级服务器。
H.使用命令:“telnet localhost 25”连接Sendmail。
I.查看Sendmail运行情况,使用命令:
#ps aux grep Sendmai
mail 25274 0.0 0.7 4048 1808 ? SN 04:11 0:00 Sendmail: server
root 25294 0.0 0.2 1520 592 ttyp0 S 04:15 0:00 grep Sendmail
上面显示Sendmail作为mail用户在运行。然后使用quit命令推出即可。(东方瑞通转自至顶网)


yrj8008037241 于 2011-08-25 17:55:06发表:
:0wmjh(1
hspiritl 于 2010-06-23 20:29:19发表:
顺路学习下