编程技术分享平台

网站首页 > 技术教程 正文

《Linux 进程管理;iptables 防火墙基础》

xnh888 2025-08-05 22:11:09 技术教程 8 ℃ 0 评论

一、Linux 进程管理

进程是操作系统运行的核心单元,也是攻击者常利用的入口(如植入后门进程)。掌握进程管理是网络安全工程师的必备技能。

1. 基础命令

命令

功能描述

安全场景

关键词

ps aux

查看当前系统所有进程的详细信息(用户、PID、CPU/内存占用率)。

检测异常进程(如高CPU占用的挖矿木马)。

ps aux;进程状态(R/S/Z)

top/htop

实时监控进程资源占用(动态排序,支持按 CPU/内存/进程名过滤)。

快速定位资源消耗异常的进程(如 DDoS 攻击导致的异常流量进程)。

top -c;进程排序(Shift+P/M)

kill [-9] PID

终止指定进程(-9 表示强制终止)。

关闭恶意进程(如被入侵后门进程)。

kill -9 1234;进程信号(SIGTERM/SIGKILL)

pstree

以树状图展示进程关系(便于发现父子进程异常)。

追踪守护进程(Daemon)的启动链(如攻击者通过 systemd 后门启动恶意服务)。

pstree -p;进程树结构

2. 进程监控工具

工具

功能描述

安全场景

关键词

systemctl

管理系统服务(启动/停止/重启),查看服务状态。

确保关键服务(如 SSH、防火墙)运行正常,禁用高风险服务(如 Telnet)。

systemctl status sshd;服务单元文件(.service)

lsof

查看进程打开的文件、端口和网络连接(如 lsof -i :22 查看 SSH 端口占用进程)。

检测非法端口监听(如未授权的 SSH 2222 端口)。

lsof -i;端口占用分析

auditd

系统审计工具,记录进程创建、文件修改等关键事件。

追踪攻击者行为(如提权操作、敏感文件篡改)。

auditctl;审计规则配置

3. 实战案例:检测异常进程

场景:发现服务器 CPU 占用率飙升,疑似被挖矿木马感染。
步骤

  1. 定位高 CPU 进程
top -c          # 按 CPU 占用排序,找到 PID 和进程名  
  1. 分析进程行为
lsof -p <PID>   # 查看进程打开的文件和网络连接  
strace -p <PID> # 跟踪系统调用(发现异常网络活动)  
  1. 终止进程
kill -9 <PID>   # 强制终止  
  1. 预防措施:通过 auditd 记录进程创建事件:
auditctl -a exit,always -F arch=b64 -S execve -k process_creation  

二、iptables 防火墙基础

iptables 是 Linux 内核的包过滤工具,用于控制网络流量进出。掌握 iptables 可实现基础的边界防护(如封禁恶意 IP、限制端口访问)。

1. 基本概念

术语

描述

安全场景

关键词

规则(Rule)

定义流量匹配条件和动作(如 ACCEPT/DROP)。

允许合法流量(如 HTTP 80 端口),拒绝非法流量(如未授权的 SSH 22 端口)。

iptables -A INPUT -p tcp --dport 22 -j DROP

链(Chain)

流量处理的阶段(如 INPUT、OUTPUT、FORWARD)。

在 INPUT 链拦截入站攻击,在 OUTPUT 链限制敏感端口外连(如阻止 C2 通信)。

iptables -L INPUT;链策略(DROP/ACCEPT)

表(Table)

不同功能的规则集合(如 filter、nat、mangle)。

filter 表处理过滤,nat 表处理地址转换(如端口转发)。

iptables -t nat -L;表切换(-t)

2. 规则配置实战

场景:仅允许 SSH(22 端口)和 HTTP(80 端口)入站流量,其余拒绝。
配置步骤

# 1. 清空现有规则(谨慎操作!)  
iptables -F  

# 2. 设置默认策略(拒绝所有流量)  
iptables -P INPUT DROP  
iptables -P FORWARD DROP  
iptables -P OUTPUT ACCEPT  

# 3. 允许已建立的连接(避免断网)  
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  

# 4. 允许 SSH(22 端口)  
iptables -A INPUT -p tcp --dport 22 -j ACCEPT  

# 5. 允许 HTTP(80 端口)  
iptables -A INPUT -p tcp --dport 80 -j ACCEPT  

# 6. 保存规则(需安装 iptables-persistent)  
iptables-save > /etc/iptables/rules.v4  

3. NAT 网络地址转换

场景:内网服务器无公网 IP,需通过 NAT 实现外网访问。
配置示例

# 1. 启用 IP 转发  
sysctl -w net.ipv4.ip_forward=1  

# 2. SNAT(源地址转换):内网访问外网时替换为公网 IP  
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  

# 3. DNAT(目的地址转换):将外网 80 端口流量转发到内网服务器 8080  
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080  

4. 安全加固与最佳实践

  • 限制 SSH 访问
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT  # 仅允许内网 IP 访问  
iptables -A INPUT -p tcp --dport 22 -j DROP                                # 拒绝其他来源  
  • 防御 DDoS
iptables -A INPUT -p tcp --syn --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT  
  • 日志记录
iptables -A INPUT -j LOG --log-prefix "BLOCKED_INPUT: " --log-level 4  

5. 常见错误与注意事项

  • 规则顺序敏感:iptables 规则按顺序匹配,需将“允许”规则放在“拒绝”规则之前。
  • 保存与恢复:重启后规则丢失(需配合 iptables-persistent 或自定义脚本)。
  • 性能影响:过多规则可能导致性能下降,建议优化规则逻辑(如合并相似规则)。

总结

  • 进程管理:通过 ps、top、kill 快速定位和终止异常进程,结合 auditd 实现长期监控。
  • iptables:通过规则配置实现流量过滤和 NAT 转换,需熟悉链、表、动作的关系,并定期备份规则。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表