Configuration openvpn et transmission-daemon

Bonjour,

Je souhaite que transmission-daemon utilise une connexion VPN et qu’il soit le seul à l’utiliser. Or si j’installe openvpn et que je le configure en tant que client, tout le traffic réseau passe par le VPN.

Pour faire simple je peux pouvoir rediriger uniquement le traffic réseau de transmission-daemon dans le VPN et que tout le reste passe par mon réseau classique.

Comment puis-je faire ?

Salut,

Perso, pour ce genre de cas, j’utiliserai un conteneur ou une machine virtuelle. Pour moi, c’est le plus simple à comprendre et à mettre en œuvre.
Es-tu familier avec les machines virtuelles ?

Je préfère ne pas utiliser de machine virtuelle ou de conteneur (à la limite si j’ai pas d’autre alternative, j’utiliserai un conteneur).

J’ai avancé hier soir (un peu) en regardant du côté des namespaces réseau.

J’ai ajouté ce script netns (trouvé sur internet) qui est lancé en UP, DOWN, ROUTE-UP depuis mon client.conf :

#!/bin/sh                                                                                                         
case $script_type in                                                                                              
        up)                                                                                                       
                ip netns add vpn                                                                                  
                ip netns exec vpn ip link set dev lo up                                                           
                ip link set dev "$1" up netns vpn mtu "$2"                                                        
                ip netns exec vpn ip addr add dev "$1" \                                                          
                        "$4/${ifconfig_netmask:-30}" \                                                            
                        ${ifconfig_broadcast:+broadcast "$ifconfig_broadcast"}                                    
                if [ -n "$ifconfig_ipv6_local" ]; then                                                            
                        ip netns exec vpn ip addr add dev "$1" \                                                  
                                "$ifconfig_ipv6_local"/112                                                        
                fi                                                                                                
                ;;                                                                                                
        route-up)                                                                                                 
                ip netns exec vpn ip route add default via "$route_vpn_gateway"                                   
                if [ -n "$ifconfig_ipv6_remote" ]; then                                                           
                        ip netns exec vpn ip route add default via \                                              
                                "$ifconfig_ipv6_remote"                                                           
                fi                                                                                                
                ;;                                                                                                
        down)                                                                                                     
                ip netns delete vpn                                                                               
                ;;                                                                                                
esac  

Ce script va créer un namespace vpn qui routera vers le vpn. Uniquement les logiciels lancés depuis la commande sudo ip netns exec vpn cmd utiliseront ce namespace réseau.

Alors si je lance à la main :

sudo openvpn client.conf
sudo ip netns exec vpn elinks http://monip.org

J’ai bien l’adresse ip de mon vpn.

ip netns list

Je vois bien mon namespace vpn.

Par contre, si je lance openvpn depuis systemd (sudo systemctl start openvpn) avec uniquement «client» dans AUTOSTART du fichier default, j’ai pas d’erreur sur le lancement du service dans les logs mais le namespace vpn n’est pas visible depuis sudo ip netns list.

Je vais poursuivre mes recherches ce soir…