miércoles, 12 de octubre de 2011

BIND9 Zonas maestras

Hoy vamos a ver como configurar un servidor DNS en linux (en windows es la cosa mas fácil del mundo), para eso vamos a suponer que trabajamos en una empresa, en la cual tenemos una serie de maquinas que son las que proporcionan servicios al exterior y también tendremos otras maquinas por 4 departamentos, teniendo en cada departamento unas 8 maquinas.

El ejemplo quedaría algo como esto:

- Servidor web 1: 192.168.100.100
- Servidor web 2: 192.168.100.101
- Servidor web 3: 192.168.100.102
- Servidor web 4: 192.168.100.103
- Servidor ftp 1: 192.168.100.105

- Departamento de Administración:
  • Equipo 1: 192.168.2.1
  • Equipo 2: 192.168.2.2
  • Equipo 3: 192.168.2.3 
  • Equipo 4: 192.168.2.4  
- Departamento de  Marketing:
  • Equipo 5: 192.168.3.5
  • Equipo 6: 192.168.3.6
  • Equipo 7: 192.168.3.7 
  • Equipo 8: 192.168.3.8
- Departamento de Atención al cliente:
  • Equipo 9: 192.168.1.9
  • Equipo 10: 192.168.1.10
  • Equipo 11: 192.168.1.11 
  • Equipo 12: 192.168.1.12
- Departamento de Contabilidad:
  • Equipo 13: 192.168.4.13
  • Equipo 14: 192.168.4.14
  • Equipo 15: 192.168.4.15 
  • Equipo 16: 192.168.4.16
Bueno, pues con estos equipos hay ejemplo para dar y vender.

Vamos al grano, en una maquina, yo voy a usar una debian totalmente limpia, instalamos el BIND9.

Para instalar (como se supone que no tenemos entorno gráfico :P), pues tecleamos:

aptitude update --> Con esto se actualizaran los repositorios.
aptitude install bind9 --> Se instalaran solo 2 paquetes (esto me choco mucho)

Una vez instalado, como va a ser nuestro Servidor DNS, tenemos que configurarlo para que nos resuelva nuestro propio DNS, para ello editamos el archivo /etc/resolv.conf:

nano /etc/resolv.conf

Y dejar solo la siguiente linea:

nameserver 127.0.0.1


Foto 1: /etc/resolv.conf



Esto significa que el servidor al que vamos ha hacer las peticiones somos nosotros mismos.

¿Y que pasa cuando en nuestro Servidor DNS no puede ofrecer la respuesta?

Pues fácil, en las opciones del servidor, indicamos un forward o lo que viene a ser lo mismo el siguiente servidor al que tiene que preguntar.

Para hacer esto hay que editar el archivo /etc/bind/named.conf.options


nano /etc/bind/named.conf.options

Y en este archivo descomentamos y dejamos así:

forward {
      8.8.8.8;
      };

Foto 2: Forwarders.


Ahora cuando le pidamos dominios que no tenemos nosotros, el servidor DNS de google nos los dirá, no es obligatorio poner el Servidor DNS de google, puedes poner el de tu ISP o el de quien tu quieras.

Continuamos con el siguiente paso, que es crear la zona que nos va a dar servicio, para ello editamos el archivo /etc/bind/named.conf.local:

nano /etc/bind/named.conf.local

y en este archivo tenemos que poner algo como esto:


zone "necromals.com" { --> Esto seria el comienzo y entre las comillas hay que poner el nombre de nuestro dominio.

type master; --> Con esto le indicamos el tipo de servidor que estamos preparando, en este casto maestro, pero tenemos otros como esclavo....

file "/etc/bind/db.necromals.com"; --> Aquí le indicamos en que archivo tendrá toda la configuración de la zona, osease donde tendrá el nombre de las maquinas y sus ips.

}; --> Hay que cerrar las llaves xD, el ";" se utiliza para indicar que se acabo la linea, si da fallos, siempre hay que mirar este tipo de cosas.

Foto 3: Nueva zona.


Bueno ahora viene lo jodido no, lo siguiente. El archivo de configuración de la zona.

Pos ale al tajo.....

Editamos el archivo /etc/bind/db.necromals.com al abrirlo con el nano o cualquier editor, en teoría debería grabarse donde le estamos indicando (siempre y cuando las carpetas estén creadas, para crear carpetas mkdir).

nano /etc/bind/db.necromals.com

Bueno ahora vamos a ver que lineas podemos tener en este archivo.


$TTL 604800 --> Es un tiempo de vida que le da a los registros.


$ORIGIN necromals.com. --> Establece el nombre de dominio por omisión, osease que si nos dejamos en el archivo un dominio al final sin un punto pondrá esto.

En el siguiente registro (el primero en realidad) tenemos que decir quien tiene la autoridad de esta zona.

Para ello se pone lo siguiente:

<nombre de dominio> IN SOA <servidor> <responsable> (<parametros>)
necromals.com. IN SOA ns.necromals.com. root.localhost (parametros)
en las siguientes lineas van el numero de serie, el periodo de refresco, la frecuencia de reintentos, el tiempo de expiracion y el TTL ninimo.

El siguiente registro es un NS, que indica en una zona que servidores tienen autoridad a responder.
<nombre de dominio> IN NS <servidor con autoridad>
necromals.com. IN NS ns.necromals.com.

A partir de aqui los registros son mas sencillos.

Tenemos el registro A, que es el que nos va a dar a un dominio que ip le pertenece.

<nombre de dominio> IN A <dirección IP>

ns.necromals.com. IN A 192.168.100.253 --> con esta linea le estamos diciendo que nuestro servidor dns (el que en el registro ns le da privilegios para poder responder en esta zona) tiene la ip 192.168.100.253

Para uno de nuestros servidores web podríamos poner algo así como:

www.necromals.com. IN A 192.168.100.100 --> con este registro, nuestro server con el dominio necromals.com seria el 192.168.100.100, si mirais la foto de abajo con la configuración que tengo de esta zona, podrás ver que tengo varios servidores web con 4 ips distintas, esto es para hacer un balanceo de carga entre los 4 servidores.

Otro registro, muy útil, es el registro CNAME, este nos permite cambiar un dominio por otro.

<nombre de dominio> IN CNAME <nombre de dominio real>

Por ejemplo google:
www.google.es. IN CNAME www.google.com.

Nos faltaria añadir los tipos de registro MX, que son los registros que consultan los servidores de correo para conocer la IP de otros servidores de correo.

Estos registros a parte del IN MX tienen una cifra numérica, esto indica cuando hay varios servidores de correo quien es el que tiene prioridad.

<nombre de dominio> IN MX 20 <Dirección IP>

mail1.necromals.com. IN MX 10 192.168.100.104

Dentro de este archivo, a parte de estos registros también podemos poner directivas.

La forma de explicar una de ellas, que es $GENERATE, es muy simple.
Si tenemos el departamento de administracion que tienen una serie de equipos, para darles ip tendriamos que hacer lo siguiente:

equipo1.administracion IN A 192.168.2.1
equipo2.administracion IN A 192.168.2.2
equipo3.administracion IN A 192.168.2.3
equipo4.administracion IN A 192.168.2.4

En este caso es mas o menos simple porque solo hay que poner 4, pero y si nuestro departamento tiene 100 equipos, pues que nos morimos escribiendo lo mismo todo el rato.

Para ello tenemos la directiva &GENERATE, esta nos permite dar ip a todos esos equipos con solo poner una linea.

&GENERATE 1-4 equipo$.administracion IN A 192.168.2.$

Creo que la linea se entiende de sobras, pero la explico un poco.

&GENERATE --> es la directiva.

1-4 --> es el intervalo de números que pueden cambiar.

equipo$administración IN A 192.168.2.$ --> seria un registro normal de A pero cambiando los números que nos interesan que cambien por el símbolo "$".

Otra directiva, es &INCLUDE: con esta directiva, llamaríamos a otro archivo, en el cual tendríamos mas registros. Para mi sinceramente esta directiva no tiene mucho sentido.

&INCLUDE <ruta del nuevo archivo a incluir>

&INCLUDE /etc/bind/db.ayuda

En la siguiente foto se muestra como quedarían los registros para nuestro ejemplo:

Foto 4: Registros
En verdad, para entender todo esto muy bien, tendremos que leer este articulo varias veces y practicar un poco.

Para probar, podemos utilizar cualquier maquina, siempre que este dentro de la misma red, y tener en el archivo /etc/resolv.cnf el primer nameserver con la ip de nuestro servidor dns.

Cuando tengamos eso, solo tenemos que poner un dig y el nombre que queramos. Por ejemplo:

dig equipo13.contabilidad.necromals.com

con esto una de las lineas nos dira la ip, quien nos la puede ofrecer y mas cosas, pero esto del dig, me lo reservo para otro post.

Saludos by NECROMALS

miércoles, 5 de octubre de 2011

Recuparar contraseñas Ubuntu.

Bueno mas que recuperar contraseñas es machacar la que teníamos y poner una nueva.

Para esto tenemos que esta en el ordenador físicamente, sino no funcionara.

Pues na empezamos, para ello metemos el live cd (nos vale cualquier versión, siempre y cuando nos deje arrancar un ubuntu, debian o el que sea) y arrancamos la maquina.

Foto 01: Ubuntu live.

Entremos en una terminal (recordar que hay que poner sudo al principio de todas las instrucciones que le demos).

Foto 02: Terminal.

Ahora en la terminal miraremos como se llama nuestro disco duro, para ello usamos el comando ls:


sudo ls /var/

Foto 03: ls /dev/ remarcando las el disco duro.


Si nos fijamos tenemos un sda, este suele ser el disco duro principal. Bueno lo normal es que el sistema se instale en la primera partición del disco, si el disco es sda, lo normal es que la partición que contenga es sistema de archivos principal sea el sda1.
Si tenemos claro cual es pues no hay que buscarlo, sino es cuestión de montarlos todos asta que encontremos el que tiene la carpeta /etc (en algunos sitios también dicen que hay que montar la carpeta de /boot pero a mi no me a dado fallos y e probado varias veces).
Bueno montamos la particion:



sudo mount -t auto /dev/sda1 /mnt/

Y ahora miramos los archivos:



ls /mnt/

Foto 04: Montado y comprobado del contenido de la partición.

Bueno ahora biene el paso mas complicado, para cambiar las contraseñas, existe el comando passwd, si lo ejecutamos solo, nos cambiaría la contraseña del root pero dentro de la configuración que tiene la maquina en ese momento, que no es mas que la que carga del cd live.
Como lo que queremos es ejecutar el passwd en el disco físico, tenemos que usar la jaulas.
Las jaulas en linux nos permiten ejecutar comandos haciendo pensar que la ruta raid, es la que le estamos indicando y no la que tendría el sistema (es fácil que no se entienda pero son las 3 de la mañana y no estoy muy inspirado).

chroot /mnt/ passwd root

Esto lo detallo:

- chroot: es el comando que nos permite utilizar las jaulas.
- /mnt/: es la ruta que va a ser el raiz. (/mnt/ es donde yo monte la partición que tiene nuestro equipo).
- passwd root: es el comando que nos permite cambiar la contraseña del root.

Bueno creo que se entiende bien.

Foto 05: Chroot + passwd = 100% acceso al sistema.


Ahora reiniciamos la maquina, quitamos el cd live y ya tenemos acceso al root muajajaja.

martes, 4 de octubre de 2011

El puto MYSQL

Bueno al instalar MYSQL resulta que con cualquier programa que me intentara conectar a el que no fuese de forma local, no me dejaba.

Tras googlear un rato e descubierto la solución:

nano /etc/mysql/my.cnf

En este archivo tenemos que marcar como comentario la siguiente linea:

bind-address = 127.0.0.1

Lo cerramos (en nano, ctl+x, yes y enter), y reiniciamos el servicio MYSQL.


/etc/init.d/mysql restart

Bueno con esto ya lo tenemos solucionado.

sábado, 1 de octubre de 2011

Piezas de reserva

Bueno, hoy voy a crear este post mas que nada para hacerme catalogo de piezas que tengo.

- Procesador Pentium III: Slot1, OK

- Placa Base MS9147C: Socket PGA 478 (B), sin comprobar.
- Placa Base GA-6ZXC: Slot 1, averiada.
- Placa Base AK77 Pro: Socket 462 (A), averiada.

- T. Ethernet RTL8139C.
- T. Ethernet RTL8139D.
- T. Ethernet RTL8139B.
- T. Ethernet RTL8139C.
- T. Ethernet RTL8139C.
- T. Ethernet RTL8139D.
- T. Ethernet RTL8139A.

- T. WIFI RT2760T: WIFI N.

- T. MODEM PCT288.
- T. MODEM No se que chip lleva.

- T. SDRAM KVR133X64C3/256: 256 MB
- T. SDRAM 64 MB
- T. SDRAM AHE6499P34-730D: * MB
- T. SDRAM 1ADR0FO: 128 MB
- T. SDRAM P610402449: * MB
- T. SDIM KTM-APTV/16T: 16 MB
- T. SDIM KTM-APTV/16T: 16 MB

- HDD SV2042H: 3.5,  20.4 GB, Pendiente de reparación.
- HDD HM160HI: 2.5, 160 GB, Error de S.M.A.R.T.
- HDD SV0643A: 3.5,  6.4 GB, Pendiente de reparación.
- HDD CAVIAR 22500: 3.5, 2559.8 MB, Muerto 100%.
- HDD ST315323A: 3.5, 15.5 GB, OK
- HDD ST310212A: 3.5, 10,2 GB, OK
- HDD MEDALIST 6422: 3.5, 6,400 MB, OK

- T. SONIDO CT5880-DCQ, MODEL CT4810
- T. SONIDO CT2511-SAT, MODEL CT4170
- T. SONIDO CT8903-DAQ, MODEL CT4500
- T. SONIDO CT2505-TDQ2, MODEL CT4180
- T. SONIDO CT2511-SBT, MODEL CT4170
- T. SONIDO CT2511-SBT, MODEL CT4170
- T. SONIDO ES1370
- T. SONIDO CT5880-DCQ, MODEL CT4810

- T. GRAFICA S3 TRIO VIRGE ver 1.3
- T. GRAFICA OTI087
- T. GRAFICA NVIDIA GEFORCE4
- T. GRAFICA S3 VIRGE/DX
- T. GRAFICA S3 TRIO 3D/2X
- T. GRAFICA S3 VIRGE/DX
- T. GRAFICA SIS 6326 AGP
- T. GRAFICA S3 VIRGE/DX
- T. GRAFICA CL-GD5446BV-HC-A
- T. GRAFICA ATI 3D RAGE PRO AGP 2X
- T. GRAFICA S3 VIRGE/DX
- T. GRAFICA S3 TRIO64V2/DX

- T. ESPECIAL BT-540CF: T. de expansión para SCSI.
- T. ESPECIAL SI/XIO-H: No tengo muy claro para que vale.

- DISKETERA SFD-321B/LEB
- DISKETERA SFD-321B/KE
- DISKETERA MPF920-E
- DISKETERA SDF-321B/EF
- DISKETERA FD1231H

- REGRABADORA CDs SW-208
- REGRABADORA CDs SW-252
- REGRABADORA CDs 6432A-034
- LECTORA CDs PCA408CD
- LECTORA CDs CRD-8483B
- LECTORA DVDs SD-612