系统安全及应用

一回顾

建立用户:useradd mg

账户锁定: passwd -l 用户名 usermod -l 用户名

账户解锁:passwd -u 用户名 usermod -u 用户名

删除用户:userdel 用户

查看:cat /etc/passwd

切换用户:su

非登录用户设置为不能登录

usermod -s nologin 用户名

chatter 锁定重要账户文件

-i

-a

lsattr /etc/passwd /etc/shadow                #查看文件的状态
chattr +i /etc/passwd /etc/shadow            #锁定文件
chattr -i /etc/passwd /etc/shadow            #解锁文件

history

-c 临时清空

清除历史记录
查看历史输入指令       history 

history记录存放过文件  ~/.bash_history

临时清空               history   -c

永久清空             echo " ">~/.bash_history

退出后清除            vim .bash_logout    

开机后清除            vim .bashrc    

注销时自动清空命令历史

#vim .bashrc

终端用户自动注销

减少记录命令的条数:
1.[root@localhost ~]# vim /etc/profile      进入配置文件修改限制命令条数。适合新用户
   HISTSIZE=200                             修改限制命令为200条,系统默认是1000条profile 
   [root@localhost ~]# source /etc/profile  刷新配置文件,使文件立即生效
 
2.[root@localhost ~]# export HISTSIZE=200    适用于当前用户
   [root@localhost ~]# source /etc/profile 
   [root@localhost ~]# source /etc/profile   刷新配置文件,使文件立即生效
    
   
3. 开机时自动清空命令:
 [root@localhost ~]# vim ~/.bashrc
     echo "" > ~/.bash_history

命令历史、自动注销

减少记录命令的条数:
1.[root@localhost ~]# vim /etc/profile  进入配置文件修改限制命令条数。适合新用户
   HISTSIZE=200     修改限制命令为200条,系统默认是1000条profile 
   [root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
 
2.[root@localhost ~]# export HISTSIZE=200  适用于当前用户
   [root@localhost ~]# source /etc/profile 
   [root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
   
3. 开机时自动清空命令:
 [root@localhost ~]# vim ~/.bashrc
     echo "" > ~/.bash_history

配置文件修改记录history命令的条数(默认1000)

#vim /etc/profile

#source /etc/profile 刷新

#cat /etc/profile 刷新

使用su 切换用户

①即 switch user,切换用户身份,并且以指定用户的身份执行命令

su 目标用户:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

su - 目标用户:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

②密码验证

root ->任意用户,不验证密码

普通用户->其他用户,验证目标用户密码

su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。

③限制使用su命令的用户

将允许使用su命令的用户加入wheel组

不在 wheel 组,不能使用 su 指令

修改完之后,不能使用 su

root 用户切换其他用户也需要密码

Linux中的PAM安全认证

在不修改应用程序代码的情况下自定义系统的身份验证、授权和会话管理策略

1、su命令的安全隐患
  • 默认情况下,任何用户都允许使用 su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
  • 为了加强su 命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2 PAM可插拔式认证模块
  • 高效且灵活的用户级别的认证方式
  • 当前Linux服务器普遍使用的认证方式,既适用于本地登录也适用于远程登录

查看rpm的当前系统 #rpm -qi pam

3 PAM的相关文件
  • /usr/lib64/security :存放功能模块 或者#ls /usr/lib64/security
  • /etc/pam.d/ :配置文件
  • /etc/security :复杂的配置文件
3 PAM认证原理

当用户来访问某一程序的时候,如果这个程序启用了pam模块,会先去读取配置文件,然后按照配置文件调用模块,进行操作。

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

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

用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

不同的应用程序所对应的PAM模块是不同

4 PAM认证的构成

查看某个程序是否支持PAM认证,可以用ls命令

格式:ls /etc/pam.d | grep su

查看su的PAM配置文件:cat /etc/pam.d/su

二 PAM安全认证流程

控制类型用于PAM验证类型的返回结果

required:一票否决,如果失败,最后一定会失败,但是会继续验证

requisite:一票否决,如果失败,会立即结束验证,反馈失败

sufficient:验证成功则立即返回,不再继续,否则忽略结果并继续

optional:不用于验证,只显示信息

6 limit

可打开的文件数量,可运行的进程数量,可用内存空间

#vim /etc/security/limits.conf

7 ulimit

(修改限制的实现方式)

ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。

ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。

ab -c1025 -n 2000 http://192.168.10.11/    #使用压力测试工具进行测试  打开的文件数

vim /etc/security/limits.conf   #永久修改不用重启(软硬一起设置可以直接使用-)

1 sudo 命令的特性

①sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员

②sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器

③sudo使用时间戳文件来执行类似的"检票"系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票

④sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

2、配置sudo授权

visudo或vi /etc/sudoers #此文件的默认权限为440,保存退出时必须执行"wq!",强制保存退出

3 sudo指令格式

用户

主机名

命令程序列表

可使用通配符" * "表示所有,取反符号"!"表示排除

面试题 Jerry localhost=/sbin/*,!/sbin/poweroff

表示jerry用户操作localhost主机可使用sbin目录下的除poweroff以外的所有命令

要点:Jerry仍可使用init、shutdown等命令执行关机操作,因此限制命令需做到全面无漏,否则限制影响十分有限。

设置别名

格式:大写,数字可以使用但是不能使用

使用关键字User_Alias(用户)、Runas_Alias(代表用户)、Host_Alias(登录主机)、Cmds_Alias(命令)来进行设置别名

User_Alias USERS=Tom,Jerry,Mike

Host_Alias HOSTS=localhost,bogon

Cmnd_Alias CMDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel

USERS HOST=CMDS

root  ALL=(ALL)  ALL
用户   主机名ip=    命令
密码验证

①正常情况下,第一次使用sudo命令需输入密码验证,有效期为五分钟,过期后使用sudo需再次输入密码验证。

②可以设置特定用户无需密码验证

Mike ALL=(ROOT)NOPASSWD:/bin/kill,/usr/bin/killall

③也可设置组用户无需密码验证

%wheel ALL=NOPASSWD:ALL

④以及所有用户无需密码验证

USERS HOSTS=NOPASSWD:CMDS

6、查看sudo操作记录:需启用Defaults logfile配置

/var/log/sudo    #默认日志文件

visudo            #进入sudo配置文件

Defaults logfile="/var/log/sudo"     #启动Defaults logfile

tail /var/log/sudo                    #查看sudo末尾10行记录

ulimit命令

ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。

ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。

ulimit只影响shell进程及其子进程,用户登出后失效。

可以在profile中加入ulimit的设置,变相的做到永久生效

编辑limits里面是空的

如果 ab 命令不可用,就请先安装 httpd-tools ,然后开启 httpd 服务

测的是同一时间 192.168.11.12 这个服务器可以接待多少次的访问

三 开/关机安全控制

① 调整BIOS引导设置

将第一引导设备设为当前系统所在硬盘

禁止从其他设备(光盘、U盘、网络)引导系统

将安全级别设为setup,并设置管理员密码

② GRUB限制

通常情况下,在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,也可进入急救模式修改用户密码,这对服务器是一个极大的安全威胁。为此,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

③在/etc/grub.d/00_header文件中添加用户和PBKDF2加密口令的格式如下

使用grub2-mkpasswd-pbkdf2生成密钥

修改/etc/grub.d/00_header文件,添加密码记录

生成新的grub.cfg配置文件

grub2-mkpasswd-pbkdf2  #根据提示设置GRUB菜单的密码

PBKDF2 hash of your password is grub.pbkdf2......        # 省略部分内容为加密生成的密码字符串

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak      # 制作备份

cp /etc/grub.d/00_header /etc/grub.d/00_header.bak    # 制作备份

vim /etc/grub.d/00_header

cat << EOF

set superusers="root"                   #设置登录用户为 root

password_pbkdf2 root grub.pbkdf2......      # 设置密码,省略部分内容为经过加密生成的密码字符串

EOF

grub2-mkconfig -o /boot/grub2/grub.cfg        # 生成新的grub.cfg配置文件

完成配置修改工作,重启后进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。

grub2-setpassword            #直接设置密码

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

①安全终端配置 /etc/securetty vi /etc/securetty

②将tty5,tty6前加 "#" 将其注释,表示禁止root用户从终端tty5,tty6登录

2 禁止普通用户登录

①touch /etc/nologin

②删除nologin文件或重启后即恢复正常(rm -rf /etc/nologin)

五 弱口令检测

1 暴力破解工具-JR

John the Ripper是一款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。通过对shadow文件的口令分析,可以检测密码强度。

官方网站:http://www.openwall.com/john/

2 安装JR工具

安装方法:make clean 系统类型

主程序文件为john

3 检测弱口令账号

获得Linux/Unix服务器的shadow文件

执行john程序,将shadow文件作为参数

4 密码文件的暴力破解

准备好密码子弹文件,默认为password.lst

执行john程序,结合--wordlist=字典文件

5 模拟暴破步骤

cd /opt
tar zxf john-1.8.0.tar.gz    #解压工具包

yum install -y gcc gcc-c++ make    #安装软件编译工具

cd /opt/john-1.8.0/src             #切换到src子目录
  
make clean linux-x86-64            #进行编译安装

cp /etc/shadow /opt/shadow.txt     #准备待暴破的密码文件

cd /opt/john-1.8.0/run
./john /opt/shadow.txt              #执行暴力破解

./john --show /opt/shadow.txt       #查看已破解出的账户列表

> john.pot    #使用密码字典文件,清空已破解出的账户列表以便重新分析

./john --wordlist=./password.list /opt/shadow.txt #使用指定的字典文件进行破解
网络扫描工具-NMAP
  • NMAP是一个强大的端口扫描类安全评测工具,支持ping扫描、多端口检测等多种技术。
安装NMAP软件包
rpm -qa | grep nmap   #检查是否已安装

yum install -y namp   #若未安装,进行yum安装

服务的端口号

相关推荐
期待未来的男孩31 分钟前
CBK2资产安全
安全
weixin_4426434233 分钟前
天锐绿盾加密软件与Ping32联合打造企业级安全保护系统,确保敏感数据防泄密与加密管理
网络·安全·天锐绿盾加密软件与ping32
Hacker_Oldv1 小时前
网络安全之访问控制
安全·web安全
HMS Core4 小时前
未成年人模式护航,保障安全健康上网
开发语言·安全·华为·php·harmonyos
零一数创5 小时前
现代化水库可视化管理平台:提升水库运行效率与安全保障
安全·3d·unity·ue5·游戏引擎
网络研究院5 小时前
网络安全中的数据科学如何重新定义安全实践?
网络·安全·数据·技术·实践·科学
weixin_448350505 小时前
信息技术与数据安全:打造高效、安全的数据处理系统
人工智能·安全·智慧城市·数据治理·数据提取
通信_楠木5 小时前
【笔记总结】华为云:应用上云后的安全规划及设计
笔记·安全·系统架构·华为云·安全架构
CarsonBigData6 小时前
常见的Web安全漏洞——XSS
安全·web安全·xss
EasyNVR6 小时前
NVR监测软件EasyNVR多个NVR同时管理:录播主机的5条常见问题与解决办法
安全·音视频·监控·视频监控