CT 系统对“连接”的定义并不局限于面向连接的协议,例如,它将 ICMP echo-request 与 echo-reply (ping) 视为一条“连接”。CT 系统同时提供了一些扩展组件,可以将其连接跟踪能力扩展到应用层,例如,跟踪 FTP、TFTP、IRC、PPTP、SIP 等应用层协议,该能力是实现应用层网关的基础。 1、CT 系统(CT System’s)概...
机器访问外部 HTTP 服务的连接(目的端口 80) 外部访问机器内 FTP 服务的连接(目的端口 21) 机器访问外部 DNS 服务的连接(目的端口 53) 连接跟踪所做的事情就是发现并跟踪这些连接的状态,具体包括: 从数据包中提取元组(tuple)信息,辨别数据流(flow)和对应的连接(connection) 为所有连接维护一个状态数据库(conntra...
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务 器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来 传送数据。 本文用到ip_conntrack_ft...
1、10.1.1.2:55667 <-> 10.2.2.2.:80:本地发起的连接,用于访问外部HTTP/TCP服务。 2、10.3.3.3:23456 <-> 10.3.3.2.:21:外部连接访问该节点的FTP/TCP服务。 3、10.1.1.2:33987 <-> 10.4.4.4.:53:本地发起的连接,用于访问外部DNS/UDP服务。 Conntrack模块负责发现和记录这些连接及其状态,包括: 提取数据...
linux内核netfilter之ip_conntrack模块的作用举例--ftp为例,很多协议的控制信息在应用层数据中被包含,这些信息直接影响到了链路的建立,比如ftp协议就是这样,ftp分为port模式和pass模式,port模式中,起初client连接server的21端口,然后当需要传输data的时候,client发
当然,具体的实现要稍微麻烦一点,主要体现在一些复杂的应用层协议上来,例如主动模式下的FTP协议,服务器在连接建立后,会主动打开高端口与客户端进行 通讯,这样,由于端口变换了,我们前面说的连接表的实现就会遇到麻烦。Netfilter为这些协议提供了一个巧秒的解决办法,我们在本章中,先分析连接 跟踪的基本实现,然后...
ip_conntrack_ftp 是本机做 FTP 时用的。 ip_nat_ftp 是通过本机的 FTP 需要用到的(若你的系统不需要路由转发,没必要用这个) 当modprobe ip_nat_ftp 时,系统自动会加载 ip_conntrack_ftp 模块。 具体设置 加载模块(ports=21可以不写,如果用其他端口时要加上): ...
很多协议的控制信息在应用层数据中被包含,这些信息直接影响到了链路的建立,比如ftp协议就是这样,ftp分为port模式和pass模式,port模式中,起初client连接server的21端口,然后当需要传输data的时候,client发送一个控制包给server,包中包含client端开启的端口和自己的ip地址,server收到之后用自己的20端口去连接client控制包中...
外部访问机器内 FTP 服务的连接(目的端口 21) 机器访问外部DNS服务的连接(目的端口 53) 连接跟踪所做的事情就是发现并跟踪这些连接的状态,具体包括: 从数据包中提取元组(tuple)信息,辨别数据流(flow)和对应的连接(connection) 为所有连接维护一个状态数据库(conntrack table),例如连接的创建时间、发送 包数、发送...
CT 系统对“连接”的定义并不局限于面向连接的协议,例如,它将 ICMP echo-request 与 echo-reply (ping) 视为一条“连接”。CT 系统同时提供了一些扩展组件,可以将其连接跟踪能力扩展到应用层,例如,跟踪 FTP、TFTP、IRC、PPTP、SIP 等应用层协议,该能力是实现应用层网关的基础。