<?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>Notas de Samuel Giubi &#187; netfilter</title>
	<atom:link href="http://www.notasdesamuel.com/etiquetas/netfilter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.notasdesamuel.com</link>
	<description>Tecnología, Gadgets, iPhone, iPad, Android, Noticias, Internet.</description>
	<lastBuildDate>Wed, 01 Feb 2012 18:14:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Usando IPTables</title>
		<link>http://www.notasdesamuel.com/usando-iptables/</link>
		<comments>http://www.notasdesamuel.com/usando-iptables/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 14:48:50 +0000</pubDate>
		<dc:creator>Samuel Giubi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[netfilter]]></category>

		<guid isPermaLink="false">http://www.notasdesamuel.com/?p=1050</guid>
		<description><![CDATA[IPTables es una herramienta a través de la cual los administradores crean reglas para cada filtrado de paquetes y módulos de NAT. IPTables es la herramienta estándar de todas las distribuciones modernas de GNU/Linux; y hoy aprenderemos cómo usarlo y [&#8230;]]]></description>
			<content:encoded><![CDATA[<p><strong>IPTables </strong>es una herramienta a través de la cual los administradores crean reglas para cada filtrado de paquetes y módulos de NAT. IPTables es la herramienta estándar de todas las distribuciones modernas de GNU/Linux; y hoy aprenderemos cómo usarlo y cómo viene la mano <img src='http://www.notasdesamuel.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-1050"></span>Vale aclarar que <strong>IPTables es un componente de</strong> <strong>Netfilter</strong> y NO como muchos creen que <strong>IPTables = Netfilter</strong>, en realidad es &#8220;solo&#8221; uno de los componentes más populares.</p>
<p><strong>Ok, pero qué es Netfilter?, </strong>como bien lo define <a href="http://es.wikipedia.org/wiki/Netfilter/iptables" target="_blank">Wikipedia</a>, es un framework que nos ayuda a interceptar y administrar paquetes de red en nuestro OS; dicho framework se encuentra disponible en el núcleo de Linux.</p>
<p>Genial, a comenzar se ha dicho!, con IPTables puedo definir el destino de un paquete de red; un paquete de red puede ser entrante (<strong>INPUT</strong>), saliente (<strong>OUTPUT</strong>) o reenviado (<strong>FORWARD</strong>); estos &#8220;estados&#8221; que pueden ser los paquetes de red se conocen como <strong>CADENAS</strong>.</p>
<p>Ahora, <strong>qué destino puedo definir a esas cadenas?</strong>, puedo aceptarlas (<strong>ACCEPT</strong>), descartarlas (<strong>DROP</strong>), rechazarlas (<strong>REJECT</strong>), encaminarlas a algún lugar despues de su paso (<strong>POSTROUTING</strong>), o encaminarlas antes (<strong>PREROUTING</strong>), etc.</p>
<p>Pero obviamente puedo crear una politica de destino por defecto, para esto la opción <strong>-P</strong> cambia una política para una <strong>cadena</strong>. Por ejemplo, si quiero descartar (<strong>DROP</strong>) todas las conexiones que ingresen (<strong>INPUT</strong>), todas las conexiones que se reenvíen (<strong>FORWARD</strong>) y todas las conexiones que salgan (<strong>OUTPUT</strong>), es decir, se descarta todo el tráfico que entre desde una red pública y el que trate de salir desde la red local, quedaría algo así:</p>
<blockquote><p><strong>iptables -P INPUT DROP<br />
iptables -P FORWARD DROP<br />
iptables -P OUTPUT ACCEPT</strong></p></blockquote>
<p>Pero existen muchas reglas que podemos configurar obviamente, los más comunes que suelo usar son:</p>
<blockquote><p>• <strong>-A</strong> añade una cadena, la opción <strong>-i</strong> define una interfaz de tráfico entrante.<br />
• <strong>-o</strong> define una interfaz para trafico saliente<br />
• <strong>-j</strong> establece una regla de destino del tráfico, que puede ser <strong>ACCEPT</strong>, <strong>DROP </strong>o <strong>REJECT</strong>.<br />
• <strong>-m</strong> define que se aplica la regla si hay una coincidencia específica<br />
• <strong>&#8211;state</strong> define una lista separada por comas de distinto tipos de estados de las conexiones (<strong>INVALID</strong>, <strong>ESTABLISHED</strong>, <strong>NEW</strong>, <strong>RELATED</strong>).<br />
• <strong>&#8211;to-source</strong> define que IP reportar al tráfico externo<br />
• <strong>-s</strong> define trafico de origen<br />
• <strong>-d</strong> define tráfico de destino<br />
• <strong>&#8211;source-port</strong> define el puerto desde el que se origina la conexión<br />
• <strong>&#8211;destination-port</strong> define el puerto hacia el que se dirige la conexión<br />
• <strong>-t</strong> tabla a utilizar, pueden ser nat, filter, mangle o raw.</p></blockquote>
<p>Ok, no se asusten, creanme es más sencillo de lo que creen, si se dan cuenta es como estar hablando con el OS; asi que antes de seguir (creo que venimos bien) vamos hacer unos ejemplos comunes como para entender un poco mas, por ejemplo, simulemos algo muy famoso, re-enviar paquetes desde una interfaz de red local (eth1) hacia una interfaz de red pública (eth0):</p>
<blockquote><p><strong>iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT</strong></p></blockquote>
<p>O permitir (<strong>ACCEPT</strong>) todo el tráfico entrante (<strong>INPUT</strong>) desde (<strong>-s</strong>) cualquier dirección (<strong>0/0</strong>) de la red local (<strong>eth1</strong>) y desde el retorno del sistema (<strong>lo</strong>) hacia (<strong>-d</strong>) cualquier destino (<strong>0/0</strong>):</p>
<blockquote><p><strong>iptables -A INPUT -i eth1 -s 0/0 -d 0/0 -j ACCEPT<br />
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT</strong></p></blockquote>
<p>Ven lo que decía?, que es como estar hablando con el OS!, estoy por seguro que te está gustando!.</p>
<p>Fijate esta, dale que venimos agrandados, simulemos descartar (<strong>DROP</strong>) todo el tráfico entrante (<strong>-i</strong>) desde la interfaz <strong>eth0 </strong>que trate de utilizar la dirección IP pública del servidor (<strong>10.10.10.10</strong>) alguna dirección IP de la red local (<strong>192.168.0.0/24</strong>) o la dirección IP del retorno del sistema (<strong>127.0.01</strong>) importante regla de seguridad <img src='http://www.notasdesamuel.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<blockquote><p><strong>iptables -A INPUT -i eth0 -s 10.10.10.10/32 -j DROP<br />
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP<br />
iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP</strong></p></blockquote>
<p><em>Pfff!!</em>, demasiado sencillo no?. <strong>Ok, creamos reglas, como elimino?</strong>, generalmente se utiliza la misma regla, pero en lugar de utilizar <strong>-A</strong> (append), se utiliza <strong>-D</strong> (delete), por ejemplo, eliminemos la regla que descarta (<strong>DROP</strong>) todo tipo de conexiones de tráfico entrante (<strong>INPUT</strong>) desde (<strong>-s</strong>) la dirección IP <strong>10.10.10.10</strong>:</p>
<blockquote><p><strong>iptables -D INPUT -s 10.10.10.10 -j DROP</strong></p></blockquote>
<p>Ok, creamos y eliminamos reglas, ahora <strong>vamos a mostrarlas</strong>, con la opcion <strong>-n</strong> podemos ver las listas de reglas en formato numérico, y <strong>-L</strong>, para solicitar la lista de éstas cadenas, y si, podes combinarlas:</p>
<blockquote><p><strong>iptables -nL</strong></p></blockquote>
<p>Guardamos:</p>
<blockquote><p><strong>service iptables save</strong></p></blockquote>
<p>Esto hace que se guarde en <strong>/etc/sysconfig/iptables</strong>.</p>
<p>Para levantar el servicio</p>
<blockquote><p><strong>service iptables start</strong></p></blockquote>
<p>Para hacer que los cambios hechos tras modificar la configuración surtan efecto:</p>
<blockquote><p><strong>service iptables restart</strong></p></blockquote>
<p>Y para detener el servicio, claramente:</p>
<blockquote><p><strong>service iptables stop</strong></p></blockquote>
<p>Algo que veo que no muchos hacen: añadir a iptables entre los servicios al levantar el sistema en<strong> todos los niveles de ejecución</strong>, para eso:</p>
<blockquote><p><strong>chkconfig iptables on</strong></p></blockquote>
<p>Bueno, como para la primera vez espero que te guste, y que lo practiques principalmente ya que es la clave del manejo de esta herramienta.</p>
<p>Fuente:</p>
<p><strong>Wikipedia</strong>: <a href="http://es.wikipedia.org/wiki/Iptables" target="_blank">http://es.wikipedia.org/wiki/Iptables</a><br />
<strong>Tips Firewall With IPTables</strong>: <a href="http://oceanpark.com/notes/firewall_example.html" target="_blank">http://oceanpark.com/notes/firewall_example.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.notasdesamuel.com/usando-iptables/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

