菲洛嘉青春动能素135HA FILLMED® NCTF 135HA LED指示灯的常见故障分析 智微智能 Elkhartlake K075终端,零售产业新选择 天空蓝拓客管理系统详细介绍版 muso公链项目 天使计划 是什么?[秘] 独家揭秘最前沿的家装“黑科技”——掌赋 天博体育欧洲杯特辑,东道主法兰西的失意2016 亚马逊的送货侦察员 学习听起来像挡泥板 Google Comics Factory使ML变得容易 笑着说-男性或女性 Amazon Rekognition中更好的人脸检测 关于Spaun的真相-大脑模拟 两个聊天机器人彼此聊天-有趣又怪异 GANPaint:将AI用于艺术 WCF和WF给予社区 从耳朵到脸 所有神经网络的深层缺陷 蠕虫在尾巴上平衡杆子 Kickstarter上的OpenCV AI套件 TensorFlow-Google的开源AI和计算引擎 众包取代新闻工作者 Google的DeepMind学会玩街机游戏 哑机器人V智能机器人 .NET与.NET 5融为一体 Google的深度学习-语音识别 LInQer将.NET LINQ移植到Javascript 机器人TED演讲-新的图灵测试? GAN的发明者加入苹果 您的智能手机会监视您键入的内容 人工智能帮助改善国际象棋 Zalando Flair NLP库已更新 TensorFlow 1.5包含移动版本 AlphaGo输了一场比赛-比分3-1 虚拟机器学习峰会 Microsoft开源AI调试工具 SharePoint走向移动 F#4.0发出文化变革的信号 克里斯蒂拍卖AI艺术品 人工智能如何区分 Facebook在蒙特利尔的新AI实验室 Mozilla想要您的声音 微软使用极深的神经网络赢得ImageNet 建立AI合作伙伴关系 .NET Core 3-Microsoft几乎回到了起点 神经网络-更好的销售商? Google使用AI查找您的住所 虹膜-适用于Android的Siri证明苹果没有优势 TensorFlow 2提供更快的模型训练 深度学习研究人员将为Google工作
您的位置:首页 >计算机基础 >

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主机是否开启文件共享

在这里插入图片描述

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

在这里插入图片描述

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