Marvin Pascale

[B.Log]

11 Settembre 2024

Wireguard e Firewalld

Creare VPN Abbiamo già visto WireGuard in tante salse ma oggi vi propongo una visione nuova; utilizzare WireGuard in combinazione con Firewalld per avere una gestione più attenta del traffico e delle porte esposte. Se sei un novizio delle vpn ti consiglio di recuperare gli articoli precedenti e il video su Yuotube. Pillole wireguard GUI

Mani in pasta

WireGuard è una soluzione VPN moderna, veloce e sicura che sta guadagnando sempre più popolarità per la sua semplicità e prestazioni. In questo articolo, vedremo come configurare WireGuard in combinazione con firewalld per gestire le regole di rete in modo sicuro ed efficiente.

Installazione e configurazione di base

Prima di tutto, assicuriamoci di avere installato e configurato sia WireGuard che firewalld. Per Firewalld:

# dnf install firewalld -y
# systemctl enable --now firewalld

Verifica che firewalld sia attivo e funzionante:

# systemctl status firewalld

Installa i pacchetti necessari per WireGuard:

# dnf install wireguard-tools -y

Configurazione di WireGuard

Creiamo ora il file di configurazione di WireGuard. Di seguito un esempio per la nostra interfaccia VPN, wg0:

vim /etc/wireguard/wg0.conf

Ecco un esempio del file /etc/wireguard/wg0.conf:

[Interface]
Address = 172.16.0.1/24
ListenPort = 42408
MTU = 1492
PrivateKey = [La tuo private key qui]

PostUp   = firewall-cmd --zone=public --add-port=42408/udp && firewall-cmd --zone=public --add-port=42408/udp --permanent
PostDown = firewall-cmd --zone=public --remove-port=42408/udp && firewall-cmd --zone=public --remove-port=42408/udp --permanent

[Peer]
PublicKey = [La public key del peer qui]
AllowedIPs = 172.16.0.3/32

Il parametro PostUp è utilizzato per aprire la porta UDP di WireGuard ogni volta che l’interfaccia viene attivata, mentre PostDown chiude la porta quando l’interfaccia viene disattivata.

Configurazione di firewalld

Ora vediamo come configurare firewalld per permettere il traffico attraverso la VPN e mascherare il traffico in uscita.

1) Creazione di una zona dedicata per la VPN

Per isolare meglio il traffico della VPN, creiamo una nuova zona in firewalld e associamola all’interfaccia wg0:

# firewall-cmd --new-zone=vpn --permanent
# firewall-cmd --permanent --zone=vpn --add-interface=wg0
# firewall-cmd --reload

2) Abilitazione del forwarding e del masquerading

Per permettere il forwarding del traffico tra le reti e mascherare il traffico in uscita dalla VPN, esegui i seguenti comandi:

# sysctl -w net.ipv4.ip_forward=1
# firewall-cmd --zone=vpn --add-forward --permanent
# firewall-cmd --zone=public --add-masquerade --permanent

Dopo queste modifiche, ricarica la configurazione di firewalld:

# firewall-cmd --reload

Avvio dell’interfaccia WireGuard

Ora che la configurazione di firewalld e WireGuard sono pronte, possiamo avviare l’interfaccia VPN:

# wg-quick up wg0

Per disattivarla:

# wg-quick down wg0

Se volessimo fare in modo che la VPN si attivi in automatico al riavvio del server configuriamo il servizio con systemd

# systemctl enable [email protected]
# systemctl daemon-reload

Verifica delle configurazioni

Puoi verificare lo stato di firewalld e assicurarti che le regole siano state applicate correttamente con:

# firewall-cmd --list-all --zone=vpn
# firewall-cmd --list-all --zone=public

Inoltre, verifica che WireGuard stia funzionando correttamente con:

# wg

Conclusione

Grazie a questa configurazione, WireGuard è ora configurato per gestire una VPN protetta attraverso firewalld, sfruttando il forwarding e il masquerading per consentire il traffico sicuro e isolato. È una configurazione flessibile e sicura che si adatta a vari scenari, dalla rete aziendale al routing di rete domestica.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: