Michael, bạn không thể chỉ định nhiều hơn một nguồn mac cho mỗi quy tắc, do đó bạn sẽ cần một bộ quy tắc như sau (nếu bạn sẽ sử dụng iptables)
#Rules for allowing your mac addresses
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A FORWARD -i eth1 -j DROP
Lưu ý rằng những thứ này nằm trong chuỗi FORWARD và không phải chuỗi INPUT. Bằng cách có các quy tắc này trong chuỗi FORWARD, bộ định tuyến linux của bạn sẽ không cho phép bất kỳ máy Mac nào ngoại trừ những máy được phép của bạn gửi hoặc nhận bất kỳ lưu lượng truy cập nào thông qua bộ định tuyến. Họ vẫn có thể giao tiếp với các máy trên cùng mạng con như của họ (vì điều đó không yêu cầu họ phải đi qua bộ định tuyến).
Bạn cũng có thể kiểm soát ai có thể kết nối với bộ định tuyến của mình bằng cách sao chép các quy tắc trên cho chuỗi đầu vào.
#Rules for allowing your mac addresses
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A INPUT -i eth1 -j DROP
Đọc bình luận của bạn về một trong những câu trả lời ngắn khác về trường hợp FORWARD và INPUT làm việc với, đây là một lời giải thích ngắn.
PHÍA TRƯỚC chỉ áp dụng cho các gói đi xuyên qua bộ định tuyến của bạn tới các mạng con khác hoặc giao diện với thế giới bên ngoài (thông qua giao diện WAN). ĐẦU VÀO áp dụng cho các gói được định sẵn để kết thúc trên chính bộ định tuyến (ví dụ: kết nối SSH với chính bộ định tuyến / hộp linux).