Linux中系统安全及应用

linux系统安全及应用

账号安全控制

账号安全基本措施

系统账号清理
  • 将非登录用户的Shell设为/sbin/nologin

usermod -s /sbin/nologin

  • 锁定长期不使用的账号

usermod -L 用户名 usermod -U(解锁)

passwd -l 用户名 passwd -u(解锁)

passwd -S 用户名(查看状态)

  • 删除无用的账号(userdel [-r])
  • 锁定账号文件passwd(存用户)、shadow(存密码)
chattr +i /etc/passwd /etc/shadow

lsattr /etc/passwd /etc/shadow查看状态

image-20210923110836716

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

image-20210923110900363

密码安全控制

  • 设置密码有效期

  • 要求用户下次登录时修改密码

[root@localhost ~]# vim /etc/login.defs 适用于新建用户
......
PASS_MAX_DAYS 30
[root@localhost ~]# chage -M 30 lisi 适用于已有用户
[root@localhost ~]# chage -d 0 zhangsan 强制在下次登陆时更改密码

命令历史限制

  • 减少记录的命令条数
  • 注销时自动清空命令历史
输入 history 可以查看曾经打过的所有命令

history -c 可以清除,但只是临时的,并不是永久生效
通过修改配置文件可以限制记录的命令数
vim /etc/profile

image-20210924141355891

修改这个数字限定命令数

[root@localhost ~]# source /etc/profile输入这段代码使修改的配置生效

注销时自动清空命令历史

[root@localhost ~]# vim .bashrc

image-20210924142932197

[root@localhost ~]# source .bashrc

reboot重启

image-20210924143119557

终端自动注销

  • 闲置60秒后自动注销

[root@localhost ~]# vim .bash_profile

image-20210924150231966

image-20210924150509497

等待60秒后注销

image-20210924150645994

使用su命令切换用户

用途及用法

  • 用途:Substitute User,切换用户

  • 格式

     su - 目标用户
    

密码验证

  • root→任意用户,不验证密码
  • 普通用户→其他用户,验证目标用户的密码
[lisi@localhost ~]$ su - root
密码:
[root@localhost ~]# whoami 知道当前登陆用户是谁
root
  1. su带-当前目录会改变,会切换到当前目录的家目录,shell环境会改变
  2. su不带-则继承前一用户的shell环境和所在目录
  3. su默认会切换到root

限制使用su命令的用户

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

  • 启用pam_wheel认证模块

查看su操作记录

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

Linux中的PAM安全认证

  • su命令的安全隐患

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

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

  • PAM(Pluggable Authentication Modules)可插拔式认证模块

    • 是一种高效而且灵活便利的用户级别的认证方式

    • 也是当前Linux服务器普遍使用的认证方式

PAM是一种平台,PAM-API是一种接口认证标准

PAM认证原理

一般遵循的顺序

Service(服务——PAM(配置文件)——pam_*.so

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

PAM认证的构成

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

    • 示例:查看su是否支持PAM模块认证

ls /etc/pam.d | grep su

  • 查看su的PAM配置文件:cat /etc/pam.d/su
    • 每一行都是一个独立的认证过程
    • 每一行可以区分为三个字段(认证类型,控制类型,PAM模块及其参数)

PAM安全认证流程

控制类型也称做Control Flags,用于PAM验证类型的返回结果

  1. required验证失败时仍然继续,但返回Fail
  2. requisite验证失败则立即结束整个验证过程,返回Fail
  3. sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
  4. optional不用于验证,只显示信息

(通常用于session类型)

使用sudo机制提升权限

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

配置sudo授权

visudo或者vi /etc/sudoers

记录格式:用户主机名列表=命令程序列表

查看sudo操作记录

  • 需启用Defaults logfile配置
  • 默认日志文件: /var/log/sudo
[root@localhost ~]# vim /etc/sudoers

Defaults  logfile="/var/log/sudo"

[root@localhost ~]# sudo ifconfig ens33:0 192.168.*.*/24
[root@localhost ~]# cat /var/log/sudo

启用日志配置以后,sudo操作过程才会被记录

查询授权的sudo操作

sudo -l

image-20210924154649483

开关机安全控制

调整BIOS引导设置

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

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

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

GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥

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

  • 生成新的grub.cfg配置文件

直接修改密码
[root@localhost ~]# grub2-setpassword 
Enter password: 
Confirm password: 
[root@localhost ~]# 
[root@localhost ~]# 
重启
[root@localhost ~]# reboot

系统弱口令检测

John the Ripper,简称为JR

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

安装JR工具

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

检测弱口令账号

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

密码文件的暴力破解

  • 准备好密码字典文件,默认为password.lst
  • 执行john程序,结合–wordlist=字典文件
[root@localhost opt]# rz
将安装包共享
[root@localhost opt]# tar zxvf john-1.8.0.tar.gz
解压到当前目录
[root@localhost opt]# cd john-1.8.0/
进入
[root@localhost john-1.8.0]# ls
doc  README  run  src
[root@localhost john-1.8.0]# cd src/

[root@localhost src]# yum install gcc gcc-c++ make -y
安装
[root@localhost src]# make clean linux-x86-64

[root@localhost src]# cd ..
[root@localhost john-1.8.0]# cp /etc/shadow ./shadow.txt
准备待破解的密码文件
[root@localhost john-1.8.0]# cd run/
[root@localhost run]# ./john /opt/john-1.8.0/shadow.txt
执行暴力破解

网络端口扫描

NMAP

  • 一款强大的网络扫描、安全检测工具
  • 官方网站: http://nmap.orgl
  • CentOS 7.7光盘中安装包nmap-6.40-7.el7.x86_64.rpm

控制位

  1. SYN 建立链接
  2. ACK 确认
  3. FIN 结束断开
  4. PSH 传送 0 数据缓存 上层应用协议
  5. RST 重置
  6. URG 紧急
安装软件包
[root@localhost ~]# rpm -q nmap-ncat p
nmap-ncat-6.40-7.el7.x86_64
未安装软件包 p 
[root@localhost ~]# rpm -q nmap
未安装软件包 nmap 
[root@localhost ~]# yum install nmap* -y  #安装软件包

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

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

总结

  • 账号基本安全措施

    • 系统账号清理、密码安全控制、命令历史清理、自动注销
  • 用户切换与提权

    • su、sudo
  • 开关机安全控制

    • BIOS引导设置、禁止Ctrl + Alt + Del快捷键、GRUB菜单设置密码
  • 终端控制

  • John the Ripper工具

  • namp命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值