<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El rincón de Zerial &#187; redes</title>
	<atom:link href="http://blog.zerial.org/tag/redes/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerial.org</link>
	<description>Informática, GNU/Linux, Seguridad, Hacking, Programación, Ocio</description>
	<lastBuildDate>Wed, 08 Feb 2012 20:48:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Nueva infraestructura de red, torre triangular y antenas Yagi para el hacklab</title>
		<link>http://blog.zerial.org/proyectos/nueva-infraestructura-de-red-torre-triangular-y-antenas-yagi-para-el-hacklab/</link>
		<comments>http://blog.zerial.org/proyectos/nueva-infraestructura-de-red-torre-triangular-y-antenas-yagi-para-el-hacklab/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 01:18:44 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[aircrack]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[hacklab]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1650</guid>
		<description><![CDATA[En el hacklab estamos remodelando la infraestructura de red, en simples palabras lo que buscamos es mejorar la disponibilidad de internet y de los recursos que queremos ofrecer. Para esto hemos pensado junto a xwall en armar una estructura donde poder poner un pc y un par de antenas. El esquema de lo que tenemos [...]]]></description>
			<content:encoded><![CDATA[<p>En el <a href="http://hacklab.cl">hacklab</a> estamos remodelando la infraestructura de red, en simples palabras lo que buscamos es mejorar la disponibilidad de internet y de los recursos que queremos ofrecer. Para esto hemos pensado junto a xwall en armar una estructura donde poder poner un pc y un par de antenas.</p>
<p>El esquema de lo que tenemos en mente es el siguiente:</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/04/DiagramaRedTola.png"><img class="aligncenter size-full wp-image-1656" title="DiagramaRedTola" src="http://blog.zerial.org/wp-content/uploads/2010/04/DiagramaRedTola.png" alt="" width="666" height="319" /></a></p>
<p>Podemos ver tres antenas sobr ela torre triangular, las identifiqué como &#8220;verde&#8221;, &#8220;roja&#8221; y &#8220;negra&#8221;. El color verde simboliza nuestra LAN y nuestra WLAN y la roja nuestra DMZ donde se encuentran nuestros servidores con nombres de personajes de los simpsons.<br />
La idea principal de todo esto es tener dos redes separadas, nuestra WLAN y LAN que simplemente tenga acceso a internet y que nuestra DMZ tenga entrada y salida a internet, mediante una VPN, un tunel o como sea, la idea es dejar abierto los servidores al público y en algun momento (cuando armemos el proyecto) entregar accesos a shell para servicios de anonimato para quienes lo necesiten.</p>
<p><span id="more-1650"></span></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/04/IMG00070-20100411-1501.jpg"><img class="aligncenter size-medium wp-image-1659" title="IMG00070-20100411-1501" src="http://blog.zerial.org/wp-content/uploads/2010/04/IMG00070-20100411-1501-300x225.jpg" alt="" width="460" height="345" /></a></p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fproyectos%2Fnueva-infraestructura-de-red-torre-triangular-y-antenas-yagi-para-el-hacklab%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/proyectos/nueva-infraestructura-de-red-torre-triangular-y-antenas-yagi-para-el-hacklab/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/proyectos/nueva-infraestructura-de-red-torre-triangular-y-antenas-yagi-para-el-hacklab/"  data-text="Nueva infraestructura de red, torre triangular y antenas Yagi para el hacklab" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/proyectos/nueva-infraestructura-de-red-torre-triangular-y-antenas-yagi-para-el-hacklab/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Violando sistemas: Sniffeando la red</title>
		<link>http://blog.zerial.org/seguridad/violando-sistemas-sniffeando-la-red/</link>
		<comments>http://blog.zerial.org/seguridad/violando-sistemas-sniffeando-la-red/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 01:42:12 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[man in the middle]]></category>
		<category><![CDATA[mitm]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[sniffers]]></category>
		<category><![CDATA[tcpdump]]></category>
		<category><![CDATA[wireshark]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1626</guid>
		<description><![CDATA[Cuando se logra vulnerar la seguridad de un sistema informático y obtenemos acceso al servidor tenemos varias formas de continuar el ataque, ya sea revisando los archivos del servidor buscando información interesante, controlar distintos servicios como el de base de datos o de correo, revisar la información de cada usuario de sistema, dejar una puerta [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-1631" style="margin: 4px;" title="spying" src="http://blog.zerial.org/wp-content/uploads/2010/03/spying-233x300.jpg" alt="" width="192" height="246" />Cuando se logra vulnerar la seguridad de un sistema informático y obtenemos acceso al servidor tenemos varias formas de continuar el ataque, ya sea revisando los archivos del servidor buscando información interesante, controlar distintos servicios como el de base de datos o de correo, revisar la información de cada usuario de sistema, dejar una puerta trasera para volver a ingresar al servidor, etc. Una de las cosas que más me gustan es saltar a otros servidores, hacer un análisis de la red y poder tener control sobre la mayor cantidad de máquinas que forman la red, ya sean servidores físicos o virtuales.<br />
El primer paso para armar un diagrama lógico de red es empezare a ver la configuración de la o las tarjetas de red, ver los últimos accesos que se han hecho en forma local o desde la lan, revisar logs, archivo de hosts y obviamente empezar a escanear usando nmap (obviamente de forma local) o alguna otra utilidad que tenga instalada o que podamos instalar. Si no tenemos nmap lo podemos hacer con un simple script en bash que haga ping a todo un rango y nos diga qué dirección está arriba:</p>
<pre name="code" class="c">#!/bin/bash
NETWORK=192.168.1
FROM=100
TO=110
for x in $(seq $FROM $TO)
do
	ping -c 1 $NETWORK.$x &gt;/dev/null 2&gt;&amp;1
	if [ $? -eq 0 ]; then
		echo $NETWORK.$x is up.
	else
		echo $NETWORK.$x is down.
	fi
done</pre>
<p>Una vez que tengamos el mapa mental-lógico de la red podemos empezar a analizar el tráfico que pasa por ellas y acá es donde entran en juego los famosos <em>sniffers</em>, que nos ayudarán a reforzar nuestro diagrama:</p>
<p><span id="more-1626"></span></p>
<blockquote><p>En informática, un packet sniffer es un programa de captura de las tramas de red.</p></blockquote>
<p>Existen distintos métodos y herramientas para sniffear y para envenenar la red.</p>
<p><strong><a href="http://ettercap.sf.net">ettercap</a></strong> Ettercap es un interceptor/sniffer/registrador para LANs con switch. Soporta direcciones activas y pasivas de varios protocolos (incluso aquellos cifrados, como SSH y HTTPS). También hace posible la inyección de datos en una conexión establecida y filtrado al vuelo aun manteniendo la conexión sincronizada gracias a su poder para establecer un Ataque Man-in-the-middle(Spoofing). Muchos modos de sniffing fueron implementados para darnos un conjunto de herramientas poderoso y completo de sniffing.</p>
<p><strong><a href="http://www.tcpdump.org/">tcpdump</a></strong> es un herramienta en línea de comandos cuya utilidad principal es analizar el tráfico que circula por la red. Permite al usuario capturar y mostrar a tiempo real los paquetes transmitidos y recibidos en la red a la cual el ordenador está conectado. Está escrito por Van Jacobson, Craig Leres, y Steven McCanne que trabajaban en &#8230; (<a href="http://es.wikipedia.org/wiki/Tcpdump">más</a>)</p>
<p><strong><a href="http://www.wireshark.org">wireshark o ethereal</a></strong> La funcionalidad que provee es similar a la de tcpdump, pero añade una interfaz gráfica y muchas opciones de organización y filtrado de información. Así, permite ver todo el tráfico que pasa a través de una red (usualmente una red Ethernet, aunque es compatible con algunas otras) estableciendo la configuración en modo promiscuo. También incluye una versión basada en texto llamada tshark.</p>
<p>(<em>nota: Las definiciones fueron obtenidas desde Wikipedia</em>)</p>
<p>Luego de identificar qué máquinas nos interesan, podemos aplicar la técnica del <em>hombre en el medio (Man In The Middle)</em> o MiTM para capturar información para poder acceder a otros sistemas.</p>
<p>Link: <strong><a href="http://sectools.org/sniffers.html">Top 11 Packet Sniffers</a></strong></p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fviolando-sistemas-sniffeando-la-red%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/violando-sistemas-sniffeando-la-red/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/violando-sistemas-sniffeando-la-red/"  data-text="Violando sistemas: Sniffeando la red" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/violando-sistemas-sniffeando-la-red/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para escanear la red en busca de servidores y servicios</title>
		<link>http://blog.zerial.org/linux/script-para-escanear-la-red-en-busca-de-servidores-y-servicios/</link>
		<comments>http://blog.zerial.org/linux/script-para-escanear-la-red-en-busca-de-servidores-y-servicios/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 13:40:07 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[puertos]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[scan]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[servicios]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1515</guid>
		<description><![CDATA[Hace un par de días tuve la necesidad de escanear 3 redes completas, mas de 50 direcciones ip, en busca de servicios que corrieran en ellas. Obviamente, no iba a ingresar a cada servidor y hacer un netstat o revisar uno por uno que servicios tenia instalado, si para eso existe nmap! Lo que hicste [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zerial.org/wp-content/uploads/2010/02/eyes_scan1.png"><img class="aligncenter size-full wp-image-1519" title="eyes_scan" src="http://blog.zerial.org/wp-content/uploads/2010/02/eyes_scan1.png" alt="" width="422" height="80" /></a></p>
<p>Hace un par de días tuve la necesidad de escanear 3 redes completas, mas de 50 direcciones ip, en busca de servicios que corrieran en ellas. Obviamente, no iba a ingresar a cada servidor y hacer un <em>netstat</em> o revisar uno por uno que servicios tenia instalado, si para eso existe <a href="http://nmap.org" target="_blank"><strong>nmap</strong></a>!<br />
Lo que hicste fue separar los rangos de ip en archivos distintos, para tener un orden y escanear la red en orden según los segmentos y luego hice un script que leia cada archivo y escaneaba la ip en busca de servicios, la salida del nmap la <em>parseaba</em> y lo guarda en un archivo separado por comas. En un principio el script mostraba todo en el <strong>stdout</strong> pero para que quedara más ordenado, preferí hacerlo en un CSV para poder abrirlo con <em>oocalc</em>.<br />
El script me genera un archivo con la siguiente información:</p>
<p><strong>host, IP, Servicio, Puerto, Version</strong></p>
<p><span id="more-1515"></span></p>
<p>El script es el siguiente:</p>
<pre name="code" class="c">
#!/bin/bash

nmap=/usr/bin/nmap
params="-sV"
tmp_file=/tmp/nmap_scanner_output
output=Servidores.csv
export SCANNER_ERROR=0

echo "host,IP,Servicio,Puerto,Version" >> $output
for ips in ips.*
do
	echo "Analizando $ips ..."
	for ip in $(cat $ips)
	do
		echo -e "\t-> $ip ..."
		ping -c 1 $ip 1>/dev/null 2>&#038;1|| export SCANNER_ERROR=1
		if [ $SCANNER_ERROR = "1" ]; then
			echo -e "\t\t- Host no activo"
		fi
		if [ $SCANNER_ERROR = "0" ]; then
			$nmap $params $ip |grep -v "Starting Nmap" |grep -v "Nmap scan report" |grep -v "Host is up" |grep -v "Not shown" |grep -v "Service detection performed" |grep -v "Nmap done" > $tmp_file
			export _host=$(grep "Service Info" $tmp_file |sed 's/,//g'|grep "Host" |awk -F ' ' {'print $4'} |sed 's/;//g')
			grep tcp $tmp_file |scanner_ip=$ip awk -F " " '{print ENVIRON["_host"]","ENVIRON["scanner_ip"]","$3","$1","$4,$5,$6,$7,$8;}' >>$output
			echo -e "\n" >>$output
		fi
		export SCANNER_ERROR=0
	done
done
</pre>
<p>El script necesita para funcionar archivos con el listado de direcciones ip. Los (o el) archivo(s) se deben llamar &#8220;<em>ips.<algo></algo></em>&#8220;. En mi caso, tengo los siguientes archivos:<br />
<code>ips.192 ips.10 ips.172</code><br />
Dentro de cada archivo hay direcciones del tipo 192.168.0.X, 10.0.0.X, 172.20.20.X&#8230;</p>
<p><code>$ sh scan.sh<br />
Analizando ips.10 ...<br />
	-&gt; 10.0.0.2 ...<br />
	-&gt; 10.0.0.3 ...<br />
	-&gt; 10.0.0.11 ...<br />
		- Host no activo<br />
	-&gt; 10.0.0.20 ...<br />
		- Host no activo<br />
	-&gt; 10.0.0.21 ...<br />
		- Host no activo<br />
	-&gt; 10.0.0.70 ...<br />
	-&gt; 10.0.0.72 ...<br />
	-&gt; 10.0.0.73 ...<br />
Analizando ips.172 ...<br />
	-&gt; 172.20.20.2 ...<br />
	-&gt; 172.20.20.3 ...<br />
Analizando ips.192 ...<br />
	-&gt; 192.168.0.55 ...<br />
	-&gt; 192.168.0.101 ...</p>
<p>[...]</code></p>
<p>El script generará un output a un archivo llamado &#8220;Servidores.csv&#8221;, el cual lo podemos encontrar en la misma ruta donde tenemos el script.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fscript-para-escanear-la-red-en-busca-de-servidores-y-servicios%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/linux/script-para-escanear-la-red-en-busca-de-servidores-y-servicios/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/linux/script-para-escanear-la-red-en-busca-de-servidores-y-servicios/"  data-text="Script para escanear la red en busca de servidores y servicios" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/script-para-escanear-la-red-en-busca-de-servidores-y-servicios/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SSH, Port Forwarding y Tunneling: Saltarse las restricciones del firewall</title>
		<link>http://blog.zerial.org/seguridad/ssh-port-forwarding-y-tunneling-saltarse-las-restricciones-del-firewall/</link>
		<comments>http://blog.zerial.org/seguridad/ssh-port-forwarding-y-tunneling-saltarse-las-restricciones-del-firewall/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 19:59:04 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[bypass]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[port forwarding]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tunneling]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1502</guid>
		<description><![CDATA[En mi nuevo lugar de trabajo, misteriosamente está bloqueado por el firewall, entre otras cosas, la salida al puerto 25 de cualquier servidor. Desde mi portatil uso el cliente de correo Thunderbird conectandose a distintas cuentas  de correo que tengo alojadas en Google Apps asi que no podía quedarme sin revisar mis cuentas de correo, [...]]]></description>
			<content:encoded><![CDATA[<p>En mi nuevo lugar de trabajo, misteriosamente está bloqueado por el firewall, entre otras cosas, la salida al puerto 25 de cualquier servidor. Desde mi portatil uso el cliente de correo Thunderbird conectandose a distintas cuentas  de correo que tengo alojadas en Google Apps asi que no podía quedarme sin revisar mis cuentas de correo, por lo que tuve que buscar la forma de hacerlo.<br />
<a href="http://blog.zerial.org/wp-content/uploads/2010/02/firwall.png"><img class="alignleft size-medium wp-image-1503" title="firwall" src="http://blog.zerial.org/wp-content/uploads/2010/02/firwall-300x167.png" alt="" width="250" height="139" /></a>Lo primero que se me vino a la cabeza es hacer un port forwarding con ssh usando un servidor externo, sabiendo que tengo el puerto 22 desbloqueado para salir. Entonces, accedería a cualquier servicio corriendo en el puerto 25 mediante un redireccionamiento a traves del puerto 22. Con esta técnica podemos saltarons el firewall y todas las restricciones.</p>
<p><span id="more-1502"></span></p>
<p>El port forwarding, según el mismo manual de ssh, corresponde a:</p>
<blockquote><p>Specifies that the given port on the local (client) host is to be<br />
forwarded to the given host and port on the remote side.  This<br />
works by allocating a socket to listen to port on the local side,<br />
optionally bound to the specified bind_address.  Whenever a con-<br />
nection is made to this port, the connection is forwarded over<br />
the secure channel, and a connection is made to host port<br />
hostport from the remote machine.	Port forwardings can also be<br />
specified in the configuration file.  IPv6 addresses can be spec-<br />
ified with an alternative syntax:<br />
[bind_address/]port/host/hostport or by enclosing the address in<br />
square brackets.  Only the superuser can forward privileged<br />
ports.  By default, the local port is bound in accordance with<br />
the GatewayPorts setting.	However, an explicit bind_address may<br />
be used to bind the connection to a specific address.  The<br />
bind_address of &#8220;localhost&#8221; indicates that the listening port<br />
be bound for local use only, while an empty address or &#8216;*&#8217; indi-<br />
cates that the port should be available from all interfaces.</p></blockquote>
<p>En simples palabras, lo que se hace, es habilitar un puerto local, por el cual se hara un redireccionamiento, a traves de ssh y el servidor remoto, hacia nuestro destino.</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/02/SSH-Portforwarding.png"><img class="aligncenter size-full wp-image-1507" title="SSH-Portforwarding" src="http://blog.zerial.org/wp-content/uploads/2010/02/SSH-Portforwarding.png" alt="" width="628" height="472" /></a></p>
<h2>Paso a paso</h2>
<p>Mapear la dirección de destino a nuestor localhost, en mi caso (y como ejemplo) usaré <strong>smtp.gmail.com</strong>. Debemos editar el <em>/etc/hosts</em> y agregar a la línea de 127.0.0.1 nuestro destino:<br />
<code>127.0.0.1		localhost.localdomain	localhost smtp.gmail.com</code><br />
Verificamos:<br />
<code> $ ping -c1 smtp.gmail.com<br />
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.<br />
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.038 ms</code><br />
Ahora, para nuestro sistema, el host smtp.gmail.com está apuntando a nuestra misma máquina.</p>
<p>Ahora, hacemos el port forwading usando el parámetro <strong>-L</strong> de la siguiente forma:<br />
<code># ssh -L25:smtp.gmail.com:25 zerial@mydomain.org</code></p>
<p>Una véz logeados, ya va a estar hecho el redireccionamiento de puerto. Lo que hacemos con esa linea es decirle que todo el trafico desde <strong>localhost:25</strong> lo lleve a traves de <strong>mydomain.org:22</strong> a nuestro destino <strong>smtp.gmail.com:25</strong>.</p>
<p>Ahora realizamos la prueba, para ver si realmente tenemos salida a <strong>smtp.gmail.com:25</strong>:<br />
<code>$ telnet localhost 25<br />
Trying 127.0.0.1...<br />
Connected to localhost.<br />
Escape character is '^]'.<br />
220 mx.google.com ESMTP 42sm25383892vws.12</code></p>
<p>Listo. Obviamente, el Firewall no podrá bloquear el tráfico de <em>localhost</em> y tampoco el de ssh, ya que va <strong>cifrado</strong>.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fssh-port-forwarding-y-tunneling-saltarse-las-restricciones-del-firewall%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/ssh-port-forwarding-y-tunneling-saltarse-las-restricciones-del-firewall/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/ssh-port-forwarding-y-tunneling-saltarse-las-restricciones-del-firewall/"  data-text="SSH, Port Forwarding y Tunneling: Saltarse las restricciones del firewall" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/ssh-port-forwarding-y-tunneling-saltarse-las-restricciones-del-firewall/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Balancear la carga manualmente (definir mas de un gateway)</title>
		<link>http://blog.zerial.org/linux/manual-load-balancing/</link>
		<comments>http://blog.zerial.org/linux/manual-load-balancing/#comments</comments>
		<pubDate>Mon, 18 May 2009 00:47:55 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[llinux]]></category>
		<category><![CDATA[load balancing]]></category>
		<category><![CDATA[network balancing]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[route]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=286</guid>
		<description><![CDATA[La idea de balancear la carga manualmente es poder definir más de un gateway para distintos destinos, especificados por nosotros mismos. De esta manera, podremos tener dos o más salidas a internet y definir salidas hacia distintos rangos de direcciones ip. Esto sirve de gran utilidad cuando nos conectamos a una red wifi que -por [...]]]></description>
			<content:encoded><![CDATA[<p>La idea de balancear la carga manualmente es poder definir más de un <em>gateway</em> para distintos destinos, especificados por nosotros mismos. De esta manera, podremos tener dos o más salidas a internet y definir salidas hacia distintos rangos de direcciones ip.</p>
<p><center><img class="aligncenter size-full wp-image-291" title="multi gateway" src="http://blog.zerial.org/wp-content/uploads/2009/05/multigw.png" alt="multi gateway" width="332" height="461" /></center></p>
<p>Esto sirve de gran utilidad cuando nos conectamos a una red wifi que -<em>por casualidad</em>- llega hasta nuestro lugar de trabajo o nuestras casas e <em>inocentemente</em> queremos usarla. Por ejemplo, si tenemos un lugar de descargas, podemos dejar una máquina con una <a href="http://en.wikipedia.org/wiki/Static_route" target="_blank">ruta estática</a> que haga que cuando conecte a una IP x.x.x.x su salida a internet sea por el gateway predefinido por nosotros.<br />
Para esto vamos a usar el comando <strong><em>route</em></strong>.</p>
<p><span id="more-286"></span></p>
<p>En este ejemplo, usaremos los destinos mi blog (este sitio), Google y Yahoo, para definir distintas salidas.<br />
El primer paso consiste en identificar la dirección IP a la que queremos definir un gateway por defecto estático, batsa con que hagamos un <em>ping</em> al dominio de destino.</p>
<p><code>[zerial@daila ~]$ ping -c1 google.cl<br />
PING google.cl (216.239.59.104) 56(84) bytes of data.<br />
64 bytes from gv-in-f104.google.com (216.239.59.104): icmp_seq=1 ttl=243 time=258 ms<br />
[zerial@daila ~]$ ping -c1 yahoo.es<br />
PING yahoo.es (217.146.186.221) 56(84) bytes of data.<br />
64 bytes from rc1.vip.ird.yahoo.com (217.146.186.221): icmp_seq=1 ttl=53 time=251 ms<br />
[zerial@daila ~]$ ping -c1 blog.zerial.org<br />
PING blog.zerial.org (72.14.186.179) 56(84) bytes of data.<br />
64 bytes from blog.zerial.org (72.14.186.179): icmp_seq=1 ttl=55 time=189 ms</code><br />
Ya tenemos identificadas las tres direcciones IP de destino:</p>
<blockquote><p>blog.zerial.org <strong>-></strong> 72.14.186.179<br />
google.cl <strong>-></strong> 216.239.59.104<br />
yahoo.es <strong>-></strong> 217.146.186.221</p></blockquote>
<p>En nuestra red local tenemos 3 gateways disponibles, por ejemplo los con la direccion ip <strong>192.168.0.1, 192.168.0.2 y 192.168.0.3</strong>.<br />
Haremos que para llegar a <em>blog.zerial.org</em> usemos el gateway 1, a <em>google.cl</em> el gateway 2 y a <em>yahoo.es</em> el gateway 3.<br />
Ejecutamos las siguientes reglas:<br />
<code>[root@daila ~]# route add -host 72.14.186.179 gw 192.168.0.1<br />
[root@daila ~]# route add -host 216.239.59.104 gw 192.168.0.2<br />
[root@daila ~]# route add -host 217.146.186.221 gw 192.168.0.3</code></p>
<p>Podemos comprobarlo haciendo una traza (<em>traceroute</em>) a los distintos destinos, veremos que el primer salto es nuestro nuevo gateway.<br />
<code>[root@daila ~]# traceroute blog.zerial.org<br />
traceroute to blog.zerial.org (72.14.186.179), 30 hops max, 40 byte packets<br />
  1  192.168.0.1 (192.168.0.1)  1.582 ms  2.249 ms  3.687 m<br />
[root@daila ~]# traceroute blog.zerial.org<br />
traceroute to google.cl (216.239.59.104), 30 hops max, 40 byte packets<br />
  1  192.168.0.2 (192.168.0.2)  2.582 ms  2.256 ms  3.187 m<br />
[root@daila ~]# traceroute yahoo.es<br />
traceroute to yahoo.es (217.146.186.221), 30 hops max, 40 byte packets<br />
  1  192.168.0.3 (192.168.0.3)  1.555 ms  1.249 ms  3.688 m</code></p>
<p>Tambien podemos definir distintos gateways para distintos rangos de direcciones IP, para esto debemos cambiar el parametro <strong>-host < host></strong> por <strong>-net < NET></strong>.<br />
Por ejemplo, ejecutamos el comando <strong>whois</strong> sobre la ip de <em>zerial.org</em><br />
<code>[zerial@daila ~]$ whois 72.14.186.179<br />
[...]<br />
NetRange:   72.14.176.0 - 72.14.191.255<br />
CIDR:       72.14.176.0/20<br />
[...]</code><br />
Nos interesa lo que dice NetRange y CIDR, entonces ejecutamos:<br />
<strong>[root@daila ~]# route add -net 72.14.176.0 gw 192.168.0.2</strong><br />
De esta forma, todas las salidas a las direcciones ip que incluye la red 72.14.176.0 serán despachadas por el gateway 192.168.0.2.</p>
<p><strong>editado</strong> Haldrik escribió en <a href="http://gnu-haldrik.blogspot.com">su blog</a> algo similar, que nos puede servir para <a href="http://gnu-haldrik.blogspot.com/2009/05/balanceo-de-carga-con-dos-adsl-y-lenny.html">balancear la carga entre dos lineas adsl</a>. Recomiendo leerlo.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fmanual-load-balancing%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/linux/manual-load-balancing/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/linux/manual-load-balancing/"  data-text="Balancear la carga manualmente (definir mas de un gateway)" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/manual-load-balancing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

