<?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>rolandovera.com &#187; bind</title>
	<atom:link href="http://www.rolandovera.com/tag/bind/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rolandovera.com</link>
	<description>Un blog de un sysadmin.</description>
	<lastBuildDate>Mon, 09 Jan 2012 21:52:15 +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>Ataques a servidores de DNS bind9</title>
		<link>http://www.rolandovera.com/2009/02/27/ataques-a-servidores-de-dns-bind9/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ataques-a-servidores-de-dns-bind9</link>
		<comments>http://www.rolandovera.com/2009/02/27/ataques-a-servidores-de-dns-bind9/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 16:33:15 +0000</pubDate>
		<dc:creator>Rolando</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[denegacion de servicio]]></category>
		<category><![CDATA[dns]]></category>

		<guid isPermaLink="false">http://www.rolandovera.com/?p=791</guid>
		<description><![CDATA[Uno de los errores mas comunes de los sysadmin es olvidar lo que esta pasando en el servidor de DNS media vez este funcionando bien. Yo reviso los logs al menos 3 veces al día, y en total manejo 3 servidores de DNS, uno como primario y dos como secundarios. El día de hoy me [...]]]></description>
			<content:encoded><![CDATA[<p>Uno de los errores mas comunes de los <a href="http://es.wikipedia.org/wiki/Administrador_de_sistemas" target="_blank">sysadmin</a> es olvidar lo que esta pasando en el servidor de <a href="http://es.wikipedia.org/wiki/DNS" target="_blank">DNS</a> media vez este funcionando bien. Yo reviso los logs al menos 3 veces al día, y en total manejo 3 servidores de <a href="http://es.wikipedia.org/wiki/DNS" target="_blank">DNS</a>, uno como primario y dos como secundarios.</p>
<p>El día de hoy me pareció MUY extraño ver esto en el /var/log/syslog:</p>
<blockquote><p>Feb 27 09:56:43 nsx named[2006]: client 62.109.4.89#62095: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:43 nsx named[2006]: client 62.109.4.89#49971: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:44 nsx named[2006]: client 62.109.4.89#50374: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:45 nsx named[2006]: client 62.109.4.89#57868: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:49 nsx named[2006]: client 62.109.4.89#44877: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:50 nsx named[2006]: client 62.109.4.89#32333: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:51 nsx named[2006]: client 62.109.4.89#5181: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:52 nsx named[2006]: client 62.109.4.89#23041: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:56 nsx named[2006]: client 62.109.4.89#18390: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:56 nsx named[2006]: client 62.109.4.89#22196: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:57 nsx named[2006]: client 62.109.4.89#65334: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:56:58 nsx named[2006]: client 62.109.4.89#16382: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:57:02 nsx named[2006]: client 62.109.4.89#25512: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:57:02 nsx named[2006]: client 62.109.4.89#55121: query (cache) &#8216;./NS/IN&#8217; denied<br />
Feb 27 09:57:03 nsx named[2006]: client 62.109.4.89#55107: query (cache) &#8216;./NS/IN&#8217; denied</p></blockquote>
<blockquote><p>Solo copie una parte del log acá, ya que era inmenso.</p></blockquote>
<p>Hacia una peticion de DNS cada segundo, asi que decidi investigar un poco de donde venian estas peticiones. Si quieren averiguar informacion de algun IP lo pueden hacer en la pagina de <a href="http://www.arin.net" target="_blank">ARIN</a>.</p>
<p>Los datos de la red de donde me estaban atacando eran los siguientes:</p>
<blockquote><p>inetnum:        62.109.0.0 &#8211; 62.109.7.255<br />
netname:        ISPSYSTEM<br />
descr:          ISPsystem at MSM<br />
country:        RU<br />
admin-c:        PAS28-RIPE<br />
tech-c:         AB11726-RIPE<br />
status:         ASSIGNED PA<br />
mnt-by:         ISPSYSTEM-MNT<br />
source:         RIPE # Filtered</p>
<p>person:         Peter A Svistunov<br />
address:        ISPsystem, Raduzhny 34a<br />
address:        Irkutsk, 664017, Russian Federation<br />
phone:          +7 3952 525789<br />
nic-hdl:        PAS28-RIPE<br />
source:         RIPE # Filtered</p>
<p>person:         Alexandr Brukhanov<br />
address:        PoBox30, 664017, Irkutsk, Russia<br />
phone:          +7 495 727 38 79<br />
nic-hdl:        AB11726-RIPE<br />
source:         RIPE # Filtered</p></blockquote>
<p>Suena ilógico que una persona de Rusia estuviera realizando una petición por segundo a un servidor de DNS que sirve peticiones para sitios en español, confirme entonces que era un ataque de <a href="http://es.wikipedia.org/wiki/Ataque_de_denegaci%C3%B3n_de_servicio" target="_blank">D.o.S</a> (Denial of Service). Asi que procedí a bloquear esta red atraves de <a href="http://es.wikipedia.org/wiki/Iptables" target="_blank">IPTABLES.</a></p>
<p>Bloquie la red con el siguiente comando de iptables:</p>
<blockquote><p>iptables -A INPUT -p udp -s 62.109.0.0/21 -d 0/0 -j DROP</p>
<p>iptables -A INPUT -p tcp -s 62.109.0.0/21 -d 0/0 -j DROP</p></blockquote>
<p>Con este comando le denegué el acceso a toda esta red (clase b) a mi servidor en los protocolos <a href="http://es.wikipedia.org/wiki/Udp" target="_blank">UDP</a> y <a href="http://es.wikipedia.org/wiki/Tcp" target="_blank">TCP</a>.</p>
<p>Después de hacer esto el log ya no mostró todas estas peticiones de este IP de Rusia. No me afecto en nada este ataque ya que si se fijan en el log mi servidor de DNS estaba denegando las conexiones ya que tengo restringidas las peticiones a no mas de 5 cada 10 segundos desde la misma dirección IP.</p>
<blockquote><p>En conclusión, mi recomendación para todos los sysadmin es que revisen sus logs todos los días para evitar así ser victimas de ataques de denegación de servicios.</p></blockquote>
<p><a href="http://www.rolandovera.com/wp-content/uploads/2009/02/denegacion-de-servicio.jpg"><img class="alignnone size-full wp-image-796" title="denegacion-de-servicio" src="http://www.rolandovera.com/wp-content/uploads/2009/02/denegacion-de-servicio.jpg" alt="denegacion-de-servicio" width="469" height="359" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rolandovera.com/2009/02/27/ataques-a-servidores-de-dns-bind9/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Como instalar BIND 9 en linux debian</title>
		<link>http://www.rolandovera.com/2008/11/18/como-instalar-bind-9-en-linux-debian/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-instalar-bind-9-en-linux-debian</link>
		<comments>http://www.rolandovera.com/2008/11/18/como-instalar-bind-9-en-linux-debian/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 17:45:41 +0000</pubDate>
		<dc:creator>Rolando</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://www.rolandovera.com/?p=565</guid>
		<description><![CDATA[BIND es el servidor de DNS mas usado en Internet. Yo monte mi primer servidor de DNS en el año 2001, y específicamente fue BIND 9 que fue la que sustituyo al famoso y temido BIND 8. En esta guía, explicare como montar un servidor BIND 9 primario con servidores de DNS esclavos, siempre utilizando [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://es.wikipedia.org/wiki/BIND" target="_blank">BIND</a> es el servidor de <a href="http://es.wikipedia.org/wiki/DNS" target="_blank">DNS</a> mas usado en Internet. Yo monte mi primer servidor de DNS en el año 2001, y específicamente fue BIND 9 que fue la que sustituyo al famoso y temido BIND 8.</p>
<blockquote><p>En esta guía, explicare como montar un servidor BIND 9 primario con servidores de DNS esclavos, siempre utilizando BIND 9 en todos los servidores.</p></blockquote>
<p>Como ejemplo, vamos a utilizar las siguientes direcciones IP para los servidores de DNS:</p>
<blockquote><p>Servidor Primario de DNS: 10.1.1.1 &#8211; ns1.hola.com</p>
<p>Servidor Secundario de DNS: 10.1.1.2 &#8211; ns2.hola.com</p>
<p>Servidor Terciario de DNS: 10.1.1.3 &#8211; ns3.hola.com</p></blockquote>
<p>Instalemos el paquete bind9. Esto lo hacemos de la siguiente manera:</p>
<blockquote>
<pre>web:/etc# apt-get install bind9
Reading package lists... Done
Building dependency tree... Done
Suggested packages:
  bind9-doc
The following NEW packages will be installed:
  bind9
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 297kB of archives.
After unpacking 782kB of additional disk space will be used.
Get:1 http://ftp.debian.org etch/main bind9 1:9.3.4-2etch3
Fetched 297kB in 0s (760kB/s)
Selecting previously deselected package bind9.
Unpacking bind9 (from .../bind9_1%3a9.3.4-2etch3_i386.deb) ...
Setting up bind9 (9.3.4-2etch3) ...
Adding group `bind' (GID 104) ...
Done.
Adding system user `bind' (UID 104) ...
Adding new user `bind' (UID 104) with group `bind' ...
Not creating home directory `/var/cache/bind'.
wrote key file "/etc/bind/rndc.key"
Starting domain name service...: bind.</pre>
</blockquote>
<p>Listo, ya esta instalado bind9.</p>
<p>Yo necesito que el servidor lleve un historial de las peticiones que hacen al servidor, así que modifico el archivo /etc/bind/named.conf y agrego lo siguiente al final:</p>
<blockquote><p>logging {<br />
channel &#8220;querylog&#8221; { file &#8220;/var/log/bind9.log&#8221;; print-time yes; };<br />
category queries { querylog; };<br />
};</p></blockquote>
<p>Ademas de esto, tengo que configurar el servidor BIND primario para que solo acepte peticiones hacia los dominios de los cuales es un Servidor de Dominio, (los dominios de los cuales el va a ser un name server) y también las direcciones IP de los servidores BIND esclavos.</p>
<p>El archivo /etc/bind/named.conf.options se encuentra configurado de la siguiente manera:</p>
<blockquote><p>options {<br />
directory &#8220;/var/cache/bind&#8221;;</p>
<p>// If there is a firewall between you and nameservers you want<br />
// to talk to, you might need to uncomment the query-source<br />
// directive below. Previous versions of BIND always asked<br />
// questions using port 53, but BIND 8.1 and later use an unprivileged<br />
// port by default.</p>
<p>// query-source address * port 53;</p>
<p>// If your ISP provided one or more IP addresses for stable<br />
// nameservers, you probably want to use them as forwarders.<br />
// Uncomment the following block, and insert the addresses replacing<br />
// the all-0&#8242;s placeholder.</p>
<p>// forwarders {<br />
// 0.0.0.0;<br />
// };</p>
<p>auth-nxdomain no; # conform to RFC1035<br />
listen-on-v6 { any; };<br />
};</p></blockquote>
<p>Le haré los siguientes cambios:</p>
<blockquote><p>options {<br />
directory &#8220;/var/cache/bind&#8221;;<br />
allow-query { 10.1.1.1/28; } ;<br />
allow-transfer { none; };<br />
// If there is a firewall between you and nameservers you want<br />
// to talk to, you might need to uncomment the query-source<br />
// directive below.  Previous versions of BIND always asked<br />
// questions using port 53, but BIND 8.1 and later use an unprivileged<br />
// port by default.</p>
<p>// query-source address * port 53;</p>
<p>// If your ISP provided one or more IP addresses for stable<br />
// nameservers, you probably want to use them as forwarders.<br />
// Uncomment the following block, and insert the addresses replacing<br />
// the all-0&#8242;s placeholder.</p>
<p>// forwarders {<br />
//      0.0.0.0;<br />
// };</p>
<p>auth-nxdomain no;    # conform to RFC1035<br />
recursion no;<br />
};</p>
<p>acl slaves {<br />
10.1.1.2/29;           // ns2<br />
10.1.1.3/29;         // ns3<br />
};</p></blockquote>
<p>Explicare cada campo.</p>
<p><strong>allow-query { 10.1.1.1/28; } ; </strong></p>
<p>IP del servidor Primario de DNS</p>
<p><strong>allow-transfer { none; }; </strong></p>
<p>Con este parámetro restringimos la transferencia de zonas a Servidores DNS esclavos que no estén autorizados. Esta es una buena medida de seguridad, ya que evitamos que personas ajenas se enteren de las direcciones IP que están dentro de la zona de DNS de un dominio.</p>
<p><strong>acl slaves {<br />
10.1.1.2/29;           // ns2<br />
10.1.1.3/29;         // ns3<br />
};</strong></p>
<p>Listado de acceso (access list) de los servidores de DNS esclavos.</p>
<blockquote><p>Después de hacer estos cambios vamos a crear una zona de DNS para el dominio hola.com.</p></blockquote>
<p>Creamos un archivo llamado hola.com.hosts en el directorio /var/cache/bind. Dentro de este archivo pondremos lo siguiente:</p>
<blockquote><p>$TTL 86400<br />
@ IN SOA ns1.hola.com. root.hola.com. (<br />
2008281000 ; serial<br />
3600 ; refresh<br />
7200 ; retry<br />
604800 ; expire<br />
86400 ; minimum<br />
)<br />
@ IN NS ns1.hola.com.<br />
@ IN NS ns2.hola.com.<br />
@ IN NS ns3.hola.com.<br />
IN A 10.1.1.5<br />
www IN CNAME hola.com.</p></blockquote>
<p>Con esta zona de DNS de hola.com estamos apuntando, hola.com y  www.hola.com hacia la IP 10.1.1.5.</p>
<blockquote><p>Hay que tener en cuenta que los sub dominios ns1.hola.com, ns2.hola.com y ns3.hola.com, los configure con mi proveedor de dominio, (Godaddy) ya que desde el proveedor del dominio (Godaddy)  indicaremos al mundo de Internet que ns1.hola.com apunta a 10.1.1.1 y asi sucesivamente con los otros servidores de DNS. Sin esto, nuestros servidores de DNS no van a funcionar.</p></blockquote>
<p>En las zonas del dominio definiremos quien puede hacer una petición de resolución de nombre al dominio, a quien le damos permiso para que pueda copiar las zonas; que en este caso solo seria a los servidores de DNS esclavos.</p>
<blockquote><p>Agregamos la zona en el servidor primario de DNS, del dominio hola.com en el archivo /etc/bind/named.conf.local</p>
<p>zone &#8220;hola.com&#8221; {<br />
type master;<br />
notify no;<br />
allow-query { any; };<br />
allow-transfer { slaves; };<br />
file &#8220;hola.com.hosts&#8221;;<br />
};</p>
<p>En los servidores esclavos de DNS la configuración seria la siguiente en /etc/named.conf.local:</p>
<p>zone &#8220;hola.com&#8221; {<br />
type slave; masters { 10.1.1.1; };<br />
allow-query { any; };<br />
file &#8220;hola.com.hosts&#8221;;<br />
};</p></blockquote>
<p>Explico que significa cada campo.</p>
<p>En el servidor primario de DNS:</p>
<p>zone &#8220;hola.com&#8221; {       <strong>Definimos el dominio.</strong><br />
allow-query { any; };  <strong> Cualquier computadora puede hacer una petición de DNS a este dominio.<br />
</strong>allow-transfer { slaves; }; <strong> </strong><strong>Con este parámetro le damos permiso a los servidores esclavos de DNS que puedan hacer una copia de la zona de DNS para el dominio hola.com<br />
</strong>file &#8220;hola.com.hosts&#8221;;  <strong> </strong><strong>Archivo donde se encuentra los parámetros de la zona para el dominio hola.com.</strong></p>
<p>En los servidores de DNS secundarios:</p>
<p>zone &#8220;hola.com&#8221; { <strong> Dominio.<br />
</strong>type slave; masters { 10.1.1.1; }; <strong> </strong><strong>Definimos a quien le debe pedir una copia de la zona de DNS para el dominio hola.com que en nuestro caso seria el servidor de DNS primario.<br />
</strong>allow-query { any; };<strong> </strong><strong>Cualquier computadora puede hacer una petición de DNS a este dominio.<br />
</strong>file &#8220;hola.com.hosts&#8221;; <strong> </strong><strong>Archivo donde se encuentra los parámetros de la zona para el dominio hola.com.</strong></p>
<p>Reiniciaremos el servicio de BIND en el servidor primario de DNS antes que los secundarios. Esto lo hacemos con el siguiente comando:</p>
<blockquote><p>/etc/init.d/bind9 restart</p></blockquote>
<p>Despues de reiniciarlos, verificaremos en el el &#8220;syslog&#8221; que nuestros servidores de DNS secundarios esten copiando la zona de DNS para hola.com. Encontraremos un registro similar a este:</p>
<p><strong>tail -f /var/log/syslog</strong></p>
<blockquote><p>Nov 5 15:43:57 ns1 named[1966]: client 10.1.1.2#48716: transfer of &#8216;hola.com.us/IN&#8217;: AXFR started<br />
Nov 5 15:43:57 ns1 named[1966]: client 10.1.1.2#48716: transfer of &#8216;hola.com/IN&#8217;: AXFR ended</p>
<p>Nov 5 15:43:57 ns1 named[1966]: client 10.1.1.3#48716: transfer of &#8216;hola.com/IN&#8217;: AXFR started<br />
Nov 5 15:43:57 ns1 named[1966]: client 10.1.1.3#48716: transfer of &#8216;hola.com/IN&#8217;: AXFR ended</p></blockquote>
<p>Con esto confirmamos que las zonas de DNS para hola.com fueron transferidas hacia los servidores de DNS secundarios.</p>
<p>Ahora es necesario confirmar que los archivos de las zonas de DNS en los servidores secundarios se esten creando correctamente. Entramos a los servidores de DNS secundarios, y hacemos un &#8220;cat&#8221; al archivo hola.com.hosts en el directorio /var/cache/bind.</p>
<p>Si todo esta bien mirarian algo similiar a esto:</p>
<blockquote><p>rolando@web:/var/cache/bind$ cat hola.com.hosts<br />
$ORIGIN .<br />
$TTL 86400 ; 1 day<br />
hola.com IN SOA ns1.hola.com. root.hola.com. (<br />
2008281000 ; serial<br />
3600 ; refresh (1 hour)<br />
7200 ; retry (2 hours)<br />
604800 ; expire (1 week)<br />
86400 ; minimum (1 day)<br />
)<br />
NS ns1.hola.com.<br />
NS ns2.hola.com.<br />
NS ns3.hola.com.<br />
A 10.1.1.5<br />
$ORIGIN hola.com.<br />
www CNAME hola.com.</p></blockquote>
<p>Felicidades, han montado un servidor de DNS primario con 2 secundarios. Cualquier duda o comentario es bienvenido.</p>
<p><strong>Les recomiendo que compren estos libros, si quieren aprender en su totalidad bind 9, los pueden comprar en Amazon con los siguientes enlaces:</strong><br />
<center></p>
<table>
<tr>
<td>
<iframe src="http://rcm.amazon.com/e/cm?t=unblogdetecno-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596100574&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</td>
<td>
<iframe src="http://rcm.amazon.com/e/cm?t=unblogdetecno-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0596004109&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</td>
</tr>
</table>
<p></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rolandovera.com/2008/11/18/como-instalar-bind-9-en-linux-debian/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
	</channel>
</rss>

