Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

viernes, 12 de abril de 2013

Aprendiendo a programar en Ruby (part1)

Hola a todos, como estan, hoy voy a empezar a aprender a programar en una plataforma llamada ruby.

Promero, voy a hacer una breve descripcion del programa (sacado de la pagina oficial en español) para saber a grandes razgos a que nos estamos metiendo.


¿Te preguntas por qué Ruby es tan popular? Sus fanáticos lo tienen como un lenguaje hermoso y artístico. Y todavía así, dicen que es práctico y ameno. ¿Por qué?
Los ideales del creador de Ruby
Ruby es un lenguaje con un balance cuidado. Su creador, Yukihiro “matz” Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, y Lisp) para formar un nuevo lenguaje que incorporara tanto la programación funcional como la programación imperativa.
A menudo ha manifestado que está “tratando de hacer que Ruby sea natural, no simple”, de una forma que se asemeje a la vida real.
Continuando sobre esto, agrega:
Ruby es simple en apariencia, pero complejo por dentro, como el cuerpo humano1.
Acerca del crecimiento de Ruby
Desde su liberación pública en 1995, Ruby ha atraído devotos desarrolladores de todo el mundo. En el 2006, Ruby alcanzó reconocimiento masivo, formándose grupos de usuarios activos en las ciudades más importantes del mundo y llenando las capacidades de las conferencias relacionadas a Ruby.
Ruby-Talk, la lista de correo más importante sobre el lenguaje Ruby ha crecido hasta lograr un promedio de 200 mensajes por día.
El índice TIOBE, que mide el crecimiento de los lenguajes de programación, ubica a Ruby en la posición #13 del ranking mundial. Refiriéndose a su crecimiento, predicen, “Todo indica que Ruby llegará a estar entre los 10 primeros en menos de 6 meses”. Gran parte de su crecimiento se atribuye a la popularidad alcanzada por aplicaciones desarrolladas con Ruby, en particular el framework de desarrollo web Ruby on Rails2.
Ruby es totalmente libre. No sólo gratis, sino también libre para usarlo, copiarlo, modificarlo y distribuirlo.
Viendo todo como un objeto
Inicialmente, Matz buscó en otros lenguajes para encontrar la sintaxis ideal. Recordando su búsqueda, dijo, “quería un lenguaje que fuera más poderoso que Perl, y más orientado a objetos que Python3”.
En Ruby, todo es un objeto. Se le puede asignar propiedades y acciones a toda información y código. La programación orientada a objetos llama a las propiedades variables de instancia y las acciones son conocidas como métodos. La orientación a objetos pura de Ruby se suele demostrar con un simple código que aplica una acción a un número.
En muchos lenguajes, los números y otros tipos primitivos no son objetos. Ruby sigue la influencia del lenguaje Smalltalk pudiendo poner métodos y variables de instancia a todos sus tipos de datos. Esto facilita el uso de Ruby, porque las reglas que se aplican a los objetos son aplicables a todo Ruby.

Bueno, ahora la instalacion:

Linux:
Aqui instalamos primero las dependencias de la aplicacion:

sudo apt-get update

sudo apt-get install curl

curl -L get.rvm.io | bash -s stable

rvm requirements

sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config

source ~/.rvm/scripts/rvm

type rvm | head -n 1

Ahora si, instalando ruby

rvm install 1.9.3

rvm use 1.9.3 --default

gem install rails


Windows

descargamos el siguiente paquete de instalación: Ruby, este pesa aproximadamente 60 Mb

y la instalacion es la tipica de siguiente, siguiente, finalizar.

_____________________________Barra_Improvisada_____________________________

Saludos desde colombia!!


jueves, 14 de marzo de 2013

Entrar al Root sin pswd

Hola a todos, casi llevo 15 dias sin escribir, pero me encontre con un problema, ningun usuario podia entrar a hacer cambios al server. entonces, buscando en internet, encontre esta solucion... muy efectiva:


Al iniciar el ordenador y cuando nos sale el Grub, seleccionamos arrancar en modo recovery (recuperación).
Nota: para los que os arranca Ubuntu directamente sin poder ver el Grub: lo haremos después de que carge la placa base pulsando escape, si no funciona pulsa shift, para entrar en el menú del grub.
Y en el menu del Grub que nos aparece, elige recovery mode (recuperación)
En el submenú que aparece elige "netroot" ("root" en las nuevas versiones), para colocarnos como superusuario sin contraseña.

Gracias a un lector del blog que nos deja este comando para solucionar el error: "Authentication token manipulation error passwd: password unchanged":

Montamos de nuevo la raíz del sistema con permisos de escritura y lectura con el comando:

mount -rw -o remount /

Ahora cambia tu contraseña ejecutando el comando:

passwd tu_nombre_usuario

Pulsa Enter y escribe tu nueva contraseña, no se verá nada en la pantalla, no te preocupes, es por seguridad, pero en realidad está escribiendo
Pulsa enter y te pedirá que la repitas. La escribes de nuevo y vuelve a pulsar Enter

Apaga el sistema con el comando:

shutdown -r now

Bueno, esto funciona para cualquier comando que necesitemos como superadministrador..

Saludos!!!!!

lunes, 25 de febrero de 2013

El apasionado mundo de los LOGS

El otro día en clase me ocurrió algo que hizo que me interesara por los LOGS (un poco solo eh!). Suelo usar mucho elSSH para enviarme  y ayudar a amigos y todo y que  el puerto cambiado por si las moscas, algún alumno avispado (y un poco ingenuo) creyó que sería divertido reiniciarme el PC mientras trabajaba. Así que después de un cabreo de 10 minutos me acordé de los LOGS y encontré quién fue ese alumno “avispado”. 


El  de LOGS de GNU/Linux (log en inglés significa registro), es un mecanismo estándar que se encarga de recoger los mensajes generados por programas, aplicaciones y demonios y los envía a una serie de archivos los cuales llamamos LOGS. En cada mensaje consta de la fuente (el programa o aplicación que lo generó) la prioridad, fecha y la hora. 

Los registros más comunes son los siguientes: 

/var/log/kern.log: Guarda un registro de los mensajes del Kernel. 
/var/log/syslog: Registro de mensajes del sistema y de sus programas. 
/var/log/dmesg: Información de arranque del sistema y conexiones de hardware principalmente. 
/var/log/debug: Información de depuración de los programas. 
/var/log/Xorg.0.log: Información sobre el entorno gráfico. 
/var/log/boot.log: Información del arranque. 
/var/log/fontconfig.log: Configuración de las fuentes del sistema. 
/var/log/mail.log: Logs del servidor de correo. 
/var/log/auth.log: Conexiones al sistema incluidos los intentos fallidos y los accesos como root. 
/var/log/crond: Tareas programadas (cron) 
/var/log/daemon.log: Alertas especificas de algunos demonios 
/var/log/errors.log: Nos muestra errores. 
/var/log/httpd: Si tenemos un servidor de Apache aquí se registran los eventos. 
/var/log/messages.log: Alertas generales del sistema. 
/var/log/mysqld.log: Registro de eventos de MySQL. 
/var/log/secure: Registro de seguridad. 
/var/log/vsftpd.log: El log del servidor FTP (vsfp). Proftpd.log para el servidor FTP proftpd. 

Si intentáis visualizar un archivo de estos os daréis cuenta de que son archivos muy largos y quizás a veces encontrar algo puede ser toda una odisea (y si no preguntadle algún administrador jaja) así que nos podemos ayudar de los comandos grep y tail. 

Por ejemplo, si queremos saber cuando un usuario se a conectado al servidor, podríamos usar este comando: 

sudo cat /var/log/secure | grep NombreUsuario 

Pero si por ejemplo queremos ver las 10 últimas lineas podemos hacer: 

sudo tail /var/log/secure 

Se puede usar -n para que nuestre el numero de lineas indicadas, por ejemplo: 

sudo tail -n 20 /var/log/secure 

O si prefieres abrir el fichero y que se vaya actualizando: 

sudo tail -f /var/log/secure 

Los archivos de LOG crecen y con el tiempo se pueden volver muy extensos, pero no tenemos que preocuparnos porque en /etc/cron.daily (tareas que se ejecutan cada día) está el script /etc/cron.daily/logrotate, (cuyo archivo de configuración es /etc/logrotate.conf), que se encarga de comprimirlos y aplicar una rotación de archivos, añadiéndoles la extensión .1.gz, .2.gz, etc., volviendo a crear uno vacío (cuanto mayor sea el número más antiguo será el log). 

Fuente: Portallinux

viernes, 15 de febrero de 2013

Proxmox VE [Parte 1/3 - Instalacion]

Hola a todos!!!

Hoy quiero compartir con ustedes un proyecto que hice para virtualizar servidores...



Despues de mucha busqueda de sistemas operativos libres en la web - pase por  CentOS, Ubuntu server y otros - encotre uno que me gusto bastante, se llama Proxmox.

Descargamos el ISO de la pagina oficial de PROXMOX

Lo primero que haremos es instalarlo en nuestro servidor REAL!!! esta instalacion es sencilla pero se las voy a mostrar aunque esta vez lo hare en una maquina virtual XD!!


Aqui nos aparece el contrato de licencia del PROXMOX, le damos clic en aceptar.


Aqui nos muestra la informacion acerca de como van a quedar las particiones del disco duro, este SO coje todo el disco. Ademas, de la deteccion del hardware y nos dice que la interfaz grafica del usuario, es por un explorador web.


Aqui nos esta pidiendo la localizacion geografica del servidor y su lenguaje

 
Nos pide la contraseña para el ROOT y un correo electronico.


Por ultimo, nos pide el nombre del host que estamos creando, ps, para hacerle la busqueda por medio de un DNS. ademas de las direcciones de red.


Al darle siguiente a la pagina anterior, empieza la copia de archivos y configuracion de nuestro servidor de virtualizacion...


Aqui ya nos dice que el server, esta instalado  que debemos de reiniciar la maquina


Y esto vemos despues del reinicio.


___________________________________________________________

Saludos a todos y espero que les sirva este pequeño tutorial

Comentar es apoyar

miércoles, 13 de febrero de 2013

Instalar entornos en Ubuntu Server

Instalación de GNOME 
Si quieres instalar GNOME en  Server con todas las  usa estos comandos: 

sudo apt-get update 
sudo apt-get install ubuntu-desktop
 

Instalando el paquete ubuntu-desktop, estamos instalando el entorno gráfico completo, incluyendo, aplicaciones, etcétera… 

También existe la posibilidad de instalar GNOME en modo escritorio mínimo con el siguiente comando: 

sudo apt-get update 
sudo apt-get install xorg gnome-core
 

Ya tienes el escritorio mínimo instalado, Lo que os ha instalado ha sido los “Accesorios” (solamente el editor de textos, la terminal y Firefox para poder navegar por Internet. Pero como es una instalación mínima, el idioma por defecto es el inglés. 

Para instalar el soporte de idioma español, abrimos la Terminal y vamos poniendo de uno en uno: 

sudo apt-get update 
sudo apt-get install language-pack-es 
sudo apt-get install language-pack-es-base 
sudo apt-get install language-pack-gnome-es 
sudo apt-get install language-pack-gnome-es-base 
sudo apt-get install language-selector 
sudo apt-get install language-support-es
 

Después de instalar todos los soportes, instalamos gksu para que funcionen correctamente los menús:

sudo apt-get install gksu 

Para instalar las Herramientas de red tecleamos esto en la Terminal: 

sudo apt-get install gnome-system-tools gnome-nettool
 

Una vez instalado, y esto es lo más importante, tenemos que llamar a la interfaz por primera vez, para llamar la interfaz escribimos: 

startx 

Y ya tienes el entorno gráfico correctamente instalado, con soporte de idioma español y también vemos como instalar las Herramientas de red, en Ubuntu Server con escritorio mínimo.
 

lunes, 28 de enero de 2013

Alertar login en la cuenta root


Alertar login en la cuenta root


Este es un sencillo truco para que se nos infome cada vez que alguien inica sesion con la cuenta de root.
El script envia un email a nuestra direccion con informacion del servidor en ese momento.

Para añdir este script tenemos que editar como root el siguiente archivo:
nano /root/.bashrc
Y añadir al final de este estas lineas:

echo 'ALERT - '`echo $USER`' Shell Access on '`echo $HOSTNAME`':' `date` `who | awk '{print $1, $2, $5}'` |
mail -s "Alert: $USER Access from `who | cut -d"(" -f2 | cut -d")" -f1`" tuemail@dominio.com
Hay que cambiar tuemail@dominio.com por el email donde quieres recibir las notificaciones.
En el email recibiras la siguiente informacion:
  • Nombre de la maquina
  • Fecha
  • Usuarios logeados y su IP
Espero que os sea util.
Como bien ha comentado Baco en los comentarios esto solo seria útil si el usuario root usa la Bash Shell que es la que viene por defecto en Debian. Gracias baco por matizarlo.

martes, 8 de enero de 2013

Zorin OS

Zorin OS es un sistema operativo multi-funcional diseñado específicamente para usuarios de Windows que quieran tener acceso fácil y sin problemas con Linux. Está basada en Ubuntu que es el sistema operativo Linux más popular del mundo.

Zorin OS ofrece nuestro programa único Look Changer que hemos creado exclusivamente para Zorin OS. Permite a los usuarios cambiar la interfaz de usuario con sólo tocar un botón. Otros programas únicos incluyen el Administrador de Splash Screen, navegador de Internet y Backgroung Plus.


Zorin OS ofrece a los usuarios una mayor flexibilidad.
Le permite utilizar Zorin OS junto con su sistema operativo actual y ejecutar programas de Microsoft Windows en Zorin OS con la ayuda de WINE y PlayOnLinux.


Requisitos minimos del sistema:

Para las versiones de GNOME basado (no Lite):
- 700 MHz de procesador.
- 3 GB de espacio en disco.
- 376 MB de memoria de sistema (RAM).
- Tarjeta gráfica compatible con una resolución de 640 x 480 pixeles.
- Tarjeta de sonido.

Para las versiones basadas LXDE (Lite):
- 266 MHz de procesador.
- 2 GB de espacio en disco.
- 128 MB de memoria de sistema (RAM).
- Tarjeta gráfica compatible con una resolución de 640 x 480 pixeles.
- Tarjeta de sonido.


__________________________________________________________________

La instalacion, es tipica, como con cualquier ubuntu.

Esta instalacion contiene casi todo lo que uno necesita en cuanto a aplicaciones basicas necesarias, como por ejemplo la suite ofimatica de LibreOffice.


__________________________________________________________________

Para tener en cuenta, el idioma por defecto de zorin es ingles, aunque hay que hacer un pequeño cambio para que puedas tenerlo en español. En el login, se puede determinar el idioma, en la parte de abajo a la izquierda, seleccionamos "Spanish". Luego nos va a pedir que hagamos las actualizaciones correspondientes, las cuales podemos hacer con estos comandos.
alejandro@zorin:~$ sudo apt-get upgrade
alejandro@zorin:~$ sudo apt-get update

y luego reiniciamos.


__________________________________________________________________

vamos a hacer la instalacion del sonido.

yo prefiero el Mezclador Alsa de Gnome. este lo instalamos de la siguiente manera.

alejandro@sorin:~$ sudo apt-get gnome-alsamixer
y luego reiniciamos


__________________________________________________________________

A mi parecer este es uno de los sistemas operativos, basados en Linux, mas atractivos, ya que su interfaz es intuitiva y similar a la de windows, asi que no habra perdida alguna.

Saludos  todos desde colombia



jueves, 27 de diciembre de 2012

Deshabilitar carga de discos USB en Ubuntu

Algo importante para la seguridad de una empresa es que no se fugue información de la empresa; y uno de los puntos débiles en una compañía es dejar habilitados los puertos USB de los equipos. El día de hoy les voy a enseñar como se puede bloquear la carga de estos dispositivos, obviamente sin dejar deshabilitados los demás usos, como mouses, teclados, etc.

Lo primero es deshabilitar el driver encargado del montaje en los puertos USB. Para esto, escribimos la siguiente linea en TERMINAL.

sudo mv /lib/modules/`uname -r`/kernel/drivers/usb/storage/usb-storage.ko /home/[usuario]/

Luego, deshabilitaremos la opción de montaje al momento de iniciar el sistema, Esto lo logramos agregando la línea modprobe -r usb_storage al final del script /etc/rc.local, el cual Ubuntu ejecuta antes de llevarte al escritorio.

Escribimos la siguiente linea en TERMINAL

sudo gedit /etc/rc.local


Ahora agregamos la línea modprobe -r usb_storag justo antes de la línea exit 0 al final del archivo, quedando en algo como esto:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.

#
# By default this script does nothing.

modprobe -r usb_storage
exit 0
Para terminar, guardamos y cerramos el archivo, luego reiniciamos el equipo, así los cambios realizados en el sistema surtirán efecto.

Ahora, debemos de sacar el usuario del grupo plugdev. para esto, ejecutamos la siguiente linea en TERMINAL.

sudo gpasswd -d [nombre_del_usuario] plugdev

Por ultimo, debemos hacer un blacklist el modulo usb_storage en el archivo /etc/modprobe.d/blacklist.conf, de la siguiente manera: 

sudo gedit /etc/modprobe.d/blacklist.conf

Ahora agregamos las siguientes líneas al final del archivo abierto: 

# Restricción de acceso a dispositivos de almacenamiento masivo USB. 
blacklist usb_storage

Después guardamos y cerramos el archivo editado y reiniciamos el equipo para guardar los cambios.

miércoles, 30 de mayo de 2012

Configuracion de Proxy (DansGuardian + Squid) en Linux

Primero descargamos el paquete de instalación de DansGuardian asi: "sudo apt-get install dansguardian squid"

Luego vamos a editar el archivo de configuración de dansguardian que se encuentra en:
sudo nano /etc/dansguardian/dansguardian.conf

En ese archivo hacemos varias modificaciones. La primera es en la linea de "UNCONFIGURED - please remove this line after configuration"... simplemente le colocamos un signo de numeral al inicio de la linea.

Despues, vamos al archivo de configuracion de Squid, que se encuentra en :
sudo nano /etc/squid/squid.conf

En la linea "http_port 3128", le añadimos al final "transparent" 

Ahora debemos de reiniciar el proceso DansGuardian  y Squid


sudo service dansguardian start

sudo service squid start


en la carpeta "/etc/dansguardian/list", vamos a editar los filtros de contenido.

por ejemplo editaremos el archivo "bannedsitelist" que esta en esa carpeta. Alli, colocaremos la lista de sitios bloqueados justo debajo de la linea
#list other sites to block

google.com
hotmail.com

Recordemos solo colocar el dominio del sitio.

Luego, podemos editar el archivo .HTML que nos mostrara cuando intentemos ingresar a nuestra lista de paginas bloqueadas, este archivo se encuentra en "/etc/dansguardian/languajes/spanish/template.html"
Este, se edita como cualquier archivo HTML que conozcas.

Falta decirle a DansGuardian que su idioma es español.

Vamos al archivo "/etc/dansguardian/dansguardian.conf" y en la linea "language = "english"", lo cambiamos por "spanish"

Lo ultimo es probar con otra maquina las paginas que hemos bloqueado y listo.

miércoles, 2 de mayo de 2012

IP Estatica Linux

El día de hoy quise incursionar en los diferentes servicios que tiene linux, y por supuesto, documentarlos.
En esta ocasión, empezare desde el principio (o incluso mas atrás) para hacer un paso a paso de la instalación de los servicios.

Principalmente, pienso yo, debemos de utilizar una Dirección IP Estática para nuestro amado servidor.

Para mi red, utilizare la famosa dirección "192.168.0.0 /24"

La IP 192.168.0.1 la utilizare para mi Gateway o Puerta de enlace.
La IP 192.168.0.2 la utilizare para mi Servidor
Las IP desde la 192.168.0.10 hasta la 192.168.0.100 para diferentes Host en mi red y las asignare por DHCP


Recordemos hacerle un BACKUP a los archivos originales.
Por Ejemplo: cp -p  /etc/network/interfaces /etc/network/interfaces.bak
Aqui copie el archivo Interfaces y le coloque al nuevo Interfaces.bak
Ahora si editamos el original

Direccion IP Estatica
Lo primero que debemos de saber, es como darle una IP Estática al servidor.
Ubicacion: /etc/network/interfaces
Este archivo es el encargado de definir las interfaces de red en el equipo.
Lo editamos así.
sudo nano /etc/network/interfaces
Luego, en el editor de texto, colocamos lo siguiente:
iface eth1 inet static
address "alguna ip"
netmask "alguna mascara "
network "la red"
broadcast "direccion de broadcast"
gateway " alguna puerta de enlace"


Por ejemplo, en mi caso:


iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0

network "192.168.0.0"
broadcast "192.168.0.255"

gateway 192.168.0.1


Para agregar las direcciones de DNS, por ejemplo si vamos a salir a Internet, debemos de editar otro archivo.
Ubicacion: /etc/resolv.conf
Recordemos hacerle BACKUP
sudo nano /etc/resolv.conf
ya adentro escribiremos:


nameserver aqui.dns.mi.proveedor
nameserver aqui.dns2.mi.proveedor


en mi caso, sera así, ya que es una intranet. Pero puedes colocarle las que quieras:


nameserver 192.168.0.1
nameserver 192.168.0.2

Reinicio los servicios /etc/init.d/networking restart



Dile si a la libertad del INTERNET
El contenido del post es de mi autoría, experiencia y/o, una recopilación de distintas fuentes.

lunes, 16 de abril de 2012

Estructura de ficheros LINUX


Estructura de ficheros en linux


/ Es el nivel más alto dentro de la jerarquía de directorios.
/bin: Contiene los binarios, que son los ejecutables del sistema operativo.
/boot: Aquí podemos encontrar todos aquellos archivos necesarios para que el sistema inicie.
/dev: En esta carpeta se encuentran todos los archivos que nos permiten interactuar con los dispositivos hardware de nuestra PC. Por ejemplo los usb, sda (o hda) con la información de cada uno de ellos
/etc: Aquí se guardan los ficheros de configuración de los programas instalados.
/home: Contiene las carpetas por defecto de los usuarios, como "Documents and Settings"
/lib: Contiene las librerías del sistema y los drivers.
/lost+found: información que se guardó de manera incorrecta debido a algún fallo del sistema.
/media: Ofreecen una estructura de directorios que pueden ser utilizados como punto de montaje para las Unidades Extraíbles. Por ejemplo, los dispositivos USB, disqueteras, unidades de CD/DVD.
/mnt: Es un directorio que se suele usar para montajes temporales de unidades. Por ejemplo, Directorios compartidos dentro de una red, alguna partición de Windows, etc.
/opt: Destinado para guardar paquetes adicionales de aplicaciones.
/proc: Información para la virtualización del sistema de ficheros de Linux.
/root: Es el /home del administrador. Es el único /home que no está incluido -por defecto- en el directorio anteriormente mencionado.
/sbin: Son los ejecutables de administración, tales como mount, umount, shutdown?
/srv: En este directorio residen las carpetas accesibles por el programa cliente de un determinado servicio ofrecido por algunos servidores configurados en el sistema. Por ejemplo Apache, ProFtpd, etc.
/sys: Información sobre los dispositivos tal y como los ve el kernel Linux.
/tmp: Es un directorio donde se almacenan ficheros temporales. Cada vez que se inicia el sistema este directorio se limpia.
/usr: Es el directorio padre de otros subdirectorios de importancia:
/var: Ficheros de sistema como el buffer de impresión.

viernes, 13 de abril de 2012

DNS con BIND9 UbuntuServer


BIND es el servidor de nombres de dominio más popular en Internet, que trabaja en todas las plataformas informáticas principales y se caracteriza por su flexibilidad y seguridad.
Domain Name Service (DNS) es el servicio que resuelve los nombres de dominio asociados a una dirección IP para direccionar las peticiones a un servidor en específico. Se utiliza cuando un nodo (o host) en Internet contacta a otro mediante el nombre de domino de la máquina y no por su dirección IP.


Lo primero es adquirir el paquete de Bind9. Asi.

sudo APT-GET Install bind9

_______________________________________________________________________


Configuración
Veamos como configurar BIND9 para disponer de un servidor DNS en una intranet, que resuelva dominios internos. Por ejemplo, en la intranet se utilizaran dominios que terminen en “marblestation.homeip.net” como “saturno.marblestation.homeip.net” o “luna.marblestation.homeip.net”. El servidor DNS se encargará de resolver esos dominios en sus respectivas IPs, además de resolver otros dominios de Internet como “google.com”.
Instalamos BIND9 y nos desplazamos a su directorio de configuración:
aptitude install bind9
cd /etc/bind/
Editamos named.conf.local y añadimos la zona “marblestation.homeip.net”, haciendo referencia a su fichero de configuración:
zone "marblestation.homeip.net" {
    type master;
    file "/etc/bind/db.marblestation";
};
Creamos el fichero de configuración “db.marblestation” a partir de “db.local”:
cp db.local db.marblestation
Editamos “db.marblestation”, reemplazamos la palabra “localhost” por “marblestation.homeip.net”, cambiamos la IP “127.0.0.1″ por la que queramos asignar al dominio y añadimos al final del fichero todos los A, MX y CNAME que queramos, quedando:
;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA marblestation.homeip.net. root.marblestation.homeip.net. (
                  1     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@           IN      NS          marblestation.homeip.net.
@           IN      A           192.168.48.32
@           IN      MX      0   marblestation.homeip.net.
www         IN      A           192.168.48.32
saturno     IN      CNAME       marblestation.homeip.net.
En este ejemplo vemos primeramente el dominio a resolver, ‘marblestation.homeip.net.’ y el segundo es la cuenta de correo del administrador, ‘root.marblestation.homeip.net.’ (sustituyéndo el primer punto por arroba, lo que dejaría ‘root@marblestation.homeip.net’). Debemos notar que al final de cada dominio viene un punto, que identifica la raíz de este. El resto de los parámetros son:
  • Serial: es un identificador del archivo, puede tener un valor arbitrario pero se recomienda que tenga la fecha con una estructura AAAA-MM-DD y un consecutivo.
  • Refresco: número de segundos que un servidor de nombres secundario debe esperar para comprobar de nuevo los valores de un registro.
  • Reintentos: número de segundos que un servidor de nombres secundario debe esperar después de un intento fallido de recuperación de datos del servidor primario.
  • Expiración: número de segundos máximo que los servidores de nombre secundarios retendrán los valores antes de expirarlos.
  • TTL mínimo: Significa Time To Live y es el número de segundos que los registros se mantienen activos en los servidores NS caché antes de volver a preguntar su valor real.
A continuación se definen los registros necesarios, cuyos tipos ya han sido explicados anteriormente en este documento.
Cada vez que se cambia la configuración de BIND9, debemos reiniciar el demonio:
/etc/init.d/bind9 restart
Para que nuestra máquina utilice el servidor de DNS que hemos configurado, debemos editar “/etc/resolv.conf” y dejamos únicamente la línea:
nameserver 127.0.0.1
Se debería hacer lo mismo con el resto de máquinas de la intranet que vayan a utilizar el servidor, con la única diferencia que habrá que substituir la IP 127.0.0.1 por la IP que tenga el servidor en la red.
Para comprobar el correcto funcionamiento, utilizamos el comando “host” el cual sirve para resolver dominios:
$ host marblestation.homeip.net
marblestation.homeip.net has address 192.168.48.32
marblestation.homeip.net mail is handled by 0 marblestation.homeip.net.
$ host saturno.marblestation.homeip.net
saturno.marblestation.homeip.net is an alias for marblestation.homeip.net.
marblestation.homeip.net has address 192.168.48.32
saturno.marblestation.homeip.net is an alias for marblestation.homeip.net.
saturno.marblestation.homeip.net is an alias for marblestation.homeip.net.
marblestation.homeip.net mail is handled by 0 marblestation.homeip.net.
Si deseamos también disponer de resolución de dominios inversa, es decir, que podamos preguntar por la IP “192.168.48.32″ y el servidor DNS nos diga que pertenece a marblestation.homeip.net, debemos añadir a “/etc/bind/named.conf.local”:
zone "192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192";
};
Creamos el archivo de configuración “/etc/bind/db.192″ a partir del “/etc/bind/db.127″:
cd /etc/bind/
cp db.127 db.192
Editamos “/etc/bind/db.192″, substituimos “localhost” por “marblestation.homeip.net” y cambiamos la última línea:
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@   IN  SOA marblestation.homeip.net. root.marblestation.homeip.net. (
                  1     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  marblestation.homeip.net.
32.48.168   IN  PTR marblestation.homeip.net.
De forma que, la última linea indica que la IP [192.]168.48.32 (escrita a la inversa y omitiendo el 192 que ya se especifico en “named.conf.local”) corresponde al dominio marblestation.homeip.net.
Podemos comprobar su funcionamiento reiniciando el demonio BIND9 y realizando una consulta:
$ /etc/init.d/bind9 restart
$ host 192.168.48.32
32.48.168.192.in-addr.arpa domain name pointer marblestation.homeip.net.