目录
一:账号安全控制
1.系统账号清理
(1)非登录账号管理
Linux系统中存在大量默认账号(如bin,daemon,mail),这些账号通常用于系统服务进程,禁止终端登录。其登录Shell被设置为/sbin/nologin。管理员需定期检查这些账号的配置是否被篡改:
grep "/sbin/nologin$" /etc/passwd # 列出所有非登录账号
若发现非登录账号的Shell被修改为/bin/bash,需立即修复。
(2)冗余账号处理
删除冗余账号:例如games等极少使用的账号可直接删除:
userdel -r games # -r选项同时删除用户主目录
临时锁定账号:对不确定是否删除的账号,使用usermod锁定:
usermod -L zhangsan # 锁定账号
passwd -S zhangsan # 查看状态(显示“LK”表示已锁定)usermod -U zhangsan #解锁账号
(3)账号配置文件保护
通过chattr命令锁定/etc/passwd和/etc/shadow,防止非法添加或修改账号:
chattr +i /etc/passwd /etc/shadow # 锁定文件
lsattr /etc/passwd /etc/shadow # 验证锁定状态(显示“i”表示不可修改)chattr -i /etc/passwd /etc/shadow #解锁文件
lsattr /etc/passwd /etc/shadow #查看解锁状态
2.密码安全控制
(1)密码有效期管理
全局策略:修改/etc/login.defs文件,设置新建用户的密码最长使用天数:
vi /etc/login.defs
PASS_MAX_DAYS 30 # 密码30天后必须更改
针对已有用户:使用chage命令调整:
chage -M 30 lisi # 用户lisi的密码有效期为30天
(2)强制密码重置
管理员可强制用户首次登录时立即修改密码:
chage -d 0 zhangsan # 用户zhangsan下次登录必须重置密码
用户登录时将看到提示:
You are required to change your password immediately (root enforced)
(3)密码复杂度策略
使用pam_pwquality模块设置密码复杂度(如最小长度,包含数字和特殊字符):
vi /etc/security/pwquality.conf
minlen = 12
minclass = 3 # 至少包含3种字符类型(数字、字母、符号)
3.命令历史与自动注销
(1)限制历史命令记录
全局设置:修改/etc/profile,限制所有用户的历史命令条数:
vi /etc/profile
HISTSIZE=200 # 仅保留最近200条命令
当前会话生效:
export HISTSIZE=200
(2)退出Shell时自动清除历史记录:
在用户退出Shell时自动清除历史记录:
vi ~/.bash_logout
history -c && clear # 添加此行
(3)会话超时控制
设置终端闲置超时时间(单位:秒),超时后自动注销:
vi /etc/profile
export TMOUT=600 # 10分钟无操作则退出
注意:编译或长时间操作时,使用unset TMOUT临时取消限制。
4.用户切换与提权
(1)su命令的精细化控制
默认风险:任何用户均可尝试切换为root,需限制仅wheel组成员可使用su:
gpasswd -a tsengyia wheel # 将用户加入wheel组
vi /etc/pam.d/su # 启用pam_wheel模块
取消注释以下行:
auth required pam_wheel.so use_uid
验证效果:非wheel组成员尝试切换将提拒绝权限。
(2)sudo命令的授权管理
配置文件编辑:使用visudo修改/etc/sudoers,语法格式为:
用户 主机=(目标用户) 命令
示例配置:
jerry localhost=/sbin/ifconfig # 用户jerry可执行ifconfig
%wheel ALL=(ALL) NOPASSWD: ALL # wheel组成员无需密码执行所有命令
别名应用:简化批量授权:
User_Alias OPERATORS = jerry, tom
Host_Alias MAILSVRS = smtp, pop
OPERATORS MAILSVRS = /usr/bin/systemctl restart postfix
(3)sudo日志记录
启用日志功能以审计特权操作:
vi /etc/sudoers
Defaults logfile="/var/log/sudo"
查看日志:
tail -f /var/log/sudo
5.PAM认证机制
(1)PAM工作原理
模块化设计:PAM(可插拔认证模块)通过动态加载认证模块实现灵活配置。
配置文件路径:/etc/pam.d目录下存放各服务的PAM配置,例如/etc/pam.d/su。
(2)PAM配置解析
- 认证类型
- auth:身份验证(如密码校验)。
- account:账号状态检查(如是否过期)。
- password:密码策略管理。
- session:会话管理(如日志记录)。
- 控制标志:
- required:失败仍继续,但最终返回失败。
- sufficient:成功则立即通过,失败则忽略。
- requisite:失败立即终止。
(3)示例:su的PAM配置
auth sufficient pam_rootok.so # root用户无需密码
auth required pam_wheel.so use_uid # 仅wheel组成员允许切换
二,系统引导与登录控制
1.BIOS安全设置
- 关键操作:
- 设置第一启动设备为系统硬盘。
- 禁用USB,光盘,网络引导。
- 启用BIOS密码并设置为setup级别。
2.GRUB引导参数保护
(1)生成加密密码
使用PBKDF2算法生成安全密码:
grub2-mkpasswd-pbkdf2
# 输入密码后生成哈希字符串(如grub.pbkdf2.sha512...)
(2)配置GRUB密码
创建配置文件/etc/grub.d/01_users:
cat << EOF
set superusers="root"
password_pbkdf2 root <生成的哈希>
EOF
更新GRUB配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
(3)效果验证
重启后按e尝试编辑GRUB参数时,需输入密码。
3.终端登录限制策略
(1)禁止root用户登录特定终端
编辑/etc/securetty,注释不安全终端(如tty5,tty6):
vi /etc/securetty
#tty5
#tty6
(2)临时禁止普通用户登录
创建/etc/nologin文件,仅允许root登录(适用于维护期间):
touch /etc/nologin
删除该文件后恢复正常:
rm -f /etc/nologin
三,弱口令检测
1.工具安装与编译
(1)源码编译
john 是一款开源的密码破解工具,能够在已知道密文的情况下快速分析出明文的密码字串,支持DES,MB5等多种加密算法。
tar zxf john-1.8.0.tar.gz
cd john-1.8.0/src
make clean linux-x86-64 # 编译生成可执行文件
(2)目录结构
- run/:包含主程序john及配置文件。
- doc/:提供使用手册(如EXAMPLES)。
2.弱口令检测流程
(1)准备密码文件
复制/etc/shadow并去除无效内容:
cp /etc/shadow shadow.txt
(2)基础检测命令
./john shadow.txt # 启动破解
./john --show shadow.txt # 查看结果
输出示例:
kadmin:123456 # 用户kadmin的密码为“123456”
lisi:iloveyou # 用户lisi的密码为“iloveyou”
(3)使用字典增强检测
指定字典文件(如password.lst):
./john --wordlist=password.lst shadow.txt
(4)清空历史结果
:> john.pot # 清空破解缓存
3.结果分析与应对
- 强制密码重置:检测到弱口令用户后,使用passwd命令强制修改密码。
- 密码策略优化:结合pam_pwquality模块提升密码复杂度要求。
四,端口扫描:NMAP技术全解析
1.安装与基本命令
(1)YUM安装
yum install -y nmap
(2)命令格式
nmap [扫描类型] [选项] <目标>
2.扫描类型详解
(1)TCP SYN扫描(半开扫描)
快速探测开放端口,不建立完整连接:
nmap -sS 192.168.1.1
(2)TCP连接扫描
完整三次握手,准确性高但速度慢:
nmap -sT 192.168.1.1
(3)UDP扫描
检测UDP服务(如DNS,DHCP):
nmap -sU 127.0.0.1
(4)存活主机探测
nmap -sn 192.168.4.0/24
3.典型应用案例
(1)检测FTP服务分布
nmap -p 21 192.168.4.0/24
输出示例:
192.168.4.253:21/tcp open ftp
(2)文件共享服务扫描
nmap -p 139,445 192.168.4.100-200
若发现139/tcp open netbios-ssn,可能存在Samba服务漏洞。
4.扫描结果分析与响应
- 风险端口:如22/tcp open ssh需检查SSH密钥强度;23/tcp open telnet建议关闭。
- 防火墙优化:使用iptables或firewalld限制非必要端口的访问。