Linux 安全基线检查

一、系统及补丁情况

1. Linux 查看内核版本(大于2.6)(I级)

  • uname -a
  • cat /proc/version

2. Linux 查看系统版本

  • lsb_release -a
  • cat /etc/issue

二、身份鉴别

1. 系统是否存在重复的 UID(II级)

  • UID(UserID)——用户标识号,它与用户名唯一对应,Linux 以 UID 作为用户的唯一标识,Linux中超级用户 root 的 UID 为 0,可以直接使用 id 命令查看当前用户的 UID。可以查看 passwd 文件以查看所有用户的 UID 等基本信息:
  • vim /etc/passwd

三、密码控制

1. 密码的生命周期最大为 90 天(III级)

2. 密码可以被立即修改(III级)

3. 密码的最小长度为 8 位(III级)

4. 密码到期的提醒,一般建议 7 天(III级)

  • 查看并修改 login.defs 文件:
  • vim /etc/login.defs
  • 检查并修改如下内容:
    PASS_MAX_DAYS 90 #一个密码可使用的最大天数
    PASS_MIN_DAYS 0 #两次密码修改之间最小的间隔天数
    PASS_MIN_LEN 8 #密码最小长度
    PASS_WARN_AGE 7 #密码过期前给出警告的天数

5. 系统与其他主机不存在信任关系(I级)

  • 检查系统中是否存在 hosts.equiv, .rhosts, .netrc 文件,以及内容是否为空。

  • /etc/hosts.equiv 文件包含远程系统的可信主机列表,每行显示一台主机。如果用户尝试从此文件中列出的主机之一远程登录(使用 rlogin 命令),并且如果远程系统可以访问用户的口令项,则远程系统允许用户在不使用口令的情况下登录。

  • .rhosts 文件是 /etc/hosts.equiv 文件的用户等效文件。此文件包含主机-用户组合列表,而不包含一般意义的主机。如果此文件中列出了主机-用户组合,则指定用户将被授予从指定主机登录而不必提供口令的权限。

  • .netrc 文件配置的是 ftp 缺省登录名和密码。

  • 可以使用 find 命令搜索并删除 .rhosts 文件:
    find home-directories -name .rhosts -print -exec rm {} \;

    home-directories: 标识指向用户起始目录所在目录的路径,一次可输入多个路径来搜索多个起始目录;
    -name host:标识文件名;
    -print 输出当前路径名;
    -exec rm {} \:指示 find 命令将 rm 命令应用于通过匹配文件名标识的所有文件;
    find 命令将从指定目录开始搜索名为 .rhosts 的所有文件,如果找到此类文件,find 将在屏幕上输出相应路径并删除该文件。

四、访问控制

1. 系统已设定了正确的 umask 值 022 (III级)

  • umask 用于指定目前用户在建立文件或目录时的权限默认值,umask 设置的是权限值的“补码”,而我们常用的chmod设置的是文件权限码,默认情况下的 umask 值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2)。

2. 锁定系统中不必要的用户(IV级)

  • 使用 passwd 命令锁定、解锁和检查 Linux 中用户账户的状态:
    passwd -l username #锁定用户账户
    passwd -u username #解锁用户账户
    passwd -S username #检查用户账户锁定状态

  • 使用 usermod 命令锁定、解锁和检查 Linux 中用户账户的状态:
    usermod --lock username #锁定用户账户
    usermod -L username #锁定用户账户
    usermod -unlock username #解锁用户账户
    usermod -U username #解锁用户账户

  • 可以通过查看 /etc/shadow 文件来检查用户锁定状态,如果用户账户被锁定,密码前面将添加感叹号。

3. 删除不必要的系统用户组(IV级)

  • groupdel groupname
  • 这个命令将会从 /etc/group 和 /etc/gshadow 文件中移除用户组条目,且成功时不会打印任何输出。可以通过使用下面的命令来验证用户组是否被移除:
  • getent group

4. 禁止 root 用户远程登录(II级)

  • 通过修改 /etc/ssh/sshd_congig 文件,将其中的 PermitRootLogin 改成 no,然后重新启动 ssh 服务就可以了:systemctl restart sshd.service

5. 系统重要文件访问权限是否为 644 或 600(II级)

五、安全审计

1. 系统是否启用安全审计(III级)

  • Linux audit 子系统是一个用于收集记录系统、内核、用户进程发生的行为事件的一种安全审计系统,该系统可以可靠的收集有关的任何与安全相关(或与安全无关)事件的信息,它可以帮助跟踪系统上执行过的一些操作。
    auditctl -s #查看系统是否启用 audit,enabled 值为 1 表示开启
    systemctl start auditd #启动 auditd 服务
    开启了 auditd 服务后,所有的审计日志会被记录在 /var/log/audit/audit.log 文件中,该文件记录格式是每行以 type 开头。

2. 是否启用审计策略(III级)

  • 一般针对系统的目录、退出、创建/删除目录、修改密码、添加组、计划任务等。audit 可以自定义对指定的文件或命令进行审计(如监视 rm 命令被执行、/etc/passwd 文件内容被改变),只要配置号对应规则即可,配置规则可以通过命令行(临时生效)或编辑配置文件(永久生效)两种方式实现。auditd 的配置文件为 /etc/audit/audit 下的 auditd.confaudit.rules, auditd.conf 主要定义了 auditd 服务日志的性能等相关配置,audit.rules 才是定义规则的文件。

六、剩余信息保护

1. 系统的命令行数是否保存为 30 条(IV级)

  • echo $HISTSIZE #查看历史命令保存条数
  • 修改历史命令保存条数,修改 /etc/profile 中的 HISTSIZE 变量即可。

七、xinetd 启动的不必要服务

1. chargen/chargen-udp、daytime/daytime-udp、echo/echo-udp、time/time-udp 等服务已被禁用(III级)

  • chargen 服务:最初设计用于测试网络状态,监听19端口(包括TCP和UDP),其中UDP协议存在“Chargen UDP服务远程拒绝服务攻击漏洞”。chargen一般不会使用,所以直接将该服务关闭即可。
  • daytime 服务:使用TCP 协议的 Daytime 守护进程,该协议为客户机实现从远程服务器获取日期和时间的功能。
    daytime-udp 服务:使用 UDP 协议的 Daytime 守护进程。
  • echo 服务:使用 TCP 协议的服务器回显客户数据服务守护进程;
    echo-udp 服务:使用 UDP 协议的服务器回显客户数据服务守护进程。
  • time 服务:采用 TCP 协议的从远程主机获取时间和日期的守护进程;
    time-udp 服务:采用 UDP 协议的从远程主机火气时间和日期的守护进程。

2. cpus-lpd 服务已被禁用(III级)

  • cups 服务:通用 UNIX 打印守护进程,为Linux提供第三代打印功能;
    cups-lpd 服务:cups 行打印守护进程。

3. finger 服务已被禁用(III级)

  • finger 服务:finger 服务器提供一项查询本地或远程主机用户公开信息的服务。

4. rexec 服务已被禁用(III级)

  • rexec 服务:允许网络用户远程执行命令。由于rexecd并没有提供好的认证方式,认证体系相当简单而易受攻击,因此它可能被攻击者用来扫描第三方的主机,攻击者可以通过该服务远程暴力穷举猜测用户名、口令,也可以监听其它授权用户的通信过程以获取口令明文,可以使用nmap 等工具进行扫描检测。

5. rlogin 服务已被禁用(III级)

  • rlogin 服务:远程登陆服务,通过 rlogin 命令,可以登录到远程系统。rlogin服务的认证体系相当简单而易受攻击,攻击者可以通过该服务远程暴力穷举猜测用户名、口令,也可以监听其它授权用户的通信过程以获取口令明文。

6. rsh 服务已被禁用(III级)

  • rsh 服务:远程 shell 服务,通过 rsh 命令,可以在指定的远程主机上启动一个 shell 并执行用户在 rsh 命令行中指定的命令,如果用户没有给出要执行的命令,rsh就用 rlogin 命令使用户登录到远程机上。

7. rsync 服务已被禁用(II级)

  • rsync 服务:远程数据同步服务,通过 rsync 命令,可以通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

8. ntalk 服务已被禁用(III级)

  • ntalk 服务:网络交谈(ntalk),远程对话服务和客户。

9. talk 服务已被禁用(III级)

  • talk 服务:远程对话服务和客户。

10. wu-ftpd 服务已被禁用(II级)

  • Wu-ftpd 服务:Internet上最流行的FTP守护程序。Wu-ftpd功能十分强大,可以构建多种类型FTP服务器。Wu-ftpd菜单可以帮助用户轻松地实现对FTP服务器的配置:支持构造安全方式的匿名FTP的访问,可以控制同时访问的用户的数量,限制可以允许访问的IP网段,并可以在一台主机上设置多个虚拟目录。

11. tftp 服务已被禁用(III级)

  • tftp 服务:TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。基于 UDP 协议实现,端口号为69。

12. ipop2 服务已被禁用(III级)

  • ipop2 服务:POP2 邮件服务器。

13. ipop3 服务已被禁用(III级)

  • ipop3 服务:POP3 邮件服务器。

14. telnet 服务已被禁用(III级)

  • telnet 服务:Internet 远程登录服务。

15. xinetd 服务已被禁用(IV级)

  • xinted 服务:新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。

八、其他不必要服务

1. sendmail 服务已被禁用(II级)

  • sendmail 服务:实现邮件发送/接受的邮件传输代理程序。

2. xfs 服务已被禁用(IV级)

  • xfs 服务:X Window 字型服务器守护进程,为本地和远程 X 服务器提供字型集。

3. apmd 服务已被禁用(III级)

  • apmd:电源管理模块。如果支持 acpid,就不需要 apmd,可以关闭。

4. canna 服务已被禁用(IV级)

  • canna:日语转换引擎。

5. freewnn 服务已被禁用(IV级)

6. gpm 服务已被禁用(III级)

  • gpm命令是linux的虚拟控制台下的鼠标服务器,用于在虚拟控制台下实现鼠标复制和粘贴文本的功能。

7. innd 服务已被禁用(III级)

  • innd:Usenet新闻服务器守护进程。

8. irda 服务已被禁用(IV级)

  • irda:红外端口守护进程。

9. isdn 服务已被禁用(IV级)

  • isdn:isdn启动和中止服务守护进程。

10. kdcrotate 服务已被禁用(IV级)

  • kdcrotate:设置配置文件 /etc/krb5.con 中的 kdcs 表项。

11. lvs 服务已被禁用(IV级)

  • lvs:负载调度器,一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。

12. mars-nwe 服务已被禁用(IV级)

  • mars-nwe:mars-nwe文件和用于Novell的打印服务器。

13. oki4daemon 服务已被禁用(IV级)

  • oki4daemon:

14. rstatd 服务已被禁用(III级)

  • rstatd:一个为 LAN 上的其它机器收集和提供系统信息的守候进程。

15. rusersd 服务已被禁用(III级)

  • rusersd:远程用户定位服务,这是一个基于RPC的服务,它提供关于当前记录到LAN上一个机器日志中的用户信息。

16. rwalld 服务已被禁用(III级)

  • rwalld:激活 rpc.rwall 服务进程,这是一项基于 RPC 的服务,允许用户给每个注册到 LAN 机器上的其他终端写消息。

17. rwhod 服务已被禁用(III级)

  • rwhod:激活 rwhod 服务进程,它支持 LAN 的 rwho 和 ruptime 服务。

18. wine 服务已被禁用(IV级)

  • wine:Wine 是 Wine Is Not an Emulator 的缩写,其实是一个转换层(或程序装入器),能够在Linux及与POSIX兼容的其他类似操作系统上运行Windows应用程序。

19. smb 服务已被禁用(III级)

  • smb:Samba 文件共享/打印服务守护进程。

20. nfs 服务已被禁用(III级)

  • nfs:网络文件系统守护进程。

21. autofs/nfslock 服务已被禁用(III级)

  • autofs:自动安装管理进程 automount,与 NFS 相关,依赖于 NIS 服务器。
  • nfslock:NFS 是一个流行的通过 TCP/IP 网络共享文件的协议,此守护进程提供了 NFS 文件锁定功能。

22. ypbind 服务已被禁用(III级)

  • ypbind:为 NIS(网络信息系统)客户机激活ypbind服务进程。

23. ypserv/yppasswdd 服务已被禁用(III级)

  • ypserv:NIS主服务器守护进程。
  • yppasswdd:NIS口令服务器守护进程。

24. portmap 服务已被禁用(III级)

  • portmap:该守护进程用来支持 RPC 连接,RPC 被用于 NFS 以及 NIS 等服务。

25. netfs 服务已被禁用(III级)

  • netfs:Network Filesystem Mounter,该进程安装和卸载 NFS、SAMBA 和 NCP 网络文件系统。

26. cups 服务已被禁用(III级)

  • cups:cups(Common UNIX Printing System)是通用UNIX打印守护进程,为Linux提供第三代打印功能。

27. lpd 服务已被禁用(III级)

  • lpd:lpd 是老式打印守护程序,负责将 lpr 等程序提交给打印作业。

28. snmpd 服务已被禁用(III级)

  • snmpd:本地简单网络管理守护进程。

29. named 服务已被禁用(III级)

  • named:DNS(BIND) 服务器守护进程。

30. postgresql 服务已被禁用(III级)

  • postgresql: PostgreSQL 关系数据库引擎。

31. mysqld 服务已被禁用(III级)

  • mysqld:一个快速高效可靠的轻型 SQL 数据库引擎守护进程。

32. webmin 服务已被禁用(II级)

  • webmin:开源控制面板,它允许你通过简单易用的 Web 界面,就可以管理你的 Linux 服务器。

33. squid 服务已被禁用(II级)

  • squid:代理服务器 squid 守护进程。

34. kudzu 服务已被禁用(IV级)

  • kudzu:硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。

九、其他安全配置

1. 系统已经加固了 TCP/IP 协议栈(IV级)

  • 检查/etc/sysctl.conf是否存在以下内容:
    net.ipv4.tcp_max_syn_backlog=4096
    net.ipv4.conf.all.rp_filter=1
    net.ipv4.conf.accept_source_route=0
    net.ipv4.conf.all.accept_redirects=0
    net.ipv4.conf.secure_redirects=0
    net.ipv4.conf.default.accept_source_route=0
    net.ipv4.conf.default.accept_redirects=0
    net.ipv4.conf.default.secure_redirects=0

2. 系统禁用 X-Windows 系统(III级)

3. 移动介质使用 nosuid 挂载(IV级)

  • 检查与 /etc/fstab 文件夹、/dev/floppy/dev/cdrom 相关的条目

4. /tmp 和 /var/tmp 目录具有粘滞位(II级)

  • 例如:
  • ls -al/ | grep tmp

5. root PATH 环境变量,不包含当前目录(II级)

  • echo $PATH
posted @   SaulMiller  阅读(3000)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示