¿Cómo configurar DNS en Solaris 9?
Configuración del cliente SolarisDNS:
archivo/etc/resolv.conf
Registra la dirección y el nombre de dominio del servidor DNS
Palabras clave :
Nombre de dominio
servidor de nombres
# more /etc/resolv.conf
servidor de nombres 172.16.255.3
nombre de dominio amanecer.com.cn
Archivo
/etc/nsswitch.conf
Información de registro, como el orden en el que se buscan los nombres de host p>
# más /etc/nsswitch.conf
#
# /etc/nsswitch.dns:
#
# Uno se puede copiar al archivo de muestra para /etc/nsswitch.conf; usa
# DNS para búsquedas de host y ningún otro servicio de nombres.
#
# Esto solo se usará si
# el nombretoaddr_libs transferido por "inet" en el archivo /etc/netconfig tiene "-" "hosts : " y "servicios:" en el archivo.
contraseña: archivo
grupo: archivo
# También debe configurar el archivo /etc/resolv.conf para los nombres DNS
# Consulta del servidor. Consulte resolv.conf(4).
hosts: archivos dns
ipnodes: archivos
...
...
configura esto El registro de hosts en el archivo está configurado como hosts: archivos dns
comando .nslookup
Se usa para consultar el servidor DNS
Se usa para verificar la configuración del cliente p>
Se utiliza para descargar la base de datos DNS
# nslookup
Servidor predeterminado: dirección ns.zhjhzptt.net.cn
. 202.96.96.68
> www.sun.com
Servidor: ns.zjhzptt.net.cn.
Dirección: 202.96.96.68
Respuesta no autorizada:
Nombre: www.sun.com
Dirección: 192.18.97.241
>
Al iniciar , nslookup apunta al servidor local de forma predeterminada. La respuesta incluye el nombre y la dirección del servidor de destino. > es el mensaje, lo que significa que puede comenzar a enviar consultas o configuraciones del servicio de nombres.
Configuración de DNS chroot seguro en Solaris:
Aunque mi entorno es RedHat, este artículo se aplica a Solaris 8/9/10. Instalación de Bind 9
Aunque el paquete rpm se proporciona en el Red Hat AS3 que estoy usando, para comodidad de otros usuarios, lo instalaremos desde el código fuente.
Primero, instale Bind 9 desde la página de inicio de ISC (ame { null; };
categoría lame-servers { LAMER_log; };
categoría seguridad { SEC_log; };
estadísticas de categoría { STAT_ log };
};
// Análisis de raíz
zona "." escriba sugerencia;
archivo "named.root";
};
// resolución de localhost
zona "localhost" {< / p>
escriba mASter;
archivo "named. localhost";
notificar no;
};
/ /análisis inverso localhost
zona "0.0.127.in-addr.arpa" {
tipo mASter;
archivo "named.127..0.0" ;
notificar no;
};
Después de eso, crea un enlace simbólico en el directorio /etc
ln -s / chroot/named/etc/named.conf /etc/named.conf
Bueno, el siguiente paso es configurar los archivos nombrados.root, nombrados.local y nombrados.127.0.0. Tenga en cuenta que. estos tres archivos. La ubicación real de los archivos está en /chroot/named/conf.
Primero cree Named.root
dig @a.root-servers.net ns > /chroot/named/conf/named.root #Este es el uso en redhat, porque. el solaris predeterminado usado por Sky Edge (estoy usando 2.6) no tiene el comando dig, por lo que en solaris usamos
cd /chroot/named/conf
ftp ftp:/ /ftp.rs.internic.local
$TTL 86400
@ EN SOA @ root (
42; versión
3H; Tiempo de actualización 3 horas
15M; Tiempo de reintento 15 minutos
1W; Duración máxima una semana
1D); >
EN A 127.0.0.1
seguido de nombrado.127.0.0.0
; nombrado.127.0.0
$TTL 86400
@ EN SOA localhost. (El root.localhost aquí es en realidad root@localhost. En la configuración de DNS, reemplace @ con.
1; Versión
28800; Actualizar , las unidades aquí y a continuación están deliberadamente en minutos, que son diferentes de lo escrito anteriormente, solo para más ejemplos
14400 Retry
3600000 Duración máxima
p>86400 ) ; TTL mínimo
IN NS localhost.
1 IN PTR localhost.
4. Establecer permisos
En De hecho, este paso es la esencia de cualquier servicio chroot. Cómo dividir los permisos con tanta precisión que los servicios no puedan ejecutarse, o tan grandes que amenacen la seguridad de otros programas, es una cuestión que requiere una cuidadosa consideración.
a. Dado que nuestro objetivo es permitir que el programa vinculante se ejecute como el usuario designado, se le debe permitir leer la configuración, no escribir el archivo de configuración, y preferiblemente otros programas no pueden cambiar nuestros archivos de configuración. Solo puede ser modificado por root y leído por usuarios designados. Para cumplir con este requisito, naturalmente pensaríamos en cambiar el propietario del archivo a raíz, configurar el usuario del grupo como nombrado y luego dividir los permisos lenta y cuidadosamente.
cd /chroot/named
chown -R root.named .
A continuación, considere los permisos de los archivos y subdirectorios individuales. root requiere permisos de lectura/escritura en archivos, nombrado requiere permisos de lectura en archivos y los subdirectorios requieren permisos de ejecución para ingresar. Por lo tanto, es necesario establecer los siguientes permisos.
#Otorgar permisos de lectura/escritura a root en archivos y permisos de lectura con nombre en grupos
find .-type f -print |
p>
#Otorga permisos de lectura/escritura y ejecución a roo en el directorio, y permisos de lectura/ejecución en el grupo nombrado (la ejecución se utiliza para ingresar al siguiente directorio)
buscar.- escriba d - print |*.conf
# El subdirectorio "secundarios" es el subdirectorio del servidor secundario donde el servidor DNS sirve como servidor primario.
Este servidor DNS necesita utilizar el subdirectorio "secundarios" como servidor secundario, actualizando información del servidor primario y creando nuevos archivos en él. Por lo tanto, sus permisos deben establecerse específicamente. En este directorio, los grupos y usuarios con nombre deben tener permisos de lectura. No necesitan ser usuarios raíz y no desean que otros usuarios accedan a ellos.
chown root.named conf/secundarios/ #Establece el usuario en el directorio secundario como root y el grupo como nombrado
chmod ug=rwx,o= conf/secundarios/ #Grant root y nombrado tienen acceso completo a los siguientes archivos
toque conf/secundarios/.empty # Eliminar archivos antiguos
busque conf/secundarios/ -tipo f -print xargs chown nombrado. p>
busque conf/secundarias/ -type f -print | Permisos en el directorio var/ (donde se genera el demonio de proceso llamado.pid).
chown root.root var/ #Aquí es donde puedes eliminar el nombre,
chmod u=rwx,og=x var/ #root puede leer y escribir estas configuraciones, Otros usuarios puede realizar estas configuraciones. De hecho, la razón por la que creamos un DNS chroot y nos tomamos la molestia de crear un directorio separado es para evitar que name acceda al archivo /var real.
chown root.named var/run/ #Debido a que en el estado de ejecución, necesita nombrado para escribir el archivo nombrado.pid, por lo que necesita cambiar el grupo a nombrado para limitar los permisos
chmod ug=rwx,o=rx var/run/ #El usuario/grupo tiene permisos de lectura/escritura/ejecución y otros usuarios pueden leer/ejecutar normalmente. Los usuarios pueden leer/ejecutar en él. Esta configuración es principalmente para facilitarnos la escritura de un shell para determinar el estado actual de DNS.
chown root.named logs/ #Directorio de registro, no es necesario explicar el motivo para configurarlo
chmod ug=rwx,o=rx logs/ #Es mejor para permitir que otros vean los registros y facilitar la instalación de programas de terceros en el futuro
5. Inicie y ejecute bind 9
¡Emocionante! Es hora de comenzar nuestra primera ejecución de Bind 9.
Ejecute el siguiente comando
/usr/local/sbin/named -t /chroot/named -u llamado -c /etc/named.conf
Luego ps -fCnamed para ver si hay resultados similares
UID PID PPID C STIME TTY TIME CMD
named 14023 1 0 May27 00:00:00 /usr/local/sbin? / nombrado -t /chroot/named -u llamado -c /etc/named.conf
Este resultado demuestra que fue exitoso, ¡¡¡felicidades!!!!
Cada vez que escribes así, te sentirás muy cansado, así que escribamos un shell (en realidad, el shell es realmente bueno, pero no es interesante explicarlo sistemáticamente, así que trato de escribirlo en cada artículo) Úsalo y poco a poco descubrirás sus beneficios)
vi /chroot/named.start
#Multi-cpu -t /chroot/named -u nombrado -c /etc /named.conf
Este es el resultado.
#Multi-cpu Recuerde agregar el parámetro "-n" para habilitar la CPU múltiple, también leí sobre esto en otro lugar
#
# comando con nombre formato: con nombre [-c archivo configurado] [-d nivel de depuración] [-f|-g] [-n número de CPU]
# [-p puerto - el valor predeterminado es 53] [-s] [ - t directorio chroot] [-n número de cpu]
# [-p puerto - el valor predeterminado es 53] [-s] [-t directorio chroot] [-n número de cpu]
#El valor predeterminado es 53] [-s] [-t directorio chroot] [-u La identidad del usuario que ejecuta este comando]
cd /chroot/named
#Ensure que los archivos de depuración se pueden escribir como nombrado
tocar nombrado.run #Crear archivo
chown llamado.named.run #Establecer el propietario del archivo en nombrado.nombre
chmod ug=rw,o=r nombrado.run #Establecer permisos en 664
# Utilice /etc/named.conf como archivo de configuración y ejecute el programa nombrado como se indica en el directorio chroot/named p>
#El /etc/named. /etc/named.conf aquí es el archivo que usamos ln -s para vincular, consulte la sección anterior
/ usr/ local/sbin/named -t /chroot/named -u llamado -c /etc/named.conf
Luego use sh /chroot/named.start para ejecutar el comando, y luego podrá usar /etc/resolv Probado usando su propia dirección DNS en .conf. Por supuesto, también puede usar el comando dig para verificar (personalmente creo que el comando dig es mejor que nslookup, pero no está disponible de manera predeterminada en Solaris 2.6).
6. Instalación y uso de la herramienta de control rndc
rndc=dnc remoto. Los amigos que han instalado bind 8 antes saben que hay una herramienta ndc, y en bind 9, esta. es aún más Se agregaron más funciones de control remoto. No es apropiado decir "agregar", porque rdnc no se modifica con ndc, sino que se reescribe un software de control de DNS a través del protocolo tcp. (¿Cuál es el punto de esto? Pregúntele a sus amigos administradores de sistemas/hosting web. DNS generalmente se usa para hosts independientes. Sería mucho más conveniente si el archivo de configuración pudiera recargarse de forma remota).
rndc debería leer /usr/local/etc/rndc.conf como archivo de configuración, pero como estamos instalando el DNS de chroot, es necesario cambiar rndc.conf a /chroot/named/etc/rndc .conf. Aquí se explica cómo escribir el archivo rndc.conf.
opciones {
servidor predeterminado localhost; //configurar local primero
clave predeterminada "rndckey" //nombre de la clave
};
servidor localhost {
clave "rndckey"; //nombre de la clave
}; /named/etc/rndc.key";//Contiene el valor de rndckey en este archivo porque este valor se usa tanto en rndc.conf como en named.conf. La razón de esto es que se usa tanto en rndc.conf como en nombrado.conf, e incluirlo facilita la escritura de shells automáticos
Por la misma razón, en /chroot/named/etc/named. las declaraciones requeridas en conf
controles {
inet 127.0.0.0.1 permiten { localhost } claves { rndckey } //permitir conexiones de host local
};
include "/etc/rndc.key";
El siguiente paso es generar el archivo /chroot/named/etc/rndc.key, que es una lista larga de utiliza clave de cifrado codificada en base-64. Esta es una larga cadena de claves cifradas usando codificación bASe-64. Usamos el comando DNSsec-keygen para generarla:
cd /chroot/named/etc
/usr/local. /sbin/DNSsec-keygen -a HMAC-MD5 -b 256 -n HOST rndc
Genera un archivo similar a Krndc. El valor de retorno es similar a Krndc.+157+30481, lo que indica que los archivos Krndc.+157+30481.key y Krndc.+157+30481.private se han creado correctamente en el directorio actual.
cat Krndc.+157+30481.pantalla privada
Formato de clave privada: v1.2
Algoritmo: 157 (HMAC_MD5)
Clave: aoqaT1r9Oz29DIj3VPn6+ teHcvBudGAc17qLM4nPOqA=
Aquí, la cadena después de Clave es la clave que queremos, cópiala y elimina el archivo temporal
rm Krndc.+157+30481.* p>
vi /chroot/named/etc/rndc.key
clave "rndckey" {
algoritmo "hmac-md5";
secreto " aoqaT1r9Oz29DIj3VPn6+teHcvBudGAc17qLM4nPOqA=";
};
Una vez completada la configuración, realice 2 conexiones suaves
ln -s /chroot/named/etc / rndc.conf /usr/local/etc/rndc.conf
ln -s /chroot/named/etc/rndc.conf /etc/rndc.conf
OK, continúa Ven hacia abajo y vuele sobre el nombre actualmente en ejecución, obligándolo a volver a leer el archivo de configuración
ps -fCnamed
UID PID PPID C STIME TTY TIME CMD
llamado 14023 1 0 27 de mayo? 00:00:00 /usr/local/sbin/named -t /chroot/named -u llamado -c /etc/named.
kill -1 14023 #14023 se nombra Número de proceso, en cuanto al rol de -1, elimínelo usted mismo
Ahora veamos si rndc está funcionando normalmente
/usr/local/sbin/rndc status Felicitaciones, si La situación real es similar a la siguiente
Número de regiones: 2
Nivel de depuración: 0
Archivos en ejecución: 0
rndc detener
echo "done"
;;
recargar)
# Recargar configuración
echo -n " Recargar nombre: "
rndc recargar
echo "hecho"<
;;
estado)
# Mostrar el estado actual
rndc status
;;
*)
echo "/etc/init.d/named {inicio |detener|estado|recargar}"