searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

iptables REDIRECT 解疑及源码分析

2023-06-27 02:32:09
45
0
pc1 —— fw —— pc2
 
pc1 192.168.20.128
fw nic1 20.129 nic2 30.129
pc2 192.168.30.130
 
 
1 在pc2上开80端口
nc -l 80
 
2 fw上清空所有规则,配置:
iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to 9999
iptables -t mangle -I INPUT -p tcp --dport 9999 -j LOG --log-prefix "mangle-input 9999 "
 
3 在pc1上 访问192.168.30.130 80端口
nc 192.168.30.130 80
 
4 观察结果
tcpdump -i eth0 -nne
eth0收到的五元组 (192.168.20.128 58758 -- 192.168.30.130 80)
 
dmesg
mangle-input 9999 IN=ens34 OUT= MAC=00:0c:29:d8:08:7c:00:0c:29:c2:4d:fe:08:00 SRC=192.168.20.128 DST=192.168.20.129 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=54663 DF PROTO=TCP SPT=58758 DPT=9999 WINDOW=29200 RES=0x00 SYN URGP=0
 
 
通过dmesg(tcpdump看不到redirect后的报文)可以看到dst从192.168.30.130变成了192.168.20.129!!! 
端口变成了9999(意料之中)。
也就是说REDIRECT同时改变了ip和port。
 
更进一步
去看内核源码你就知道为什么了!!!(目的ip会改成报文从哪个网卡进来的ip,平时没发现那是因为目的ip就是网卡的ip,即使替换了也看不出来)
0条评论
作者已关闭评论
阿莫西林的杂货铺
12文章数
0粉丝数
阿莫西林的杂货铺
12 文章 | 0 粉丝
原创

iptables REDIRECT 解疑及源码分析

2023-06-27 02:32:09
45
0
pc1 —— fw —— pc2
 
pc1 192.168.20.128
fw nic1 20.129 nic2 30.129
pc2 192.168.30.130
 
 
1 在pc2上开80端口
nc -l 80
 
2 fw上清空所有规则,配置:
iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to 9999
iptables -t mangle -I INPUT -p tcp --dport 9999 -j LOG --log-prefix "mangle-input 9999 "
 
3 在pc1上 访问192.168.30.130 80端口
nc 192.168.30.130 80
 
4 观察结果
tcpdump -i eth0 -nne
eth0收到的五元组 (192.168.20.128 58758 -- 192.168.30.130 80)
 
dmesg
mangle-input 9999 IN=ens34 OUT= MAC=00:0c:29:d8:08:7c:00:0c:29:c2:4d:fe:08:00 SRC=192.168.20.128 DST=192.168.20.129 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=54663 DF PROTO=TCP SPT=58758 DPT=9999 WINDOW=29200 RES=0x00 SYN URGP=0
 
 
通过dmesg(tcpdump看不到redirect后的报文)可以看到dst从192.168.30.130变成了192.168.20.129!!! 
端口变成了9999(意料之中)。
也就是说REDIRECT同时改变了ip和port。
 
更进一步
去看内核源码你就知道为什么了!!!(目的ip会改成报文从哪个网卡进来的ip,平时没发现那是因为目的ip就是网卡的ip,即使替换了也看不出来)
文章来自个人专栏
网络疑难杂症
12 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0