Linux系统安全与应用(二)——安全机制、安全控制、弱口令检测JR、网络扫描NMAP和控制台命令Netstat
一、使用sudo机制提升权限
1、su命令的缺点
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
2、sudo的用途和用法
- 用途:以其他用户身份(如root)执行授权的命令
- 用法:sudo 授权命令
3、配置sudo授权
- visudo或vi /etc/sudoers
- 记录格式:
- 用户 主机名=命令程序列表
- 用户 主机名=(用户) 命令程序列表
用户 | 直接授权指定的用户名,或采用“组名"的形式(权一个组的所有用户) |
主机名 | 使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机 |
(用户) | 用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令 |
命令程序列表 | 允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号 "," 进行分隔。ALL则代表系统中的所有命令 |
- 记录格式可使用通配符
* | 表示所有 |
! | 取反符号,表示排除 |
4、查看sudo操作记录
- 需启用 Defaults logfile 配置
- 默认日志文件:/var/log/sudo
5、演示
①、演示1
②、演示2
③、演示3
二、开关机安全机制
1、调整BIOS引导设置
将第一引导设备设为当前系统所在盘 |
禁止从其他设备(光盘、U盘、网络)引导系统 |
将安全级别设为setup,并设置管理员密码 |
2、GRUB限制
- 使用 grub2-mkpasswd-pbkdf2 密钥
- 修改 /etc/grub.d/00_header 件中,添加密码记录
- 生成新的 grub.cfg 配置文件
三、终端登录安全控制
1、限制root只在安全终端登录
2、限制普通用户登录
四、系统弱口令检测
1、Joth the Ripper ,简称JR
- 一款密码分析工具,支持字典式的暴力破解
- 通过对 shadow 文件的口令分析,可以检测密码强度
- 官网网站:http://www.openwall.com/john/
2、安装JR工具
- 安装方法:make clean 系统类型
- 主程序文件为 john
3、检测弱口令账号
- 获得Linux/Unix服务器的shadow文件
- 执行john程序,将shadow文件作为参数
4、密码文件的暴力破解
- 准备好密码字典文件,默认为password.lst
- 执行john程序,结合–wordlist=字典文件
5、步骤
①、导入安装包
②、解压安装包,并安装编译工具
③、切换到/opt/john-1.8.0/src目录下进行编译安装
④、准备好待破解的文件,进行暴力破解
⑤、查看已破解出的账户列表
⑥、使用密码字典文件写入密码,重新破解
五、网络扫描:NMAP
1、NMAP
- NMAP是一个强大的端口扫描类安全评测工具,支持ping扫描、多端口检测等多种技术
- 安装NMAP:
2、nmap常用的选项和扫描类型
-p | 指定扫描端口 |
-n | 禁用反向DNS解析(以加快扫描速度) |
-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通而放弃扫描 |
3、示例:
①、查看本机开放的TCP端口、UDP端口
②、检测192.168.10.0/24网段有哪些主机提供http服务
③、检测192.168.10.0/24网段有哪些存活主机
六、控制台命令:netstat
netstat常用选项 | |
-a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口) |
-n | 以数字的形式显示相关的主机地址、端口等信息 |
-t | 查看TCP协议相关的信息 |
-u | 显示UDP协议相关的信息 |
-p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限) |
-r | 显示路由表信息 |
-l | 显示处于监听状态的网络连接及端口信息 |