提交 38c3c565 编写于 作者: A amyMaYun

配套20.03 LTS版本更新安全加固指南,主要是SELinux添加和安全加固工具添加

上级 97bcc22b
# SELinux配置<a name="ZH-CN_TOPIC_0229953911"></a>
## 概述<a name="section1424754533418"></a>
自由访问控制DAC(Discretionary Access Control)基于用户、组和其他权限,决定一个资源是否能被访问的因素是某个资源是否拥有对应用户的权限,它不能使系统管理员创建全面和细粒度的安全策略。SELinux(Security-Enhanced Linux)是Linux内核的一个模块,也是Linux的一个安全子系统。SELinux的实现了强制访问控制MAC(Mandatory Access Control ),每个进程和系统资源都有一个特殊的安全标签,资源能否被访问除了DAC规定的原则外,还需要判断每一类进程是否拥有对某一类资源的访问权限。
openEuler默认使用SELinux提升系统安全性。SELinux分为三种模式:
- permissive:SELinux仅打印告警而不强制执行。
- enforcing:SELinux安全策略被强制执行。
- disabled:不加载SELinux安全策略。
## 配置说明<a name="section99503416549"></a>
openEuler默认开启SELinux,且默认模式为enforcing,用户可以通过修改/etc/selinux/config中配置项SELINUX的值变更SELinux模式。
- 关闭SELinux策略的配置如下:
```
SELINUX=disabled
```
- 使用permissive策略的配置如下:
```
SELINUX=permissive
```
>![](public_sys-resources/icon-note.gif) **说明:**
>disabled与另两种模式切换时需重启系统生效。
>```
># reboot
>```
## SELinux相关命令<a name="section13619018912"></a>
- 查询SELinux模式。例如下述查询的SELinux模式为Permissive:
```
# getenforce
Permissive
```
- 设置SELinux模式,0表示permissive模式,1表示enforcing模式,例如设置为enforcing模式的命令如下。该命令不能设置disabled模式,且系统重启后,恢复到/etc/selinux/config中设置的模式。
```
# setenforce 1
```
- 查询运行SELinux的系统状态。SELinux status表示SELinux的状态,enabled表示启用SELinux,disabled表示关闭SELinux。Current mode表示SELinux当前的安全策略。
```
# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31
```
# openEuler 1.0 安全加固指南
- [法律声明](法律声明.md)
- [前言](前言.md)
- [操作系统加固概述](操作系统加固概述.md)
- [加固目的](加固目的.md)
- [加固方案](加固方案.md)
- [加固影响](加固影响.md)
- [加固指导](加固指导.md)
- [系统服务](系统服务.md)
- [加固SSH服务](加固SSH服务.md)
- [文件权限](文件权限.md)
- [设置文件的权限和属主](设置文件的权限和属主.md)
- [删除无主文件](删除无主文件.md)
- [处理空链接文件](处理空链接文件.md)
- [设置守护进程的umask值](设置守护进程的umask值.md)
- [为全局可写目录添加粘滞位属性](为全局可写目录添加粘滞位属性.md)
- [删除非授权文件的全局可写属性](删除非授权文件的全局可写属性.md)
- [限制at命令的使用权限](限制at命令的使用权限.md)
- [限制cron命令的使用权限](限制cron命令的使用权限.md)
- [内核参数](内核参数.md)
- [加固内核参数](加固内核参数.md)
- [授权认证](授权认证.md)
- [设置网络远程登录的警告信息](设置网络远程登录的警告信息.md)
- [禁止通过CTRL+ALT+DEL重启系统](禁止通过CTRL+ALT+DEL重启系统.md)
- [设置终端的自动退出时间](设置终端的自动退出时间.md)
- [设置用户的默认umask值为077](设置用户的默认umask值为077.md)
- [设置GRUB2加密口令](设置GRUB2加密口令.md)
- [安全单用户模式](安全单用户模式.md)
- [禁止交互式启动](禁止交互式启动.md)
- [账户口令](账户口令.md)
- [屏蔽系统帐户](屏蔽系统帐户.md)
- [限制使用su命令的帐户](限制使用su命令的帐户.md)
- [设置口令复杂度](设置口令复杂度.md)
- [设置口令有效期](设置口令有效期.md)
- [设置口令的加密算法](设置口令的加密算法.md)
- [登录失败超过三次后锁定](登录失败超过三次后锁定.md)
- [加固su命令](加固su命令.md)
- [附录](附录.md)
- [文件和目录权限含义](文件和目录权限含义.md)
- [umask值含义](umask值含义.md)
......@@ -142,7 +142,7 @@ SSH(Secure Shell)是目前较可靠,专为远程登录会话和其他网
<tr id="zh-cn_topic_0152100390_ra02142c2f88e45e9b5be9a7454ae9448"><td class="cellrowborder" valign="top" width="16.56%" headers="mcps1.2.5.1.1 "><p id="zh-cn_topic_0152100390_aeb3a4319a7f44cbc8f2241e48f65f48e"><a name="zh-cn_topic_0152100390_aeb3a4319a7f44cbc8f2241e48f65f48e"></a><a name="zh-cn_topic_0152100390_aeb3a4319a7f44cbc8f2241e48f65f48e"></a>PermitRootLogin</p>
<p id="zh-cn_topic_0152100390_a8a1361665a0541038580404b621043a4"><a name="zh-cn_topic_0152100390_a8a1361665a0541038580404b621043a4"></a><a name="zh-cn_topic_0152100390_a8a1361665a0541038580404b621043a4"></a></p>
</td>
<td class="cellrowborder" valign="top" width="45.34%" headers="mcps1.2.5.1.2 "><p id="p91440171268"><a name="p91440171268"></a><a name="p91440171268"></a><span id="ph132920221337"><a name="ph132920221337"></a><a name="ph132920221337"></a>是否允许</span>root账户直接<span id="ph2759102973319"><a name="ph2759102973319"></a><a name="ph2759102973319"></a>使用</span>SSH登录系统</p>
<td class="cellrowborder" valign="top" width="45.34%" headers="mcps1.2.5.1.2 "><p id="p91440171268"><a name="p91440171268"></a><a name="p91440171268"></a>是否允许root账户直接使用SSH登录系统</p>
<div class="note" id="note1914411176268"><a name="note1914411176268"></a><a name="note1914411176268"></a><span class="notetitle"> 说明: </span><div class="notebody"><p id="p6144151714266"><a name="p6144151714266"></a><a name="p6144151714266"></a>若需要直接使用root账户通过SSH登录系统,请修改/etc/ssh/sshd_config文件的PermitRootLogin字段的值为yes。</p>
</div></div>
</td>
......
......@@ -191,7 +191,7 @@
</tbody>
</table>
2. 加载sysctl.conf文件中设置的内核参数
2. 加载sysctl.conf文件中设置的内核参数
```
sysctl -p /etc/sysctl.conf
......
# 加固操作<a name="ZH-CN_TOPIC_0225297202"></a>
## 概述<a name="section19910163125417"></a>
安全加固工具会根据usr-security.conf设置加固策略,使用加固工具设置加固策略需要用户修改usr-security.conf。本节介绍usr-security.conf的修改规则。用户可配置的加固项请参见[加固指导](加固指导.md)对应内容。
## 注意事项<a name="section13844101415486"></a>
- 修改配置后,需要重启安全加固服务使配置生效。重启方法请参见[加固生效](加固生效.md)对应内容。
- 用户修改加固配置时,仅修改/etc/openEuler\_security/usr-security.conf文件,不建议修改/etc/openEuler\_security/security.conf。security.conf中为基本加固项,仅运行一次。
- 当重启安全加固服务使配置生效后,在usr-security.conf中删除对应加固项并重启安全加固服务并不能清除之前的配置。
- 安全加固操作记录在日志文件/var/log/openEuler-security.log中。
## 配置格式<a name="zh-cn_topic_0171953934_zh-cn_topic_0151850635_section1675212569249"></a>
usr-security.conf中的每一行代表一项配置,根据配置内容的不同有不同配置格式,这里给出各类配置的格式说明。
>![](public_sys-resources/icon-note.gif) **说明:**
>- 所有配置项以执行ID开头,执行ID仅为了方便用户识别配置内容,取值为正整数,由用户自行定义。
>- 配置项的各内容之间使用@作为分隔符。
>- 若实际配置内容中包含@,需要使用@@表示以和分隔符区分,例如实际内容为xxx@yyy,则配置为xxx@@yyy。目前不支持@位于配置内容的开头和结尾。
- d:注释
格式:执行ID@d@对象文件@匹配项
功能:将对象文件中以匹配项开头(行首可以有空格)的行注释(在行首添加\#)。
示例:执行ID为401,注释/etc/sudoers文件中以%wheel开头的行。
```
401@d@/etc/sudoers@%wheel
```
- m:替换
格式:执行ID@m@对象文件@匹配项@替换目标值
功能:将对象文件中以匹配项开头(行首可以有空格)的行替换为“匹配项加替换目标值 ”。若匹配行开头有空格,替换后将删除这些空格。
示例:执行ID为101,将/etc/ssh/sshd\_config文件中以Protocol 开头的行替换为Protocol 2。匹配和替换时也会考虑Protocol后的空格。
```
101@m@/etc/ssh/sshd_config@Protocol @2
```
- sm:精确修改
格式:执行ID@sm@对象文件@匹配项@替换目标值
功能:将对象文件中以匹配项开头(行首可以有空格)的行替换为“匹配项加替换目标值 ”。若匹配行开头有空格,替换后将保留这些空格,这是sm和m的区别。
示例:执行ID为201,将/etc/audit/hzqtest文件中以size开头的行替换为size 2048。
```
201@sm@/etc/audit/hzqtest@size @2048
```
- M:修改子项
格式:执行ID@M@对象文件@匹配项@匹配子项\[@匹配子项的值\]
功能:匹配对象文件中以匹配项开头(行首可以有空格)的行,并将该行中以匹配子项开始的内容替换为“匹配子项和匹配子项的值”,其中匹配子项的值可选。
示例:执行ID为101,找到file文件中以key开头的行,并将这些行中以key2开始的内容替换为key2value2。
```
101@M@file@key@key2@value2
```
- systemctl:管理服务
格式:执行ID@systemctl@对象服务@具体操作
功能:使用systemctl管理对象服务,具体操作可取值为start、stop、restart、disable等systemctl所有可用的命令。
示例:执行ID为218,停止cups.service服务,等同于systemctl stop cups.service的配置行。
```
218@systemctl @cups.service@stop
```
- 其他命令
格式:执行ID@命令@对象文件
功能:执行对应命令,即执行命令行“命令 对象文件”。
示例一:执行ID为402,使用rm -f命令删除文件/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem。
```
402@rm -f @/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem
```
示例二:执行ID为215,使用touch命令创建文件/etc/cron.allow。
```
215@touch @/etc/cron.allow
```
示例三:执行ID为214,使用chown命令将文件/etc/at.allow的属主改为root:root。
```
214@chown root:root @/etc/at.allow
```
示例四:执行ID为214,使用chmod命令去除文件/etc/at.allow属主所在群组及其他非属主用户的rwx权限。
```
214@chmod og-rwx @/etc/at.allow
```
......@@ -4,7 +4,9 @@
## 加固方式<a name="zh-cn_topic_0152100261_s026b5b11898d4d1da2242b39a31fe746"></a>
openEuler默认搭载系统安全加固包security-tool,在安装时生成安全加固服务。系统在首次启动时自动运行安全加固服务,执行默认的安全策略配置。用户可以根据需求定制安全加固工具或者通过修改相关配置定制加固方案,本文档介绍相关的加固方法。
用户可以通过手动修改加固配置或执行相关命令对系统进行加固,也可以通过加固工具批量修改加固项。openEuler的安全加固工具security tool以openEuler-security.service服务的形式运行。系统首次启动时会自动运行该服务去执行默认加固策略,且自动设置后续开机不启动该服务。
用户可以通过修改security.conf,使用安全加固工具实现个性化安全加固的效果。
## 加固内容<a name="zh-cn_topic_0152100261_sfc107567dc9e4c59919e7a0fd979889a"></a>
......
# 加固生效<a name="ZH-CN_TOPIC_0225297203"></a>
完成修改usr-security.conf文件后,请运行如下命令使新添加的配置生效。
```
systemctl restart openEuler-security.service
```
# 安全加固工具<a name="ZH-CN_TOPIC_0225297200"></a>
# 文件和目录权限含义<a name="ZH-CN_TOPIC_0192977575"></a>
Linux系统中文件和目录权限用于限定谁能通过何种方式对文件和目录进行访问和操作。文件和目录的访问权限分为只读只写和可执行三种。
Linux系统中文件和目录权限用于限定谁能通过何种方式对文件和目录进行访问和操作。文件和目录的访问权限分为只读只写和可执行三种。
有三种不同类型的用户可对文件和目录进行访问:
......@@ -12,7 +12,7 @@ Linux系统中文件和目录权限用于限定谁能通过何种方式对文件
假设/usr/src的权限为755,将每位数字转化为二进制后为:111101101,含义如下:
- 左侧三个bit位"111"表示文件所有者的权限依次为:可读、可写、可执行。
- 中间三个bit位"101"表示同组用户的权限依次为:可读、不可写、可执行。
- 右侧三个bit位"101"表示其他用户的权限依次为:可读、不可写、可执行。
- 左侧三个bit位111表示文件所有者的权限依次为:可读、可写、可执行。
- 中间三个bit位101表示同组用户的权限依次为:可读、不可写、可执行。
- 右侧三个bit位101表示其他用户的权限依次为:可读、不可写、可执行。
# 限制sudo命令的使用权限<a name="ZH-CN_TOPIC_0225746610"></a>
## 说明<a name="zh-cn_topic_0152100407_sc1bdabc3003d41a18eb03334f6708974"></a>
sudo命令用于普通用户以root权限执行命令。为了增强系统安全性,有必要对sudo命令的使用权进行控制,只允许roo使用sudo命令,限制其他帐户使用。
## 实现<a name="zh-cn_topic_0152100407_s9cb4ace0385747ee9889affa53bef9dc"></a>
sudo命令的使用控制通过修改/etc/sudoers文件实现,需要注释掉如下配置行:
```
#%wheel ALL=(ALL) ALL
```
......@@ -215,6 +215,8 @@ headless: true
- [删除非授权文件的全局可写属性]({{< relref "/docs/SecHarden/删除非授权文件的全局可写属性.md" >}})
- [限制at命令的使用权限]({{< relref "/docs/SecHarden/限制at命令的使用权限.md" >}})
- [限制cron命令的使用权限]({{< relref "/docs/SecHarden/限制cron命令的使用权限.md" >}})
- [限制sudo命令的使用权限]({{< relref "/docs/SecHarden/限制sudo命令的使用权限.md" >}})
- [内核参数]({{< relref "/docs/SecHarden/内核参数.md" >}})
- [加固内核参数]({{< relref "/docs/SecHarden/加固内核参数.md" >}})
- [授权认证]({{< relref "/docs/SecHarden/授权认证.md" >}})
......@@ -233,6 +235,13 @@ headless: true
- [设置口令的加密算法]({{< relref "/docs/SecHarden/设置口令的加密算法.md" >}})
- [登录失败超过三次后锁定]({{< relref "/docs/SecHarden/登录失败超过三次后锁定.md" >}})
- [加固su命令]({{< relref "/docs/SecHarden/加固su命令.md" >}})
- [安全加固工具]({{< relref "/docs/SecHarden/安全加固工具.md" >}})
- [加固操作]({{< relref "/docs/SecHarden/加固操作.md" >}})
- [加固生效]({{< relref "/docs/SecHarden/加固生效.md" >}})
- [SELinux配置]({{< relref "/docs/SecHarden/SELinux配置.md" >}})
- [附录]({{< relref "/docs/SecHarden/附录.md" >}})
- [文件和目录权限含义]({{< relref "/docs/SecHarden/文件和目录权限含义.md" >}})
- [umask值含义]({{< relref "/docs/SecHarden/umask值含义.md" >}})
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册