Bằng cách sử dụng trạng thái của một kết nối đã được thiết lập trước đó ta có thể giảm bớt việc kiểm tra luật cho Firewall. Các yêu cầu kết nối từ người dùng sẽ được điều khiển tùy từng loại dịch vụ. Ta cũng nên nhớ rằng cần phải cho phép cả hai chain INPUT và OUTPUT để cho giảm kiểm tra luật đối với cả hai hướng vào/ra.
Bởi vì module trạng thái cần nhiều RAM, Firewall script cần phải đưa ra luật cho cả có trạng thái hoặc không trạng thái. Module trạng thái cho phép ta giảm thiểu kiểm luật trong điều kiện hoạt động bình thường. Những luật chuẩn không trạng thái cũng cần phải được thêm vào trong trường match mục trong bảng trạng thái hết giờ tồn tại hoặc đã bị xóa mất vì thiếu bộ nhớ.
if [ "$CONNECTION_TRACKING" = "1" ]; then
$IPT -A INPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT
$IPT -A INPUT -m state --state INVALID -j DROP $IPT -A OUTPUT -m state --state INVALID -j DROP fi
# All of the bits are cleared
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP # SYN and FIN are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP # SYN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP ...
$IPT -t nat --policy PREROUTING DROP $IPT -t nat --policy OUTPUT DROP $IPT -t nat --policy POSTROUTING DROP
$IPT -t mangle --policy PREROUTING DROP $IPT -t mangle --policy OUTPUT DROP
Trang 58