Linux 安全排查与加固完全手册(攻防双视角)
·
本文涵盖计划任务、自启动持久化、系统日志、审计监控、可疑用户、进程端口排查、安全加固等实战内容,兼顾攻击者视角与防守者视角,适合网络安全学习与服务器日常巡检。
一、计划任务(定时执行与排查)
计划任务是攻击者常用的定时上线、定时投递 payload 手段,也是服务器巡检必查项。
1. 基础命令
- 查看当前用户计划任务
crontab -l - 编辑计划任务
crontab -e - 删除指定用户所有计划任务
crontab -r -u root
2. crontab 时间格式
* * * * * 命令/脚本路径依次代表:分 / 时 / 日 / 月 / 周
常用示例:
* * * * *:每分钟执行5 * * * *:每小时第 5 分钟执行*/5 * * * *:每 5 分钟执行0 3 * * *:每天凌晨 3 点执行0 12 * * 6:每周六中午 12 点执行
二、启动项与自启动服务(持久化核心)
1. 传统启动项
查看系统初始化脚本:ls /etc/init.d/
2. systemd 服务(现代 Linux 主流持久化)
服务配置文件目录:ls /etc/systemd/system
典型服务配置(test.service)
[Unit]
Description=test
After=network.target
[Service]
Type=simple
ExecStart=/shell.elf
Restart=always
[Install]
WantedBy=multi-user.target
ExecStart:可执行文件路径(攻击者常写木马)Restart=always:崩溃自动重启WantedBy=multi-user.target:多用户模式开机自启
服务管理命令
systemctl daemon-reload # 重新加载配置
systemctl start test.service # 启动服务
systemctl enable test.service # 开机自启
systemctl status test.service # 查看状态
3. 三种持久化对比
- 计划任务:定时执行 payload
- 启动项:开机一次执行,崩溃无法恢复
- 系统服务:最强持久化,可自动重启、长期驻留
三、Linux 系统日志(入侵溯源核心)
1. 传统日志文件
- 系统运行日志:
cat /var/log/syslog - 登录认证日志:
cat /var/log/auth.log(SSH、sudo 关键日志)
2. journalctl 现代日志工具
- 查看当天所有日志(需管理员)
sudo journalctl - 查看 SSH 服务日志
sudo journalctl -u ssh - 按时间段筛选
sudo journalctl --since "2024-06-20 18:00:00" --until "2024-06-20 20:00:00"
3. SSH 登录安全审计(高频实战)
# 查看最新10条登录失败
sudo journalctl -u ssh | grep 'Failed password' | tail
# 查看最新10条登录成功
sudo journalctl -u ssh | grep 'Accepted password' | tail
# 实时监控 SSH 登录
sudo journalctl -u ssh -f
# 统计攻击IP失败次数
sudo journalctl -u ssh | grep 'Failed password' | awk '{print $11}' | sort | uniq -c | sort -nr
四、审计监控工具 auditd(加强版日志)
在系统自带日志基础上增加细粒度行为监控,如文件读写、命令执行、用户增删。
1. 安装与启动
sudo apt update
sudo apt install -y auditd audispd-plugins
sudo systemctl status auditd
配置文件路径:/etc/audit/auditd.conf
2. 添加审计规则
格式:auditctl -w 路径/文件 -p 权限 -k 关键词
示例:监控 useradd(创建用户)命令
auditctl -w /usr/sbin/useradd -p rwx -k useradd_exec
-w:监控目标-p rwx:监控读、写、执行行为-k:自定义关键字,方便检索
3. 查询审计日志
ausearch -k useradd_exec
五、可疑用户排查(权限劫持重点)
1. 排查超级用户(UID=0)
awk -F: '$3==0{print $1}' /etc/passwd
2. 排查 sudo 权限用户
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL:ALL)"
3. 查看 sudo 组
cat /etc/group | grep sudo
4. 应急处置命令
pkill -KILL -u hack # 强制用户下线
usermod -L hack # 禁用用户
usermod -U hack # 恢复用户
userdel hack # 删除用户
userdel -r hack # 删除用户及家目录
六、可疑进程分析(挖矿、木马排查)
1. 常用查看命令
top # 动态实时查看
ps -ef # 全格式查看进程
ps aux --sort -pcpu # 按CPU占用排序
ps aux --sort -pmem # 按内存占用排序
异常特征:
- CPU 长期 100% 且名称怪异 → 大概率挖矿病毒
- 未知外来可执行文件运行 → 木马 / 后门
2. 强制结束进程
kill -9 PID
七、端口与网络连接排查
1. netstat(传统工具)
netstat -anop -A inet # 查看网络连接
netstat -ntu # 查看 TCP/UDP 端口
2. ss(现代替代工具)
ss -ntap
重点关注:
- 陌生外网 IP 连接
- 非常规端口监听
- 反向连接境外 IP
八、系统启动项与服务巡检
1. 快速查看开机启动项
- Ubuntu:
sysv-rc-conf --list - CentOS:
chkconfig --list
2. 查看所有开机自启服务
systemctl list-unit-files --type=service --state=enabled
常见安全服务:
ufw:Ubuntu 防火墙
九、Linux 安全加固(防守必做)
1. 账户安全加固
passwd root # 设置强密码
nano /etc/ssh/sshd_config
# 将 PermitRootLogin yes 改为 no
systemctl restart sshd # 禁止 root 远程 SSH
2. 防火墙加固(UFW)
ufw allow from 192.168.x.x to any port 22
ufw allow 80/tcp
仅允许指定 IP 访问关键端口,最小权限开放。
3. 系统更新与无用服务关闭
# Ubuntu 更新
apt update && apt upgrade -y && apt full-upgrade -y
# 关闭无用服务
systemctl disable 无用服务名
reboot # 内核更新后重启生效
4. 文件权限限制
chmod 700 /root/
十、总结
- 攻击者视角:利用计划任务、系统服务实现持久化,通过隐蔽进程、端口上线。
- 防守者视角:巡检计划任务、自启动服务、进程端口,结合系统日志 + auditd 实现溯源,通过禁用 root 远程、防火墙、系统更新完成加固。
更多推荐




所有评论(0)