Linux系统安全及应用加固———最适合新手学,新手都能看懂!超详细的理论+超详细的实验!呕心沥血之作完成! LAMP架构集成ownCloud搭建私有云盘 Shell脚本正则表达式(一) Linux第一人称侵入进程的好地方 Windows DOS常用命令(持续更新完善) 大数据驱动新材料研发 变革从内而发,一站式大数据平台和多模数据库雄起 雕佛像、打棒球、开飞机、去北极,这个90后程序员有点不一样 12项特色功能构建施工现场“物联网” 400亿美元!英伟达收购Arm 软银套现离场物联网梦醒 卫星物联网再次引发热议,原因在这里 信用飞:航旅行业数字化前景可期,大数据预防砍头息乱象 大数据加持自动驾驶产业发展 上海智能网联汽车公共数据中心揭牌 恒久科技(002808.SZ):子公司闽保信息与鸿达兴业签署智能制造及大数据平台综合应用项目战略合作框架协议 工业平板电脑如何在物联网中发挥作用? 400亿美元!英伟达收购Arm 软银套现离场物联网梦醒 “数字心脏”动态解析消费密码——国家级消费市场大数据联合实验 重庆:大数据智能化牵引产业结构调整质效提升 分析物联网技术在智能家居中的应用场景 国家级消费市场大数据联合实验室在上海先行先试 山西吕梁培训搬迁户成为大数据标注员 昔日贫困户,玩转高科技 知乎热议:2020年程序员是否过剩? 柯建东:宁波抢抓工业物联网新机遇,要做好四个平台建设 旷视:城市物联网的实现,是从超级应用到操作系统的沉淀过程 排障集合———忘记原密码,如何重新修改MySQL登入密码 【Redis】主从复制 网易2021批笔试题解 msf工具之木马程序制作以及伪装 【JAVA】滴滴-2021校招在线笔试-DE数据开发试卷-0913 机器学习13 -- 无监督学习之自监督 2020年全国数学建模大赛 B题部分代码和模型的建立 jumpserver安装(centos) Redis 知识点总结 通过RabitMQ实现分布式事务 高焕堂《嵌入式UML设计》读书笔记_第一章 2020年中国5G在物联网行业:中国通信运营商5G投资达1.23万亿元(可下载) 面试题精选:数据伪造 繁忙的都市(并查集、Kruskal) BFS 力扣 200.岛屿数量 深度操作系统Deepin V20正式版 2020-09-13 【OS】Bankers Algorithm 用于调用的参数太少/写入位置时发生冲突/检测到无效的异常处理程序例程 后渗透之各种维持权限的后门原理即利用 MIPS Branch Target Buffer动态分支预测(BTB) Oracle实战优化:INSERT ALL关键字的应用 Linux中MySQL数据库的使用②-----数据的基本操作 理论+实验——MySQL备份与恢复 MySQL常用数据库函数 MySQL 备份与恢复(完全备份恢复--增量备份恢复+案例演示)
您的位置:首页 >计算机基础 >

Linux系统安全及应用加固———最适合新手学,新手都能看懂!超详细的理论+超详细的实验!呕心沥血之作完成!

系统安全应用

一、账号安全控制1.1、账号安全基本措施1.1.1、系统帐号清理1.1.2、密码安全控制1.1.3、命令历史限制1.1.4、终端自动注销二、系统引导和登录控制2.1、使用su命令切换用户2.1.1、用途和用法2.1.2、限制使用su命令的用户三、Liunx中的PAM安全认证3.1、su命令的安全隐患3.2、PAM认证原理3.3、PAM认证的构成3.4、PAM安全认证流程四 、使用sudo机制提升权限4.1、su命令的缺点4.2、sudo命令的用途及用法4.3、配置sudo授权4.4、查看sudo操作记录五、开关机安全控制5.1、调整BIOS引导设置5.2、GRUB限制5.3、终端登录安全控制5.3.1、限制root只在安全终端登录5.3.2、禁止普通用户登录六、系统弱口令检测6.1、Joth the Ripper,简称为JR6.2、安装JR工具6.3、检测弱口令账号6.4、密码文件的暴力破解6.5、弱口令自定义字典破解实验七、网络端口扫描7.1、NMAP的扫描7.2、NMAP的扫描7.3、端口扫描实验

一、账号安全控制

1.1、账号安全基本措施

1.1.1、系统帐号清理

将非登录用户的Shell设为/sbin/nologin锁定长期不使用的账号删除无用的账号锁定账号文件passwd、shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow[root@localhost ~]# Isattr /etc/passwd /etc/shadow-------- /etc/passwd-------- /etc/shadow

①更改用户登录权限操作

1、进入vi /etc/passwd 在这里插入图片描述 2、在root用户选更改tx用户的登录权限 改成/sbin/nologin 在这里插入图片描述 3、然后tx用户退出登录在登陆时,已经登陆不上了

②用passwd -l 锁定账户 ,登陆不上;passwd -u 解锁账户 在这里插入图片描述 用usermod -L 锁定账户 ;usermod -U 解锁账户 在这里插入图片描述 ③删除无用账户

useradd先创建一个模拟的无用账户; userdel -r 删除无用账户 在这里插入图片描述 ④锁定文件

1、chattr +i /etc/passwd /etc/shadow 在vi编辑器里只能读,不能写 在这里插入图片描述 2、lsattr /etc/passwd /etc/shadow 查看文件状态 在这里插入图片描述 3、在vi编辑器里面操作是否可以读写,只读不写 在这里插入图片描述 解锁文件

1、chattr -i /etc/passwd /etc/shadow 在vi编辑器里可读可写了 在这里插入图片描述 2、lsattr /etc/passwd /etc/shadow 查看文件状态 在这里插入图片描述

1.1.2、密码安全控制

设置密码有效期要求用户下次登录时修改密码
[root@localhost ~]# vi /etc/login.defs适用于新建用户PASS MAX DAYS 30[root@localhost ~]# chage -M 30 lisi ## 适用于已有用户[root@localhost ~]# chage -d 0 zhangsan##强制在下次登录时更改密码

①新建用户更改密码有效期:

1、进入 vi /etc/login.defs 在这里插入图片描述 2、找到下面这句话 ,把数值改为30(就是有效期为30天) 在这里插入图片描述 3、新建tx1用户 ,给tx1设置密码

在这里插入图片描述 4、这时候 vi /etc/shadow 查看新建的 tx1 用户的密码有效期已经改好了 在这里插入图片描述 ②已有用户更改密码有效期:

1、更改已有用户 tx 的密码有效期为30天 在这里插入图片描述 2、进入vi /etc/shadow 查看 在这里插入图片描述 3、发现已经改为 ,密码有效期改为30天了 在这里插入图片描述 ③强制指定用户在下次登录时更改密码

1、这句代码的意思就是 强制指定tx用户下次登陆时更改密码 在这里插入图片描述 2、tx用户原来的更改密码有效期 在这里插入图片描述 3、tx用户改完之后的更改密码有效期

大家注意看,后面的时间参数是不一样的!!! 在这里插入图片描述 4、重新登陆的时候,按照图片输入要输入的密码就可以了 在这里插入图片描述 然后在回车重新登录的时候输入刚才的密码 下次登录改密码的时候要把密码弄复杂点 我弄的是 Tx!@#¥%……&W* 如果要取消强制登陆,直接进入vi编辑器直接更改成原来的参数

1.1.3、命令历史限制

减少记录的命令条数注销时自动清空命令历史

修改历史命令数量的限制

方法一:

1、进入vi /etc/profile 里面直接改里面的参数,从而达到修改历史命令数量的限制 在这里插入图片描述

2、按 shift+:然后输入 /HIST 然后回车,会跳到这个地方,然后手动修改一下参数,修改成70条 在这里插入图片描述 3、刷新一下 在这里插入图片描述 4、重启一下 在这里插入图片描述 5、然后查看一下历史命令,修改成功 在这里插入图片描述

方法二:

1、进入vi /etc/profile 里面 在这里插入图片描述

2、在最后一行直接输入这句话,这次我们改成最多只能60条 在这里插入图片描述 3、这条命令刷新一下 在这里插入图片描述 4、重启虚拟机 在这里插入图片描述 5、查看历史命令,只有60条命令,试验成功 在这里插入图片描述

1.1.4、终端自动注销

闲置600秒后自动注销 注意,注销的时候必须是闲置的时候!!!不能动
[root@localhost ~]# vi /etc/profileHISTSIZE=200[root@localhost ~]# vi ~/.bash_ logouthistory -Cclear

①针对所有用户的注销

1、进入vi编辑器后,在最后一行输入这句话,100秒后注销在这里插入图片描述 在这里插入图片描述 2、退出编辑器,然后刷新下 在这里插入图片描述 3、账户注销了 在这里插入图片描述

②针对单个用户修改注销时间

在这里插入图片描述 1、修改时间为20S 在这里插入图片描述 2、刷新一下 在这里插入图片描述 3、账户注销了 在这里插入图片描述

二、系统引导和登录控制

2.1、使用su命令切换用户

2.1.1、用途和用法

■用途及用法

用途: Substitute User, 切换用户格式: su - 目标用户

■密码验证

root→任意用户,不验证密码普通用户>其他用户,验证目标用户的密码

2.1.2、限制使用su命令的用户

■限制使用su命令的用户

将允许使用su命令的用户加入wheel组,在wheel组内的用户才可以使用su切换用户命令启用pam_wheel认证模块

■查看su操作记录

安全日志文件:/var/log/secure

限制使用su命令的用户实验

1、把 tx 用户加入 wheel 组 在这里插入图片描述

2、查看是否把 tx 用户放进 wheel 组 在这里插入图片描述

3、tx 用户在 wheel 组 在这里插入图片描述

4、进入 vi /etc/pam.d/su 在这里插入图片描述

5、把框出来的行前面的#号删掉 在这里插入图片描述 6、进入 vi /etc/login.defs 在这里插入图片描述 7、在末行输入这句话 在最后一行输入这句话 8、查看一下 cat /etc/group ,tx 用户 在 wheel 组 在这里插入图片描述 9、这是我们登录 tx 用户然后切换为 root用户可以切换,因为已经把 tx 用户放入 wheel组了

在这里插入图片描述 10、但是 tx1 用户却不能切换为 root 用户,因为 tx1 用户没有放进 wheel 组

在这里插入图片描述

三、Liunx中的PAM安全认证

3.1、su命令的安全隐患

su命令的安全隐患 默认情况下,任何用户都允许使用su命令,从而恶意用户有机会反复尝试其他用户(如root)的登录密码,带来安全风险 为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换 PAM(Pluggable Authentication Modules)可拔插式认证模块,它是一种高效而且灵活便利的用户级别的认证方式,也是当前Linux服务器普遍使用的认证方式

3.2、PAM认证原理

PAM认证一般遵循的顺序:Service(服务)>PAM(配置文件)>pam_*.so PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证 不同的应用程序所对应的PAM模块也是不同的 .so 为结尾的就是模块文件

3.3、PAM认证的构成

查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d,然后管道符号检索想要查询的程序;例如查看su是否支持PAM模块认证 ls /etc/pam.d | grep su 查看su的PAM配置文件:cat /etc/pam.d/su 每一行都是独立的认证过程 每一行可以区分为三个字段 认证类型 控制类型 PAM模块及其参数

3.4、PAM安全认证流程

控制类型也可以乘坐Control Flags,用于PAM验证类型的返回结果 1.required验证失败时仍然继续,但返回Fail 2.requisite验证失败则立即结束整个验证过程,返回fail(最重要的一步) 3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续 4.optional不用于验证,只显示信息(通常用session类型) 在这里插入图片描述

四 、使用sudo机制提升权限

4.1、su命令的缺点

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

4.2、sudo命令的用途及用法

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

4.3、配置sudo授权

visudo命令 或者 vim /etc/sudoers记录格式: 用户 主机名列表 = 命令程序列表
root@localhost log]# visudo......用户主机名列表 = 命令程序列表%wheelALL = NOPASSWD:ALLjerrylocalhost = /sbin/ifconfigsyrianerlocalhost = /sbin/*,!/sbin/ifconfig,!/sbin/route'可以使用通配符号*和取反符号!'Cmnd_AliasPKGTOOLS = /bin/rpm,/usr/bin/yummikelocalhost = PKGTOOLS

4.4、查看sudo操作记录

■查看sudo操作记录

需启用Defaults logfile 配置默认日志文件: /var/log/sudo

■查询授权的sudo操作

sudo -|

使用sudo机制提升权限实验

1、先在tx用户上测试,先输入(ifconfig ens33:1 192.168.10.10)创建网卡; 发现是不允许操作的,因为没有权限

在这里插入图片描述

2、需要在root用户visudo 或者/etc/sudoers都可以进配置文件添加提权用户;

在这里插入图片描述

3、配置文件末行加入你想要提权的用户;(KGC是主机名)

在这里插入图片描述

tx KGC=/sbin/*,!/sbin/reboot (tx用户在KGC主机下执行/sbin下所有命令,除了reboot)

4、再去tx用户上再去(sudo ifconfig ens33:1 192.168.10.10)创建网卡那条命令,发现是可以做操作的权限已经有了

在这里插入图片描述 5、ifconfig 查看一下是不是创建成功

在这里插入图片描述

五、开关机安全控制

5.1、调整BIOS引导设置

将第一引导设备设为当前系统所在硬盘禁止从其他设备(光盘、U盘、网络)引导系统将安全级别设为isetup,并设置管理员密码备注:禁止从其他设备引导系统操作,感觉若是出现忘记root密码就可能无法从光驱去修改,所以还是谨慎操作

调整BIOS引导设置实操

虚拟机重启之后,按F2进入BIOS

在这里插入图片描述

设置进入BIOS的密码,设置完之后确认

在这里插入图片描述 设置开机就要输入密码

在这里插入图片描述

在这里插入图片描述

F10保存退出! 在这里插入图片描述

5.2、GRUB限制

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

5.3、终端登录安全控制

5.3.1、限制root只在安全终端登录

■限制root只在安全终端登录

安全终端配置: /etc/securetty
[root@localhost ~]# vi letc/securetty......#tty5## 禁止root用户从终端tty5,tty6登录#tty6

限制root只在安全终端登录实验:

1、先在虚拟机终端里面 init 3切换字符界面,然后登陆进去 在这里插入图片描述

2、who 查看一下当前用户登陆的终端 在这里插入图片描述

3、打开 vi /etc/securetty,在tty2前加上#号,然后wq保存退出

在这里插入图片描述 4、记住当前我们是在tty1终端里面,然后按ctrl+alt+F2切换成tty2终端。 进tty2终端后,正常输入root用户和密码,应该是进不去的。 因为刚才我们已经把终端tty2给关闭了。 意思就是禁止 root 用户从终端tty2进入

在这里插入图片描述

注意:如果我们此时在tty1终端,然后在进入vi /etc/securetty把tty1终端给关掉,是没有用的,因为我们当时已经在tty1终端里面了,所以是没有效果的。 ctrl+alt+F1—9 是切换终端用的(在字符界面使用)

5.3.2、禁止普通用户登录

■禁止普通用户登录

建立/etc/nologin文件删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin## 禁止普通用户登录[root@localhost ~]# rm -rf /etc/nologin## 取消上述登录限制

禁止普通用户登录实验:

当服务器正在进行备份或调试等维护工作时,可能不希望在有新的用户登陆系统。这时候,只需要间的建立 /etc/nologin文件即可。login程序会检查 /etc/nologin 文件是否存在,如果存再则拒绝普通用户登录系统(root用户不受限制)。这里我们做个实验验证一下。

1、先创建并进入touch /etc/nologin文件里面 在这里插入图片描述

2、这时候我们在登录普通用户试验一下看是否可以登录成功

在这里插入图片描述 3、登陆失败! 在这里插入图片描述4、当我们在 vi /etc/nologin 里面输入别的字符,当其他用户(除root用户)在登陆自己的用户时就会显示我们刚才在 vi /etc/nologin里面输入的字符,我们这里验证一下。

①我们先进入 vi /etc/nologin ,在里面输入 Hello World,并 wq 保存退出 在这里插入图片描述

在这里插入图片描述 ②当我们登录 tx 用户时,虽然登录不上,但是显示了刚才在 vi /etc/nologin里面输入的字符 Hello World

在这里插入图片描述

取消登录限制:

rm -rf /etc/nologin 就是把这个文件删除

在这里插入图片描述

删除 /etc/nologin 文件之后,其他的用户又可以登录了

在这里插入图片描述

六、系统弱口令检测

6.1、Joth the Ripper,简称为JR

款密码分析工具,支持字典式的暴力破解通过对shadow文件的口令分析,可以检测密码强度官方网站: http://www.openwall.com/john/ 在这里插入图片描述

6.2、安装JR工具

安装方法 make clean系统类型主程序文件为john

6.3、检测弱口令账号

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

6.4、密码文件的暴力破解

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

6.5、弱口令自定义字典破解实验

1、把软件包放入 /opt目录里

在这里插入图片描述

2、进入 /opt目录

在这里插入图片描述 3、用tar软件包解压这个压缩包

在这里插入图片描述 4、进入 john-1.8.0/

在这里插入图片描述 5、ll 查看一下解压过后软件包的内容

在这里插入图片描述

在这里插入图片描述 6、回到上一层为了进入run/目录

在这里插入图片描述 7、进入run/并查看下里面有这个文件 在这里插入图片描述 8、把/etc/shadow复制到/root/shadow.lst(这时候没有shadow.lst)

在这里插入图片描述 9、进入 /root目录查看下shadow.lst文件是否创建成功 在这里插入图片描述 10、创建passwd.lst文件并打开,在里面输入root的密码是Tx123,然后随便输入几个其他的密码

在这里插入图片描述11、进入 /opt目录看下文件是否依然还在

在这里插入图片描述 12、输入如下代码,就可以查出root用户的密码和tx用户的密码。

在这里插入图片描述注意!!! 输入 vi john.opt会查看刚才root和tx用户密码的密文

在这里插入图片描述这时候退出来在破解密码,就不能在进行破解了,提示已经破解过了 在这里插入图片描述

弱口令穷举破解实验: 1、进入之后,按 100dd,就会把下面的密文密码一次性清除了 在这里插入图片描述2、这是已经把密文密码清除了

在这里插入图片描述 3、输入如下代码就可以进行暴力破解了 在这里插入图片描述

七、网络端口扫描

7.1、NMAP的扫描

nmap [扫描类型] [选项] <扫描目标…

7.2、NMAP的扫描

-sS、-sT、 -sF、 -sU、-sP、-PO

7.3、端口扫描实验

1、进行挂载 在这里插入图片描述2、安装nmap扫描工具

在这里插入图片描述3、查看本机开了多少端口(127.0.0.1是本机的回环口)

在这里插入图片描述 4、扫描本机的UDP端口 在这里插入图片描述 5、查看扫描20.0.0.0/24字段的FTP服务(21是FTP端口号) 在这里插入图片描述6、查看扫描20.0.0.0/24段存活哪些主机(能ping通);-sP类似于ping检测,快速判断目标主机是否存活,不做其他扫描 在这里插入图片描述 7、查看20.0.0.0—200主机是否开启文件共享

在这里插入图片描述

今天博客的内容就到此结束啦,内容有点多,希望大家可以仔细观看,写的非常详细了,真是呕心沥血啊!希望大家可以给我这个新手来个一键三连!感谢各位铁汁了!

在这里插入图片描述

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。