Linux系统安全

一,账号安全控制

(1).基本安全措施

在 Linux 系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户 root 之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登录的,因此也称为非登录用户账号

各种非登录用户账号中,还有相当一部分是很少用到的,如 games。这些用户账号可以视为冗余账号,直接删除即可。除此之外,还有一些随应用程序安装的用户账号,若卸载程序以后未能自动删除,则需要管理员手动进行清理。

如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。

(2).密码安全控制

在不安全的网络环境中,为了降低密码被猜出或被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登录时将被要求重新设置密码,,否则将拒绝登录

3.命令历史.自动注销

Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。

2.用户切换与提权

(1)su 命令的用法

使用 su 命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。当然,切换时需要对目标用户的密码进行验证(从 root 用户切换为其他用户时除外)。例如,当前登录的用户为 jerry,若要切换为 root 用户。

默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码。这样带来了安全风险。为了加强 su 命令的使用控制,可以借助于 pam whee1 认证模块,只允许极个别用户使用 su 命令进行切换。实现过程如下:将授权使用 su 命令的用户添加到 wheel 组,修改/etc/pam.d/su 认证配置以启用 pam wheel 认证。

(2)PAM 认证

PAM(Pluggable Authentication Modules),是 Linux 系统可插拔认证模块,是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux 服务器普遍使用的认证方式。

PAM 提供了对所有服务进行认证的中央机制,适用于 1ogin,远程登录(telnet,rlogin,fsh,ftp),su 等应用程序中。系统管理员通过PAM 配置文件来制定不同应用程序的不同认证策略。

3.sudo 命令 -- 提升执行权限

(1)在配置文件/etc/sudoers 中添加授权

sudo 机制的配置文件为/etc/sudoers,文件的默认权限为 440,需使用专门的 visudo 工具进行编辑。虽然也可以用 vi 进行编辑,但保存时必须执行":w!"命令来强制操作,否则系统将提示为只读文件而拒绝保存。

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、主机、命令部分都可以定义为别名(必须为大写),分别通过关键字 User _Alias、Host _Alias、cmnd_Alias 来进行设置。例如,以下操作通过别名方式来添加授权记录,允许用户 jerry、tom、tsengyia 在主机 smtp、pop 中执行 rpm、yum 命令。

取反符号"!",sudo 配置记录的命令部分允许使用通配符"*"当需要授权某个目录下的所有命令或取消其中个别命令时特别有用。例如,若要授权用户 syrianer 可以执行/sbin/目录下除 ifconfig、route 以外的其他所有命令程序,

(2)通过 sudo 执行特权命令

对于已获得授权的用户,通过 sudo 方式执行特权命令时,只需要将正常的命令行作为 sudo 命令的参数即可。由于特权命令程序通常位于/sbin、/usr/sbin 等目录下,普通用户执行时应使用绝对路径。以下操作验证了使用 sudo 方式执行命令的过程。

若要査看用户自己获得哪些 sudo 授权,可以执行"sudo -1"命令。未授权的用户将会得到"may notrun sudo"的提示,已授权的用户则可以看到自己的 sudo 配置。

syrianer@localhost \~$ sudo -l

如果已经启用 sudo 日志,则可以从/var/log/sudo 文件中看到用户的 sudo 操作记录。

root@localhost \~# tail /var/log/sudo

二.系统引导和登录控制

1.开关机安全控制

对于服务器主机,其物理环境的安全防护是非常重要的,不仅要保持机箱完好、机柜锁闭,还要严格控制机房的人员进出、硬件设备的现场接触等过程。在开关机安全控制方面,除了要做好物理安全防护以外,还要做好系统本身的一些安全措施。

(1)调整 BIOS 引导设置

将第一优先引导设备(First Boot Device)设为当前系统所在磁盘。

禁止从其他设备(如光盘、U 盘、网络等)引导系统,对应的项设为"Disabled"。

将 BIOS 的安全级别改为"setup",并设置好管理密码,以防止未授权的修改。

(2)限制更改 GRUB 引导参数

在之前的课程中介绍过通过修改 GRUB 引导参数,对一些系统问题进行修复。从系统安全的角度来看,如果任何人都能够修改 GRUB 引导参数,对服务器本身显然是一个极大的威胁。为了加强对引导过程的安全控制,可以为 GRUB 菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

使用 grub2-mkconfig 命令生成新的 grub.cfg 配置文件。

2.终端及登录控制

(1)禁止 root 用户登录

在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统。若要禁止root用户从指定的终端登录,只需从该文件中删除或者注释掉对应的行即可。例如,若要禁止 root 用户从 tty5、tty6 登录,可以修改/etc/securetty 文件,将 tty5、tty6行注释掉。

(2)禁止普通用户登录

当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。这时候,只需要简单地建立/etc/nologin 文件即可。1ogin 程序会检査/etc/nologin 文件是否存在,如果存在,则拒绝普通用户登录系统(root 用户不受限制)。

root@localhost \~# touch /etc/nologin

相关推荐
Yana.nice7 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
DFT计算杂谈11 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
Zhang~Ling12 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind12 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森12 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
XMAIPC_Robot13 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
重生的黑客14 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
骑上单车去旅行15 小时前
MD5校验对比脚本
linux·服务器·windows
平生幻15 小时前
Linux 常用命令
linux
ShirleyWang01216 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s