Conectando meu Xbox 360 ao meu Raspberry Pi 2 para usar uma conexão OpenVPN

1

Aqui está minha breve configuração:

  • Xbox360
  • Raspberry PI 2 executando o ArchLinuxARM (alarme)
  • A porta ethernet principal do raspberry pi tem um cabo conectado diretamente ao meu roteador principal
  • O xbox tem um cabo cross-over conectado a um ethernet-para-usb no pi de framboesa
  • Estou usando o serviço systemd openvpn (que cria o dispositivo tun0 )

Eu comprei uma conta VPN e queria encaminhar meu tráfego do xbox 360 por meio dela. Depois de fazer pesquisa , consegui meu xbox usando meu raspberry pi como roteador. Meu raspberry pi se conecta à rede / internet via eth0 e tem um cabo cross-over conectado ao meu xbox via eth1 .

eth0 tem um ip estático para 10.0.0.31 , eth1 tem um ip estático de 10.0.1.100 e o xbox tem um ip estático de 10.0.1.101 .

Aqui está a minha configuração do iptables:

# Generated by iptables-save v1.4.21 on Mon Apr  6 00:37:36 2015
*filter
:INPUT ACCEPT [91:6512]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [45:4220]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -d 10.0.1.101/32 -i eth0 -p tcp -m tcp --dport 3074 -j ACCEPT
-A FORWARD -d 10.0.1.101/32 -i eth0 -p udp -m multiport --dports 88,3074 -j ACCEPT
COMMIT
# Completed on Mon Apr  6 00:37:36 2015
# Generated by iptables-save v1.4.21 on Mon Apr  6 00:37:36 2015
*nat
:PREROUTING ACCEPT [8:3607]
:INPUT ACCEPT [2:144]
:OUTPUT ACCEPT [1:86]
:POSTROUTING ACCEPT [2:146]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3074 -j DNAT --to-destination 10.0.1.101
-A PREROUTING -i eth0 -p udp -m multiport --ports 88,3074 -j DNAT --to-destination 10.0.1.101
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Apr  6 00:37:36 2015

Minha configuração do xbox é (usando o google dns, a propósito):

  • Configurações de IP: manual
  • Endereço IP: 10.0.1.101
  • Máscara de sub-rede: 255.255.255.0
  • Gateway: 10.0.1.100
  • Configurações de DNS: manual
  • Primário: 8.8.8.8
  • Secundário: 8.8.4.4

Isso funciona perfeitamente quando minha conexão VPN está desativada.

Quando eu ligo meu serviço openvpn, o xbox não se conecta mais à Internet (informando um erro de DNS), no entanto, o raspberry pi ainda é capaz de navegar na internet, e posso confirmar que estou sendo roteado com sucesso através da minha VPN.

Quando a VPN está desativada, o xbox se conecta bem à internet e funciona como esperado.

Eu não estou familiarizado o suficiente com as tabelas ip e com este roteamento geral configurado para saber se os logs estão sendo gerados, se o problema for a configuração do iptables, o xbox ou qualquer outra coisa.

Alguma idéia de como resolver isso?

Atualização:

Eu conectei outro laptop linux (que está usando o NetworkManager, se isso for importante) para eth1 , com a seguinte configuração:

  • Método IPv4: manual
  • Servidores DNS: 10.0.0.1
  • Endereço IP: 10.0.1.101
  • Netmask: 255.255.255.0
  • Gateway: 10.0.1.100

Quando a conexão vpn está desligada, eu posso usar a internet bem. Quando a VPN é ligada, eu posso acessar a LAN bem (e pode até mesmo ssh no pi framboesa usando seu endereço 10.0.0.31 ip), no entanto, o DNS não está funcionando, e eu também não consigo pingar endereços externos. p>

Existe algum conjunto de logs em que eu deveria estar trabalhando para ver exatamente o que está acontecendo?

Atualização nº 2:

Estou usando o este pacote arch linux para os perfis do OpenVPN, e tenho um arquivo configurado para login automático. Percebi que ele dispara um script que modifica o resolv.conf de alguma forma, o que pode estar fazendo alguma coisa.

    
por OzBarry 06.04.2015 / 07:31

1 resposta

0

Acabei encontrando outro guia , modifiquei o iptables pouco para meus vários serviços que eu queria encaminhado.

O arquivo resultante ficou assim:

filter

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Forward all data related to our requests
-A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED

# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT

# Allow Transmission daemon from anywhere, with default ports
-A INPUT -p tcp --dport 9091 -j ACCEPT
-A INPUT -p tcp --dport 51413 -j ACCEPT

# Allows SSH connections (change the port number if you need to)
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT

COMMIT

*nat
:PREROUTING ACCEPT [1:148]
:INPUT ACCEPT [1:148]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o tun0 -j MASQUERADE

COMMIT

Parte disso é apenas suposição de trabalho, e tenho certeza que pode ser otimizado / melhorado, mas isso está funcionando para mim por enquanto, e é um pouco mais generalizado (sem ips específicos, etc.)

Isso modificou meu cenário um pouco; agora eu conecto meu xbox através de wifi, e posso apenas configurar manualmente meu gateway para o ip estático do pi de framboesa; funciona bem para o xbox, meu laptop, telefone, etc. Acabei de adicionar novos perfis de rede para que eu possa ligar e desligar a conexão vpn sem qualquer problema.

    
por 14.04.2015 / 03:08