通俗易懂的系统安全与文件系统

系统账号清理

  • 将非登录用户的shell设为/sbin/nologin
usermod -s /sbin/nologin  用户名  //对用户名进行操作
  • 锁定长期不使用的账号
锁定长期不使用的账号
usermod -L
passwd  -l    //后面都是跟用户名锁定长期不使用的账号

查看用户状态
passwd -S   //后面跟用户名查看用户状态
  • 删除无用账号
userdel -r 【用户名】  //连同宿主目录一并删除
  • 锁定账号文件passwd、shadow
    passwd为用户账号信息文件
    shadow为用户账号密码文件
锁定用户账号,使其通过任何命令也不能修改账号信息
chattr +i /etc/passwd /etc/shadow

查看用户状态信息
lsattr /etc/passwd /etc/shadow

解锁账号状态
chattr -i /etc/passwd /etc/shadow

在这里插入图片描述

密码安全控制

  • 设置密码有效期,要求用户下次登录修改密码针对新用户
vim /etc/login.defs  //修改新用户密码有效期等相关属性
change -M 30 用户名  //修改当前用户test1的密码有效期

查看新用户账号属性
passwd -S lisi
cat /etc/shadow | grep lisi   两种方法均可以可看

change -d 0 【用户名】   //强制在下次登录时修改密码

在这里插入图片描述

  • 下图为上图执行 vim /etc/login.defs 后的结果,修改密码有效期

在这里插入图片描述
在这里插入图片描述

历史命令限制

  • 减少记录的命令条数
  • 登录时自动清空历史命令
临时清空历史记录
history -c

限制历史记录条数
vim /etc/profile
export HISTSIZE=10  //限制历史记录条数为10条

输出空值覆盖.bash_history中的历史记录
vim ~/.bashrc
echo "" >~/.bash_history

在这里插入图片描述

  • vim /etc/profile 修改结果
    在这里插入图片描述
  • 终端自动注销
闲置300秒后自动注销
vim /etc/profile
export TMOUT=300

使用su命令切换用户

格式
su -目标用户  //-表示会切换到用户的家目录当中
su  用户名   //直接切换到当前目录中
  • root–>任意用户,不需要密码验证
  • 普通用户–>其他用户,需要验证目标用户的密码
su -root  //-表示使用目标用户登录shell环境
whoami   //我是谁?
  • 限制使用su命令的用户
    将允许使用su命令的用户加入wheel组
    启用pam_wheel认证模块
将用户zhang加入wheel组
gpasswd -a 【用户名】 wheel  //正在将用户名加入wheel组中

启用认证pam_wheel认证
vim /etc/pam.d/su 
auth required pam_wheel.so use_uid  //把前面的井号去掉  

在这里插入图片描述

  • vim /etc/pam.d/su ,认证pam_wheel 运行结果如下
    在这里插入图片描述
  • 启用pam_wheel认证后,未加入到wheel组中的用户将无法使用su命令
  • 查看su操作日志
查看su安全日志文件
vim /var/log/secure

linux中的PAM安全认证

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

PAM安全认证流程

在这里插入图片描述

  • required验让失败时仍然继续,但required验让失败时仍然继续,但
    返同Fail
  • requisite验证失败则立即结束整个验证过程,返回Fail
  • sufficien验证成功立即返回,不再继续,否则忽略结果再继续
  • optional不用于验证,只显示信息

PAM认证原理

  • *service -->pam(配置文件)–>pam_so
  • 首先要确定哪一项服务,然后加载相应的PAM的配置文件位于(/etc/pam.d 下),最后调用认证文件位于(/lib64/security下)进行安全认证
  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到pam模块进行认证
  • 不同的应用程序对应的pam模块是不同的

使用sudo机制提升权限

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

  • 配置sudo授权

visudo 
vi /etc/sudoers

记录格式:用户  主机名=命令程序列表
zhang ALL=/sbin/ifconfig  //允许用户zhang执行ifconfig命令
zhang localhost=/sbin/*,!/sbin/reboot,!/sbin/poweroff
//允许用户执行/sbin下面的所有命令,除了重启与关机

在这里插入图片描述

  • 执行vim /etc/sudoers 命令结果如下
    在这里插入图片描述

创建别名

visudo
使用关键字User_ Alias、 Host_ Alias、 Cmnd_ Alias来进行设置别名(别名必须为大写)
User Alias USERS=Tom, Jerry, 当前主机名
Host_ Alias HOSTs=localhost, bogon 
Cmnd Alias CMNDS=/sbin/ifconfig, !/sbin/reboot  //禁止重启
USERS HOSTS=CMNDS   //调用

  • 查看
which reboot
which poweroff

在这里插入图片描述
在这里插入图片描述

  • 启用sudo 操作日志
visudo                             //进入编辑
Defaults logfile = /var/log/sudo   //将该命令添加至最后一行

开关机安全控制

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

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

  • 实验:

1.设置GRUB菜单密码,并生成加密字符串
gurb2-mkpasswd-pbkdf2

2.修改头文件
vim 00_header

3.设置超级用户为root,并添加加密字符串
set superusers="root"
password_pbkdf2 root grub.---- //加密字符串

4.生成新的grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg

5.重新启动按e键需要输入账号密码才能设置grub参数

在这里插入图片描述

  • vim 00_header 修改头文件如下图所示

在这里插入图片描述
在这里插入图片描述

终端登录安全控制

  • 限制root只在安全终端登录
安全终端配置
/etc/securetty

回车后在tty1-10随意选一个,在前面加井号,wq保存退出,在虚拟
机界面按ctrl + alt +F? 进入设置界面

系统弱口令检测

■Joth the Ripper,简称为JR

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

安装工具、口令账号及暴力破解

  1. 安装JR工具
    安装方法:
make clean 系统类型
  1. 检测弱口令账号
    获得Linux/Unix服务器的shadow文件
    执行john程序,将shadow文件作为参数
  2. 密码文件的暴力破解
    准备好密码字典文件,默认为password.lst
    执行john程序,结合–wordlist字典文件

破解密码实验步骤

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             //切换到run子目录
./john /opt/shadow.txt             //执行暴力破解

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

使用密码字典文件
> john.pot   //清空已破解出的账户列表,以便重新分析
./john --wordlist=./password.lst /opt/shadow.txt 
//使用指定的字典文件进行破解

  • 将破解工具拉到/opt目录下,并在本目录下进行解压

在这里插入图片描述

  • 查看是否已经挂载,没有挂载并进行挂载

在这里插入图片描述

  • 在/opt目录下安装编译工具,并进行编译安装

在这里插入图片描述

  • 添加新用户并设置密码保存到abc.txt中

在这里插入图片描述

  • 执行暴力破解并查看破解密码

在这里插入图片描述

  • 修改字典库密码列表,可手动添加密码词典

在这里插入图片描述

端口扫描

NMAP扫描

NMAP是一个强天的端口扫描类安全评测工具,支持ping扫描、多端口检测等多种技术

nmap 【扫描类型】 【选项】

安装NMAP软件包
rpm -qa | grep nmap   //查看是否已经安装nmap软件包
yum install -y nmap

nmap命令常用选项和扫描类型

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

检测192.168.80.0/24网段有哪些主机提供HTTP服务
nmap -p 80 192.168.80.0/24

检测192.168.80.0/24网段有哪些存活主机
nmap -n -sP 192. 168.80.0/24

Netstat命令

Netstat是一个监控TCP/IP网络的工具,是用来显示网络状态信息的,其中包括路由表、实际的网络连接以及每一个网络接口设备,可显示与IP、TCP、UDP和ICMP协议相关的统计数据,用于检验本机各端口的网络连接情况

netstat - [选项]

natstat常用选项

选项说明
-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n以数字的形式显示相关的主机地址、端口等信息
-t查看 TCP相关的信息
-u显示 UDP协议相关的信息
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
-l显示处于监听状态的网络连接及端口信息

总结

  1. 清理历史消息可以输出均值覆盖bash里面的内容
  2. 使用su命令将信任用户加入wheel组,使之不能随意切换
  3. 创建别名,别名要大写,使用which可以查看路径
  4. 密码破解要注意挂载,再使用yum安装编译
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值