¿Es posible tener NAT Disponible en Linux (Ubuntu)?

Buenas, pues debido a ciertos problemas con Windows ahora mismo estoy usando Ubuntu. He configurado una conexión compartida usando Firestarter para dar acceso al Live a la 360 pero por más que he abierto los puertos indicados en XBoxLive (88 y 3074) siempre obtengo NAT moderada. He estado buscando por el foro y he visto una manera de obtener NAT disponible pero hay que crear scripts en IPTables y trastear con un programa llamado miniudp y como llevo poco tiempo en Linux pues la verdad que leo el tuto y me suena a chino. Lo que me gustaría saber es si hay otra forma mas sencilla de obtener NAT Disponible, bien con Firestarter o bien instalando paquetes de los repositorios.

Saludos.
no, necesitas hacerlo con iptables.

si dieses mas datos, como por ejemplo, dirección de red de tu lan, igual y te puedo hacer un script básico en un momentillo. Tampoco es que tenga mucho misterio

salu2!

edit: me abuirro mucho
te he hecho el script

#!/bin/sh

## Limpiar las reglas del iptables
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Politicas por defecto
#aceptamos todo lo entrante
iptables -P INPUT ACCEPT

#aceptamos todo lo saliente
iptables -P OUTPUT ACCEPT

#aceptamos todo el trafico de las lans AL EXTERIOR
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT



#Habilitamos los puertos que utiliza la xbox
iptables -A FORWARD -d [IPXBOX] -p udp --dport 88 -j ACCEPT
iptables -A FORWARD -s [IPXBOX] -p udp --sport 88 -j ACCEPT
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -i [INTXBOX] -p tcp --dport 88 -j DNAT --to [IPXBOX]:88
iptables -A FORWARD -d [IPXBOX] -p udp --dport 3074 -j ACCEPT
iptables -A FORWARD -s [IPXBOX] -p udp --sport 3074 -j ACCEPT
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -i [INTXBOX] -p tcp --dport 3074 -j DNAT --to [IPXBOX]:3074
iptables -A FORWARD -d [IPXBOX] -p tcp --dport 3074 -j ACCEPT
iptables -A FORWARD -s [IPXBOX] -p tcp --sport 3074 -j ACCEPT
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -i [INTXBOX] -p tcp --dport 3074 -j DNAT --to [IPXBOX]:3074


# Ahora hacemos enmascaramiento de la red local
iptables -t nat -A POSTROUTING -s [REDXBOX] -o [INTXBOX] -j MASQUERADE


# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward


echo "todo correcto"
echo "ejecuta iptables -L -n para ver si es correcto todo"


bueno, te explico, lo que está entre corchetes es lo siguiente

[IPXBOX]: es la ip de tu xbox
[INTXBOX]: la interfaz de red donde tienes conectada la xbox (ej. eth0 eth1 ethx...)
[REDXBOX]: es la dirección de red, es decir si la ip que tiene tu xbox es 192.168.1.1 y tu máscara 255.255.255.0 tendrás que poner 192.168.1.0/24 (si tienes preguntas en esto, dime la ip que tienes y su mascara y te lo digo

pues nada, espero te sirva. ya me contarás

Salu2
Yo usaba un script y dejé de lado el firestarter o cualquier otro firewall, realmente el script te da más control y un funcionamiento más limpio y rápido. En los foros de Ubuntu-es hay unos cuantos aunque seguro que el que se ha currado Joraco te rula.
Lo primero, gracias a joraco y Virdi por responder.

Hoy he estado probando tu script y en el PC se ejecuta todo correcto pero a la hora de hacer la prueba de red en la XBox me da error en las DNS. Te paso los datos que tengo tanto en la conexión de mi PC como en la 360, así como lo que he puesto en las variables que me dijiste:

En el PC

"eth0" = Mi conexión a Internet. Cablemodem ONO con ip asignada por DHCP.
"eth1" = Conexión de área local (la de la Xbox). Con los siguientes datos:

IP: 192.168.0.1
Máscara de subred: 255.255.255.0
Puerta de enlace: En blanco

En la Xbox360

Dirección IP: Automático (192.168.0.50)
Máscara de subred: 255.255.255.0 (La misma que en el PC)
DNS: Automático

Datos de las variables

[IPXBOX]: 192.168.0.1
[INTXBOX]: eth1
[REDXBOX]: He puesto 192.168.0.0/24


Saludos, y gracias.
vale, dos cosas

[IPXBOX]tiene q ser otra, por ejemplo la q tienes ahora 192.168.0.50, pero mejor establecela manualmente en la 360, en puerta de enlace de la 360 la ip del pc (es decir 192.168.0.1) y en dns pon 80.58.0.33 y (opcionalmente) 80.58.32.97.

Con eso ya no te tiene que da problemas

Salu2 y ya contarás
Bueno, he probrado lo que me dices y la conexión funciona y pasa todas las pruebas pero sigue dándome NAT Moderada. Así que supongo que deberé trastear con el miniupnpd o esperar a que saquen algún paquete o integren la NAT en el Firestarter.


De todas formas, muchas gracias joraco.
Weno ahora que he acabado el cole, igual y me pongo a hacer pruebas, que me ha parecido un tema interesante. Ya os diré algo

See yours
6 respuestas