914020-红帽-RHCE课程-Linux系统深度安全加固
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux系统凭借其稳定且源代码公开的特性,在Internet上被用来做Web服务器与数据库服务器已经越来越多了,随之,Linux系统的安全性也被愈发重视,加固Linux系统对于很多人来说,也是迫在眉睫的事情了。那么,要较好的加固Linux系统,足以应付各种突发事件与黑客的攻击,我们需要从哪些方面入手
呢?
1.安装和升级
尽量选用最新的Linux发行版本,安装前拔掉网线,断开物理连接,安装时建议用custom自定义方式安装软件包,数量以少为好。一般来说服务器没有必要安装X-windows,在lilo/grub引导器中加人口令
限制,防止能够物理接触的恶意用户。
因为Linux安装光盘的rescue模式可以跳过这个限制,所以还要给BIOS加上密码或服务器机箱上锁。/var、/home、/usr和/root等目录使用独立的物理分区,防止垃圾数据和日志填满硬盘而导致D.o.S攻击。
对root账号要给予强壮的口令。
安装完毕立即用up2date或apt升级系统软件,有时升级内核也是必要的,因为内核出现问题同样会给攻击者提供机会。apt是Debian GNU Linux下的一个强大的包管理工具,也可用于其他版本的Linux.
2.账号
如果系统中的用户比较多,可以编辑/etc/login.defs,更改密码策略,删除系统中不必要的账户和组,如果不开匿名ftp,可以把ftp账号也删了。删除账号的命令如下:
[root@ayazero/]#userdel-r username
最安全的方式是本地维护,可惜不太现实,但还是需要限制root的远程访问,管理员可以用普通账户远程登录,然后su到root,我们可以把使用su的用户加到wheel组来提高安全性。在/etc/pam.d/su文
件的头部加入下面两行代码:
编辑/etc/securetty,注释掉所有允许root远程登录的控制台,然后禁止使用所有的控制台程序,其
命令如下:
登录采用加密的ssn,如果管理员只从固定的终端登陆,还应限制合法ssn客户端的范围,
防止嗅探及中间人攻击。同时,将命令历史纪录归为零,尽可能的隐藏你做过的事情,其命令为:
3.服务
采用最少服务原则,凡是不需要的服务一律注释掉。在/etc/inetd.conf中不需要的服务前加"#",较高版本中已经没有inetd,而换成了Xinetd;取消开机自动运行服务,把/etc/rc.d/rc3.d下不需要运行的肥务的第一个字母"S"改成"K",其他不变.
如果你希望简单一点,可以使用/etc/host.allow和/etc/host.deny这两个文件,但是推荐使用iptables防火墙,所以不在此详述.
4.文件系统权限
找出系统中所有含s"位的程序,把不必要的"s"位去掉,或者把根本不用的直接删除,这样可以防止用户
滥用及提升权限的可能性,其命令如下:
把重要文件加上不可改变属性:
具体视需要而定,有些exploit溢出后会向inetd.conf写一条语句绑定shell在一个端口监听,此时这条命令就起作用,浅薄的入侵者会以为溢出不成功.
找出系统中没有属主的文件:
找出任何都有写权限的文件和目录:
防止入侵者向其中写入木马语句(诸如一个shell的拷贝)或继承属主权限而非法访问;找出并加固那
些历来被入侵者利用的文件.比如.rhosts.
ftp的上传目录不能给与执行权限,如提供可运行CGI的虚拟主机服务,应该做额外安全配置.编
etc/security/limits.conf,加入或改变如下行:
5.Banner伪装
入侵者通常通过操作系统、服务及应用程序版本来攻击,漏油列表和攻击程也是按此来分类,所以我
们有必要作点手脚来加大入侵的难度。
更改/etc/issue,因为reboot后重新加载,所以编辑/etc/rc.d/rc.local如下:
对于Apache的配置文件,找到ServerTokens和ServerSignature两个directive,修改其默认属性
如下,使用不回显版本号:
同时修改uname文件,搜索uname.c的源码,找到如下行:
将其修改为:
其他服务及程序的修改可以查看其配置文件或者源码,不要改太多,否则会给系统管理带来大麻烦。
6.IPtales防火墙规则
假设我们的服务器server1运行Apache和sshd(sshd可以不运行在标准端口,配置文件中能修改)。ethO网卡接Internet,ethi连接LAN,管理员在家中拨号登陆到server2(其私用网络TP为192.168.0.12),
再登陆server1。其命令如下:
为了防止IP spoofing的可能,还可以绑定server2的网卡地址:
[[The No.1 Picture.]]
不过好像也很少有人侵者能够做到这种地步,而且没什么利用的价值。
对攻击有所了解的人知道"端口重定向十反向管道"的美妙结合来穿越防火墙的例子吧?这种技巧已经运用太广,而危害很大。为了对抗这种难以防御的攻击,我们必须以牺牲一定的易用性为代价:
以上规则将阻止由内而外的TCP主动选接。
另外,用tftp或其他客户端反向攫取文件的攻击行为也很普遍,由于mfv以及诸如loki之类的工具
依赖UDP,所以现在要把它彻底抹煞悼:
注:在更新系统和调试网络时需要把这两条规则临时去掉。
因为入侵的本质就是通过文本或图形界面在标准或非标准端口得到目标操作系统的shell,所以这不仅能阻止反向管道本身,还能免疫很多人侵技巧,不过对一般的系统管理员而言,这太苛刻了!
下面是的tables的一些攻击对策。
此外,iptables还能配置出让一些扫描行为,比如nmap失效的规则,应当注意,防火墙不是万能的,当一个攻击者足够疯狂时,不要指望你的防火墙能抵挡得住DDoS.
7.完整性校验
tripwire是一个比较有名的工具,它能帮你判断出一些重要系统文件是否被修改过。现在的Linux发行版中一般部带有该工具的开源版本,在默认的校验对象配置文件中加入一些敏感文件就可以使用。