sábado, 29 de enero de 2011

APACHE EN UBUNTU

APACHE es un servidor web HTTP que podemos instalar en Ubuntu desde el terminal:
$ sudo apt-get install apache2
El sistema nos pedirá instalar otros paquetes adicionales:
apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
Descargará poco más de 3 Mb y se ocuparán 10,5 Mb de espacio en el disco duro. Al terminar, podemos comprobar que el servidor esta configurado para iniciarse con el sistema si escribimos:
$ ls /etc/init.d/apache2
y recibimos como respuesta:
/etc/init.d/apache2
Esto quiere decir que se ha creado el guión de inicio del servidor.
El servidor ya debe estar iniciado al acabar la instalación pero por si falla, podemos iniciar el servicio manualmente, así como detenerlo o reiniciarlo. Basta con usar la orden que necesitemos de entre las siguientes:
$ sudo /etc/init.d/apache2 start
$ sudo /etc/init.d/apache2 stop
$ sudo /etc/init.d/apache2 restart

Ahora al hacer start, debería decirnos que el servicio ya se ha iniciado:
$ sudo /etc/init.d/apache2 start
* Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName
httpd (pid 2523) already running


Se puede comprobar haciendo un listado de los procesos cargados y que se estén ejecutando actualmente con el comando:
$ ps -ef | grep apache
Que por ejemplo puede devolver:
root 2523 1 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2525 2523 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2526 2523 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2527 2523 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
emi 3230 3015 0 13:32 pts/1 00:00:00 grep --color=auto apache

Ahora podemos también verificar que el servidor está funcionando correctamente, basta con acceder a la dirección http://localhost/, que es la dirección local de una máquina (equivale a http://127.0.0.1/).
En el navegador veremos una página de confirmación:

HTTP

Hypertext Transfer Protocol o HTTP (protocolo de transferencia de hipertexto) es el protocolo usado en cada transmisión de lared. El HTTP fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, el más importante de ellos es el RFC 2616 que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador web o un spider) se lo conoce como "user agent" (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de recursos (URL). Los recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a una base de datos, la traducción automática de un documento, etc.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de "sesión", y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.

Primeros Servidores

  • CERN httpd Server
  • NCSA httpd server
  • Compuserve httpd server

Métodos de Petición

HTTP define 8 métodos (algunas veces referido como "verbos") que indica la acción que desea que se efectúe sobre el recurso identificado. Lo que este recurso representa, si los datos pre-existentes o datos que se generan de forma dinámica, depende de la aplicación del servidor. A menudo, el recurso corresponde a un archivo o la salida de un ejecutable que residen en el servidor.
HEAD
Pide una respuesta idéntica a la que correspondería a una petición GET, pero sin el cuerpo de la respuesta. Esto es útil para la recuperación de meta-información escrita en los encabezados de respuesta, sin tener que transportar todo el contenido.
GET
Pide una representación del recurso especificado. Por seguridad no debería ser usado por aplicaciones que causen efectos ya que transmite información a través de la URI agregando parámetros a la URL.
Ejemplo:
GET /images/logo.png HTTP/1.1 obtiene un recurso llamado logo.png
Ejemplo con parámetros:
/index.php?page=main&lang=es
POST
Somete los datos a que sean procesados para el recurso identificado. Los datos se incluirán en el cuerpo de la petición. Esto puede resultar en la creación de un nuevo recurso o de las actualizaciones de los recursos existentes o ambas cosas.
PUT
Sube, carga o realiza un upload de un recurso especificado (archivo), es el camino más eficiente para subir archivos a un servidor, esto es porque en POST utiliza un mensaje multiparte y el mensaje es decodificado por el servidor. En contraste, el método PUT te permite escribir un archivo en una conexión socket establecida con el servidor.
La desventaja del método PUT es que los servidores de hosting compartido no lo tienen habilitado.
Ejemplo:
PUT /path/filename.html HTTP/1.1
DELETE
Borra el recurso especificado.
TRACE
Este método solicita al servidor que envíe de vuelta en un mensaje de respuesta, en la sección del cuerpo de entidad, toda la data que reciba del mensaje de solicitud. Se utiliza con fines de comprobación y diagnostico.
OPTIONS
Devuelve los métodos HTTP que el servidor soporta para un URL especifico.Esto puede ser utilizado para comprobar la funcionalidad de un servidor web mediante peticion en lugar de un recurso especifico
CONNECT

Códigos de respuesta

Son códigos de tres dígitos:
  • 1xx Mensajes
Descripción
100 111 Conexión rechazada
  • 2xx Operación exitosa
Descripción
200 OK
201-203 Información no oficial
204 Sin Contenido
205 Contenido para recargar
206 Contenido parcial
  • 3xx Redireción
Descripción
301 Mudado permanentemente
302 Encontrado
303 Vea otros
304 No modificado
305 Utilice un proxy
307 Redirección temporal
  • 4xx Error por parte del cliente
Descripción
400 Solicitud incorrecta
402 Pago requerido
403 Prohibido
404 No encontrado
409 Conflicto
410 Ya no disponible
412 Falló precondición
  • 5xx Error del servidor
Descripción
500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio nodisponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada

TÚNELES SSH

Ssh nos ofrece entre otras cosas una consola remota segura, ftp seguro, X forwarding y lo que hoy vamos a ver, túneles a través del protocolo ssh. Básicamente hay dos tipos, túnel en modo listen y en modo remote; empezaré por el primero, que es el que más comúnmente suelo usar.

Imaginemos que estamos por ejemplo en un aula de ordenadores en una biblioteca o en la universidad. Queremos conectar a nuestro emule en el puerto 4080 de nuestro ordenador sobremesa, para poder ver como van esas descargas o bien añadir algo que nos han recomendado para bajar, por poner un ejemplo. Pero claro sólo tenemos el router configurado para que funcione con los puertos de emule y el ssh hacia un ordenador cualquiera de nuestra red. Suponemos que el servicio ssh está corriendo en la misma máquina que el emule, que esta máquina se llama en la red molongo y que tiene la ip 192.168.1.110, ssh está en esta máquina en el puerto 22, sin embargo el router redirecciona el puerto 4422 al 22 de esa máquina.
Según esto, si queremos hacer sesión ssh tendríamos que ejecutar el comando ssh -p 4422 usuario@nombre_de_maquina_en_internet así conectaríamos haciendo sesión ssh al puerto 22 del ordenador de sobremesa. Pero realmente lo que queremos es tener acceso al puerto 4080, donde podemos conectar a la interfaz web de emule. Recordemos que no tenemos acceso desde internet a ese puerto, pues no tenemos las reglas de redireccionamiento activadas en el firewall de nuestro router, así que haremos un túnel del puerto 4080 del sobremesa molongo al puerto 8888 del ordenador desde el que estamos accedidendo.
El comando sería: ssh -p 4422 -L 8888:localhost:4080 usuario@nombre_de_maquina_en_internet
Con este comando conseguimos una sesión ssh, pero además el túnel, ahora si abrimos el navegador web y ponemos la dirección http://localhost:8888 veremos lo mismo que si ponemos http://localhost:4080 en molongo.
Ahora veamos cómo se sabe qué es cada opción, -p es para decir qué puerto usamos para la sesión ssh, por defecto es 22, pero en nuestro router hemos abierto el 4422 direccinoado al 22 de molongo. -L es para hacer un túnel en modo listen y se especifica puerto_local:maquina_remota:puerto_remoto, debemos tener en cuenta que puerto_local es el puerto al que queremos llevar el puerto_remoto mediante el túnel y que maquina_remota es el nombre o ip de la máquina visto siempre desde la máquina en la cual está ejecutando el sshd al que estamos conectando. En el ejemplo anterior también funcionaría si pusiéramos molongo o 192.168.10.110 en lugar de localhost.
Si quisiéramos conectar a otra máquina de la red, en lugar de al sobremesa, por ejemplo a un servidor web que tengamos para acceder sólo desde nuestra red local, bastaría con substuir localhost por la ip o el nombre de esa máquina y también el puerto por el que queremos acceder, por ejemplo quedaría -L 8888:servidorweb:80.
Por otro lado tenemos el túnel en modo remoto, que es algo más extraño. Imaginemos que lo que queremos es acceder al servidor web para administrarlo, usando para ello una sesión ssh, este servidor no tiene acceso desde internet, pues está detrás de un firewall y no diponemos de puertos que redireccionen a él. En este caso el comando lo ejecutamos en el servidor web, de manera que lo que hacemos en este caso es decirle que haga un túnel para llevar el puerto 22 local al puerto 5522 de un equipo que sea accesible desde internet. ssh -p 4422 -R 5522:localhost:22 usuario@nombre_de_maquina_en_internet.
La opción -N es para que no ejecute ningún comando remoto, y la opción -f para que pase a segundo plano.

FREENX

NX es una tecnología para manejar conexiones remotas a X Window de forma suficientemente rápida incluso sobre un módem de 56K. Para ello utiliza compresión de datos y mecanismos de caché, que le proporcionan un rendimiento netamente superior al de otras soluciones de este tipo como VNC. También emplea SSH para cifrar la conexión entre servidor y cliente. Además de permitir a los usuarios loguearse en una máquina remota accediendo al escritorio, permite también suspender y recuperar sesiones. NX es un producto de la empresa NoMachine, que dispone de licencia GPL sobre la propia tecnología NX, existiendo múltiples implementaciones, tanto comerciales como gratuitas, y tanto libres como propietarias, de servidores y clientes. Es necesario destacar que la mayoría de la información disponible en la Red sobre NX, tanto en español como en inglés, está en general totalmente desfasada, lo que obliga a una importante labor de rastreo a fin de localizar un repositorio adecuado de los paquetes necesarios en Debian. Por idéntica razón, es de prever que este mismo tutorial pierda vigencia sin tardar, pero ahora mismo permite instalar el servidor FreeNX en una máquina Debian (Lenny) de una forma absolutamente simple. Después, instalaremos el software cliente de NoMachine en una máquina remota con Windows XP SP2 a fin de acceder al escritorio de Debian...
Diferenciaremos por tanto la instalación en el lado servidor y en el lado cliente.

SERVIDOR


1. Instalación

Instalaremos el servidor FreeNX en una máquina corriendo Debian (Lenny), aunque creo poder afirmar que funcionaría exactamente igual en Debian Etch. De hecho los paquetes que utilizaremos están diseñados para Etch, representando este tutorial la primera y única confirmación que yo haya podido encontrar de que también funcionan perfectamente en Lenny.
El punto fundamental radica en añadir la siguiente línea a /etc/apt/sources.list:
deb http://krnl.nl/freenx/ ./
Operación que seguiremos del imprescindible:
# apt-get update
Los repositorios de FreeNX se muestran especialmente volátiles y desactualizados, por lo que es posible que éste tampoco dure demasiado.
La instalación y puesta en marcha de SSH representa el principal requisito previo. Por tanto, si no está instalado, es el momento de escribir:
# apt-get install ssh
Y, por supuesto también:
# apt-get install freenx
A mitad de esta instalación nos saltará la siguiente pantalla:


A los efectos de este tutorial seleccionaremos "NoMachine key", por ser la opción recomendada para facilitar la configuración, aunque para entornos de producción donde la seguridad es importante resulta mucho más recomendable utilizar "Custom Keys" (que nos obliga a copiar las claves a la máquina cliente), o al menos cambiar el puerto de escucha por defecto de SSH e incluso impedir el acceso remoto a root, es decir, las medidas habituales de protección frente a los ataques habituales contra este servicio.

2. Configuración

Una vez completada la instalación, podemos comprobar que el servidor está en efecto funcionando:

# nxserver --status 
 
NX> 100 NXSERVER - Version 1.5.0-60 OS (GPL)
NX> 110 NX Server is running 
NX> 999 Bye

CLIENTE


1. Instalación

Descargamos NX Client for Windows y procedemos a su instalación:
http://www.nomachine.com/download.php



2. Configuración








FUNCIONAMIENTO


Arrancamos NX Client y se nos solicita el nombre de usuario y password que configuramos antes, al crear nuestra sesión "debian":




Ya estamos dentro de Ubuntu, desde nuestra máquina remota con Windows XP, pudiendo trabajar exactamente igual que si estuviéramos sentados ante la máquina.

SERVIDOR SSH EN UBUNTU

Instalación

Vamos a usar OpenSSH por tanto vamos a instalarlo:
sudo apt-get install openssh-server
Ahora procedemos a su configuración.

Comandos que debemos tener en cuenta

Para editar la configuración del servidor SSH debemos hacer en consola:
sudo gedit /etc/ssh/sshd_config
Para arrancar el servidor:
sudo /etc/init.d/ssh start
* Starting OpenBSD Secure Shell server sshd
Para parar el servidor:
sudo /etc/init.d/ssh stop
* Stopping OpenBSD Secure Shell server sshd
Para reiniciar el servidor:
sudo /etc/init.d/ssh restart
* Restarting OpenBSD Secure Shell server sshd

Configuración del servidor

Una vez instalado, vamos a configurar el servidor, hacemos en consola:
sudo gedit /etc/ssh/sshd_config
Y podremos editar sus opciones:
# Package generated configuration file
# See the sshd_config(5) manpage for details
# Ponemos el puerto a escuchar por el SSH, por defecto es el 22. Deberemos abrir un puerto en nuestro router redirigiendo hacia la IP interna de la máquina donde lo tengamos.
Port 1234
# Usaremos el protocolo 2 de SSH, mucho más seguro, por tanto forzamos a que siempre conecten por protocolo 2.
Protocol 2
# HostKeys for protocol version 2. El lugar donde se guardan las keys.
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 2048
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication, importante la parte PermitRootLogin
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile    %h/.ssh/authorized_keys
# Don’t read the user’s ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don’t trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
MaxAuthTries 2

Opciones adicionales de Seguridad

Podemos conectarnos al servidor sin usuario clave, utilizando un certificado RSA que proporcionará mucha más seguridad, pero como siempre que sucede en estos casos…es más incómodo y no siempre vas a llevar encima tu certificado...

Para ver los LOGS de conexión:
cd /var/log/
gedit auth.log

COMANDOS SSH

Comandos SSH Shell frecuentes

Este es un listado de los comandos SSH que se usan con más frecuencia. Los comandos se encuentran organizados por tema e incluyen una descripción breve para comprender como usarlos.

Comandos de navegación



  • pwd muestra el path completo del directorio en el que se encuentra

  • cd cambia de directorio, por ejemplo cd directorio/subdirectorio

  • cd ~ lleva a su directorio home

  • cd - lleva al último directorio en el que estuvo

  • cd .. sube a un directorio superior

  • Listado de archivos


  • ls lista archivos y directorios de un directorio

  • ls -al lista archivos y directorios e información sobre los mismos

  • ls -aR lista archivos e información incluyendo todos los subdirectorios

  • ls -aR | more lista archivos e información incluyendo todos los subdirectorios por pantallas

  • ls -alR > resultado.txt lista archivos e información de subdirectorios y lo guarda en un archivo

  • cat resultado.txt mostraría en pantalla el contenido del archivo

  • ls *.html lista todos los archivos acabados en .html

  • ls -al directorio/subdirectorio/ lista archivos e información de ese subdirectorio

  • Crear, editar o eliminar archivos y directorios


  • pico /home/usuario/public_html/index.html edita el archivo index.html con el editor pico

  • touch /home/usuario/public_html/404.html crea el archivo vacio 404.html en ese directorio

  • rm archivo.txt elimina archivo.txt

  • rm -rf directorio/ ¡CUIDADO! elimina el directorio indicado, los subdirectorios y todos sus archivos

  • mkdir descargas Crea un directorio llamado descargas

  • rmdir descargas Elimina el directorio llamado descargas

  • Compresión y descompresión de archivos


  • zip archivo.zip /home/usuario/public_html/directorio Comprimir directorio

  • unzip archivo.zip Descomprimir archivo.zip

  • unzip -v archivo.zip Ver contenido de archivo.zip

  • Otros comandos SSH



  • cp -a /home/usuario/public_html/origen/* /home/usuario/public_html/destino/

  • Copia todos los archivos de un directorio a otro manteniendo sus respectivos permisos
  • du -sh muestra es espacio total ocupado por el directorio en el que se encuentra

  • du -sh * muestra el espacio ocupado de cada archivo y directorio


  • lynx aemilius.net usar el navegador Lynx para acceder a www.aemilius.net

  • whoami muestra su nombre de usuario

  • PUTTY

    Configurar un acceso y conectar a un servidor SSH con PuTTY

    Para ejecutar PuTTY no es necesario instalarlo, se ejecuta directamente. También se puede crear un acceso directo al escritorio para futuras conexiones.
    1. Ejecutamos PuTTY
    2. En el menú de configuración seleccionamos la categoría Session
    3. Introducimos el nombre del dominio o IP en el campo Host Name y seleccionamos el protocolo SSH
    4. Introducimos un nombre para esta conexión en el campo Saved Sessions
    5. Volvemos al menú de configuración y seleccionamos la categoría SSH
    6. Hay que asegurarse de que está marcada la opción 2 en Preferred SSH protocol version

    7. Seleccionamos nuevamente la categoría Session
    8. Para guardar la configuración pulsamos Save y Open para conectar


    Configuración de acceso SSH

    Iniciar una sesión SSH usando  nombre de usuario y contraseña

    Al iniciar la conexión, se abrirá la ventana del terminal. Introducimos el  nombre de usuario y pulsamos Intro, después, introducimos la contraseña y pulsamos Intro. Si el nombre de usuario y password son correctos podremos iniciar la sesión SSH.
    Iniciar una sesión SSH usando su nombre de usuario y contraseña
    Cuando se realiza una conexión SSH por primera vez, el servidor entrega al cliente de SSH la clave pública del servidor. PuTTY nos alertará de ello y  ofrecerá la opción de aceptar la clave o rechazarla.
    Si aceptamos la clave, se almacenará en el registro y se utilizará para compararla con la que el servidor envíe en cada conexión. Si por algún motivo la clave cambia, PuTTY generará un nuevo aviso en el que se planteará la autenticidad de la clave recibida, ya que alguien podría estar haciéndose pasar por el servidor al que nos queremos conectar.

    Trabajando con PuTTY, funciones principales

    PuTTY es muy sencillo de utilizar, la mayor o menor complejidad a la hora de usarlo depende principalmente de los conocimientos que tengamos con los comandos SSH desde el terminal
    .
    El menú de sistema permite acceder a opciones bastante interesantes mientras se trabaja. Para mostrar el menú de sistema, haremos clic con el botón derecho sobre la barra de titulo de la ventana del terminal.

    Duplicate Session abre una nueva ventana de terminal basada en la conexión actual.
    Saved Sessions permite iniciar una nueva sesión basada en una conexión guardada con anterioridad.  
    Copy All to Clipboard copia en el portapapeles de Windows todo el texto impreso en la ventana del terminal.


    PuTTY permite copiar y pegar texto entre entre la ventana del términal y el portapapeles de Windows.

    Selección del algoritmo de encriptación

    PuTTY soporta una gran variedad de algoritmos de encriptación. Podemos definir el orden seleccionando el tipo de difrado en la sección Encryption options de la categoría SSH y haciendo clic sobre los botones Up y Down para indicar cual de ellos prefiere utilizar si el servidor al que estamos conectandso nos ofrece esa posibilidad.
    Actualmente PuTTY soporta los siguientes algoritmos:
    • AES (Rijndael) - 256, 192, or 128-bit CBC (solo para SSH-2)
    • Blowfish - 128-bit CBC
    • Triple-DES - 168-bit CBC
    • Single-DES - 56-bit CBC
    Para cerrar una sesión, no hay que cerrar PuTTY como cualquier otra aplicación(vamos, pinchando en la X de la esquina..).Mejor escribimos "Exit" y pulsamos intro.

    ALGUNAS COSILLAS CON SSH

    Utilización básica del cliente

    Utilizar el cliente es muy sencillo; nos basta con utilizar la orden:
    $ ssh -l user@<maquina>
    donde <maquina>  peude ser un nombre de host o bien una dirección IP.
    La opción -l nos permite indicar el usuario con el que queremos loguearnos en la máquina remota.
    Una vez conectado será como si estuviéramos físicamente en la máquina ya que tendremos un terminal qeu nos ofrecerá todo lo que pudiera tener el usuario como el que hemos entrado.

    Subir y bajar ficheros

    Para enviar y recibir ficheros usulizando ssh, tenemos varias opciones, como scp (Secure CoPy) o sftp (Secure FTP). Aquí veremos el uso de scp, ya que sftp tiene los mismos comandos que el protocolo ftp normal.

    Sintaxis de scp

    La sintaxis básica es la siguiente:
    scp <origen> <destino>
    donde <origen> y <destino>pueden ser un nombre de fichero, un directorio o un nombre de host (o ip) y nu directorio. Veamos algun ejemplo para ver como especificamos el nombre de host remoto:
    Para subir cosas de un pc a un host remoto la sintaxis seria:
    scp fichero1 <usuario>@<maquina>:<directorio>
    donde <usuario> es el usuario remoto, <maquina> el nombre de host o ip de la maquina remota, y <directorio> el directorio remoto donde queremos subirlo. Por ejemplo:
    $ scp fichero1 nacx@172.16.0.2:/home/nacx/
    Para bajar cosas de un host remoto a un PC la sintaxis seria:
    scp <usuario>@<maquina>:<directorio>/<fichero> <directorio_local>
    Así, por ejemplo, para descargar un fichero remoto al directorio local donde nos encontremos, haríamos algo asi:
    scp nacx@172.16.0.2:/home/nacx/fichero1 ./

    Resumiendo ficheros mediante rsync

    Hay veces en que no podemos terminar de bajar por completo un archivo grande entonces lo que hay que hacer es conectarnos via rsync, con la siguiente sintaxis:
    $ rsync -ve ssh -avz <usuario>@<maquina>:<direcotio>/<fichero> <directorio_local>
    nos conectamos via rsync, ssh a la máquina remota y descargamos el fichero.
    El fichero debe descargarse al directorio donde quedó incompleto para que pueda resumirse; si por alguna razon cancelamos la transferencia, se perdera lo que llevamos resumido. Antes de cerrar el la transferencia tenemos que hacer una copia: siempre que se esta resumiendo aparece como .fichero.bla, donde bla son caracteres raros:
    $ cp .fichero.bla fichero.back
    Una vez copiado, cancelamos el la transferencia; el .fichero.bla desaparecerá instantáneamete y nos quedara:
    fichero fichero.back
    fichero es el que descargamos con ssh pero incompleto, y fichero.back es el fichero incompleto mas los bytes que bajamos mientras resumía, asi que borramos fichero y solo nos quedaremos con fichero.back:
    $ mv fichero.back fichero
    Renombramos el fichero para que se pueda resumir con el mismo nombre que el fichero original.

    SSH EN UBUNTU

    Instalación de OpenSSH

    Algunas distribuciones traen instalado por defecto un cliente SSH, no obstante explicaremos como realizarla para un sistema Ubuntu.
    Instalando a través de terminal
    • Para instalar el cliente: sudo apt-get install openssh-client
    • Para instalar el servidor: sudo apt-get install openssh-server

    Primeros pasos con SSH

    • Para iniciar el servidor SSH: service ssh start
    • Para parar el servidor SSH: service ssh stop
    • Para reiniciar el servidor SSH: service ssh restart

    Conectándonos a un servidor remoto (Linux) desde un cliente (Linux)

    Primero descubramos qué dirección IP tenemos en el servidor. Para ello desde una ventana de terminal escribimos:
    ifconfig
    Nos aseguramos de que el servicio esté ejecutándose:
    service ssh start
    Y ahora podemos dirigirnos a nuestro cliente y establecer una conexión remota al equipo que ejerce de servidor. Basta con escribir la siguiente orden en la terminal:
    ssh usuario_remoto@host_remoto
    Dónde:
    • usuario_remoto – Será el nombre de usuario con el que queremos iniciar sesión. Debes tener en cuenta que si no está registrado en el equipo, no podrás iniciar sesión con él.
    • host_remoto – Es la dirección del equipo que ejerce como servidor. Ahí es donde pondremos la dirección IP que hemos obtenido antes.
    La primera vez que establezcas conexión el sistema nos pedirá confirmación, bastará con decir “yes” y una vez introducida la contraseña correcta para el usuario solicitado, nos encontraremos identificados en el equipo remoto.
    Los comandos, programas y scripts que lancemos tras conectarnos se ejecutarán en la máquina remota, utilizando los recursos de esta (CPU, memoria, disco, etc…).
    Recuerda que podrás hacer todo aquello que se contemple bajo los permisos que posea el usuario con el que hayas iniciado sesión.

    Establezcamos una conexión que nos permita ejecutar aplicaciones gráficas.

    Ahora que hemos visto cómo conectarnos y trabajar desde nuestra ventana de terminal, vamos a ir un poco más allá, y vamos a ejecutar aplicaciones gráficas.
    Un método bastante efectivo consiste en utilizar un túnel SSH para encapsular el protocolo X11, permitiendo transmitir la información de manera segura y sin crear conflictos con los cortafuegos.
    Pero para ello debemos configurar un par de parámetros en el fichero sshd_config:
    X11Forwarding    yes
    AllowTcpForwarding    yes
    Con X11Forwarding especificamos si se permite el reenvío por X11. El valor por defecto es ‘yes’. Desactivarlo en ningún momento ayudará a mejorar la seguridad del servidor.
    Y lo que intentamos conseguir activando dicha directiva es permitir ejecutar aplicaciones gráficas en el servidor remoto. Recordad que X es un sistema de ventanas creado para dotar de interfaz gráfica a los sistemas Unix.
    Por otro lado con AllowTcpForwarding especificamos si se permite el reenvío a través del protocolo TCP. Al igual que pasaba con X11, desactivarlo, en ningún momento proveerá mayor seguridad a nuestro servidor. Su valor por defecto es ‘yes’.
    Una vez hecho esto, ya podemos iniciar una sesión SSH y ejecutar aplicaciones gráficas. Para ello bastará con escribir en nuestra terminal:
    ssh -X -Y usuario_remoto@host_remota
    • -X (X11 forwarding)
    • -Y (X11 trusted forwarding)
    Ahora podremos ejecutar cualquier aplicación que se encuentre instalada en el servidor. Reproduzcamos una película con mplayer por ejemplo:
    mplayer nombre_película
    Recuerda que los recursos se tomarán del equipo donde te encuentres conectado.

    SSH

    SSH

    SSH (Secure SHell) es el nombre de un protocolo y del conjunto de herramientas que lo implementan. Este protocolo sirve para acceder a máquinas a través de una red, de forma similar a como se hacía con telnet o FTP. La diferencia principal es que SSH usa técnicas de cifrado para que ningún atacante pueda descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión. Al igual que telnet, sólo permite conexiones tipo terminal de texto, aunque puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X arrancado.
    Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro de SSH (esto sólo si tenemos acceso como administrador a ambas máquinas).

    Reseña histórica

    La primera versión del protocolo y el programa eran libres y los creó un sueco llamado Tatu Ylönen, pero su licencia fue cambiando y terminó apareciendo la compañía `SSH Communications Security`, que lo ofrecía gratuitamente para uso doméstico y académico, pero exigía el pago a otras empresas.

    En el año 1997 (dos años después de que se creara la primera versión) se propuso como borrador en la IETF.

    A principios de 1999 se empezó a escribir una versión que se convertiría en la implementación libre por excelencia, la de OpenBSD, llamada OpenSSH, creadas ambas por Theo de Raadt

    SERVIDOR DHCP EN UBUNTU

    Instalar un servidor DHCP en Ubuntu

    Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:
    sudo apt-get install dhcp3-server
    Este sencillo paso instala el servidor en nuestro linux.

    Configurando el servidor DHCP

    En el caso de tener dos interfaces de red (NIC) en su servidor Linux se tiene que seleccionar cual se va a utilizar para escuchar las peticiones DHCP.  Para configurar el servicio, editamos el archivo /etc/default/dhcp3-server, y cambiamos INTERFACES=”eth0″  por la tarjeta de red interna.
    Es necesario hacer una copia de seguridad del archivo de configuracion:
    cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.back

    Configurar utilizando el metodo de rango de direcciones (IP pool)

    Editamos la configuracion tecleando:
    sudo vi /etc/dhcp3/dhcpd.conf
    Y en este archivo cambiamos las siguientes secciones
    default-lease-time 600;
    max-lease-time 7200;
    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.9, 192.168.1.10;
    option domain-name “midominio.org”;
    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.200;
    }
    Guardamos y salimos del archivo. El texto anterior configura el servidor DHCP con los siguientes parametros:
    • Asignacion a los clientes direcciones IPs del rango de 192.168.1.10 hasta 192.168.1.200
    • Prestara la direccion IP por un minimo de 600 segundos, y como maximo permitido de 7200 segundos.
    • Determina la mascara de subred a 255.255.255.0
    • Direccion de broadcast de 192.168.1.255
    • Como gateway/pasarela de red/router la direccion 192.168.1.1
    • Y los servidores 192.168.1.9 y 10 como sus servidores DNS

    Configurar utilizando el metodo de direcciones MAC

    Con este metodo se puede reservar algunas o todas las direcciones IP de nuestra red para determinadas maquinas. Como podran ver la configuracion es muy parecida a la anterior, con la salvedad que para reservar la asignacion de una IP a una determinada NIC (network card interface) debemos de utilizar la etiqueta host
    default-lease-time 600;
    max-lease-time 7200;
    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.9, 192.168.1.10;
    option domain-name “midominio.org”;
    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.200;
    }
    host oracle{
    hardware ethernet 00:03:47:31:e1:7f;
    fixed-address 192.168.1.20;
    }
    host printer {
    hardware ethernet 00:03:47:31:e1:b0;
    fixed-address 192.168.1.21;
    }
    Ahora reiniciamos el servidor dhcp ejecutando el siguiente comando:
    sudo /etc/init.d/dhcp3-server restart

    CLIENTE DHCP EN UBUNTU

    Configurar el cliente DHCP en Linux Ubuntu

    Si dean configurar un escritorio o maquina con linux como cliente DHCP seguimos los siguientes pasos:
    • Editamos el archivo de interfaces de red
    sudo vi /etc/network/interfaces
    • Debemos de tener las siguientes lineas, tomando en cuenta que eth0 es un ejemplo
    auto lo eth0
    iface eth0 inet dhcp
    iface lo inet loopback
    • Salvamos y salimos del archivo
    • Reiniciamos los servicios de red de Linux Ubuntu
    sudo /etc/init.d/networking restart
    Para poder conocer las direcciones asignadas a las maquinas clientes
    tail -n 15 /var/lib/dhcp3/dhclient.*.leases

    DHCP

    Dynamic Host Configuration Protocol (DHCP) es un servicio que permite a los ordenadores asignar automáticamente determinados parámetros de configuración de red. Los ordenadores cliente configurados a través de DHCP no tienen control sobre los parámetros que reciben del servidor, resultado en un proceso de instalación transparente.
    Por lo tanto, es lo más parecido a la configuración automática (plug-and-play) en IPv4, que es básico para simplificar las tareas de administración de la red, que tendría que hacerse manualmente. Por esto, es ampliamente utilizado en LAN domésticas, empresas, el proveedor de acceso a Internet, redes WiFi, universidades, etc.
    Los parámetros más comunes que un servidor DHCP para asignar a un cliente son:
    • Dirección IPy máscara
    • DNS
    • Router
    Si algún parámetro cambia en la configuración de la red, como por ejemplo la dirección del servidor DNS, basta con cambiar el parámetro en el servidor, en vez de tener que ir PC a PC modificándolo. Además, el conflicto de direcciones IP dentro de la red se reduce, ya que éstas se asignan dentro de un rango determinado de manera automática.
    El Dynamic Host Configuration Protocol (DHCP) está especificiado en el RFC 2131 . Fue diseñado en el año 1993 y complementa y mejora otros protocolos similares como RARP (Reverse ARP) y BOOTP.

    Funcionamiento


    El funcionamento DHCP se basa en la arquitectura cliente / servidor (como casi todos los servicios de Internet), por lo que debe ser un servidor DHCP (dhcpd) y el cliente DHCP para su funcionamiento. En el caso más simple es un servidor DHCP en la subred a la que el cliente solicite la asignación de dirección IP (y el resto de los parámetros de configuración). Si no existe un servidor DHCP de la subred se necesitará un agente (normalmente un router) que sabe la dirección del servidor DHCP.

    Como puedes ver a continuación, el protocolo funciona en cuatro pasos:

    • DHCP discover
    • DHCP offer
    • DHCP request
    • DHCP ACK
    dhcp
    DHCP puede configurarse para realizar la asignación de parámetros en los equipos de diferentes maneras. Por lo tanto, tres tipos de asignación:
    - Asignación manual. En este modo de funcionamiento se comporta como DHCP BOOTP. Se configuran parámetros manualmente en el servidor para cada equipo para Obtener una dirección IP (la misma), y cada vez que se conecta a la red equipos se le asignan estos parámetros automáticamente.
    - Asignación persistente. En este caso, la asignación es automática y cada vez que el equipo se conecta a la red recibe la misma dirección IP.
    - Dinámica de asignación (alquiler de la dirección). El cliente recibe la dirección IP del servidor durante un tiempo limitado, después de lo cual debe renovar su solicitud o la concesión caduca. Por lo tanto, una dirección pueden ser reutilizados por los distintos equipos en distintos momentos.
    Un caso típico del uso de DHCP es la Internet los proveedores de acceso, o ISP. Por ejemplo, si su ISP ofrece el servicio a 2.000 clientes y estima que nunca habrá más de 200 ordenadores conectados al mismo tiempo, en principio, ser capaces de prestar servicios en una red IP de clase C (254 direcciones) y el uso de DHCP con asignación dinámica.

    SERVIDOR DNS EN 2003 SERVER

    SERVIDOR DNS EN WINDOWS 2003 SERVER

    Para instalar un DNS Server vamos a Inicio > Panel de control > Agregar o quitar programas, una vez ejecutada esta opción aparece una ventana donde seleccionaremos de las opciones que aparecen a la izquierda, agregar o quitar componentes de Windows, buscamos en la ventana que nos aparece la opción servicios de red, la seleccionamos y pulsamos el botón detalles, de la nueva ventana que aparece seleccionamos la opción sistema de nombres de dominios (DNS), la seleccionamos y aceptamos todas las pantallas y pulsamos siguiente. Este proceso de instalación pedirá el CD de Windows debido a que necesita instalar varios componentes.
    Una vez terminado el proceso de instalación podemos acceder al DNS desde Inicio > herramientas administrativas > DNS, hacemos clic en DNS, a partir de ahora hay que configurarlo.
    Configuración del servidor DNS.
    Para configurar el DNS y que nos resuelva las IP en nombres lo primero que deberemos crear es una zona de búsqueda inversa. Para realizar esta acción nos pondremos sobre esta rama de la consola del DNS y con el botón derecho seleccionamos nueva zona, nos aparece un asistente donde asignaremos:
    1. Tipo de zona: Primaria
    2. Id. De red: Será nuestra IP, en mi caso y para los ejemplos 192.168.0.2
    Y las siguientes pantallas las dejamos tal y como las pone el asistente.
    Una vez creada la zona inversa tenemos que crear el nombre de domino que utilizaremos en nuestros webs. Para la realización del artículo he creado dos nombres fictícios “tudominio” y “simpson” que serán los que utilizaré en los ejemplos. Está demás decir, que se puede crear cualquier nombre que deseemos. Para instalar el servidor DNS en Internet, estos nombres deben de ser nombres de dominios reales. En Internet se debe poner los nombre con el .com, ,net, etc … y no sólo el nombre como en la intranet.
    Para crear los nombres de dominio damos clic con el botón derecho sobre zonas de búsqueda directa y seleccionamos nueva zona, aparece un asistente donde asignaremos:
    1. Tipo de zona: Zonal principal. La zona secundaria se utiliza para añadir dominios que ya tienen una zona principal creada en otro servidor DNS, de esta forma cuando creamos una zona secundaria todos los registros que tengamos en la zona principal se replicarán a ésta. Pero no es nuestro caso.
    2. Nombre de zona: Aquí ponemos nuestro nombre de dominio, por ejemplo, “tudominio”.
    Y las siguientes pantallas las dejamos como las pone el asistente.
    Para crear el segundo nombre de domino repetimos los pasos.
    Con ésto ya tenemos dado de alta nuestro nombre de dominio para la intranet ahora queda crear los nombres de los subdominos con los que crearemos la dirección web, es decir, accederemos a nuestro web a través de
    Nombre_Subdominio.Nombre_dominio
    Para crear los subdominos pulsamos sobre la nueva zona creada (barriosesamo) , y vemos que a la derecha nos aparecen los datos de este domino, pulsamos con el botón derecho sobre el nombre de dominio y seleccionamos #Host nuevo (A), ahí pondremos el nombre de subdominio, es el ejemplo “w1″, y la IP que tiene asignada, normalmente la de la maquina y lo añadimos, si ahora abrimos una consola (cmd.exe) y probamos hacer ping a w1.tudominio (nuestro dominio de intranet) que acabamos de crear veremos que nos responde afirmativamente . Si queremos crear más solo tenemos que repetir los pasos. Éstos serán los nombres que utilizaré para acceder a los webs de la siguiente forma:
    http://w1.tudominio
    Ahora queda enlazar estos dominios con el IIS, pasos que veremos a continuación.
    Un paso previo que hay que realizar antes de poner los dominios en el IIS es hacer accesible nuestro DNS a nuestro ordenador, es decir, en las opciones de red tenemos que poner nuestro DNS para que resuelva los nombres. Para realizar esta acción vamos a Inicio > panel de control > conexión de red > conexión de área local y pulsamos el boton propiedades de la ventana que aparece, seleccionamos Protocolo de Internet (TCP/IP) y donde pone Servidor DNS preferido ponemos la IP de nuestro DNS, que suele ser la IP de la máquina, en el ejemplo seria 192.168.0.2

    SERVIDOR DNS EN UBUNTU

    BIND (Berkeley Internet Name Server)

    BIND es el servidor DNS mas comúnmente implementado en Sistemas Operativos Linux, y actualmente el mas usando en Internet. Originalmente BIND nació a principios de los años 80 bajo el patrocinio de DARPA (Agencia de Investigación de Proyectos Avanzados de Defensa) agencia del Departamento de Defensa de los Estados Unidos, el cual fue desarrollado en la Universidad de California, Berkeley por cuatro estudiantes. A mediados de los años 80 su desarrollo paso a manos de los empleados de DEC (Digital Equipment Corporation, compañía que mas tarde seria adquirida por Compaq y esta a su vez comprada por HP) Paul Vixie,empleado de DEC continuó trabajando en BIND luego de desvincularse de DEC. Más adelante ayudaría a fundar la ISC (Internet Systems Consortium), la cual se convirtió en la responsable del mantenimiento de BIND. El desarrollo de BIND 9 fue realizado con el auspicio conjunto del área comercial y militar. La mayoría de las funcionalidades de BIND 9 fueron impulsadas por proveedores de UNIX quienes querían asegurar que BIND se mantuviera competente con la oferta de Microsoft en el sector de soluciones DNS. La versión mas actual de BIND, en particular la versión 9.0 fue reescrita desde cero, esto con el fin de reparar algunas de sus funcionalidades arquitectónicas de la misma (problemas en la programación de Bajo Nivel) que agrega características importantes como: TSIG, notificación DNS, nsupdate, IPv6, rndc flush, vistas, procesamiento en paralelo, y una arquitectura mejorada en cuanto a portabilidad.

    Proceso de instalación del servidor DNS


    Para instalar el servicio DNS Bind9, se puede abrir el gestor de paquetes Synaptic (Sistema > Administración) y buscar Bind9. A continuación, se selecciona la instalación pulsando el botón derecho sobre la línea del paquete Bind9 y luego se pulsa en Aplicar los cambios.
     
    Inicialmente lo haremos desde la consola o terminal:
    sudo apt-get update
    sudo apt-get upgrade
    apt-get install bind9 bind9-doc dnsutils
    El servicio DNS está compuesto por dos programas:

    El dominio named(demonio servidor): servidor de nombres de dominio que contiene la base de datos con información relativa a un segmento de la red y que responde a las peticiones.

    El resolver (cliente): genera las peticiones. Se trata de un conjunto de rutinas que permiten que los clientes accedan a los servidores de nombres para resolver la búsqueda de una dirección IP asociada a un nombre.

    Configuraciones previas que debe tener el servidor DNS

    Configurando el fichero /etc/hosts

    A este fichero deberemos agregar el nombre del equipo que desempeñara la función de servidor DNS asi como la dirección IP asignada a este equipo, al final este fichero deberá verse de una forma similar a esta.
    # Do not remove the following line, or various programs 
    # that require network functionality will fail. 
    127.0.0.1          localhost.localdomain localhost 
    192.168.1.10       dns1.tuDominio.com  dns1 
    ::1             localhost6.localdomain6 localhost6 
    Como ejemplo nosotros asignaremos al servidor DNS la dirección IP 192.168.1.10, usted deberá adecuar esta dirección IP según sea su caso. Configurando el fichero /etc/sysconfig/network A este fichero deberemos agregar igualmente el nombre del equipo que desempeñara la función de servidor DNS, al final este fichero deberá verse de una forma similar a esta. NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=dns1.tuDominio.com

    Configurando el fichero /etc/sysconfig/network-scripts/ifcfg-eth(N)

    A este fichero deberemos agregar igualmente el nombre del equipo que desempeñara la función de servidor DNS, al final este fichero deberá verse de una forma similar a esta. NOTA: La letra (N) indica el numero de la tarjeta de red sobre la cual escucha el DNS
    # nVidia Corporation MCP61 Ethernet 
    DEVICE=eth0 
    BOOTPROTO=dhcp 
    HWADDR=00:E0:4D:3F:C3:39 
    ONBOOT=yes 
    DHCP_HOSTNAME=dns1.tuDominio.com

    Ficheros de configuración del servidor DNS

    La configuración del servidor DNS dependerá en gran medida de los siguientes ficheros.
    /var/named/chroot/etc
    En esta ruta se deberá crear el fichero
    named.conf
    /var/named/chroot/var/named
    En esta ruta se crearan los ficheros de zona que serán invocados por named.conf

    Creación de los ficheros de zona

    Procederemos con la creación de nuestras zonas de dominio, para ello teclearemos en terminal lo siguiente:
    [BASH]# touch /var/named/chroot/var/named/tuDominio.com.zone
    [BASH]# touch /var/named/chroot/var/named/1.168.192.in-addr-arpa.zone
    Lo que hicimos fue crear dos ficheros vacíos a los cuales nombramos
    tuDominio.com.zone
    y
    1.168.192.in-addr-arpa.zone
    El siguiente paso ahora sera añadir las instrucciones para que puedan ser identificados como ficheros de zona y que a su vez puedan ser invocados por “named.conf”.
    Editando el fichero “tuDominio.com.zone”
    El siguiente paso sera editar el fichero “tuDominio.com.zone” al cual deberemos añadir el siguiente contenido.
    [BASH]# vi /var/named/chroot/var/named/tuDominio.com.zone
    ----------------------------------------------------------------------
    $TTL    86400 
    @       IN      SOA     dns1.tuDominio.com.com. admin.tuDominio.com. ( 
                    2008061001; Numero de Serie 
                    28800; Tiempo de Refresco 
                    7200; Tiempo de Reintentos 
                    604800; Expiracion 
                    86400; Tiempo Total de Vida 
                    ) 
    @       IN      NS      dns1
    @       IN      MX      10      correo 
    @       IN      A       192.168.1.10 
    dns1    IN      A       192.168.1.10
    correo  IN      A       192.168.1.11
    Los parámetros mas importantes del fichero anterior son descritos en la siguiente tabla:

    dns1La palabra dns1 se refiere al nombre del equipo que fungirá como servidor DNS, es este caso hacemos el supuesto que nuestro equipo tiene asignada la dirección IP 192.168.1.10
    adminEl nombre admin corresponde al usuario que administrara el servidor DNS.
    tuDominio.comÉste es nuestro dominio referencial con el que estamos trabajando,otros ejemplos de dominio son:
    * linuxparatodos.net
    * gmail.com
    PUNTO AL FINALRecuerde no olvidar poner el punto al final de las sentencias:
    dns1.tuDominio.com. <----------
    root.tuDominio.com. <----------
    correoEstamos haciendo el supuesto que ademas de un DNS contamos con un servidor de correo electrónico al cual hemos asignado la dirección Ip 192.168.1.11
    NS (Name Server)Asigna Nombre al DNS
    MX (Mail Exchanger)Registro de Mail Exchange, el cual indica a dónde debe ser dirigido el correo
    A (Address)Registro de dirección que especifica una dirección IP que se debe asignar a un nombre
    SOA (Start of Authority)Registro de recursos que declara información importante de autoridad relacionada con espacios de nombres al servidor de nombres

    Editando el fichero “1.168.192.in-addr.arpa.zone” A este fichero deberemos añadir el siguiente contenido.
    [BASH]# vi /var/named/chroot/var/named/ 1.168.192.in-addr.arpa.zone
    ------------------------------------------------------------------------
    $TTL    86400 
    @       IN      SOA     dns1.tuDominio.com. root.tuDominio.com. ( 
                    2008061002; Numero de Serie 
                    28800; Tiempo de Refresco 
                    7200; Tiempo de Reintentos 
                    604800; Expiracion 
                    86400; Tiempo Total de Vida 
                    ) 
    @       IN      NS      dns1.tuDominio.com. 
    10      IN      PTR     dns1.tuDominio.com. 
    El numero 10 hace referencia al ultimo octeto de la dirección IP asignada a nuestro DNS, nos referimos a la dirección IP 192.168.1.10. Por ejemplo si la dirección IP del servidor DNS fuera la 254.168.1.25, el numero que debiera ir colocado en la parte inferior de su izquierda debiera ser el numero [25]. Ejemplo:
    25      IN      PTR     dns1.tuDominio.com. 

    Creación y configuración del fichero “named.conf”

    Abra una terminal y genere el fichero “named.conf” dentro de la ruta “/var/named/chroot/etc/”
    [BASH]# touch /var/named/chroot/etc/named.conf
    Una vez creado asegúrese de agregarle los siguientes propietarios
    [BASH]# chown root:named named.conf
    Al terminar solo deberá añadir al fichero el siguiente contenido
    [BASH]# vi named.conf
    ----------------------------------------------------------------------
    options { 
     directory "/var/named/"; 
     dump-file "/var/named/data/cache_dump.db"; 
     statistics-file "/var/named/data/named_stats.txt"; 
     allow-recursion { 
      127.0.0.1; 
      192.168.1.0/24; 
     }; 
     forwarders { 
      200.33.146.209; 
      200.33.146.217; 
     }; 
     forward first; 
    }; 
    zone "." { 
     type hint; 
     file "named.ca"; 
    }; 
    zone "localhost" { 
     type master; 
     file "localhost.zone"; 
     allow-update { none; }; 
    }; 
    zone "tuDominio.com" { 
     type master; 
     file "tuDominio.com.zone"; 
     allow-update { none; }; 
    }; 
    zone "1.168.192.in-addr.arpa" { 
     type master; 
     file "1.1.192.in-addr.arpa.zone"; 
     allow-update { none; }; 
    }; 
    Los parámetros mas importantes del fichero anterior son descritos en la siguiente tabla
    zoneDefine las características de una zona, tal como la ubicación de su archivo de configuración y opciones especificas de la zona.
    "tuDominio.com"Aquí debe ir el nombre de nuestro dominio
    file "tuDominio.com.zone";Contiene los ficheros de configuración de tus zonas de tu dominio.
    allow-update{ none; }; Especifica los host que están autorizados para actualizar dinamicamente la información en sus zonas. Por defecto, no se autoriza la actualización dinámica de la información. Esto se logra añadiendo la palabra none.
    "1.168.192.in-addr.arpa"IP de resolución inversa. En este caso estamos usando nuestra IP referencial 192.168.1.10
    type master;Designa el servidor de nombres actual como el servidor autoritario para esa zona
    file "1.168.192.in-addr.arpa.zone";Contiene los ficheros de configuración de tus zonas de tu dominio.

    Iniciar , detener o reiniciar el servidor DNS

    Para iniciar el servidor FTP por primera vez solo deberá teclear en terminal el siguiente comando:
    [root@ localhost ~]# /etc/init.d/named start
    Igualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra el servidor DNS. Estas opciones pueden ser consultadas en la siguiente tabla:
    startInicia el servicio
    stopDetiene el servicio
    restartReinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta
    reloadRecarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuración del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podría entenderse que hace el cambio en caliente.
    condrestartReinicio Condicional.- Solamente se inicia si el servicio se encuentra ejecutándose.
    statusDa a conocer el estado en el que se encuentra el servicio
    Como alternativa también podemos ocupar el siguiente comando para iniciar el servidor FTP
    [root@ localhost ~]# service named start
    Y de igual manera podemos usar las opciones antes descritas en la tabla anterior. Recuerde que estos comandos se ejecutan como root. Para verificar que bind esta cargando las zonas, deberemos ejecutar el siguiente comando
    [BASH]#tail -80 /var/log/messages | grep named