Sự khác biệt thực tế giữa:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
và
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Cái nào là tốt nhất để sử dụng?
Cảm ơn bạn.
Sự khác biệt thực tế giữa:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
và
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Cái nào là tốt nhất để sử dụng?
Cảm ơn bạn.
Câu trả lời:
Cả hai đều sử dụng cùng một phần bên trong kernel (hệ thống con theo dõi kết nối).
Tiêu đề của xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
Vì vậy, tôi sẽ nói - mô-đun trạng thái đơn giản hơn (và có thể ít bị lỗi hơn). Nó cũng dài hơn trong kernel. Conntrack ở phía bên kia có nhiều tùy chọn và tính năng hơn [1].
Cuộc gọi của tôi là sử dụng conntrack nếu bạn cần các tính năng của nó, nếu không thì gắn bó với mô-đun trạng thái.
Câu hỏi tương tự trên maillist netfilter.
[1] Khá hữu ích như định tuyến "-m conntrack --ctstate DNAT -j MASQUERADE" / sửa lỗi DNAT ;-)
Không có sự khác biệt trong kết quả của hai quy tắc đó. Cả hai tiện ích mở rộng khớp đều sử dụng cùng một dữ liệu để khớp với trạng thái theo dõi kết nối. trạng thái là tiện ích mở rộng kết hợp "cũ" và conntrack mới hơn và có nhiều tùy chọn hơn là chỉ khớp với trạng thái theo dõi kết nối.
Như tài liệu nói:
Trận đấu conntrack là một phiên bản mở rộng của trận đấu trạng thái, điều này cho phép khớp các gói theo cách chi tiết hơn nhiều. Nó cho phép bạn xem thông tin có sẵn trực tiếp trong hệ thống theo dõi kết nối, mà không có bất kỳ hệ thống "lối vào" nào, chẳng hạn như trong trận đấu trạng thái. Để biết thêm thông tin về hệ thống theo dõi kết nối, hãy xem chương Máy trạng thái.