- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
今天为大家带来了超详细的 Linux 系统安全配置方案,涵盖账号管理、密码策略、访问控制等核心模块!本文基于企业级安全基线要求,深度解析 Centos7.4 系统加固实操,包含完整的配置命令、检查方法及安全基线说明。帮助大家打造全方位安全防护体系!
一、账号管理
(一)删除多余账号
1、安全基线说明
即删除无用账号。
2、操作指南
(1)参考配置操作
检查 /etc/passwd文件属性设置是否为 644:ls -l /etc/passwd,
查看是否存在可能无用的账号:more /etc/passwd,无用账号类似:uucp nuucp lpd guest printq;
删除用户:userdel username
3、检查办法
(1)判定条件
与管理员确认是否存在无用账号,若存在则删除掉。
(二)禁止账号共享
1、安全基线说明
即禁止共享账号,按照不同的用户分配不同的账号。
2、操作指南
(1)参考配置操作
命令cat /etc/passwd 查看当前所有用户的信息,与管理员确认是否有共享账号情况存在。
(2) 补充操作说明
避免共享账号存在,应按照不同的用户分配不同的账号。
3、检查办法
(1)判定条件
不应存在账号共享的情况。
(三)删除无用用户组
1、安全基线说明
即删除无用的用户组。
2、操作指南
(1)参考配置操作
查看用户组文件权限是否为644:ls -l /etc/group
more /etc/group ,查看用户组是否存在如下可能无用组类似:uucp printq。
删除用户组的命令:groupdel groupname
3、检查办法
(1)判定条件
删除无用的用户组。
(四)指定用户组成员使用su命令
1、安全基线说明
即指定用户组成员使用su命令。
2、操作指南
(1)参考配置操作
编辑su文件(vi /etc/pam.d/su),在开头添加下面内容:
auth required pam_wheel.so use_uid
这表明只wheel组的成员可以使用su命令成为root用户。普通用户之间无法随意su,只能用已设置账户su到其他账户,其他账户不能su到已设置账户。
添加方法为:# usermod –G wheel username
3、检查办法
(1)判定条件
#cat /etc/pam.d/su,查看是否配置以上的内容。
(五)禁止除root之外UID为0的用户
1、安全基线说明
即禁止除root之外UID为0的用户。
2、操作指南
(1)参考配置操作
执行:awk -F: '($3 == 0) { print $1 }' /etc/passwd
返回值应只有root。
若存在其他值则使用userdel username命令删除该用户。
(2) 补充操作说明
UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0。
3、检查办法
(1)判定条件
除了root用户外,不存在UID为0 的用户。
二、密码策略
(一)密码长度及复杂度策略
1、安全基线说明
即密码必须符合密码长度及复杂度的要求,防止暴利破解。
2、操作指南
(1)参考配置操作
a、修改/etc/login.defs文件
PASS_MIN_LEN 10 #密码最小长度
b、修改/etc/pam.d/system-auth文件,找到 password requisite pam_cracklib.so这么一行替换成如下(数字可以根据实际填):
password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict
参数含义:
尝试次数:5 新旧密码最少不同字符:3 最小密码长度:10 最少大写字母:1 最少小写字母:3 最少数字:3 密码字典:/usr/share/cracklib/pw_dict。
3、检查办法
(1)判定条件
执行:more /etc/login.defs
检查
PASS_MAX_DAYS/PASS_MIN_LEN/PASS_MIN_DAYS/PASS_WARN_AGE参数,
其中PASS_MIN_LEN 为${key} #设定最小用户密码长度为${key} 位,其中修改其参数使其符合要求。
执行:awk -F: '($2 == "") { print $1 }' /etc/shadow,
检查是否存在空口令账号,将口令配置为强口令。
创建一个普通账号,为用户配置与用户名相同的口令、只包含字符或数字的简单口令以及长度短于${key} 的口令,查看系统是否对口令强度要求进行提示;输入带有特殊符号的复杂口令、普通复杂口令,查看系统是否可以成功设置。
(二)配置密码的生存期
1、安全基线说明
即配置密码的生产期,保证密码的更新,防止密码被泄露。
2、操作指南
(1)参考配置操作
编辑/etc/login.defs 文件中指定配置项决定,其中:
PASS_MAX_DAYS 配置项决定密码最长使用期限;
PASS_MIN_DAYS 配置项决定密码最短使用期限;
PASS_WARN_AGE 配置项决定密码到期提醒时间。
3、检查办法
(1)判定条件
cat /etc/login.defs 查看对应属性值;
三、访问控制
(一)限制非授权终端登录
1、安全基线说明
即设定终端登录安全策略及措施,非授权终端无法登录管理。
2、操作指南
(1)参考配置操作
修改/etc/hosts.deny、/etc/hosts.allow中对终端登录限制的相关配置参数。
3、检查办法
(1)判定条件
查看/etc/hosts.deny、/etc/hosts.allow配置文件,是否设定了终端登录限制的相关配置参数。
(二)远程管理使用SSH加密协议
1、安全基线说明
即系统应配置使用ssh 等加密协议进行远程登录维护,并安全配置sshd 的设置。不使用telnet 进行远程登录维护。
2、操作指南
(1)参考配置操作
查看SSH 服务状态:# ps –elf|grep ssh
手动编辑/etc/ssh/sshd_config,配置相关选项(可根据实际情况决定配置那些选项)。
SSHD 相关安全设置选项解释如下:
Protocol 2 #使用ssh2 版本
X11Forwarding yes #允许窗口图形传
输使用ssh 加密
IgnoreRhosts yes#完全禁止SSHD 使用.rhosts 文件
RhostsAuthentication no #不设置使用基于rhosts 的安全验证
RhostsRSAAuthentication no #不设置使用RSA 算法的基于rhosts 的安全验证
HostbasedAuthentication no #不允许基于主机白名单方式认证
PermitRootLogin no #不允许root 登录
PermitEmptyPasswords no #不允许空密码
Banner /etc/motd #设置ssh 登录时显示的banner
3、检查办法
(1)判定条件
查看SSH 服务状态:# ps -elf|grep ssh
查看telnet 服务状态:# ps -elf|grep telnet
应禁止telnet,使用ssh远程登录。
(三)限制root用户SSH远程登录
1、安全基线说明
即限制root用户远程登录,只允许本地登录。
2、操作指南
(1)参考配置操作
限制root从远程Telnet登录 ,
在/etc/securetty文件中配置CONSOLE=/dev/tty01
限制root 从远程ssh 登录,
修改/etc/ssh/sshd_config 文件,
将PermitRootLogin yes 改为PermitRootLogin no,重启sshd 服务。
3、检查办法
(1)判定条件
#service telnet status,判断是否安装Telnet;
#cat /etc/ssh/sshd_config,检测PermitRootLogin的配置。
四、资源控制
(一)登录超时时间配置
1、安全基线说明
即配置登录超时使登录后超过一段时间无操作后自动退出登录。
2、操作指南
(1)参考配置操作
通过修改帐户中“TMOUT”参数,可以实现此功能。TMOUT 按秒计算。编辑profile 文件(vi /etc/profile),在文件的后面加入下面这行:export TMOUT=(可根据情况设定)
这里的时间以秒未单位。
重新登录使配置生效。
3、检查办法
(1)判定条件
#cat /etc/profile,查看是否配置超时时间。
(二)远程连接的安全性配置(可选)
1、安全基线说明
.rhosts,.netrc,hosts.equiv等文件都具有潜在的危险,如无应用,应删除该文件。
2、操作指南
(1)参考配置操作
执行:find / -name .netrc,检查系统中是否有.netrc 文件,
执行:find / -name .rhosts ,检查系统中是否有.rhosts 文件
.rhosts,.netrc,hosts.equiv等文件都具有潜在的危险,如
无应用,删除以上文件。
3、检查办法
(1)判定条件
如无应用,删除.rhosts,.netrc,hosts.equiv文件。
(三)root用户环境变量的安全性
1、安全基线说明
确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组目录权限为777的目录。
2、操作指南
(1)参考配置操作
执行:
echo $PATH | egrep '(^|:)(\\.|:|$)'
检查是否包含父目录,
执行:
find `echo $PATH | tr ':' ' '` -type d \\( -perm -002 -o -perm -020 \\) -ls
检查是否包含组目录权限为777的目录。
确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组目录权限为777的目录。
3、检查办法
(1)判定条件
在非必要的情况下,不应包含组权限为777的目录。
(四)禁止ctrl+alt+delete功能键
1、安全基线说明
Linux默认情况下开启Ctrl+Alt+Del重启或关机的功能,为了避免误操作,禁止Ctrl+Alt+Del功能键。
2、操作指南
(1)参考配置操作
#查看/etc/inittab确认Ctrl+Alt+Del相关配置文件
cat /etc/inittab
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target #相关配置文件存放位置
#查看Ctrl+Alt+Del配置文件的属性信息
ls -ld /usr/lib/systemd/system/ctrl-alt-del.target
#删除软链接文件
rm -f /usr/lib/systemd/system/ctrl-alt-del.target
或者
mv /usr/lib/systemd/system/ctrl-alt-del.target /tmp
#重新加载初始化守护进程配置文件(Reload init daemon configuration)
init q
3、检查办法
(1)判定条件
按下Ctrl+Alt+Del不能重启或关机。
希望今天的分享能帮到大家,下期蓝队云将深入讲解日志审计、服务优化、内核加固等进阶内容!蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,也可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,蓝队云期待与你一起探索,助力你在 Linux 运维之路上稳步前行。
售前咨询
售后咨询
备案咨询
二维码
TOP