linux防护与集群——系统安全及应用

一、账号安全控制:

用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。在Linux系统中,提供了多种机制来确保用户账号的正当、安全使用

1.1 基本安全措施:

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

对于Linux服务器中长期不用的用户账号,若无法确定是否应该删除.可以暂时将其锁定.例如.若要锁定.解锁名为wei的用户账号.可以执行以下操作〈(passwd、usermod命令都可用来锁定.解锁账号).

[root@localhost ~]# passwd -S wei     ##查看账号状态
wei PS 2023-12-27 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

[root@localhost ~]# usermod -L wei   ##锁定账号

[root@localhost ~]# passwd -S wei
wei LK 2023-12-27 0 99999 7 -1 (密码已被锁定)

[root@localhost ~]# usermod -U wei  ##解锁账号

[root@localhost ~]# passwd -S wei
wei PS 2023-12-27 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

如果服务器中的用户账号已经固定.不再进行更改,还可以采取锁定账号配置文件的方法.使用chattr命令,分别结合"+i""-i"选项来锁定、解锁文件.使用lsattr命令可以查看文件锁定情况。

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow  ##锁定文件

[root@localhost ~]# lsattr /etc/passwd /etc/shadow   ##查看锁定文件的状态
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow  ##解锁锁定文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# 

在账号文件被锁定的情况下,其内容将不允许变更.因此无法添加、删除账号,也不能更改用户的密码.登录 Shell、宿主目录等属性信息.

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
[root@localhost ~]# useradd billgate
useradd:无法打开 /etc/passwd

1.2 密码安全控制:

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

[root@localhost ~]# vim /etc/login.defs  ##适用新用户
PASS_MAX_DAYS   30

[root@localhost ~]# chang -M 30 lisi  ##适用已有lisi用户

在某些特殊情况下.如要求批量创建的用户初次登录时必须自设密码.根据安全规划统一要求所有用户更新密码等,可以由管理员执行强制策略.以便用户在下次登录时必须更改密码。例如.执行以下操作可强制要求用户wei下次登录时重设密码.

[root@localhost ~]# chage -d 0 wei

1.3命令历史、自动注销:

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

Bash终端环境中.历史命令的记录条数由变量HISTSIZE控制.默认为1000 条。通过修改/etc/profile文件中的HISTSIZE变量值.可以影响系统中的所有用户.例如,可以设置最多只记录200条历史命令

[root@localhost ~]# export HISTSIZE=200

除此之外.还可以修改用户宿主目录中的~/ .bash_logout 文件,添加清空历史命令的操作语句。这样.当用户退出已登录Bash环境以后.所记录的历史命令将自动清空.

[root@localhost ~]# vi ~/.bash_logout

history -c
clear

Bash终端环境中,还可以设置一个闲置超时时间.当超过指定的时间没有任何输入时即自动注销终端.这样可以有效避免当管理员不在时其他人员对服务器的误操作风险.闲置超时由变量 TMOUT来控制.默认单位为秒(s).

[root@localhost ~]# export TMOUT=600  ##适用当前用户

二、用户切换与提权:

Linux系统为我们提供了su、sudo两种命令.其中 su命令主要用来切换用户,而sudo命令用来提升执行权限。

2.1 su命令------切换用户

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

例如,当前登录的用户为 root,若要切换为wei用户,可以执行以下操作。

[root@localhost ~]# su - wei
密码:
上一次登录:三 1月  3 22:44:35 CST 2024:0 上
[wei@localhost ~]$ 

上述命令操作中,选项"一"等同于"---login"或"一I",表示切换用户后进入目标用户的登录Shell环境.

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

[root@localhost ~]# gpasswd -a wei wheel
正在将用户"wei"加入到"wheel"组中
[root@localhost ~]# grep wheel /etc/group
wheel:x:10:wei
[root@localhost ~]# vim /etc/pam.d/su
auth            sufficient      pam_wheel.so trust use_uid  ##去掉开头的#号

auth            required        pam_wheel.so use_uid

启用pam_wheel认证以后,未加入到 wheel组内的其他用户将无法使用su命令.尝试进行切换时将提示"拒绝权限".从而将切换用户的权限控制在最小范围内。

2.2 sudo 命令------提升执行权限:

使用sudo命令就可以提升执行权限,不过,需要由管理员预先进行授权.指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令.

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

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

配置文件/etc/sudoers中,授权记录的基本配置格式如下所示。

user MACHINE=COMMANDS

授权配置主要包括用户、主机.命令三个部分.即授权哪些人在哪些主机上执行哪些命令.各部分的具体含义如下.

用户(user):直接授权指定的用户名,或采用"%组名"的形式(授权一个组的所有用户).

主机(MACHINE),使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份sudoers文件.一般设为localhost或者实际的主机名即可.

命令(COMMANDS);允许授权的用户通过sudo方式执行的特权命令.需填写命令程序的完整路径.多个命令之间以逗号","进行分隔。

典型的 sudo配置记录中,每行对应一个用户或组的sudo授权配置。

例如,若要授权用户jerry能够执行ifconfig命令来修改Р地址.而wheel组的用户无需验证密码即可执行任何命令,可以执行以下操作.

相关推荐
hao_wujing32 分钟前
网络安全攻防演练中的常见计策
安全·web安全
燕雀安知鸿鹄之志哉.1 小时前
攻防世界 web ics-06
网络·经验分享·安全·web安全·网络安全
鸭梨山大。3 小时前
Jenkins安全部署规范及安全基线
安全·中间件·jenkins
网安-轩逸3 小时前
网络安全核心目标CIA
安全·web安全
鸭梨山大。4 小时前
Jenkins 任意文件读取(CVE-2024-23897)修复及复现
安全·中间件·jenkins
Hacker_xingchen5 小时前
天融信Linux系统安全问题
linux·运维·系统安全
黑客老陈5 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
代码改变世界ctw11 小时前
如何学习Trustzone
安全·trustzone·atf·optee·tee·armv8·armv9
WTT001114 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
群联云防护小杜17 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡