系统安全及其应用

目录

账号安全基本措施

将用户设为无法登录

无法登录

允许用户登录

锁定用户/解锁用户

删除无用账号

锁定配置文件

密码安全控制

设置密码有效期

命令历史

切换用户

切换用户的方式

限制使用 su 命令的用户

PAM 安全认证

PAM认证原理

认证模块类型(module-type)

PAM 验证流程 Control(控制位)

sudo 命令——提升执行权限

shell 模块

limit 命令

默认修改配置文件路径

别名类型

grub 加密

暴力破解密码

nmap 扫描

常用选项和扫描类型


账号安全基本措施

将用户设为无法登录

—— 将非登录用户的 Shell 设为 /sbin/nologin

无法登录

允许用户登录

锁定用户/解锁用户

锁定用户命令解锁用户命令
usermod -L 用户名usermod -U 用户名
passwd -l 用户名

passwd -u 用户名

删除无用账号

—— userdel -r 用户名

删除用户包括该用户的家目录

锁定配置文件

—— chattr +i /etc/passwd /etc/shadow :锁定配置文件

—— chattr -i /etc/passwd /etc/shadow :解锁配置文件

密码安全控制
设置密码有效期

对于已有的用户可以使用 chage 命令

格式:chage 选项 用户名

chage作用
-m密码可更改的最小天数,为零时代表任何时候都可以更改密码
-M密码保持有效的最大天数
-W用户密码到期前,提前收到警告信息的天数
-E帐号到期的日期,过了这天,此帐号将不可用
-d上一次更改的日期
-i停滞时期,如果一个密码已过期这些天,那么此帐号将不可用
-l例出当前的设置,由非特权用户来确定他们的密码或帐号何时过期

命令举例

chage -d 0 mihuyo :强制用户 mihuyo 下一次登录一定修改密码(设置的密码要复杂)

对于新建用户,可以修改 /etc/login.defs 文件里的内容来设置密码规则

命令历史

history :查看历史命令

—— 减少记录命令的条数

  1. vim /etc/profile :进入配置文件修改限制命令条数,适合新用户

    HISTSIZE=200 :修改限制命令为200条,系统默认是1000条profile

source /etc/profile :刷新配置文件,使文件立即生效

vim .

  1. export HISTSIZE=200 : 适用于当前用户

source /etc/profile :刷新配置文件,使文件立即生效

—— 临时清楚历史命令

  1. history -c

  2. clear

—— 注销时自动清空命令

  1. vim ~/.bashrc

在脚本的最后一行回车输入:echo ‘ ’ > ~/.bash_history

—— 设置超时的时间

  1. vi /etc/profile :对所有用户生效

    在脚本的最后一行回车输入:expor TMOUT=数字(自动注销时间 S)

  2. source /etc/profile :刷新文件

  3. echo $TMOUT :查看自动注销时间

切换用户

任何一个用户登录都需要加载 bash 这个程序

——用途及用法

用途:Substitute User,切换用户

格式:su - 目标用户(横杠“ - ”代表切换到目标用户的家目录)

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

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

带 “ - ” 表示将使用目标用户的登录Shell环境

—— 查看su操作记录

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

—— whoami :确定当前用户是谁

—— vim /etc/pam.d/su

把第六行注释去掉保存退出

默认情况下,使用 root 切换不需要密码,注释两行,所有账号都可以使用,但是 root 切换时需要密码

切换用户的方式

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

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

限制使用 su 命令的用户

第一种

两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的

第二种

两行都注释也是允许所有用户都能使用 su 命令,但 root 下使用 su 切换到其他普通用户需要输入密码;如果第一行不注释,则 root 使用 su 切换普通用户就不需要输入密码

第三种

如果开启第二行,表示只有 root 用户和 wheel 组内的用户才可以使用 su 命令

第四种

如果注释第一行,开启第二行,表示只有 wheel 组内的用户才能使用 su 命令,root 用户也被禁用 su 命令

PAM 安全认证

当前linux普遍的认证方式

PAM模块:插件式的模块

常见的功能:

1.验证 用户名 密码功能

2.开发出一款软件如果要用到用户名和密码的功能时,就会调用pam架构中的密码模块,不需要二次开发

PAM认证原理

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

想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/

ls /etc/pam.d | grep su 查看su是否支持PAM模块认证

专用配置文件/etc/pam.d/格式

type :功能

control :判断成功失败

module-path :指明本模块对应的程序文件的路径名

arguments :传递该模块的参数

认证模块类型(module-type)

auth :对用户身份进行识别,如提示输入密码,判断是否为root

acconut :对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等

password :使用用户信息来更新数据,如修改用户密码

session :用户会话期间的控制,如登录连接信息,用户数据的打开和关闭,挂载文件系统

-type :表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有用

PAM 验证流程 Control(控制位)

required:一票否决(失败了也会往下走)

requisite:一票否决(失败了退出,成功继续)

sufficient:一票通过(成功了退出,失败了会继续往下走)

optional:可选项 (不同于验证只显示信息)

sudo 命令——提升执行权限

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

用法:sudo 授权命令

—— 配置sudo授权

visudo 或者 vim /etc/sudoers

记录格式:

用户 主机名列表=命令程序列表

可以使用通配符“ * ”号任意值和“ !”号进行取反操作。

权限生效后,输入密码后5分钟可以不用重新输入密码。

—— 配置/etc/sudoers文件,可以授权用户较多的时使用

Host_Alias MYHOST= localhost 主机名

User_Alias MYUSER = yxp,zhangsan,lisi 需要授权的用户

Cmnd_Alias MYCMD = /sbin/*,/usr/bin/passwd 授权

MYUSER MYHOST = NOPASSWD : MYCMD 授权格式

—— 查看sudo操作记录

需启用Defaults logfile

配置默认日志文件: /var/log/sudo

shell 模块

功能:检查有效 shell

帮助:满pam_shells

第一步:vim /etc/pam.d/su

并在第一行添加:auth required pam_shells.so

:wq

第二步:vim /etc/shells

去掉其中的:/bin/csh

第三步:useradd -s /bin/csh 用户名

新建用户

第四步:su 用户名

显示鉴定故障

limit 命令

作用:在用户级别实现对其可使用的资源的限制

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

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

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

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

limit作用
-H设置硬件资源限制
-S设置软件资源限制
-a显示当前所有的资源限制
-c设置 core 文件的最大值(单位:blocks)
-d设置数据段的最大值(单位:kbytes)
-f设置创建文件的最大值(单位:blocks)
-l设置在内存中锁定进程的最大值(单位:kbytes)
-m设置可以使用的常驻内存的最大值(单位:kbytes)
-n设置内核可以同时打开的文件描述符的最大值(单位:n)
-p设置管道缓冲区的最大值(单位:kbytes)
-s设置堆栈的最大值(单位:kbytes)
-t设置CPU使用时间的最大上限(单位:seconds)
-u最大用户进程数
-v设置虚拟内存的最大值(单位:kbytes)
unlimited是一个特殊值,用于表示不限制

默认修改配置文件路径

vim /etc/sudoers

运行命令者的身份 以哪个用户的身份 运行哪些程序

visudo -c :检查语法是否正确

别名类型

User_Alias(用户)

Runas_Alias(代表用户)

Host_Alias(登录主机)

Cmnd_Alias(命令)

###别名 Host_Alias MYHOSTS = kgc,localhost User_Alias MYUSERS = zhangsan,wangwu,lisi Cmnd_Alias MYCMNDS = /sbin/*,!/sbin/reboot,!/sbin/poweroff,!/sbin/init,!/usr/bin/rm

MYUSERS MYHOSTS=NOPASSWD:MYCMNDS

root ALL=(ALL) ALL 用户 主机名ip= 命令

grub 加密

grub2 -setpassword

暴力破解密码

需要借助Ripper工具软件

弱口令检测一 -John the Ripper. John the Ripper是一-款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。

./configre 安装路径和选择功能 make .c .py 高级语言 机器 make(编译) 高级编译二进制 0 1 让机器课读懂 make install 将程序 存起来

nmap 扫描

要想使用此命令需要先安装

rpm -qa|grep nmap

yum install -y nmap

常用选项和扫描类型
nmap作用
-p指定扫描的端口
-n禁用反向 DNS 解析(以加快扫描速度))ip 转换成 域名 12222 2www.baidu.com
-sSTCP 的 SYN 扫描 (半开扫描)只向目标发出 SYN 数据包,如果收到 SYN/ACK 响应包就认为目标端口正在监听,并立即断开连接,否则认为目标端口并未开放
-sTTCP 连接扫描,这是完整的 TCP 扫描方式(默认扫描类型)用来建立一个 TCP 连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放
-sFTCP 的 FIN 扫描,开放的端口会忽略这种数据包,关闭的端口会回应 RST 数据包;许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包;这种类型的扫描可间接检测防火墙的健壮性
-sUUDP 扫描,探测目标主机提供哪些 UDP 服务,UDP 扫描的速度会比较慢
-sPICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描
-P0跳过 ping 检测, 这种方式认为所有的目标主机是存活的,当对方不响应 ICMP 请求时,使用这种方式可以避免因无法ping通而放弃扫描
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值