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

Unix/Linux安全分析与防护

单用户:虽然可能有多个账号,但同时只能有一个用户在使用。

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

数字 4 、2 和 1 表示 读、写、执行权限 文件的权限其实是“二进制”三位八进制数

每个属组的所有的权限都可以用一位八进制数表示,每个数字都代表了不同的权限(权值)。如 最高的权限为是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 无权限


安全增强

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

linux检查文件哈希

在 Linux 中,你可以使用以下命令来计算文件的哈希值:

  1. MD5
md5sum 文件名

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

  1. SHA-1
sha1sum 文件名
  1. SHA-256
sha256sum 文件名
  1. SHA-512
sha512sum 文件名

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

linux全盘加密

是的,Linux 有类似于 BitLocker 的全盘加密技术,主要包括以下几种:

  1. LUKS (Linux Unified Key Setup)
    • LUKS 是 Linux 上最常用的全盘加密标准,支持多用户密码管理、兼容性好且简单易用。
    • LUKS 通常结合 dm-crypt 使用,dm-crypt 是一个内核模块,负责处理块设备的加密。
    • 创建 LUKS 加密卷的命令如下:
sudo cryptsetup luksFormat /dev/sdX
sudo cryptsetup open /dev/sdX encrypted_disk
  1. eCryptfs
    • eCryptfs 是一个加密文件系统,适合于加密用户主目录。它可以自动加解密用户的文件,通常用于目录加密。
    • 设置 eCryptfs 的简单命令:
sudo apt install ecryptfs-utils
ecryptfs-setup-private
  1. Veracrypt
    • Veracrypt 是一个跨平台的开源加密工具,继承自 TrueCrypt,支持全盘加密和文件加密。
    • 虽然它更常用于创建加密文件容器,但也支持全盘加密,适合多操作系统环境。
  2. Btrfs 文件系统加密
    • Btrfs 计划支持原生加密,但目前推荐的文件系统加密仍然是通过 LUKS 配合其他文件系统(如 Ext4)实现。

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

Linux安全加固

chattr +i /etc/inetd.conf

在 Linux 中,chattr 命令用于修改文件的属性,+i-i 是两个常用的选项:

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

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

  • **chattr -i**:移除“不可更改”属性,使文件恢复为可修改状态。例如:
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 命令查看文件权限。例如:
ls -l /usr/bin/passwd

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

  • 设置 SUID:用 chmod 命令将 SUID 设置到文件上。
sudo chmod u+s 文件名
  • 移除 SUID:
sudo chmod u-s 文件名
SUID 的安全风险

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

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

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