文件属性定义
A 不要更新atime文件,当在笔记本电脑或NFS上限制磁盘I/0流量时,很有用,除2.0
系列外,这一属性不被其它内核支持。
a 文件仅能以追加方式打开,只有root才能设置这个属性。
c 文件保存在磁盘时,内核将自动压缩该文件。
d 文件标记,使其不能被转储。
i 文件不能被修改,删除或重命名,不能创建任何指向它的链接,并不能写入任何数据。
s 删除文件时,相应的磁盘存储块清零。
S 修改文件时,对其写入进行同步。
u 删除文件时,保存其内容。
Ulimit命令
设置限制 可以把命令加到profile文件里,也可以在/etc/security/limits.conf文件中定义
限制。
命令参数
-a 显示所有限制
-c core文件大小的上限
-d 进程数据段大小的上限
-f shell所能创建的文件大小的上限
-m 驻留内存大小的上限
-s 堆栈大小的上限
-t 每秒可占用的CPU时间上限
-p 管道大小
-n 打开文件数的上限
-u 进程数的上限
-v 虚拟内存的上限
除可用Ulimit命令设置外,也可以在/etc/security/limits.conf文件中定义限制。
domino type item value
domino是以符号@开头的用户名或组名,*表示所有用户,type设置为hard or soft。item指
定想限制的资源。如cpu,core nproc or maxlogins
。value是相应的限制值。
第十一章 服务器安全问题
mail安全性
Mail User Agent(MUA)邮件用户代理,如Mutt,Pine,Elm。用户使用这些程序编辑和阅读邮件。
Mail Transfer Agent(MTA)邮件传送代理,如sendmail,qmail,postfix。主要功能是在多台机器
之间转发邮件。
Mail Delivery Agent(MDA)邮件分发代理,是用户介面和MTA之间的中介,它从MTA中取
回邮件并放置在本地收件箱,或者把发件箱中的邮件传给MTA。这方面的程序有mail.local
and Procmail。
安全问题绝大多数和MTA有关。
postfix在默认情况下总是拒绝邮件中继,服务器处理邮件所进出的网络必须在它第一次运行
前在main.cf中配置,涉及的相关变量有myhostname,mydomain,myorigin,mydestination and
mynetworks。对于许多系统来说,要建立一个可运行的postfix配置,只需要处理这些变量。
不幸的是,因为smtp服务器不知道实际邮件分发的所有细节,时期版本(早于1999年12
月27日)并不对中继请求响应smtp错误码,这样,中继检查程序如ORBS AND RBL会以
为该服务器运行于开发中继方式。将postfix升级到新版可避免这一问题。
启用第三方FTP
允许任意使用PORT命令会带来某些问题,以某种巧妙的方式使用PORT AND PASV,可以
使FTP客户端某个服务器上的数据直接发送到另一个FTP服务器上,数据无需流经控制这
一操作的机器。Xftp支持这一功能。
FTP反射攻击
如果黑客能够向服务器上载文件,那他就可以使用PORT AND RETR命令传送任何数据。
例如有一个可写的incoming目录
hacker$cat anonymous_mail.smtp
HELO FTPSERVER.EXAMPLE.COM
mail from :user@some_host.com
rcpt to:mailbomb_recipient@other_host.com
data
....
根据文件名限制对文件的访问,应当使用Files or FilesMatch指令。如果使用Files,则应当
使用“~”号来表示引号内的字符串为正则表达式。下面的例子给出了拒绝访问所有以.bak
结尾的文件的设置方法:
<Files ~ "/.bak$">
Order allow,deny
Deny from all
</Files>
使用FilesMatch时,字符串直接被认为是正则表达式。
安全配置服务器状态和信息显示
<Location /server-status/>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
</Location>
<Location /server-info/>
SetHandler server-info
Order deny,allow
Deny from all
Allow from .example.com
</Location>
应当只对可信主机才显示该信息,所以应当确保上述命令中包含Deny from all.并且在Allow
from中列出可信主机。但更好的做法是关闭它。
通配符说明:
ALL 匹配所有客户机。
LOCAL 匹配所有不包含点号的机器。
UNKNOWN 匹配任何名称或地址未知的客户机(必须小心使用)。
KNOWN 匹配任何名称或地址已知的客户机(必须小心使用,可能会因为名字服务器的
原因而临时无法获得主机名)。
PARANOID 匹配任何名称或地址不匹配的客户机。
因此,为抵御telnet攻击,可在/etc/host.deny中写规则all:all,以拒绝黑客的telnet连接。如
果允许某机器使用telnet连接,可将其添加到/etc/hosts.allow文件中:telnetd:xxx.example.com。