Gói dữ liệu (packet) từ mạng ngoài, sau đó đi vào giao diện mạng nối với mạng ngoài (chẳng hạn như eth0). Đầu tiên packet sẽ qua chuỗi PREROUTING (trước khi định tuyến). Tại đây, packet có thể bị thay đổi thông số (mangle) hoặc bị đổi địa chỉ IP đích (DNAT). Đối với packet đi vào máy, nó sẽ qua chuỗi INPUT. Tại chuỗi INPUT, packet có thể được chấp nhận hoặc bị hủy bỏ. Tiếp theo packet sẽ được chuyển lên cho các ứng dụng (client/server) xử lí và tiếp theo là được chuyển ra chuỗi OUTPUT. Tại chuỗi OUTPUT, packet có thể bị thay đổi các thông số và bị lọc chấp nhận ra hay bị hủy bỏ.
Gói sau khi rời chuỗi PREROUTING sẽ qua chuỗi FORWARD. Tại chuỗi FORWARD, nó cũng bị lọc ACCEPT hoặc DENY. Gói sau khi qua chuỗi FORWARD hoặc chuỗi OUTPUT sẽ đến chuỗi POSTROUTING (sau khi định tuyến).
Tại chuỗi POSTROUTING, gói có thể được đổi địa chỉ IP nguồn (SNAT) hoặc đóng giả địa chỉ (MASQUERADE). Gói sau khi ra giao diện mạng sẽ được chuyển để đi đến máy tính khác trên mạng ngoài.
Hình 3.2: Quá trình chuyển gói dữ liệu qua Netfilter
Trong chuỗi, mỗi luật sẽ được áp dụng theo thứ tự, mỗi luật có một tập các điều kiện xác định luật có phù hợp hay không và tác động chỉ xảy ra khi điều kiện phù hợp. Kết thúc một chuỗi thì tác động mặc định sẽ được sử dụng, nghĩa là gói tin sẽ được phép đi qua.
Các trạng thái kết nối :
- NEW: mở kết nối mới
- ESTABLISHED: đã thiết lập kết nối
- RELATED: mở một kết nối mới trong kết nối hiện tại - CONNMARK
- MARK - INVALID - UNTRACKED