当前位置: 首页 > news >正文

Linux操作系统安全加固

掌握的加固点:

  1. 用户系统检查

  2. 口令策略检测

  3. 日志审计检查

  4. 系统服务检查

  5. 访问控制检查


2.1.1用户系统检查

#系统内核版本检查
  • 判断依据:无

  • 检查方式:通过命令uname -a查看系统内核,或者cat /etc/os-release,或者cat /etc/centos-release查看系统发行版本


#检查口令为空的账户
  • 判断依据:存在就是不符合

  • 知识预热:特殊的shell

    a. /bin/false:将用户的shell设置为/bin/false 用户会无法登陆,并且不会有任何提示 passwd文件中设置

    b. /sbin/nologin:nologin会礼貌回复用户一句话,然后给你拒绝登录

  • 检查方式:命令cat /etc/passwd,cat /etc/shadow查看密码栏为空的账户

  • 加固方式:删除密码为空的账户,或者给该账户添加密码。

    • userdel <username> 删除用户

    • passwd <username> 用户设置密码

passwd文件中可以设置a b操作

shadow可以查看用户的密码,如果用户名后面有*则代表该用户是无法被登录的,如果用户后面有!!则代表这个用户是没有密码的

查看命令:

1 [root@localhost ~]# awk -F":" '{if ($7!="/sbin/nologin" && $7!="/bin/false") print $1}' /etc/passwd > passwd
2 # 输出在passwd文件下,可以被用作登录的用户
3
4 [root@localhost ~]# awk -F":" '{if ($2=="!!") print $1}' /etc/shadow > shadow
5 # 列出 shadow 文件下密码为空的账户,在 shadow 文件中 "!!" 表示密码为空,"*" 表示账户被锁定
6
7 [root@localhost ~]# grep -f passwd shadow
8 oracle
9 # 比较输出的 passwd 和 shadow 结果,若存在同时命中的账户则不符合检查要求

#检查UID与Root相同的账户
  • 判断依据:存在即不合理

  • 知识预热:若UID为0则该账户与Root一样的权限

  • 检查方式:命令cat /etc/passwd查看第三位数字为0的账户

  • 加固方式:修改恶意账户的UID并删除恶意账户

检查命令

awk -F ":" '{if ($3==0 && $1!='root') print$0}' /etc/passwd
判断,passwd中第三块内容为0,但用户不是root的有哪些
​
#普通用户添加root权限
echo "guest:x:0:0::/:/bin/sh" >> /etc/passwd
#若要删除UID=0的用户则将UID修改成正常用户的UID

#检查core dump是否开启
  • 判断依据:开启即合理,关闭则不合理

  • 知识预热:内存镜像

    • 当程序运行过程中崩溃异常终止,操作系统会将程序当前的内存状态记录下来,保存在一个文件当中,这种行为叫做core dumo核心存储。

    • core dump 是内存快照,除了内存信息之外,有些关键的程序运行状态也会同时dump下来,例如寄存器信息、内存管理信息、其他处理器和操作系统状态信息

  • 检查方式:命令cat /etc/security/limits.conf查看

    • solt core 0

    • hard core 0

    • 是否存在,必须二者同时存在

  • 加固方式:添加或者修改配置文件


#检查硬盘使用情况

  • 判断依据:大于80%不符合

  • 检查方式:命令df -h查看硬盘使用率

  • 加固方式:对硬盘实施扩容或者删除部分不重要资源


#检查History历史命令条数设置
  • 判断依据:建议值为200

  • 检查方式:命令cat /etc/profile 查看HISTSIZE=的值

  • 加固方式:修改profile配置文件中HISTSIZE的值,建议修改为200

    • vi /etc/Profile

    • HISTSIZE = 200


#检查系统当前umask值
  • 判断依据:值022符合

  • 知识预热:

    • umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限补码,二chmod设置的是文件权限码

    • 系统管理员必须设置一个合理的umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限

  • 检查方式:命令umask输出当前umask的值

  • 加固方式:通过umask命令修改值为022

umask 022 即可修改umask的值

2.1.2口令策略检查

#检查密码最小长度
  • 判断依据:最小长度为8

  • 检查方式:查看cat /etc/login.defs查看PASS_MIN_LEN的值。login.defs是用户账号限制文件,但是里面的策略对ROOT无效

  • 加固方式:修改login.defs配置文件,修改密码最小长度值,建议修改为10

    • vi /etc/login.defs

    • PASS_MIN_LEN 10


#检查密码过期时间
  • 判断依据:值大于90不符合

  • 检查方式:命令cat /etc/login.defs查看PASS_MAX_DAYS的值

  • 加固方式:修改login.defs配置文件,建议修改为90

vi /etc/login.defs

PASS_MAX_DAYS 90


#检查密码认证失败次数
  • 判断依据:值大于5不符合

  • 知识预热:默认情况下在 pam.d/login及 /pamd.d/sshd 文件中不含有认证失败次数

  • 检查方式:命令cat /etc/pam.d/sshd , cat /etc/pam.d/login查看

    • auth required pam_tally2.so deny=5 lock_time=300 even_deny_root root_unlock_time=300


#检查密码复杂度
  • 判断依据:值未配置不符合

  • 知识预热:默认情况下没有密码复杂度

  • 检查方式:命令cat /etc/pam.d/system-auth查看

    • password requisite pam_cracklib.so retry= difok= minlen= ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict值是否配置

  • 加固方式:在pam.d/login配置文件中添加以上字段

retry= 尝试次数

difok= 新密码和旧密码最少不同字符数量

minlen= 最小密码长度

ucredit=-1 最少大写字母1个

lcredit=-3 最少小写字母3个

dcredit=-3最少数字3个

dictpath=/usr/share/cracklib/pw_dict 字典位置


#检查密码过期告警天数
  • 判断依据:值小于3不符合

  • 检查方式:命令cat /etc/login.defs查看PASS_WARN_AGE的值

  • 加固方式:修改login.defs配置文件中,PASS_WARN_AGE字段,建议值为3

    • vim /etc/login.defs

    • PASS_WARN_AGE 3


2.1.3日志审计检查

#检查是否开启日志审计功能
  • 判断依据:存在则符合

  • 检查方式:命令 ps -ef 查看是否存在syslogd服务

  • 加固方式:通过systemctl命令打开日志审计功能 systemctl start rsyslog


#检查是否开启审计功能
  • 判断依据:存在则符合

  • 检查方式:命令ps -ef 查看是否存在auditd服务

  • 加固方式:通过systemctl命令打开审计服务,systemctl start auditd


#检查是否对登录进行记录
  • 判断依据:存在则符合

  • 检查方式:wtmp该日志文件永久记录每个用户登录、注销及系统启动、停机事件、需要使用last命令查看

  • 检查方式:命令last -f /var/log/wtmp 查看是否有返回结果


2.1.4检查系统服务

#检查是否启动talk服务
  • 判断依据:存在即不合理

  • 知识预热:Linux不重要的服务,用于同一网络下用户之间的交流,存在就会有风险

  • 检查方式:ps -ef | grep talk查看服务以及ntalk服务

  • 加固方式:K掉它,并禁止自动启动

    • kill -9 <PID>

    • systemctl disable <talk service name>


#是否启用sendmail服务

判断依据:存在即不合理

检查方式:命令ps -ef | grep sendmail查看服务

加固方式:k掉sendmail服务,禁止开机自启


#是否启用FTP服务
  • 判断:存在不合理

  • 检查:ps -ef | grep ftp

  • 加固:k掉,禁止自启动


#是否启用TELNET服务
  • 判断:存在不合理

  • 检查:ps -ef | grep telnet

  • 加固:k掉,禁止自启动


2.1.5访问控制检查

#检查系统登陆和SSH登陆超时时间
  • 判断依据:存在即符合

  • 知识预热:默认情况下在profile中没有配置相关timeout参数

  • 检查方式:命令cat /etc/profile查看 export TMOUT=的值

  • 加固方式:在profile中追加:export TMOUT的值,建议设置100

    • vim /etc/profile

    • export TMOUT=100


#检查SSH协议是否使用SSH2
  • 判断依据:存在即合理

  • 知识预热:

  • 检查方式:命令cat /etc/ssh/sshd_config,cat /etc/ssh2/ssh2d_config查看Protocol 2配置

  • 加固方式:将ssh的协议类型改为ssh2,若不存配置则追加字段刀sshd_config配置文件中

    • vim /etc/ssh/sshd_config

    • Protocol 2


#检查是否允许root账户远程连接SSH
  • 判断依据:值为no则符合

  • 知识预热:

  • 检查方式:命令 cat /etc/ssh/sshd_config , cat /etc/ssh2/ssh2d_config查看PermitRootLogin的值

  • 加固方式:修改PermitRootLogin的值为no,若不存则追加字段刀sshd_config配置文件下即可

    • vim /etc/ssh/sshd_config

    • PermitRootLogin no


#检查是否允许所有IP访问主机
  • 判断依据:值为ALL或者没配置 则不符合

  • 知识预热:

  • 检查方式:命令cat /etc/hosts.allow查看sshd:的值

  • 加固方式:在hosts.allow配置文件中追加允许访问的ip地址

    • ssh允许单个ip地址:sshd:192.168.222.1

    • ssh允许ip段:sshd:192.168.222.


#检查是否拒绝所有ip访问主机
  • 判断依据:值ALL符合

  • 知识预热:

  • 检查方式:命令 cat /etc/hosts.deny查看sshd:的值

  • 加固方式:在hosts.deny中追加sshd:ALL

    • 关于拒绝所有主机会不会造成业务问题,答案是不会。因为deny和前面的allow存在先后关系,它会先允许allow文件中的ip地址通过,然后再拒绝除allow文件外的ip


相关文章:

  • Maven私服搭建与登录全攻略
  • Qt进阶开发:QTcpServer的的详解
  • [高阶数据结构]二叉树经典面试题
  • 蚁群算法赋能生鲜配送:MATLAB 实现多约束路径优化
  • Vue:插值表达
  • pytorch模型画质增强简单实现
  • 关系型数据库和非关系型数据库
  • 一次IPA被破解后的教训(附Ipa Guard等混淆工具实测)
  • rust 全栈应用框架dioxus server
  • AI大模型学习十九、利用Dify+deepseekR1 使用文件上传搭建文章理解助手
  • FastMCP v2:构建MCP服务器和客户端的Python利器
  • java 中 DTO 和 VO 的核心区别
  • 一键解锁嵌入式UI开发——LVGL的“万能配方”
  • ASP.NET Core Identity框架使用指南
  • 如何使用 React Hooks 替代类组件的生命周期方法?
  • 【AI大语言模型本质分析框架】
  • 2025年第十六届蓝桥杯软件赛省赛C/C++大学A组个人解题
  • uniapp|商品列表加入购物车实现抛物线动画效果、上下左右抛入、多端兼容(H5、APP、微信小程序)
  • c++STL-STL简介和vector的使用
  • 数据结构(五)——串、数组、广义表
  • 第四届长三角国际应急博览会开幕,超3000件前沿装备技术亮相
  • 沙县小吃中东首店在沙特首都利雅得开业,首天营业额5万元
  • 习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 万科:存续债券均正常付息兑付
  • 秦洪看盘|预期改善,或迎来新的增量资金
  • 网信部门曝光网络谣言典型案例,“AI预测彩票号码百分百中奖”等在列