Недавно я узнал об IPTables и IP-маршрутизации, чтобы настроить одноплатный компьютер так, чтобы он изолировал конкретную машину от остальной части моей сети, но при этом разрешил ей доступ в Интернет, помимо нескольких других правил.
Я решил использовать эти новые знания для повышения безопасности своих встроенных мультимедийных устройств (и, возможно, запретить им показывать рекламу и сообщать телеметрию). У меня в шкафу был старый роутер ASUS с прошивкой Merlin, поэтому я настроил его и заработал SSH.
В отличие от моего предыдущего брандмауэра на основе SBC, у которого была новая установка Ubuntu и чистый лист в iptables, маршрутизатор ASUS поставляется с несколькими правилами, определенными из коробки, и таблица FORWARD меня немного смущает:
Цепочка FORWARD (политика DROP)
целевая защита выбор источника назначения
ПРИНИМАТЬ все -- в любом месте в любом месте СВЯЗАННО, УСТАНОВЛЕНО
УДАЛИТЬ все -- в любом месте в любом месте
УДАЛИТЬ все -- в любом месте состояние INVALID
ПРИНИМАТЬ все -- в любом месте в любом месте
ПРИНЯТЬ все -- где угодно и где угодно ctstate DNAT
ПРИНИМАТЬ все -- в любом месте в любом месте
Насколько я понимаю, это помешает маршрутизатору работать так, как он работает. Например, если телевизор хочет инициировать запрос к Netflix, маршрутизатор должен увидеть, что пакет пришел от NIC # 2 и предназначен для WAN NIC, а не для какого-либо внутреннего процесса, и поэтому должен быть помещен в таблицу FORWARD. Первое правило не должно применяться, потому что пакет новый - еще не было ответов, чтобы присвоить ему статус RELATED или ESTABLISHED. Следующее правило... должно отказаться от него. Таким образом, пакет не достигает Netflix, и ничего не происходит.
На самом деле, мне кажется, что это должно предотвращать все, что не является прямой связью между самим маршрутизатором (например, интерфейсом администратора). Но это, конечно, не так, поскольку подключенные устройства без проблем подключаются к Интернету. Итак, явно есть что-то, что мне не хватает. Маршрутизаторы ASUS не используют таблицу FORWARD? Или правила не оцениваются сверху вниз? Почему не приведенная выше таблица FORWARD предотвращать мой маршрутизатор не работает должным образом в качестве коммутатора?