Bootstrap

conntrack iptables 安全组

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规则即可。


 

;