Come configurare UFW per consentire l'inoltro IP?


18

Ho UFW, OpenVPN e Virtualbox installati sul mio server di casa. Ho una rete solo host per i miei guest di macchine virtuali (vboxnet0) configurata con l'intervallo IP 10.0.1.0 e un altro intervallo IP di 10.0.0.0 configurato sull'altra estremità della connessione OpenVPN.

L'IP Forwarding è configurato sull'host, quindi quando UFW è disabilitato possono parlare tra loro senza problemi. Tuttavia, mi piacerebbe eseguire UFW poiché questo host sarà accessibile dal web e mi piacerebbe avere un po 'di controllo dell'accesso.

Come posso configurare UFW per consentire questo tipo di traffico?

Ho provato varie combinazioni di: ufw allow allow in|out on vboxnet0|tun0senza successo.

Le mie regole UFW sono:

root@gimli:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
Anywhere                   ALLOW       10.0.0.0/16
Anywhere on vboxnet0       ALLOW       Anywhere
Anywhere on tun0           ALLOW       Anywhere

Anywhere                   ALLOW OUT   Anywhere on vboxnet0
Anywhere                   ALLOW OUT   Anywhere on tun0

Qualsiasi aiuto sarebbe molto apprezzato.

Risposte:


20

L'avevo capito.

Modifica /etc/default/ufwe imposta DEFAULT_FORWARD_POLICYsu ACCETTA :

DEFAULT_FORWARD_POLICY="ACCEPT"

10
Esiste un modo per consentire solo a esso di inoltrare porte specifiche, non impostarlo su ACCETTA tutto?
Marcus Downing,

1
Immagino che dovrai riavviare ufw dopo aver modificato il file:service ufw restart
Minh Danh,

10

Ora è possibile - dalla pagina man ufw:

Le regole per il traffico non destinate all'host stesso ma invece per il traffico che deve essere instradato / inoltrato attraverso il firewall devono specificare la parola chiave route prima della regola (le regole di routing differiscono in modo significativo dalla sintassi PF e tengono invece conto delle convenzioni della catena FORWARD di netfilter) . Per esempio:

     ufw route allow in on eth1 out on eth2

Ciò consentirà a tutto il traffico indirizzato a eth2 e in arrivo su eth1 di attraversare il firewall.

     ufw route allow in on eth0 out on eth1 to 12.34.45.67 port 80 proto tcp

Questa regola consente a tutti i pacchetti in arrivo su eth0 di attraversare il firewall su eth1 alla porta 80 di tcp il 12.34.45.67.

Oltre alle regole e ai criteri di routing, è necessario impostare anche l'inoltro IP. Questo può essere fatto impostando quanto segue in /etc/ufw/sysctl.conf:

     net/ipv4/ip_forward=1
     net/ipv6/conf/default/forwarding=1
     net/ipv6/conf/all/forwarding=1

quindi riavviare il firewall:

     ufw disable
     ufw enable

Tenere presente che l'impostazione dei parametri sintonizzabili del kernel è specifica del sistema operativo e che le impostazioni di sysctl potrebbero essere ignorate. Vedere la pagina di manuale di sysctl per i dettagli.


1
Per quelli di noi che vogliono consentire il traffico tcp tra client OpenVPN su un server OpenVPN, questo funziona. Ad esempio: ufw route consente l'ingresso su tun0 out su tun0
logion

Per la cronaca ufw routeè presente dalla versione 0.34
Joril

7

se si imposta DEFAULT_FORWARD_POLICY su ACCEPT in / etc / default / ufw, il firewall inoltra tutti i pacchetti indipendentemente dalle impostazioni dell'interfaccia utente.

Penso che l'interfaccia utente sia pensata solo per un semplice filtro in / out. Per l'inoltro devi aggiungere le regole di iptables in /etc/ufw/before.rules come qui:

-A ufw-before-forward -i eth1 -p tcp -d 192.168.1.11 --dport 22 -j ACCEPT

Probabilmente hai già una regola che consente le connessioni dall'interno verso l'esterno e un'altra che consente i pacchetti da sessioni tcp correlate e stabilite nuovamente.

Non sono uno specialista di iptables, mi ci è voluto molto tempo per capirlo (con ip6tables, ma dovrebbe essere simile). Forse non è tutto ciò che serve nel tuo caso.

I migliori saluti


4

Questo comando ufw ha funzionato bene per me: sudo ufw default allow FORWARD

Per essere sicuro che la modifica sia applicata: sudo service ufw restart


Ciò genera un errore "Sintassi non valida". I documenti dicono che "DIREZIONE è uno di in entrata, in uscita o indirizzato".
ColinM,

@ColinM ha funzionato per me su Xubuntu 16.04.5 LTS
baptx il

FORWARDfunziona come alias per routedUbuntu
patricktokeeffe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.