Рассмотрим маршрутизатор с ADSL-подключением к Интернету, 3 портами Ethernet (eth1–eth3) и Wi-Fi.
Предположим, что есть машина Linux (которая должна выполнять фильтрацию контента (белый список — разрешать только определенные IP-адреса или комбинации IP/TCP или URL-адреса (белый список) и блокировать все остальное)), подключенная к eth1 на маршрутизаторе, но никогда не подключающаяся к Интернету. Можно ли запретить этой машине доступ к ADSL-подключению к Интернету навсегда. Как?
Предположим, что на eth2 и eth3 могут быть еще две машины, а через Wi-Fi, вероятно, подключено еще много машин.
Можно ли настроить маршрутизатор на ретрансляцию всего трафика (сырых пакетов физического уровня) от eth2, eth3 и всех узлов, подключенных к wifi, на eth1, и eth1 будет пересылать разрешенные пакеты обратно на маршрутизатор и отбрасывать остальные. Маршрутизатор будет использовать adsl (или eth2 eth3 wifi) для всех пакетов, поступающих с eth1. Аналогичная настройка должна быть для всех пакетов, поступающих с adsl на eth2, eth3 и wifi (adsl на eth2, eth3 и wifi сначала должны быть отправлены на eth1, а затем на соответствующие устройства). Как?
решение1
Обычно контент-фильтр настраивается как прокси-сервер, что означает, что он устанавливает соединения с Интернетом от имени клиентов. В этой конфигурации было бы неразумно блокировать его доступ в Интернет, иначе он не сможет функционировать. Если только вы не фильтруете на лету, как брандмауэр, то вы можете добавить правила, которые говорят, что пакеты, исходящие из контент-фильтра, должны быть отброшены. Кроме того, большинство домашних и все коммерческие маршрутизаторы позволят вам отбрасывать пакеты с определенным IP в качестве источника.
Если рассматриваемый маршрутизатор является домашним маршрутизатором, то eth1 - eth3 и wifi соединены вместе мостом. То есть, они образуют одну и ту же сеть уровня 2, и нет способа нормально рассматривать их как отдельные порты и применять решения о маршрутизации по отдельности.
В этом случае вам нужно будет сделать шлюзом по умолчанию сети контент-фильтр. Это перенаправит весь трафик с любого устройства, подключенного к маршрутизатору, на контент-фильтр. Обычно вы не можете сделать это с домашним маршрутизатором, но вы можете отключить службу DHCP на маршрутизаторе и настроить ее на своем контент-фильтре.
Тогда шлюзом по умолчанию для фильтра контента будет маршрутизатор. Обратите внимание, что пакеты будут входить и выходить из одного и того же интерфейса фильтра контента, но это не должно быть проблемой. Если это Linux-бокс, убедитесь, что он /etc/sysctl.conf
содержит:
net.ipv4.conf.all.send_redirects = 0
Это остановит фильтр контента, сообщающий маршрутизатору о необходимости подключаться напрямую к локальным IP-адресам, если пакеты поступают на его интерфейс, но предназначены для другого IP-адреса в той же сети. Как это будет в вашем случае.
Последняя часть — убедиться, что весь входящий трафик будет поступать в контент-фильтр. Большинство внутренних маршрутизаторов позволяют добавлять статические маршруты. Если вы добавите статический маршрут для всего диапазона вашей внутренней сети — например, 192.168.0.0/24, чтобы перейти к IP-адресу вашего контент-фильтра, это переопределит естественную тенденцию маршрутизатора отправлять пакеты для устройств в сети, к которой он подключен, напрямую этим устройствам. Вместо этого все входящее будет поступать в контент-фильтр.