[eside-ghost] recetas en wiki

Malkavian (MHVSS) :[ malkavian en confluencia.net
Mie Feb 9 03:46:47 CET 2005


>   Y ya puestos que ese alguien amable abra una pagina de 61-X con una
>   receta 61 en la que expliquen como activar el routing con esas 3
>   reglas magicas iptables -noseke -to nosekual (por favor todo esto
>   claro)
>   estas reglas hay que ponerlas cada vez que se arranca la maquina? es
>   decir poniendo un script /etc/init.d/algoquenomacuerdo? (esto se
>   hacerlo)

¿Te refieres a la receta nº 32 que ya está en la web? Confieso que por 
su nombre también me costó encontrarla, así que esperando que así sea 
más sencilla de localizar y esperando que nadie tenga nada en contra he 
añadido delante del antiguo título "Cómo configurar una máquina 
GNU/Linux para que enrute el tráfico desde y hacia Internet"  esto 
"Router software con iptables: "

También he añadido la línea explicativa "Podemos comprobar que esté 
bien:" que aclara para que es eso de:

cat /proc/sys/net/ipv4/ip_forward
1 


Y también he añadido la tilde que faltaba en "Con tan sólo esto" XDDD :P


A mi me aconsejaron en IRC otra instrucción para el Masquerading que yo 
tengo puesta así:

iptables -t nat -I POSTROUTING -o eth1 -s 172.26.1.0/24 -j SNAT --to 172.26.0.2


y según en la página  man  de "iptables" "-j SNAT" es mejor si te 
conectas con IPs estáticas y "-j MASQUERADE" para IPs dinámicas.


Yo tengo hecho un script llamado /etc/init.d/router.sh con permisos de 
ejecución pa to'l mundo con este contenido:

--------------------------------------------------

#! /bin/sh

#Sacado de 
http://eghost.deusto.es/phpwiki/index.php/ReceTas31-40#Receta_32

ifup eth0

#Activar el reenvío de paquetes:
echo 1 > /proc/sys/net/ipv4/ip_forward

#Limpiaremos las reglas del iptables:
iptables --flush
iptables --table nat --flush

#Activaremos el NAT con enmacaramiento en las reglas del iptables:

#Mejor la de MÁS abajo, así sólo lo hace pa una red, no pa too lo que le eches.
#iptables --table nat --append POSTROUTING --out-interface eth1 -j 
MASQUERADE

iptables -t nat -I POSTROUTING -o eth1 -s 172.26.1.0/24 -j SNAT --to 172.26.0.2
iptables --append FORWARD --in-interface eth0 -j ACCEPT

-----------------------------------------------------------

Como sólo lo uso cuando viene un amigo con el portátil conectándole a mi 
segunda tarjeta de red para que tenga acceso a todo (Juegos, DCC, 
archivos por MSN, etc...) no tengo que active en el arranque y lo 
ejecuto a mano.

Pero para que este siemrpe activo, sí, hay que hacer que el script se 
ejecute en el arranque. Para ello crea el script donde yo lo tengo y haz 
un link a el, o crea el script directamente en donde corresponde. 
Para buscar "donde corresponde" (si usas Debian, en otras puede 
diferir):

Miramos el runlevel por defecto en nuestro sistema:

malkavian en beavis:~$ grep initdefault /etc/inittab      
id:2:initdefault:

Mira el numerito que sale ahí, en mi caso es el 2.

Por tanto (en Debian) pon el script en /etc/rc2.d  (o el numerito que 
corresponda en tu caso).

Si no usas Debian (o la usas pero no te acuerdas) y no encuentras donde 
anda puedes hacer:

malkavian en beavis:~$ grep 2:wait /etc/inittab 
l2:2:wait:/etc/init.d/rc 2

(He usado "2:wait" pero valdrían otros números del 0 al 6 en principio, 
por si acaso uso el número del runlevel que se usa por defecto en mi 
sistema y a correr).
Vemos que el comando que ejecuta es "/etc/init.d/rc" con el parametro 
"2". Hacemos:


malkavian en beavis:~$ grep etc /etc/init.d/rc | grep S\*
  if [ -d /etc/rc$runlevel.d ]
		for i in /etc/rc$runlevel.d/K[0-9][0-9]*
	for i in /etc/rc$runlevel.d/S*
  			suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
  			stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
  			previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
# eof /etc/init.d/rc


Y vemos que sale unas cuantas veces el directorio "/etc/rc$runlevel.d/"

$runlevel no es otra cosa que un numerito para especificar dentro de las 
cosas que hace ese script sobre que runlevel debe trabajar, con lo que 
nuestro directorio de runlevel (recordando que en mi caso era el 2) 
sería:

/etc/rc2.d/  												


Nota: ¿Y como narices voy a recordar que tengo que buscar con grep "wait 
noseque" y "chorizosfritos"? Bueno, lo he hecho a base de grep por 
simplificar aquí, pero editando los archivos con tu editor preferido y 
mirando un poco es fácil descifrar donde buscar la información que 
queremos...

Si alguien ha llegado hasta aquí (puto chapas el malkavian, luego dice 
que estudia el cabrón... XDDD) y cree que esto debe ir pa una receta que 
pida y se le dará...

Para saber más sobre que es eso de los runlevels una breve y muy 
explicativa guía ;)  (encontrada vía http://google.es/linux ):
http://www.zonasiete.org/manual/ch14s02.html

-- 
	Agur: Malkavian (MHVSS) :[
------------------------------------------------------------------------
La página de Malkavian: H/P/V/C, linux, rol...         ALGÚN DÍA...
Miembro del Grupo de LinUxuarios de Bizkaia (GLUB)     http://glub.biz
Miembro de Kodeak, Ether, Eghost, GULA, GLUGI, Guardianes del Túmulo... 
------------------------------------------------------------------------
La guerra contra la SGAE ha comenzado, y sabemos quienes serán los vencedores. Porque somos más, somos mejores y somos quienes les damos de comer. http://www.putaSGAE.org
------------------------------------------------------------------------
Si no puedes convencerlos, confúndelos...


Más información sobre la lista de distribución eside-ghost