Linux系统基线检查

VSole2023-03-21 15:55:16

1

查询系统信息

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

uname -acat /proc/version

2. Linux 查看系统版本

lsb_release -acat /etc/issue

2

身份鉴别

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

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

vim /etc/passwd

3

密码审查

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

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

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

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

查看并修改 login.defs 文件:

vim /etc/login.defs

检查并修改如下内容:

PASS_MAX_DAYS 90 #一个密码可使用的最大天数PASS_MIN_DAYS 0 #两次密码修改之间最小的间隔天数PASS_MIN_LEN 8 #密码最小长度PASS_WARN_AGE 7 #密码过期前给出警告的天数

4

访问控制

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级)

5

安全审计

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.conf 和 audit.rules, auditd.conf 主要定义了 auditd 服务日志的性能等相关配置,audit.rules 才是定义规则的文件。

6

剩余价值保护

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

echo $HISTSIZE #查看历史命令保存条数

修改历史命令保存条数,修改 /etc/profile 中的 HISTSIZE 变量即可。

7

不必要服务启动项

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服务。

8

其它配置检查

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

检查/etc/sysctl.conf是否存在以下内容:

net.ipv4.tcp_max_syn_backlog=4096net.ipv4.conf.all.rp_filter=1net.ipv4.conf.accept_source_route=0net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.secure_redirects=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.default.accept_redirects=0net.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
linux服务器linux系统
本作品采用《CC 协议》,转载必须注明作者和本文链接
"请用root用户执行此脚本!#最近启动时间?#运行时间(天)?#相同ID的用户?#密码过期(天)?#允许root远程登录?#僵尸进程数量?#自启动服务数量?"系统巡检脚本:Version $VERSION"
Linux的应用越来越普遍,且绝大多数嵌入式系统都使用的是Linux系统。但近期,黑客对Linux服务器进行DDoS攻击的次数飙升,受DDoS攻击影响的有70多个国家,其中77%的攻击都发生在中国,最容易受攻击的国家还有法国和荷兰。黑客主要是利用C&C 服务器来集中管理并执行DDoS攻击,Linux服务器便成了其主要的攻击目标。面对如此猖獗的黑客攻击,Linux服务器如何做好预防工作呢?部署
假如你想要搭建一个Linux服务器,并且希望可以长期维护的话,就需要考虑安全性能与速度等众多因素。一份正确的linux基本安全配置手册就显得格外重要。#为删除你系统上的用户,用下面的命令:[root@c1gstudio]# userdel username#批量删除方式#这里删除"adm lp sync shutdown halt mail news uucp operator games gopher ftp "账号#如果你开着ftp等服务可以把ftp账号保留下来。for i in adm lp sync shutdown halt mail news uucp operator games gopher ftp ;do userdel $i ;done
#更改SSH端口,最好改为10000以上,别人扫描到端口的机率也会下降。防火墙要开放配置好的端口号,如果是阿里云服务器,你还需要去阿里云后台配置开发相应的端口才可以,否则登不上哦!如果你觉得麻烦,可以不用改。#禁用版本1协议, 因为其设计缺陷, 很容易使密码被黑掉。关键在于环境变量的不同,su -的环境变量更全面。#禁止空密码登陆。保存,用 uusama 账户登录后,直接获取的就是 root 帐号的权限。
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程,响应时间并不是那么重要,相反,能够长时间处理高负载才是最关键的。
当企业发生网络安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,同时还需进一步查找入侵来源,还原入侵事故过程,给出解决方案与防范措施,为企业挽回或减少经济损失。 常见的网络安全事件:
SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。但是,不安全的默认配置也会带来各种安全风险。具有开放 SSH 访问权限的服务器的 root 帐户可能存在风险。因此,有必要了解 SSH 安全性。这是在 Linux 上保护 SSH 服务器连接的方法。关闭 root 用户的服务器访问是一种防御策略,可以防止攻击者实现入侵系统的目标。例如,您可以创建一个名为exampleroot的用户,如下所示:useradd?
如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。
VSole
网络安全专家