账号安全基本措施
系统账号清理
将非登录用户的Shell设为/sbin/nologin
锁定长期不适用的账号
passwd -l 用户名 和passwd -S 用户名 是一样的效果
删除无用的账号
锁定、解锁账号文件passwd、shadow
密码安全控制
- 设置密码有效期
- 要求用户下次登录时修改密码
强制下次登录时更改密码
命令历史限制
减少记录的命令条数
输入命令
进入页面,输入命令,保存并退出
最后别忘记刷新一下配置
登录时自动清空历史命令
输入命令
进入页面,输入指示,保存并退出
重启之后,自动清空历史命令
终端自动注销
- 闲置180秒后自动注销
当自己离开时,长时间不操作电脑,为了安全起见,设置自动撤销
首先,输入命令
然后进入页面,输入指示,保存并退出
使用su命令切换用户
用途及用法
用途:Substitute User ,切换用户
格式:
su - 目标用户 |
密码验证
- root>>>任意用户,不验证密码
- 普通用户>>>其他用户,验证目标用户的密码
限制使用su命令的用户(安全)
- 将允许使用su命令的用户加入wheel组
- 启用pam_wheel认证模块
加入成功:如下图
接下来还要
然后,把第二行和第六行的注释号“#”删除,保存并退出
解释一下加注释号“#”和不加注释号“#”的区别
1、以上两行都是默认状态(即开启第二行,注释第六行),这种状态下是允许所有用户间使用su命令进行切换的
2、两行都注释也就是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码
3、如果开启第六行,表示只有root用户和wheel组内的用户才可以使用su命令
4、如果注释第二行,开启第六行,表示只有wheel组内的用户才能使用su命令,root用户也被禁止su命令
成功:
Linux中的PAM安全认证
su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来的安全风险
- 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可插拔式认证模块
- 是一种高效而且灵活便利的用户级别的认证方式
- 也是当前Linux服务器普遍使用的认证方式
PAM认证原理
①一般遵循的顺序
- Service(服务)>>>PAM(配置文件)>>>pam_*.so
②首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
③用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
④不同的应用程序所对应的PAM模块是不同的
PAM认证的构成
①查看某个程序是否支持PAM认证,可用ls命令
##查看su是否支持PAM模块认证
##查看su的PAM配置文件:cat/etc/pam.d/su
①每一行都是一个独立的认证过程
②每一行可以区分为三个字段
- 认证类型
- 控制类型
- PAM模块及其参数
PAM安全认证流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果
- required验证失败时继续,但是返回Fali
- requisite验证失败则立即结束整个验证过程,返回Fail
- sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
- optional不再于验证,只显示信息(通常用于session类型)
使用sudo机制提升权限
su命令的缺点(还是存在安全隐患)“没有不安全的系统,只有不安全的人”
sudo命令的用途及用法
- 用途:以其他用户身份(如root)执行授权的命令
- 用法:sudo 授权命令
配置sudo授权
或者
格式:
用户 主机名=命令程序列表 |
给Tom用户授权成功:
用户 主机名=(用户) 命令程序列表 |
说明:
用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配置过主机名则用实际的主机名,ALL则代表所有的主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需要填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。ALL代表系统中所有的命令
启用sudo操作日志
查看sudo操作记录
- 需要启动Defaults logfile配置
- 默认日志文件:/var/log/sudo
查询授权的sudo操作
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securetty
输入命令:
禁止普通用户登录
- 建立/etc/nologin文件
- 删除nologin文件或重启后恢复正常
网络端口扫描
NMAP:是一个强大的端口扫描类安全评测工具,支持ping扫描、多端口检测等多种技术
namp命令常用的选项和扫描类型
-p | 指定扫描的端口 |
-n | 禁用反向DNS解析(以加快扫描速度) |
- sS |
TCP的SYN扫描(半开扫描),只向目标发出SYN/ACK响应包就认为目标端口正在监听,并立即断开连接:否则认为目标端口并未开放 |
-sT | TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放 |
-sF | TCP中的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包,这种类型的扫描可间接检测防火墙的健壮性 |
-sU | UDP扫描,探测目标主机提供那些UDP服务,UDP扫描的速度会比较慢 |
-sP | ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描 |
-P0 | 跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免无法ping |
###查看正在运行的使用TCP协议的网络状态信息
###查看正在运行的使用UDP协议的网络状态信息
##查看本机开放的TCP端口
##查看本机开放的UDP端口