Linux系统配置核查-【等保测评】网络安全等级保护测评 S3A3 计算环境操作系统(2)

a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计。

符合建议项

1、检查系统是否开启审计功能:

systemctl is-enabled auditd

Syslog and audit status

systemctl status auditd
systemctl status rsyslog

service auditd status
service rsyslog status

2、是否审核了审计功能启用前的进程:

grep “^\s*linux” /boot/grub2/grub.cfg

3、查看audit.rules中是否记录了修改日期和时间信息的事件(time-change)、修改用户/组信息事件(identity)、修改系统网络环境事件(system-locale)、记录用户登录退出事件(logins)、会话初始化信息(session)、访问控制权限修改事件(perm_mod)、未经授权的文件访问失败事件(access)、记录文件被重命名或修改属性、系统管理员操作(action)、内核模块的加载和卸载(modules)等等。

cat /etc/audit/audit.rules

ausearch -ts today

4、若有第三方审计工具或系统则记录其运行状态是否正常。

/var/log/messages 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一

/var/log/secure 与安全相关的日志信息

/var/log/maillog 与邮件相关的日志信息

/var/log/cron 与定时任务相关的日志信息

/var/log/spooler 与UUCP和news设备相关的日志信息

/var/log/boot.log 守护进程启动和停止相关的日志消息

ls -l /var/log/secure /var/log/audit/audit.log /var/log/cron /var/log/lastlog /var/log/messages /etc/rsyslog.conf /etc/audit/auditd.conf

结果记录

1)经核查,系统开启了安全审计功能,系统审核策略:rsyslog.service和auditd.service均为active (running) ,可保证6个月留存期;
2)经核查,部署了外部Syslog日志服务器收集审计日志,审计范围覆盖到每个用户;
3)经核查,部署了外部Syslog日志服务器收集审计日志,对重要的用户行为和重要安全事件进行审计。

b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。

符合建议项

**1.  查看当前系统时间:**date

确认当前系统时间是否为北京时间。

2.  查看日志信息(默认符合)

ausearch -i |more

在/var/log/目录下的文件中查看即可,如message日志

结果记录

经核查,Linux日志包括类型、信息、pid、uid、auid、ses、具体信息、用户名、地址、终端、结果。同时部署外部Syslog日志服务器收集审计日志,审计记录信息包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。

c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等。

1.确认本地审计记录文件权限

日志文件权限不高于644

2.是否定期备份

确认是否将syslog、audit日志定期备份到日志审计设备中(可以问业主如果没做外发有无设置日志定期保存到别的地方,如果是初测一般都没做)

3.查看轮替规则

若未定期备份审计记录,确认各日志的轮替规则

syslog配置文件 /etc/logrotate.conf

weekly #每周清理一次日志文件

rotate 4 #保存四个轮换日志

create #清除旧日志的同时,创建新的空日志文件

dateext #使用日期为后缀的回滚文件 #可以去var/log目录下看看

include /etc/logrotate.d #包含/etc/logrotate.d目录下的所有配置文件

结果记录

1)经核查,采取了保护措施对审计记录进行保护,日志数据本地保存,覆盖周期不小于6个月;
2)经核查,部署了外部Syslog日志服务器收集审计日志,对审计记录进行定期备份,每6个月打包一次审计记录。

d) 应对审计进程进行保护,防止未经授权的中断。

符合建议项

1.  判断哪些用户可以对审计进程进行操作

默认情况下,仅root权限账户可中断审计进程

查看sudo文件配置情况:cat /etc/sudoers,若存在以下配置,则能中断审计进程

结果记录

经核查,通过系统管理员SysAdmin和安全管理员SecAdmin无法中断审计进程。同时部署了外部Syslog日志服务器收集审计日志,对审计记录进行定期备份,每6个月打包一次审计记录。

入侵防范

基本要求

测评要求

应用指南

a) 应遵循最小安装的原则,仅安装需要的组件和应用程序。

符合建议项

查询linux中安装的程序,一般使用yum list installed 或者rpm -qa,关键是linux中随随便便都安装得有几百个组件,而且很多组件都是存在着依赖关系。你很难或者至少很难快速的判断某组件到底是必需的还是非必需的,而被测评单位方的人也一样,他也不可能知道。

感觉从上述命令中非常难下手,稍微明显一些的,可以查看开机自启服务

systemctl list-unit-files | grep enabled

有些可能明显用不到的,比如web应用服务器上留有当时测试的mysql 程序,后续项目更新升级后使用数据库服务器,而原先的就忘了卸载删除。以及一些明显有问题的服务,例如 telnet。

1.查看是否启用多余的inetd.Services服务:

chkconfig --list

Chargen services、daytime services、Discard wervices、Echo services、Time services

以上服务均为Debug和测试时使用。

systemctl | grep running

是否对安全隐患的漏洞进行补丁修补或指定补丁策略。

2.查看已安装组件和应用程序

yum list installed

结果记录

1)经核查,服务器遵循最小安装原则;
2)经核查,服务器未安装非必要的组件和应用程序。

b) 应关闭不需要的系统服务、默认共享和高危端口。

1.  服务

对于组件、服务、进程、端口而言,它们之间是存在着关系的:安装程序–>启动相关服务–>启动相关进程–>监听相关端口。而且,一个程序(组件)可能有数个服务,而一个服务也可能实际启动了数个进程,当然一个进程应该就对应一个端口。

● Centos 6.x使用 service --status-all 来查看服务

● Centos 7.x 使用 systemctl 命令来查看服务

可以根据类型列出单元 systemctl list-units --type service

估计也看不太懂,具体哪些服务是多余的,看到有明显不符合的,例如telnet 之类的就给不符合吧

2.  端口

使用命令:netstat -tuanp 查看系统中监听的端口以及对应的进程,进行判断哪些是多余的服务、端口,一般默认装机完毕25、111为多余端口,对应的服务也就是多余的。

3.  共享情况

Linux 默认共享是没有的,但是可以安装对应的共享服务

符合建议项

1、检查:

systemctl -a

查看

CUPS、Rsh services、Talk、Telnet、tftp、、IMAP、POP3、SNMP、DHCP、rsync、NIS

等等服务应该关闭。

systemctl | grep running
ss -ntlp
ss -ntlpu

查看是否开启端口:

21、23

  1. Telnet服务(默认端口23):telnet是一个不安全的网络协议,会以明文形式传输用户名和密码。建议关闭telnet服务,使用更安全的SSH服务。

  2. FTP服务(默认端口21):FTP也是一个不安全的协议,密码以明文形式传输。建议关闭FTP服务,并使用更安全的SCP或SFTP替代。

数据库端口是否修改默认端口号:

1433、1521、3306、6379、5432、27017

等等。

MySQL: 3306
PostgreSQL: 5432
Oracle Database: 1521
SQL Server: 1433
MongoDB: 27017
Redis: 6379
MariaDB: 3306
Elasticsearch: 9200 (HTTP), 9300 (TCP)

结果记录

1)经核查,服务器未开启非必要的系统服务和默认共享;
2)经核查,服务器不存在非必要的高危端口,仅开启SSH协议(22端口)、https服务(443端口)。

c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制。

符合建议项

1、查看服务器是否通过

hosts.allow/hosts.deny(cat /etc/hosts.allow、cat /etc/hosts.deny)

或ssh中Listenaddress(cat /etc/ssh/sshd_config)、或iptables(iptables -L -v -n)限制可接入的网络地址。

/etc/hosts.deny 和 /etc/hosts.allow 是 Linux 系统中用于控制网络访问的配置文件。

/etc/hosts.deny 文件允许你指定哪些客户端将被拒绝访问系统。你可以在这个文件中使用 TCP Wrappers 语法来配置访问控制规则。

修改/etc/hosts.allow和/etc/hosts.deny 这两个文件,把需要通过的IP写在/etc/hosts.allow 文件里

cat /etc/hosts.allow
cat /etc/hosts.deny

cat /etc/hosts.allow | grep -v ^#
cat /etc/hosts.deny | grep -v ^#

[root@localhost ~]# cat /etc/hosts.allow
sshd:127.0.0.1:allow
[root@localhost ~]# cat /etc/hosts.deny
sshd:ALL
[root@localhost ~]# service sshd restart #重启服务使配置生效

1.2 firewall

查看当前防火墙是否开启

systemctl status firewalld.service

firewall-cmd --state

例如使用以下命令添加允许访问22端口的规则

firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.12.28” port protocol=“tcp” port=“22” accept’
firewall-cmd --reload

3.  sshd_config文件

结果记录

经核查,服务器通过堡垒机输入账号密码登录,堡垒机限制终端接入范围,仅来自ip 192.168.1.4 的终端可以接入堡垒机从而登录服务器。同时,服务器通过/etc/hosts.allow和/etc/hosts.deny进行限制,仅允许ip 192.168.1.4 的终端远程登录。

d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求。

结果记录

不适用,根据GB∕T 28448-2019 《信息安全技术 网络安全等级保护测评要求》测评对象范围描述,操作系统无该项要求。

e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞。

这条一般是结合漏洞扫描结果,确认是否存在已知漏洞

或装有统一管理的安全软件,后台可以统一查看对应服务器是否存在相应漏洞,可以进行安全检查

结果记录

1)定期对操作系统进行漏洞扫描,对扫描发现的漏洞进行评估和补丁更新测试,及时进行补丁更新;
2)本次测评通过漏洞扫描、渗透测试等方式未发现高风险漏洞;
3)对操作系统补丁进行测试和安装,补丁情况为较新稳定版本。

f) 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警。

该条查看是否安装入侵检测软件,例如EDR等,一般可以通过进程查到,这种就需要去询问运维人员了

符合建议项

2.网络入侵检测

结果记录

1)经访谈安全管理员并核查,服务器部署阿里云安骑士主机入侵检测系统,网络部署阿里巴巴安全组件和阿里云助手;
2)经核查,在发生严重入侵事件时阿里云安骑士主机入侵检测系统可以提供报警。

恶意代码防范

基本要求

应用指南

a) 应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断。

针对于Linux来说,一种就是购买统一管理的防病毒软件,常见的有EDR、等,免费常见的一般为 clamav(安装步骤这里就略过了)

查看病毒库版本:freshclam -V  或 clamscan --version

确定病毒库的版本距今不超过1个月,不然就是高风险项。

结果记录

1)经核查,服务器安装了终端安全EDR,定期进行升级和更新恶意代码库。
2)经核查,终端安全EDR采用主动免疫验证技术即使识别入侵和病毒行为;
3)经核查,当识别入侵和病毒行为时终端安全EDR可以将其有效阻断。

可信验证

基本要求

测评要求

应用指南

可信验证这个条款,目前市面上的主流产品并没有普及。条款要求基于“可信根”对计算机设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,那么这个“可信根”又是什么东西。

个人认为就是可信的源头,那么针对于服务器这类的可信,源头是哪里呢?那么肯定是从硬件开始可信,通过 硬件****→内核 → 应用 一步步来实现最终的可信链路。所以一般的情况下就是要有这样的可信硬件产品。可以参考下图,是银河麒麟操作系统多安全策略框架,这样的策略下应该是能实现可信验证了。

总结来说就是要购买可信硬件并部署,通过从硬件开始可信,可能是可信芯片啥的,这个具体没有接触过,细节就不大清楚了。所以如果没有硬件做可信支持的话,那么这条条款肯定是不符合的。

结果记录

1)经核查,未基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序
等进行可信验证;
2)经核查,未在应用程序的关键执行环节进行动态可信验证。

数据完整性

针对测评对象为操作系统,我们需要考虑的应为鉴别数据、重要审计数据、重要配置****数据等。

Linux 服务器采用SSH进行远程管理

首先,SSH会使用加密算法来将数据进行加密,就像把信封上的信写成密码一样,这样只有合法的接收方才能读懂里面的内容。这样就能防止数据在传输途中被别人偷窥或修改。

其次,SSH还会对数据做数字签名,就像在信封上盖上自己的印章一样。这可以帮助接收方验证数据的完整性和真实性,确保数据没有被偷偷篡改。

另外,SSH还会使用一种叫做消息鉴别码的方法来检查数据的完整性。这个鉴别码就像是一个特殊的密码,只有知道密码的人才能验证数据是否正常,防止数据在传输过程中被损坏或修改。

通过这些方法,SSH能够确保通信过程中数据的完整性。它可以保护数据不被窃听、篡改或损坏,并确保只有合法的接收方能够读取和理解数据。

所以通过SSH协议进行远程管理的话,鉴别数据以及传输过程中的配置数据,这些完整性都能得到保障。另外审计数据一般是通过syslog协议发送到日志服务器上,syslog协议并不提供保密性和完整性的保证。它主要用于系统日志的传输和存储,并没有内置的加密或签名机制来确保传输的日志消息的机密性和完整性。

结果记录

b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

一般不符合

数据保密性

a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

Linux默认采用SSH 协议进行管理,传输过程中的保密性能得到保障。

b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

Linux 口令存储在 /etc/shadow 文件中,查看该文件

第二列:加密后的password字段,**$6代表采用SHA-512($1代表MD5, 2 代表 S H A − 256 ) ∗ ∗ , 2代表SHA-256)**, 2代表SHA256ASdUaZ2O代表盐,$OynRX1SkB···加盐后哈希值”;普通用户未设置密码时为!!,代表禁止登录

也可使用命令 passwd -S root 来查看当前用户使用哪种算法存储口令

使用SHA512对密码进行存储时,实际上是将密码的哈希值存储在系统中。当用户输入密码时,系统会将输入的密码再次转换为哈希值,然后与存储的哈希值进行比较来验证密码的正确性。虽然SHA512算法本身是公开的,但通过使用哈希函数和“盐值”(salt)来增加密码的复杂性,可以提高密码的安全性。"盐值"是在计算哈希值时与密码结合使用的随机值,它可以防止利用预先计算的哈希值进行彩虹表攻击。

SHA512算法是一种哈希算法,用于存储密码的哈希值。作为密码存储算法的一种实现,它被广泛用于将密码转换为安全的存储形式。

哈希算法本身并不直接属于密码算法。密码算法通常是指用于加密和解密数据的算法,如对称加密(AES、DES)、非对称加密(RSA、ECC)和散列算法(MD5、SHA1)。这些算法用于保护数据的机密性和完整性。

在密码学中,密码存储算法是一种用于存储用户密码的方式,其目标是保护用户密码的安全性。哈希算法在其中扮演了重要角色,通过将密码转换为哈希值来存储,以防止明文密码被泄露。

因此,尽管SHA512算法本身不是密码算法,但它是一种用于密码存储的安全哈希算法。通过合理的使用和管理(如添加“盐值”),可以增加密码的安全性,从而达到一定程度上的保密性。

数据备份恢复

a)应提供重要数据的本地数据备份与恢复功能

首先针对于操作系统,到底要备份什么东西?操作系统可以说就是提供一个环境的问题,重点是这台服务器做什么用的,比如一个简单的web服务器,可以直接下载一个phpstudy软件,里面包含了数据库以及中间件,然后开发那边给上代码这个应用系统就直接可以用了。那么在这台服务器上要备份其实就是一些软件的配置数据,备份这些数据后,能帮助应用系统快速迁移或系统损坏后能保证其正常运行。常见的手段有两台服务器做主备,通过第三方软件整机备份,或者是打了快照,出现异常通过快照恢复(但要注意,数据库服务器这种直接恢复快照会同时造成数据丢失,所以算是一种备份弥补措施)。

另外一种为了满足等保要求,可以使用cron计划任务对操作系统中的配置数据进行备份。例如备份/etc/下所有配置文件,这样操作系统的密码复杂度要求,登录失败处理功能等等配置文件都会进行备份。

b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地

这种一般的三级系统做的比较少,像比较重要的如银行系统会做异地备份。按照字面意思是要提供一个备份功能,可以通过通信网络将重要数据实时备份到备份场所。

1. 异地实时备份功能:这是一项技术功能,旨在将数据备份到不同的物理场所。通常用于增加数据的可靠性和冗余性,以防止灾难性事件(如硬件故障、自然灾害等)导致数据丢失。

2. 利用通信网络:这指的是利用计算机网络或通信基础设施,在源设备和备份场地之间传输数据。这可以包括使用局域网、广域网、互联网或专用线路等不同的网络技术。

3. 将重要数据实时备份:这意味着备份过程是实时的,即数据在生成或更新后立即备份。这样可以确保备份数据与源数据的同步性,并尽量减少备份数据之间的时间差。

4. 备份至备份场所:备份数据被传输到一个备份场所,也称为离线备份位置或远程备份站点。备份场所通常是在物理上分离于源设备的另一个地点,以确保在源设备发生故障或灾难时可以恢复数据。

综上所述,这句话表达了一个要求,在数据备份方面提供一个功能,通过通信网络将重要数据实时备份到另一个地理位置的备份场所。这样可以增加数据的安全性和可靠性,并提供数据恢复的保障。

c)应提供重要数据处理系统的热冗余,保证系统的高可用性

重要数据处理系统的热冗余:热冗余是指在系统中使用冗余组件或备份系统来保证在主系统出现故障时能够无缝切换到备份系统。这样可以确保系统持续运行且不中断,以提供高可用性和持续的服务。

系统的高可用性:高可用性是指系统能够提供持续不断的服务,减少延误和故障的影响。在重要数据处理系统中,高可用性是关键要求之一,以确保数据的连续性和业务的顺利运行。

Linux操作系统提供了多种措施来实现热冗余,以确保系统的高可用性。以下是一些常见的例子:

1. Linux高可用集群(Linux-HA):这是一种基于Linux操作系统的集群解决方案,通过将多个服务器组合成一个集群,实现冗余和故障转移。集群中的服务器可以通过网络通信来共享任务和负载,并提供故障检测和自动故障转移功能。

2. 心跳检测:Linux操作系统可以使用心跳检测机制来监视主服务器的状态。心跳程序定期发送心跳信号到备份服务器,以确保主服务器正常工作。如果主服务器停止响应或发生故障,备份服务器将接管服务,并顺利进行切换。

3. 负载均衡:Linux操作系统提供多种负载均衡技术,如IPVS(IP Virtual Server)、HAProxy等,在多台服务器之间均衡分发网络请求和负载。这些负载均衡器可以监测服务器的健康状态,并自动将请求转发到可用的服务器,提高系统的可用性和性能。

4. Pacemaker集群管理器:Pacemaker是一个用于管理集群的开源软件,可以实现高可用性和故障转移。它可以监控集群中的节点和资源,并在故障发生时自动进行故障转移,保证系统的连续运行。

总的来说,Linux操作系统提供了一系列工具和技术,用于实现热冗余和高可用性。这些措施通过集群、心跳检测、负载均衡和集群管理器等功能,确保系统在主服务器故障时能够自动切换到备份服务器,并提供连续的服务。

剩余信息保护

a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除

这条暂时没有测评方法,大多机构应该也是给的默认符合。

结果记录

服务器为Linux系统,能够保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除。

b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除

Linux操作系统这条我们主要还是考虑命令行shell 命令历史记录。

echo $HISTSIZE
echo $HISTFILESIZE

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

提升又不知道该从何学起的朋友。**
[外链图片转存中…(img-rgBXVeKr-1712144433422)]
[外链图片转存中…(img-s5RI6hQB-1712144433424)]
[外链图片转存中…(img-S8ui3ot4-1712144433424)]
[外链图片转存中…(img-1ekJhXVW-1712144433425)]
[外链图片转存中…(img-daHpdCLE-1712144433426)]
[外链图片转存中…(img-bcwmkxjF-1712144433426)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
[外链图片转存中…(img-klYB1HGw-1712144433427)]

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值