Linux安全第三章-系统安全及应用
目录
#1.1账号安全控制
1.1.1基本安全措施
1.1.2用户切换与提权
#2.1系统引导
2.1.1 开机安全控制
#3.1弱口令检测,端口扫描
3.1.1弱口令检测--John the Ripper
3.1.2网络扫描--NMAP
1.1账号安全控制
用户账号是计算机使用者的身份标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。
1.1.1基本安全措施
(1)系统账号清理
常见的非登录用户账号包括bin,daemon,adm,lp,mail等。为了确保系统安全,这些用户账号的登录Shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动。 
锁定,解锁名为zhangsan的用户账号
采用锁定账号配置文件,使用chattr命令,分别结合“+i”“-i”选项来锁定,解锁文件,使用lsattr命令可以查看文件锁定情况。
(2)密码安全控制
在不安全的网络环境中,为了降低密码被暴力破解的风险,用户应定期修改密码。
执行以下操作可将密码的有效期设为30天。
(3)命令历史,自动注销
Bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中的所有用户。
1.1.2用户切换与提权
Linux系统为我们提供了su,sudo两种命令,其中su命令主要用来切换用户,而sudo命令用来提升权限。
(1)su命令的用法
(2)sudo命令的提权用法
2.1系统引导和登录控制
在互联网环境中,大部分服务器是通过远程登录的方式进行管理的,而本地引导和终端登录过程往往容易被忽视,从而留下安全隐患。
2.1.1开机安全控制
(1)调整BIOS引导设置
(2)限制更改GRUB引导参数
3.1弱口令检测,端口扫描
两个安全工具--John the Ripper和NMAP。前者用来检测系统账号和密码强度,后者用来执行端口扫描任务。
3.1.1弱口令检测--John the Ripper
John the Ripper是一个密码破解工具,它支持在密文中破解密码,也支持在密码字典中暴力破解。
项目 | 详情 |
---|---|
弱口令定义 | 容易被猜测或破解的简单密码,如: - 常见单词(hello, abc) - 重复字符(123456, aaaaaa) - 无特殊字符的短密码 |
安全风险 | - 易被暴力破解 - 字典攻击成功率高 - 是系统被入侵的常见突破口 |
John the Ripper 简介 | - 开源密码破解工具 - 支持多种加密算法(MD5, SHA, bcrypt 等) - 提供字典攻击、规则引擎、暴力破解等模式 |
基本配置步骤 | 1. 安装 - Linux: sudo apt-get install john - macOS: brew install john - Windows: 下载二进制包并解压 2. 准备密码哈希文件 - 从系统中提取(如 Linux 的 /etc/shadow )- 或使用示例哈希文件 3. 执行破解 - 字典攻击: john --wordlist=password.lst hashes.txt - 增量模式(暴力破解): john --incremental hashes.txt - 使用规则: john --rules --wordlist=password.lst hashes.txt |
常用参数 | - --wordlist : 指定字典文件- --rules : 使用规则引擎扩展字典- --format : 指定哈希格式(如 md5crypt, sha256crypt)- --show : 显示已破解的密码 |
优化建议 | 1. 使用高质量字典(如 rockyou.txt) 2. 结合规则生成更多候选密码 3. 优先破解简单哈希类型 4. 使用 GPU 加速(如 John the Ripper Jumbo 版) |
3.1.2网络扫描--NMAP
NMAP是一个强大的端口扫描安全评测工具,支持ping扫描,多端口检测,OS识别等技术,使用NMAP定期扫描,减小安全风险。
扫描语法及类型
nmap [扫描类型] [选项] <扫描目标...>
常用的几种扫描类型
参数 | 扫描类型 | 全称 | 核心原理 | 特点与应用场景 | 权限要求 |
---|---|---|---|---|---|
sS | SYN 扫描(半开放扫描) | SYN Scan | 发送 SYN 包,若收到 SYN/ACK 则回复 RST 断开连接;若收到 RST 则判断端口关闭。 | - 隐蔽性高:不完成三次握手,不易被日志记录。 - 常用场景:渗透测试、大规模端口扫描。 | 需要 root 权限 |
sT | 全连接扫描 | Connect() Scan | 完整完成 TCP 三次握手(SYN→SYN/ACK→ACK),确认端口开放后主动断开连接。 | - 准确性高:适合复杂网络环境,但易被防火墙或 IDS 检测。 - 常用场景:调试或无监控环境。 | 普通用户可执行 |
sF | FIN 扫描 | FIN Scan | 发送 FIN 包到关闭的端口,正常应返回 RST;若端口开放则可能忽略(依据 RFC 793)。 | - 适用于 UNIX/Linux(Windows 系统可能不遵循此规则)。 - 隐蔽性较高:绕过简单防火墙规则。 | 需要 root 权限 |
sU | UDP 扫描 | UDP Scan | 发送 UDP 数据包到目标端口,通过 ICMP 端口不可达消息判断端口状态(开放 / 过滤)。 | - 耗时久:UDP 协议无连接确认,需多次重试。 - 常用场景:检测 DNS、SNMP 等 UDP 服务。 | 需要 root 权限 |
sP | Ping 扫描 | ICMP Echo Scan | 发送 ICMP Echo Request(Ping)包,通过响应判断主机是否存活(可达性检测)。 | - 快速探测存活主机,但可能被防火墙过滤 ICMP 协议。 - 等价于 -PE 参数。 | 普通用户可执行 |
P0 | 无 Ping 扫描 | No Ping Scan | 不发送 Ping 包,直接对目标 IP 地址进行端口扫描,强制检测主机是否存活。 | - 绕过 ICMP 过滤:适用于目标禁止 Ping 的场景(如防火墙禁 Ping)。 - 参数应为 -Pn (nmap 7.0+ 后改为 -Pn )。 | 无特殊要求 |