1. 程式人生 > > Iptables之conntrack連線跟蹤模組

Iptables之conntrack連線跟蹤模組

Iptables是有狀態機制的防火牆,通過conntrack模組跟蹤記錄每個連線的狀態,通過它可制定嚴密的防火牆規則。
可用狀態機制:

1
2
3
4
5
#http://blog.onovps.com
NEW #新連線資料包
ESTABLISHED #已連線資料包
RELATED #和出有送的資料包
INVALID #無效資料包
.
conntrack預設最大跟蹤65536個連線,檢視當前系統設定最大連線數:
1
cat /proc/sys/net/ipv4/ip_conntrack_max

檢視當前跟蹤連線數:
1
cat /proc/net/ip_conntrack|wc -l

當伺服器連線多於最大連線數時會出現kernel: ip_conntrack: table full, dropping packet的錯誤。
解決方法,修改conntrack最大跟蹤連線數:
1
2
vim /etc/sysctl.conf #新增以下內容
net.ipv4.ip_conntrack_max = 102400

立即生效:
1
sysctl -p

為防止重啟Iptables後變為預設,還需修改模組引數:
1
2
vim /etc/modprobe.conf #新增以下內容
options ip_conntrack hashsize=12800 #值為102400/8

一勞永逸的方法,設定Iptables禁止對連線數較大的服務進行跟蹤:
1
2
3
4
#http://blog.onovps.com
iptables -A INPUT -m state --state UNTRACKED,ESTABLISHED,RELATED -j ACCEPT
iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
iptables -t raw -A OUTPUT -p tcp --sport 80 -j NOTRACK

http://blog.onovps.com/archives/iptables-conntrack-max.html