iptables 包括一个模块,它允许管理员使用“连接跟踪”(connection tracking)方法来检查和限制到内部网络中可用服务的连接。连接跟踪把所有连接都保存在一个表格内,它令管理员能够根据以下连接状态来允许或拒绝连接:
NEW — 请求新连接的分组,如 HTTP 请求。
ESTABLISHED — 属于当前连接的一部分的分组。
RELATED — 请求新连接的分组,但是它也是当前连接的一部分,如消极 FTP 连接,其连接端口是 20,但是其传输端口却是 1024 以上的未使用端口。
INVALID — 不属于连接跟踪表内任何连接的分组。
你可以和任何网络协议一起使用 iptables 连接跟踪的状态功能,即便协议本身可能是无状态的(如 UDP)。下面的例子显示的规则使用连接跟踪来只转发与已建立连接相关的分组:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ALLOW |