Linux安全加固规范.docx
《Linux安全加固规范.docx》由会员分享,可在线阅读,更多相关《Linux安全加固规范.docx(20页珍藏版)》请在冰点文库上搜索。
Linux安全加固规范
LINUX平安加固规
1概述
近几年来Internet变得更加不平安了。
网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。
只要有值得偷窃的东西就会有想方法窃取它的人。
Internet的今天比过去任何时候都更真实地表达出这一点,基于Linux的系统也不能摆脱这个“普遍规律〞而独善其身。
因此,优秀的系统应当拥有完善的平安措施,应当足够巩固、能够抵抗来自Internet的侵袭,这正是Linux之所以流行并且成为Internet骨干力量的主要原因。
但是,如果你不适当地运用Linux的平安工具,它们反而会埋下隐患。
配置拙劣的平安系统会产生许多问题,本文将为你解释必须掌握的Linux平安知识。
本文讲述了如何通过根本的平安措施,使Linux系统变得可靠。
2安装
使系统处于单独〔或隔离〕的网络中。
以防止未受保护的系统连接到其它网络或互联网中受到可能的攻击
安装完成后将下面软件卸载
pumpapmdlsapnptoolsredhat-logos
mt-stkernel-pcmcia-csSetserialredhat-relese
ejectlinuxconfkudzugd
bcgetty_psraidtoolspciutils
mailcapsetconsolegnupg
用下面的命令卸载这些软件:
[rootdeep]#rpm–esoftwarename
卸载它们之前最好停掉三个进程:
[rootdeep]#/etc/rc.d/init.d/apmdstop
[rootdeep]#/etc/rc.d/init.d/sendmailstop
[rootdeep]#/etc/rc.d/init.d/kudzustop
3用户平安Passwordandaccountsecurity
3.1密码平安策略
●口令至少为6位,并且包括特殊字符
●口令不要太简单,不要以你或者有关人的相关信息构成的密码,比方生日、、的拼音或者缩写、单位的拼音或者英文简称等等。
●口令必须有有效期
●发现有人长时间猜想口令,需要更换口令
3.2检查密码是否平安
可以使用以下几种工具检查自己的密码是否平安:
●JOHN,crack等暴力猜想密码工具
●在线穷举工具,包括Emailcrk、流光等
3.3PasswordShadowing
●使用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文件,在文件头部加上:
authsufficient/lib/security/pam_rootok.sodebug
authrequired/lib/security/pam_wheel.sogroup=wheel
Redhat7.0中su文件已做了修改,直接去掉头两行的注释符就可以了
[rootdeep]#usermod-G10admin来将用户参加wheel组
3.5其它
●去除不必要的系统
[rootdeep]#userdeladm
[rootdeep]#userdellp
[rootdeep]#userdelsync
[rootdeep]#userdelshutdown
[rootdeep]#userdelhalt
[rootdeep]#userdelnews
[rootdeep]#userdeluucp
[rootdeep]#userdeloperator
[rootdeep]#userdelgames(如果不使用XWindow,那么删除)
[rootdeep]#userdelgopher
[rootdeep]#userdelftp〔如果不使用ftp效劳那么删除〕
●尽量不要在passwd文件中包含个人信息,防止被finger之类程序泄露。
●修改shadow,passwd,gshadow文件不可改变位
[rootdeep]#chattr+i/etc/passwd
[rootdeep]#chattr+i/etc/shadow
[rootdeep]#chattr+i/etc/group
[rootdeep]#chattr+i/etc/gshadow
●不要使用.netrc文件,可以预先生成$HOME/.netrc。
设置为0000。
touch/.rhosts;chmod0/.rhosts
●使用ssh来代替telnetd,ftpd.pop等通用效劳。
传统的网络效劳程序,如:
ftp、pop和telnet在本质上都是不平安的,因为它们在网络上用明文传送口令和数据。
4网络效劳平安(NetworkServiceSecurity)
Linux系统对外提供强大、多样的效劳,由于效劳的多样性及其复杂性,在配置和管理这些效劳时特别容易犯错误,另外,提供这些效劳的软件本身也存在各种漏洞,所以,在决定系统对外开放效劳时,必须牢记两个根本原那么:
●只对外开放所需要的效劳,关闭所有不需要的效劳。
对外提供的效劳越少,所面临的外部威胁越小。
●将所需的不同效劳分布在不同的主机上,这样不仅提高系统的性能,同时便于配置和管理,减小系统的平安风险。
在上述两个根本原那么下,还要进一步检查系统效劳的功能和平安漏洞。
这里针对主机所提供的效劳进展相应根本平安配置,某些常用效劳的平安配置请参考相关文档。
4.1效劳过滤Filtering
●在SERVER上制止这些效劳
●如果一定要开放这些效劳,通过防火墙、路由指定信任IP访问。
●要确保只有真正需要的效劳才被允许外部访问,并合法地通过用户的路由器过滤检查。
尤其在下面的效劳不是用户真正需要时候,要从路由器上将其过滤掉
NAMEPORTPROTOCOL
echo7TCP/UDP
systat11TCP
netstat15TCP
bootp67UDP
tftp69UDP
link87TCP
supdup95TCP
sunrpc111TCP/UDP
news144TCP
snmp161UDP
xdmcp177UDP
exec512TCP
login513TCP
shell514TCP
printer515TCP
biff512UDP
who513UDP
syslog514UDP
uucp540TCP
route520UDP
openwin2000TCP
nfs2049UDP/TCP
x116000to6000+nTCP
注意:
有些UDP效劳可以导致DOS攻击和远程溢出,如
rpc.ypupdated
rpcbind
rpcsd100068
rpc.statd100024
rpc.ttdbserver100083
sadmind100232/10
●配置完成以后,利用网络扫描器模拟入侵者从外部进展扫描测试。
如利用nmap
4.2/etc/inetd.conf
●确保文件权限设置为600
●确保文件属主设置为root
●注释掉所有不需要的效劳,需要重新启动inetd进程
●使用netstat–an命令,查看本机所提供的效劳。
确保已经停掉不需要的效劳
4.3R效劳
不必使用R效劳
●关闭R效劳,Redhat6.2在/etc/inetd.conf文件中注释以下效劳,并且重新启动inetd效劳。
Redhat7.0在/etc/xinetd.d目录中删除
exec512TCP
Rlogin513TCP
Rshell514TCP
●预先生成$HOME/.rhosts,/etc/hosts.equiv文件,并且设置为0000,防止被写入〞++〞。
〔攻击者经常使用类似符号或者利用ROOTSHELL写入,并且远程翻开受保护主机的R效劳〕
必须使用R效劳
●使用更平安版本的r效劳。
如WietseVenema的logdaemon程序等。
●在路由或者防火墙上制止外部网络访问受保护主机的512,513and514(TCP)端口。
●使用TCPWRAPPERS设置可访问受保护主机R效劳的信任机器。
4.4Tcp_wrapper
该软件的作用是在Unix平台上过滤TCP/UDP效劳,它目前已被广泛用于监视并过滤发生在主机上的ftp、telnet、rsh、rlogin、tftp、finger等标准TCP/UDP效劳。
当系统安装TCP_wrapper之后,in.conf文件中/usr/sbin/in.telnetd的in.telnetd会被TCP_wrapper附带的tcpd程序取代。
该程序截获来自客户端的效劳请求、记录请求发生的时间和IP地址,并按访问控制进展检查。
当本次连接的用户、请求源的IP等信息符合管理员的预设值时,才将该次请求传递给系统in.telnetd,由系统in.telnetd完成后续工作;假设连接不符合要求,该连接请求将被拒绝。
同样,ftp、rsh等TCP/UDP效劳均可被tcpd取代,由tcpd充当二传手。
●使用PARANOID模式,用此参数后需要在/etc/hosts文件中加上允许使用telnet或ftp效劳的客户端的名字和IP地址
●在/etc/hosts.deny中设置为all:
all,默认所有不允许
Accessisdeniedbydefault.
#Denyaccesstoeveryone.
ALL:
ALLALL,PARANOID#Matchesanyhostwhosenamedoesnotmatchitsaddress,see
bellow.
●在/etc/hosts.allow中设置允许的效劳和地址
如:
●使用tcpdchk检查
●UDP效劳使用tcpwrapper时要使用/etc/inetd.conf中的nowait选项。
4.5/etc/hosts.equiv文件
不必使用/etc/hosts.equiv文件
●从系统中删除此文件
●预先生成/etc/hosts.equiv文件,并且设置为0000,防止被写入〞++〞。
〔攻击者经常使用类似符号或者利用ROOTSHELL写入,并且远程翻开受保护主机的R效劳〕
必须使用/etc/hosts.equiv文件
●确保此文件中可信赖主机为必须的。
●预先生成/etc/hosts.equiv文件,并且设置为0000,防止被写入〞++〞。
〔攻击者经常使用类似符号或者利用ROOTSHELL写入,并且远程翻开受保护主机的R效劳〕
●如果使用NIS或者NIS+的话,此文件中的组应该是容易管理的。
●信赖主机必须确保可靠
●信赖主机使用全名,如例如hostname.domainname.
●任何时候都不应该出现〞+〞字符,因为这样会使任何一台主机上的任何用户都可以不加口令地访问系统
●文件中不要使用'!
'和'#'符号,因为在该文件中那并不表示注释信息
●文件开场字符不应该为'-'.,请查阅C8
●确保该文件的访问权限被设置成600。
●文件属主确保为ROOT。
●在每次安装补丁程序或操作系统之后,都应该重新检查该文件夹的设置情况
4.6/etc/services
●确保文件权限设置为600
●确保文件属主设置为root
●如果需要提供一些常见效劳,如telnetd等,可以在此修改端口
此文件为端口号和效劳的对应关系,给此文件加上保护,防止没有授权的修改和删除
[rootdeep]#chattr+i/etc/services
4.7/etc/aliases
●修改/etc/aliases文件,注释掉"decode""games,ingress,system,toor,manager,….〞.等
●使用/usr/bin/newaliases命令激活新配置
●确保文件权限设置为755
●确保文件属主设置为root
4.8NFS
NFS文件系统应注意以下几方面的平安
●在外部路由上过滤端口111、2049〔TCP/UDP〕,不允许外部访问。
●检查PATCH更新情况。
●检查/etc/exports输出路径的权限,确定只有root能修改, alluser只能read
●用exportfs去增加或删除directories
exportfs-oaccess=engineering,ro=dancer/usr
exportfs-u/usr
●假设你的机器没有NIS(YPserver)的效劳,当更改资料时记得修改
/etc/passwd
/etc/group
/etc/hosts
/etc/ethers
●不允许export出去包含本地入口的目录
●确定对方机器是完全可信赖的。
使用全名
●确保输出列表没有超过256个字符。
●使用showmount–e命令查看自己的export设置
●将/etc/exports权限设置为644,属主为root
●使用noexec,nodev.nosuid等选项控制mount的文件系统,在/etc/fstab中设置。
4.9Trivialftp(tftp)
无论何种情况下都不应该启动这个效劳进程。
4.10Sendmail
sendmail提供了许多在编译期间选择的功能特性。
通常情况下,按照其缺省配置,即可满足一般用户的需要。
但是,了解研究其提供的特性,可以实现对sendmail许多功能的更为准确的配置使用。
从网络平安的角度考虑,通过合理地配置有关特性,可以在提供效劳和保证平安之间找到更为准确的平衡点(配置特性的方法是将需要的特性参加到相应系统的.mc文件中,然后利用工具m4生成最终的sendmail.cf文件。
目前最新版本是sendmail.(.sendmail.org)
●最新的发行包
●promiscuous_relay:
该特性翻开任意转发功能,也即关闭8.9带来的转发方面的平安增强控制。
此特性的使用会对电子效劳的滥用留下许多隐患,建议除非特别情况,不要使用此特性。
●accept_unqualified_senders:
缺省情况下,该特性被关闭,即当MAILFROM:
参数中的地址说明属于网络连接,但是却不包含合法的主机地址时,sendmail将拒绝继续通信。
翻开此特性那么不再根据MAILFROM:
参数拒绝接收。
建议不可轻易使用该特性。
●loose_relay_check:
通常情况下,当使用了源路由功能,例如user%siteothersite,如果othersite属于转发的围,那么sendmail将别离othersite,继续检查site是否属于转发围.使用该特性将改变上述缺省操作.建议不要轻易使用该特性
●accept_unresolvable_domains:
通常情况下,当MAILFROM:
参数中的主机地址局部无法解析,即无法判定为合法主机地址时,sendmail将拒绝连接.使用该特性将改变上述操作.在某些情况下,例如,效劳器位于防火墙后面,无常解析外部主机地址,但是仍然希望能够正常接收时,可能需要利用该特性.
●blacklist_recipients:
翻开接收黑功能。
接收黑可以包括用户名、主机名、或其它地址。
●relay_entire_domain:
缺省配置下,sendmail只为在转发控制数据库(accessdb)中定义为RELAY的主机提供转发效劳.该特性的使用,将使sendmail为本地域〔由$=m类定义〕的所有主机上面的用户提供转发功能
●sendmail的受限shell程序smrsh可以防止部用户恶意操作。
●防止系统信息泄漏,如修改banner,制止expn,vrfy命令
●建议配置为需要smtp认证功能。
●其他相关的mailserver
qmail:
.qmail.org
postfix:
.postfix.org
qpop:
.qpopper.org/
Imail:
.imailbox./
4.11finger
●不应该启动这个效劳进程。
●如果一定要使用,请使用最新的版本。
4.12UUCP
●建议不要使用
●删除所有的rhosts文件〔UUCP目录下的〕
●确保ds文件属主为root
●对UUCP登陆进展限制
●确保UUCP文件没有被设置为所有人可写
4.13WorldWideWeb()–d
●使用你选择的WEBSERVER的最新版本
●不要使用ROOT用户运行d
●在chroot环境中运行d
●尽量不要使用CGI脚本
●对CGI脚本进展平安审计
●使用静态库
●过滤危险字符,如\n\r(.,/;~!
)>|^&$`<等
●使用s进展关键业务传送。
比拟流行的webserver是
apache.apache.org
netscpe的webserver和browserscape./enterprise/v3.6/index.html
IETF的Web事务平安工作组维持着一个特别针对平安问题的邮寄列表.
要订阅,可发到-security-在信息的
正文里写上
SUBSCRIBE -security 你的email地址
主要的 FAQ也包含关于Web平安的问与答,如记录文件管理和效劳软件来源等.这个FAQ的最新版在:
.boutell./faq/
4.14FTP平安问题
主要的ftpserver
●wuftp最新版本是26.1
下载地址是ftp:
//ftp.wu-ftpd.org/pub/wu-ftpd-attic/wu-ftpd-.tar.gz
●proftp最新版本是rc2
下载地址是
●ncftp最新版本是2.6.3
下载地址是.ncftp./ncftpd/
配置Configuration
●检查所有的默认配置选项
●确定没有SITEEXEC问题
●设置/etc/ftpusers确定制止使用ftp的用户
●使用chroot环境运行ftpd
●使用自己的ls等命令
●参加对quota,pam等支持
●配置/etc/ftpaccess文件,制止系统信息泄露和设置最接数
●配置/etc/ftphosts,设置允许使用FTP的HOST和USER
●针对不同用户设置不同权限
●经常查看LOG记录 /var/log/xferlog
●配置文件属性改为600
Anonymousftp
●编译时翻开允许匿名选项
●如果使用分布式passwords(e.g.,NIS,NIS+),需要设置好密码文件。
●匿名用户只给读权限〔在/etc/ftpaccess中设置〕
5系统设置平安(SystemSettingSecurity)
5.1限制控制台的使用
制止使用控制台程序:
删除/etc/security/console.apps中的效劳
[rootdeep]#rm-f/etc/security/console.apps/servicename,
比方:
[rootdeep]#rm-f/etc/security/console.apps/halt
[rootdeep]#rm-f/etc/security/console.apps/poweroff
[rootdeep]#rm-f/etc/security/console.apps/reboot
[rootdeep]#rm-f/etc/security/console.apps/shutdown
[rootdeep]#rm-f/etc/security/console.apps/xserver〔如删除,只有root能启动Xserver〕
制止控制台的访问:
在/etc/pam.d中的所有文件中,给包含pam_console.so的行加上注释
5.2系统关闭Ping
关闭ping,使系统对ping不做反响,对网络平安大有好处。
可以使用如下命令:
[rootdeep]#echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all
可以将这一行加到/etc/rc.d/rc.local文件中去,这样系统重启动后会自动执行
恢复系统的Ping响应:
[rootdeep]#echo0>/proc/sys/net/ipv4/icmp_echo_ignore_all
5.3关闭或更改系统信息
关闭telnet系统信息
RedHat6.2中,编辑/etc/inetd.conf
telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd–h
加上参数-h可以关闭telnet信息
RedHat7.0中,编辑/etc/xinetd.d/telnet
加上server_args=-h,可以关闭telnet信息
/etc/rc.d/rc.local中关闭或修改系统信息
/etc/issue和/etc/中包含本地登录和网络登录时提示的系统信息,对它们进展更改可以改变系统信息,或直接删除,并在/etc/rc.d/rc.local文件中注释相关行:
#echo"">/etc/issue
#echo"$R">>/etc/issue
#echo"Kernel$(uname-r)on$a$(uname-m)">>/etc/issue
#cp-f/etc/issue/etc/
#echo>>/etc/issue
5.4/etc/securetty文件
/etc/securetty文件规定root从哪个TTY设备登录,列出的是允许的tty设备,将不允许的tty设备行注释掉.
5.5/etc/host.conf文件
/etc/host.conf定义主机名怎样解析,使用什么效劳,什么顺序解析
#LookupnamesviaDNSfirstthenfallbackto/etc/hosts.
orderbind,hosts
#WehavemachineswithmultipleIPaddresses.
multion
#CheckforIPaddressspoofing.
nospoofon
order指定选择效劳的顺序
multi指定主机能不能有多个IP地址,ON代表允许
nospoof指定不允许IP伪装,此参数必须设置为ON
5.6制止IP源路径路由
允许IP源路径路由(IPsourcerouting)会使得黑客能够欺骗你的计算机,截取信息包.强烈建议制