<?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># rm-rf.es &#187; apf</title>
	<atom:link href="http://rm-rf.es/sobre/apf/feed/" rel="self" type="application/rss+xml" />
	<link>http://rm-rf.es</link>
	<description>Administración de sistemas, Unix, Linux, FreeBSD, Windows, hosting, dominios, servidores...</description>
	<lastBuildDate>Fri, 18 May 2012 21:00:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Introducción a iptables</title>
		<link>http://rm-rf.es/introduccion-a-iptables/</link>
		<comments>http://rm-rf.es/introduccion-a-iptables/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 17:22:11 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[apf]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[firewall apf]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2154</guid>
		<description><![CDATA[Muchos sysadmins estamos acostumbrados a utilizar Frontends del firewall iptables para facilitarnos el trabajo, como por ejemplo APF Firewall. Yo soy uno de ellos. Independientemente de esto, conviene saber como funciona iptables de forma interna para evitar la dependencia de este tipo de aplicaciones de terceros para configurar de forma correcta el firewall del kernel [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2157" style="margin-left: 20px; margin-right: 20px;" title="firewall" src="http://rm-rf.es/wp-content/uploads/2011/08/firewall.jpg" alt="firewall" width="200" height="200" align="right" />Muchos sysadmins estamos acostumbrados a utilizar Frontends del <strong>firewall iptables</strong> para facilitarnos el trabajo, como por ejemplo <a title="Como instalar y configurar el firewall APF" href="http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/">APF Firewall</a>. Yo soy uno de ellos. Independientemente de esto, conviene saber como funciona <strong>iptables</strong> de forma interna para evitar la dependencia de este tipo de aplicaciones de terceros para configurar de forma correcta el <strong>firewall del kernel Linux</strong>. Vamos a ver algunos puntos que nos ayudarán a comprender su funcionamiento.</p>
<h2>Listar reglas, Chain y políticas de Iptables</h2>
<p>Con estos comandos podemos ver de un vistazo la configuración establecida en el firewall.</p>
<p>Ver el listado de reglas activas en el firewall:</p>
<pre># iptables -L</pre>
<p>Borrar todas las reglas establecidas en el firewall:</p>
<pre># iptables -F</pre>
<p>Pone a 0 los contadores de bytes y paquetes:</p>
<pre># iptables -Z</pre>
<p>Iptables tiene 3 Chain (cadenas) sobre las cuales construir las reglas, establecer políticas comunes, etc: <strong>INPUT, FORWARD y OUTPUT</strong>. La política por defecto para ellas es de aceptar todo:</p>
<pre># iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination</pre>
<p>También podemos listar únicamente las reglas y política de una Chain concreta:</p>
<pre># iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination</pre>
<p>Si no fuera suficiente estas tres Chain podemos crear nuevas o eliminar podemos hacerlo, así como renombrar las ya existentes:</p>
<p>Crear una nueva Chain llamada TEST:</p>
<pre># iptables -N TEST</pre>
<p>Eliminarla:</p>
<pre># iptables -X TEST</pre>
<p>Renombrarla a TEST2:</p>
<pre># iptables -E TEST TEST2</pre>
<h2>Establecer políticas por defecto</h2>
<p><strong>Para poder empezar a configurar Iptables debemos partir de una base, una política por defecto que aceptará o denegará el tráfico para cada una de las Chain</strong> vistas anteriormente (INPUT OUTPUT o FORWARD). Si quisierais blindar el sistema podríais partir de una base &#8216;<em>paranoica</em>&#8216; denegando todo:</p>
<pre># iptables -P INPUT DENY
# iptables -P OUTPUT DENY
# iptables -P FORWARD DENY</pre>
<p>En el momento que lo hicierais perderíais toda conectividad en la máquina, así que nosotros vamos a comenzar aceptando todo y aplicando pequeñas restricciones en nuestra máquina, una vez configurado todo es cuando podríamos aplicar la configuración restrictiva de arriba:</p>
<pre># iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT</pre>
<p>Veréis que estamos añadiendo las reglas directamente desde la línea de comandos, lo óptimo es <strong>añadirlas dentro de un script para así ejecutarlo todo de forma automática cuando arrancamos el equipo</strong>, lo veremos después.</p>
<h2>Filtrado de puertos, IPs, rangos&#8230;</h2>
<p>Una vez establecida la política por defecto, podemos comenzar a definir nuestras reglas específicas para cada cadena (Chain). La estructura del comando usado para filtrado de puertos, ips, etc es la siguiente:</p>
<h3>Filtrado/apertura de un puerto/rango de puertos</h3>
<pre># iptables -A &lt;INPUT|OUTPUT|FORWARDING&gt; -p &lt;tcp|udp&gt; --dport &lt;PUERTO_DESTINO&gt; -j &lt;ACCEPT|DROP&gt;</pre>
<p>Así por ejemplo si quisieramos cerrar el puerto de entrada tcp 21 (FTP) para toda la máquina:</p>
<pre># iptables -A INPUT -p tcp --dport 21 -j DROP</pre>
<p>Permitir el tráfico de entrada por el puerto 80, necesario por ejemplo si el equipo es un servidor web:</p>
<pre># iptables -A INPUT -p tcp --dport 80 -j ACCEPT</pre>
<p>Para bloquear un rango de puertos, simplemente especificamos el primer y último puerto del rango, en este ejemplo bloqueamos la salida tcp de los puertos 2000 al 3000:</p>
<pre># iptables -A OUTPUT -p tcp --dport 2000:3000 -j DROP</pre>
<h3>Permitir/denegar puertos a determinadas IPs, interfaces de red o CIDR</h3>
<pre># iptables -A &lt;INPUT|OUTPUT|FORWARDING&gt; -s &lt;IP|RANGO&gt; -p &lt;tcp|udp&gt; --dport &lt;PUERTO_DESTINO&gt; -j &lt;ACCEPT|DROP&gt;</pre>
<p>Es probable que necesitemos configurar políticas de aceptación o denegación de puertos a determinadas IPs, o incluso el acceso/denegación total a las mismas. La IP la especificaremos con el parámetro <strong>-s</strong>. Vamos a ver unos ejemplos:</p>
<p>Aceptar todo el tráfico de entrada de una IP:</p>
<pre># iptables -A INPUT -s 192.168.1.128 -j ACCEPT</pre>
<p>Denegar todo el tráfico de entrada a una IP:</p>
<pre># iptables -A INPUT -s 192.168.1.128 -j DROP</pre>
<p>Aceptar a una IP el acceso a un determinado puerto:</p>
<pre># iptables -A INPUT -s 192.168.1.128  -p tcp --dport 25 -j ACCEPT</pre>
<p>Para el tema de rangos, podemos usar la notación CIDR. Vamos a aceptar todo el tráfico en la red local:</p>
<pre># iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT</pre>
<p>También podemos especificar reglas restringiendo según interfaces de red en lugar de IPs o rangos. Esto lo hacemos mediante el parámetro <strong>-i</strong>:</p>
<pre># iptables -A INPUT -i eth0 -j ACCEPT</pre>
<h2>Nuestro primer script de Iptables</h2>
<p>Antes de hacer el script conviene saber qué puertos tenemos abiertos en la máquina para configurarlos previamente y evitar problemas. Podemos usar <a title="Escanear rango de Ips" href="http://rm-rf.es/escanear-rango-de-ips/">nmap</a> o <a title="Netstat: Estado de las conexiones" href="http://rm-rf.es/netstat-estado-de-las-conexiones/">netstat</a> para averiguarlo. Un ejemplo de un típico servidor con servicios web, MySQL, correo, etc podría ser el siguiente:</p>
<pre># nmap -sTU localhost

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2011-08-27 21:14 CEST
Interesting ports on localhost (127.0.0.1):
Not shown: 3152 closed ports
PORT     STATE         SERVICE
1/tcp    open          tcpmux
21/tcp   open          ftp
25/tcp   open          smtp
80/tcp   open          http
110/tcp  open          pop3
143/tcp  open          imap
443/tcp  open          https
465/tcp  open          smtps
783/tcp  open          spamassassin
993/tcp  open          imaps
995/tcp  open          pop3s
3306/tcp open          mysql
161/udp  open|filtered snmp</pre>
<p>La salida de nmap nos ofrece una guía clara sobre los puertos a abrir. A partir de aquí es cuestión de construir nuestro script con las reglas correspondientes, estableciendo primero las políticas generales y luego definiendo el filtrado/apertura concreta de puertos, si queremos restringir puertos a determinadas IPs, bloquear el acceso a rangos CIDR, etc.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/sh</span><br />
<span style="color: #666666; font-style: italic;"># Primero limpiamos cualquier regla haciendo un flush</span><br />
<span style="color: #666666; font-style: italic;"># tambien reseteamos contadores (-Z) y las Chain personalizadas</span><br />
<span style="color: #666666; font-style: italic;"># que se hayan creado (-X)</span><br />
iptables <span style="color: #660033;">-F</span><br />
iptables <span style="color: #660033;">-X</span><br />
iptables <span style="color: #660033;">-Z</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Politicas por defecto (ACEPTAR TODO)</span><br />
iptables <span style="color: #660033;">-P</span> INPUT ACCEPT<br />
iptables <span style="color: #660033;">-P</span> OUTPUT ACCEPT<br />
iptables <span style="color: #660033;">-P</span> FORWARD ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Cerramos ssh excepto para nuestra red privada</span><br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-s</span> 192.168.1.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-j</span> DROP<br />
<br />
<span style="color: #666666; font-style: italic;"># Tenemos un servidor MySQL pero únicamente para servir en local</span><br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">3306</span> <span style="color: #660033;">-i</span> lo <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">3306</span> <span style="color: #660033;">-j</span> DROP<br />
<br />
<span style="color: #666666; font-style: italic;"># Aceptamos todas las conexiones FTP, HTTP y HTTPS</span><br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">21</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">80</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">443</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Servicios de correo</span><br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">25</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">143</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">110</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">443</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">465</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">993</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">995</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># SNMP lo vamos a permitir para nuestra red local</span><br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> udp <span style="color: #660033;">--dport</span> <span style="color: #000000;">161</span> <span style="color: #660033;">-s</span> 192.168.1.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> <span style="color: #660033;">-j</span> ACCEPT<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> udp <span style="color: #660033;">--dport</span> <span style="color: #000000;">161</span> <span style="color: #660033;">-j</span> DROP<br />
<br />
<span style="color: #666666; font-style: italic;"># Una vez que hayamos abierto todo lo necesario, podemos cerrar</span><br />
<span style="color: #666666; font-style: italic;"># el resto o un rango especifico de puertos conocidos...</span><br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">1</span>:<span style="color: #000000;">1024</span> <span style="color: #660033;">-j</span> DROP<br />
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> udp <span style="color: #660033;">--dport</span> <span style="color: #000000;">1</span>:<span style="color: #000000;">1024</span> <span style="color: #660033;">-j</span> DROP</div></div>
<p>Este es un <strong>ejemplo sencillo (¡ojo, no verificado!) que muestra las posibilidades más básicas de iptables</strong>, hay que tener en cuenta que no hemos tratado más que TCP y UDP sobre rasgos generales, no tratamos <strong>ICMP</strong> ni configuraciones detalladas. Para ello, os emplazo y recomiendo la guía que encontraréis el <a href="http://es.tldp.org/Manuales-LuCAS/doc-iptables-firewall/doc-iptables-firewall-html/" target="_blank">TLDP</a> (The Linux Documentation Project) o a futuros artículos que complemetarán a este y enlazaré conforme vayamos avanzando.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/" title="Como instalar y configurar el firewall APF">Como instalar y configurar el firewall APF</a></li><li><a href="http://rm-rf.es/apf-unable-to-load-iptables-module-ip_tables-aborting/" title="APF: Unable to load iptables module (ip_tables), aborting">APF: Unable to load iptables module (ip_tables), aborting</a></li><li><a href="http://rm-rf.es/ejemplos-de-reglas-para-iptables/" title="Ejemplos de reglas para IPtables">Ejemplos de reglas para IPtables</a></li><li><a href="http://rm-rf.es/bloquear-con-iptables-el-trafico-desdehacia-una-direccion-ip/" title="Bloquear con IPTABLES el tráfico desde/hacia una dirección IP">Bloquear con IPTABLES el tráfico desde/hacia una dirección IP</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/introduccion-a-iptables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APF: Unable to load iptables module (ip_tables), aborting</title>
		<link>http://rm-rf.es/apf-unable-to-load-iptables-module-ip_tables-aborting/</link>
		<comments>http://rm-rf.es/apf-unable-to-load-iptables-module-ip_tables-aborting/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 18:33:18 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[apf]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1217</guid>
		<description><![CDATA[En caso de recibir el siguiente error en el log de APF: Unable to load iptables module (ip_tables), aborting. El problema solamente lo he encontrado en instalaciones Fedora, y se soluciona modificando el siguiente parámetro en el fichero de configuración de apf: fichero: /etc/apf/conf.apf Parámetro: MONOKERN="0" Lo pasamos a: MONOKERN="1" Y reiniciamos APF: /etc/init.d/apf restart [...]]]></description>
			<content:encoded><![CDATA[<p>En caso de recibir el siguiente error en el log de <a target="_blank" title="Instalar APF Firewall Linux" href="http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/"><strong>APF</strong></a>:</p>
<p><strong>Unable to load iptables module (ip_tables), aborting.</strong></p>
<p>El problema solamente lo he encontrado en instalaciones Fedora, y se soluciona modificando el siguiente parámetro en el fichero de configuración de apf:</p>
<p>fichero: /etc/apf/conf.apf</p>
<p>Parámetro:</p>
<pre>MONOKERN="0" </pre>
<p>Lo pasamos a:</p>
<pre>MONOKERN="1"</pre>
<p>Y reiniciamos APF:</p>
<pre>/etc/init.d/apf restart</pre>
<p>El origen del problema reside en tener iptables compilado en el kernel de forma estática en lugar de como módulo.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/introduccion-a-iptables/" title="Introducción a iptables">Introducción a iptables</a></li><li><a href="http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/" title="Como instalar y configurar el firewall APF">Como instalar y configurar el firewall APF</a></li><li><a href="http://rm-rf.es/pfsense-firewall-open-source-basado-en-freebsd/" title="pfSense: Firewall Open Source basado en FreeBSD">pfSense: Firewall Open Source basado en FreeBSD</a></li><li><a href="http://rm-rf.es/como-instalar-memcached-a-traves-de-yum-en-centos/" title="Cómo instalar memcached a través de YUM en CentOS">Cómo instalar memcached a través de YUM en CentOS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/apf-unable-to-load-iptables-module-ip_tables-aborting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generador de reglas para el firewall APF</title>
		<link>http://rm-rf.es/generador-de-reglas-para-el-firewall-apf/</link>
		<comments>http://rm-rf.es/generador-de-reglas-para-el-firewall-apf/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 08:24:33 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[apf]]></category>
		<category><![CDATA[deny_host.rules]]></category>
		<category><![CDATA[firewall apf]]></category>
		<category><![CDATA[generar reglas apf]]></category>
		<category><![CDATA[reglas apf]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=46</guid>
		<description><![CDATA[He encontrado un sitio web que dispone de un asistente para generar reglas para el firewall APF. Concretamente se centra en las reglas de denegación de servicio, las cuales incluimos en el fichero deny_host.rules. Bien es cierto, que denegar una IP (para todos los servicios) es tan simple como añadir la IP en dicho fichero, [...]]]></description>
			<content:encoded><![CDATA[<p>He encontrado un sitio web que dispone de un asistente para generar reglas para el firewall APF. Concretamente <strong>se centra en las reglas de denegación de servicio</strong>, las cuales incluimos en el fichero <strong>deny_host.rules</strong>.</p>
<p>Bien es cierto, que denegar una IP (<em>para todos los servicios</em>) es tan simple como añadir la IP en dicho fichero, pero como en todo, podemos ir un poco más allá.</p>
<p>Por ejemplo, queremos denegar a una IP o rango IP el acceso de entrada al puerto 80 y 25. Pues simplemente indicando la IP, los puertos, y si es de entrada/salida en el asistente, recibiremos las reglas a añadir en el fichero deny_host.rules, ejemplo indicado:</p>
<pre>tcp:in:d=80:s=217.174.32.0/20
tcp:in:d=25:s=217.174.32.0/20</pre>
<h3><a title="Reglas denegación servicio APF" href="http://apf.ivexwcs.com/">Enlace al asistente de reglas para el firewall APF.</a></h3>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/introduccion-a-iptables/" title="Introducción a iptables">Introducción a iptables</a></li><li><a href="http://rm-rf.es/apf-unable-to-load-iptables-module-ip_tables-aborting/" title="APF: Unable to load iptables module (ip_tables), aborting">APF: Unable to load iptables module (ip_tables), aborting</a></li><li><a href="http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/" title="Como instalar y configurar el firewall APF">Como instalar y configurar el firewall APF</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/generador-de-reglas-para-el-firewall-apf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como instalar y configurar el firewall APF</title>
		<link>http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/</link>
		<comments>http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 17:09:26 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Advanced Policy Firewall]]></category>
		<category><![CDATA[apf]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=17</guid>
		<description><![CDATA[En esta entrada vamos a proteger nuestro sistema Unix con APF (Advanced Policy Firewall). APF es un sistema de Firewall basado en IPtables, con la peculiaridad de que su manejo e instalación es extremadamente sencilla. Próximamente explicaremos también como instalar BFD, un detector de ataques de fuerza bruta, que unido a APF forman un excelente [...]]]></description>
			<content:encoded><![CDATA[<p>En esta entrada vamos a proteger nuestro sistema Unix con <strong>APF (Advanced Policy Firewall)</strong>.</p>
<p>APF es un sistema de Firewall basado en IPtables, con la peculiaridad de que su manejo e instalación es extremadamente sencilla. Próximamente explicaremos también como instalar BFD,  un detector de ataques de fuerza bruta, que unido a APF forman un excelente nivel de seguridad en el servidor, pues trabajan de forma conjunta.</p>
<p>Comenzamos con la instalación de APF:</p>
<pre>cd /root/descargas (o la carpeta en la que guardes tus sources)
wget http://rfxnetworks.com/downloads/apf-current.tar.gz
tar -zxf apf-current.tar.gz
cd apf-0.*
./install.sh
</pre>
<p>Una vez instalado nos indicará las distintas rutas de ficheros de configuración y ejecutables:</p>
<pre>Installation Details:
  Install path:         /etc/apf/
  Config path:          /etc/apf/conf.apf
  Executable path:      /usr/local/sbin/apf
  AntiDos install path: /etc/apf/ad/
  AntiDos config path:  /etc/apf/ad/conf.antidos
  DShield Client Parser:  /etc/apf/extras/dshield/</pre>
<p>Comenzamos a configurar APF, abirmos el fichero de configuración con nuestro editor favorito, estas son las opciones principales a configurar, recordad leer los comentarios en el fichero de configuración y en los README:</p>
<pre>vi /etc/apf/conf.apf</pre>
<p>Desactivamos/activamos el cron que desactiva el firewall cada 5 minutos, es útil activarlo mientras estemos de pruebas, pero aseguraos de dejarlo en 0 cuando el server entre en producción:</p>
<pre># Set firewall cronjob (devel mode)
# 1 = enabled / 0 = disabled
DEVEL_MODE="1"
</pre>
<p>Interfaces de red que APF va a rastrear su tráfico, ponemos la interfaz que salga a Internet, en este caso es la eth1:</p>
<pre># Untrusted Network interface(s); all traffic on defined interface will be
# subject to all firewall rules. This should be your internet exposed
# interfaces. Only one interface is accepted for each value.
# NOTE: The interfacing structure is being worked towards support of MASQ/NAT
IFACE_IN="eth1"
IFACE_OUT="eth1"
</pre>
<p>Por otro lado, podemos configurar que ciertas interfaces no sean rastreadas por el firewall, pueden ser interfaces de tráfico local:</p>
<pre># Trusted Network interface(s); all traffic on defined interface(s) will by-pass
# ALL firewall rules, format is white space or comma seperated list.
IFACE_TRUSTED="eth0"
</pre>
<p>Y para terminar la configuración básica, la parte más importante, la sección de puertos, configurable dependiendo de los puertos abiertos necesarios para cada servidor:</p>
<p>Puertos de entrada TCP permitidos:</p>
<pre># Common ingress (inbound) TCP ports
IG_TCP_CPORTS="21,25,80,110,443,465"
</pre>
<p>Puertos de entrada UDP permitidos:</p>
<pre># Common ingress (inbound) UDP ports
IG_UDP_CPORTS=""
</pre>
<p>Puertos de entrada ICMP permitidos:</p>
<pre>
# Common ICMP (inbound) types
# 'internals/icmp.types' for type definition; 'all' is wildcard for any
IG_ICMP_TYPES="3,5,11"</pre>
<p>Después están las mismas opciones, pero para salida, configurar según los requerimientos de cada uno. Y recordad revisar todas las demás opciones para sacar el mayor partido a este excelente firewall.</p>
<p>Otros dos ficheros importantes a tener en cuenta son :</p>
<pre>/etc/apf/deny_host.rules
/etc/apf/allow_host.rules</pre>
<p>En estos ficheros podemos incluir ips, rangos y reglas a las que denegar acceso (deny_host.rules) o permitir(allow_host.rules) al servidor. Finalmente arrancamos APF:</p>
<pre>/usr/local/sbin/apf -s</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/introduccion-a-iptables/" title="Introducción a iptables">Introducción a iptables</a></li><li><a href="http://rm-rf.es/apf-unable-to-load-iptables-module-ip_tables-aborting/" title="APF: Unable to load iptables module (ip_tables), aborting">APF: Unable to load iptables module (ip_tables), aborting</a></li><li><a href="http://rm-rf.es/ejemplos-de-reglas-para-iptables/" title="Ejemplos de reglas para IPtables">Ejemplos de reglas para IPtables</a></li><li><a href="http://rm-rf.es/bloquear-con-iptables-el-trafico-desdehacia-una-direccion-ip/" title="Bloquear con IPTABLES el tráfico desde/hacia una dirección IP">Bloquear con IPTABLES el tráfico desde/hacia una dirección IP</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/como-instalar-y-configurar-el-firewall-apf/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

