资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
Linux系统加固规范
山东省计算中心
2025年6月
1 账号管理、 认证授权
1.1.1 Linux-01-01-01
编号
Linux-01-01-01
名称
为不同的管理员分配不同的账号
实施目的
根据不同类型用途设置不同的帐户账号, 提高系统安全。
问题影响
账号混淆, 权限不明确, 存在用户越权使用的可能。
系统当前状态
cat /etc/passwd 记录当前用户列表
实施步骤
1、 参考配置操作
为用户创立账号:
#useradd username #创立账号
#passwd username #设置密码
修改权限:
#chmod 750 directory #其中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、 参考配置操作
# userdel lp
# groupdel lp
如果下面这些系统默认帐号不需要的话, 建议删除。
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/null username命令来更改username的shell
为/dev/null。
回退方案
恢复账号或者SHELL
判断依据
如上述用户不需要, 则锁定。
实施风险
中
重要等级
★★
备注
1.1.3 Linux-01-01-03
编号
Linux-01-01-03
名称
限制超级管理员远程登录
实施目的
限制具备超级管理员权限的用户远程登录。远程执行管理员
权限操作, 应先以普通权限用户远程登录后, 再切换到超级
管理员权限账。
问题影响
允许root远程非法登陆
系统当前状态
cat /etc/ssh/sshd_config
cat /etc/securetty
实施步骤
1、 参考配置操作
SSH:
#vi /etc/ssh/sshd_config
把
PermitRootLogin yes
改为
PermitRootLogin no
重启sshd服务
#service sshd restart
CONSOLE:
在/etc/securetty文件中配置: CONSOLE = /dev/tty01
回退方案
还原配置文件
/etc/ssh/sshd_config
判断依据
/etc/ssh/sshd_config 中 PermitRootLogin no
实施风险
高
重要等级
★★
备注
1.1.4 Linux-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.5 Linux-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命令, 给用户增
加口令。
例如: passwd test test。
回退方案
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命令, 给用户增
加口令。
例如: passwd test test。
回退方案
Root身份设置用户口令, 取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat /etc/passwd
实施风险
高
重要等级
★
备注
1.1.7 Linux-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命令, 给用户增
加口令。
例如: passwd test test。
回退方案
Root身份设置用户口令, 取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat /etc/passwd
实施风险
高
重要等级
★
备注
1.1.8 Linux-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命令, 给用户增
加口令。
例如: passwd test test。
回退方案
Root身份设置用户口令, 取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat /etc/passwd
实施风险
高
重要等级
★
备注
1.1.9 Linux-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命令, 给用户增
加口令。
例如: passwd test test。
回退方案
Root身份设置用户口令, 取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat /etc/passwd
实施风险
高
重要等级
★
备注
1.1.10 Linux-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命令, 给用户增
加口令。
例如: passwd test test。
回退方案
Root身份设置用户口令, 取消口令
如做了口令策略则失败
判断依据
登陆系统判断
Cat /etc/passwd
实施风险
高
重要等级
★
备注
1.1.11 Linux-01-01-11
1.1.12 Linux-01-01-12
1.1.13 Linux-01-01-05
1.1.14 Linux-01-01-05
1.1.15 Linux-01-01-05
1.1.16 Linux-01-01-05
1.1.17 Linux-01-01-05
2 日志配置
2.1.1 Linux-02-01-01
编号
Linux-02-01-01
名称
审核登陆
实施目的
对运行错误、 用户访问等进行记录, 记录内容包括时间, 用户使用的IP地址等内容。
问题影响
非法访问, 恶意攻击。
系统当前状态
查看httpd.conf文件中的 ErrorLog 、 LogFormat( cat httpd.conf | grep ErrorLog)
查看ErrorLog 指定的日志文件如 logs/error_log中的内容是否完整(cat logs/error_log)
实施步骤
1、 参考配置操作
编辑httpd.conf配置文件, 设置日志记录文件、 记录内容、 记录格式。
LogLevel notice
ErrorLog logs/error_log
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Accept}i\" \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
ErrorLog指令设置错误日志文件名和位置。错误日志是最重要的日志文件, Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误。若要将错误日志送到Syslog, 则设置: ErrorLog syslog。
CustomLog指令设置访问日志的文件名和位置。访问日志中会记录服务器所处理的所有请求。
LogFormat设置日志格式。LogLevel用于调整记录在错误日志中的信息的详细程度, 建议设置为notice。
回退方案
恢复原始状态。
判断依据
查看logs目录中相关日志文件内容, 记录完整。
实施风险
中
重要等级
★★
备注
3 通信协议
3.1.1 Linux-03-01-01
编号
Linux-03-01-01
名称
更改默认端口
实施目的
更改Apache服务器默认端口, 防止非法访问。
问题影响
恶意攻击。
系统当前状态
查看 httpd.conf文件, 查看端口是否与原来相同。
实施步骤
1、 参考配置操作
( 1) 修改httpd.conf配置文件, 更改默认端口到8080
Listen x.x.x.x:8080
( 2) 重启Apache服务
回退方案
恢复原始状态。
判断依据
1、 判定条件
使用8080端口登陆页面成功
2、 检测操作
登陆http://ip:8080
实施风险
高
重要等级
★
备注
4 设备其它安全要求
4.1.1 Linux-04-01-01
编号
Linux-04-01-01
名称
补丁修复
实施目的
升级APACHE修复漏洞
问题影响
容易引起恶意攻击。
系统当前状态
查看版本
Linux : apachectl -V
实施步骤
到 www.apache.org 下载新版本的APACHE
公开的apache 漏洞
-08-11
Apache Tomcat <= 6.0.18 UTF8 Directory Traversal Vulnerability
-07-18
Apache mod_jk 1.2.19 Remote Buffer Overflow Exploit (win32)
-07-17
Bea Weblogic Apache Connector Code Exec / Denial of Service Exploit
-04-06
Apache Tomcat Connector jk2-2.0.2 (mod_jk2) Remote Overflow Exploit
-03-31
mod_jk2 v2.0.2 for Apache 2.0 Remote Buffer Overflow Exploit (win32)
-10-21
Apache Tomcat (webdav) Remote File Disclosure Exploit (ssl support)
-10-14
Apache Tomcat (webdav) Remote File Disclosure Exploit
-07-08
Apache Tomcat Connector (mod_jk) Remote Exploit (exec-shield)
-06-22
Apache mod_jk 1.2.19/1.2.20 Remote Buffer Overflow Exploit
-05-26
Apache 2.0.58 mod_rewrite Remote Overflow Exploit (win2k3)
-04-07
Apache Mod_Rewrite Off-by-one Remote Overflow Exploit (win32)
-02-28
Ubuntu/Debian Apache 1.3.33/1.3.34 (CGI TTY) Local Root Exploit
-08-21
Apache < 1.3.37, 2.0.59, 2.2.3 (mod_rewrite) Remote Overflow PoC
-07-23
Apache Tomcat < 5.5.17 Remote Directory Listing Vulnerability
-06-20
Apache <= 2.0.49 Arbitrary Long HTTP Headers Denial of Service
-03-04
Apache <= 2.0.52 HTTP GET request Denial of Service Exploit
-01-16
Apache (mod_auth_radius) Remote Denial of Service Exploit
-11-18
Apache 2.0.52 Multiple Space Header Denial of Service Exploit (v2)
-11-02
Apache 2.0.52 Multiple Space Header DoS (c code)
-11-02
Apache 2.0.52 Multiple Space Header DoS (Perl code)
-10-21
Apache <= 1.3.31 mod_include Local Buffer Overflow Exploit
-09-16
htpasswd Apache 1.3.31 Local Exploit
-08-02
Apache HTTPd Arbitrary Long HTTP Headers DoS (c version)
-07-22
Apache HTTPd Arbitrary Long HTTP Headers DoS
-01-21
Apache OpenSSL ASN.1 parsing bugs <=0.9.6j BruteForce Exploit
-12-06
Apache 1.3.*-2.0.48 mod_userdir Remote Users Disclosure Exploit
-11-20
Apache mod_gzip (with debug_mode) <= 1.2.26.1a Remote Exploit
-07-28
Apache 1.3.x mod_mylo Remote Code Execution Exploit
-06-08
Apache <= 2.0.45 APR Remote Exploit -Apache-Knacker.pl
-05-29
Webfroot Shoutbox < 2.32 (Apache) Remote Exploit
-04-11
Apache <= 2.0.44 Linux Remote Denial of Service Exploit
-04-09
Apache HTTP Server 2.x Memory Leak Exploit
-04-04
Apache OpenSSL Remote Exploit (Multiple Targets) (OpenFuckV2.c)
回退方案
升级补丁的风险极高, 必须在万无一失的条件下升级, 如当前版本没有漏洞不建议升级
判断依据
判断是否漏洞。
实施风险
高
重要等级
★★★
备注
4.1.2 Linux-04-01-02
编号
Linux-04-01-02
名称
禁用Apache Server 中的执行功能
实施目的
避免用户直接执行Apache 服务器中的执行程序, 而造成服务器系统的公开化。
问题影响
越权使用造成非法攻击。
系统当前状态
# ls -al `which apachectl`
# apachectl –V | grep SERVER_CONFIG
实施步骤
在配置文件access.conf 或httpd.conf中的Options指令处加入Includes NO EXEC选项, 用以禁用Apache Server 中的执行功能。避免用户直接执行Apache 服务器中的执行程序, 而造成服务器系统的公开化。
备份access.conf 或httpd.conf文件
修改:
Options Includes Noexec
回退方案
恢复access.conf 和 httpd.conf文件, 重启APACHE
判断依据
看是否禁用了 Apache Server
实施风险
中
重要等级
★
4.1.3 Linux-04-01-03
编号
Linux-04-01-03
名称
隐藏Apache的版本号及其它敏感信息
实施目的
隐藏Apache的版本号及其它敏感信息
问题影响
越权使用造成非法攻击。
系统当前状态
# ls -al `which apachectl`
# apachectl –V | grep SERVER_CONFIG
实施步骤
默认情况下, 很多Apache安装时会显示版本号及操作系统版本, 甚至会显示服务器上安装的是什么样的Apache模块。这些信息能够为黑客所用, 而且黑客还能够从中得知你所配置的服务器上的很多设置都是默认状态。
添加到你的httpd.conf文件中:
ServerSignature Off
ServerTokens Prod
补充说明:
ServerSignature出现在Apache所产生的像404页面、 目录列表等页面的底部。ServerTokens目录被用来判断Apache会在Server HTTP响应包的头部填充什么信息。如果把ServerTokens设为Prod, 那么HTTP响应包头就会被设置成:
Server: Apache
也能够经过源代码和安全模块进行修改
回退方案
将备份的httpd.conf文件恢复, 重新启动APACHE
判断依据
访问看是否给隐藏了。
实施风险
低
重要等级
★
4.1.4 Linux-04-01-04
编号
Linux-04-01-04
名称
Apache 413错误页面跨站脚本漏洞修复
实施目的
修复Apache HTTP Server处理畸形用户请求时存在漏洞
问题影响
远程攻击者可能利用此漏洞获取脚本源
系统当前状态
Cat httpd.conf
实施步骤
Apache HTTP Server处理畸形用户请求时存在漏洞, 远程攻击者可能利用此漏洞获取脚本源码。
向Apache配置文件httpd.conf添加ErrorDocument 413语句禁用默认的413错误页面。
回退方案
恢复原始状态。
判断依据
警 告
以下程序(方法)可能带有攻击性, 仅供安全研究与教学之用。使用者风险自负!
请求:
GET / HTTP/1.1
Host: <BADCHARS>
Connection: close
Content-length: -1
[LF]
[LF]
实施风险
中
重要等级
★★★
备注
4.1.5 Linux-04-01-05
编号
Linux-04-01-05
名称
限制请求消息长度
实施目的
限制http请求的消息主体的大小。
问题影响
恶意攻击。
系统当前状态
Cat httpd.conf文件, 看是否与原来相同。
实施步骤
1、 参考配置操作
编辑httpd.conf配置文件, 修改为102400Byte
LimitRequestBody 102400
回退方案
恢复原始状态。
判断依据
1、 判定条件
检查配置文件设置。
2、 检测操作
上传文件超过100K将报错。
实施风险
中
重要等级
★
备注
4.1.6 Linux-04-01-06
编号
Linux-04-01-06
名称
错误页面处理
实施目的
Apache错误页面重定向。
问题影响
恶意攻击。
系统当前状态
查看 httpd.conf文件, 查看ErrorDocument文件是否与修改前相同。
实施步骤
1、 参考配置操作
(1) 修改httpd.conf配置文件:
ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html
Customxxx.html为要设置的错误页面。
(2)重新启动Apache服务
回退方案
恢复原始状态。
判断依据
1、 判定条件
指向指定错误页面
2、 检测操作
URL地址栏中输入http://ip/xxxxxxx~~~( 一个不存在的页面)
实施风险
高
重要等级
★
备注
4.1.7 Linux-04-01-07
编号
Linux-04-01-07
名称
拒绝服务防范
实施目的
防止恶意攻击
问题影响
恶意攻击。
系统当前状态
查看 httpd.conf文件, 查看Timeout等文件是否与原来相同。
实施步骤
1、 参考配置操作
(1) 编辑httpd.conf配置文件,
Timeout 10 KeepAlive On
KeepAliveTimeout 15
AcceptFilter http data
AcceptFilter https data
(2)重新启动Apache服务
回退方案
恢复原始状态。
判断依据
1、 判定条件
2、 检测操作
检查配置文件是否设置。
实施风险
高
重要等级
★
备注
4.1.8 Linux-04-01-08
编号
Linux-04-01-08
名称
删除缺省安装的无用文件
实施目的
防止恶意攻击
问题影响
恶意攻击。
系统当前状态
查看缺省的的HTML文件是否与原来相同。
实施步骤
1、 参考配置操作
删除缺省HTML文件:
# rm -rf /usr/local/apache2/htdocs/*
删除缺省的CGI脚本:
# rm –rf /usr/local/apache2/cgi-bin/*
删除Apache说明文件:
# rm –rf /usr/local/apache2/manual
删除源代码文件:
# rm -rf /path/to/httpd-2.2.4*
根据安装步骤不同和版本不同, 某些目录或文件可能不存在或位置不同。
回退方案
恢复原始状态。
判断依据
1、 判定条件
2、 检测操作
检查对应目录。
实施风险
高
重要等级
★
备注
展开阅读全文