Contactos

Configuración Freebsd Unbound en detalle Receta 10.3. Obtención de la configuración de red a través de DHCP

En este artículo, veremos las interfaces de red en FreeBSD 11.1, vamos a mostrar la configuración de la red a través del archivo de configuración / etc / rc.conf, es decir, el propósito estático ajustes y conseguirlos DHCP. Escribamos las direcciones DNS-servidores, configurar Hospedadores y considera la indicación configuración de red temporal.

Ver interfaces de red.

Primero, dejémoslo claro: Hay dos estados de la tarjeta de red HASTA(involucrado) y ABAJO(no utilizado).

El primer paso es mirar nuestras interfaces de red, buscaremos con el comando ifconfig(Fig.1) La salida del comando muestra todas las interfaces HASTA y ABAJO.

Ifconfig

ifconfig -a te mostrará lo mismo.

Ifconfig -a

Aquí hay algunas diferencias con ifconfig v Servidor de Ubuntu. (v Servidor de Ubuntu "ifconfig" solo muestra interfaces HASTA,"ifconfig -a" muestra todas las interfaces y HASTA y ABAJO)

Fig. 1 - El resultado de ingresar el comando ifconfig.

Y entonces, ¿qué vemos?

  • em0- nuestra tarjeta de red, con una dirección IP 192.168.3.11 .
  • em1- segunda tarjeta de red no configurada.
  • lo- bucle local, está presente por defecto para todos.

Para ver solo las interfaces HASTA, el comando se usa ifconfig -u(Figura 2):

Ifconfig -u

y para ver solo las interfaces ABAJO, el comando se usa ifconfig -d(Fig. 3):

Ifconfig -d
Fig. 2 - El resultado de ingresar el comando ifconfig -u.
Fig. 3 - El resultado de ingresar el comando ifconfig -d.

En el futuro, mostraré ejemplos de configuraciones en la interfaz. "em0".

Para habilitar la interfaz, use el comando ifconfig"NOMBRE-INTERFAZ" hasta.

Ifconfig em0 arriba

Para apagar la interfaz, use el comando ifconfig "NOMBRE-INTERFAZ" abajo.

Ifconfig em0 abajo

"Jugar" con una interfaz, a menos que, por supuesto, esté conectado por ssh y déjalo en un estado HASTA.

Configurando la red a través del archivo de configuración.

Para configurar una dirección IP estática o dinámica, necesitamos editar el archivo de configuración de las interfaces de red - / etc / rc.conf lo editaremos con un editor de texto vi(Fig. 4) Te lo diré enseguida, para poder editar en vi Necesito presionar una letra "I" y para guardar y cerrar el documento, presione "Esc" presentar ": wq!" y presione "Ingresar".

Figura 4 - vi /etc/rc.conf.

Obtención de la configuración de red a través de DHCP.

Para asignar la recepción de la configuración a través de DHCP, debe ingresar (o cambiar la línea existente) en / etc / rc.conf(Figura 5)

ifconfig_NOMBRE-INTERFAZ= "DHCP"

Ifconfig_em0 = "DHCP"
Fig. 5 - Obtención de la configuración de red a través de DHCP.

Reinicie el servicio de red netif(Figura 6)

/etc/rc.d/netif restart Fig. 6 - Reinicio del servicio de red FreeBSD.

Observamos las interfaces de red activas, vemos, recibidas a través de DHCP, la dirección IP de la interfaz em0- 192.168.3.6 (Figura 7)

Ifconfig -u

Hacer ping 8.8.8.8
Fig. 7 - Comprobación de interfaces activas y acceso a la red.

Vienen los pings. ¡Todo perfectamente!

Especificación manual de la configuración de red.

Para asignar una dirección estática a nuestro Freebsd necesita archivar / etc / rc.conf ingrese dos líneas (Fig.8)

ifconfig_NOMBRE-INTERFAZ= "inet SIN DIRECCIÓN IP BSD máscara de red RED DE MASCARAS "

defaultrouter = " DIRECCIÓN IP DE GATEWAY "

Ifconfig_em0 = "inet 192.168.3.11 netmask 255.255.255.0" defaultrouter = "192.168.3.1"
Fig. 8 - Configuración estática de la interfaz de red.

Reiniciamos el servicio de red.

/etc/rc.d/netif reiniciar

Comprobación de interfaces activas

Ifconfig -u

Verificamos el acceso a Internet haciendo ping a Google Eights.

Hacer ping 8.8.8.8

Configuración de DNS.

Las direcciones IP del servidor DNS se almacenan en el archivo / etc / resolv.conf(Figura 9)

Nosotros abrimos resolv.conf en editor vi.

Vi /etc/resolv.conf

Entramos IP Dirección DNS servidor. (Puede ingresar tantas direcciones como desee).

Servidor de nombres 192.168.3.1 servidor de nombres 8.8.8.8 servidor de nombres 8.8.4.4

Si no tienes un archivo resolv.conf luego créalo en el directorio / etc

Toque /etc/resolv.conf
Fig. 9 - Contenido del archivo resolv.conf.

El archivo / etc / hosts.

El archivo / etc / Hospedadores contiene tablas para asignar nombres DNS a direcciones IP. En primer lugar, su servidor accederá al archivo Hospedadores y luego al servidor DNS.

En lo que a mí respecta, me pareció útil agregar Hospedadores grabando esto freebsd(La dirección IP de la red local es el nombre del servidor). Ahora podemos especificar el nombre DNS, no la dirección IP, en todos los archivos de configuración y, si es necesario, cambiar nuestra dirección IP en el menor tiempo posible corrigiendo Hospedadores y la configuración de la interfaz en / etc / rc.conf.

Este es solo un ejemplo para que lo haga. no es necesario.

Comencemos a editar (Fig.10):

Vi / etc / hosts

Yo entro:

192.168.3.11 freebsd.itdeer.loc Fig. 10 - Contenido del archivo hosts.

Lo comprobaré haciendo ping a los nombres de Hospedadores(Figura 11)

Hacer ping localhost ping freebsd.itdeer.loc
Fig. 11 - Ping de nombres de hosts.

Asignación temporal de una dirección IP.

Para ser honesto, no sé para qué puede ser útil la asignación temporal de configuraciones de red. A menos que digamos que tiene algún tipo de servidor que está destinado solo para su red local y de repente decidió actualizar rápidamente el software a través de Internet en este servidor, para no ir a la puerta de enlace, no distribuir Internet a la IP deseada. dirección, etc. Puede arreglárselas con un par de comandos.

Por ejemplo, sabemos que en 192.168.3.109 Definitivamente hay acceso a Internet, asignamos esta dirección IP a nuestra interfaz, también debe especificar la máscara de red (Fig.12):

Ifconfig em0 192.168.3.109 máscara de red 255.255.255.0

o un comando con una entrada de máscara de red corta.

Ifconfig em0 192.168.3.109/24
Fig. 12 - Especificación de la configuración temporal para la interfaz de red em0.

Es posible que Internet no aparezca porque no se especificó una puerta de enlace predeterminada. Lo registramos y hacemos ping a los ochos de Google (Fig. 13).

Ruta agregar predeterminado 192.168.3.1 ping 8.8.8.8
Fig. 13 - Especifique la puerta de enlace predeterminada. Comprobando ping.

Si hemos registrado correctamente nuestra puerta de enlace predeterminada, se puede ver en la tabla de enrutamiento. Se muestra usando el comando "netstat -rn" La puerta de enlace predeterminada se indicará con una bandera UG(Figura 14)

Netstat -rn
Fig. 14 - Salida de la tabla de enrutamiento.

Si ha escrito mal la ortografía en algún lugar o ha especificado una puerta de enlace diferente, puede eliminar la puerta de enlace predeterminada.

Ruta del defecto

Esto completa la configuración temporal, recuerde que después de reiniciar el servidor o por separado los servicios redes, todos los ajustes temporales desaparecerán.

Agregue una ruta a la red 192.168.0.0/16 (Máscara 255.255.0.0) a través de la puerta de enlace predeterminada 192.168.3.1/24

Ruta agregar 192.168.0.0/16 192.168.3.1

Opción de agregar una ruta con máscara completa.

Agregar ruta -net 192.168.0.0 -mascara de red 255.255.0.0 192.168.3.1

Cambie el nombre de la interfaz em0 a wan0.

Por conveniencia, algunos administradores cambian el nombre de las interfaces para que puedan ver de inmediato para qué sirve. Digamos que tenemos una puerta de enlace con dos interfaces de red. em0(internet) y em1(red local) y trabajar con tales nombres es inconveniente, ya que tener una gran cantidad de interfaces puede resultar confuso. Es mucho más conveniente trabajar con interfaces. wan0 y lan1.

Mostraremos un ejemplo de cambio de nombre de una interfaz. em0 v wan0 en el archivo / etc / rc.conf(Figura 15)

Ifconfig_em0 = "inet 192.168.3.11 máscara de red 255.255.255.0"

Reemplazar con dos líneas:

Ifconfig_ em0 _name = " wan0"ifconfig_ wan0= "inet 192.168.3.11 máscara de red 255.255.255.0"
Fig.15 - Renombrar las interfaces en el archivo /etc/rc.conf.

No olvide reiniciar el servicio de red:

/etc/rc.d/netif reiniciar

Compruebe, ingrese el comando ifconfig -u... Vemos nuestro wan0 con el derecho dirección IP. (Figura 16)

Ifconfig -u
Fig. 16 - Comprobando el nuevo nombre de la interfaz. ifconfig -u.

// $ FreeBSD: src / etc / namedb / named.conf, v 1.26.2.2.4.1 2009/04/15 03:14:26 kensmith Exp $
// Consulte las páginas de manual named.conf (5) y named (8), y la documentación
// en / usr / share / doc / bind9 para más detalles.
// Si va a configurar un servidor autorizado, asegúrese de
// Comprende los complicados detalles de cómo funciona el DNS. Incluso con
// errores simples, puede romper la conectividad de las partes afectadas,
// o causar grandes cantidades de tráfico inútil en Internet.

tecla "rndc-key" (
algoritmo hmac-md5;
secreto "BYSzvbwt6grksw16bMIfrw ==";
};

control S (
inet 127.0.0.1 puerto 953
permitir (127.0.0.1;) claves ("rndc-key";);
};

acl "confiable"
{
192.168.0.0/24;
127.0.0.1;
195.24.128.164;
192.168.200.20;
85.119.72.2;
};

opciones (
// Relativo al directorio chroot, si lo hay
directorio "/ etc / namedb";
pid-file "/ var / run / named / pid";
archivo de volcado "/var/dump/named_dump.db";
archivo de estadísticas "/var/stats/named.stats";

Permitir transferencia (confiable;); permitir-consulta (cualquiera;); permitir recursividad (cualquiera;);

// Si named se usa solo como un solucionador local, este es un valor predeterminado seguro.
// Para que named sea accesible a la red, comente esta opción, especifique
// la dirección IP adecuada, o elimine esta opción.
escucha (127.0.0.1; 192.168.200.10;);

// Si tiene IPv6 habilitado en este sistema, descomente esta opción para
// utilizar como solucionador local. Para dar acceso a la red, especifique
// una dirección IPv6 o la palabra clave "cualquiera".
// escuchar-en-v6 (:: 1;);

// Estas zonas ya están cubiertas por las zonas vacías que se enumeran a continuación.
// Si elimina las zonas vacías relacionadas a continuación, comente estas líneas.
desactivar-zona-vacía "255.255.255.255.IN-ADDR.ARPA";
desactivar-zona-vacía "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
inhabilitar-zona-vacía "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";

// Además de la cláusula "reenviadores", puede forzar su nombre
// servidor para que nunca inicie consultas propias, pero siempre pregunte a su
// solo reenviadores, habilitando la siguiente línea:
// solo reenviar;

// Si tiene un servidor DNS en su proveedor ascendente, ingrese
// su dirección IP aquí, y habilite la línea a continuación. Esto te hará
// Benefíciese de su caché, reduciendo así el tráfico DNS general en Internet.
/*
los transportistas
127.0.0.1;
};
};

zona "." (escriba pista; archivo "named.root";);

zona "localhost" (escriba master; archivo "master / localhost-forward.db";);

zona "127.in-addr.arpa" (escriba master; archivo "master / localhost-reverse.db";);

zona "255.in-addr.arpa" (escriba master; archivo "master / empty.db";);

// Zona de estilo RFC 1912 para la dirección de host local IPv6
zona "0.ip6.arpa" (escriba master; archivo "master / localhost-reverse.db";);

// "Esta" red (RFC 1912 y 3330)
zona "0.in-addr.arpa" (escriba master; archivo "master / empty.db";);

// Redes de uso privado (RFC 1918)
zona "10.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "16.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "17.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "18.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "19.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "20.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "21.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "22.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "23.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "24.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "25.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "26.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "27.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "28.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "29.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "30.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "31.172.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "168.192.in-addr.arpa" (escriba master; archivo "master / empty.db";);

// Link-local / APIPA (RFC 3330 y 3927)
zona "254.169.in-addr.arpa" (escriba master; archivo "master / empty.db";);

// TEST-NET para documentación (RFC 3330)
zona "2.0.192.in-addr.arpa" (escriba master; archivo "master / empty.db";);

// Prueba comparativa de enrutadores (RFC 3330)
zona "18.198.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "19.198.in-addr.arpa" (escriba master; archivo "master / empty.db";);

// IANA Reservado - Antiguo espacio de clase E
zona "240.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "241.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "242.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "243.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "244.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "245.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "246.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "247.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "248.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "249.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "250.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "251.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "252.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "253.in-addr.arpa" (escriba master; archivo "master / empty.db";);
zona "254.in-addr.arpa" (escriba master; archivo "master / empty.db";);

// Direcciones IPv6 no asignadas (RFC 4291)
zona "1.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "3.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "4.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "5.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "6.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "7.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "8.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "9.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "a.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "b.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "c.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "d.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "e.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "0.f.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "1.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "2.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "3.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "4.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "5.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "6.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "7.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "8.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "9.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "a.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "b.f.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "0.e.f.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "1.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "2.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "3.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "4.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "5.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "6.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "7.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);

// IPv6 ULA (RFC 4193)
zona "c.f.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "d.f.ip6.arpa" (escriba master; archivo "master / empty.db";);

// Enlace IPv6 local (RFC 4291)
zona "8.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "9.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "a.e.f.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "b.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);

// Direcciones locales de sitio obsoletas IPv6 (RFC 3879)
zona "c.e.f.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "d.e.f.ip6.arpa" (tipo master; archivo "master / empty.db";);
zona "e.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);
zona "f.e.f.ip6.arpa" (escriba master; archivo "master / empty.db";);

// IP6.INT está obsoleto (RFC 4159)
zona "ip6.int" (escriba master; archivo "master / empty.db";);

/ * Un ejemplo de zona dinámica
clave "exampleorgkey" (
algoritmo hmac-md5;
secreto "sf87HJqjkqh8ac87a02lla ==";
};
zona "ejemplo.org" (
maestro de tipo;
permitir-actualizar
clave "exampleorgkey";
};
archivo "dynamic / example.org";
};
*/

/ * Ejemplo de zona inversa esclava
zona "1.168.192.in-addr.arpa" (
tipo esclavo;
archivo "esclavo / 1.168.192.in-addr.arpa";
maestros
192.168.1.1;
};
};

En esta publicación, quiero revelar la configuración de un servidor DNS en una máquina que ejecuta el sistema operativo FreeBSD, con el cual sería posible admitir varios (en teoría, ilimitados) números de zonas de dominio: primario (primario), secundario (secundario) así como revertir o revertir (marcha atrás)... Pero primero, presentaré una pequeña teoría, para explicar qué se necesita, qué son y cómo estas mismas zonas de dominio se diferencian entre sí.

La zona DNS primaria o, como también se la llama, primaria es un conjunto de registros de nombres de dominio, así como subnombres, que son registrados por el administrador de esta zona. La zona DNS primaria de un nombre de dominio tiene autoridad o autoridad para una secundaria. Es decir, contiene la información más relevante sobre la zona y la comparte con todas las zonas secundarias. La zona primaria generalmente es compatible con el servidor DNS primario (primario) de la zona dada. El administrador de este servidor es responsable de registrar los registros de zona en los archivos de configuración del servidor DNS.

La zona DNS secundaria es una zona primaria subordinada y duplicada. Es necesario para mantener y distribuir registros para el nombre de dominio en caso de que, por alguna razón, el servidor DNS primario de la zona no esté disponible en Internet. El servidor en el que se registra la zona DNS secundaria para cualquier nombre de dominio se denomina servidor DNS secundario o alternativo o secundario de la zona. Puede haber un número ilimitado de servidores DNS secundarios para una zona. El único requisito es que todos deben estar configurados para recibir información sobre esta zona desde el servidor DNS primario. En consecuencia, el DNS primario debe configurarse para proporcionar esta información a todos los servidores DNS secundarios de la zona. Por lo general, se utilizan un servidor DNS y uno o dos secundarios para admitir zonas de dominio. En casos raros, un esquema es posible cuando utilizo dos servidores DNS primarios para admitir una zona, mientras los configuro de tal manera que la información en ellos siempre esté sincronizada.

El DNS primario y secundario de una zona debe estar en redes diferentes (sistemas autónomos). Y cuanto más lejos estén geográficamente, mejor. Rara vez, pero todavía hay cataclismos en Internet, en los que países enteros quedan “aislados del mundo”. En este caso, después de haber registrado la zona en el servidor DNS primario en Ucrania y usar el DNS como secundario en los Estados Unidos, no tiene que preocuparse de que, en caso de problemas con los canales troncales, la zona de dominio "muera". .

La zona inversa se utiliza para especificar lo que se denominan registros DNS inversos. Se utilizan para indicar la correspondencia de direcciones IP con ciertos nombres. ¿Difícil de comprender? Dejame darte un ejemplo.

Hay una dirección IP de 213.180.204.8. Esta es la dirección IP del servidor en el que se ejecuta el conocido http://ya.ru/. Al buscar una coincidencia para el nombre ya.ru con la dirección IP de la máquina a la que está "vinculado" este nombre , puede ejecutar el comando:

$ host ya.ru ya.ru tiene la dirección 213.180.204.8 ...

o en windows

C:> nslookup ya.ru ... Nombre: ya.ru Dirección: 213.180.204.8

Tenemos un mapeo de un nombre a una dirección IP, o “traducción directa de un nombre a una dirección IP” (usando un registro A). Sin embargo, con el tiempo en Internet, también se hizo necesario hacer coincidir la dirección IP del nombre (quizás esto sucedió en el fragor de la lucha contra los crecientes volúmenes de tráfico de spam). Y luego se les ocurrió la zona denominada “IN-ADDR.ARPA”, a la que estaban vinculadas todas las direcciones de Internet, invertidas. Cómo se ve?

$ host 213.180.204.8 8.204.180.213.in-addr.arpa puntero de nombre de dominio ya.ru.

o en windows

C:> nslookup -q = PTR 8.204.180.213.in-addr.arpa ... 8.204.180.213.in-addr.arpa name = ya.ru ...

Todas las direcciones IP en Internet se pueden convertir a la forma XXX.XXX.XXX.XXX.in-addr.arpa Para hacer esto, solo necesita escribir la dirección "al revés" y agregar ".in-addr.arpa" al final ... Por lo tanto, la zona prescrita para la traducción inversa de la dirección IP se denomina zona inversa o inversa o inversa. Como puede ver en el último ejemplo, para 8.204.180.213.in-addr.arpa está registrado el nombre ya.ru

Durante mucho tiempo, sucedió que los programas para trabajar como servicios básicos de red están incluidos por defecto en el código del sistema operativo FreeBSD. DNS no es una excepción. En FreeBSD, el programa bind (o named) actúa como servidor DNS. Sin embargo, con el tiempo, se ha escrito una gran cantidad de software diferente que puede reemplazar fácilmente a bind, ya que bind es "nativo" de FreeBSD y lo usaremos. A pesar de la cantidad de vulnerabilidades críticas que se han descubierto a lo largo de su historia, sigue siendo uno de los servidores DNS más populares en Internet. Por cierto, los desarrolladores de FreeBSD arreglaron el último error, no crítico, en la víspera de la versión 6.3.

Entonces, estamos trabajando con el sistema operativo FreeBSD 6.3 RELEASE. Última versión de bind hasta la fecha:

# named -version BIND 9.3.4-P1

Todos los archivos de configuración para nuestro DNS se encuentran en el directorio / etc / namedb /, que es un enlace al directorio / var / named / etc / namedb. El directorio / var / named / es el entorno chroot en el que se inicia el enlace. Los siguientes archivos se pueden ubicar en este directorio:

# ls / etc / namedb / dump -> / var / named / var / dump master / named.conf named.root reverse / rndc.key esclavo / stats -> / var / named / var / stats zones.master zones.slave zone.reverse

  • named.conf - archivo de configuración de enlace principal
  • zone.master, zones.slave, zones.reverse: archivos de configuración que contienen zonas DNS admitidas
  • esclavo /, maestro /, inverso / - directorios donde se encuentran los archivos de configuración para las zonas DNS
  • named.root: un archivo de configuración del sistema que contiene información sobre todos los servidores DNS raíz en Internet
  • rndc.key: archivo con una clave, que se necesita para controlar el trabajo de vinculación mediante la utilidad rndc

Nuestro futuro servidor DNS requiere:

  • Distribuya información actualizada sobre nuestra zona zone1.com, es decir, sea el DNS principal para ella.
  • Mantenga la zona de friends.com y sea un DNS secundario para ella.
  • Dado que tenemos una cierta cantidad de máquinas en la red local, es necesario registrar un registro DNS inverso para cada máquina. Necesitamos esto para que, por ejemplo, Apache (que se ejecutará en el mismo servidor) no registre las direcciones IP, sino los nombres de las computadoras en nuestra red local.
  • Realizar búsqueda recursiva en el sistema DNS para zonas (nombres) que no están actualmente en la caché y que no están registradas en nuestro servidor DNS.

Comencemos por editar el archivo de configuración. /etc/namedb/named.conf... Por cierto, hombre llamado.conf Es un gran tutorial para configurar bind.

A continuación se muestra un ejemplo de trabajo escrito siguiendo este tutorial. Las líneas que comienzan con // son comentarios.

////////////////////////////////////// // Enlazar archivo de configuración por Daemony ///// // /////////////////////////////// // 1. Configuración global // // Crea una lista de acceso. Llamémoslo IN_NET. A continuación será útil. acl "IN_NET" (127.0.0.1; 172.17.17.0/24;); // // Las siguientes son las opciones del servidor principal (// - nombre de host, en principio no es necesario nombre de host "ns.mydns.net"; // - directorio con archivos de configuración directorio "/ etc / namedb"; // ¡ATENCIÓN! Además, las rutas a los archivos y directorios // se especifican en el chroot "entorno / var / named // - donde se ubicará el archivo pid del daemon pid-file" / var / run / named / pid " ; // - aquí podemos (aunque es opcional) especificar el archivo // en el que caerá la caché de DNS después de ejecutar el comando // rndc dumbdb dump-file "/var/dump/named_dump.db"; // - y este archivo (también opcional) se eliminará // estadísticas del servidor, si ejecuta rndc stats statistics-file "/var/stats/named.stats"; // // En qué interfaces escuchar el puerto 53. // Si el parámetro no está especificado, entonces todo escucha. listen-on (127.0.0.1; 192.168.0.1; XXX.XXX.XXX.XXX;); // Una opción interesante. Te lo diré al final de la configuración, // donde puede ayudar. Interface-interval 10; // ¿Permitir consultas recursivas? Sí. Recursion yes; // Definimos, de a Para procesar dichas redes // solicitudes recursivas. Usamos aquí, // creamos anteriormente Control de acceso // Lista llamada IN_NET allow-recursion ("IN_NET";); // Si no hay una entrada en el caché sobre la zona que necesitamos, // ¿qué hacer? ¿Desea comenzar a buscar un nombre directamente desde // servidores DNS raíz, o intentar // "verificar" esta información desde el DNS más cercano (generalmente su // proveedor) redirigiendo la solicitud? // Sí, redirigir. adelante primero; // Para redirigir, necesita saber // a quién redireccionar. Indicamos aquí los DNS "s // de nuestro proveedor (varios son posibles). Forwarders (XXX.XXX.XXX.XXX; YYY.YYY.YYY.YYY;); // Sobre aquellas zonas que apoyamos // (tanto primario y secundario) a quien // daremos información a todos. Este parámetro // se puede redefinir para cada // zona específica en el archivo de configuración de la zona. allow-query (any;); // Parámetro para especificar la versión del servidor . versión "SuperPuper DNS";); // La configuración global ha terminado. // Luego hay parámetros opcionales // para el registro. Puedes escribir, pero // no puedes escribir. logging (channel syslog (syslog daemon; severity info ; categoría de impresión sí; severidad de impresión sí;); categoría xfer-in (syslog;); categoría xfer-out (syslog;); categoría config (syslog;); categoría predeterminada (null;);); // / / Y aquí escribimos la configuración "remota" // Gestión del servidor DNS con la utilidad rndc. // Tomé el control remoto entre comillas, porque // administraremos nuestro DNS solo desde el host local. // Aunque es posible hacer bind open // "command chanel" en la interfaz // y aceptar comandos de nodos remotos. // Pero creo que esto es un "agujero" y, por lo tanto, no la fig. // Deje que solo escuche localhost y acepte // comandos solo de él. En esta sección, // necesitamos registrar solo la clave que // se usará al trabajar con rndc. clave "Daemony" (algoritmo hmac-md5; secreto "pPSvUGU4mRoD0vTuwpzvUg ==";); // // En realidad, con la configuración del servidor en este // todo. A continuación, se encuentran las configuraciones solo para zonas DNS. // ////////////////////////////////////////////// // Yo condicionalmente llamado esta sección zonas "SISTEMA" /////////////////////////////////////// //// / // ///// Zona raíz. O zona de "punto". // ¡EMPEZANDO! // De lo contrario, su DNS no funcionará. // zona "." (// - el tipo de zona se describe aquí type hint; // - el archivo de configuración de zona se especifica aquí. file "named.root";); // ///// Zona directa para la zona de localhost "localhost" (// - el siguiente parámetro indica que nuestro servidor DNS // para esta zona es maestro de tipo autorizado; // - a quién se le puede informar sobre esta zona - // comprensible el asunto es que sólo a uno mismo allow-query (127.0.0.1;); // - archivo con el archivo de configuración de zona "master / localhost";); // ///// Zona inversa para la zona localhost "0.0.127.IN-ADDR.ARPA" (escriba master; allow-query (127.0.0.1;); archivo "reverse / localhost.rev";); // Todo es igual que en el caso anterior. // // Al final de named.conf, usamos la construcción // include para incluir la lectura del resto de la // configuración de DNS, es decir, información sobre las zonas admitidas, // que está contenida en los siguientes archivos. // incluir "/etc/namedb/zones.master"; incluir "/etc/namedb/zones.slave"; incluir "/etc/namedb/zones.reverse"; /// Fin de la configuración de enlace

En cuanto a la opción " intervalo de interfaz”Puede ser útil en servidores donde la interfaz externa es dinámica, por ejemplo, tun0 ... Si está conectado a un proveedor de servicios de Internet mediante PPP o PPPoE cuando el sistema se inicia, el enlace puede comenzar más rápido de lo que se abrirá PPP / PPPoE compuesto. Junto con " escucha”Esto dará como resultado que bind no pueda escuchar la interfaz que apareció después de que se inició. No sé cómo tratarlo. Si alguien me pide, le daré las gracias. Pero sé que con la ayuda de " intervalo de interfaz N; "Puede hacer que el enlace espere N segundos después de iniciarlo antes de que" gire "en las interfaces. Cuando el sistema se inicia en 10 segundos, la interfaz PPPoE, por ejemplo, generalmente se activa sin problemas y el enlace continúa funcionando normalmente.

Expediente zone.reverse conectado en la configuración named.conf y contiene información sobre zonas de marcha atrás. Tenemos uno. Necesitamos registros PTR para máquinas en la red local, y en la red local solo tenemos una subred 192.168.0.0/24

// - nombre de zona zone "0.168.192.IN-ADDR.ARPA" (// - tipo de zona - lo tenemos "primario" pero registrado para maestro de tipo inverso; // - quién puede ser responsable de las solicitudes para recibir // Información sobre los nombres en esta zona? Solo nuestra red local allow-query (127.0.0.1; 192.168.0.0/24;); // - ruta al archivo de configuración de zona "reverse / in.0.168.192.rev" ;);

El archivo zone.master también se incluye en la configuración named.conf y contiene información sobre qué primarias ( primario) zonas que apoyaremos. Por ejemplo, solo tendremos uno. Zona zone1.com

// - nombre de zona zone "zone1.com" (// - tipo de zona - lo tenemos "maestro" - tipo primario maestro; // - ruta al archivo de configuración de zona archivo "master / zone1.com"; // - ¿A quién puedo ser responsable de las solicitudes para obtener // información sobre los nombres en esta zona? Todos. allow-query (any;); // - ¿Quién puede dar la configuración completa de la zona // (para realizar una transferencia). Aquí solo indicamos las direcciones IP // de nuestros servidores DNS secundarios para zone1.com allow-transfer (100.200.0.1; 200.100.0.2;););

El archivo zone.slave está nuevamente conectado en la configuración named.conf y contiene información sobre qué secundaria ( secundario) deben ser compatibles con nuestro servidor DNS. En este ejemplo, apoyamos una zona friends.com

// - especificar el nombre de la zona zone "friends.com" (// - indicar que esta zona es un esclavo de tipo secundario (esclavo); // - en qué archivo guardar la información sobre este archivo de zona "esclavo / amigos. com "; // - especifique la (s) dirección (es) IP de los servidores DNS primarios // Permítame recordarle que puede haber más de un servidor primario maestro (210.220.230.240;););

La configuración de la zona está lista. Si necesita agregar alguna otra zona, edite el archivo correspondiente e indique a bind que vuelva a leer la configuración. Ahora describamos las zonas en sí mismas en los archivos correspondientes. Comencemos con localhost.

# cat / etc / namedb / master / localhost $ TTL 1D localhost. EN SOA ns.mydns.net. root.ns.mydns.net. (2007042001; número de serie 86400; actualizar 3600; reintentar 3888000; caducar 3600; mínimo) localhost. EN NS ns.mydns.net. localhost. EN UN 127.0.0.1

En este ejemplo, la segunda línea contiene los siguientes parámetros: " nombre de la zona"- localhost," tipo de registro"- EN SOA - Inicio de autoridad -" El comienzo de la zona autoritaria.", Del cual el servidor DNS autorizado es responsable ns.mydns.net, y el administrador de este servidor puede ser contactado por correo electrónico [correo electrónico protegido] (el punto se reemplaza por "perro"). A esto le sigue el número de serie de la zona ( número de serie), que la siempre debe cambiarse cuando se realizan cambios en la zona, el período de actualización de la zona ( actualizar) servidores DNS secundarios (en segundos), el período entre los intentos de actualizar la zona por parte de un servidor DNS secundario ( rever), si el intento anterior no tuvo éxito, la vida útil de la zona ( expirar) en el servidor DNS secundario si el principal no está disponible. ¿Qué significa el parámetro " mínimo“Sinceramente, no lo recuerdo.

A esto le siguen descripciones de los registros DNS de la zona. En el ejemplo, puede ver que un registro A está registrado para el nombre del host local y apunta a la dirección IP 127.0.0.1 El servidor ns.mydns.net es responsable de mantener la zona, es decir, nuestro enlace local.

Ejemplo de configuración de zona DNS inversa para localhost

# cat /etc/namedb/reverse/localhost.rev $ TTL 3600 @ IN SOA ns.mydns.net. root.ns.mydns.net. (2007042001; Serie 3600; Actualizar 900; Reintentar 3600000; Caducar 3600); Mínimo IN NS ns.mydns.net. 1 EN PTR localhost.

Ahora nuestro enlace sabrá que el siguiente registro PTR está escrito para 127.0.0.1:

# host 127.0.0.1 1.0.0.127.in-addr.arpa puntero de nombre de dominio localhost.

Ahora necesitamos crear un archivo de zona DNS inverso /etc/namedb/reverse/in.0.168.192.rev en el que especificaremos los registros PTR para las máquinas en nuestra red local. Un ejemplo sería así:

$ TTL 3600 @ IN SOA ns.mydns.net. root.ns.mydns.net. (2007042001; Serie 3600; Actualizar 900; Reintentar 3600000; Caducar 3600); Mínimo IN NS ns.mydns.net. Enrutador 1 IN PTR. 2 EN servidor de correo PTR. 3 en servidor web PTR. 4 EN jefe de PTR. 5 en buhgalter PTR. // etc ...

Después de que nuestro DNS vuelva a leer esta configuración, en la red local, las direcciones IP comenzarán a resolverse en algo como esto:

$ host 192.168.100.1 1.0.168.192.in-addr.arpa enrutador de puntero de nombre de dominio. $ host 192.168.100.2 2.0.168.192.in-addr.arpa puntero de nombre de dominio servidor de correo. $ host 192.168.100.3 3.0.168.192.in-addr.arpa puntero de nombre de dominio servidor web. $ host 192.168.100.4 4.0.168.192.in-addr.arpa puntero de nombre de dominio jefe. $ host 192.168.100.5 5.0.168.192.in-addr.arpa puntero de nombre de dominio buhgalter.

Honestamente, al analizar registros (y no solo en FreeBSD), los nombres son mucho más convenientes que las direcciones IP.

Finalmente, nos queda crear un archivo para la zona DNS primaria que admitimos. zone1.com Para esto en el catálogo / etc / namedb / master crear un archivo, por ejemplo, con la siguiente configuración:

$ TTL 7200 @ IN SOA ns.mydns.net. hostmaster.ns.mydns.net. (2008020601; Serie 28800; Actualizar 7200; Reintentar 2419200; Caducar 86400); TTL de caché negativo; @ IN NS ns.mydns.net. @ IN NS ns1.somedns.net. @ IN NS ns2.somedns.net. @ EN A 212.212.212.212 @ EN MX 1 ASPMX.L.GOOGLE.COM. @ IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. @ IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. @ EN MX 10 ASPMX2.GOOGLEMAIL.COM. @ EN MX 10 ASPMX3.GOOGLEMAIL.COM. @ EN MX 10 ASPMX4.GOOGLEMAIL.COM. @ EN MX 10 ASPMX5.GOOGLEMAIL.COM. www EN CNAME zone1.com. ftp EN A 213.213.213.213

Este ejemplo muestra las entradas (ficticias, por supuesto) para la zona zone1.com: el correo para esta zona es aceptado por los servidores de Google (siete registros MX - siete servidores para recibir correo para este dominio); el nombre en sí zone1.com está vinculado por un registro al host con la dirección IP 212.212.212.212, y www.zone1.com es sinónimo de nombre zone1.com; al mismo tiempo, los servidores DNS son responsables de la zona ns.mydns.net, ns1.somedns.net y ns2.somedns.net... Y en la dirección 213.213.213.213 puede haber un servidor FTP ftp.zone1.com... Al menos hay un registro A correspondiente para este nombre.

Tenga en cuenta que los servidores ns1.somedns.net y ns2.somedns.net, o mejor dicho, sus direcciones IP deben especificarse en el archivo /etc/namedb/zones.master v " permitir-transferencia”Para esta zona.

Preste mucha atención a la ubicación de los puntos. En general, es suficiente cometer un error en un signo de puntuación en el archivo de configuración o en los archivos de zona y el DNS no se iniciará en absoluto o la zona no funcionará correctamente.

La configuración del servidor DNS está completa. Para que funcione, agregue a /etc/rc.conf:

Named_enable = "SÍ"

Todo lo demás que necesitamos está escrito de forma predeterminada en el archivo /etc/defaults/rc.conf

# cat /etc/defaults/rc.conf | grep named_uid named_uid = "bind" # Usuario para ejecutar nombrado como

Exactamente. Nombrado debería comenzar enlazar solo y de ninguna manera desde la raíz. De lo contrario, corre el riesgo de convertirse en víctima de la estupidez.

Bind se puede iniciar con el script de inicio nativo:

# /etc/rc.d/named start Iniciando named.

En este caso, en / var / log / messages, escribirá:

Nombrado: iniciando BIND 9.3.4-P1 -t / var / named -u bind named: canal de comando escuchando en 127.0.0.1 # 953

Para asegurarse de que todo funcione:

# sockstat | grep named bind named 33696 3 dgram -> / var / run / logpriv bind named 33696 20 udp4 192.168.0.1:53 *: * bind named 33696 21 tcp4 192.168.0.1:53 *: * bind named 33696 22 udp4 127.0.0.1: 53 *: * enlace con nombre 33696 23 tcp4 127.0.0.1:53 *: * enlace con nombre 33696 24 udp4 XXX.XXX.XXX.XXX:53 *: * enlace con nombre 33696 25 tcp4 XXX.XXX.XXX.XXX:53 *: * enlace llamado 33696 26 udp4 *: 53 *: * enlace llamado 33696 27 tcp4 127.0.0.1:953 *: * root syslogd 462 7 dgram / var / named / var / run / log

Bind se está ejecutando y está listo para aceptar solicitudes en todas las interfaces. Si no los procesa por usted, verifique si ha permitido el acceso a su DNS en el firewall. En el puerto 53 y desde él, los paquetes deben transmitirse a través de TCP y UDP sin obstáculos.

Y finalmente, un poco sobre cómo se puede controlar el enlace con rndc.

  • recarga rndc - recargará la configuración (si no hay errores en la configuración named.conf)
  • parada rndc - detendrá el servidor DNS
  • estadísticas de rndc - muestra estadísticas de lo que su DNS ha almacenado en caché
  • volcado rndc - volcar su caché en el archivo de volcado especificado en la configuración named.conf
  • rndc enjuague - restablecerá su caché a cero
  • rndc flushname zona.com- borrará información sobre la zona zona.com de su caché
  • detener rndc - matando a named sin salvar todo lo que quería salvar en ese momento
  • rndc reconfig - recargará la configuración principal del archivo, así como la configuración de nuevas zonas y muchas cosas agradables y convenientes.

Como puede ver, no hay absolutamente nada complicado en configurar un servidor DNS. Aunque, en un principio, a muchos les parece lo contrario.

¿Qué tan útil fue esta publicación?

Haga clic en una estrella para evaluar!

¡Aún no hay calificaciones! Sea el primero en calificar esta publicación.

¡Lamentamos que esta publicación no te haya sido útil!

¡Mejoremos esta publicación!

para enviar el comentario

¡Gracias por tus comentarios!

Hay una red con IP blanca (111.222.333.0) y dominio (mydomain.ru). Se requiere subir el DNS que busca en Internet.
Arranque la imagen de FreeBSD 10.0

Configure, asigne la dirección 111.222.333.2 a la interfaz de red

Configuramos la sincronización horaria una vez al día. agregar a crontab:

1 6 * * * raíz ntpdate -s 0.freebsd.pool.ntp.org

Instale bind 9.9 desde el repositorio:

Paquete instalar bind99

Editando la configuración
Al comienzo de la configuración, escribimos las reglas para permitir-recursividad permitir-transferir permitir-consulta

Acl "recursividad-ip" (127.0.0.1; 111.222.333.0/24;); acl "confiable-dns" (111.111.111.111; 222.222.222.222;); acl "query-ip" (127.0.0.1; 111.222.333.0/24;);

En la sección de opciones, escribe:

// permitir solicitudes recursivas allow-recursion (recursión-ip;); // permitir la transferencia de la zona a servidores DNS confiables // (especifica el servidor ns del registrador de dominios) allow-transfer (confiable-dns;); // nos permite enviar solicitudes a nuestro servidor allow-query (query-ip;); // ocultar la versión de nuestra versión de servidor "MyDNS";

Indicamos en qué interfaces trabajar.

Escucha (127.0.0.1; 111.222.333.2;);

Al final del archivo, escribimos las zonas de avance y retroceso:

Zona "mydomain.ru" (escriba master; file "/usr/local/etc/namedb/master/mydomain.ru-forward.db";); zona "333.222.111.in-addr.arpa" (escriba maestro; archivo "/usr/local/etc/namedb/master/mydomain.ru-333.222.111-reverse.db";);

Ahora creamos archivos de zona. Nos registramos en el archivo mydomain.ru-forward.db

$ TTL 3600 @ IN SOA ns1.mydomain.ru. root.ns1.mydomain.ru. (2014040101; Serie 3600; Actualizar 900; Reintentar 360000; Caducar 3600; Neg. Cache TTL) IN A 111.222.333.1; nuestro dominio midominio.ru IN NS ns1.mydomain.ru se resolverá en esta dirección. IN NS ns1-your_registrator.ru. ; ns servidor de su registrador IN NS ns2-your_registrator.ru. EN MX 10 mail.mydomain.ru. ; si hay correo en el dominio ns1 IN A 111.222.333.2; La dirección IP de nuestro DNS primero IN A 111.222.333.10; entonces irán los dominios en segundo lugar IN A 111.222.333.11; el tercer nivel de nuestra red

Luego escribimos en el archivo de zona inversa midominio.ru-333.222.111-reverse.db siguiente:

$ TTL 3600 @ IN SOA ns1.mydomain.ru. root.ns1.mydomain.ru. (2014032801; Serie 3600; Actualizar 900; Reintentar 360000; Caducar 3600; Neg. Cache TTL) IN NS ns1.mydomain.ru. IN NS ns1-your_registrator.ru. IN NS ns2-your_registrator.ru. 2 EN PTR ns1.mydomain.ru. 10 EN PTR first.mydomain.ru. 11 EN PTR segundo.midominio.ru.

El valor de serie debe incrementarse cada vez que se cambia una zona.
A partir de este valor, el servidor secundario detecta que es necesario actualizar la información.

Ahora revisemos los archivos de zona:

Zona de control con nombre mydomain.ru mydomain.ru-forward.db zona de control con nombre 333.222.111.in-addr.arpa mydomain.ru-333.222.111-reverse.db

La salida del comando debería verse así:

Zona midominio.ru/IN: serial cargado 2014040101 OK

Configuremos el registro.
Registramos bind ( /usr/local/etc/namedb/named.conf)

Registro (canal default_ch (archivo "/var/log/named/named.log" versiones 3 tamaño 500k; información de gravedad; tiempo de impresión sí; categoría de impresión sí;); canal security_ch (archivo "/ var / log / named / named-security.log "versiones 3 tamaño 500k; información de gravedad; tiempo de impresión sí; categoría de impresión sí;); canal transfer_ch (archivo" /var/log/named/named-transfer.log "versiones 3 tamaño 500k; gravedad info; tiempo de impresión sí; categoría de impresión sí;); canal lame_ch (archivo "/var/log/named/named-lamers.log" versiones 3 tamaño 500k; información de gravedad; tiempo de impresión sí; categoría de impresión sí; ); categoría predeterminada (default_ch;); // todo para lo que no hay un canal propio categoría seguridad (security_ch;); // eventos de seguridad categoría xfer-in (transfer_ch;); // zonas de envío categoría xfer-out (transfer_ch; ); // categoría de zonas receptoras notificar (transfer_ch;); // categoría de notificaciones y hechos de registro lame-servers (lame_ch;); // eventos de servidores DNS "torcidos");

Establezca el propietario en el directorio / var / log / named

Enlace de chown: bind / var / log / named

Verificamos la exactitud de la configuración named.conf con el comando

Nombrado-checkconf

Si el resultado de este comando es "nada", entonces todo está bien.
Ahora carguemos el archivo de la zona raíz real (named.root).

Obtener ftp://ftp.internic.net/domain/named.root

Pongámoslo en el directorio / usr / local / etc / namedb y reemplacemos el existente.
Es recomendable repetir periódicamente este procedimiento, o configurar esta operación a través de cron.
¡Ya casi está todo hecho! Configuremos la utilidad de administración - rndc
Vaya al directorio / usr / local / etc / namedb
Elimina el archivo rndc.conf
Realizamos:

Rndc-confgen -a

Cambio de propietario:

Enlace de chown: bind rndc.key

Habilitamos el inicio automático del servidor de nombres.
En el archivo /etc/rc.conf, agregue:

Named_enable = "YES" # si solo se necesita IPv4, named_flags = "- 4"

Configuremos DNSSEC.
Cree un directorio de claves para los archivos de claves.
Creemos una clave maestra: clave de firma de clave (KSK) y una clave para la zona: clave de firma de zona (ZSK).

Comando de creación de clave KSK:

Dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE mydomain.ru

Comando para crear la clave ZSK:

Dnssec-keygen -a RSASHA256 -b 2048 -n ZONE mydomain.ru

asegúrese de que el registrador de su dominio sea compatible con el algoritmo RSASHA256

establecemos los derechos de los archivos clave:

Enlace de chown: enlace Kmydomain.ru *

Habilitemos el registro. Para configurar /usr/local/etc/namedb/named.conf agregar a la sección de registro:

Canal dnssec_ch (archivo "/var/log/named/named-dnssec.log" versiones 3 tamaño 500k; información de gravedad; tiempo de impresión sí; categoría de impresión sí;); categoría dnssec (dnssec_ch;);

y agregue a la descripción de la zona:

Directorio de claves "/ usr / local / etc / namedb / keys"; firma en línea sí; mantener auto-dnssec;

ahora la zona midominio.ru se ve así:

Zona "mydomain.ru" (escriba master; file "/usr/local/etc/namedb/master/mydomain.ru-forward.db"; directorio-clave "/ usr / local / etc / namedb / keys"; inline- firmando sí; mantener auto-dnssec;);

Para admitir la validación de DNSSEC en el lado del resolutor, agregue a la sección de opciones:

Dnssec-enable sí; validación dnssec sí;

Después de rasterizar el demonio, los archivos con las siguientes extensiones aparecerán en el directorio de zonas: .jbk, .jnl y .signed

Si utiliza la validación de búsqueda de DNSSEC (opción dnssec-lookaside auto;), puede ver varios mensajes en el registro como: obtuvo una respuesta insegura; padre indica que debe ser seguro. Para evitar esto, establezca el valor de dnssec-validation en auto; y utilizar como reenviadores de servidores DNS con soporte DNSSEC, por ejemplo de Google - 8.8.8.8

Para que el proceso de verificación funcione, su registrador de dominio debe certificar la clave KSK generada y confirmar su confianza.
para ello es necesario registrar registros DS en el panel de control de dominio.
Los registros DS se crean basándose en la clave KSK con el comando:

Dnssec-dsfromkey ksk_file_name

los registros emitidos por este comando se registran en el panel de control del registrador de dominios.

Mydomain.ru. IN DS 54808 5 1 0FC489EFD28C2 ... 28EA985CAFBBC1 mydomain.ru. IN DS 54808 5 2 03B685D8003834B492F6 ... B134ABF9D41A28193171352F0280

Algunos registradores también necesitan registrar DSKEY desde el archivo de clave KSK.

Mydomain.ru. IN DNSKEY 257 3 5 YthgRbNKP5P8e5cDJhYsCwFr7AK17m + SeV5pgW ... bLVa2A0 / dWXkPwi1TZ3lNfkjhhYFGR

Y finalmente, configuremos un firewall.
Creemos un archivo /etc/ipfw.my_rules con el siguiente contenido:

#! / bin / sh cmd = "/ sbin / ipfw -q add" # comando para agregar reglas oint = "vmx0" # interfaz en la que se nombró ipo = "111.222.333.2" # dirección IP de esta interfaz # Restablecer todas las reglas: / sbin / ipfw -f flush # Verifique que el paquete cumpla con las reglas dinámicas: $ (cmd) check-state # Permitir todo el tráfico en la interfaz interna lo0 $ (cmd) permitir ip de cualquiera a cualquiera a través de lo0 # cortar intentos de escalar desde lo0 y hacia él $ (cmd) deny ip from any to 127.0.0.0/8 $ (cmd) deny ip from 127.0.0.0/8 to any # block private networks and autoconfiguration since la interfaz mira a Internet. $ (cmd) deny ip from any to 10.0.0.0/8 in via $ (oint) $ (cmd) deny ip from any to 172.16.0.0/12 in via $ (oint) $ (cmd) deny ip from any to 192.168 .0.0 / 16 in a través de $ (oint) $ (cmd) deny ip from any to 0.0.0.0/8 in via $ (oint) $ (cmd) deny ip from any to 169.254.0.0/16 in via $ (oint) # bloquear paquetes de multidifusión $ (cmd) deny ip from any to 240.0.0.0/4 in via $ (oint) # block broadcast and fragmented icmp $ (cmd) deny icmp from any to any frag $ (cmd) deny log icmp from any a 255.255.255.255 en a través de $ (oint) $ (cmd) deny log icmp from any to 255.255.255.255 out via $ (oint) # traffic to private networks $ (cmd) deny ip from 10.0.0.0/8 to any out via $ (oint) $ (cmd) deny ip desde 172.16.0.0/12 a cualquier salida a través de $ (oint) $ (cmd) deny ip desde 192.168.0.0/16 a cualquier salida a través de $ (oint) $ (cmd) deny ip desde 0.0.0.0/8 a cualquier salida vía $ (oint) # red privada autoconfigurada $ (cmd) deny ip desde 169.254.0.0/16 a cualquier salida vía $ (oint) # multidifusión $ (cmd) deny ip desde 224.0.0.0 / 4 a cualquier salida a través de $ (oi nt) $ (cmd) deny ip from 240.0.0.0/4 to any out via $ (oint) # permitir conexiones establecidas $ (cmd) permitir tcp de cualquiera a cualquier establecido # permitir tráfico saliente desde el servidor $ (cmd) permitir ip desde $ (ipo) a cualquier salida xmit $ (oint) # permitir sincronización de tiempo a través de ntpdate $ (cmd) permitir udp desde cualquier 123 a cualquier vía $ (oint) # permitir DNS $ (cmd) permitir udp desde cualquier 53 a cualquier vía # permitir ICMP: solicitud de eco, respuesta de eco, tiempo de vida del paquete caducado $ (cmd) permitir icmp de cualquiera a cualquier tipo de icmp 0,8,11 # permitir el puerto 22 para una dirección específica y registrar intentos de conexión desde diferentes direcciones $ (cmd) permitir tcp de 111.222.333.3 a $ (ipo) 22 a través de $ (oint) $ (cmd) deny log tcp from any to me 22 in via $ (oint)

Para iniciar automáticamente el firewall, agregue las siguientes líneas al archivo /etc/rc.conf:

Firewall_enable = "YES" firewall_script = "/ etc / ipfw.my_rules" firewall_logging = "YES"

Los registros se escribirán en el archivo / var / log / security



¿Te gustó el artículo? Compártelo