# Error al compartir internet desde Gentoo a XP, con iptables

## Pablo S. Barrera

Hola. Tengo un problema al compartir internet. Lo estoy haciendo por iptables.

Gentoo con dos placas de red, eth0 con un cable cruzado va hacia Xp y eth1 a internet.

En Gentoo las placas estan seteadas como

192.168.1.1

192.168.1.2

y en XP 192.168.1.3 con puerta de enlace 192.168.1.1, mascara 255.255.255.0 y los dns correspondientes.

Les muestro el script

```
tux pablo # cat /etc/init.d/Muro

#Seteo de IPs

ifconfig eth0 up 192.168.1.1

echo -e '\E[32;25m' "\033[1mSetenado eth0 con la ip 192.168.1.1         OK\033[0m"

ifconfig eth1 up 192.168.1.2

echo -e '\E[32;25m' "\033[1mSeteando eth1 con la ip 192.168.1.2         OK\033[0m"

echo -e '\E[32;25m' "\033[1mAplicando Reglas                            OK\033[0m"

#Flush de reglas

iptables -F

iptables -X

iptables -Z

iptables -t nat -F

echo -e '\E[32;25m' "\033[1mFlush de Reglas                             OK\033[0m"

#Politica por defecto

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

echo -e '\E[32;25m' "\033[1mPoliticas                                   OK\033[0m"

#Filtros

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -s 192.168.1.3 -i eth0 -j ACCEPT

iptables -t nat -A POSTROUNTING -s 192.168.1.3 -o eth0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

```

Algo esta mal? Algo falta? Les agradezco de antemano. 

Los pings funcionan bien de un lado al otro.

----------

## alchemist

Agregaste los DNS en la configuracion de red de tu windows xp?.

Si te conectas directamente a internet, sería -o ppp0 en vez de -o eth0.

Ojalá te sirva de algo.

Adios.

----------

## Stolz

Supongo que habrás leído la Guía de enrutamiento doméstico y la estás siguiendo para no omitir ningún paso. En caso negativo, ya sabes  :Wink: . En caso afirmativo, olvida el post  :Smile: 

----------

## Pablo S. Barrera

Gracias a ambos. Pruebo todo y les cuento. Muy amables.

----------

## Pablo S. Barrera

Es necesario hacer todo eso del enrutamiento casero? Es un re lio.. En este momento no puedo probarlo.. voy a cambiar eth0 por ppp0

----------

## Stolz

No, no es necesario. Solo hay que hacer el punto 2, parte del punto 3, el punto 4 si no lo tienes ya hecho y parte del punto 5. El resto es opcional.

----------

## Pablo S. Barrera

Estoy recompilando el kernel.. Les comento que gran parte de las cosas no estan como ahi dice.. tengo el kernel 2.6.17-7, esta bastante variado, tuve que poner las cosas pero estan en otro lugar..  

Me refiero a todo esto:

```
  Networking options  --->

     [*] TCP/IP networking

        [*] IP: advanced router

     [*] Network packet filtering (replaces ipchains)

Si utiliza 2.4.x, debe habilitar los siguiente para el DHCP:

     [*] Socket Filtering

     

     IP: Netfilter Configuration  --->

        [*] Connection tracking (required for masq/NAT)

           [x] FTP protocol support

           [x] IRC protocol support

        [*] IP tables support (required for filtering/masq/NAT)

           [*] IP range match support

           [x] MAC address match support

           [*] Multiple port match support

           [*] Packet filtering

              [*] REJECT target support

              [x] REDIRECT target support

           [*] Full NAT

              [*] MASQUERADE target support

           [s] Packet mangling

              [s] MARK target support

           [x] LOG target support

     QoS and/or fair queueing  --->

        [s] QoS and/or fair queueing

           [s] HTB packet scheduler

           [s] Ingress Qdisc

     [a] PPP (point-to-point protocol) support

        [a] PPP filtering

        [a] PPP support for async serial ports

        [a] PPP support for sync tty ports

        [a] PPP Deflate compression

        [a] PPP BSD-Compress compression

        [a] PPP over Ethernet
```

Sigo con la guia..

----------

## Pablo S. Barrera

Tengo unos cuantos problemas con net.eht0 con net.eth1 no logro configurar bien estos servicios..

Son necesarios? porque realice un script donde levanta las placas, las setea, los dns, todo.. ojo aun no pobre si todo funciona.. pero queria saber si intervienen estos servicios con el enmascaramiento.

----------

## Stolz

Esos servicios levantan las interfaces de red. Por supuesto, si te apañas mejor haciendolo manualmente a base de comandos ifconfig, route o similares, puedes prescindir de ellos pero considero que es mucho mejor usar las facilidades de configuración que ofrece Gentoo

----------

## Pablo S. Barrera

Me amotine! jaja

Cambie unas cuantas cosas.

Asi quedo todo..

El firewall 

```

#!/bin/bash

#Seteo de IPs

ifconfig eth0 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0 up

echo -e '\E[32;25m' "\033[1mSetenado eth0 con la ip 192.168.0.1         OK\033[0m"

ifconfig eth1 192.168.0.2 up

echo -e '\E[32;25m' "\033[1mSeteando eth1 con la ip 192.168.0.2         OK\033[0m"

echo -e '\E[32;25m' "\033[1mAplicando Reglas                            OK\033[0m"

#Flush de reglas

iptables -F

iptables -t nat -F

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -s 192.168.0.1/24 -d 0.0.0.0/0 -j ACCEPT

iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE

```

ifconfig

```
tux pablo # ifconfig

eth0      Link encap:Ethernet  HWaddr 00:08:54:0C:48:A9

          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          Interrupt:5 Base address:0xd000

eth1      Link encap:Ethernet  HWaddr 00:0E:A6:7B:72:D4

          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:586 errors:0 dropped:0 overruns:0 frame:0

          TX packets:549 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:353461 (345.1 Kb)  TX bytes:53135 (51.8 Kb)

          Interrupt:11 Base address:0xec00

lo        Link encap:Local Loopback

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:29 errors:0 dropped:0 overruns:0 frame:0

          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:1618 (1.5 Kb)  TX bytes:1618 (1.5 Kb)

ppp0      Link encap:Point-to-Point Protocol

          inet addr:201.250.sss.xxx  P-t-P:200.51.241.225  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1

          RX packets:566 errors:0 dropped:0 overruns:0 frame:0

          TX packets:530 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:3

          RX bytes:339719 (331.7 Kb)  TX bytes:40844 (39.8 Kb)

```

iptables -t nat -L

```
tux pablo # iptables -t nat -L

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination

ACCEPT     all  --  192.168.0.0/24       anywhere

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination

MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

```

Mañana lo pruebo y les cuento. Gracias a todos pero el manual ese se me complico demasiado..

----------

## Stolz

Si cambias de opinión y prefieres usar el "método Gentoo", para sustituir tus scripts bastaría con ejecutar lo siguiente una sola vez, el resto de reinicios se ejecutaría todo de forma automática:

Crea /etc/conf.d/net con el siguiente contenido

 *Quote:*   

> config_eth0=( "192.168.0.1 netmask 255.255.255.0 brd 192.168.0.255" )
> 
> config_eth1=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )

 

Añade a /etc/conf.d/local.start la línea 

 *Quote:*   

> echo 1 > /proc/sys/net/ipv4/ip_forward

 

Ejecuta

```
iptables -F

iptables -t nat -F

iptables -t nat -A PREROUTING -s 192.168.0.1/24 -d 0.0.0.0/0 -j ACCEPT

iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE 

/etc/init.d/iptables save
```

Que conste que solo me he limitado a "tarducir" los comandos, no he verificado que sean cortrectos ni que se sirvan para lo que quieres   :Rolling Eyes: 

----------

## Pablo S. Barrera

Gracias! Me gusta lo democratica que es tu explicacion. 

Mañana veo si funciona y hago esto que me decis. Espero funcione y has sido muy amable, por lo cual te agradezco, sin excluir futuras consultas! jaja.

Saludos y que tengas un buen fin de semana.

----------

