LINUX安全加固手册目录1概述 (3)2 安装 (3)3 用户帐号安全Password and account security (4)3.1 密码安全策略 (4)3.2 检查密码是否安全 (4)3.3 Password Shadowing (4)3.4 管理密码 (4)3.5 其它 (5)4 网络服务安全(Network Service Security) (5)4.1服务过滤Filtering (6)4.2 /etc/inetd.conf (7)4.3 R 服务 (7)4.4 Tcp_wrapper (7)4.5 /etc/hosts.equiv 文件 (8)4.6 /etc/services (8)4.7 /etc/aliases (8)4.8 NFS (9)4.9 Trivial ftp (tftp) (9)4.10 Sendmail (9)4.11 finger (10)4.12 UUCP (10)4.13 World Wide Web (WWW) – httpd (10)4.14 FTP安全问题 (11)5 系统设置安全(System Setting Security) (12)5.1限制控制台的使用 (12)5.2系统关闭Ping (12)5.3关闭或更改系统信息 (12)5.4 /etc/securetty文件 (13)5.5 /etc/host.conf文件 (13)5.6禁止IP源路径路由 (13)5.7资源限制 (13)5.8 LILO安全 (14)5.9 Control-Alt-Delete 键盘关机命令 (14)5.10日志系统安全 (15)5.11修正脚本文件在“/etc/rc.d/init.d”目录下的权限 (15)6 文件系统安全(File System Security) (15)6.1文件权限 (15)6.2控制mount上的文件系统 (16)6.3备份与恢复 (16)7 其它 (16)7.1使用防火墙 (16)7.2使用第三方安全工具 (16)1概述近几年来Internet变得更加不安全了。
网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。
只要有值得偷窃的东西就会有想办法窃取它的人。
Internet的今天比过去任何时候都更真实地体现出这一点,基于Linux的系统也不能摆脱这个“普遍规律”而独善其身。
因此,优秀的系统应当拥有完善的安全措施,应当足够坚固、能够抵抗来自Internet的侵袭,这正是Linux之所以流行并且成为Internet骨干力量的主要原因。
但是,如果你不适当地运用Linux的安全工具,它们反而会埋下隐患。
配置拙劣的安全系统会产生许多问题,本文将为你解释必须掌握的Linux安全知识。
本文讲述了如何通过基本的安全措施,使Linux系统变得可靠。
2 安装使系统处于单独(或隔离)的网络中。
以防止未受保护的系统连接到其它网络或互联网中受到可能的攻击安装完成后将下面软件卸载pump apmd lsapnptools redhat-logosmt-st kernel-pcmcia-cs Setserial redhat-releseeject linuxconf kudzu gdbc getty_ps raidtools pciutilsmailcap setconsole gnupg用下面的命令卸载这些软件:[root@deep]#rpm –e softwarename卸载它们之前最好停掉三个进程:[root@deep]# /etc/rc.d/init.d/apmd stop[root@deep]# /etc/rc.d/init.d/sendmail stop[root@deep]# /etc/rc.d/init.d/kudzu stop3 用户帐号安全Password and account security3.1 密码安全策略●口令至少为6位,并且包括特殊字符●口令不要太简单,不要以你或者有关人的相关信息构成的密码,比如生日、电话、姓名的拼音或者缩写、单位的拼音或者英文简称等等。
●口令必须有有效期●发现有人长时间猜测口令,需要更换口令3.2 检查密码是否安全可以使用以下几种工具检查自己的密码是否安全:●JOHN,crack等暴力猜测密码工具●在线穷举工具,包括Emailcrk、流光等3.3 Password Shadowing●使用shadow来隐藏密文(现在已经是默认配置)●定期检查shadow文件,如口令长度是否为空。
#awk -F: length($2)==0 {print $1} /etc/shadow●设置文件属性和属主3.4 管理密码●设置口令有效最长时限(编辑/etc/login.defs文件)●口令最短字符(如linux默认为5,可以通过编辑/etc/login.defs修改)●只允许特定用户使用su命令成为root。
编辑/etc/pam.d/su文件,在文件头部加上:auth sufficient /lib/security/pam_rootok.so debugauth required /lib/security/pam_wheel.so group=wheelRed hat 7.0中su文件已做了修改,直接去掉头两行的注释符就可以了[root@deep]# usermod -G10 admin来将用户加入wheel组3.5 其它●清除不必要的系统帐户[root@deep]# userdel adm[root@deep]# userdel lp[root@deep]# userdel sync[root@deep]# userdel shutdown[root@deep]# userdel halt[root@deep]# userdel news[root@deep]# userdel uucp[root@deep]# userdel operator[root@deep]# userdel games (如果不使用X Window,则删除)[root@deep]# userdel gopher[root@deep]# userdel ftp (如果不使用ftp服务则删除)●尽量不要在passwd文件中包含个人信息,防止被finger之类程序泄露。
●修改shadow,passwd,gshadow文件不可改变位[root@deep]# chattr +i /etc/passwd[root@deep]# chattr +i /etc/shadow[root@deep]# chattr +i /etc/group[root@deep]# chattr +i /etc/gshadow●不要使用.netrc文件,可以预先生成$HOME/.netrc。
设置为0000。
touch /.rhosts ;chmod 0 /.rhosts●使用ssh来代替telnetd,ftpd.pop等通用服务。
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据。
4 网络服务安全(Network Service Security)Linux系统对外提供强大、多样的服务,由于服务的多样性及其复杂性,在配置和管理这些服务时特别容易犯错误,另外,提供这些服务的软件本身也存在各种漏洞,所以,在决定系统对外开放服务时,必须牢记两个基本原则:●只对外开放所需要的服务,关闭所有不需要的服务。
对外提供的服务越少,所面临的外部威胁越小。
●将所需的不同服务分布在不同的主机上,这样不仅提高系统的性能,同时便于配置和管理,减小系统的安全风险。
在上述两个基本原则下,还要进一步检查系统服务的功能和安全漏洞。
这里针对主机所提供的服务进行相应基本安全配置,某些常用服务的安全配置请参考相关文档。
4.1服务过滤Filtering●在SERVER上禁止这些服务●如果一定要开放这些服务,通过防火墙、路由指定信任IP访问。
●要确保只有真正需要的服务才被允许外部访问,并合法地通过用户的路由器过滤检查。
尤其在下面的服务不是用户真正需要时候,要从路由器上将其过滤掉NAME PORT PROTOCOLecho 7 TCP/UDPsystat 11 TCPnetstat 15 TCPbootp 67 UDPtftp 69 UDPlink 87 TCPsupdup 95 TCPsunrpc 111 TCP/UDPnews 144 TCPsnmp 161 UDPxdmcp 177 UDPexec 512 TCPlogin 513 TCPshell 514 TCPprinter 515 TCPbiff 512 UDPwho 513 UDPsyslog 514 UDPuucp 540 TCProute 520 UDPopenwin 2000 TCPnfs 2049 UDP/TCPx11 6000 to 6000+n TCP注意:有些UDP服务可以导致DOS攻击和远程溢出,如rpc.ypupdatedrpcbindrpc.cmsd 100068rpc.statd 100024rpc.ttdbserver 100083sadmind 100232/10●配置完成以后,利用网络扫描器模拟入侵者从外部进行扫描测试。
如利用nmap4.2 /etc/inetd.conf●确保文件权限设置为600●确保文件属主设置为root●注释掉所有不需要的服务,需要重新启动inetd进程●使用netstat –an命令,查看本机所提供的服务。
确保已经停掉不需要的服务4.3 R 服务不必使用R服务●关闭R服务,Red hat 6.2在/etc/inetd.conf文件中注释以下服务,并且重新启动inetd服务。
Red hat 7.0在/etc/xinetd.d目录中删除exec 512 TCPRlogin 513 TCPRshell 514 TCP●预先生成$HOME/.rhosts,/etc/hosts.equiv文件,并且设置为0000,防止被写入”+ +”。
(攻击者经常使用类似符号链接或者利用ROOTSHELL写入,并且远程打开受保护主机的R服务)必须使用R服务●使用更安全版本的r服务。
如Wietse Venema的logdaemon程序等。
●在路由或者防火墙上禁止外部网络访问受保护主机的512,513 and 514 (TCP)端口。
●使用TCP WRAPPERS设置可访问受保护主机R服务的信任机器。
4.4 Tcp_wrapper该软件的作用是在Unix平台上过滤TCP/UDP服务,它目前已被广泛用于监视并过滤发生在主机上的ftp、telnet、rsh、rlogin、tftp、finger等标准TCP/UDP服务。