Comment configurer UFW pour autoriser le transfert IP?

18

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

Le transfert IP est configuré sur l'hôte, donc lorsque UFW est désactivé, ils peuvent se parler sans aucun problème. Cependant, je voudrais exécuter UFW car cet hôte sera accessible sur le Web et je voudrais un certain contrôle d'accès.

Comment puis-je configurer UFW pour autoriser ce type de trafic?

J'ai essayé différentes combinaisons de: ufw allow allow in|out on vboxnet0|tun0sans 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.

Stephen RC
la source

Réponses:

20

Je l'ai compris.

Modifiez /etc/default/ufwet définissez DEFAULT_FORWARD_POLICYsur ACCEPTER :

DEFAULT_FORWARD_POLICY="ACCEPT"
Stephen RC
la source
10
Existe-t-il un moyen de ne lui permettre que de rediriger des ports spécifiques, et non de le configurer pour tout accepter?
Marcus Downing
1
Je suppose que vous devez redémarrer ufw après avoir édité le fichier:service ufw restart
Minh Danh
10

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

Les règles pour le trafic non destiné à l'hôte lui-même, mais à la place pour le trafic qui doit être acheminé / transféré via le pare-feu, doivent spécifier le mot-clé route avant la règle (les règles de routage diffèrent considérablement de la syntaxe PF et tiennent plutôt compte des conventions de 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 les règles 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 redémarrage du pare-feu:

     ufw disable
     ufw enable

Sachez que la définition des paramètres ajustables du noyau est spécifique au système d'exploitation et que les paramètres ufw sysctl peuvent être remplacés. Voir la page de manuel de sysctl pour plus de détails.

Michal Sylwester
la source
1
Pour ceux d'entre nous qui souhaitent autoriser le trafic TCP entre les clients OpenVPN sur un serveur OpenVPN, cela fonctionne. Par exemple: ufw route allow in on tun0 out on tun0
logion
Pour mémoire ufw routeest présent depuis la version 0.34
Joril
7

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 au filtrage d'entrée / sortie simple. Pour le transfert, vous devez ajouter des 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 autorise les connexions de l'intérieur vers l'extérieur et une autre qui permet aux paquets des sessions TCP associées et établies de revenir.

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

Salutations

Jay Christnach
la source
4

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

dcborg
la source
Cela donne une erreur de "syntaxe non valide". Les documents indiquent que "DIRECTION est une entrée, une sortie ou un routage".
ColinM
@ColinM cela a fonctionné pour moi sur Xubuntu 16.04.5 LTS
baptx
FORWARDfonctionne comme alias pour routedsur Ubuntu
patricktokeeffe