Linux系统加固规范.docx
《Linux系统加固规范.docx》由会员分享,可在线阅读,更多相关《Linux系统加固规范.docx(24页珍藏版)》请在冰豆网上搜索。
Linux系统加固规范
Linux系统加固规范
山东省计算中心
2020年10月
1账号管理、认证授权
1.1.1Linux-01-01-01
编号
Linux-01-01-01
名称
为不同的管理员分配不同的账号
实施目的
根据不同类型用途设置不同的帐户账号,提高系统安全。
问题影响
账号混淆,权限不明确,存在用户越权使用的可能。
系统当前状态
cat/etc/passwd记录当前用户列表
实施步骤
1、参考配置操作
为用户创建账号:
#useraddusername#创建账号
#passwdusername#设置密码
修改权限:
#chmod750directory#其中755为设置的权限,可根据
实际情况设置相应的权限,directory是要更改权限的目录)
使用该命令为不同的用户分配不同的账号,设置不同的口令
及权限信息等。
回退方案
恢复httpd.conf文件,重启APACHE
判断依据
判断是否漏洞。
实施风险
中
重要等级
★★★
1.1.2
Linux-01-01-02
编号
Linux-01-01-02
名称
去除不需要的帐号、修改默认帐号的shell变量
实施目的
删除系统不需要的默认帐号、更改危险帐号缺省的shell变量
问题影响
允许非法利用系统默认账号
系统当前状态
cat/etc/passwd记录当前用户列表,cat/etc/shadow记
录当前密码配置
实施步骤
1、参考配置操作
#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
判断依据
如上述用户不需要,则锁定。
实施风险
中
重要等级
★★
备注
1.1.3Linux-01-01-03
编号
Linux-01-01-03
名称
限制超级管理员远程登录
实施目的
限制具备超级管理员权限的用户远程登录。
远程执行管理员
权限操作,应先以普通权限用户远程登录后,再切换到超级
管理员权限账。
问题影响
允许root远程非法登陆
系统当前状态
cat/etc/ssh/sshd_config
cat/etc/securetty
实施步骤
1、参考配置操作
SSH:
#vi/etc/ssh/sshd_config
把
PermitRootLoginyes
改为
PermitRootLoginno
重启sshd服务
#servicesshdrestart
CONSOLE:
在/etc/securetty文件中配置:
CONSOLE=/dev/tty01
回退方案
还原配置文件
/etc/ssh/sshd_config
判断依据
/etc/ssh/sshd_config中PermitRootLoginno
实施风险
高
重要等级
★★
备注
1.1.4Linux-01-01-04
编号
Linux-01-01-04
名称
对系统账号进行登录限制
实施目的
对系统账号进行登录限制,确保系统账号仅被守护进程和服
务使用。
问题影响
可能利用系统进程默认账号登陆,账号越权使用
系统当前状态
cat/etc/passwd查看各账号状态。
实施步骤
1、参考配置操作
Vi/etc/passwd
例如修改
lynn:
x:
500:
500:
:
/home/lynn:
/sbin/bash
更改为:
lynn:
x:
500:
500:
:
/home/lynn:
/sbin/nologin
该用户就无法登录了。
禁止所有用户登录。
touch/etc/nologin
除root以外的用户不能登录了。
2、补充操作说明
禁止交互登录的系统账号,比如daemon,bin,sys、adm、lp、
uucp、nuucp、smmsp等等
回退方案
还原/etc/passwd文件配置
判断依据
/etc/passwd中的禁止登陆账号的shell是/sbin/nologin
实施风险
中
重要等级
★★★
备注
1.1.5Linux-01-01-05
编号
Linux-01-01-05
名称
为空口令用户设置密码
实施目的
禁止空口令用户,存在空口令是很危险的,用户不用口令认
证就能进入系统。
问题影响
用户被非法利用
系统当前状态
cat/etc/passwd
awk-F:
'($2==""){print$1}'/etc/passwd
实施步骤
awk-F:
'($2==""){print$1}'/etc/passwd
用root用户登陆Linux系统,执行passwd命令,给用户增
加口令。
例如:
passwdtesttest。
回退方案
Root身份设置用户口令,取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat/etc/passwd
实施风险
高
重要等级
★
备注
1.1.6
Linux-01-01-06
编号
Linux-01-01-05
名称
为空口令用户设置密码
实施目的
禁止空口令用户,存在空口令是很危险的,用户不用口令认
证就能进入系统。
问题影响
用户被非法利用
系统当前状态
cat/etc/passwd
awk-F:
'($2==""){print$1}'/etc/passwd
实施步骤
awk-F:
'($2==""){print$1}'/etc/passwd
用root用户登陆Linux系统,执行passwd命令,给用户增
加口令。
例如:
passwdtesttest。
回退方案
Root身份设置用户口令,取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat/etc/passwd
实施风险
高
重要等级
★
备注
1.1.7Linux-01-01-07
编号
Linux-01-01-05
名称
为空口令用户设置密码
实施目的
禁止空口令用户,存在空口令是很危险的,用户不用口令认
证就能进入系统。
问题影响
用户被非法利用
系统当前状态
cat/etc/passwd
awk-F:
'($2==""){print$1}'/etc/passwd
实施步骤
awk-F:
'($2==""){print$1}'/etc/passwd
用root用户登陆Linux系统,执行passwd命令,给用户增
加口令。
例如:
passwdtesttest。
回退方案
Root身份设置用户口令,取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat/etc/passwd
实施风险
高
重要等级
★
备注
1.1.8Linux-01-01-08
编号
Linux-01-01-05
名称
为空口令用户设置密码
实施目的
禁止空口令用户,存在空口令是很危险的,用户不用口令认
证就能进入系统。
问题影响
用户被非法利用
系统当前状态
cat/etc/passwd
awk-F:
'($2==""){print$1}'/etc/passwd
实施步骤
awk-F:
'($2==""){print$1}'/etc/passwd
用root用户登陆Linux系统,执行passwd命令,给用户增
加口令。
例如:
passwdtesttest。
回退方案
Root身份设置用户口令,取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat/etc/passwd
实施风险
高
重要等级
★
备注
1.1.9Linux-01-01-09
编号
Linux-01-01-05
名称
为空口令用户设置密码
实施目的
禁止空口令用户,存在空口令是很危险的,用户不用口令认
证就能进入系统。
问题影响
用户被非法利用
系统当前状态
cat/etc/passwd
awk-F:
'($2==""){print$1}'/etc/passwd
实施步骤
awk-F:
'($2==""){print$1}'/etc/passwd
用root用户登陆Linux系统,执行passwd命令,给用户增
加口令。
例如:
passwdtesttest。
回退方案
Root身份设置用户口令,取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat/etc/passwd
实施风险
高
重要等级
★
备注
1.1.10Linux-01-01-10
编号
Linux-01-01-05
名称
为空口令用户设置密码
实施目的
禁止空口令用户,存在空口令是很危险的,用户不用口令认
证就能进入系统。
问题影响
用户被非法利用
系统当前状态
cat/etc/passwd
awk-F:
'($2==""){print$1}'/etc/passwd
实施步骤
awk-F:
'($2==""){print$1}'/etc/passwd
用root用户登陆Linux系统,执行passwd命令,给用户增
加口令。
例如:
passwdtesttest。
回退方案
Root身份设置用户口令,取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat/etc/passwd
实施风险
高
重要等级
★
备注
1.1.11Linux-01-01-11
1.1.12Linux-01-01-12
1.1.13Linux-01-01-05
1.1.14Linux-01-01-05
1.1.15Linux-01-01-05
1.1.16Linux-01-01-05
1.1.17Linux-01-01-05
2日志配置
2.1.1Linux-02-01-01
编号
Linux-02-01-01
名称
审核登陆
实施目的
对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP地址等内容。
问题影响
非法访问,恶意攻击。
系统当前状态
查看httpd.conf文件中的ErrorLog、LogFormat(cathttpd.conf|grepErrorLog)
查看ErrorLog指定的日志文件如logs/error_log中的内容是否完整(catlogs/error_log)
实施步骤
1、参考配置操作
编辑httpd.conf配置文件,设置日志记录文件、记录内容、记录格式。
LogLevelnotice
ErrorLoglogs/error_log
LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Accept}i\"\"%{Referer}i\"\"%{User-Agent}i\""combined
CustomLoglogs/access_logcombined
ErrorLog指令设置错误日志文件名和位置。
错误日志是最重要的日志文件,Apachehttpd将在这个文件中存放诊断信息和处理请求中出现的错误。
若要将错误日志送到Syslog,则设置:
ErrorLogsyslog。
CustomLog指令设置访问日志的文件名和位置。
访问日志中会记录服务器所处理的所有请求。
LogFormat设置日志格式。
LogLevel用于调整记录在错误日志中的信息的详细程度,建议设置为notice。
回退方案
恢复原始状态。
判断依据
查看logs目录中相关日志文件内容,记录完整。
实施风险
中
重要等级
★★
备注
3通信协议
3.1.1Linux-03-01-01
编号
Linux-03-01-01
名称
更改默认端口
实施目的
更改Apache服务器默认端口,防止非法访问。
问题影响
恶意攻击。
系统当前状态
查看httpd.conf文件,查看端口是否与原来相同。
实施步骤
1、参考配置操作
(1)修改httpd.conf配置文件,更改默认端口到8080
Listenx.x.x.x:
8080
(2)重启Apache服务
回退方案
恢复原始状态。
判断依据
1、判定条件
使用8080端口登陆页面成功
2、检测操作
登陆http:
//ip:
8080
实施风险
高
重要等级
★
备注
4设备其他安全要求
4.1.1Linux-04-01-01
编号
Linux-04-01-01
名称
补丁修复
实施目的
升级APACHE修复漏洞
问题影响
容易引起恶意攻击。
系统当前状态
查看版本
Linux:
apachectl-V
实施步骤
到www.apache.org下载新版本的APACHE
公开的apache漏洞
2008-08-11
ApacheTomcat<=6.0.18UTF8DirectoryTraversalVulnerability
2008-07-18
Apachemod_jk1.2.19RemoteBufferOverflowExploit(win32)
2008-07-17
BeaWeblogicApacheConnectorCodeExec/DenialofServiceExploit
2008-04-06
ApacheTomcatConnectorjk2-2.0.2(mod_jk2)RemoteOverflowExploit
2008-03-31
mod_jk2v2.0.2forApache2.0RemoteBufferOverflowExploit(win32)
2007-10-21
ApacheTomcat(webdav)RemoteFileDisclosureExploit(sslsupport)
2007-10-14
ApacheTomcat(webdav)RemoteFileDisclosureExploit
2007-07-08
ApacheTomcatConnector(mod_jk)RemoteExploit(exec-shield)
2007-06-22
Apachemod_jk1.2.19/1.2.20RemoteBufferOverflowExploit
2007-05-26
Apache2.0.58mod_rewriteRemoteOverflowExploit(win2k3)
2007-04-07
ApacheMod_RewriteOff-by-oneRemoteOverflowExploit(win32)
2007-02-28
Ubuntu/DebianApache1.3.33/1.3.34(CGITTY)LocalRootExploit
2006-08-21
Apache<1.3.37,2.0.59,2.2.3(mod_rewrite)RemoteOverflowPoC
2006-07-23
ApacheTomcat<5.5.17RemoteDirectoryListingVulnerability
2005-06-20
Apache<=2.0.49ArbitraryLongHTTPHeadersDenialofService
2005-03-04
Apache<=2.0.52HTTPGETrequestDenialofServiceExploit
2005-01-16
Apache(mod_auth_radius)RemoteDenialofServiceExploit
2004-11-18
Apache2.0.52MultipleSpaceHeaderDenialofServiceExploit(v2)
2004-11-02
Apache2.0.52MultipleSpaceHeaderDoS(ccode)
2004-11-02
Apache2.0.52MultipleSpaceHeaderDoS(Perlcode)
2004-10-21
Apache<=1.3.31mod_includeLocalBufferOverflowExploit
2004-09-16
htpasswdApache1.3.31LocalExploit
2004-08-02
ApacheHTTPdArbitraryLongHTTPHeadersDoS(cversion)
2004-07-22
ApacheHTTPdArbitraryLongHTTPHeadersDoS
2004-01-21
ApacheOpenSSLASN.1parsingbugs<=0.9.6jBruteForceExploit
2003-12-06
Apache1.3.*-2.0.48mod_userdirRemoteUsersDisclosureExploit
2003-11-20
Apachemod_gzip(withdebug_mode)<=1.2.26.1aRemoteExploit
2003-07-28
Apache1.3.xmod_myloRemoteCodeExecutionExploit
2003-06-08
Apache<=2.0.45APRRemoteExploit-Apache-Knacker.pl
2003-05-29
WebfrootShoutbox<2.32(Apache)RemoteExploit
2003-04-11
Apache<=2.0.44LinuxRemoteDenialofServiceExploit
2003-04-09
ApacheHTTPServer2.xMemoryLeakExploit
2003-04-04
ApacheOpenSSLRemoteExploit(MultipleTargets)(OpenFuckV2.c)
回退方案
升级补丁的风险极高,必须在万无一失的条件下升级,如当前版本没有漏洞不建议升级
判断依据
判断是否漏洞。
实施风险
高
重要等级
★★★
备注
4.1.2Linux-04-01-02
编号
Linux-04-01-02
名称
禁用ApacheServer中的执行功能
实施目的
避免用户直接执行Apache服务器中的执行程序,而造成服务器系统的公开化。
问题影响
越权使用造成非法攻击。
系统当前状态
#ls-al`whichapachectl`
#apachectl–V|grepSERVER_CONFIG
实施步骤
在配置文件access.conf或httpd.conf中的Options指令处加入IncludesNOEXEC选项,用以禁用ApacheServer中的执行功能。
避免用户直接执行Apache服务器中的执行程序,而造成服务器系统的公开化。
备份access.conf或httpd.conf文件
修改:
OptionsIncludesNoexec
回退方案
恢复access.conf和httpd.conf文件,重启APACHE
判断依据
看是否禁用了ApacheServer
实施风险
中
重要等级
★
4.1.3Linux-04-01-03
编号
Linux-04-01-03
名称
隐藏Apache的版本号及其它敏感信息
实施目的
隐藏Apache的版本号及其它敏感信息
问题影响
越权使用造成非法攻击。
系统当前状态
#ls-al`whichapachectl`
#apachectl–V|grepSERVER_CONFIG
实施步骤
默认情况下,很多Apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的Apache模块。
这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。
添加到你的httpd.conf文件中:
ServerSignatureOff
ServerTokensProd
补充说明:
ServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。
ServerTokens目录被用来判断Apache会在ServerHTTP响应包的头部填充什么信息。
如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:
Server:
Apache
也可以通过源代码和安全模块进行修改
回退方案
将备份的httpd.conf文件恢复,重新启动APACHE
判断依据
访问看是否给隐藏了。
实施风险
低
重要等级
★
4.1.4Linux-04-01-04
编号
Linux-04-01-04
名称
Apache413错误页面跨站脚本漏洞修复
实施目的
修复ApacheHTTPServer处理畸形用户请求时存在漏洞
问题影响
远程攻击者可能利用此漏洞获取脚本源
系统当前状态
Cathttpd.conf
实施步骤
ApacheHTTPServer处理畸形用户请求时存在漏洞,远程攻击者可能利用此漏洞获取脚本源码。
向Apache配置文件httpd.conf添加ErrorDocument413语句禁用默认的413错误页面。
回退方案
恢复原始状态。
判断依据
警告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。
使用者风险自负!
请求:
GET/HTTP/1.1
Host:
Connection:
close