Passa al contenuto principale

Impostazioni firewall

Queste informazioni consentono di impostare la configurazione del firewall.

Impostazione del firewall predefinito

Nella sezione predefinita vengono indicate le impostazioni globali del firewall che non appartengono a zone specifiche.

Tabella 1. Impostazione del firewall predefinito
Sintassi
  • sudo uci set firewall.@defaults[0].input=<input>
  • sudo uci set firewall.@defaults[0].output=<output>
  • sudo uci set firewall.@defaults[0].forward=<forward>
  • sudo uci set firewall.@defaults[0].syn_flood=<syn_flood>
  • sudo uci set firewall.@defaults[0].drop_invalid=<drop_invalid>
Tabella 2. Parametri
NomeTipoObbligatorioPredefinitoDescrizione

input

stringa

no

REJECT

Imposta i criteri per la catena INPUT della tabella dei filtri.

output

stringa

no

REJECT

Imposta i criteri per la catena OUTPUT della tabella dei filtri.

forward

stringa

no

REJECT

Imposta i criteri per la catena FORWARD della tabella dei filtri.

syn_flood

booleano

no

0

Abilita la protezione SYN flood (resa obsoleta dall'impostazione synflood_protect).

drop_invalid

booleano

no

0

Elimina i pacchetti non validi (ad esempio, non corrispondenti a una connessione attiva).

Esempi di comandi:

Tabella 3. Esempi di comandi
  • sudo uci set firewall.@defaults[0].input=ACCEPT
  • sudo uci set firewall.@defaults[0].output= ACCEPT
  • sudo uci set firewall.@defaults[0].forward= ACCEPT
  • sudo uci set firewall.@defaults[0].syn_flood=1
  • sudo uci set firewall.@defaults[0].drop_invalid=1
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Aggiunta di una nuova zona

In questa sezione vengono definite le proprietà comuni di test. Le opzioni di input e output configurano i criteri predefiniti per il traffico in ingresso e in uscita da questa zona, mentre l'opzione forward descrive i criteri per il traffico inoltrato tra le diverse reti all'interno della zona. Le reti coperte specificano quali reti disponibili sono membri di questa zona.

Tabella 4. Aggiunta di una nuova zona
Sintassi
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=<name>
  • sudo uci set firewall.@zone[-1].input=<input>
  • sudo uci set firewall.@zone[-1].output=<output>
  • sudo uci set firewall.@zone[-1].forward=<forward>
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • udo uci commit firewall
Tabella 5. Parametri

Parametro

Tipo

Obbligatorio

Predefinito

Descrizione

nome

nome di zona

Nessuno

Nome di zona univoco. 11 caratteri è la lunghezza massima del nome di zona del firewall di lavoro.

input

stringa

no

REJECT

Imposta i criteri per la catena INPUT della tabella dei filtri.

output

stringa

no

REJECT

Imposta i criteri per la catena OUTPUT della tabella dei filtri.

forward

stringa

no

REJECT

Imposta i criteri per la catena FORWARD della tabella dei filtri.

masq

booleano

no

0

Specifica se il traffico delle zone in uscita deve essere mascherato; parametro in genere abilitato nella zona WAN.

mtu_fix

booleano

no

0

Abilita il blocco MSS per il traffico in uscita dalla zona.

rete

list

no

Nessuno

Elenco delle interfacce collegate a questa zona. Se viene omesso e non sono disponibili opzioni, sottoreti o dispositivi aggiuntivi*, il valore di name viene utilizzato per impostazione predefinita. Le interfacce alias definite nella configurazione di rete non possono essere utilizzate come reti "autonome" valide. Utilizza la sintassi degli elenchi come spiegato in uci.

family

stringa

no

0

Famiglia di protocolli (IPv4, IPv6 o altri) per generare le regole di iptables.

masq_src

elenco di sottoreti

no

0.0.0.0/0

Limita il mascheramento alle sottoreti di origine specificate. La negazione è possibile aggiungendo alla sottorete il prefisso !; sono consentite più sottoreti.

masq_dest

elenco di sottoreti

no

0.0.0.0/0

Limita il mascheramento alle sottoreti di destinazione specificate. La negazione è possibile aggiungendo alla sottorete il prefisso !; sono consentite più sottoreti.

conntrack

booleano

no

1 se si utilizza il mascheramento, altrimenti 0

Forza il rilevamento della connessione per questa zona (vedere la nota sul rilevamento della connessione).

log

booleano

no

0

Crea le regole di log per il traffico rifiutato e interrotto in questa zona.

log_limit

stringa

no

10/minuto

Limita la quantità di messaggi di log per intervallo.

Esempi di comandi:

Tabella 6. Esempi di comandi
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=test
  • sudo uci set firewall.@zone[-1].input=ACCEPT
  • sudo uci set firewall.@zone[-1].output= ACCEPT
  • sudo uci set firewall.@zone[-1].forward= ACCEPT
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Aggiunta di un nuovo inoltro

Le sezioni di inoltro controllano il flusso di traffico tra zone e possono abilitare il blocco MSS per direzioni specifiche. Solo una direzione è coperta da una regola di inoltro. Per consentire il flusso di traffico bidirezionale tra due zone, sono necessari due inoltri, con src e dest invertiti in ciascuno di essi.

Tabella 7. Aggiunta di un nuovo inoltro
Sintassi
  • sudo uci set firewall.@zone[-1].src=<src>
  • sudo uci set firewall.@zone[-1].dest=<dest>
  • sudo uci commit firewall
Tabella 8. Parametri
ParametroTipoObbligatorioPredefinitoDescrizione

src

nome di zona

Nessuno

Specifica la zona di origine del traffico. Deve fare riferimento a uno dei nomi di zona definiti.

dest

nome di zona

Nessuno

Specifica la zona di destinazione del traffico. Deve fare riferimento a uno dei nomi di zona definiti.

Esempi di comandi:

Tabella 9. Esempi di comandi
  • sudo uci set firewall.@zone[-1].src=test
  • sudo uci set firewall.@zone[-1].dest=lan
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Aggiunta di nuovi port forwarding

Le operazioni di port forwarding (DNAT) sono definite dalle sezioni di reindirizzamento. Tutto il traffico in ingresso nella zona di origine specificata che corrisponde alle regole stabilite verrà indirizzato all'host interno indicato. I reindirizzamenti sono anche comunemente noti come "port forwarding" e "server virtuali". Gli intervalli di porte vengono specificati come start:stop, ad esempio 6666:6670, In modo analogo alla sintassi iptables.

Tabella 10. Aggiunta di nuovi port forwarding
Sintassi
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=<enabled>
  • sudo uci set firewall.@redirect[-1].name=<name>
  • sudo uci set firewall.@redirect[-1].proto=<proto>
  • sudo uci set firewall.@redirect[-1].src=<src>
  • sudo uci set firewall.@redirect[-1].src_mac=<src_mac>
  • sudo uci set firewall.@redirect[-1].src_ip=<src_ip>
  • sudo uci set firewall.@redirect[-1].src_port=<src_port>
  • sudo uci set firewall.@redirect[-1].src_dip=<src_dip>
  • sudo uci set firewall.@redirect[-1].src_dport=<src_dport>
  • sudo uci set firewall.@redirect[-1].dest=<dest>
  • sudo uci set firewall.@redirect[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@redirect[-1].dest_port=<dest_port>
  • sudo uci set firewall.@redirect[-1].reflection=<reflection>
  • sudo uci commit firewall
Tabella 11. Parametri
ParametroTipoObbligatorioPredefinitoDescrizione

enabled

stringa

no

1 o sì

Abilita o meno la regola di reindirizzamento.

Nome

stringa

no

Nessuno

Nome di reindirizzamento univoco.

proto

nome o numero di protocollo

tcp udp

Fa il match con il traffico in ingresso utilizzando il protocollo specificato.

src

nome di zona

no

sì per la destinazione DNAT

Specifica la zona di origine del traffico. Deve fare riferimento a uno dei nomi di zona definiti. Per le normali operazioni di port forwarding si tratta in genere di una WAN.

src_mac

indirizzo MAC

no

Nessuno

Fa il match con il traffico in ingresso utilizzando l'indirizzo MAC specificato.

src_ip

indirizzo ip

no

Nessuno

Associa il traffico in entrata proveniente dall'indirizzo IP di origine specificato.

src_port

porta o intervallo

no

Nessuno

Fa il match con il traffico in ingresso proveniente dalla porta o dall'intervallo di porte di origine specificato (es: "5000-5100") sull'host client.

src_dip

indirizzo ip

sì per la destinazione SNAT

Nessuno

Per DNAT, fa il match con il traffico in ingresso indirizzato all'indirizzo ip di destinazione specificato. Per SNAT, sostituisce l'indirizzo di origine con l'indirizzo specificato.

src_dport

porta o intervallo

no

Nessuno

Per DNAT, associa il traffico in entrata indirizzato alla porta o all'intervallo di porte di destinazione specificato (es: "5000-5100") su questo host. Per SNAT, riscrive le porte di origine con il valore specificato.

dest

nome di zona

sì per la destinazione SNAT

Nessuno

Specifica la zona di destinazione del traffico. Deve fare riferimento a uno dei nomi di zona definiti. Per la destinazione DNAT su Attitude Adjustment, la riflessione NAT funziona solo se questa è uguale a LAN.

dest_ip

indirizzo ip

sì per la destinazione DNAT

Nessuno

Per DNAT, reindirizza il traffico in ingresso con il match all'host interno specificato. Per SNAT, fa il match con il traffico indirizzato all'indirizzo specificato. Per DNAT, se il valore dest_ip fa il match con gli indirizzi ip locali del router, come mostrato in ifconfig, la regola viene tradotta in una regola DNAT + input "accept". In caso contrario, è una regola DNAT + forward.

dest_port

porta o intervallo

no

Nessuno

Per DNAT, reindirizza il traffico in ingresso con match alla porta specificata nell'host interno. Per SNAT, fa il match con il traffico indirizzato alle porte specificate. È possibile specificare solo una porta o un intervallo singolo (es: "5000-5100"), non porte eterogenee come con le regole (sotto).

reflection

booleano

no

1

Attiva la riflessione NAT per questo reindirizzamento, applicabile alle destinazioni DNAT.

Esempi di comandi:

Tabella 12. Inoltra il traffico HTTP (non HTTPS) al server Web in esecuzione su 192.168.1.10:
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].proto=tcp
  • sudo uci set firewall.@redirect[-1].src=wan
  • sudo uci set firewall.@redirect[-1].src_dport=80
  • sudo uci set firewall.@redirect[-1].dest=lan
  • sudo uci set firewall.@redirect[-1].dest_ip=192.168.1.10
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Aggiunta di una nuova regola di traffico

Le operazioni di port forwarding (DNAT) sono definite dalle sezioni di reindirizzamento. Tutto il traffico in ingresso nella zona di origine specificata che corrisponde alle regole stabilite verrà indirizzato all'host interno indicato. I reindirizzamenti sono anche comunemente noti come port forwarding e server virtuali. Gli intervalli di porte vengono specificati come start:stop, ad esempio 6666:6670, In modo analogo alla sintassi iptables.

Tabella 13. Aggiunta di una nuova regola di traffico
Sintassi
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=<enabled>
  • sudo uci set firewall.@rule[-1].name=<name>
  • sudo uci set firewall.@rule[-1].family=<family>
  • sudo uci set firewall.@rule[-1].proto=<proto>
  • sudo uci set firewall.@rule[-1].src=<src>
  • sudo uci set firewall.@rule[-1].src_mac=<src_mac>
  • sudo uci set firewall.@rule[-1].src_ip=<src_ip>
  • sudo uci set firewall.@rule[-1].src_port=<src_port>
  • sudo uci set firewall.@rule[-1].dest=<dest>
  • sudo uci set firewall.@rule[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@rule[-1].dest_port=<dest_port>
  • sudo uci set firewall.@rule[-1].target=<target>
  • sudo uci set firewall.@rule[-1].weekdays=<weekdays>
  • sudo uci set firewall.@rule[-1].monthdays=<monthdays>
  • sudo uci set firewall.@rule[-1].start_time=<start_time>
  • sudo uci set firewall.@rule[-1].stop_time=<stop_time>
  • sudo uci set firewall.@rule[-1].start_date=<start_date>
  • sudo uci set firewall.@rule[-1].stop_date=<stop_date>
  • sudo uci set firewall.@rule[-1].utc_time=<utc_time>
  • uci commit firewall
Tabella 14. Parametri
ParametroTipoObbligatorioPredefinitoDescrizione

enabled

booleano

no

Abilita o disabilita la regola.

nome

stringa

no

Nessuno

Nome di regola univoco.

family

stringa

no

qualsiasi

Famiglia di protocolli (IPv4, IPv6 o altri) per generare le regole di iptables.

proto

nome o numero di protocollo

no

tcp udp

Fa il match con il traffico in ingresso utilizzando il protocollo specificato. Può essere uno dei protocolli tcp, udp, tcpudp, udplite, icmp, esp, ah, sctp o tutti oppure può essere un valore numerico, che rappresenta uno di questi protocolli o uno differente. È inoltre consentito un nome di protocollo di /etc/protocols. Il numero 0 è equivalente a tutti.

src

nome di zona

sì (facoltativo a partire da Firewall v2, versione 58 e successive)

Nessuno

Specifica la zona di origine del traffico. Deve fare riferimento a uno dei nomi di zona definiti.

src_mac

indirizzo MAC

no

Nessuno

Fa il match con il traffico in ingresso utilizzando l'indirizzo MAC specificato.

src_ip

indirizzo ip

no

Nessuno

Associa il traffico in entrata proveniente dall'indirizzo IP di origine specificato.

src_port

porta o intervallo

no

Nessuno

Fa il match con il traffico in ingresso dalla porta o dall'intervallo di porte di origine specificato (es: "5000:5100", l'intervallo di porte non si applica a tutti i protocolli), se viene indicato il proto pertinente. È possibile specificare più porte come "80 443 465" 1.

dest

nome di zona

no

Nessuno

Specifica la zona di destinazione del traffico. Deve fare riferimento a uno dei nomi di zona definiti o a * per qualsiasi zona. Se specificato, la regola si applica al traffico inoltrato; in caso contrario, viene considerata come regola di input.

dest_ip

indirizzo ip

no

Nessuno

Fa il match con il traffico in ingresso indirizzato all'indirizzo ip di destinazione specificato. Senza dest zone, viene considerata come regola di input.

dest_port

porta o intervallo

no

Nessuno

Fa il match con il traffico in ingresso indirizzato alla porta o all'intervallo di porte di destinazione specificato (es: "5000:5100", l'intervallo di porte non si applica a tutti i protocolli), se viene indicato il proto pertinente. È possibile specificare più porte come "80 443 465" 1.

target

stringa

DROP

Attiva la riflessione NAT per questo reindirizzamento, applicabile alle destinazioni DNAT.

weekdays

elenco dei giorni della settimana

no

(sempre)

Se specificato, fa il match con il traffico solo durante i giorni della settimana indicati, ad esempio lun, gio, ven, dom per un match solo di lunedì, giovedì, venerdì e domenica. L'elenco può essere invertito anteponendo un punto esclamativo, ad esempio, ! sab dom per fare il match sempre, tranne nei giorni di sabato e domenica.

monthdays

elenco di date

no

(sempre)

Se specificato, fa il match con il traffico solo durante i giorni indicati del mese, ad esempio 2 5 30, quindi solo ogni 2°, 5° e 30° giorno del mese. L'elenco può essere invertito anteponendo un punto esclamativo, ad esempio ! 31 per fare il match sempre, tranne il 31 del mese.

start_time

ora (hh:mm:ss)

no

(sempre)

Se specificato, fa il match del traffico solo dopo l'ora del giorno stabilita (inclusa).

stop_time

ora (hh:mm:ss)

no

(sempre)

Se specificato, fa il match del traffico solo prima dell'ora del giorno stabilita (inclusa).

start_date

data (aaaa-mm-gg)

no

(sempre)

Se specificato, fa il match del traffico solo dopo la data stabilita (inclusa).

stop_date

data (aaaa-mm-gg)

no

(sempre)

Se specificato, fa il match del traffico solo prima della data stabilita (inclusa).

utc_time

booleano

no

0

Considera tutti i valori di ora come ora UTC anziché ora locale.

Esempi di comandi:

Tabella 15. Blocca tutti i tentativi di connessione all'indirizzo host specificato.
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=1
  • sudo uci set firewall.@rule[-1].src=lan
  • sudo uci set firewall.@rule[-1].dest=wan
  • sudo uci set firewall.@rule[-1].dest_ip=123.45.67.89
  • sudo uci set firewall.@rule[-1].target=REJECT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Aggiunta di un nuovo NAT di origine

Il NAT di origine modifica un pacchetto in uscita in modo che appaia come se il sistema dello switch integrato fosse l'origine del pacchetto.

Esempi di comandi:
Tabella 16. Definisce il NAT di origine per il traffico UDP e TCP

Definisce il NAT di origine per il traffico UDP e TCP indirizzato alla porta 123, originato dall'host con l'indirizzo IP 10.55.34.85.

L'indirizzo di origine viene riscritto in 63.240.161.99:

  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].src=lan
  • sudo uci set firewall.@redirect[-1].src_ip=10.55.34.85
  • sudo uci set firewall.@redirect[-1].src_dip=63.240.161.99
  • sudo uci set firewall.@redirect[-1].dest=wan
  • sudo uci set firewall.@redirect[-1].dest_port=123
  • sudo uci set firewall.@redirect[-1].target=SNAT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart