# §19.3_Unix_Linux_国产系统_安全分析与防护

LLMS index: [llms.txt](/wikis/llms.txt)

---

### Unix/Linux安全分析与防护
单用户：虽然可能有多个账号，但同时只能有一个用户在使用。

多用户：可以有多个用户同时使用主机。

![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/dfa05a03a8a61c3c630caa3c09ae4998_MD5.png)


**数字 4 、2 和 1 表示 读、写、执行权限  文件的权限其实是“二进制”三位八进制数**
<details><summary>点击展开详情</summary>



**每个属组的所有的权限都可以用一位八进制数表示，每个数字都代表了不同的权限（权值）。如 最高的权限为是7，代表可读，可写，可执行。**

**故 如果我们将每个属组的权限都用八进制数表示，则文件的权限可以表示为三位八进制数**

rwx = 111 = 7 读写执行

rw- = 110 = 6 读写

r-x = 101 = 5 读执行

r-- = 100 = 4 读

-wx = 011 = 3 写执行

-w- = 010 = 2 写

--x = 001 = 1 执行

--- = 000 = 0 无权限






</details>


![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/e7821ca680b3171be705f3ba1ca21552_MD5.png)

### 安全增强
开机保护口令在bios上实现，防止通过u盘PE启动系统。（但如果把硬盘拆出换个硬盘仍可访问硬盘，除非设置硬盘全盘加密）

![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/1578b74a5dafc8cc4c1449b51d294608_MD5.png)

####  linux检查文件哈希
在 Linux 中，你可以使用以下命令来计算文件的哈希值：

1. **MD5**：

```plain
md5sum 文件名
```

输出的第一部分是文件的 MD5 哈希值。

2. **SHA-1**：

```plain
sha1sum 文件名
```

3. **SHA-256**：

```plain
sha256sum 文件名
```

4. **SHA-512**：

```plain
sha512sum 文件名
```

每个命令都会输出计算的哈希值和文件名。

#### linux全盘加密
是的，Linux 有类似于 BitLocker 的全盘加密技术，主要包括以下几种：

1. **LUKS (Linux Unified Key Setup)**：
    - LUKS 是 Linux 上最常用的全盘加密标准，支持多用户密码管理、兼容性好且简单易用。
    - LUKS 通常结合 `dm-crypt` 使用，`dm-crypt` 是一个内核模块，负责处理块设备的加密。
    - 创建 LUKS 加密卷的命令如下：

```bash
sudo cryptsetup luksFormat /dev/sdX
sudo cryptsetup open /dev/sdX encrypted_disk
```

2. **eCryptfs**：
    - eCryptfs 是一个加密文件系统，适合于加密用户主目录。它可以自动加解密用户的文件，通常用于目录加密。
    - 设置 eCryptfs 的简单命令：

```bash
sudo apt install ecryptfs-utils
ecryptfs-setup-private
```

3. **Veracrypt**：
    - Veracrypt 是一个跨平台的开源加密工具，继承自 TrueCrypt，支持全盘加密和文件加密。
    - 虽然它更常用于创建加密文件容器，但也支持全盘加密，适合多操作系统环境。
4. **Btrfs 文件系统加密**：
    - Btrfs 计划支持原生加密，但目前推荐的文件系统加密仍然是通过 LUKS 配合其他文件系统（如 Ext4）实现。

在实际应用中，LUKS 是 Linux 上最广泛采用的全盘加密方案，因为它提供了可靠的安全性和多重身份验证支持。











### Linux安全加固
#### ![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/f69f9faf19d55eaed73f63da16c4071f_MD5.png)


![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/6747565e1b1960319f7ef802859c3762_MD5.png)

#### chattr +i /etc/inetd.conf
在 Linux 中，`chattr` 命令用于修改文件的属性，`+i` 和 `-i` 是两个常用的选项：

+ `**chattr +i**`：将文件设置为“不可更改”（immutable）状态。对设置了 `+i` 属性的文件，即使是 root 用户也无法修改、删除、重命名或创建新的链接。这种设置可以用于保护关键配置文件、防止误操作或恶意更改。例如：

```plain
sudo chattr +i /etc/inetd.conf
```

这会使 `/etc/inetd.conf` 文件变为不可修改状态。

+ `**chattr -i**`：移除“不可更改”属性，使文件恢复为可修改状态。例如：

```plain
sudo chattr -i /etc/inetd.conf
```

执行后，`/etc/inetd.conf` 文件将恢复正常，可以再次进行修改或删除操作。

这些属性对文件的安全性管理非常有用，尤其在保护重要配置文件时。

chattr -i /etc/inetd.conf

#### LILO与Windows里面叫的bios是有区别的
其实，Linux 的 **LILO**（Linux Loader）和 Windows 中的 **BIOS** 并不完全相同，它们的功能和作用是不同的。

1. **LILO (Linux Loader)**：
    - LILO 是一种 **Linux 启动加载程序**，负责在启动时加载 Linux 内核。早期的 Linux 系统广泛使用 LILO，但现在已经逐渐被更强大的 GRUB 替代。
    - LILO 安装在硬盘的主引导记录（MBR）中，用于启动 Linux 系统，并提供多启动选项。
    - 类似的，Windows 中有 **Windows Boot Manager**，用于选择启动 Windows 或其他操作系统。
2. **BIOS (Basic Input/Output System)**：
    - **BIOS** 是一种固件，位于主板上，用于在计算机启动时进行基本的硬件初始化、设置并加载启动加载程序（如 LILO、GRUB 或 Windows Boot Manager）。
    - BIOS 不是操作系统的一部分，而是更底层的硬件接口。BIOS 的功能在现代计算机中逐渐被 **UEFI**（Unified Extensible Firmware Interface）取代，提供更丰富的功能和更快的启动速度。

所以，LILO 相当于启动加载程序（类似 Windows 的 Boot Manager），而 BIOS 是计算机启动的第一步，用于硬件初始化和引导加载器的启动。

#### suid
在 Linux 和其他 Unix 系统中，**SUID (Set User ID)** 是一种特殊的文件权限标志，常用于程序文件上。它的作用是在程序运行时，临时赋予执行者文件所有者的权限，而不仅仅是执行者自己的权限。

##### SUID 的工作原理
+ 当一个文件设置了 SUID 位后，不论谁来执行这个文件，系统都会让执行者暂时拥有文件所有者的权限。
+ 典型的 SUID 程序是 `**/usr/bin/passwd**`，它用于更改用户密码。修改密码时，程序需要访问系统文件 `/etc/shadow`，而普通用户通常对这个文件没有写权限。因此，`passwd` 程序通过 SUID 使普通用户在运行该程序时临时获得 root 权限，以便修改密码文件。

##### 如何查看和设置 SUID
+ 查看 SUID：使用 `ls -l` 命令查看文件权限。例如：

```plain
ls -l /usr/bin/passwd
```

输出中会看到 `rwsr-xr-x`，其中的 `s` 表示 SUID 位已设置。

+ 设置 SUID：用 `chmod` 命令将 SUID 设置到文件上。

```plain
sudo chmod u+s 文件名
```

+ 移除 SUID：

```plain
sudo chmod u-s 文件名
```

##### SUID 的安全风险
SUID 程序会提升用户权限，因此设置 SUID 的程序必须经过严格审核，确保没有安全漏洞，否则可能被恶意用户利用来获取系统更高权限。

#### ![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/903aa282a2d2ae961935e0854b04ada6_MD5.png)
![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/8bf375f697a9b629e77b9e3c2ec2fc4a_MD5.png)

### ![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/05668f7b57803ddc5bebeaec728ea274_MD5.png)
![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/39a7483afa735f46a9b1f4fbe5085f45_MD5.png)

### 国产操作系统安全分析与防护


![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/64215359fd74dbe173105399d71d444a_MD5.png)

分权：操作员、审计员、安全员

![](/wikis/_resources/%C2%A719.3_Unix_Linux_%E5%9B%BD%E4%BA%A7%E7%B3%BB%E7%BB%9F_%E5%AE%89%E5%85%A8%E5%88%86%E6%9E%90%E4%B8%8E%E9%98%B2%E6%8A%A4/0020401d29960abac6fdf7d2e8b6fc9e_MD5.png)
