Puncte:2

Cum să blochezi accesul la internet dispozitivelor care se conectează la o anumită interfață wireless?

drapel eg

Mi-am configurat routerul WiFi OpenWRT cu două interfețe wireless: wlan0 și wlan0-1. Interfața mea ethernet WAN este eth0.2.

Cum împiedic dispozitivele care se conectează la wlan0-1 de la accesarea internetului, de ex. folosind iptables?

Contextul meu este că am unele dispozitive (filtre de aer) cu acces WiFi pentru a sprijini monitorizarea și controlul, dar încărcă și date pe un server cloud, ceea ce vreau să previn.

br-lan Link encap:Ethernet HWaddr 70:4F:57:00:51:AE
          inet adresa:192.168.1.254 Bcast:192.168.1.255 Masca:255.255.255.0
          inet6 adresa: fd76:9521:f357::1/60 Domeniu de aplicare:Global
          inet6 adresa: fe80::724f:57ff:fe00:51ae/64 Domeniu de aplicare:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:380362 erori:0 scăpat:9 depășiri:0 cadru:0
          Pachete TX:1678139 erori:0 scăpat:0 depășiri:0 transportator:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 128540610 (122,5 MiB) Octeți TX: 1235755098 (1,1 GiB)

br-wan Link cap: Ethernet HWaddr 70:4F:57:00:51:AF
          inet adresa:192.168.178.20 Bcast:192.168.178.255 Masca:255.255.255.0
          inet6 adresa: fe80::724f:57ff:fe00:51af/64 Domeniu de aplicare:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:1684381 erori:0 dropped:10354 overruns:0 frame:0
          Pachete TX:369066 erori:0 dropped:0 overruns:0 carrier:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 1209960142 (1,1 GiB) Octeți TX: 132041857 (125,9 MiB)

eth0 Link Encap:Ethernet HWaddr 70:4F:57:00:51:AE
          inet6 adresa: fe80::724f:57ff:fe00:51ae/64 Domeniu de aplicare:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:1809158 erori:0 scăpat:16 depășiri:0 cadru:0
          Pachete TX:1611603 erori:1 scăpat:0 depășiri:0 transportator:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 1276777715 (1,1 GiB) Octeți TX: 1193854987 (1,1 GiB)
          Întreruperea: 5

eth0.1 Link encap:Ethernet HWaddr 70:4F:57:00:51:AE
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:106729 erori:0 scăpat:0 depășiri:0 cadru:0
          Pachete TX:1218251 erori:0 scăpat:0 depășiri:0 transportator:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 33390921 (31,8 MiB) Octeți TX: 1054045465 (1005,2 MiB)

eth0.2 Link Encap:Ethernet HWaddr 70:4F:57:00:51:AF
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:1689922 erori:0 dropped:349 overruns:0 frame:0
          Pachete TX:393339 erori:0 dropped:0 overruns:0 carrier:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 1210230806 (1,1 GiB) Octeți TX: 133360867 (127,1 MiB)

lo Link encap:Loopback local
          inet addr:127.0.0.1 Masca:255.0.0.0
          inet6 addr: ::1/128 Scop:Host
          UP LOOPBACK RUNNING MTU:65536 Metric:1
          Pachete RX:642 erori:0 dropped:0 overruns:0 frame:0
          Pachete TX:642 erori:0 dropped:0 overruns:0 carrier:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 56074 (54,7 KiB) Octeți TX: 56074 (54,7 KiB)

wlan0 Link Encap: Ethernet HWaddr 70:4F:57:00:51:AC
          inet6 adresa: fe80::724f:57ff:fe00:51ac/64 Domeniu de aplicare:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:293895 erori:0 scăpat:0 depășiri:0 cadru:0
          Pachete TX:383702 erori:0 dropped:0 overruns:0 carrier:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 99486914 (94,8 MiB) Octeți TX: 194289752 (185,2 MiB)

wlan0-1 Link Encap: Ethernet HWaddr 72:4F:57:00:51:AC
          inet6 adresa: fe80::704f:57ff:fe00:51ac/64 Domeniu de aplicare:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:15014 erori:0 dropped:0 overruns:0 frame:0
          Pachete TX:12335 erori:0 scăpat:0 depășiri:0 transportator:0
          coliziuni:0 txqueuelen:1000
          Octeți RX: 1962975 (1,8 MiB) Octeți TX: 2056310 (1,9 MiB)

Până acum am reușit să blochez doar traficul de la adrese IP individuale, dar acest lucru este neîndemânatic:

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

Folosind interfețele de intrare și de ieșire, fie br-wan sau eth0.2, Nu a mers:

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

EDITARE: Adăugarea ieșirii de iptables-salvare

# Generat de iptables-save v1.8.3 pe Thu Oct 7 21:18:59 2021
*nat
:ACCEPTAREA PRE-ROUTARE [29740:1906622]
:INPUT ACCEPT [1917:191180]
: ACCEPT IEȘIRE [9468:913173]
: POSTROUTING ACCEPT [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: Lanț de reguli personalizate de prerouting” -j prerouting_rule
-A PREROUTING -i br-lan -m comment --comment "!fw3" -j zone_lan_prerouting
-A PREROUTING -i br-wan -m comment --comment "!fw3" -j zone_wan_prerouting
-A PREROUTING -i eth0.2 -m comment --comment "!fw3" -j zone_wan_prerouting
-A POSTROUTING -m comment --comment „!fw3: Lanț personalizat de reguli de postrouting” -j postrouting_rule
-A POSTROUTING -o br-lan -m comment --comment "!fw3" -j zone_lan_postrouting
-A POSTROUTING -o br-wan -m comment --comentare „!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: Lanț personalizat de reguli de postrouting lan” -j postrouting_lan_rule
-A zone_lan_postrouting -m comment --comment "!fw3" -j MASQUERADE
-A zone_lan_prerouting -m comment --comment „!fw3: Lanț personalizat de reguli de prerouting lan” -j prerouting_lan_rule
-A zone_wan_postrouting -m comment --comment „!fw3: Lanț personalizat de reguli de postrouting wan” -j postrouting_wan_rule
-A zone_wan_postrouting -m comment --comment "!fw3" -j MASQUERADE
-A zone_wan_prerouting -m comment --comment „!fw3: Lanț personalizat de reguli de prerouting wan” -j prerouting_wan_rule
COMMIT
# Finalizat joi, 7 octombrie 21:18:59 2021
# Generat de iptables-save v1.8.3 pe Thu Oct 7 21:18:59 2021
*calandru
:ACCEPTAREA PRE-ROUTARE [408155:279582022]
:INPUT ACCEPT [31411:6614761]
:ACCEPTAȚI înainte [376252:272911158]
: ACCEPT IEȘIRE [51318:6113468]
: POSTROUTING ACCEPT [402428:277911525]
-A FORWARD -o br-wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m comentariu --comentare „!fw3: Remedierea zonei wan MTU” -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i br-wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m comentariu --comentare „!fw3: Remedierea zonei wan MTU” -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o eth0.2 -p tcp -m tcp --tcp-flags SYN,RST SYN -m comentariu --comentare „!fw3: Remedierea zonei wan MTU” -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i eth0.2 -p tcp -m tcp --tcp-flags SYN,RST SYN -m comentariu --comentare „!fw3: Remedierea zonei wan MTU” -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Finalizat joi, 7 octombrie 21:18:59 2021
# Generat de iptables-save v1.8.3 pe Thu Oct 7 21:18:59 2021
*filtru
:INPUT ACCEPT [0:0]
: FORWARD DROP [0:0]
: ACCEPT IEȘIRE [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]
:reject - [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 INPUT -i lo -m comment --comment "!fw3" -j ACCEPT
-A INPUT -m comment --comment „!fw3: Lanț de reguli de introducere personalizate” -j regulă_input
-A INPUT -m conntrack --ctstate RELATED,STABLISHED -m comment --comment "!fw3" -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m comentariu --coment "!fw3" -j syn_flood
-A INPUT -i br-lan -m comment --comment "!fw3" -j zone_lan_input
-A INPUT -i br-wan -m comment --comment "!fw3" -j zone_wan_input
-A INPUT -i eth0.2 -m comment --comment "!fw3" -j zone_wan_input
-A FORWARD -m comment --comment „!fw3: Lanț de reguli de redirecționare personalizate” -j forwarding_rule
-A FORWARD -m conntrack --ctstate RELATED,STABLISHED -m comentariu --comentare "!fw3" -j ACCEPT
-A FORWARD -i br-lan -m comment --comment "!fw3" -j zone_lan_forward
-A FORWARD -i br-wan -m comment --comment "!fw3" -j zone_wan_forward
-A FORWARD -i eth0.2 -m comment --comment "!fw3" -j zone_wan_forward
-A FORWARD -m comentariu --comentare "!fw3" -j respingere
-A IEȘIRE -o lo -m comentariu --comentare "!fw3" -j ACCEPT
-A OUTPUT -m comment --comment „!fw3: Lanț de reguli de ieșire personalizate” -j output_rule
-A OUTPUT -m conntrack --ctstate RELATED,STABLISHED -m comment --comentare "!fw3" -j ACCEPT
-A IEȘIRE -o br-lan -m comentariu --comentare „!fw3” -j zone_lan_output
-A IEȘIRE -o br-wan -m comentariu --comentare „!fw3” -j zone_wan_output
-A IEȘIRE -o eth0.2 -m comentariu --comentare „!fw3” -j zone_wan_output
-A forwarding_rule -s 192.168.1.110/32 -j respinge
-A forwarding_rule -s 192.168.1.111/32 -j respinge
-O respingere -p tcp -m comentariu --comentare "!fw3" -j REJECT --reject-cu tcp-resetare
-Un respingere -m comentariu --comment "!fw3" -j REJECT --reject-with icmp-port-unreachable
-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
-Un comentariu syn_flood -m --comment "!fw3" -j DROP
-A zone_lan_dest_ACCEPT -o br-lan -m conntrack --ctstate INVALID -m comment --comment „!fw3: Preveniți scurgerea NAT” -j DROP
-A zone_lan_dest_ACCEPT -o br-lan -m comment --comment "!fw3" -j ACCEPT
-A zone_lan_forward -m comment --comment „!fw3: Lanț de reguli de redirecționare lan personalizat” -j forwarding_lan_rule
-A zone_lan_forward -m comment --comment „!fw3: Politica de redirecționare a zonei lan to wan” -j zone_wan_dest_ACCEPT
-A zone_lan_forward -m conntrack --ctstate DNAT -m comment --comment "!fw3: Accept port forwards" -j ACCEPT
-A zone_lan_forward -m comentariu --comentare „!fw3” -j zone_lan_dest_ACCEPT
-A zone_lan_input -m comment --comment „!fw3: Lanț personalizat de reguli de intrare lan” -j input_lan_rule
-A zone_lan_input -m conntrack --ctstate DNAT -m comentariu --comentare „!fw3: Acceptați redirecționări port” -j ACCEPT
-A zone_lan_input -m comentariu --comentare „!fw3” -j zone_lan_src_ACCEPT
-A zone_lan_output -m comment --comment „!fw3: Lanț personalizat de reguli de ieșire lan” -j output_lan_rule
-A zone_lan_output -m comment --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: Preveniți scurgerea NAT” -j DROP
-A zone_wan_dest_ACCEPT -o br-wan -m comment --comment "!fw3" -j ACCEPT
-A zone_wan_dest_ACCEPT -o eth0.2 -m conntrack --ctstate INVALID -m comment --comment „!fw3: Preveniți scurgerea NAT” -j DROP
-A zone_wan_dest_ACCEPT -o eth0.2 -m comment --comment "!fw3" -j ACCEPT
-A zone_wan_forward -m comment --comment „!fw3: Lanț de reguli de redirecționare wan personalizat” -j forwarding_wan_rule
-A zone_wan_forward -p esp -m comentariu --comentare „!fw3: Allow-IPSec-ESP” -j zone_lan_dest_ACCEPT
-A zone_wan_forward -p udp -m udp --dport 500 -m comentariu --comentare „!fw3: Allow-ISAKMP” -j zone_lan_dest_ACCEPT
-A zone_wan_forward -m comment --comment „!fw3: Politica de redirecționare a zonei wan către lan” -j zone_lan_dest_ACCEPT
-A zone_wan_forward -m conntrack --ctstate DNAT -m comment --comment "!fw3: Accept port forwards" -j ACCEPT
-A zone_wan_forward -m comentariu --comentare „!fw3” -j zone_wan_dest_ACCEPT
-A zone_wan_input -m comment --comment „!fw3: Lanț de reguli de intrare wan personalizate” -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 comentariu --comentare „!fw3: Allow-Ping” -j ACCEPT
-A zone_wan_input -p igmp -m comentariu --comentare „!fw3: Allow-IGMP” -j ACCEPT
-A zone_wan_input -m conntrack --ctstate DNAT -m comment --comment "!fw3: Acceptați redirecționări port" -j ACCEPT
-O zonă_wan_input -m comentariu --comentare „!fw3” -j zone_wan_src_REJECT
-A zone_wan_output -m comment --comment „!fw3: Lanț de reguli de ieșire wan personalizat” -j output_wan_rule
-A zone_wan_output -m comment --comment „!fw3” -j zone_wan_dest_ACCEPT
-A zone_wan_src_REJECT -i br-wan -m comment --comment "!fw3" -j respinge
-A zone_wan_src_REJECT -i eth0.2 -m comment --comment "!fw3" -j respinge
COMMIT
# Finalizat joi, 7 octombrie 21:18:59 2021

EDITARE: Adăugarea ieșirii de uci export firewall

firewall pachet

valorile implicite de configurare
        opțiunea syn_flood „1”
        opțiunea de intrare „ACCEPT”
        ieșire opțiune „ACCEPT”
        opțiunea înainte „RESPING”

zona de configurare
        numele opțiunii „lan”
        opțiunea de intrare „ACCEPT”
        ieșire opțiune „ACCEPT”
        opțiunea înainte „ACCEPT”
        opțiune masq '1'
        opțiune rețea „lan”

zona de configurare
        numele opțiunii „wan”
        introducerea opțiunii „RESPING”
        ieșire opțiune „ACCEPT”
        opțiune masq '1'
        opțiunea mtu_fix „1”
        opțiunea înainte „ACCEPT”
        opțiune rețea „wan wan6 wwan1 wwan”

redirecționarea configurației
        opțiunea src 'lan'
        opțiunea dest 'wan'

regula de configurare
        numele opțiunii „Allow-DHCP-Renew”
        opțiunea src 'wan'
        opțiune proto 'udp'
        opțiune dest_port '68'
        opțiune țintă „ACCEPT”
        familia de opțiuni „ipv4”

regula de configurare
        numele opțiunii „Allow-Ping”
        opțiunea src 'wan'
        opțiunea proto 'icmp'
        opțiunea icmp_type 'echo-request'
        familia de opțiuni „ipv4”
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-IGMP”
        opțiunea src 'wan'
        opțiune proto 'igmp'
        familia de opțiuni „ipv4”
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-DHCPv6”
        opțiunea src 'wan'
        opțiune proto 'udp'
        opțiunea src_ip „fc00::/6”
        opțiunea dest_ip „fc00::/6”
        opțiunea dest_port '546'
        familia de opțiuni „ipv6”
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-MLD”
        opțiunea src 'wan'
        opțiunea proto 'icmp'
        opțiunea src_ip „fe80::/10”
        listă icmp_type „130/0”
        listă icmp_type „131/0”
        listă icmp_type „132/0”
        listă icmp_type „143/0”
        familia de opțiuni „ipv6”
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-ICMPv6-Input”
        opțiunea src 'wan'
        opțiunea proto 'icmp'
        listă icmp_type 'echo-request'
        listă icmp_type „echo-reply”
        list icmp_type 'destination-unreachable'
        list icmp_type 'pachet-prea-mare'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'tip-antet-necunoscut'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'vecin-reclamă'
        limita opțiunii „1000/sec”
        familia de opțiuni „ipv6”
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-ICMPv6-Forward”
        opțiunea src 'wan'
        opțiunea dest '*'
        opțiunea proto 'icmp'
        listă icmp_type 'echo-request'
        listă icmp_type „echo-reply”
        list icmp_type 'destination-unreachable'
        list icmp_type 'pachet-prea-mare'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'tip-antet-necunoscut'
        limita opțiunii „1000/sec”
        familia de opțiuni „ipv6”
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-IPSec-ESP”
        opțiunea src 'wan'
        opțiunea dest 'lan'
        opțiune proto 'esp'
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-ISAKMP”
        opțiunea src 'wan'
        opțiunea dest 'lan'
        opțiune dest_port '500'
        opțiune proto 'udp'
        opțiune țintă „ACCEPT”

config include
        calea opțiunii „/etc/firewall.user”

redirecționarea configurației
        opțiunea dest 'lan'
        opțiunea src 'wan'

EDITAȚI | ×: Adăugarea ieșirii de link ip:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state NECUNOSCUT qlen 1000
    link/ether 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
    link/ether 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
    link/ether 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
    link/ether 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 state UP qlen 1000
    link/ether 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
    link/ether 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
    link/ether 72:4f:57:00:51:ac brd ff:ff:ff:ff:ff:ff

EDITAȚI | ×: Adăugarea ieșirii de spectacol brctl:

numele podului ID pod Interfețe activate STP
br-lan 7fff.704f570051ae nu eth0.1
                                                        wlan0
                                                        wlan0-1
br-wan 7fff.704f570051af nu eth0.2
drapel us
Vă rugăm să adăugați rezultatul `iptables-save` la întrebarea dvs.
drapel cn
Puteți utiliza cli sau web luci frontend pentru a configura firewall-ul în OpenWRT: https://openwrt.org/docs/guide-user/firewall/firewall_configuration Vă rugăm să adăugați și ieșirea `uci export firewall`
drapel eg
@MirceaVutcovici M-am uitat la frontend-ul luci pentru a edita firewall-ul, dar nu văd cum să renunț la trafic din interfața WiFi care este destinată interfeței WAN.
drapel eg
@A.B Nu am `bridge` instalat, iar comanda `ip link show` nu acceptă parametrul `type`. `ip` este oferit de BusyBox v1.30.1.
drapel eg
@A.B Cel mai aproape pe care l-am este `ip neigh show`. Ajută asta?
Puncte:3
drapel cl
A.B

OpenWRT rulează un nucleu Linux, dar, ca sistem încorporat, este posibil ca unele caracteristici să nu fie disponibile, așa că nu pot știu dacă acest răspuns, destinat să funcționeze pe un sistem Linux cu o configurație similară cu OP, va funcționa pe el. Este nevoie de:

și, în funcție de soluția aleasă, aceasta ar putea necesita și unele dintre:

În cele din urmă sistemul este rutat pachete de la br-lan interfață către br-wan interfata. La acest pas faptul că a cadru intrat in br-lan interfata folosind wlan0-1 interfata port pod a fost pierdut odată ce cadrul a părăsit puntea inițială pentru a avea sarcina utilă: IPv4, direcționată. Deci acțiunea inițială trebuie să aibă loc înainte ca această informație să se piardă: în calea podului când cadrul este încă în br-lan pod.

Documentație ar putea sugera (se menționează podul) este posibil să se ocupe de firewall-ul bridge cu aplicația de firewall OpenWRT, dar nu am nicio cunoștință despre această parte. Deci voi folosi direct ebtables.

Dacă cineva se poate baza pe cunoașterea topologiei IP LAN br-lan (192.168.1.0/24), atunci toate acestea pot fi făcute într-un singur ebtables regulă:

ebtables -A INPUT -p IPv4 -i wlan0-1 --ip-dst ! 192.168.1.0/24 -j DROP

care elimină orice cadru IPv4 primit de la wlan0-1 port bridge și conectat la gazdă (eventual pentru acesta sau pentru rutare ulterioară) care nu are o adresă IP de destinație în 192.168.1.0/24.

Opțional, se poate introduce înaintea unei excepții pentru adresa IP publică a OpenWRT dacă este statică și cunoscută în prealabil (de exemplu: 192.0.2.2):

ebtables -I INPUT -p IPv4 -i wlan0-1 --ip-dst 192.0.2.2 -j ACCEPT

Dacă acest lucru este în regulă, nu este nevoie să utilizați următoarea alternativă.


Altfel, dacă regula trebuie să rămână generică fără să implice și adresele IP LAN, ci doar interfețele (sau trebuie să accepte ca destinație adresa IP WAN fără a-i cunoaște valoarea), rutarea trebuie să fie implicată și sugerez să marcați cadrul folosind ebtables în calea pod unde informațiile sunt disponibile, chiar înainte ca sarcina utilă a cadrului (IPv4) să fie pe cale de a fi direcționată, apoi aruncați mai târziu pachetul/cadrul marcat, odată ce este sigur că a fost direcționat către Internet. Marcajul este păstrat la decapsularea cadrelor sau la încapsularea pachetelor. curentul OP iptables regulile nu folosesc niciun semn, așa că sunt șanse să nu existe interacțiuni nefericite.

Ca și în cazul lui OP, interfața de ieșire utilizată pentru rutare este, de asemenea, o punte (br-wan), pentru a limita interacțiunile cu instrumentul de nivel superior (firewall3) gestionarea firewall-ului cu iptables, se poate arunca cadrul marcat în calea podului în loc să arunce pachetul marcat în calea de rutare: nicio interacțiune cu iptables reguli.

Fluxul de la LAN la Internet este următorul:

                                            âââââ eth0.1 âââââââ bun
rău ââââââ wlan0-1 ââââââ br-lan bridge ââ ââââ wlan0 âââââââ bun
                                 â
                                 â
                      INTRARE cadrul Ethernet (paravan de protecție ebtables aici)
cadru marcat când de la wlan0-1 M
                                 â 
                                 
                               cadrul br-lan este decapsulat la
                           autointerfață IPv4. Mark este păstrat
                                 â
                                 â
                         Rutarea pachetelor IPv4 (paravan de protecție iptables aici)
                                 â
                                 â
                                  
                               pachetul br-wan este încapsulat în
                           auto-interfață Ethernet. Mark este păstrat
                                 â
                                 â
                      IEȘIRE cadrul Ethernet (paravan de protecție ebtables aici)
      cadru a scăzut dacă este marcat cu X
                                 â
                                 
                           br-wan bridge ââââââ eth0.2 ââââââ Internet

Aceasta va marca cadrele primite de la wlan0-1 port pod:

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

Apoi, aceasta se va potrivi și va scădea atunci când emite de la gazdă prin br-wan unește un cadru/pachet marcat anterior:

ebtables -A OUTPUT --logical-out br-wan --mark 0xbad -j DROP

Dacă --logic-out nu este disponibil dintr-un motiv oarecare, cu topologia curentă poate fi schimbat în br-wanport punte de ieșire unică al lui:

ebtables -A OUTPUT -o eth0.2 --mark 0xbad -j DROP

În acest caz, când pachetul este văzut intrând și ieșind din stiva de rutare, contratrack va crea o intrare pentru ea, chiar dacă va scăpa imediat după. O astfel de intrare nu va ajunge niciodată în starea ESTABLISHED deoarece nimic nu va primi acest pachet și nu va răspunde (vezi și notele).


Note:

  • dacă OpenWRT a fost configurat să aibă două rețele LAN distincte (neconectate sau pe poduri separate, fiecare care participă la rutare), una pentru wlan0 și eth0.1 si inca una pentru wlan0-1 cu adrese IP distincte pe ele, apoi rutarea standard s-ar aplica peste tot și această problemă ar putea fi rezolvată cu ușurință în totalitate iptables probabil cu configurația în firewall3 si cu ebtables nu e necesar.

  • actual iptables regulile sugerează eth0.2 ar putea fi folosit (sau folosit pentru a fi folosit) ca o interfață standard (fără bridge-port). Dacă ar fi așa, a doua soluție ar trebui schimbată și să implice o regulă echivalentă iptables care ar trebui integrat în firewall3 dacă este posibil. De asemenea, este posibil să-l folosiți pentru br-wan (dar din nou merită doar dacă integrarea cu firewall3 este posibil):

    Această regulă poate funcționa în prezent în loc de ebtables Regula de IEȘIRE de mai sus:

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

    și cu eth0.2 direct o interfață de rutare în loc de un port bridge:

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

    Ambele ar putea fi puse în același timp, așa cum se pare că se face în prezent în altele iptables reguli cu br-wan și eth0.2.

    Aici, deoarece pachetul este aruncat în calea de rutare cu iptables, cel contratrack intrarea nu va fi comisă și nu va apărea (ex: cat /proc/net/nf_conntrack nu va arăta încercarea).

  • Folosind iptables în calea podului bazându-se pe br_netfilter caracteristicile este de obicei o idee proastă atunci când nu aveți control total asupra configurației și este dezactivat implicit în OpenWRT. Asa de iptables' physdev potrivirea care depinde de această caracteristică nu ar trebui utilizată (și probabil nu este disponibilă) pentru a rezolva această problemă.

  • Deoarece acest lucru nu este cu stare, traficul de intrare de pe Internet către un sistem care utilizează wlan0-1 va fi totuși permis, dar nu va fi posibil niciun răspuns.Oricum, deoarece LAN-ul este privat, acest lucru ar necesita reguli DNAT pe firewall pentru a avea această posibilitate (sau pentru a doua soluție unde contratrack intrările sunt încă create, o terță parte la distanță sincronizată orbește cu încercările abandonate). Este posibil să renunțați și în direcția opusă: traficul de internet către wlan0-1 folosind aceleași metode ca cele prezentate, dacă este cu adevărat necesar.

A.B avatar
drapel cl
A.B
Acum, gândindu-mă: metoda care folosește marcajele toate cu ebtables funcționează și pentru IPv6.
drapel eg
Voi vedea cum instalez `ebtables` și încerc asta!
drapel eg
Deoarece controlez atribuirea adresei IP, am putut folosi regula simplă `ebtables -A INPUT -p IPv4 -i wlan0-1 --ip-dst ! 192.168.1.0/24 -j DROP`, și funcționează se dorește. Multumesc pentru explicatia detaliata. Sunt sigur că mă va beneficia pe viitor (și pe alții, deja).
drapel eg
Trebuie să încerc celelalte sugestii ale tale, când folosesc regula simplă, dispozitivele mele nu pot primi răspunsuri la solicitările DHCP, ceea ce este ciudat, deoarece serverul DHCP se află pe aceeași subrețea (192.168.1.254). Poate pentru că solicitările DHCP sunt difuzate...
A.B avatar
drapel cl
A.B
un client DHCP care face o descoperire DHCP îl trimite la 255.255.255.255: această adresă trebuie inserată ca excepție (ca exemplul cu 192.0.2.2).
A.B avatar
drapel cl
A.B
Oricum, gândindu-ne la asta, alte adrese vor avea probleme în funcție de dispozitive: IPv4LL și multicast. Deci, s-ar putea să doriți să aruncați o privire la cealaltă opțiune, care este mai generică în rezultat (și ar bloca IPv6 pentru același preț).
drapel eg
Din orice motiv, a trebuit să folosesc `ebtables -A OUTPUT -o eth0.2 --mark 0xbad -j DROP`. Folosind `ebtables -A OUTPUT --logical-out br-wan --mark 0xbad -j DROP` nu a funcționat - nu am putut accesa alte dispozitive din rețeaua internă.
drapel eg
Am vorbit prea devreme. Pentru a obține funcționalitatea completă, inclusiv MQTT și SMB, pentru dispozitivele care se conectează la wlan0-1, a trebuit să folosesc `ebtables -A INPUT -i wlan0-1 -j mark --mark-set 0xbad` combinat cu regulile `iptables`: `iptables -I FORWARD -o br-wan -m mark --mark 0xbad -j DROP` și `iptables -I FORWARD -o eth0.2 -m mark --mark 0xbad -j DROP`.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.