web-dev-qa-db-fra.com

Utiliser la diffusion à la maison de Steam sur VPN (OpenVPN)?

Comme le dit la question, j'aimerais configurer un serveur OpenVPN en utilisant le mode TAP afin de faciliter la lecture en continu des fonctionnalités de streaming intégrées à Steam depuis un ordinateur de jeu Windows 7 vers un ordinateur portable Ubuntu 14.04 situé à l'extérieur, au travail ou à l'école. Cela permettrait à un utilisateur Ubuntu de se connecter à son compte Steam sur leurs machines Windows et de diffuser des jeux non-Linux sur leur matériel Ubuntu!

Voici l’idée générale de ce que je veux accomplir:


********************** Internet ******************* Internet ******** **************
Ordinateur portable Ubuntu (Steam) <---> Serveur Ubuntu OpenVPN <---> Machine Windows (Steam)

Nous voudrons utiliser OpenVPN pour créer un réseau VPN sur le serveur auquel notre client Ubuntu Laptop et Windows peut se connecter. Nous devons utiliser TAP pour transférer les données de trame Ethernet complètes, car le service de diffusion en continu à domicile de Steam ne fonctionne pas bien avec les tunnels IP (TUN). Une fois que les deux ordinateurs sont connectés au VPN, ils commenceront à diffuser que leurs bibliothèques sont disponibles pour la diffusion en continu.

Topographie actuelle du réseau:


Ecole/travail Ordinateur portable Ubuntu 14.04
nom d'hôte chimaera-linux
IP dynamique Internet (ipv4)
adresse IP locale dynamique (10.1.10.x)
connexion câblée à eth0

Ubuntu 14.04 KVM machine virtuelle exécutant OpenVPN
nom d'hôte cerberus-vm
IP publique statique sur Internet (x.y.145.133) sur eth0 (ipv4, câblé)
pas d'adresse IP locale ni de réseau local

Bureau Windows 7 Pro
nom d'hôte windoze
IP dynamique Internet (ipv4)
adresse IP dynamique locale (192.168.0.x)
connexion câblée à eth0

Conditions requises:


  • Les clients connectés au VPN doivent pouvoir utiliser des adaptateurs TAP pour envoyer du trafic vers/depuis le réseau VPN. TUN NE FONCTIONNERA PAS!
  • Le réseau VPN devrait également pouvoir transférer le trafic des clients vers Internet et inversement (afin que nous puissions nous connecter au VPN et l'utiliser comme méthode de navigation sécurisée).
  • Les paramètres de connexion doivent être aussi sécurisés que possible pour empêcher les attaques MITM ou autres shenanigannary.
  • Le réseau VPN interne doit être autonome , ce qui signifie qu'il n'autorise pas d'interface avec les réseaux locaux respectifs du client ou du serveur. Je ne cherche pas à configurer un réseau VPN qui me permette d'envoyer une requête ping à d'autres périphériques locaux sur le réseau du serveur - uniquement pour pouvoir me connecter à d'autres clients VPN à l'aide de leurs adresses IP VPN internes.

Des pas vers le succès!


  1. Trouvé et utilisé https://help.ubuntu.com/lts/serverguide/openvpn.html comme guide pour l'installation d'OpenVPN sur le serveur et la configuration de certificats. Pas d'issues!
  2. Trouvé et adapté http://www.slsmk.com/getting-started-with-openvpn/installing-openvpn-on-ubuntu-server-12-04-or-14-04-using-tap/ parce que la documentation du serveur parle de la configuration d’un TUN au lieu d’un TAP. À ce stade, les clients PEUVENT se connecter et s'authentifier auprès du serveur VPN, mais le trafic ne circule pas entre eux et les clients ne peuvent pas accéder à Internet via le VPN!

Informations de configuration/système pertinentes


  1. Le client VPN ubuntu est configuré via le gestionnaire de réseau conformément aux documents du serveur LTS.

  2. Le client Windows 7 utilise le paquet OpenVPN-gui d’openvpn.net

  3. Peut fournir des fichiers de configuration à la demande. Je n'arrive pas à comprendre comment les coller ici sans qu'ils se fassent royalement baiser, même dans les codes de sélection de code.

Problèmes et mystères


  1. Je n'arrive tout simplement pas à comprendre les routes de vpn ou les commandes "Push" dans server.conf pour openvpn. Je suppose que c'est la principale raison pour laquelle je peux me connecter mais n'arrive pas à générer du trafic entre notre VPN et d'autres clients ou Internet.

  2. J'ai joué avec iptables et masquerading et tout cela en vain. À ce stade, je ne pense pas que ce soit le problème. À l'heure actuelle, iptables n'est pas configuré et accepte tout le trafic.

  3. Je n'ai pas configuré (et n'ai pas besoin?) De pontage ou de paramètres réseau spéciaux sur aucun des clients.

3
Asmo

Il s’avère donc qu’une idée aussi simple avec OpenVPN est en réalité BEAUCOUP plus complexe et complexe. Vous pouvez utiliser Steam Streaming si vous utilisez OpenVPN en mode ponté (ce qui, à mon avis, nécessite déjà une configuration de réseau local que vous pouvez utiliser).

Ce que j’ai fini par faire, c’est utiliser Hamachi et mélanger ensemble les instructions trouvées sur http://steamcommunity.com/groups/homestream/discussions/0/540738051890279158/ et https: // help.ubuntu.com/community/Hamachi

La diffusion en continu d'un client Linux à partir d'une machine Windows fonctionne parfaitement.

0
Asmo

Je l'ai eu avec OpenVPN (en utilisant TAP) après beaucoup de travail. Pas de chance avec TUN, je pense que cela ne peut pas fonctionner avec TUN car il n’est pas possible d’émettre la diffusion UDP (ce qui apparemment utilise Steam In-home Streaming pour détecter les pairs).

J'exécute le serveur OpenVPN sur mon routeur, un Archer C7 V2 exécutant OpenWRT (Barrier Breaker).

Vous trouverez ci-dessous le fichier de configuration du serveur que j'utilise. Modification est nécessaire, où devrait être clair:

client-to-client
persist-key
persist-tun
tls-server
ca /etc/openvpn/ca.crt
cert /etc/openvpn/erb-router-c7.crt
dev tap_mypvn
dh /etc/openvpn/dh2048.pem
keepalive 10 120
key /etc/openvpn/erb-router-c7.key
log /tmp/openvpn.log
mode server
port 1194
proto udp
route-gateway dhcp
server 10.8.0.0 255.255.255.0
status /var/log/openvpn_status.log
topology subnet
verb 3
Push topology subnet
Push route-gateway dhcp
Push persist-key
Push persist-tun

Voici ma configuration client (La machine hôte sous Windows, une configuration similaire est utilisée sur la machine cliente sous Ubuntu):

client
float

dev tap
proto udp
remote YOUR_HOSTNAME_OR_IP_HERE 1194

log "C:/Program Files/OpenVPN/config/log.txt"
verb 3

resolv-retry infinite
nobind

persist-key
persist-tun

remote-cert-tls server    
ca "C:/Program Files/OpenVPN/config/ca.crt"
cert "C:/Program Files/OpenVPN/config/erb-main-7.crt"
key "C:/Program Files/OpenVPN/config/erb-main-7.key"

J'ai tellement fait avec la configuration OpenWRT que je ne suis pas sûr que ce soit tout ce qui est nécessaire pour que quelqu'un réplique mon succès. Mais la version courte, c’est: Utilisez TAP et non TUN, assurez-vous que vos clients VPN peuvent communiquer entre eux en spécifiant le paramètre client-to-client dans la configuration du serveur. Dans OpenWRT, j'ai également configuré l'interface réseau et le pare-feu comme spécifié dans le wiki OpenWRT pour OpenVPN .

Si vous avez des questions, je ferai de mon mieux pour y répondre.

Modifier, sur demande:

/etc/config/network

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config globals 'globals'
    option ula_prefix 'fd0f:252f:ed29::/48'

config interface 'lan'
    option force_link '1'
    option type 'bridge'
    option proto 'static'
    option ipaddr '192.168.1.1'
    option netmask '255.255.255.0'
    option ip6assign '60'
    option _orig_ifname 'eth1 wlan0 wlan1'
    option _orig_bridge 'true'
    option ifname 'eth1 tap_myvpn'

config interface 'wan'
    option ifname 'eth0'
    option proto 'dhcp'

config interface 'wan6'
    option ifname '@wan'
    option proto 'dhcpv6'

config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'

config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '0 2 3 4 5'

config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '1 6'

config interface 'vpn0'
    option ifname 'tun0'
    option proto 'none'
    option auto '1'

La partie sélectionnée dans /etc/config/firewall ne fournit peut-être pas un contexte complet, mais je ne souhaite pas que tout mon fichier de pare-feu soit connu. S'il vous plaît informez-moi de la redondance éventuelle et des erreurs:

config rule
        option name 'Allow-OpenVPN-Inbound'
        option target 'ACCEPT'
        option src '*'
        option proto 'udp'
        option dest_port '1194'

config zone
        option name 'vpn'
        option masq '1'
        option input 'ACCEPT'
        option forward 'ACCEPT'
        option output 'ACCEPT'
        option network 'vpn0'

config forwarding
        option dest 'lan'
        option src 'vpn'

config forwarding
        option dest 'wan'
        option src 'vpn'

config forwarding
        option dest 'vpn'
        option src 'lan'
4
erb