场景

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端口。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐