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_logouthistory -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组的用户无需验证密码即可执行任何命令,可以执行以下操作.

 


 


 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/324894.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCIe 6.0生态业内进展分析总结

上一篇,我们针对PCIe 6.0的功能更新与实现挑战做了简单的分析与总结。更多详细内容可以参考: 扩展阅读:浅析PCIe 6.0功能更新与实现的挑战 那么,PCIe 6.0已经发布了一段时间了,业内硬件支持PCIe 6.0目前有哪些进展呢…

c语言:用共同体输出数据|练习题

一、题目 设置一个c语言共同体&#xff0c;并用共同体输出数据 如图&#xff1a; 二、代码图片【带注释】 三、源代码【带注释】 #include <stdio.h> #include<string.h> //定义一个共同体 union test { int i; char ch[10]; int id; }; //注意&…

创意无限:火星文和变异字体的魅力世界

在互联网的浩瀚星空里&#xff0c;火星文和变异字体如同璀璨的繁星&#xff0c;照亮了网络世界的角落。它们以独特的创意和视觉冲击力&#xff0c;吸引着无数网友的目光。让我们一起走进这个充满创意和想象力的世界&#xff0c;感受火星文和变异字体的无限魅力。 火星文生成器…

深入理解Python中的二分查找与bisect模块

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

互联网广告行业发展历程

在20年的历程中&#xff0c;广告主与媒体方持续面对着一些问题&#xff0c;一些核心问题推动了行业的迭代。 互联网广告经过了20年左右的高速发展&#xff0c;已愈发成熟&#xff0c;其历程是有趣的。 对互联网广告发展的理解&#xff0c;网上的文章并不多&#xff0c;已有的…

Linux-端口、nmap命令、netstat命令

端口是设备与外界通讯交流的出入口&#xff0c;可分为物理端口和虚拟端口 物理端口实际存在可以看见&#xff0c;而虚拟端口是指计算机内部的端口&#xff0c;是不可见的&#xff0c;用来操作系统和外部交互使用。 IP地址不能锁定程序&#xff0c;所以可以通过端口&#xff0…

图像分割-Grabcut法(C#)

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本文的VB版本请访问&#xff1a;图像分割-Grabcut法-CSDN博客 GrabCut是一种基于图像分割的技术&#xff0c;它可以用于将图像中的…

三勾点餐|基于java+springboot+vue3实现H5在线点餐系统

三勾点餐系统基于javaspringbootelement-plusuniapp打造的面向开发的小程序商城&#xff0c;方便二次开发或直接使用&#xff0c;可发布到多端&#xff0c;包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端外卖点餐系统的应…

开发接口,你需要先搞懂这些概念!

SOA Service Oriented Ambiguity 即面向服务架构&#xff0c; 简称SOA。 SOA的提出是在企业计算领域&#xff0c;就是要将紧耦合的系统&#xff0c;划分为面向业务的&#xff0c;粗粒度&#xff0c;松耦合&#xff0c;无状态的服务。服务发布出来供其他服务调用&#xff0c;一…

【GUI界面软件】抖音评论采集:自动采集10000多条,含二级评论、展开评论!

文章目录 一、背景说明1.1 效果演示1.2 演示视频1.3 软件说明 二、代码讲解2.1 爬虫采集模块2.2 软件界面模块2.3 日志模块 三、获取源码及软件 一、背景说明 1.1 效果演示 您好&#xff01;我是马哥python说&#xff0c;一名10年程序猿。 我用python开发了一个爬虫采集软件…

Rust 字符串 初步了解

rust 的字符串 。字符串不是复合类型&#xff0c; String 和 &str &#xff1a; String 具有所有权&#xff0c;是存储在堆上的。&str 没有所有权&#xff0c;是对 String 的引用。字符串字面量也是 &str 类型&#xff0c;存储在栈上。 切片&#xff08;slice&a…

开发个小破软件——网址导航,解压就能用

网址导航 网站导航也称链接目录&#xff0c;将网站地址或系统地址分类&#xff0c;以列表、图文等形式呈现&#xff0c;帮助快速找到需要的地址。 应用场景 高效查找&#xff1a;网址导航是很好的入口&#xff0c;通过分类清晰的网站推荐&#xff0c;可以迅速访问网站资源。…