iptables的网络传输解说

数据传输的过程,数据包经过防火墙的过程:

1 数据包首先进入的是prerouting链,会自动匹配prerouting的规则。

 

这里面分为两种情况;一种是进入本机的,访问本机数据的,此时数据包进入input链,获得数据后,到达output链,经postrouting链去往目标主机。

另外一种是经过转发,不做数据查询的,那么就会自动匹配forward链的规则,然后到达postrouting链出站去往目标主机

 

 

在这里做一个示意图

 

 

 此图是参考别人的,很形象也很直观。熟悉此图有利于我们更好的理解运用防火墙规则。

iptables 用法说明:

选择表后 链前的使用规则

A    添加,一般在前一条的规则后面添加。  I  大写的I  ,规则是直接添加在已有规则的最前面。     D  删除防火墙的某条规则。    F  直接清空所有防火墙的规则     L  显示防火墙的规则

 

链规则后使用;

-p  表示选择哪种协议(tcp  udp  icmp  )

-s  表示源ip                        

-d  表示目标ip

--sport   表示源端口          

实例运用 : iptables -A INPUT -p tcp --sport 80 -j ACCEPT  表示允许外部服务器的源端口为80的发送的数据进入本机

--dport  表示目标端口 

实例运用: iptables -A INPUT -p tcp --dport 80 -j ACCEPT  表示允许外部服务器访问我本机的80端口服务

-i  表示选择数据流经过哪张网卡 

 

 

 

 

内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。
当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。 

 

SNAT   一般表示内网ip访问外网地址进行的一个转换

实例运用: iptables -t nat -A POSTROUTING -s 192.168.1.10 -p tcp --sport 22 -j SNAT --to-source 100.0.0.1:422  表示转发422端口到22端口上    

                  iptables -t nat -A POSTROUTING -s 192.168.72.161 -p tcp --sport 80 -j SNAT --to-source 192.168.72.161:9000  表示本机的3306端口映射在8087端口上

DNAT     一般表示外网地址返回给本机的地址转换

实例运用  iptables -t nat -A PREROUTING -d 100.0.0.1 -p tcp --dport 422 -j DNAT --to-destination192.168.1.10:22    表示外网访问本机的422端口转到本机的22端口上

                iptables -t nat -A PREROUTING -d 192.168.72.161 -p tcp --dport 9000 -j DNAT --to-destination 192.168.72.161:80  表示外网访问本机的9000端口转到本机的80端口上

posted @ 2021-03-06 13:45  woaibaobei  阅读(168)  评论(0编辑  收藏  举报