Acceder CPanel Acceder WHM Acceder webmail

Archivos en la categoría Linux

Niveles de ejecución de inicio Linux

Como hemos estado estudiando asta ahora sobre Linux, configuración de DNS y DHCP, veremos que cada vez que reniciamos nuestro sistema tenemos que arrancar otra vez los servicios con init.d, para evitar este trabajo voy a explicar los niveles de ejecución en linux:

Nivel 0 (Halt)
Nivel 1 (monousuario)
Nivel 2 (multiusuario sin red)
Nivel 3 (multiusuario con red)
Nivel 4 (pruebas)
Nivel 5 (multiusuario con red y modo grafico)
Nivel 6 (reboot)

En función del nivel de ejecución existe la posibilidad de configurar los servicios que deben iniciarse de forma automática, para ello es necesario crear unos enlaces simbólicos en las carpetas /etc/rcX.d (donde x es un numero del 0 al 6 que indica el nivel de ejecución de Linux) que apunten al script de inicio del servicio que se encuentra en /etc/init.d. Dicho enlaces deberán tener un nombre un poco especial ya que deberán comenzar por la letra S de Start, seguida de un numero de dos cifras (para establecer el orden de arranque de los servicios) y del nombre del servicio, por ejemplo en nuestro caso el de S20dchp y de S18bind, los números se refieren a la prioridad por ello a d.C. le asignamos un numero superior a bind (DNS), porque hay que ejecutar el servicio DHCP antes que el servicio DNS. Si lo que nos interesa es que el servicio no arranque la primera letra deberá ser una K de Kill.

Estos enlaces se pueden crear con la orden:

# update-rc.d

Y así si queremos que le servicio samba se arranque cuando el servidor inicia en los niveles 3,4 y 5 y no arranque cuando inicia en los niveles 1,2 y 6, ejecutaremos la siguiente orden (importante no olvidar le punto final):

# update-rc.d samba start 20 3 4 5 .

Y para que no arranque en lo otros niveles:

# update-rc.d samba start 20 3 4 5 . stop 18 1 2 6 .

De esta forma se crearan enlaces simbólicos de arranque con el nombre S20 samba en este caso, en las carpetas:

/etc/rd3.d
/etc/rd4.d
/etc/rd5.d

El numero 20 indica la prioridad como mencionamos antes. Sirve para arrancar o parar antes unos servicios que otros, ya que los scripts se procesan por orden alfabético. Se puede utilizar cualquier número entre 1 y 99.

Si por alguna razón el comando # update-rc.d no crea los enlaces porque ya están creados se pueden eliminar con la opción –f y luego volver a crearlos:

# update-rc.d –f samba remove

Bueno asta ahora estabamos trabajando sobre Linux, proximamente vamos a trabajar todas estas variantes sobre Windows 2003 server. Y a continuación volveremos sobre Linux con apache y sus variantes.


Publicado en: Linux
Tags: ,
Reacciones con otros blogs:  ¡Click!
Marcadores sociales: Compártelo

Configuracion del servicio DHCP en Linux

En este caso el escenario donde vamos a configurar nuestro servidor DHCP es Debian. La asignación de direcciones IP puede ser manual o estática, automatica o dinamica. Recordemos que en el caso de la asignación estática (con reserva):

-El servidor averigua la direccion MAC de la tarjeta de red.
-El servidor asigna siempre la misma direccion IP a la misma tarjeta de red.
rve
En el caso de la asignación automatica, el servidor asigna una direccion IP de forma permanente a una maquina la primera vez que lo solicita:

-Se especifica un rango de direcciones IP a asignar.
-En cada conexión la direccion IP de la maquina cliente puede cambiar dentro del rango especifico.

Antes de instalar el servidor hay que asegurarse de que el nucleo tiene instalado la opcion MULTICAST.

Esta opcion esta disponible siguiendo las siguientes opciones de menú de la aplicación de configuración del núcleo xconfig:

Device direvers / Networking support / Networking options / TCP/IP networking / IP: multicasting (IP_MULTICAST).

Multicast indica que el trafico se lleva a cabo desde uno a un grupo de equipos.

Es necesario activar la opcion Multicast para llevar a cabo la asignación de direcciones de multidifusion. Para ello se ejecuta:

# ifconfig –a

Y se comprueba que aparece, para la interfaz de red sobre la que se configura el servicio, una linea de la forma:

UP BROACAST RUNNING MULTICAST MTU:1500 Metric:1

Si no aparece multicast hay que recompilar el nucleo añadiendo la opcion IP: multicast routing.

La ultima version del servidor DHCP es dhcp3, instalamos el paquete:

# apt-get install dhcp3-server

La instalacion del paquete crea el archivo de configuración /etc/dhcp3/dchp.conf, que contiene la configuración del dominio asociado al servicio DCHP y crea el ejecutable /usr/sbin/dhcpd.

El paso siguiente sera lanzar el servicio DHCP con la orden:

# /etc/init.d/dhcp3-server start

Al arrancar el servidor, se crea el archivo de las concesiones o contratos (leases) cuyo contenido (entre otros campos) es la direccion MAC del cliente y las fechas iniciales y final de la concesión. Este archivo /var/lib/dhcp3/d.C..leases no debe modificarse nunca de forma manual. Su contenido se actualiza de forma automática cuando se asigan, modifica o termina la concesión.

La orden siguiente permite visualizar el contenido de dicho archivo:

# more /var/lib/dhcp3/dhcpd.leases

Este archive va creciendo y se genera un archive dhcpd.leases copia del anterior y el original queda libre para almacenar nuevas concesiones.

Una vez lanzado el servidor DHCP, si se quiere comprobar el funcionamiento correctamente hay que ejecutar:

# /user/sbin/dhcpd3 –d –f

La salida generada por esta orden muestra información acerca de las concesiones, declaraciones subset existentes y pruebas de funcionamiento.

A demás, si queremos que el servicio DHCP arranca la iniciar sistema hay que incluir un enlace simbolico /etc/init.d/dhcp3-server en el directorio /etc/rcX.d/ correspondiente al nivel de ejecución (X) en el que arranca el sistema por defecto.

Archivo de configuración /etc/dhcp3/dhcpd.conf

-Parámetros: describen el comportamiento del servidor DHCP. Pueden ser parámetros globales o locales a un conjunto de declaraciones.
-Declaraciones: se utilizan para describir redes, maquinas junto con otro rango de direcciones IP que se conceden para cada uno de ellos.

La estructura general del archivo /etc/dhcp3/dhcp.config es la siguiente:

Páramentro globales;
Declaracion_1 {
[parámetros relativos a Declaracion_1]
[sub_declaracion anidada]
}
Declaracion_2 {
[paramentros relativos a declaracion_2]
[sub_declaracion aninada]
}

Hay parámetros que comienzan con la palabra reservada option y otros que no. Los que comienza con el parámetro option describen datos que proporciona el servidor al cliente y que forman parte del protocolo. Los que comienzan con option describen las características del servidor DHCP.

Estos parámetros tienen esta estructura:

[option] <nombre_paramentro> [valores];

El parámetro valores depende del parámetro que se quiere configurar. Puede ser un valor lógico (on/off), una dirección, un nombre predefinido u otro valor según el tipo de parámetro.

En este archivo también se definen las subredes en las que actúa el servidor DHCP y que rangos de direcciones les puede asignar.

Ejemplo:

One-lease-per-client on;
Ser-identifier 192.168.1.1;
Default-lease-time 86400;
Max-lease-time 86400;
Option subnet-mask 255.255.255.0;
Option broadcast-address 192.168.1.255;
Option routers 192.168.1.1;
Option domain-name-servers 192.168.1.1;
Option domain-name “performsec.com”;
Ddns-update-style none;
Subnet 192.168.1.0 netmask 255.255.255.0
{ range 192.168.1.5 192.168.1.50;
}

En este ejemplo se utilizan los parametros DHCP mas habituales, puedes buscar en google un monton de información sobre los parámetros y que son.

Dentro de las declaraciones del archivo de configuración ejemplo aparece la declaración subset que se utiliza para aplicar un conjunto de parámetros y/o declaraciones a un conjunto de direcciones que coincidan con los datos de la declaración. La estructura general de subnet es:

Subnet IP_subred netmask máscara {
[parametros]
[sub_declaraciones]
}

Ahora les maestro un ejemplo practico de subnet en la que utilizamos la declaración range para asignación dinámica. Con range se establece un rango de direcciones IP válidas a asignar a los cliente.

Subnet 192.168.1.0 netmask 255.255.255.0 {
Range 192.168.1.5 192.168.1.50;
}

Los rangos de valores deben ser consecutivos y dentro de la misma subred. Se puede utilizar una descripción de subred mas simple si solo se tiene un rango de valores y ningún parámetro añadido:

Subnet 192.168.1.0 netmask 255.255.255.0
Range 192.168.1.5 192.168.1.50;

Ejemplo:

Subnet 192.168.1.0 netmask 255.255.255.0
{ range 192.168.1.5 192.168.1.50;
}
Host pc2 {
Option host-name “pc2.performsec.com”;
Hardware Ethernet
00:50:b3:c8:20:31;
Fixed-address 192.168.1.2;
}
Group {
Option routers 192.168.1.1;
Option subnet-mask 255.255.255.0;
Option domain-name “performsec.com”;
Host pc3 {
Option host-name
“pc3.performsec.com”;
Hadware Ethernet
00:E0:45:8E:9A:AA;
Fixed-address 192.168.1.3;
} }

En este ejemplo se incluyen posibles lineaas del archive de configuracion de DHCP, pero que no constituyen una configuracion real en si misma.

# > Configuración del cliente DHCP

Para finalizar, configuramos el cliente para que, en la secuencia de arranque de la máquina, negocie con el servidor DHCP y éste le proporcione una dirección IP válida. El cliente DHCP utiliza el demonio dhcpcd para obtener la información que circula por la red enviada por el servidor DHCP remoto.

Hay que instalar el paquete correspondiente de Debian GNU/Linux:

# apt-get install dhcp3-client

Para configurar el cliente de forma manual hay que seguir una de las siguientes opciones:

1. en modo gráfico: comprobar que la interfaz de red está habilitada. Desde el entorno gráfico vamos:

Aplicaciones / Herramientas del Sistema / Red / Pestaña conexiones / Seleccionar dispositivo. Propiedades

Y activar la opción configuración de la conexión: Automático (DHCP).

2. En modo línea de orden: editar el archivo /etc/network/interfaces y modificar las líneas correspondientes:

Iface eth0 inet d.C.

A continuación, comentar con el carácter (#) las líneas que contienen las variables IPADDR, NETMASK, NETWORK y BROADCAST que sólo son necesarias cuando la asignación de IP es estática.

Para verificar la dirección asignada al cliente ejecuta la orden:

# arp –an


Publicado en: Linux, Servidores
Tags: , ,
Reacciones con otros blogs:  ¡Click!
Marcadores sociales: Compártelo

Servicio DNS en Linux

# > Servicio DNS

Servidor de nombres autoritario.

Un servidor de nombres de dominio DNS autoritario para una zona como aquel que contiene los registros de recursos para dicha zona. Para ello se utilizan los registros de recursos SOA y NS.
Cada zona puede tener uno o mas servidores de nombre de dominio autoritarios, y uno de ellos debe ser secundario o caché.

-Primario: los registros de recursos para la zona se encuentran en los archivos de la zona que estan almacenados en el sistema del propio servidor DNS.

-Secundario: los registros de recursos de la zona se cargan desde otro servidor de nombres (primario) utilizando el proceso de transferencia de zona.

Base de datos del protocolo DNS

Cada servidor de nombres de dominio mantiene una base de datos que sirva para asociar los nombres de dominios con direcciones IP llamada archivos de la zona, y una base de datos de resolucion inversa llamada archivos de resolucion inversa de la zona. El formato de estas bases de datos es de archivos de texto.

Para resolver nombres los servidores DNS consultan las zonas, las cuales contienen los registros de recursos (RR) que describen la información relativa al dominio DNS. Por ejemplo, hay registros de recursos que asignan nombres descriptivos a direcciones IP.

El formato de cada registro de recursos es:

Propietario TTL Clase Tipo RDATA

Los principales tipos de registros de recursos son:

SOA (inicio de autoridad), identifica al servidor autoritario de una zona y sus parámetros de configuración, registro SOA:

performsec.com. IN SOA servidor.performsec.com.
( 2005051701 ; numero de serie
10800 ; actualizacion1. ; reintentos604800 ; caducidad
86400 ; valor TTL
)

NS (servidor de nombres), identifica servidores de nombres autorizados para una zona, un ejemplo de este servicio:

performsec.com. IN NS servidor.performsec.com.

A (direccion), asocial un nombre de dominio FQDN con una dirección IP, por ejemplo, el registro A siguiente asigna una dirección IP a la maquina pc2:

Pc2.performsec.com. IN A 192.168.1.2

PTR (puntero), asigna una direccion IP a un nombre de dominio completamente cualificado. Para las busquedas inversas:

2.1.168.192.in-addr.arpa IN PTR pc2.performsec.com.

In-addr significa (inverse address) direccion inverse y arpa porque en un principio Internet se llamo ARPANET.

MX (registro de correo), indica maquinas encargadas de ka entrega de correo en el dominio:

performsec.com. IN MX 0 mail.performsec.com.

CNAME (nombre canónico), permite asignar uno o mas nombres a una maquina.

TXT (text), almacena cualquier información.

SRV (servicio), ubicación de los servidores para un servicio, ejemplo de registro SRV para un servidor web del dominio performsec.com.:

http.tcp.performsec.com. IN SRV 0 0 80 www.performsec.com.

Configuración de un servidor DNS en Debian GNU/Linux.

La configuración de un servidor DNS en Debian requiere la instalacion de los paquetes siguiente (como root):

# apt-get install bind9 bind9-doc dnsutils

El servicio DNS esta compuesto por dos programas:

-El denominado named: es el servidor de nombres de dominio.
-El resolver (cliente): es el que genera las peticiones.

Antes de editar y manipular cualquier archivo de configuración de cualquier herramienta o servicio hay que hacer una copia de seguridad del mismo.Se pueden copiar con el mismo nombre y añadir la final del texto origen. Por ejemplo:

# cp /etc/bin/named.conf.local /etc/bind/named.conf.local.origen

El archivo de configuración del dominio named se encuentra en /etc/bind/ y se llama named.conf. En este mismo directorio se encuentra el resto de archivos de configuración relaciones con bind.

El archivo named.conf no se suele modificar. Las zonas especificas del servidor DNS que se configura se definen en /etc/bind/named.conf.local y se incluyen al final de este archivo con un “incluye”.

El directorio de trabajo de named es /var/cache/bind/.

Para lanzar el servicio debe ejecutarse la orden siguiente:

# /etc/init.d/bind9 start

Y el proceso dominio que se lanza es el named.

Los archivos de configuración implicados son named.config, /etc/bind/named.conf.local, db.performsec.com y db.192.168.1.

Named.conf almacena la configuración de las diferentes zonas generadas por defecto en el momento de la instalación, entre ellas la correspondiente a la interfaz local o loopback para el dominio arpa llamada 0.0.127.in-addr.arpa.

Por otro lado tenemos, /etc/bind/named.conf.local contiene información especifica de las zonas de resolución directa e inversa para el servidor DNS, eliminado la información no especifica. Este archivo contiene lo siguiente:

/* Resolucion normal */
Zone “performsec.com” {
Type master;
Allow-query { 127.0.0.1; 192.168.1.1/24; };
Allow-transfer {127.0.0.1; 192.168.1.1/24; };
File “/etc/bind/bd.performsec.com”;
};
/* Resolucion inversa */
Zone “1.168.192.in-addr.arpa” {
Type-master;
Allow-query { 127.0.0.1.; 192.168.1.1/24; };
Allow-transfer {127.0.0.1; 192.168.1.1/24; };
File “/etc/bind/db.192.168.1”;
};

En el codigo anterior se incluyen opciones de seguridad, cuyo significado se explica a continuación:

-allow-tranfer: restringe las transferencias de zona.
-allow-query: deja activas, unica y exclusivamente, la consultas internas y a la maquina local.

Es muy importante que siempre que se coloque un nombre de dominio completo, este finalice con un punto ya que, de no ponerse, su interpretación real será la concatenación con el origen.

El archivo de configuración db.performsec.com almacena información de la zona performsec.com. a definir.

En el caso del servidor DNS para el dominio definido en el aula, su contenido (/etc/bind/db.performsec.com) es el siguiente:

$TTL 10800
DOM.com. IN SOA servidor.performsec.com.
(1 ;
10800 ; 3 horas
900 ; 15 minutos
604800 ; 1 semana
86400 ; 1 dia
DOM.com. IN A 192.168.1.1
DOM.com. IN NS servidor.performsec.com.
; servidores
Servidor IN A 192.168.1.1
; servidor de impression
Cups IN CNAME servidor
; servidor web
www IN CNAME servidor
; estaciones
Pc2 IN A 192.168.1.2
Pc3 IN A 192.168.1.3
Grupo2INCNAME pc2
; grupo2 es un alias de pc2
; incluir el resto de equipos de la red

El archivo de configuración db.192.168.1 contiene los punteros de nombre de dominio PTR que indican al servidor que el equipo con direccion 2, por ejemplo, es el que se llama pc2.performsec.com. Para el servidor DNS configurado su dominio (/etc/bind/db.192.168.1) es el siguiente:

$TTL 10800
performsec.com. IN SOA performsec.com.
( 1 ;
10800 ;
900 ;
604800 ;
86400 ; )
DOM.com IN NS servidor.performsec.com.
; puerta de enlace
1 IN PTR gateway.performsec.com.
; servidores internos
1 IN PTR servidores.performsec.com.
; estaciones
2 IN PTR pc2.performsec.com.
3 IN PTR pc3.performsec.com.
; incluir el resto de maquinas

Llegando a este punto es importante hacer dos observaciones:

1. Los alias definidos en el DNS nunca deben aparecer en la parte derecha de un registro, en la zona correspondiente a los datos.
2. Cuando el servidor de DNS trata de resolver un nombre y encuentra que este en un alias, ya que tiene un registro CNAME asociado, sustituye el alias por su nombre canónico y devuelve las direcciones IP indicadas para éste.

Una vez configurado el servidor DNS, y para comprobar que esta atendiendo a las peticiones que le llegan, conviene ejecutar las dos ordenes siguientes: la primera relanza el servicio (si se han hecho modificaciones) y la segunda comprueba que atiende peticiones de resolución de nombres.

Servidor:/etc/bind# /etc/init.d/bind9 restart
Servidor:/etc/bind# dig any servidor.performsec.com
; <<>> DIG 9.2.4 <<>> any
Servidores.performsec.com
; ; global options: pintcmd
; ; got answer:
; ; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13046
; ; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
; ; QUESTION SECTION:
;servidor.performsec.com. IN ANY; ; ANSWER SECTION:
Servidor.performsec.com. 10800 IN A 192.168.1.1; ; AUTHORITY SECTION:
performsec.com. 10800 IN NS servidor.performsec.com.

; ; Query time: 1 msec
; ; SERVER: 192.168.1.1#53 (192.168.1.1)
; ; WHEN: Thu January 1 00:00:01 2008
; ; MSG SIZE rcvd: 68

Hay que observar que en la ejecución el estado del servidor DNS sea NOERROR, lo cual indica que el servidor está atendiendo peticiones de resolución de nombres.

Para comprobar el funcionamiento de la resolución inversa, ejecutar la orden siguiente:

# host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.

Para analizar posibles fallos en el funcionamiento del servidor DNS conviene visualizar el contenido del archive de logs /var/log/syslog. Ejecutando las órdenes:

# /etc/init.d/bind9 restart
# trail –f /var/log/syslog

Se pueden observer las lineas de arranque del demonio named y los posibles conflictos y/o errores de configuración.

# > Configuración del cliente Debian GNU/Linux

El cliente del servicio DNS se llama resolver. El “resolvedor” (resolver) es parte de una biblioteca de funciones (similares a las rutinas) de C que se enlazan a otros programas que necesitan utilizarlas para consultar un servidor DNS. Esto se realiza de forma transparante para el usuario.

Las tareas de resolver son:

1. Interrogar al servidor de nombres.
2. Interpretar respuestas ( que pueden ser registros RR o errores).
3. Devolver información al programa que la solicita.

El resolver de GNU/Linux posee una configuración muy sencilla que se realiza a traves del archivo /atc/resolv.conf.

El archivo /etc/resolv.conf consta de un conjunto de directivas o atributos con la sintaxis siguiente:

<atributo> <valor1> <valor2> … <valorN>

Los atributos pueden ser nameserver, domain, search y options.

Nameserver indica la dirección IP de los servidores de DNS, cada uno a través de una directiva diferente. El numero máximo de servidores de nombres de dominio esta especificado en el archivo /usr/incluye/resolv.h a través de la constante MAXNS cuyo valor por defecto es de tres. Ejemplo de atributo nameserver en /etc/resolv.conf:

Nameserver 192.168.1.1 127.0.0.1

El atributo domain indica el dominio por defecto:

Domain performsec.com

Si no existe esta linea en el archivo /etc/resolv.conf y la maquina local se llama servidor.performsec.com, se toma por defecto, como nombre de dominio, a partir del primer punto hacia la derecha (performsec.com).

Search especifica la lista de dominios donde se harán las consultas:

Search performsec.com

Las directivas domain y search son mutuamente excluyentes, es decir la ultima que se indica sobrescribe a la anterior.

Options permite modificar el valor de algunos atributos internos del resolver, Se expresa de la forma:

Options <opcion1> <opcion2> … <opcionN>

Ejemplo del archivo ya configurado /etc/resolv.cof

Search performsec.com
Nameserver 192.168.1.1 127.0.0.1
Options debug timeout:10

Por ultimo, en el archive /etc/host.conf se define el orden de busquea de informacion:

#primero que utilice bind, es decir en el
# servidor, DNS y si falla que busque en /etc/host.
Orden bind, host
Multi on

La opción multi puede estar en on o en off. Si esta en on el resolver devuelve todas las direcciones IP validas para una maquina que aparecen en el archivo /etc/hosts. Si esta en off (valor por defecto) solo devuelve la primera.

Para comprobar que se esta resolviendo nombres, ejecutar la orden ping sobre el nombre del equipo:

# ping servidor
# ping servidor.performsec.com

Si todo esta bien configurado deberá responder sin problema. Tambien se puede comprobar ejecutando:

# nslookup servidor.performsec.com

Si no responde el ping con “servidor”, pero si con “servidor.performsec.com” habrá que revisar el archivo /etc/resolv.conf y comprobar si están simultáneamente las opciones search y domain.


Publicado en: Linux, Servidores
Tags: , ,
Reacciones con otros blogs:  ¡Click!
Marcadores sociales: Compártelo