1

Я опубликовал это на stackoverflow, но это было не по теме.

Я оглянулся и не смог найти ответ на свой вопрос. Я использую Raspberry Pi в качестве интернет-шлюза между моей локальной сетью и двумя глобальными сетями. Вот пример моей цепочки FORWARD в iptables.

Chain FORWARD (policy ACCEPT 541 packets, 164K bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 wifi.usb   all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC 00:11:22:33:44:55
0     0 other.dev  all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC 66:77:88:99:aa:bb
0     0 Local      all  --  *      *       0.0.0.0/0            0.0.0.0/0

Эти устройства переходят на свои собственные цепочки для подсчета байтов и ПРИНЯТЬ. Переход к локальному предположению предполагает перехват любых пакетов не с вышеперечисленных устройств и REJECT WAN, но с разрешением LAN.

Chain Local (0 references)
pkts bytes target     prot opt in     out     source               destination
0     0 ACCEPT     all  --  *      *       192.168.100.0/24       192.168.100.0/24
67  698 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Все пользовательские цепочки для устройств переходят на ACCEPT.

Chain wifi.usb (1 references)
pkts bytes target     prot opt in     out     source               destination
0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Однако при переходе к локальному правилу в FORWARD весь интернет-трафик входит в локальную цепочку и отклоняется. Как я могу по-прежнему использовать локальную цепочку, чтобы ловить неизвестные устройства, не ловя известные?

Редактировать: я забыл упомянуть одну вещь: когда я фильтрую по IP-адресу источника, он работает так, как я хочу, но я предпочитаю фильтровать по MAC-адресу.

1 ответ1

0

Я выяснил, в чем проблема. И это ответило на 2 проблемы, которые у меня были.

Я использую это, чтобы подсчитать байты, которые использует пользователь, а затем переслать его по назначению. Проблема заключалась в том, что использование не складывалось вместе с вопросом выше.

Я забыл включить правило загрузки для каждого правила загрузки. Добавляя эти правила,

277K  330M wifi.usb   all  --  *   *   0.0.0.0/0       192.168.100.3
144K   20M wifi.usb   all  --  *   *   192.168.100.3   0.0.0.0/0       MAC 00:11:22:33:44:55
   0     0 Local      all  --  *   *   0.0.0.0/0       0.0.0.0/0

Поэтому мне все еще приходилось использовать IP-адрес, так как я не могу использовать iptables для указания MAC-адреса назначения. Но с исправлением я все еще могу убедиться, что IP-адрес совпадает с MAC-адресом.

Если у кого-то есть вопросы по этому поводу, я могу попытаться объяснить больше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .