Linux:系统安全及应用

目录

一、系统账号管理

1.1、系统账号清理

1.2、密码安全控制

1.3、命令历史限制

二、限制su命令用户

三、PAM安全认证

四、sudo机制提升权限

4.1、sudo机制介绍

4.2、用户别名案例

4.3、启用sudo操作日志

4.4、其他案列sudo

4.5、开关机安全控制

4.6、限制更改GRUB引导参数

4.7、终端登录安全控制

五、系统弱口令检测

六、网络端口扫描nmap

6.1、nmap扫描类型

6.2、netstat命令


一、系统账号管理

1.1、系统账号清理

grep "/sbin/nologin$" /etc/passwd
usermod -s /sbin/nologin 用户名

案例
#账号锁住
usermod -L zhangsan #锁定账号 
passwd -S zhangsan # 查看账号状态
passwd -l zhangsan 锁定用户账户

#解锁账号
usermod -U zhangsan #解锁账号 
passwd -u zhangsan  #解锁账号 

删除无用账号
userdel -r 用户名

#锁定文件
chattr +i /etc/passwd /etc/shadow    #锁定文件

lsattr /etc/passwd /etc/shadow       #查看为锁定的状态

chattr -i /etc/passwd /etc/shadow    #解锁文件

1.2、密码安全控制

vim /etc/login.defs    #适用于新建的用户

PASS_MAX_DAYS 30      #设置密码有效期30天   默认99999      30  90  60 天很少

PASS_MIN_DAYS   0    #表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0

PASS_MIN_LEN    5    #密码最小长度,对于root无效   18位包含密码复杂性 大写 、小写、字符、数字

PASS_WARN_AGE   7    #指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。

#chage 命令用于设置密码时限

chage -M 30 lisi  #适用于已有的 lisi 用户

#执行以下操作可强制要求用户zhangsan下次登录时重设密码

chage -d 0 zhangsan

1.3、命令历史限制

history
history -c 临时的清除

clear

二、限制su命令用户

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

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

在/etc/pam.d/su文件里设置禁止用户使用su命令

vim /etc/pam.d/su
2 # auth sufficient pam_ rootok.so
6 #auth required pam_ wheel.so use_ _uid

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

b)两行都注释也是运行所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码)。

c)如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令

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

三、PAM安全认证

可插拔是形象说法 不是外部设备也不是U盘,可插拔可以理解为可配置、可定制的一个模块,你想让某个服务具有什么样的认证功能,你就可以通过配置它的配置文件实现;
可以理解为可配置、可定制、我们可以编辑,我们可以定制某个服务的认证就是可插拔试认证模块,它是一种高效而且灵活的便利的用户级的认证,也是现在linux 服务器普遍使用的认证方式。

PAM认证原理:
1.PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_ *.so;
2. PAM认证首先要确定哪一项应用 服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于
/lib64/security/下)进行安全认证。
3.用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
如果想查看某个程序是否支持PAM 认证,可以用ls命令进行查看/etc/pam.d/
PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用

认证类型 控制类型  PAM 模块及其参数

PAM 认证类型包括四种:
认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证;
帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过 期,帐号的登录是否有时间段的限制等;
密码管理(password management):主要是用来修改用户的密码; 
会话管理(session management):主要是提供对会话的管理和记账。 控制类型也可以称做 Control Flags,用于 PAM 验证类型的返回结果。 
1)required 验证失败时仍然继续,但返回 Fail 
2)requisite 验证失败则立即结束整个验证过程,返回 Fail 
3)sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续 
4)optional 不用于验证,只是显示信息(通常用于 session 类型)

四、sudo机制提升权限

4.1、sudo机制介绍

  通过su命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登 录密码。例如,若要从zhangsan 用户切换为 root 用户,必须知道 root 用户的密码。对于生产环 境中的 Linux 服务器,每多一个人知道特权密码,其安全风险也就增加一分。 有没有一种折中的办法,既可以让普通用户拥有一部分管理权限,又不需要将 root 用户的密码告诉他呢?答案是肯定的,使用 sudo命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令。

sudo [参数选项] 命令
-l :列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;
-v :验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳;
-u: 指定以以某个用户执行特定操作;
-k: 删除时间戳,下一个sudo 命令要求用求提供密码;

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

4.2、用户别名案例

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、 主机、命令部分都可以定义为别名(必须为大写),分别通过关键字User_Alias、Host_Alias,Cmnd_Alias来进行设置。

用户别名的语法格式:
1)User_Alias  用户别名:包含用户、用户组(%组名(使用%引导))、还可以包含其他其他已经用户的别名
 User_Alias OPERATORS=zhangsan,tom,lisi 
2)Host_Alias
主机别名:主机名、IP、网络地址、其他主机别名 !取反
 Host_Alias MAILSVRS=smtp,pop 
3)Cmnd_Alias
命令路劲、目录(此目录内的所有命令)、其他事先定义过的命令别名
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum 

4.3、启用sudo操作日志

visudo
Defaults logfile = "/var/log/sudq"

sudo日志记录以备管理员查看,应在/etc/sudoers 文件中增加“Defaults logfile”设置
如果已经启用 sudo 日志,则可以从/var/log/sudo 文件中看到用户的 sudo 操作记录。

4.4、其他案列sudo

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

4.5、开关机安全控制

在互联网环境中,大部分服务器是通过远程登录的方式来进行管理的,而本地引导和终端登录过程往往容易被忽视,从而留下安全隐患。特别是当服务器所在的机房环境缺乏严格、 安全的管控制度时,如何防止其他用户的非授权介入就成为必须重视的问题;

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

4.6、限制更改GRUB引导参数

从系统安全的角度来看,如果任何人都能够修改 GRUB 引导参数,对服务器本身显然是一个极大 的威胁。为了加强对引导过程的安全控制,可以为 GRUB 菜单设置一个密码,只有提供正 确的密码才被允许修改引导参数。 
为 GRUB 菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过 PBKDF2 算法加密的字符串,安全性更好。生成密码后在/etc/grub.d/00_header 配置文件 中,添加对应的用户、密码等配置。

重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。

[root@kgc ~]# grub2-mkpasswd-pbkdf2      #根据提示设置GRUB菜单的密码
输入口令:
Reenter password:  123456
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E96097D1B1E470345D9FB62759335832B4A0F39CD4C9A57B502BD59CF1B8C393EEA37847984E242AAD4BFBB72E4BDC2196E6A7495CE7C86BF3D2498A34CAC2B7.B2EB99ED40267AE9496357B78C0DC04CE79957980A4A3FFA577B7502D70A5412D2EAD5CE4DAAC0FE068621CB29B76E44A7645EDCC7784FF20E113AF0B95E3467i

[root@kgc ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@kgc ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
[root@kgc ~]# vim /etc/grub.d/00_header
cat << EOF 
set superusers="root"       #设置密码,省略部分内容为经过加密生成的密码字符串
password_pbkdf2 root grub.pbkdf2.sha512.10000.E96097D1B1E470345D9FB62759335832B4A0F39CD4C9A57B502BD59CF1B8C393EEA37847984E242AAD4BFBB72E4BDC2196E6A7495CE7C86BF3D2498A34CAC2B7.B2EB99ED40267AE9496357B78C0DC04CE79957980A4A3FFA577B7502D70A5412D2EAD5CE4DAAC0FE068621CB29B76E44A7645EDCC7784FF20E113AF0B95E3467i
EOF
使用 grub2-mkconfig 命令生成新的 grub.cfg 配置文件。
[root@kgc ~]# grub2-mkconfig -o /boot/grub2/grub.cfg //生成新的 grub.cfg 文件



一步到位
grub2-setpassword

4.7、终端登录安全控制

限制root只在安全终端登录
禁止普通用户登录 当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。

只需要简单地建立/etc/nologin 文件即可。login 程序会检查/etc/nologin 文件是否存在, 如果存在,则拒绝普通用户登录系统(root 用户不受限制)。
touch /etc/nologin  #除root以外的用户不能登录了。

虚拟控制台的选择可以通过按下Ctrl+Alt键和功能键Fn(n=1~6)来实现(tty1-tty6) tty1 图形界面  tty2-6 字符界面

注释 tty4
root 就不能登录

五、系统弱口令检测

一款密码分析工具,支持字典式的暴力破解通过对shadow文件的口令分析,可以检测密码强度

1.首先将准备好的john工具包通过xshell直接拖到/opt日录下,并进行解压

tar zxvf john-1.8.0.tar.gz  

2.安装软件编译环境

cd /opt/john-1.8.0/src

yum install gcc gcc-c++ -y

3.破解

[root@wangming john-1.8.0]# cd ./run
[root@wangming run]# ./john /etc/passwd /etc/shadow
Loaded 2 password hashes with 2 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:09 64% 1/3 0g/s 331.7p/s 331.7c/s 331.7C/s Wangming74..wangming99999E
000000           (wangming)
000000           (root)
2g 0:00:00:25 100% 2/3 0.07936g/s 278.1p/s 323.8c/s 323.8C/s serena..88888888
Use the "--show" option to display all of the cracked passwords reliably
Session completed

六、网络端口扫描nmap

6.1、nmap扫描类型

-p:分别用来指定扫描的端口

-n:禁用反向 DNS 解析(以加快扫描速度)

-sS,TCP SYN 扫描(半开扫描):只向目标发出 SYN 数据包,如果收到 SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。 
tcp确定三次握手
-sT,TCP 连接扫描:这是完整的 TCP 扫描方式,用来建立一个 TCP 连接,如果 成功则认为目标端口正在监听服务,否则认为目标端口并未开放。 

-sF,TCP FIN 扫描:开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻 击包。这种类型的扫描可间接检测防火墙的健壮性。 

-sU,UDP 扫描:探测目标主机提供哪些 UDP 服务,UDP扫描的速度会比较慢。

-sP,ICMP 扫描:类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。 

-P0,跳过 ping 检测:这种方式认为所有的目标主机是存活的,当对方不响应 ICMP 请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。

6.2、netstat命令

查看当前操作系统的网络连接状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具 。

-n          以数字的形式显示相关的主机地址、端口等信息                   
-r          显示路由表信息                                           
-a          显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l          显示处于监听(Listening)状态的网络连接及端口信息。         
-t          查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。
-u          显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。 
-p          显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限。

用法:①通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息;
②配合管道符grep过滤出特定的记录。

Proto显示连接使用的协议,
RefCnt表示连接到本套接口上的进程数量,
Types显示套接口的类型,
State显示套接口当前的状态,
Path表示连接到套接口的其它进程使用的路径名

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

root密码忘了怎么办(从系统引导过程解决)

目录 1.Linux系统密码忘记 2.系统引导过程 2.1 systemd 2.2 GRUB和GRUB2 2.3 运行级别 3.修复MBR扇区故障和GRUB引导故障 3.1 MBR扇区故障 3.2 GRUB引导故障 1.Linux系统密码忘记 我们在生活中经常遇到这类困扰&#xff0c;就是某个账号还是账户密码忘了&#xff0c;这…

Docker 部署 Nacos v2.3.2 版本

文章目录 Github官网文档Nacos 生态图Nacos Dockerdocker-compose.ymlapplication.propertiesNacos 官方示例 Github https://github.com/alibaba/nacos 官网 https://nacos.io/ 文档 https://nacos.io/docs/latest/what-is-nacos/ Nacos 生态图 Nacos Docker 镜像&…

《信创数据库沙龙上海站:共话发展,智启未来》

2024 年 6 月 29 日周六 14:00&#xff0c;信创数据库沙龙在上海市徐汇区建国西路 285 号科投大厦 13 楼金星厅成功举办。本次活动吸引了众多学术界和产业界的专家、学者以及技术爱好者参与。 活动中&#xff0c;多位嘉宾带来了精彩分享。薛晓刚探讨了 Oracle 在国内的前景&a…

Java全套智慧校园系统源码:微信小程序+电子班牌 让教育更智能化的一套数字化校园管理系统源码

Java全套智慧校园系统源码&#xff1a;微信小程序电子班牌 让教育更智能化的一套数字化校园管理系统源码 智慧校园管理系统是一种利用科技手段优化学校教育和管理的平台。它可以涵盖多个方面&#xff0c;例如教学、管理、服务等。其中包括智能化教室、智慧校园卡、校园安全监控…

基于flask的闪现、g对象、蓝图

【 一 】闪现&#xff08;flash&#xff09; # 1 flask中得闪现存放数据的地方&#xff0c;一旦取了&#xff0c;数据就没了-实现跨请求间传递数据 # 2 django中有没有类似的东西&#xff1f;message 消息框架# 3 基本使用1 设置&#xff1a;flash(欢迎你、欢迎来到澳门赌场&a…

Dns被莫名篡改的问题定位(笔记)

引言&#xff1a;最近发现用户的多台机器上出现了Dns被莫名修改的问题&#xff0c;从系统事件上看并未能正常确定到是那个具体软件所为&#xff0c;现在的需求就是确定和定位哪个软件具体所为。 解决思路&#xff1a; 首先到IPv4设置页面对Dns进行设置&#xff1a;通过ProcExp…

昇思25天学习打卡营第8天|MindSpore-SSD目标检测

SSD目标检测介绍 SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(mean Average Precision)以及59FPS;对于512x512的网络,达到了76.9%mAP ,超…

短视频电商源码怎么选择

随着移动互联网的迅猛发展&#xff0c;短视频电商成为了一种热门的商业模式。很多商家和创业者都希望能够快速搭建一个短视频电商平台来推广和销售自己的产品。然而&#xff0c;选择合适的短视频电商源码并不是一件容易的事情。在选择之前&#xff0c;有一些关键因素需要考虑。…

STC8/32 软硬件I2C通讯方式扫描I2C设备地址

STC8/32 软硬件I2C通讯方式扫描I2C设备地址 📄主要用于检测挂载在I2C总线上的设备。在驱动I2C设备之前,如果能扫描到该设备,说明通讯设备可以连接的上,在提前未知I2C地址的情况下,可以方便后面的驱动代码的完善。 🔬扫描测试效果:(测试mpu6050以及ssd1306 i2c oled )…

本科学历|艺术创业公司经理限定美国西部访问学者申请成功

U经理属于自费访学&#xff0c;本科学历&#xff0c;无文章及课题&#xff0c;但有较丰富的艺术创意及艺术教育实际操作经验&#xff0c;要求申美国西部地区的学校。最终我们为其获得俄勒冈州立大学访问学者邀请函。之前拟定的申请设想全部实现&#xff1a;西部地区、专业契合、…

【Lua小知识】Vscode中Emmylua插件大量报错的解决方法

起因 Vscode写Lua用的好好的&#xff0c;最近突然出现了大量报错。 看报错是有未定义的全局变量&#xff0c;这里查日志才发现是由于0.7.5版本新增诊断启用配置&#xff0c;所以导致了原先好的代码&#xff0c;现在出现了大量的报错。 解决方案一 最直接的方法当然是在配置中直…

【单片机毕业设计选题24040】-基于STM32的蓝牙防丢器设计

系统功能: 系统上电后显示“欢迎使用蓝牙防丢系统请稍后”两秒钟显示正常界面&#xff0c;如果蓝牙正常连接OLED显示Connected, 蓝牙未连接则显示DisConnected同时蜂鸣器报警 蓝牙正常连接后在APP上每隔三秒显示一个Connected 系统功能框图: 主要功能模块原理图: 电源时钟…

CSS|04 复合选择器伪类选择器属性选择器美化超链接

基本选择器&#xff1a;见上篇基本选择器 复合选择器选择器1,选择器2{属性:值;} 多元素选择器&#xff0c;同时匹配选择器1和选择器2&#xff0c;多个选择器之间用逗号分隔举例&#xff1a; p,h1,h2{margin:0px;}E F{属性:值;} 后代元素选择器&#xff0c;匹配所有属于E元素后…

【Python机器学习】模型评估与改进——分组交叉验证

分组交叉验证是非常常见的一种交叉验证策略&#xff0c;它适用于数据中的分组高度相关时。比如我们想构建一个从人脸图片中识别情感的系统&#xff0c;并且收集了100个人的照片的数据集&#xff0c;其中每个人都进行了多次拍摄&#xff0c;分别展示了不同的情感。我们的目标是构…

Python 文件操作

文件编码 将文件的内容翻译为二进制 文件操作 打开文件 open函数 语法&#xff1a; open(name, mode, encoding)name&#xff1a;文件名的字符串&#xff0c;可以包含具体路径。若没有路径&#xff0c;则默认为与py文件位于同一层 mode&#xff1a;打开文件的模式&#xf…

PP-JITTER \RMS-JITTER 及其他Jitter解析

Jitter概念 Jitter(抖动)是从时域评价时钟信号质量的重要参数。 首先要明确的是它是一个统计量,因此有标准差(均方根,rms)和范围(峰峰值,p2p); 然后根据样本的类型可以划分成不同的分类,如Jabs(absolute jitter)、Jp(period jitter)、Jc2c(cycle-to-cycle ji…

Forecasting from LiDAR via Future Object Detection

Forecasting from LiDAR via Future Object Detection 基础信息 论文&#xff1a;cvpr2022paper https://openaccess.thecvf.com/content/CVPR2022/papers/Peri_Forecasting_From_LiDAR_via_Future_Object_Detection_CVPR_2022_paper.pdfgithub&#xff1a;https://github.co…

UWB透传模块-通信距离1KM UWB650 透明传输 | 双向测距 | 定位模块

UWB650模块是思为无线推出的一款基于UWB&#xff08;Ultra Wide Band&#xff0c;超宽带&#xff09;技术的无线通讯模块&#xff0c;遵循IEEE 802.15.4-2020 Standard协议。UWB650模块是在UWB3000F27基础上研发&#xff0c;使该模块拥有0.5W的高功率功放芯片。用户无需去设计电…

Ubuntu使用chkconfig命令时报错:chkconfig: command not found解决办法

文章目录 前言一、安装sysv-rc-conf1.1 引入库安装可能报错&#xff1a;E: Unable to locate package sysv-rc-conf1.2 添加镜像源后更新安装源&#xff1a;1.3 更新安装源可能报错如下内容&#xff1a;1.4 添加密钥1.5 添加密钥后更新安装源&#xff1a;1.6 用apt-get安装sysv…

能源企业的“宿命”,是成为穿越时代的传奇

2012年&#xff0c;杰里米里夫金的《第三次工业革命》出版&#xff0c;他在书中提出了能源互联网的观点&#xff0c;将互联网技术和可再生能源结合起来&#xff0c;用以支持未来的产业革命。 里夫金不愧是和凯文凯利&#xff08;KK&#xff09;齐名的未来学家&#xff0c;十几…