Linux系统安全知识全方面专辑

我的评价:
本书讲述了linux安全的方方面面,并且以一问一答的方式介绍,思路清晰。文中提供了很
多有益的安全提示,是Linux系统维护人员的必备参考书。通过本书,你能了解到linux安
全的整体概念,从系统安全到应用安全,从单机安全到网络安全。但安全问题是一个不断变
化不断更新的过程而不是一个解决方案,所以本书只是提到当时为人所发现的安全问题的介
绍,新出现的安全问题可参考该书网站的更新和网上的安全警告。
第一章    linux安全问题概述
粘着位(Sticky bit)
如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所
有者,而且也没有读或写许可。粘着位出现执行许可的位置上,用t表示,设置了该位后,
其它用户就不以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置
才可使用。
# chmod 1770 xxx
文件属性
chattr命令修改
lsattr命令列出文件属性
文件属性定义
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是相应的限制值。
信号
# kill -TERM XXXX       终止信号
# kill -HUP HTTPD       重读配置信号
特权端口
root用户是可绑定端口小于1024的惟一用户。可以信任来自于远程机器端口小于1024的连
接。
第二章 预防措施与从入侵中恢复
系统安全
简单的FIND命令
# find / \(-perm -02000 -o -perm -4000 \) -ls   可以找出系统中所有的setuserid and setgroupid
程序。
在最严格的情况下,可以去掉除/bin/su外所有已安装程序的setXid位。
系统安全扫描工具   cops   tiger   Nabou
扫描检测器
黑客入侵系统前所做的第一件事就是从网络上扫描系统,扫描检测器能及时获知,是一个良
好的入侵检测系统(IDS)
Klaxon   Courtney   Scanlogd    PortSentry
加固系统
Bastille项目创建了一组模块来加固新近发布的RedHat。在安装完系统后可运行该补丁,
在什么时候都可运行,不必要一定是刚安装完系统。
加固的方法是:1、下载源代码到/root目录并解包。以root身份动行InteractiveBastille.pl脚
本。在回答完问题后,程序将做出相应改动。配置完成后,该工具把其保存在BackEnd.pl
中,如果希望加固同样配置的服务器,将它复制到新服务器并运行AutomatedBastille.pl即可。
Openwall Linux补丁
它是一个内核补丁。要这些补丁起作用,用户必须重新编译和安装新的打上补丁的内核。在
某些情况下,这些内核补丁和标准linux不完全兼容,因此在决定使用前必须确信理解其含
义。
LIDS
它包括内核级的端口扫描检测程序和安全警告程序。是内核补丁(现在适用于2.2.X和2.4.X,
但以后将不再支持2.2)和系统管理工具。其特性包括:
1、高级文件保护,甚至root也不能发现和处置受LIDS保护的文件。
2、进程保护,内核拒绝向受保护的进程发送信号(例如SIGKILL),进程也可以被完全隐
藏起来,在/proc下不会存在任何痕迹。
3、更好的访问控制,更有效地使用与特权相关的权能,包括禁止root更改这些权能。
4、内置式端口扫描检测,内置于内核的扫描程序能够检测到Nmap,SATAN等工具的绝大
部分扫描。
要安装LIDS,必须下载最新的linux内核正式版和LIDS源代码。使用LIDS给内核打上补丁,
然后重新编译内核。
日志文件分析
syslogd消信可标记为特定的功能和级别,在/etc/syslog.conf文件中可以根据这两个选项来设
置消信的去向。
syslogd功能                 描述
auth            安全性/验证消息(负面)
authpriv        安全性/验证消息
cron            cron and at
daemon            其它系统守护进程(sshd,xinetd,pppd等)
kern            内核消息
lpr            行打印系统
mail            邮件子系统(sendmail,postfix,qmail等)
news            Usenet新闻消息
syslog            内部syslog消息
user            一般用户级消息
uucp            UUCP子系统
local0-local7        自定义的级别
日志级别           描述
emerg            系统已不可用
alert            必须马上采取行动
crit            危急
err            错误
warning            警告
notice            普通但重要的情形
info            通知消息
debug            调试消息
syslog.conf每一行的配置格式为
facility.loglevel     logtarget,所有字段用tab隔开
例子:
daemon.notice    /var/log/daemon.log    把程序发送过来的功能为daemon,优先级为notice
或更高级别的所有日志消息记录到/var/log/daemon.log文件中,可以使用*号表示匹配所有功
能或日志级别。
目标                   描述
/path/to/filename    将消息附加到所指定文件的文件尾,这是最常用的情形。
@loghost        写到loghost机器上的syslog服务器。可方便把日志发来多台机器上,
|/path/to/named_pipe    写到指定的命名管道(便于用外部程序过滤消息)。
user1,user2        写到所列用户。
*            写到所有登录用户。
/dev/console        写到已命名的终端。
日志文件许可
应设置日志只为root所有和写入,同时能够被log组(或你所希望的组)读取,而其他用户
没有任何权限。一个用户在输入用户名的地方使用了口令,在登录失败时,将会把用户名(在
此例中为口令,因为用户失误)记录到日志中。然后创建一个属于log组的虚构用户,并让
所有日志检查程序以该用户而不是root运行。日志检查程序不应当以root用户运行。
可以通过日志分析软件开监控日志,如logcheck,swatch和logsurfer。但最好的工具还是管理员自已写的脚本。

相关推荐