centos 安装yum install conntrack-tools
1. conntrack状态
NEW: 新建连接(第一次包)。
ESTABLISHED: 已建立连接,正在传输数据。
RELATED: 与已有连接相关的连接,如 FTP 数据连接。
INVALID: 无效连接,无法识别或不完整。
UNTRACKED: 未被跟踪的连接。
2. 常见运维操作
sysctl net.netfilter.nf_conntrack_count
sysctl nf_conntrack_max
查看会话
conntrack -L [-p icmp/tcp/udp]
#设置最大最大连接数目
sysctl -w net.netfilter.nf_conntrack_max=131072
#写入配置文件
echo "net.netfilter.nf_conntrack_max=131072" | tee -a /etc/sysctl.conf
sysctl -p
3. 可观测
监控conntrack会话表
4. 实战
用iptables +conntrack可实现安全组的单向控制功能
-
state
: 假设服务器 A(10.10.0.1)配置的 iptables 规则为入访全不通,即 INPUT 链全 DROP,出访全通,即 OUTPUT 链全 ACCEPT。另外一台服务器 B(10.10.0.100)和 A 在同一个二层网络,则显然 B ping 不通 A, A也不能 ping 通 B ,因为 A 的包有去无回,即 A 的 ICMP 包确实能到 B,但 B 的回包却被 A 的INPUT
DROP 了。通过state
模块可以完美解决这个问题,指定 state 为conntack的ESTABLISHED状态,
能够匹配已经建立ct连接的回包,添加-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
规则即可。