场景
linux开启了iptables!!!
开启本机tcp80端口服务。linux本机ip地址是192.168.204.129。
本机telnet连接本机的tcp80端口。
目的
telnet 192.168.204.129 80,能够连接通。
输入规则
1)需要配置一个让本机tcp80端口响应报文进来的规则,有两种配置方式
#目的ip是本机 iptables -i input -p tcp -d 192.168.204.129 -j accept
或者配置源ip是本机的,配置这个的话,其它主机就无法访问本机的tcp80了
#源ip是本机 iptables -i input -p tcp -s 192.168.204.129 -j accept
2)让要访问本机tcp80端口的报文进入,配置这个主要是为了让其它主机能够访问本机ip,针对现在的场景是可以不配置这个的,只配置1)的规则
iptables -i input -p tcp --dport 80 -j accept
输出规则
1)配置这个是为了让本机tcp输出报文能够发送到目标ip,这里目标ip配置本机ip地址192.168.204.129是为了保证本机telnet客户端连接本机tcp80端口请求报文和tcp80端口的响应报文能够出去
iptables -i output -p tcp -d 192.168.204.129 -j accept
当然也可以配置源ip是本机的,如果是配置源ip是本机的这种,外部其它主机就无法访问了
iptables -i output -p tcp -s 192.168.204.129 -j accept
2)配置这个是为了让本机linux来自tcp80端口的报文出去,可以发给本机或者是其它主机。这个是可以不配置的。如果不配置这个,其它主机无法接收本机tcp80端口的响应报文
iptables -i output -p tcp --sport 80 -j accept
分析
这里涉及四个核心报文:
1)telnet客户端连接tcp80端口的出站报文
2)tcp80端口响应给telnet客户端的出站报文
3)telnet客户端连接tcp80端口的入站报文
4)tcp80端口响应给telnet客户端的入站报文
这里的1)和3)往根儿上说是同一个报文,只不过它既要出站也要入站。
这里的2)和4)往根儿上说是同一个报文,只不过它既要出站也要入站。
备注
telnet去网上查了下它的端口是23,对该端口进行配置使用验证后发现不管用。
telnet 192.168.204.129 80该命令中telnet连接tcp80端口使用的应该是随机端口。
简单展示
上面截图的规则是在这个场景下会生效的input规则和output规则。
output开放了tcp源端口是80的接收规则是为了让其它主机能够访问通本机的tcp80端口。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论