web-dev-qa-db-fra.com

Comment configurer UFW pour autoriser le transfert IP?

UFW, OpenVPN et Virtualbox sont installés sur mon serveur domestique. J'ai un réseau d'hôte uniquement pour mes invités de machine virtuelle (vboxnet0) configuré avec la plage d'adresses IP 10.0.1.0 et une autre plage d'adresses IP de 10.0.0.0 configurée à l'autre extrémité de la connexion OpenVPN.

Le transfert IP est configuré sur l'hôte. Ainsi, lorsque UFW est désactivé, ils peuvent se parler sans aucun problème. Cependant, j'aimerais utiliser UFW car cet hôte sera accessible sur le Web et j'aimerais un contrôle d'accès.

Comment configurer UFW pour autoriser ce type de trafic?

J'ai essayé diverses combinaisons de: ufw allow allow in|out on vboxnet0|tun0 sans succès.

Mes règles UFW sont:

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

Toute aide serait grandement appréciée.

16
Stephen RC

Je l'ai compris.

Éditez /etc/default/ufw et réglez DEFAULT_FORWARD_POLICY sur ACCEPT:

DEFAULT_FORWARD_POLICY="ACCEPT"
17
Stephen RC

C'est maintenant possible - depuis la page de manuel d'ufw:

Les règles applicables au trafic non destiné à l'hôte, mais au trafic devant être acheminé/acheminé via le pare-feu doivent spécifier le mot clé route avant la règle (les règles d'acheminement diffèrent sensiblement de la syntaxe de PF et tiennent compte des conventions de la chaîne netfilter FORWARD) . Par exemple:

     ufw route allow in on eth1 out on eth2

Cela permettra à tout le trafic acheminé vers eth2 et entrant sur eth1 de traverser le pare-feu.

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

Cette règle permet à tout paquet entrant sur eth0 de traverser le pare-feu sur eth1 vers le port TCP 80 sur 12.34.45.67.

Outre les règles et la stratégie de routage, vous devez également configurer le transfert IP. Cela peut être fait en définissant ce qui suit dans /etc/ufw/sysctl.conf:

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

puis en redémarrant le pare-feu:

     ufw disable
     ufw enable

Sachez que la configuration des paramètres du noyau dépend du système d’exploitation et que les paramètres ufw sysctl peuvent être remplacés. Voir la page de manuel sysctl pour plus de détails.

6
Michal Sylwester

si vous définissez DEFAULT_FORWARD_POLICY sur ACCEPT dans/etc/default/ufw, le pare-feu transmettra tous les paquets, quels que soient les paramètres de l'interface utilisateur.

Je pense que l'interface utilisateur est uniquement destinée à un simple filtrage in/out. Pour le transfert, vous devez ajouter les règles iptables dans /etc/ufw/before.rules comme ici:

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

Vous avez probablement déjà une règle qui permet les connexions de l’intérieur et une autre qui permet aux paquets provenant de sessions TCP liées et établies de revenir.

Je ne suis pas un spécialiste d'iptables, cela m'a pris beaucoup de temps (avec ip6tables, mais ça devrait être pareil). Peut-être que ce n'est pas tout ce qu'il faut dans votre cas.

Salutations

6
Jay Christnach

Cette commande ufw a bien fonctionné pour moi: Sudo ufw default allow FORWARD

Pour être sûr que le changement est appliqué: Sudo service ufw restart

3
dcborg