Рейтинг:2

Как заблокировать доступ к Интернету устройств, подключенных к определенному беспроводному интерфейсу?

флаг eg

Я настроил свой маршрутизатор OpenWRT WiFi с двумя беспроводными интерфейсами: wlan0 и wlan0-1. Мой интерфейс WAN Ethernet eth0.2.

Как запретить устройствам, которые подключаются к wlan0-1 от доступа к Интернету, например. с использованием iptables?

Мой контекст заключается в том, что у меня есть некоторые устройства (воздушные фильтры) с доступом к WiFi для поддержки мониторинга и контроля, однако они также загружают данные на облачный сервер, что я хочу предотвратить.

br-lan Link encap:Ethernet HWaddr 70:4F:57:00:51:AE
          инет-адрес: 192.168.1.254 Bcast: 192.168.1.255 Маска: 255.255.255.0
          адрес inet6: fd76:9521:f357::1/60 Область применения: глобальная
          адрес inet6: fe80::724f:57ff:fe00:51ae/64 Область действия: ссылка
          ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
          Пакеты RX: 380362 ошибки: 0 отброшены: 9 превышения: 0 кадр: 0
          Пакеты TX: 1678139 ошибки: 0 отброшены: 0 переполнены: 0 перевозчик: 0
          коллизии: 0 txqueuelen: 1000
          Байты RX: 128540610 (122,5 МиБ) Байты TX: 1235755098 (1,1 ГиБ)

br-wan Link encap:Ethernet HWaddr 70:4F:57:00:51:AF
          инет-адрес: 192.168.178.20 Bcast: 192.168.178.255 Маска: 255.255.255.0
          адрес inet6: fe80::724f:57ff:fe00:51af/64 Область действия: ссылка
          ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
          Пакеты RX: 1684381 ошибки: 0 отброшены: 10354 переполнение: 0 кадр: 0
          Пакеты TX: 369066 ошибки: 0 отброшены: 0 переполнены: 0 перевозчик: 0
          коллизии: 0 txqueuelen: 1000
          Байты RX: 1209960142 (1,1 ГиБ) Байты TX: 132041857 (125,9 МиБ)

Инкапсуляция канала eth0: Ethernet HWaddr 70:4F:57:00:51:AE
          адрес inet6: fe80::724f:57ff:fe00:51ae/64 Область действия: ссылка
          ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
          Пакеты RX: 1809158 ошибки: 0 отброшены: 16 переполнения: 0 кадр: 0
          Пакеты TX: 1611603 ошибки: 1 отброшены: 0 переполнены: 0 перевозчик: 0
          коллизии: 0 txqueuelen: 1000
          Байты RX: 1276777715 (1,1 ГиБ) Байты TX: 1193854987 (1,1 ГиБ)
          Прерывание:5

Инкапсуляция канала eth0.1: Ethernet HWaddr 70:4F:57:00:51:AE
          ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
          Пакеты RX: 106729 ошибки: 0 отброшены: 0 переполнены: 0 кадр: 0
          Пакеты TX: 1218251 ошибки: 0 отброшены: 0 переполнены: 0 перевозчик: 0
          коллизии: 0 txqueuelen: 1000
          Байты RX: 33390921 (31,8 МБ) Байты TX: 1054045465 (1005,2 МБ)

eth0.2 Инкапсуляция канала: Ethernet HWaddr 70:4F:57:00:51:AF
          ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
          Пакеты RX: 1689922 ошибки: 0 отброшены: 349 переполнения: 0 кадр: 0
          Пакеты TX: 393339 ошибки: 0 отброшены: 0 переполнены: 0 перевозчик: 0
          коллизии: 0 txqueuelen: 1000
          Байты RX: 1210230806 (1,1 ГиБ) Байты TX: 133360867 (127,1 МиБ)

lo Link encap: Локальная петля
          инет-адрес: 127.0.0.1 Маска: 255.0.0.0
          адрес inet6: ::1/128 Область: Хост
          UP LOOPBACK RUNNING MTU:65536 Метрика:1
          Пакеты RX: 642 ошибки: 0 отброшены: 0 переполнены: 0 кадр: 0
          Пакеты TX: 642 ошибки: 0 отброшены: 0 переполнены: 0 перевозчик: 0
          коллизии: 0 txqueuelen: 1000
          Байты RX: 56074 (54,7 КБ) Байты TX: 56074 (54,7 КБ)

wlan0 Инкапсуляция канала: Ethernet HWaddr 70:4F:57:00:51:AC
          адрес inet6: fe80::724f:57ff:fe00:51ac/64 Область действия: ссылка
          ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
          Пакеты RX: 293895 ошибки: 0 отброшены: 0 переполнены: 0 кадр: 0
          Пакеты TX: 383702 ошибки: 0 отброшены: 0 переполнены: 0 перевозчик: 0
          коллизии: 0 txqueuelen: 1000
          Байты RX: 99486914 (94,8 МБ) Байты TX: 194289752 (185,2 МБ)

wlan0-1 Инкапсуляция канала: Ethernet HWaddr 72:4F:57:00:51:AC
          адрес inet6: fe80::704f:57ff:fe00:51ac/64 Область действия: ссылка
          ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
          Пакеты RX: 15014 ошибки: 0 отброшены: 0 переполнены: 0 кадр: 0
          Пакеты TX: 12335, ошибки: 0, отброшены: 0, превышения: 0, носитель: 0.
          коллизии: 0 txqueuelen: 1000
          Байты RX: 1962975 (1,8 МБ) Байты TX: 2056310 (1,9 МБ)

Пока мне удалось заблокировать трафик только с отдельных IP-адресов, но это неуклюже:

$ iptables -A forwarding_rule --source 192.168.1.110 --jump reject

Используя интерфейсы ввода и вывода, либо бр-ван или же eth0.2, не работало:

$ iptables -A forwarding_rule -i wlan0-1 -o br-wan --jump reject

РЕДАКТИРОВАТЬ: добавление вывода iptables-сохранить

# Сгенерировано iptables-save v1.8.3, четверг, 7 октября, 21:18:59 2021 г.
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [29740:1906622]
:ВВОД ПРИНЯТЬ [1917:191180]
: ВЫВОД ПРИНЯТ [9468:913173]
:ОТПРАВКА ПРИНЯТИЯ [0:0]
:postrouting_lan_rule - [0:0]
:postrouting_rule - [0:0]
:postrouting_wan_rule - [0:0]
:prerouting_lan_rule - [0:0]
:prerouting_rule - [0:0]
:prerouting_wan_rule - [0:0]
:zone_lan_postrouting - [0:0]
:zone_lan_prerouting - [0:0]
:zone_wan_postrouting - [0:0]
:zone_wan_prerouting - [0:0]
-A PREROUTING -m comment --comment "!fw3: Пользовательская цепочка правил предварительной маршрутизации" -j prerouting_rule
-A PREROUTING -i br-lan -m комментарий --comment "!fw3" -j zone_lan_prerouting
-A PREROUTING -i br-wan -m комментарий --comment "!fw3" -j zone_wan_prerouting
-A PREROUTING -i eth0.2 -m комментарий --comment "!fw3" -j zone_wan_prerouting
-A POSTROUTING -m comment --comment "!fw3: Пользовательская цепочка правил постмаршрутизации" -j postrouting_rule
-A POSTROUTING -o br-lan -m comment --comment "!fw3" -j zone_lan_postrouting
-A POSTROUTING -o br-wan -m comment --comment "!fw3" -j zone_wan_postrouting
-A POSTROUTING -o eth0.2 -m comment --comment "!fw3" -j zone_wan_postrouting
-A zone_lan_postrouting -m comment --comment "!fw3: Пользовательская цепочка правил постмаршрутизации локальной сети" -j postrouting_lan_rule
-A zone_lan_postrouting -m комментарий --comment "!fw3" -j МАСКАРАД
-A zone_lan_prerouting -m comment --comment "!fw3: Пользовательская цепочка правил предварительной маршрутизации локальной сети" -j prerouting_lan_rule
-A zone_wan_postrouting -m comment --comment "!fw3: Пользовательская цепочка правил постмаршрутизации wan" -j postrouting_wan_rule
-A zone_wan_postrouting -m комментарий --comment "!fw3" -j МАСКАРАД
-A zone_wan_prerouting -m comment --comment "!fw3: Пользовательская цепочка правил предварительной маршрутизации wan" -j prerouting_wan_rule
СОВЕРШИТЬ
# Завершено в четверг, 7 октября, 21:18:59 2021 г.
# Сгенерировано iptables-save v1.8.3, четверг, 7 октября, 21:18:59 2021 г.
* калечить
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [408155:279582022]
:ВВОД ПРИНЯТЬ [31411:6614761]
:ВПЕРЕД ПРИНЯТЬ [376252:272911158]
: ВЫВОД ПРИНЯТ [51318:6113468]
:ОТПРАВКА ПРИНЯТИЯ [402428:277911525]
-A FORWARD -o br-wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "!fw3: Фиксация MTU wan зоны" -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i br-wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "!fw3: Фиксация MTU wan зоны" -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o eth0.2 -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "!fw3: Zone wan MTU fixing" -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i eth0.2 -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "!fw3: Zone wan MTU fixing" -j TCPMSS --clamp-mss-to-pmtu
СОВЕРШИТЬ
# Завершено в четверг, 7 октября, 21:18:59 2021 г.
# Сгенерировано iptables-save v1.8.3, четверг, 7 октября, 21:18:59 2021 г.
*фильтр
:ВВОД ПРИНЯТЬ [0:0]
:ВПЕРЕД КАПИТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
:forwarding_lan_rule - [0:0]
:forwarding_rule - [0:0]
:forwarding_wan_rule - [0:0]
:input_lan_rule - [0:0]
:input_rule - [0:0]
:input_wan_rule - [0:0]
:output_lan_rule - [0:0]
:output_rule - [0:0]
:output_wan_rule - [0:0]
: отклонить - [0:0]
:syn_flood - [0:0]
:zone_lan_dest_ACCEPT - [0:0]
:zone_lan_forward - [0:0]
:zone_lan_input - [0:0]
:zone_lan_output - [0:0]
:zone_lan_src_ACCEPT - [0:0]
:zone_wan_dest_ACCEPT - [0:0]
:zone_wan_forward - [0:0]
:zone_wan_input - [0:0]
:zone_wan_output - [0:0]
:zone_wan_src_REJECT - [0:0]
-A ВВОД -i lo -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A INPUT -m comment --comment "!fw3: Пользовательская цепочка правил ввода" -j input_rule
-A ВВОД -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m комментарий --comment "!fw3" -j syn_flood
-A ВХОД -i br-lan -m комментарий --comment "!fw3" -j zone_lan_input
-A ВХОД -i br-wan -m комментарий --comment "!fw3" -j zone_wan_input
-A ВХОД -i eth0.2 -m комментарий --comment "!fw3" -j zone_wan_input
-A FORWARD -m комментарий --comment "!fw3: Пользовательская цепочка правил переадресации" -j forwarding_rule
-A FORWARD -m conntrack --ctstate СВЯЗАННО,УСТАНОВЛЕНО -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A FORWARD -i br-lan -m комментарий --comment "!fw3" -j zone_lan_forward
-A FORWARD -i br-wan -m комментарий --comment "!fw3" -j zone_wan_forward
-A FORWARD -i eth0.2 -m комментарий --comment "!fw3" -j zone_wan_forward
-A ВПЕРЕД -m комментарий --comment "!fw3" -j отклонить
-A ВЫВОД -o lo -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A ВЫВОД -m комментарий --comment "!fw3: Пользовательская цепочка правил вывода" -j output_rule
-A ВЫВОД -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A ВЫВОД -o br-lan -m комментарий --comment "!fw3" -j zone_lan_output
-A ВЫВОД -o br-wan -m комментарий --comment "!fw3" -j zone_wan_output
-A ВЫВОД -o eth0.2 -m комментарий --comment "!fw3" -j zone_wan_output
-A forwarding_rule -s 192.168.1.110/32 -j отклонить
-A forwarding_rule -s 192.168.1.111/32 -j отклонить
-A отклонить -p tcp -m комментарий --comment "!fw3" -j ОТКЛОНИТЬ --отклонить-со сбросом tcp
-A отклонить -m комментарий --комментарий "!fw3" -j ОТКЛОНИТЬ --отклонить-с icmp-порт-недоступен
-A syn_flood -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 25/sec --limit-burst 50 -m comment --comment "!fw3" -j RETURN
-A syn_flood -m комментарий --comment "!fw3" -j УДАЛИТЬ
-A zone_lan_dest_ACCEPT -o br-lan -m conntrack --ctstate INVALID -m comment --comment "!fw3: Предотвратить утечку NAT" -j DROP
-A zone_lan_dest_ACCEPT -o br-lan -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A zone_lan_forward -m comment --comment "!fw3: Пользовательская цепочка правил переадресации локальной сети" -j forwarding_lan_rule
-A zone_lan_forward -m comment --comment "!fw3: политика переадресации LAN в wan зоны" -j zone_wan_dest_ACCEPT
-A zone_lan_forward -m conntrack --ctstate DNAT -m comment --comment "!fw3: Принять перенаправление портов" -j ПРИНЯТЬ
-A zone_lan_forward -m комментарий --comment "!fw3" -j zone_lan_dest_ACCEPT
-A zone_lan_input -m comment --comment "!fw3: Пользовательская цепочка правил ввода lan" -j input_lan_rule
-A zone_lan_input -m conntrack --ctstate DNAT -m comment --comment "!fw3: Принять перенаправление портов" -j ПРИНЯТЬ
-A zone_lan_input -m комментарий --comment "!fw3" -j zone_lan_src_ACCEPT
-A zone_lan_output -m comment --comment "!fw3: Пользовательская цепочка правил вывода локальной сети" -j output_lan_rule
-A zone_lan_output -m комментарий --comment "!fw3" -j zone_lan_dest_ACCEPT
-A zone_lan_src_ACCEPT -i br-lan -m conntrack --ctstate NEW,UNTRACKED -m comment --comment "!fw3" -j ACCEPT
-A zone_wan_dest_ACCEPT -o br-wan -m conntrack --ctstate INVALID -m comment --comment "!fw3: Предотвратить утечку NAT" -j DROP
-A zone_wan_dest_ACCEPT -o br-wan -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A zone_wan_dest_ACCEPT -o eth0.2 -m conntrack --ctstate INVALID -m comment --comment "!fw3: Предотвратить утечку NAT" -j DROP
-A zone_wan_dest_ACCEPT -o eth0.2 -m комментарий --comment "!fw3" -j ПРИНЯТЬ
-A zone_wan_forward -m comment --comment "!fw3: Пользовательская цепочка правил переадресации wan" -j forwarding_wan_rule
-A zone_wan_forward -p esp -m comment --comment "!fw3: Allow-IPSec-ESP" -j zone_lan_dest_ACCEPT
-A zone_wan_forward -p udp -m udp --dport 500 -m comment --comment "!fw3: Allow-ISAKMP" -j zone_lan_dest_ACCEPT
-A zone_wan_forward -m comment --comment "!fw3: политика переадресации wan-to-lan зоны" -j zone_lan_dest_ACCEPT
-A zone_wan_forward -m conntrack --ctstate DNAT -m comment --comment "!fw3: Принять перенаправление портов" -j ПРИНЯТЬ
-A zone_wan_forward -m комментарий --comment "!fw3" -j zone_wan_dest_ACCEPT
-A zone_wan_input -m comment --comment "!fw3: Пользовательская цепочка правил ввода wan" -j input_wan_rule
-A zone_wan_input -p udp -m udp --dport 68 -m comment --comment "!fw3: Allow-DHCP-Renew" -j ACCEPT
-A zone_wan_input -p icmp -m icmp --icmp-type 8 -m comment --comment "!fw3: Разрешить Ping" -j ПРИНЯТЬ
-A zone_wan_input -p igmp -m comment --comment "!fw3: Разрешить-IGMP" -j ПРИНЯТЬ
-A zone_wan_input -m conntrack --ctstate DNAT -m comment --comment "!fw3: Принять перенаправление портов" -j ПРИНЯТЬ
-A zone_wan_input -m комментарий --comment "!fw3" -j zone_wan_src_REJECT
-A zone_wan_output -m comment --comment "!fw3: Пользовательская цепочка выходных правил wan" -j output_wan_rule
-A zone_wan_output -m комментарий --comment "!fw3" -j zone_wan_dest_ACCEPT
-A zone_wan_src_REJECT -i br-wan -m комментарий --comment "!fw3" -j отклонить
-A zone_wan_src_REJECT -i eth0.2 -m комментарий --comment "!fw3" -j отклонить
СОВЕРШИТЬ
# Завершено в четверг, 7 октября, 21:18:59 2021 г.

РЕДАКТИРОВАТЬ: добавление вывода uci экспортный брандмауэр

пакетный брандмауэр

настройки по умолчанию
        опция syn_flood '1'
        вариант ввода «ПРИНЯТЬ»
        вариант вывода «ПРИНЯТЬ»
        вариант вперед 'ОТКЛОНИТЬ'

зона конфигурации
        имя опции 'lan'
        вариант ввода «ПРИНЯТЬ»
        вариант вывода «ПРИНЯТЬ»
        вариант вперед «ПРИНЯТЬ»
        Маска опции '1'
        опциональная сеть 'lan'

зона конфигурации
        имя опции 'wan'
        вариант ввода 'ОТКЛОНИТЬ'
        вариант вывода «ПРИНЯТЬ»
        Маска опции '1'
        опция mtu_fix '1'
        вариант вперед «ПРИНЯТЬ»
        опция сети 'wan wan6 wwan1 wwan'

переадресация конфигурации
        опция src 'lan'
        option dest 'ван'

правило конфигурации
        имя параметра «Разрешить-DHCP-Renew»
        опция src 'wan'
        вариант прото 'udp'
        опция dest_port '68'
        вариант цели «ПРИНЯТЬ»
        семейство опций 'ipv4'

правило конфигурации
        имя параметра «Разрешить пинг»
        опция src 'wan'
        вариант прототипа 'icmp'
        опция icmp_type 'эхо-запрос'
        семейство опций 'ipv4'
        вариант цели «ПРИНЯТЬ»

правило конфигурации
        имя параметра «Разрешить-IGMP»
        опция src 'wan'
        опция proto 'igmp'
        семейство опций 'ipv4'
        вариант цели «ПРИНЯТЬ»

правило конфигурации
        имя параметра «Разрешить-DHCPv6»
        опция src 'wan'
        вариант прото 'udp'
        опция src_ip 'fc00::/6'
        опция dest_ip 'fc00::/6'
        опция dest_port '546'
        семейство опций 'ipv6'
        вариант цели «ПРИНЯТЬ»

правило конфигурации
        имя параметра «Разрешить-MLD»
        опция src 'wan'
        вариант прототипа 'icmp'
        опция src_ip 'fe80::/10'
        список icmp_type '130/0'
        список icmp_type '131/0'
        список icmp_type '132/0'
        список icmp_type '143/0'
        семейство опций 'ipv6'
        вариант цели «ПРИНЯТЬ»

правило конфигурации
        имя параметра «Разрешить ввод ICMPv6»
        опция src 'wan'
        вариант прототипа 'icmp'
        list icmp_type 'эхо-запрос'
        list icmp_type 'эхо-ответ'
        list icmp_type 'пункт назначения недостижим'
        list icmp_type 'слишком большой пакет'
        список icmp_type 'время истекло'
        список icmp_type 'плохой заголовок'
        список icmp_type 'неизвестный тип заголовка'
        list icmp_type 'запрос маршрутизатора'
        list icmp_type 'запрос соседей'
        list icmp_type 'реклама-маршрутизатора'
        список icmp_type 'соседская реклама'
        ограничение опции «1000/сек»
        семейство опций 'ipv6'
        вариант цели «ПРИНЯТЬ»

правило конфигурации
        имя параметра «Разрешить-ICMPv6-Forward»
        опция src 'wan'
        пункт назначения '*'
        вариант прототипа 'icmp'
        list icmp_type 'эхо-запрос'
        list icmp_type 'эхо-ответ'
        list icmp_type 'пункт назначения недостижим'
        list icmp_type 'слишком большой пакет'
        список icmp_type 'время истекло'
        список icmp_type 'плохой заголовок'
        список icmp_type 'неизвестный тип заголовка'
        ограничение опции «1000/сек»
        семейство опций 'ipv6'
        вариант цели «ПРИНЯТЬ»

правило конфигурации
        имя параметра «Разрешить-IPSec-ESP»
        опция src 'wan'
        опция назначения 'lan'
        опция прото 'esp'
        вариант цели «ПРИНЯТЬ»

правило конфигурации
        имя параметра «Разрешить-ISAKMP»
        опция src 'wan'
        опция назначения 'lan'
        опция dest_port '500'
        вариант прото 'udp'
        вариант цели «ПРИНЯТЬ»

конфигурация включает
        вариант пути '/etc/firewall.user'

переадресация конфигурации
        опция назначения 'lan'
        опция src 'wan'

РЕДАКТИРОВАТЬ: Добавление вывода IP-ссылка:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние НЕИЗВЕСТНО qlen 1000
    ссылка/эфир 70:4f:57:00:51:ae brd ff:ff:ff:ff:ff:ff
5: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    ссылка/эфир 70:4f:57:00:51:ae brd ff:ff:ff:ff:ff:ff
6: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    ссылка/эфир 70:4f:57:00:51:ae brd ff:ff:ff:ff:ff:ff
7: br-wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    ссылка/эфир 70:4f:57:00:51:af brd ff:ff:ff:ff:ff:ff
8: eth0.2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-wan состояние UP qlen 1000
    ссылка/эфир 70:4f:57:00:51:af brd ff:ff:ff:ff:ff:ff
9: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    ссылка/эфир 70:4f:57:00:51:ac brd ff:ff:ff:ff:ff:ff
10: wlan0-1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    ссылка/эфир 72:4f:57:00:51:ac brd ff:ff:ff:ff:ff:ff

РЕДАКТИРОВАТЬ: Добавление вывода brctl-шоу:

имя моста идентификатор моста интерфейсы с поддержкой STP
br-lan 7fff.704f570051ae нет eth0.1
                                                        wlan0
                                                        wlan0-1
br-wan 7fff.704f570051af без eth0.2
флаг us
Пожалуйста, добавьте вывод `iptables-save` к вашему вопросу.
флаг cn
Вы можете использовать cli или веб-интерфейс luci для настройки брандмауэра в OpenWRT: https://openwrt.org/docs/guide-user/firewall/firewall_configuration Пожалуйста, добавьте также вывод `uci export firewall`
флаг eg
@MirceaVutcovici Я просмотрел интерфейс luci, чтобы отредактировать брандмауэр, но не вижу, как отбросить трафик с интерфейса WiFi, предназначенный для интерфейса WAN.
флаг eg
@A.B У меня не установлен `bridge`, и команда `ip link show` не принимает параметр `type`. `ip` предоставляется BusyBox v1.30.1.
флаг eg
@A.B Самое близкое, что у меня есть, это `ip neigh show` Это помогает?
Рейтинг:3
флаг cl
A.B

OpenWRT работает под управлением ядра Linux, но в качестве встроенной системы некоторые функции могут быть недоступны, поэтому я не могу знать, будет ли работать на ней этот ответ, предназначенный для работы в системе Linux с конфигурацией, аналогичной OP. Это требует:

и в зависимости от выбранного решения для этого также могут потребоваться некоторые из следующих элементов:

В конце концов, система маршрутизирует пакеты от бр-лан интерфейс к бр-ван интерфейс. На этом шаге тот факт, что Рамка вошел бр-лан интерфейс с помощью wlan0-1 интерфейс мост порт был потерян, как только кадр покинул начальный мост для маршрутизации полезной нагрузки: IPv4. Таким образом, начальное действие должно произойти до того, как эта информация будет потеряна: в пути моста, когда кадр все еще находится в бр-лан мост.

Документация может намекнуть (упоминается мост) можно управлять брандмауэром моста с помощью приложения брандмауэра OpenWRT, но я ничего не знаю об этой части. Поэтому я буду использовать напрямую блюда.

Если можно полагаться на знание топологии IP LAN на бр-лан (192.168.1.0/24) то это все можно сделать просто в один единственный блюда правило:

ebtables -A INPUT -p IPv4 -i wlan0-1 --ip-dst ! 192.168.1.0/24 -j СБРОС

который отбрасывает любой кадр IPv4, полученный от wlan0-1 порт моста и подключен к хосту (возможно, для него или для дальнейшей маршрутизации), который не имеет IP-адреса назначения в пределах 192.168.1.0/24.

При желании можно вставить перед исключением для общедоступного IP-адреса OpenWRT, если он статичен и известен заранее (например: 192.0.2.2):

ebtables -I ВВОД -p IPv4 -i wlan0-1 --ip-dst 192.0.2.2 -j ПРИНЯТЬ

Если это нормально, нет необходимости использовать следующую альтернативу.


В противном случае, если правило должно оставаться универсальным, не затрагивая также IP-адреса локальной сети, а только интерфейсы (или необходимо принимать в качестве назначения IP-адрес глобальной сети, не зная его значения), должна быть задействована маршрутизация, и я предлагаю пометить кадр с помощью блюда в пути моста, где информация доступна, прямо перед маршрутизацией полезной нагрузки кадра (IPv4), а затем отбрасывать позже отмеченный пакет/кадр, когда он уверен, что он был направлен в Интернет. Метка сохраняется при декапсуляции кадров или инкапсуляции пакетов. текущий ОП iptables правила не используют никакие метки, так что, скорее всего, нежелательных взаимодействий не будет.

Как и в случае OP, исходящий интерфейс, используемый для маршрутизации, также является мостом (бр-ван), чтобы ограничить взаимодействие с инструментом более высокого уровня (брандмауэр3) управление брандмауэром с помощью iptables, можно отбрасывать помеченный кадр на пути моста вместо того, чтобы отбрасывать помеченный пакет на пути маршрутизации: никакого взаимодействия с iptables правила.

Поток из локальной сети в Интернет выглядит следующим образом:

                                            â â â â eth0.1 â â â â â хорошо
плохо â â wlan0-1 â â â br-lan мост â â â wlan0 â â â â хорошо
                                 ✓
                                 ✓
                      ВХОД фрейма Ethernet (здесь брандмауэр ebtables)
кадр помечен, когда из wlan0-1 M
                                 ✓ 
                                 
                               кадр br-lan декапсулирован в
                           собственный интерфейс IPv4. Марка сохранена
                                 ✓
                                 ✓
                         Маршрутизация пакетов IPv4 (брандмауэр iptables здесь)
                                 ✓
                                 ✓
                                  
                               Пакет br-wan инкапсулирован в
                           собственный интерфейс Ethernet. Марка сохранена
                                 ✓
                                 ✓
                      ВЫВОД кадра Ethernet (здесь ebtables firewall)
      кадр отбрасывается, если отмечен X
                                 ✓
                                 
                           мост br-wan ââââââ eth0.2 ââââââ Интернет

Это пометит кадры, полученные от wlan0-1 порт моста:

ebtables -A INPUT -i wlan0-1 -j mark --mark-set 0xbad

Затем это будет совпадать и отбрасываться при передаче с хоста через бр-ван соединить кадр/пакет, ранее помеченный:

ebtables -A ВЫВОД --logical-out br-wan --mark 0xbad -j DROP

Если --логический выход по какой-то причине недоступен, при текущей топологии его можно изменить на бр-ванединственный выходной порт моста:

ebtables -A ВЫВОД -o eth0.2 --mark 0xbad -j DROP

В этом случае, когда пакет входит в стек маршрутизации и выходит из него, коннтрек создаст для него запись, даже если она будет удалена сразу после этого. Такая запись никогда не достигнет состояния ESTABLISHED, поскольку никто не получит этот пакет и не ответит (см. также примечания).


Примечания:

  • если OpenWRT настроен на две отдельные локальные сети (без мостов или на отдельных мостах, каждый из которых участвует в маршрутизации), одна для wlan0 и eth0.1 и еще один для wlan0-1 с разными IP-адресами, то стандартная маршрутизация применялась бы везде, и эту проблему можно было бы легко решить за один раз. iptables возможно с конфигурацией в брандмауэр3 и с блюда не требуется.

  • Текущий iptables правила предполагают eth0.2 может использоваться (или использоваться) в качестве стандартного (не мостового) интерфейса. Если бы это было так, второе решение пришлось бы изменить и включить эквивалентное правило в iptables которые должны быть интегрированы в брандмауэр3 если возможно. Его также можно использовать для бр-ван (но опять же стоит только если интеграция с брандмауэр3 возможно):

    Это правило в настоящее время может работать вместо блюда ВЫВОД правило выше:

    iptables -I FORWARD -o br-wan -m mark --mark 0xbad -j DROP
    

    а с eth0.2 напрямую интерфейс маршрутизации вместо порта моста:

    iptables -I FORWARD -o eth0.2 -m mark --mark 0xbad -j DROP
    

    Оба могут быть поставлены одновременно, как, по-видимому, в настоящее время делается в других iptables правила с бр-ван и eth0.2.

    Здесь, поскольку пакет отбрасывается на пути маршрутизации с iptables, коннтрек запись не будет зафиксирована и не появится (например: кот /proc/net/nf_conntrack не показывает попытку).

  • С использованием iptables на пути моста, опираясь на br_netfilter функций обычно является плохой идеей, когда нет полного контроля над конфигурацией, и отключен по умолчанию в OpenWRT. Так iptables' физдев match, который зависит от этой функции, не должен использоваться (и, вероятно, недоступен) для решения этой проблемы.

  • Поскольку это не сохраняет состояние, входящий трафик из Интернета в систему, использующую wlan0-1 будет по-прежнему разрешено, но ответ будет невозможен.В любом случае, поскольку локальная сеть является частной, для этой возможности потребуются правила DNAT в брандмауэре (или для второго решения, где коннтрек записи по-прежнему создаются, удаленная третья сторона слепо синхронизируется с пропущенными попытками). Можно также отбросить обратное направление: интернет-трафик на wlan0-1 используя те же методы, что и представлены, если это действительно необходимо.

A.B avatar
флаг cl
A.B
Теперь задумался: метод с использованием меток all с ebtables также работает из коробки для IPv6.
флаг eg
Я позабочусь об установке ebtables и попробую!
флаг eg
Поскольку я контролирую назначение IP-адресов, я могу использовать простое правило `ebtables -A INPUT -p IPv4 -i wlan0-1 --ip-dst ! 192.168.1.0/24 -j DROP`, и это работает. Спасибо за подробное объяснение. Я уверен, что это принесет пользу мне в будущем (и другим уже).
флаг eg
Я должен попробовать другие ваши предложения, при использовании простого правила мои устройства не могут получать ответы на запросы DHCP, что странно, поскольку сервер DHCP находится в той же подсети (192.168.1.254). Возможно, это связано с тем, что DHCP-запросы широковещательные...
A.B avatar
флаг cl
A.B
клиент DHCP, выполняющий обнаружение DHCP, отправляет его на 255.255.255.255: этот адрес должен быть вставлен как исключение (как в примере с 192.0.2.2).
A.B avatar
флаг cl
A.B
В любом случае, если подумать, другие адреса будут иметь проблемы в зависимости от устройств: IPv4LL и многоадресная рассылка. Таким образом, вы можете взглянуть на другой вариант, который является более общим по своему результату (и заблокирует IPv6 по той же цене).
флаг eg
По какой-то причине мне пришлось использовать `ebtables -A OUTPUT -o eth0.2 --mark 0xbad -j DROP`. Использование `ebtables -A OUTPUT --logical-out br-wan --mark 0xbad -j DROP` не сработало — я не смог получить доступ к другим устройствам во внутренней сети.
флаг eg
Я говорил слишком рано. Чтобы получить полную функциональность, включая MQTT и SMB, для устройств, подключающихся к wlan0-1, мне пришлось использовать `ebtables -A INPUT -i wlan0-1 -j mark --mark-set 0xbad` в сочетании с правилами `iptables`: `iptables -I FORWARD -o br-wan -m mark --mark 0xbad -j DROP` и `iptables -I FORWARD -o eth0.2 -m mark --mark 0xbad -j DROP`.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.