{"id":170,"date":"2020-05-18T19:51:51","date_gmt":"2020-05-18T19:51:51","guid":{"rendered":"http:\/\/dsantana.uas.edu.mx\/?p=170"},"modified":"2020-05-21T22:26:09","modified_gmt":"2020-05-21T22:26:09","slug":"cache-dns","status":"publish","type":"post","link":"https:\/\/dsantana.uas.edu.mx\/index.php\/2020\/05\/18\/cache-dns\/","title":{"rendered":"Cache DNS"},"content":{"rendered":"\n<p><strong>Objetivo<\/strong><\/p>\n\n\n\n<p>Aunque las direcciones Internet tengan nombres \u201clegibles\u201d (www.google.com), \u00e9stos deben ser traducidos a la direcci\u00f3n IP (213.129.232.18) del respectivo servidor. Esa conversi\u00f3n es efectuada realizando una b\u00fasqueda en el DNS (Domain Name System).<\/p>\n\n\n\n<p>Una cache DNS guardia localmente los resultados de esa b\u00fasqueda para utilizaci\u00f3n futura, evitando la repetici\u00f3n de b\u00fasquedas y aumentando dr\u00e1sticamente la velocidad de respuesta.<\/p>\n\n\n\n<p><strong>Instalaci\u00f3n<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# apt install bind9 bind9-doc dnsutils<\/code><\/pre>\n\n\n\n<p><strong>Configuraci\u00f3n<\/strong><\/p>\n\n\n\n<p>La configuraci\u00f3n generada durante la instalaci\u00f3n es perfectamente funcional, no requiere modificaciones. Sin embargo, vamos personalizar la instalaci\u00f3n en 2 aspectos principales: vamos a definir a cu\u00e1les servidores consultar\u00e1 el nuestro para pedir ayuda en la resoluci\u00f3n de nombres, si no es posible hacer esto localmente (forwarders) y vamos a fortalecer algunos aspectos de seguridad.<\/p>\n\n\n\n<p>Como forwarders podemos optar por varias hip\u00f3tesis: una es utilizar los servidores DNS de nuestro proveedor de acceso a Internet.<\/p>\n\n\n\n<p>Otra posibilidad muy interesante es utilizar uno de los diversos servicios p\u00fablicos de DNS disponibles en la actualidad, como:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>OpenDNS<\/li><li>Google Public DNS<\/li><\/ul>\n\n\n\n<p>Estos servicios prometen suministrar no s\u00f3lo resoluciones m\u00e1s r\u00e1pidas, sino tambi\u00e9n diversos servicios adicionales de seguridad, como filtros de direcciones maliciosos y otros m\u00e1s.<\/p>\n\n\n\n<p>En este caso, utilizaremos los servidores OpenDNS (http:\/\/www.opendns.com). Para tener otra opci\u00f3n, tambi\u00e9n se a\u00f1adir\u00e1 el del router ADSL.<\/p>\n\n\n\n<p>Por seguridad s\u00f3lo ser\u00e1n recibidas conexiones por la interfaz local o por la destinada a la red interna (listen-on { 127.0.0.1; 192.168.1.100; };). As\u00ed mismo, s\u00f3lo ser\u00e1n contestados los pedidos de resoluci\u00f3n que partan del propio puesto o de la red interna (allow-query { 127.0.0.1; 192.168.1.0\/24; };). Todos los otros pedidos ser\u00e1n ignorados, para evitar eventuales utilizaciones abusivas de nuestro servidor DNS por parte de terceros.<\/p>\n\n\n\n<p>La configuraci\u00f3n est\u00e1 guardada en el archivo \/etc\/bind\/named.conf.options:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/bind\/named.conf.options<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ &#91;...]\n \noptions {\n        directory \"\/var\/cache\/bind\";\n \n        \/\/ If there is a firewall between you and nameservers you want\n        \/\/ to talk to, you may need to fix the firewall to allow multiple\n        \/\/ ports to talk.  See http:\/\/www.kb.cert.org\/vuls\/id\/800113\n \n        \/\/ If your ISP provided one or more IP addresses for stable\n        \/\/ nameservers, you probably want to use them as forwarders.\n        \/\/ Uncomment the following block, and insert the addresses replacing\n        \/\/ the all-0's placeholder.\n \n        forwarders {\n \n                \/\/ Google Public DNS (IPv4)\n                8.8.8.8;\n                8.8.4.4;\n                \/\/ Google Public DNS (IPv6)\n                2001:4860:4860::8888;\n                2001:4860:4860::8844;\n \n                \/\/ OpenDNS servers\n                208.67.222.222;\n                208.67.220.220;\n \n                \/\/ ADSL router\n                192.168.1.1;\n        };\n \n        \/\/========================================================================\n        \/\/ If BIND logs error messages about the root key being expired,\n        \/\/ you will need to update your keys.  See https:\/\/www.isc.org\/bind-keys\n        \/\/========================================================================\n        dnssec-validation auto;\n \n        auth-nxdomain no;    # conform to RFC1035\n        \/\/ listen-on-v6 { any; };\n};<\/code><\/pre>\n\n\n\n<p>Verificar si el archivo de configuraci\u00f3n fue correctamente editado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# named-checkconf<\/code><\/pre>\n\n\n\n<p>Actualizar el archivo&nbsp;<em>\/etc\/resolv.conf<\/em>&nbsp;para que la resoluci\u00f3n de nombres se haga localmente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/resolv.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>nameserver 127.0.0.1\nnameserver ::1<\/code><\/pre>\n\n\n\n<p>Verificar tambi\u00e9n que en el archivo&nbsp;<em>\/etc\/nsswitch.conf<\/em>&nbsp;la resoluci\u00f3n de nombres pase tambi\u00e9n por el servicio&nbsp;<em><abbr title=\"Domain Name System\">DNS<\/abbr><\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/nsswitch.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># &#91;...]\nhosts:  files dns\n# &#91;...]<\/code><\/pre>\n\n\n\n<p>Reiniciar el servicio DNS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# systemctl restart bind9<\/code><\/pre>\n\n\n\n<p><strong>Verificaci\u00f3n<\/strong><\/p>\n\n\n\n<p>Para verificar la configuraci\u00f3n, debe buscar la direcci\u00f3n IP de cualquier sitio en internet. El servidor DNS deber\u00e1 mostrar nuestra direcci\u00f3n (127.0.0.1) y las direcciones IP del sitio buscado, se mostrar\u00e1n de forma correcta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# nslookup www.debian.org\nServer:         127.0.0.1\nAddress:        127.0.0.1#53\n \nNon-authoritative answer:\nName:   www.debian.org\nAddress: 5.153.231.4\nName:   www.debian.org\nAddress: 130.89.148.14<\/code><\/pre>\n\n\n\n<p>El proceso inverso, es decir, buscar un nombre a partir de una direcci\u00f3n IP, tambi\u00e9n debe funcionar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# nslookup 5.153.231.4\nServer:         127.0.0.1\nAddress:        127.0.0.1#53\n \nNon-authoritative answer:\n4.231.153.5.in-addr.arpa        name = senfter.debian.org.\n \nAuthoritative answers can be found from:\n.       nameserver = g.root-servers.net.\n.       nameserver = a.root-servers.net.\n.       nameserver = l.root-servers.net.\n.       nameserver = j.root-servers.net.\n.       nameserver = b.root-servers.net.\n.       nameserver = k.root-servers.net.\n.       nameserver = m.root-servers.net.\n.       nameserver = f.root-servers.net.\n.       nameserver = c.root-servers.net.\n.       nameserver = d.root-servers.net.\n.       nameserver = h.root-servers.net.\n.       nameserver = e.root-servers.net.\n.       nameserver = i.root-servers.net.<\/code><\/pre>\n\n\n\n<p><strong>Configuraci\u00f3n de los clientes<\/strong><\/p>\n\n\n\n<p><strong>Windows<\/strong><\/p>\n\n\n\n<p>Para los sistemas Windows, debe indicar, las propiedades del protocolo de Internet (TCP(IP)) de conexi\u00f3n de red, y debe determinar la direcci\u00f3n de nuestro servidor DNS (192.168.1.100) como servidor DNS preferido.<\/p>\n\n\n\n<p><strong>Linux<\/strong><\/p>\n\n\n\n<p>Para los sistemas Linux, se debe editar el archivo \/etc\/resolv.conf para substituir o a\u00f1adir el nameserver con la direcci\u00f3n IP de nuestro servidor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/resolv.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># &#91;...]\nnameserver 192.168.1.100\n# &#91;...]<\/code><\/pre>\n\n\n\n<p><strong>Configuraci\u00f3n autom\u00e1tica de clientes<\/strong><\/p>\n\n\n\n<p>El servidor DNS puede ser atribuido a los clientes autom\u00e1ticamente, a trav\u00e9s del protocolo DHCP. Para esto, basta acrecentar la opci\u00f3n domain-name-servers como la o las direcciones de los servidores DNS al archivo \/etc\/dhcp\/dhcpd.conf del servidor DHCP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/dhcp\/dhcpd.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># &#91;...]\noption domain-name-servers 192.168.1.100;\n# &#91;...]<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Objetivo Aunque las direcciones Internet tengan nombres \u201clegibles\u201d (www.google.com), \u00e9stos deben ser traducidos a la direcci\u00f3n IP (213.129.232.18) del respectivo servidor. Esa conversi\u00f3n es efectuada realizando una b\u00fasqueda en el DNS (Domain Name System). Una cache DNS guardia localmente los resultados de esa b\u00fasqueda para utilizaci\u00f3n futura, evitando la repetici\u00f3n de b\u00fasquedas y aumentando dr\u00e1sticamente la velocidad de respuesta. Instalaci\u00f3n Configuraci\u00f3n La configuraci\u00f3n generada durante la instalaci\u00f3n es perfectamente funcional, no requiere modificaciones. Sin embargo, vamos personalizar la instalaci\u00f3n en 2 aspectos principales: vamos a definir a cu\u00e1les servidores consultar\u00e1 el nuestro para pedir ayuda en la resoluci\u00f3n de nombres, si no es posible hacer esto localmente (forwarders) y vamos a fortalecer algunos aspectos de seguridad. Como forwarders podemos optar por varias hip\u00f3tesis: una es utilizar los servidores DNS de nuestro proveedor de acceso a Internet. Otra posibilidad muy interesante es utilizar uno de los diversos servicios p\u00fablicos de DNS disponibles en la actualidad, como: OpenDNS Google Public DNS Estos servicios prometen suministrar no s\u00f3lo resoluciones m\u00e1s r\u00e1pidas, sino tambi\u00e9n diversos servicios adicionales de seguridad, como filtros de direcciones maliciosos y otros m\u00e1s. En este caso, utilizaremos los servidores OpenDNS (http:\/\/www.opendns.com). Para tener otra opci\u00f3n, tambi\u00e9n se a\u00f1adir\u00e1 el del router ADSL. Por seguridad s\u00f3lo ser\u00e1n recibidas conexiones por la interfaz local o por la destinada a la red interna (listen-on { 127.0.0.1; 192.168.1.100; };). As\u00ed mismo, s\u00f3lo ser\u00e1n contestados los pedidos de resoluci\u00f3n que partan del propio puesto o de la red interna (allow-query { 127.0.0.1; 192.168.1.0\/24; };). Todos los otros pedidos ser\u00e1n ignorados, para evitar eventuales utilizaciones abusivas de nuestro servidor DNS por parte de terceros. La configuraci\u00f3n est\u00e1 guardada en el archivo \/etc\/bind\/named.conf.options: Verificar si el archivo de configuraci\u00f3n fue correctamente editado: Actualizar el archivo&nbsp;\/etc\/resolv.conf&nbsp;para que la resoluci\u00f3n de nombres se haga localmente: Verificar tambi\u00e9n que en el archivo&nbsp;\/etc\/nsswitch.conf&nbsp;la resoluci\u00f3n de nombres pase tambi\u00e9n por el servicio&nbsp;DNS: Reiniciar el servicio DNS: Verificaci\u00f3n Para verificar la configuraci\u00f3n, debe buscar la direcci\u00f3n IP de cualquier sitio en internet. El servidor DNS deber\u00e1 mostrar nuestra direcci\u00f3n (127.0.0.1) y las direcciones IP del sitio buscado, se mostrar\u00e1n de forma correcta: El proceso inverso, es decir, buscar un nombre a partir de una direcci\u00f3n IP, tambi\u00e9n debe funcionar: Configuraci\u00f3n de los clientes Windows Para los sistemas Windows, debe indicar, las propiedades del protocolo de Internet (TCP(IP)) de conexi\u00f3n de red, y debe determinar la direcci\u00f3n de nuestro servidor DNS (192.168.1.100) como servidor DNS preferido. Linux Para los sistemas Linux, se debe editar el archivo \/etc\/resolv.conf para substituir o a\u00f1adir el nameserver con la direcci\u00f3n IP de nuestro servidor: Configuraci\u00f3n autom\u00e1tica de clientes El servidor DNS puede ser atribuido a los clientes autom\u00e1ticamente, a trav\u00e9s del protocolo DHCP. Para esto, basta acrecentar la opci\u00f3n domain-name-servers como la o las direcciones de los servidores DNS al archivo \/etc\/dhcp\/dhcpd.conf del servidor DHCP:<\/p>\n","protected":false},"author":1,"featured_media":306,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,5,12,1,10,6],"tags":[53],"class_list":["post-170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-debian","category-docencia","category-linux","category-sin-categoria","category-sistemas-operativos","category-talleres","tag-cache-dns"],"_links":{"self":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/comments?post=170"}],"version-history":[{"count":4,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/170\/revisions"}],"predecessor-version":[{"id":307,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/170\/revisions\/307"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media\/306"}],"wp:attachment":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media?parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/categories?post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/tags?post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}