Use o Streaming Doméstico do Steam em VPN (OpenVPN)?

3

Como a pergunta diz, gostaria de configurar um servidor OpenVPN usando o modo TAP para facilitar os recursos de streaming de jogos embutidos no Steam para transmitir a partir de uma máquina de jogos do Windows 7 para um laptop Ubuntu 14.04 localizado externamente no trabalho ou na escola. Isso permitiria que um usuário do Ubuntu se conectasse à sua conta Steam em suas máquinas Windows e transmitisse jogos não-linux para o seu hardware Ubuntu!

Aqui está a ideia geral do que eu quero realizar:

********************* internet ******************* internet ***** *****************
Ubuntu Laptop (Steam) < --- > Servidor Ubuntu OpenVPN < --- > Máquina Windows (Steam)

Nós vamos querer usar o OpenVPN para criar uma rede VPN no servidor que tanto o nosso laptop Ubuntu quanto o cliente Windows podem se conectar. Devemos usar o TAP para encaminhar os dados completos do quadro Ethernet, pois o serviço de streaming doméstico do Steam não funciona bem com os túneis IP (TUN). Quando as duas máquinas estiverem conectadas à VPN, elas começarão a transmitir que suas bibliotecas estão disponíveis para streaming.

Topografia da rede atual:

Escola / trabalho Ubuntu 14.04 laptop
hostname chimaera-linux
ip internet dinâmico (ipv4)
ip local dinâmico (10.1.10.x)
conexão hardwired para eth0

Ubuntu 14.04 máquina virtual KVM executando o OpenVPN
hostname cerberus-vm
pública estática internet ip (x.y.145.133) em eth0 (ipv4, hardwired)
sem ip local ou rede local -

área de trabalho do Windows 7 Pro
hostname windoze
ip internet dinâmico (ipv4)
ip local dinâmico (192.168.0.x)
conexão hardwired para eth0

Requisitos:

  • Os clientes conectados à VPN devem poder usar adaptadores TAP para enviar tráfego para / da rede VPN. TUN NÃO FUNCIONARÁ!
  • A rede VPN também deve poder encaminhar o tráfego dos clientes para a Internet e vice-versa (para que possamos nos conectar à VPN e usá-la como um método seguro de navegação).
  • As configurações de conexão devem ser o mais seguras possível para evitar ataques MITM ou outros problemas.
  • A rede VPN interna deve ser autônoma , o que significa que ela não permite nem faz interface com as respectivas redes locais do cliente ou do servidor. Eu não estou olhando para configurar uma rede VPN que me permite ping outros dispositivos locais na rede do servidor - apenas para poder se conectar a outros clientes VPN usando seus IPs VPN internos.

Passos para o sucesso!

  1. Encontrou e usou o link como um guia para instalar o OpenVPN no servidor e configurar os certificados. Sem problemas!
  2. Encontrado e adaptado link porque os documentos do servidor falam sobre a configuração de um TUN em vez de um TAP. Neste ponto, os clientes PODEM se conectar e autenticar com o servidor VPN, mas o tráfego não flui entre clientes e os clientes não podem acessar a Internet através da VPN!

Configurações relevantes / informações do sistema

  1. O cliente VPN do ubuntu é configurado através do gerenciador de rede de acordo com os documentos do servidor LTS.

  2. O cliente do Windows 7 está usando o pacote OpenVPN-gui do openvpn.net

  3. Pode fornecer arquivos de configuração mediante solicitação. Eu não consigo descobrir como colá-los aqui sem que eles fiquem realmente aparafusados na formatação, mesmo nos códigos de código.

Áreas e mistérios de problemas

  1. Eu simplesmente não consigo envolver minha cabeça nas rotas vpn ou comandos "push" no server.conf para o openvpn. Eu suspeito que esta é a principal razão pela qual eu posso conectar, mas não consigo obter tráfego em nosso fora da VPN para outros clientes ou para a internet.

  2. Eu joguei com iptables e masquerading e tudo isso sem sucesso. Neste ponto, não acho que seja esse o problema. No momento, o iptables é completamente desconfigurado e aceita todo o tráfego.

  3. Eu não configurei (e não preciso?) de qualquer configuração de rede de ponte ou especial em qualquer um dos clientes.

por Asmo 07.10.2014 / 03:13

2 respostas

0

Então acontece que uma idéia tão simples com o OpenVPN é na verdade muito mais complexa e envolvida. Você pode fazer o Steam Streaming se você usar o OpenVPN no modo em ponte (o que eu preciso requer já ter uma configuração de lan local que você possa fazer uma ponte).

O que acabei fazendo foi usar o Hamachi e misturar as instruções encontradas no link e link

A transmissão de um cliente Linux a partir de uma máquina Windows funciona perfeitamente.

    
por Asmo 15.10.2014 / 21:42
4

Eu consegui trabalhar com o OpenVPN (usando o TAP) depois de muito trabalho. Sem sorte com o TUN, acredito que ele não funcione com o TUN, já que não há transmissão UDP com ele (o que, aparentemente, o Steam In-home Streaming usa para detectar seus pares).

Eu corro o servidor OpenVPN no meu roteador, um Archer C7 V2 executando OpenWRT (Barrier Breaker).

Abaixo está o arquivo de configuração do servidor que eu uso. A modificação é necessária, onde deve ficar claro:

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

Aqui está a configuração do meu cliente (a máquina host que executa o Windows, uma configuração semelhante é usada na máquina cliente que executa o 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"

Eu fiz tanto com a configuração do OpenWRT que não tenho certeza se isso é tudo o que é necessário para alguém replicar meu sucesso. Mas a versão curta: Use TAP e não TUN, certifique-se de que seus clientes VPN possam se comunicar especificando o parâmetro client-to-client na configuração do servidor. No OpenWRT, também configurei a interface de rede e o firewall, conforme especificado no wiki do OpenWRT para OpenVPN .

Se você tiver alguma dúvida, farei o possível para respondê-las.

Editar, a pedido:

/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'

A parte selecionada de /etc/config/firewall , pode não fornecer todo o contexto, mas eu não quero que todo o meu arquivo de firewall seja conhecido. Por favor, informe-me de eventuais redundâncias e erros:

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'
    
por erb 29.10.2015 / 23:26