IPtables có một danh sách các quy tắc và đối với mỗi gói, nó sẽ kiểm tra danh sách các quy tắc theo thứ tự. Khi một quy tắc được tìm thấy phù hợp với gói và chỉ định một chính sách (CHẤP NHẬN, DỰ ÁN, DROP), số phận của gói phù hợp được xác định; không có nhiều quy tắc được kiểm tra.
Điều này có nghĩa là thứ tự bạn chạy các lệnh là quan trọng. Khi bạn sử dụng iptables -A, bạn thêm một quy tắc vào cuối danh sách quy tắc, do đó bạn sẽ kết thúc với một danh sách quy tắc trông như thế này:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT all -- anywhere anywhere
Kể từ khi REJECTquy tắc đến trước khi các ACCEPTquy tắc, nó được kích hoạt đầu tiên, và do đó chuyển tiếp sẽ không xảy ra.
Do đó, bạn sẽ cần xóa REJECTquy tắc thay vì thêm ACCEPTquy tắc. Để xóa quy tắc DỰ ÁN, hãy chạy
iptables -D FORWARD -j REJECT
Để biết thêm thông tin, hãy đọc trang web iptables.
-A, có thể bạn muốn sử dụng-Pđể đặt P olicy (hành động mặc định khi không áp dụng quy tắc nào khác trong chuỗi). Ví dụ:iptables -P FORWARD DROP(không thểREJECT).