新用户注册入口 老用户登录入口

[转载]系统安全以及应用

文章作者:转载 更新时间:2023-05-07 23:37:44 阅读数量:94
文章标签:Linux系统账号安全控制密码安全PAM认证su命令sudo命令
本文摘要:本文详述了Linux系统账号安全的综合管理措施,包括定期清理非登录账号、限制命令历史记录、设置密码有效期和强制改密。通过PAM认证机制强化su命令的安全性,并借助pam_wheel模块控制su命令的使用权限。同时介绍了GRUB引导与BIOS设置以增强开机安全性,以及利用JOHN the Ripper检测弱口令账号。此外,文章还指导如何配置sudoers文件实现精细授权,以及通过NMAP进行网络端口扫描排查潜在风险,确保系统的整体安全性。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/weixin_67474417/article/details/123982900。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

目录

一.账号安全基本措施

1.系统账号清理

      二.密码安全控制:

1.设置密码有效期:

2.要求用户下次登录时改密码

          三.命令历史限制与自动注销

                 1.命令历史限制:

                 2.终端自动注销:

四.PAM安全认证

             1.su的命令的安全隐患

             2.什么是PAM

             3.PAM认证原理

             4.PAM安全认证流程

五.限制使用su命令的用户(pam-wheel认证模块)

      1.su命令概述:

      2. su命令的用途以及用法:  

      3.配置su的授权(加入wheel组)(pam_wheel认证模块:):

      4.配置/etc/sudoers文件(授权用户较多的时候使用):

六.开关机安全控制

     1.调整BIOS引导设置

     2.GRUB限制

七.终端以及登录控制

     1.限制root只在安全终端登录       

     2..禁止普通用户登录

八.系统弱口令检测

      1.JOHN the Ripper,简称为JR

      2.安装弱口令账号

      3.密码文件的暴力破解

九.网络端口扫描

     1.NMAP

     2.格式

总结:


一.账号安全基本措施

1.系统账号清理

1.将非登录用户的Shell设为/sbin/nologin

(ps:在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。)

格式:usermod -s /sbin/nologin 用户名

2锁定长期不使用的账号:

[root@hehe ~]# usermod -L test2    锁定用户账号方法一
[root@hehe ~]# passwd -l test3     锁定用户账号方法二
[root@hehe ~]# usermod -U test2    解锁用户账号方法一
[root@hehe~]# passwd -u test3     解锁用户账号方法二查看账户有没有被锁:passwd -S [用户名]

3.删除无用的账号

[root@hehe ~]# userdel test1
[root@hehe~]# userdel -r test2

4.锁定账号文件passwd,shadow

[root@hehe ~]# chattr +i /etc/passwd /etc/shadow   锁定文件,包括root也无法修改
[root@hehe ~]# chattr -i /etc/passwd /etc/shadow 解锁文件
[root@hehe ~]# lsattr /etc/passwd /etc/shadow查看文件状态属性

举个例子:

 

二.密码安全控制:

1.设置密码有效期:

1.[root@localhost ~]# chage -M 60 test3   #这种方法适合修改已经存在的用户1
​
2.[root@localhost ~]# vim /etc/login.defs  #这种适合以后添加新用户PASS_MAX_DAYS   30

1.这个方法适用于早就已经存在的用户:

 2.这个方法适用于新用户

 

2.要求用户下次登录时改密码:

[root@hehe ~]# chage -d 0 [用户名]  强制要求用户下次登陆时修改密码

三.命令历史限制与自动注销

1.命令历史限制:

             1.减少记录的命令条数

减少记录命令的条数:
1.[root@hehe ~]# vim /etc/profile  进入配置文件修改限制命令条数。适合新用户HISTSIZE=200     修改限制命令为200条,系统默认是1000条profile [root@lhehe ~]# source /etc/ 刷新配置文件,使文件立即生效2.[root@hehe~]# export HISTSIZE=200  适用于当前(之后)用户[root@hehe~]# source /etc/profile [root@hehe ~]# source /etc/profile 刷新配置文件,使文件立即生效

1.减少记录命令的条数(适用之前的用户):     

 

          2.注销时自动清空命令历史

   
3. 注销时自动清空命令:[root@hehe ~]# vim ~/.bash_logout(临时清除,重启缓存的话还在)echo "" > ~/.bash_history(永久删除)history是查你使用过的命令

2.终端自动注销:

             1.闲置600秒后自动注销    

闲置600秒后自动注销:
[root@hehe ~]#vim .bash_profile  进入配置文件export TMOUT=600  全局声明超过60秒闲置后自动注销终端
[root@hehe ~]# source .bash_profile 
[root@hehe ~]# echo $TMOUT[root@hehe ~]# export TMOUT=600   
如果不在配置文件输入这条命令,那么是对当前用户生效
​
[root@hehe ~]#vim .bash_profile # export TMOUT=600  注释掉这条命令,就不会自动注销了

   四.PAM安全认证

             1.su的命令的安全隐患

                   1.,默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;

                   2.为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

             2.什么是PAM

                    1.PAM(Pluggable Authentication Modules)可插拔式认证模块

                    2.是一种高效而且灵活便利的用户级别的认证方式;

                    3.也是当前Linux服务器普遍使用的认证方式。

                    4.PAM提供了对所有服务进行认证的中央机制,适用于login,远程登陆,su等应用

                    5.系统管理员通过PAM配置文件来制定不同的应用程序的不同认证策略

              3.PAM认证原理

                   1.PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,

                   2.PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认 模块(位于/lib64/security/下)进行安全认证。

                   3.用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。

                   4.如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。

ls /etc/pam.d/ | grep su

                   5.PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。

              4.PAM安全认证流程

               控制类型也称做Control Flags,用于PAM验证类型的返回结果

用户1 用户2 用户3 用户4
auth required   模块1 pass fail pass pass
auth sufficient 模块2 pass pass fail pass
auth required   模块3 pass pass pass fail
结果 pass fail pass pass

              4

五.限制使用su命令的用户(pam-wheel认证模块)

          1.su命令概述:

          通过su命令可以非常方便切换到另一个用户,但前提条件是必须知道用户登录密码。对于生产环境中的Linux服务器,每多一个人知道特权密码,安全风险就多一分。于是就多了一种折中的办法,使用sudo命令提升执行权限,不过需要由管理员预先进行授权, 指定用户使用某些命令:

         2. su命令的用途以及用法:  

用途:以其他用户身份(如root)执行授权命令
用法:sudo 授权命令

         3.配置su的授权(加入wheel组)(pam_wheel认证模块:):

进入授权命令:
1.visudo 或者 vim /etc/sudoers语法格式:
1.用户  主机名=命令程序列表
2.用户  主机名=(用户)命令程序列表-l:
列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;
-v:验证用户的时间戳;如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作;用-v可以跟踪最新的时间戳;-u:指定以以某个用户执行特定操作;-k:删除时间戳,下一个sudo命令要求用求提供密码;
1.首先创建3个组

 

2.vim /etc/pam.d/su
把第六行注释去掉保存退出

1. 以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的

2.两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码:

3.如果第–行不注释,则root 使用su切换普通用户就不需要输入密码( pam_ rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)

4.如果开启第二行,表示只有root用户和wheel1组内的用户才可以使用su命令。

5.如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。

3.将liunan加入到wheel之后,hehe就有了使用su命令的权限

    

4.使用pam_wheel认证后,没有在wheel里的用户都不能再用su

     

5.whoami命令确定当前用户是谁

 

 4.配置/etc/sudoers文件(授权用户较多的时候使用):


visudo单个授权
visudo 或者 vim /etc/sudoers
记录格式:
user MACHINE=COMMANDS
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
%组名代表一整个组
权限生效后,输入密码后5分钟可以不用重新输入密码。例如:visudo命令下
user kiro=(root)NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod
##代表 kiro主机里的user用户,可以无密码使用useradd命令,有密码使用usermod/etc/sudoers多个授权
Host_Alias MYHOST= localhost  主机别名:主机名、IP、网络地址、其他主机别名!取反
Host_Alias MAILSVRS=smtp,pop(主机名)User_Alias MYUSER = kiro,user1,lisi 用户别名:包含用户、用户组(%组名(使用引导))、还可以包含其他其他已经用户的别名
User_Alias OPERATORS=zhangsan,tom,lisi(需要授权的用户)Cmnd_Alias MYCMD = /sbin/*,/usr/bin/passwd 命令路劲、目录(此目录内的所有命令)、其他事先定义过的命令别名
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum(授权)MYUSER MYHOST = NOPASSWD : MYCMDDS 授权格式sudo -l    #查询目前sudo操作查看sudo操作记录
需启用Defaults logfile
配置默认日志文件: /var/log/sudo
sudo -l   查看当前用户获得哪些sudo授权(启动日志文件后,sudo操作过程才会被记录)

1.首先用visudo 或者 vim /etc/sudoers进入,输入需要授权的命令

 2.切换到taojian用户,因为设置了它不能使用创建用户的命令所以无法创建

六.开关机安全控制

     1.调整BIOS引导设置

1.将第一引导设备设为当前系统所在硬盘
2.禁止从其他设备(光盘、U盘、网络)引导系统
3.将安全级别设为setup,并设置管理员密码

     2.GRUB限制

1.使用grub2-mkpasswd-pbkdf2生成密钥
2.修改/etclgrub.d/00_header文件中,添加密码记录
3.生成新的grub.cfg配置文件

     方法一:


通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的
威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。
grub2-mkpasswd-pbkdf2   ###根据提示设置GRUB菜单的密码
PBKDF2 hash of your password is grub.pbkd.....   ###省略部分内容为经过加密生成的密码字符串
cp  /boot/grub2/grub.cfg  /boot/grub2/grub.cfg.bak 8
cp  /etc/grub.d/00_header /etc/grub.d/00_header.bak 9vim /etc/grub.d/00_headercat << EOF
set superusers="root"  ###设置用户名为root
password_pbkdf2 root grub.pbkd2.....    ###设置密码,省略部分内容为经过加密生成的密码字符串
EOF16grub2-mkconfig -o /boot/grub2/grub.cfg   ###生成新的grub.cfg文件
重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。

方法二:

1.一步到位
2.grub2-setpassword

七.终端以及登录控制

     1.限制root只在安全终端登录       

​安全终端配置文件在 /etc/securetty

     2..禁止普通用户登录

          1.建立/etc/nologin文件

          2.删除nologin文件或重启后即恢复正常


vim /etc/securetty
在端口前加#号拒绝访问touch /etc/nologin  禁止普通用户登录
rm -rf /etc/nologin 取消禁止

八.系统弱口令检测

      1.JOHN the Ripper,简称为JR

1.一款密码分析工具,支持字典式的暴力破解2.通过对shadow文件的口令分析,可以检测密码强度3.官网网站:http://www.openwall.com/john/

      2.安装弱口令账号

1.获得Linux/Unix服务器的shadow文件2.执行john程序,讲shadow文件作为参数

      3.密码文件的暴力破解

1.准备好密码字典文件,默认为password.lst2.执行john程序,结合--wordlist=字典文件

九.网络端口扫描

     1.NMAP

1.—款强大的网络扫描、安全检测工具,支持ping扫描,多端口检测等多种技术。2.官方网站: http://nmap.orgl3.CentOS 7.3光盘中安装包,nmap-6.40-7.el7.x86_64.rpm

     2.格式

    NMAP [扫描类型] [选项] <扫描目标....>

安装NMAP软件包
rpm -qa | grep nmap
yum install -y nmapnmap命令常用的选项和扫描类型
-p:指定扫描的端口。-n:禁用反向DNS 解析 (以加快扫描速度)。-sS:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。-sT:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP attack 包。这种类型的扫描可间接检测防火墙的健壮性。-sU:UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。-sP:ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。-P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping通而放弃扫描。

总结:

1.账号基本安全措施:系统账号处理、密码安全控制、命令历史清理、自动注销

2.用户切换与提权(su、sudo)

3.开关机安全控制(BIOS引导设置、禁止Ctrl+Alt+Del快捷键、GRUB菜单设置密码)

4.终端控制

5.弱口令检测——John the Ripper

6.端口扫描——namp

本篇文章为转载内容。原文链接:https://blog.csdn.net/weixin_67474417/article/details/123982900。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
PAM (Pluggable Authentication Modules)PAM是一种灵活且可扩展的Linux系统安全认证框架,允许系统管理员通过配置文件制定不同的应用程序和网络服务的认证策略。在本文语境中,PAM用于加强su命令的安全性控制,限制只有特定用户(如wheel组成员)才能使用su命令切换至其他用户身份,从而降低未经授权访问特权账户的风险。
pam_wheel认证模块pam_wheel是PAM框架中的一个认证模块,专门设计用来限制su命令的使用权限。当启用此模块时,仅允许属于wheel组的用户无须root密码即可使用su命令切换到root或其他用户,从而增强了对系统权限管理的精细度与安全性。
sudoers文件sudoers文件是Linux系统中用于定义sudo命令权限的重要配置文件,位于/etc/sudoers路径下。在本文中,系统管理员通过编辑sudoers文件,可以为单个用户或用户组指定能够以其他用户(如root)身份执行的特定命令列表,并可选择是否要求输入密码验证。例如,可以通过设置sudoers文件实现只有wheel组内的用户才拥有使用su命令提升权限的能力,或者授权个别用户在一定时间内无需再次输入密码就能执行某些高权限操作。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入理解Linux系统账号安全控制的多维度措施之后,我们注意到,在数字化时代,操作系统安全问题的重要性日益凸显。近日,Red Hat Enterprise Linux(RHEL)发布了最新的安全更新,强化了身份验证机制,包括对PAM模块的进一步优化以抵御潜在攻击,并改进了sudoers文件配置的安全策略指导,旨在帮助管理员更精细地控制用户权限。
同时,针对密码安全方面,NIST近期发布的《数字身份指南》中,提倡采用多因素认证以及定期更换密码的做法,并强调了密码复杂度要求的新变化——从过去单纯追求长度和特殊字符组合转变为支持较长的、易记忆的短语。这一转变意味着,系统管理员在设置密码有效期时,应充分考虑新指南的精神,确保密码策略既安全又符合用户的记忆习惯。
此外,开源社区也在积极应对命令历史记录安全风险。例如,一种新的bash插件被开发出来,可实现命令历史记录加密存储,有效防止恶意攻击者通过查看历史记录获取敏感信息。而在端口扫描防御方面,除了传统的NMAP工具之外,一些实时网络监控与入侵检测系统如Zeek (前Bro)也因其高效识别异常网络活动的能力而备受瞩目。
综上所述,随着信息技术的发展和安全威胁的变化,Linux系统的账号安全管理需不断跟进最新研究和技术动态,结合文中所述的基础措施,灵活运用先进的安全技术和管理理念,构建更加稳固的操作系统安全防线。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
last - 显示系统最近登录过的用户信息。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
RabbitMQ实战中因API版本问题导致消息丢失的排查与修复 03-12 jQuery元素滚动动画库插件-ScrollMagic 02-09 属性级联同步与实体管理:Hibernate实战案例详解 01-27 jQuery超酷3D包装盒封面旋转特效 05-16 ElSteps组件动态改变当前步骤时样式更新滞后问题的Vue.js解决方案 02-22 java中处理异常的方式和语句 01-13 AI助手的工作原理与限制:无法按特定要求撰写的原因及信息处理分析 12-27 代码写的html网红钟表 12-18 简约大气文艺工作者作品展示网站模板 09-21 本次刷新还10个文章未展示,点击 更多查看。
ClickHouse系统重启情境下的数据丢失风险与应对:写入一致性、同步模式及备份恢复策略实践 08-27 jQuery带放大镜的迷你幻灯片插件 08-16 简约手机UI设计公司网站模板下载 04-30 绿色经典响应式主机服务器托管网站模板 04-25 PostgreSQL中应对密码过期警告:安全更改密码的步骤与注意事项 04-17 docker改tag(docker改配置文件) 03-17 [转载]蓝桥 利息计算(Java) 03-11 jquery文字动画特效插件animatext 01-22 大气简洁手机电子产品展示柜台前端模板 01-22 [转载]ubuntu用户和权限介绍 01-10 可爱毛绒玩具网上商城响应式网站模板 01-05
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"