2023-05-03 00:28:14 +08:00

95 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 学习资料
1. 【Linux运维必学之Iptables防火墙】从基础介绍到实战应用小白可入轻松上手
https://www.bilibili.com/video/BV1Y94y1y7M2?p=1
2. 超级详细的iptable教程文档
https://www.cnblogs.com/Dicky-Zhang/p/5904429.html
3. iptables包过滤与网络地址转换
https://www.bilibili.com/video/BV1Vy4y1a7Rd/
4. 透明代理
https://docs.mitmproxy.org/archive/v8/howto-transparent/
## 防火墙常用命令行
# 查看版本
iptables -v
# 查看当前防火墙规则默认是filter表
iptables -nL
# 查看nat表的规则
iptables -nL -t nat
# 清空所有规则,不处理默认规则
iptables -F
# 删除自定义链
iptables -X
# 链的计数清零
iptables -Z
# 拒绝22端口(在云服务器上执行禁止访问22端口就是自杀行为)
表 链 请求协议 端口 动作 禁止
iptables -t filter -I INPUT -p tcp --dport 22 -j DROP
# 精准删除一条规则
iptables -t filter -D INPUT 1
# 查看是第几条规则
iptables -nl --line-number
## NAT常用命令行
内网访问外网网络地址转换
表 链 请求协议 出口网卡 本地网段 地址转换 外网ip
iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 12.34.56.78
# 如何看某个表中有哪些链和规则
iptables -t nat -nvL
# 激活网络接口
ifup eth1
# 外网ip不是固定的网络地址转换
iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j MASQUERADE
外网访问内网目标地址转换
# 通过目标网卡eth1进入公网ip公司固定ip端口是80转发到内网
iptables -t nat -A PREROUTING -i eth1 -d 12.34.56.80 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8000
## 抓包
首先将手机上网功能配置成静态获取ip地址
![请求](./img/1.jpg)
查看本地的ip地址我这边用的是无线网络所有直接拿无线网络的参数配置
![请求](./img/2.png)
开启iptables流量重定向到mitmproxy
# 重启iptables
systemctl start iptables
# 启用IP转发
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
# 禁用 ICMP 重定向
sysctl -w net.ipv4.conf.all.send_redirects=0
# 创建一个 iptables 规则集,将所需的流量重定向到 mitmproxy
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIRECT --to-port 8080
ip6tables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
ip6tables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIRECT --to-port 8080
启动mitmproxy
mitmproxy --mode transparent --showhost --set block_global=false
mitmdump --mode transparent --showhost --set block_global=false
mitmweb --mode transparent --showhost --set block_global=false