Linux项目加固清单.docx
《Linux项目加固清单.docx》由会员分享,可在线阅读,更多相关《Linux项目加固清单.docx(46页珍藏版)》请在冰豆网上搜索。
Linux项目加固清单
Linux主机加固清单
一、加固主机列表
本次安全加固服务的对象包括:
编号
IP地址
操作系统
用途或服务
服务器
填写规则:
编号统一使用“型号_地址缩写_数字”
型号(H-主机;D-设备),数字使用三位数字顺序号。
二、加固方案
2.1H-YT-001
基本信息
设备所在地
正式域名/主机名
外部IP地址
内部IP地址
网关
域名服务器
操作系统
版本号
硬件信息
中央处理器
内存
外部存储设备
应用服务信息
名称
应用服务及版本情况
其他信息
安全补丁情况
其他情况
2.1.1操作系统加固方案
2.1.1.1补丁安装
编号:
Linux-01002Linux-01005Linux-02001
名称:
补丁安装
系统当前状态:
实施方案:
补丁地址:
RPM包:
#rpm-Fvh[文件名]
实施目的:
可以使系统版本为最新并解决安全问题
实施风险:
请慎重对系统打补丁,补丁安装应当先在测试机上完成。
补丁安装可能导致系统或摹写服务无法工作正常。
在下载补丁包时,一定要对签名进行核实,防止执行特洛伊木马。
是否实施:
(客户填写)
2.1.1.2帐号、口令策略修改
编号:
Linux-03001Linux-03002Linux-03003
Linux-03004Linux-03005
名称:
去除不需要的帐号、修改默认帐号的shell变量
系统当前状态:
实施方案:
#userdellp
#groupdellp
如果下面这些系统默认帐号不需要的话,建议删除。
lp,sync,shutdown,halt,news,uucp,operator,
games,gopher
修改一些系统帐号的shell变量,例如uucp,ftp和news等,还有一些仅仅需要FTP功能的帐号,一定不要给他们设置/bin/bash或者/bin/sh等Shell变量。
可以在/etc/passwd中将它们的shell变量设为/bin/false或者/dev/null等,也可以使用usermod-s/dev/nullusername命令来更改username的shell为/dev/null。
实施目的:
删除系统不需要的默认帐号、更改危险帐号缺省的shell变量
实施风险:
首先应当明确系统的角色,避免误删除默认帐号。
是否实施:
(客户填写)
编号:
Linux-03008
名称:
使rootPATH环境变量中不包含当前目录“.”
系统当前状态:
实施方案:
如果rootPATH环境变量中包含当前目录“.”
#vi/etc/profile
去除“:
.”部分
实施目的:
防止root执行恶意特洛伊木马,减少安全隐患。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-03008
名称:
对root为ls、rm设置别名
系统当前状态:
未为ls、rm设置别名
实施方案:
查看当前shell:
#echo$SHELL
如果是csh:
#vi~/.cshrc
如果是bash:
#vi~/.bashrc
加入
aliaslsls-aol
aliasrmrm-i
重新登录之后查看是否生效。
实施目的:
为ls设置别名使得root可以清楚的查看文件的属性(包括不可更改等特殊属性)。
为rm设置别名使得root在删除文件时进行确认,避免误操作。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-03006
名称:
缺省密码长度限制
系统当前状态:
实施方案:
#vi/etc/login.defs
把下面这行
PASS_MIN_LEN5改为
PASS_MIN_LEN8
实施目的:
防止系统弱口令的存在,减少安全隐患。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-03007
名称:
超时自动注销登录
系统当前状态:
实施方案:
在unix系统中root账户是具有最高特权的。
如果系统管理员在离开系统之前忘记注销root账户,那将会带来很大的安全隐患,应该让系统自动注销。
通过修改账户中“TMOUT”参数,可以实现此功能。
TMOUT按秒计算。
编辑profile文件
(vi/etc/profile),在“HISTFILESIZE=”后面加入下面这行:
TMOUT=300
300,表示300秒,也就是表示5分钟。
这样,如果系统中登录的用户在5分钟内都没有动作,那么系统会自动注销这个账户。
也可以在个别用户的“.bashrc”文件中添加该值,以便系统对该用户实行特殊的自动注销时间。
改变这项设置后,必须先注销用户,再用该用户登录才能激活这个功能。
实施目的:
避免管理员忘记注销登录,减少安全隐患。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-03012
名称:
限制用户对主机资源的使用
系统当前状态:
实施方案:
#vi/etc/security/limits.conf
如果限制limitu用户组对主机资源的使用,
加入:
@limitusoftcore0
@limituhardnproc30
@limitu-maxlogins5
具体限制请于管理员确认后再进行实施。
实施目的:
Linux可以限制用户对主机资源的使用,比如限制用户使用
的CPU或内存等,可以有效的防止本地DoS攻击。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-03005
名称:
使用paswordshadowing
系统当前状态:
实施方案:
#/usr/sbin/pwconv5
实施目的:
确保系统中帐号密码存在于/etc/shadow,而不直接存在于/etc/passwd。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-03011
名称:
保证bash
shell保存少量的(或不保存)命令
系统当前状态:
实施方案:
“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的“.bash_history”文件中可以保存的旧命
令条数。
建议把“/etc/profile”文件中的“HISTFILESIZE”
和“HISTSIZE”行的值设为一个较小的数,比如30。
编辑profile文件(vi/etc/profile),把下面这行改为:
HISTFILESIZE=30
HISTSIZE=30
在“/etc/skel/.bash_logout”文件中添加下面这行“rm-f$HOME/.bash_history”。
这样,当用户每次注销时,.bash_history文件都会被删除。
编辑.bash_logout文件(vi/etc/skel/.bash_logout),添加下面这
行:
rm-f$HOME/.bash_history
实施目的:
保存较少的命令条数,减少安全隐患。
实施风险:
不要把HISTSIZE置零,那样就无法使用上下健来调用历史命
令了。
是否实施:
(客户填写)
编号:
Linux-03010
名称:
使用PAM禁止任何人su为root
系统当前状态:
实施方案:
编辑su文件(vi/etc/pam.d/su),在开头添加下面两行:
authsufficient/lib/security/pam_rootok.so
authrequired/lib/security/pam_wheel.sogroup=wheel
这表明只有wheel组的成员可以使用su命令成为root用户。
你
可以把用户添加到wheel组,以使它可以使用su命令成为root
用户。
添加方法为:
#chmod–G10username
实施目的:
避免任何人可以su为root,减少安全隐患。
实施风险:
无
是否实施:
(客户填写)
2.1.1.3网络与服务加固
编号:
Linux-04007
名称:
禁止/etc/rc.d/init.d下某些脚本的执行
系统当前状态:
实施方案:
#cd/etc/rc.d/init.d
在不需要开机自动运行的脚本第一行写入exit0。
则开机时该脚本exit0之后的内容不会执行。
需要更改的服务包括:
identdlpdlinuxconfnetfs
portmaproutedrstatd
rwalldrwhod
sendmailypbindyppasswddypserv
具体操作时根据主机的角色请于管理员确认后再实施。
实施目的:
禁止系统开机时不需要启动的服务,减少安全隐患。
防止黑
客获取更多的系统信息。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-04009Linux-04011
名称:
禁止/etc/rc.d/rc[0-9].d下不需要运行的脚本
系统当前状态:
实施方案:
进入相应目录,将脚本开头大写S改为小写s即可。
如:
#cd/etc/rc.d/rc6.d
#mvS45dhcpds45dhcpd
实施目的:
禁止系统不需要启动的服务,减少安全隐患。
防止黑客获取
更多的系统信息。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-04004Linux-04008
名称:
(x)inetd服务
系统当前状态:
实施方案:
取消所有不需要的服务,编辑“/etc/inetd.conf”文件,通过
注释取消所有你不需要的服务(在该服务项目之前加一个“#”)。
第一步:
更改“/etc/inetd.conf”权限为600,只允许root来
读写该文件。
#chmod600/etc/inetd.conf
第二步:
确定“/etc/inetd.conf”文件所有者为root。
#chownroot/etc/inetd.conf
第三步:
编辑/etc/inetd.conf文件(vi/etc/inetd.conf),取消
不需要的服务,如:
ftp,telnet,shell,login,exec,talk,ntalk,
imap,pop-2,pop-3,finger,auth等等。
把不需要的服务关闭
可以使系统的危险性降低很多。
第四步:
给inetd进程发送一个HUP信号:
#killall-HUPinetd
第五步:
用chattr命令把/ec/inetd.conf文件设为不可修改。
#chattr+i/etc/inetd.conf
/etc/inetd.conf文件中只开放需要的服务。
对于启用的网络服务,使用TCPWrapper增强访问控制和日
志审计功能。
建议使用xinetd代替inetd,前者在访问控制和日志审计方面
有较大的增强。
实施目的:
禁止系统不需要的服务,减少安全隐患。
实施风险:
这样可以防止对inetd.conf的任何修改(以外或其他原因)。
唯一可以取消这个属性的只有root。
如果要修改inetd.conf文件,首先要取消不可修改属性:
#chattr-i/etc/inetd.conf
是否实施:
(客户填写)
编号:
Linux-04004
名称:
TCPWrapper
系统当前状态:
实施方案:
使用TCP_Wrappers可以使你的系统安全面对外部入侵。
最好
的策略就是阻止所有的主机(在
“/etc/hosts.deny”文件中加入“ALL:
ALL@ALL,PARANOID”),然后再在“/etc/hosts.allow”文件中加入所有
允许访问的主机列表。
第一步:
编辑hosts.deny文件(vi/etc/hosts.deny),加入下面
该行:
#Denyaccesstoeveryone.
ALL:
ALL@ALL,PARANOID
第二步:
编辑hosts.allow文件(vi/etc/hosts.allow),加入允
许访问的主机列表,比如:
ftp:
202.54.15.99
202.54.15.99和是允许访问ftp服务的IP地址和主机名称。
第三步:
tcpdchk程序是TCP_Wrapper设置检查程序。
它用
来检查你的TCP_Wrapper设置,并报告发现的潜在的和真实
的问题。
设置完后,运行下面这个命令:
#tcpdchk
实施目的:
设置访问控制列表,使得只有可信主机才能访问服务器在/etc/(x)inetd.conf中启用的特定网络服务。
实施风险:
不是所有的网络服务可以使用TCP_Wrappers
是否实施:
(客户填写)
编号:
Linux-04004
名称:
telnetd服务
系统当前状态:
实施方案:
建议不要使用telnetd,但是非要使用的话,稍微的调整可以
提高telnetd的安全性。
#vi/etc/inetd.conf
telnetstreamtcpnowaitroot/usr/libexec/telnetdtelnetd-h
其中:
-h隐藏主机相关信息
实施目的:
减少信息泄漏,增强telnetd安全性。
实施风险:
建议使用ssh代替telnetd。
telnet会话中用户名、密码是明文传
输的,如果被窃听将会造成敏感信息泄漏,对服务器造成威胁。
是否实施:
(客户填写)
编号:
Linux-04004Linux-04012
名称:
ftpd服务
系统当前状态:
实施方案:
#vi/etc/inetd.conf
ftp
stream
tcp
nowait
root
/usr/libexec/ftpd
ftpd-l-r-A-S
其中:
-l成功/失败的ftp会话被syslog记录
-r使ftpd为只读模式,任何命令都不能更改文件系统
-A允许anonymous用户登录,/etc/ftpwelcome是欢迎信息
-S对anonymousftp传输进行记录
在/etc/syslog.conf中,增加
ftp.*
/var/log/ftpd
使日志产生到/var/log/ftpd文件
重新启动inetd进程:
#kill-1`cat/var/run/inetd.pid`
实施目的:
增加ftpd审计功能,增强ftpd安全性。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-04004
名称:
fingerd服务
系统当前状态:
实施方案:
建议关闭fingerd。
如果确实需要的话,
#vi/etc/inetd.conf
finger
stream
tcp
nowait
nobody
/usr/libexec/fingerd
fingerd-s-l
在/etc/syslog.conf中,增加
daemon.notice/var/log/fingerd
使日志产生到/var/log/fingerd文件
重新启动inetd进程:
#kill-1`cat/var/run/inetd.pid`
实施目的:
增加fingerd审计功能,增强fingerd安全性。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-04005
名称:
更改主机解析地址的顺序
系统当前状态:
实施方案:
“/etc/host.conf”说明了如何解析地址。
编辑“/etc/host.conf”文件(vi/etc/host.conf),加入下面该行:
#LookupnamesviaDNSfirstthenfallbackto/etc/hosts.
orderbind,hosts
#WehavemachineswithmultipleIPaddresses.
multion
#CheckforIPaddressspoofing
nospoofon
第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。
第二项设置检
测是否“/etc/hosts”文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。
第三项设置说明要注意对本机未经许可的IP欺骗。
实施目的:
更改主机解析地址的顺序,减少安全隐患。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-04010
名称:
打开syncookie缓解synflood攻击
不响应ICMP请求
禁止IP源路由
系统当前状态:
实施方案:
#echo1>/proc/sys/net/ipv4/tcp_syncookies
可以加入/etc/rc.d/rc.local中。
不响应ICMP请求:
#echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all
禁止IP源路由:
#catdisable-source_route.sh
forfin/proc/sys/net/ipv4/conf/*/accept_source_route;do
echo0>$f
done
#./disable-source_route.sh
实施目的:
调整内核安全参数,增强系统安全性。
实施风险:
无
是否实施:
(客户填写)
2.1.1.4文件系统加固
编号:
Linux-05001
名称:
初始文件创建权限
系统当前状态:
实施方案:
对于root,应该设置umask为077
#vi/etc/profile
umask077
实施目的:
严格限制root初始文件创建权限。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-05002
名称:
设置关键文件的属性
系统当前状态:
实施方案:
#chattr+a/var/log/messages
#chattr+i/var/log/messages.*
#chattr+i/etc/shadow
建议管理员对关键文件进行特殊设置(不可更改或只能追加等)。
实施目的:
增强关键文件的属性,减少安全隐患。
使messages文件只可追加。
使轮循的messages文件不可更改。
实施风险:
无
是否实施:
(客户填写)
编号:
Linux-05003Linux-05004
名称:
增强部分文件的执行权限控制
系统当前状态:
实施方案:
#chmod+t/tmp
#chmod644/var/log/wtmp
#chmod644/var/run/utmp
#chmod-R700/etc/rc.d/init.d/*
编辑/etc/groups,增加wheel组:
#vi/etc/groups
#chgrpwheel/bin/su
#chmod47500/bin/su
#/bin/touch/root/.rhosts/root/.netrc/etc/hosts.equiv
#/bin/chmod0/root/.rhosts/root/.netrc/etc/hosts.equiv
实施目的:
使得关键文件不可更改,增加系统安全性。
同时防止root误
操作造成关键文件的损坏。
实施风险:
对/kernel等文件增加特殊属性,在更新文件系统时将会报错。
在更新文件系统时,要将关键文件的特殊属性去掉。
是否实施:
(客户填写)
编号:
Linux-05005
名称:
为不同的挂载点指派不同的属性
系统当前状态:
实施方案:
#cat/etc/fstab
#DeviceMountpointFStypeOptionsDumpPass#
/dev/ad0s1bnoneswapsw00
/dev/ad0s1a/ufsrw11
/dev/ad0s1f/tmpufsrw,nodev,nosuid22
/dev/ad0s1g/usrufsrw22
/dev/ad0s1h/homeufsrw,userquota22
/dev/ad0s1e/varufsrw,noexec22
/dev/fd/floppyMSDOSrw,noauto,noexec,nosuid,nodev,noatime00
/dev/acd0c/cdromcd9660ro,noauto00
proc/procprocfsrw,noauto00
其中:
ro:
只读
rw:
可读写(默认)
sw:
swap
nosuid:
禁止suid文件
noexec:
文件不可执行
nodev:
不允许文件为设备文件
noauto:
启动时不自动挂载
noatime:
不允许文件系统记录文件的访问时间
userquota:
使用磁盘配额
实施目的:
对个分区赋予不同的属性,增强文件系统的安全性。
实施风险:
如果为某分区指派了noexec的属性,此分区下的程序将不能
执行。
是否实施:
(客户填写)
2.1.1.5日志审核增强
编号:
Linux-06001
名称:
对ssh、su登录日志进行记录
系统当前状态:
实施方案:
#vi/etc/syslog.conf
加入
#Theauthprivfilehasrestrictedaccess.
authpriv.*/var/log/secure
重新启动syslogd:
#/etc/rc.d/init.d/syslogrestart
实施目的:
对ssh、su尝试进行记录
实施风险:
无
是否实施:
(客户填写)
2.1.1.6安全性增强
编号:
Linux-07001
名称: