miércoles, 13 de junio de 2012

Montando nuestro propio servidor (I)


-->
Buenas a todos.

En un aula de informática que estoy montando en mis ratos libres en una asociación a la que pertenezco, he montado también un servidor para realizar cursos de creación de páginas web y como servidor de datos. Esto me ha llevado a una reflexión:

Hoy en día la vida transcurre en la red. Tenemos nuestras fotos en Picasa, nuestros archivos en Dropbox, cuentas de correo repartidas por varios servidores, blogs como éste en Blogger, etc... Protegemos todos nuestros archivos con contraseñas más o menos elaboradas (todavía hay alguno que tiene password ó 12345 de contraseña), y, en el caso de los archivos en la nube, si somos precavidos, encriptamos previamente los datos antes de subirlos; claro está, que depende de lo que subamos. No me imagino a nadie encriptando su currículum , por ejemplo. 

-->
Pero, ¿y si estos servicios son utilizados de manera profesional? Yo tengo contraseñas de administración de dominios, configuraciones de redes privadas, datos de vpn's, plantillas de routers,... y así un largo etcétera de datos sensibles de mis clientes. ¿Me fío de la seguridad de Dropbox, Hotmail, Gmail, Google, …? Y si me quedo sin espacio... ¿que borro?

Tic, tac, tic, tac...... gran dilema......

Bueno, pues una solución es olvidarnos de todos estos pelmazos, y montarnos nuestro propio servidor, en el que podemos ir incorporando poco a poco los servicios que necesitemos. Como esto va a ser más largo de explicar que traducir al mandarín las obras de Fiódor Dostoyevski, es mi intención ir escribiendo este manual en varias entradas. Ya veremos sobre la marcha lo que tardo. Que yo tengo familia, eh?

Está claro que el primer paso, es el hardware necesario. Lo bueno que tiene ser técnico, es que acumulas una cantidad de material obsoleto inmenso en tu habitación de trabajo (basura lo llama mi mujer.... qué inculta).
Así, dispongo de material para montar el servidor deseado, que, como no va a servir más que de experimento, pues no necesita grandes requerimientos hardware. En concreto me voy a decantar por un bonito Dell Gx280 SFF, que el pobrecito lleva más formateos encima que flores hay en el campo. Es un buen aparato, con un micro PIV a 2,4 Ghz, 2 GB de Ram y HD de 500 GB. En él ya ha estado instalado durante años mi antiguo servidor W2K3, e iba como las balas. Ni te cuento cómo va a ir con nuestro Linux del alma en este chiquitín....


-->
Para los amantes del gasto: tiene una potencia de 160w. Si estuviera a pleno rendimiento todo el día, los 365 días de año (por supuesto se quemaría), y al precio que está el Kw/h, tendría de coste máximo unos 18€ al mes. Ya depende de la economía de cada uno.....
Bueno, ahora toca decidir qué distro utilizamos. Lo más sencillo sería decantarnos por la versión para server de Ubuntu, tiene todo el software incluido en la ISO, y hay varios tutos de su instalación por google. Pero somos linuxeros y debianitas, ¿no?. Eso implica un cierto nivel de masoquismo, así que me he decidido por instalar Debian 6.0 Squeeze, e ir instalando la paquetería necesaria.
En la webde Debian existen varias imágenes de instalación, desde un CD de 32 Mb hasta un DVD con varios Gb. Voy a hacer una instalación mínima y después instalar desde Internet los paquetes de software que sean necesarios. Los archivos de instalación están aquí: 

http://cdimage.debian.org/cdimage/release/current/i386/iso-cd/debian-6.0.4-i386-netinst.iso
ó

-->
Pero no todo consiste en bajar el software y liarse a instalar; un proyecto de esta envergadura requiere una planificación precisa y completa. Empezando por el lugar. No seríamos los primeros ni los últimos a los que nuestras parejas nos plantean: el ordenador o yo. Por mucho que a ti te parezca bien, y tengas un sueño profundo, no puedes colocar el servidor debajo de tu cama. Motivo: los ventiladores hacen ruido, y cuando algún proceso se pone en marcha, el micro se calienta y los ventiladores giran más rápido y hacen más ruido.

Ya sé que nuestro servidor es chiquito, pero por poneros un ejemplo, os diré que hace unos meses asistí a una avería de una oficina, un servidor IBM, uno de verdad. Los ventiladores de este modelo en concreto (tiene siete), hacen un ruido del demonio. Giran controladamente en función a la temperatura, excepto en el arranque o cuando detectan que uno de ellos falla. En ese momento los otros seis entran en funcionamiento al 100 x 100..., por si las moscas, digo yo..... Os puedo decir que la oficina en cuestión tiene una denuncia de la comunidad en que está situada, ya que durante una fiesta local estuvieron los ventiladores girando a toda pastilla desde el sábado por la tarde hasta el martes por la tarde que llegué yo. El ruido se oía 2 pisos más abajo....

Otra cosa a tener en cuenta es la estructura de la red que vamos a montar. En el caso que nos ocupa, una vez terminado, el servidor va a dar servicio de almacenamiento en red local y remota, servidor de dns, servidor web y de correo, e incluso como filtro de internet para nuestros hijos. En una instalación óptima, los servidores de servicios externos estarían en una ubicación llamada DMZ (demilitarized zone ó zona desmilitarizada) separados de la red local interna y sus servidores mediante firewalls. Como no somos la NASA ni el FBI, en nuestro caso, tanto los servicios externos como los internos estarán en el mismo servidor. Como yo dispongo de un router Cisco para el acceso a Internet, puedo crear la susodicha DMZ con el propio router (pregunta de examen de la certificación CCNA). Pero eso es otra historia y será contada en otra ocasión. También podemos crear una con el propio servidor, que aunque no es segura al 100 x 100, nos bastará para nuestros propósitos.

-->
Para los servicios externos, necesitamos tener localizado a nuestro servidor en Internet. Como todos sabéis ya a estas alturas, nos comunicamos en red gracias a las direcciones IP. A muy grandes rasgos, debemos distinguir la IP pública de la privada. La IP privada es la que tenemos configurada en el router para nuestros equipos: 192.168.x.1 para el router, 192.168.x.2 para el portátil, 192.168.x.3 para el ordenador del niño... y así sucesivamente. Este es el rango más extendido en redes locales, aunque no el único.

Por otro lado, la IP pública es la dirección que nuestro proveedor de Internet le asigna a nuestro router, para comunicarse en la web. En España, habitualmente es dinámica, lo que quiere decir que cada vez que reiniciamos nuestro router ó nuestro proveedor lo considera oportuno, éste adquiere una dirección IP nueva. Esto es un problema para localizar nuestro servidor en la web, ya que si reiniciamos el router, o nuestro proveedor nos cambia la IP, ya no podremos conectarnos a él desde la playa, por ejemplo. Tenemos dos opciones para solucionar esto: la cara y la barata. La cara es contratar IP estática........ En mi caso es lo que tengo, por motivos laborales, pero me lo paga mi empresa, eh?.
Así es sencillo, en cualquier explorador escribimos : http://DIR.IP.NUESTRO.ROUTER/SERVER, y accederíamos a nuestros archivos.

La otra forma sería utilizar un servicio DDNS, que permitirá la asignación de un nombre de dominio de Internet a un ordenador con dirección IP dinámica. Esa será la opción que utilizaremos y lo veremos más adelante. Ahora vamos a ir instalando el software y montando nuestro servidor.

Quemamos la ISO que hemos bajado previamente y arrancamos con ella:


-->
El día que Debian cambie su pantalla de arranque y no parezca que lo ha dibujado un niño......

Yo voy a decantarme por una instalación por consola. Realmente no hay diferencia, pero dado que la gráfica de mi equipo está integrada en placa base, y le “roba” hasta 256 mb al sistema y ciclos de reloj al procesador, pues la voy a utilizar lo menos posible.

Seleccionamos idioma:

  
-->
Esto es una buena controversia. De mis experiencias con el lado oscuro, tomé la decisión de instalar siempre el sistema en inglés, debido a cuestiones de compatibilidad con las aplicaciones que se van a instalar después (aún recuerdo cómo sudaba tinta con los paquetes de oracle en inglés sobre las ventanitas en español), pero en Linux todavía no se me ha dado el caso. Como todo esto es un experimento, y no vamos a vender nuestro servicio a nadie, me voy a decantar por la lengua de Cervantes, y que salga el sol por Antequera..... Ya habrá tiempo de reinstalar si surgen problemas....

A continuación nos pedirá la zona geográfica del servidor. Como hemos seleccionado Español, nos saldrá una lista de países donde se habla nuestra lengua. Seleccionamos el país, y a continuación el mapa de teclado, también en español.


-->

Cargará una serie de paquetes, y pasaremos a configurar la red local. La dirección IP se configurará automáticamente si tenemos activado el DHCP en nuestro router. De no ser así, nos pedirá que introduzcamos la dirección IP manual, y pasamos al nombre.


-->
Por supuesto, como homenaje a Frannoe, escogeré cosillas como nombre de mi server


-->
y cosillas.ftp21.net, como nombre de dominio de nuestro server. ¿Que por qué? Porque yo lo valgo. “Nun corrais fios, ya vamos llegar”. Fiaros de mi. Pero eso sí, no lo repitáis. Ese es el nombre de dominio de MI servidor. El que quiera uno propio, pues tendrá que esperar al próximo tema.... Lógicamente, ya que todavía no hemos “publicado” a nuestro server en internet, si algún suicida quiere ponerle a su servidor microsoft.com, pues allá él. Lo más seguro es que se le quede colgado..... Eso si, tendrá que instalar de nuevo cuando quiera sacarlo al exterior, porque estoy seguro que el amigo Gates no va dejar que le robéis su dominio.

-->
A continuación, se crea la cuenta del usuario root y tecleamos su contraseña. Se ruega encarecidamente no poner de contraseña Password, 12345678, etc... Curraros un poquito la seguridad. Algo del tipo …. #9Fj6+?Dr&@7hG. Sí, ya sé que es difícil de recordar, pero también es más difícil de crackear....


-->
seguidamente, nuestro usuario de trabajo. Nombre de usuario completo, nombre del usuario o de login y su password.

-->

Bien. El siguiente paso será sincronizar la hora de nuestro servidor con uno de los servidores de hora de internet. Nos mostrará una lista de los servidores disponibles en relación a la zona geográfica que escogimos anteriomente.

-->

...y sin prisa pero sin pausa pasamos a formatear el disco.
-->

Seleccionamos particionado guiado – todo el disco. Nos muestra una lista de los discos que reconoce en nuestra máquina. Seleccionamos el que deseamos utilizar, y nos pregunta si queremos todos los ficheros en una sola partición, o si vamos a separar el /home. A nivel de funcionamiento, da igual. Ya Frannoe en otros post ha explicado las ventajas de separar el /home en otra partición, y no seré yo el que lo discuta. A gusto de cada uno. En mi caso, voy a llevarle la contraria a Frannoe y lo voy a poner todo en la misma partición, sólo por demostrar que no pasa nada, aunque tiene razón nuestro anfitrión.....


-->
Formateará el disco y creará las particiones. Y continuamos..... Se baja los paquetes necesarios y procede a instalarlos

Una vez instalados todos los paquetes y el kernel, nos solicitará configurar el gestor de paquetes. Seleccionamos el país desde el que deseamos descargar los paquetes y a continuación el servidor de una lista que nos mostrará. Tampoco voy a ser yo el que os diga desde dónde bajaros los paquetes. Ya sois mayorcitos para saber qué país y qué servidor escoger. Yo escogí España y ftp.es.debian.org, pero como he dicho, cada cual que escoja el que crea conveniente.
  
-->

Llegados a esta pantalla, desmarcamos todas las opciones. Iremos instalando paso a paso en posteriores entradas. Y ya estamos finalizando,
  
-->
Por supuesto, instalamos el grub. ¿De que otra manera arrancaríamos nuestro server?
-->

Pues si él lo dice.... reiniciamos a ver qué pasa....



-->
Pues tenía razón. Ya tenemos nuestro bonito server corriendo.

Bueno, pues hasta aquí la parte fácil de todo el asunto. Próximamente, empezaremos a configurar de verdad nuestro server y a instalar paqueterías varias.... Nos vamos a divertir seguro....

Saludos a todos.

17 comentarios:

  1. Muy interesante, espero impaciente la continuación!

    ResponderEliminar
  2. Interesante articulo me gustaria darle seguimiento hasta el final de la instalacion d los servicios, dime si tienes una cuenta en twitter que te pueda seguir.

    Gracias, por el aporte.

    @faustodd

    ResponderEliminar
    Respuestas
    1. Buenas.

      Lo siento, no utilizo el twitter. Puedes seguirlo aqui....

      Eliminar
  3. excelente articulo saludos desde venezuela

    ResponderEliminar
  4. Huy, Huy, huy.... Casualidades de la vida...
    HAgo completamente mía tu reflexión, y no sabes lo que te agradezco este post.
    Precisamente me he comprado por 100 € un PowerEdge 750 (viejecito, pero no tanto) para montar mi propio servidor de datos. Mis razones son:
    - cuando esté de viaje, poder acceder a los proyectos en curso teniendo la estación de trabajo apagada
    - Controlar la seguridad de mis ficheros
    - Desconfío de la "nube", sus adminstradores y su rendimiento carga/descarga.
    Ayer instalé Ubuntu Server, pero yo soy muy inexperto en este tema. De hecho, lo de montar el servidor me lo he planmteado como un "proyecto de aprendizaje"
    Así pues voy a seguir tu proyecto y lo voy a hacer mío (te molestaré...bastante).
    De momento, como el servidor solo tiene el S.O., pues me lo voy a cepillar y empezar de nuevo con Debian tal cual lo planteas.
    Pues aquí estoy, dispuesto a seguir este camino contigo!!
    Un saludo y muchas gracias por tu tiempo

    ResponderEliminar
    Respuestas
    1. Hola Eduardo.

      No te preocupes, que no molestas. Eso si, no desesperes, habrá dias (como hoy) que te conteste rápido, y semanas en las que no pueda ni encender mi portatil....

      Eliminar
    2. Bueno yo estoy en las mismas, les voy a acompañar, no tengo muchos conocimientos pero he leido algunas cosas, por ej: la instalacion de debian te puedo ayudar en eso y no se cuales seran los servicios que van a poner pero me interesan.

      Saludos desde Rep. Dominicana

      Eliminar
  5. Muchas gracias José por este gran y estupendo trabajo que tienes el bien de compartir con todos nosotros. Gracias también por hacerlo fácil y ameno, atendible para cualquiera siguiendo la línea del blog.
    Y como ya te dije en privado, Mil gracias por decidir hacerlo en nuestro modesto blog.
    ¡¡¡Muchas Gracias!!!

    ResponderEliminar
    Respuestas
    1. Me abrumas con tus agradecimientos.....

      Gracias a tí, de no ser por tu blog todavía tendría Ubuntu instalado. ¡Ojo! que no es una crítica a Ubuntu, eh?

      Eliminar
  6. Lo intentare en una maquina virtual :)

    ResponderEliminar
  7. Realmente muy buen articulo. Que has planeado para que se configure en orden de prioridades en el servidor?
    Otra pregunta, se configurara una "PersonalCloud"?

    ResponderEliminar
  8. Muy buenas tardes amigo José M.
    Efectivamente, este es un tema que me interesa y bastante, pues llevo semanas intentando montar un servidor casero.
    He probado con ubuntu server, con debian, con LMDE, y yo que sé con cuantos más...
    El caso es que desde mi propia red me conecto sin problemas con la IP privada pero cuando trato de conectarme desde fuera (que es lo interesante) me es imposible. Aunque no tengo IP estática, sí tengo instalado el "noip".
    Bueno he acabado de instalar debian tal y como explicas en el tutorial, ahora espero impaciente la siguiente entrada.

    Saludos y gracias.

    ResponderEliminar
  9. Gracias! Creo que vamos a aprender muchísimo. Un saludo.

    ResponderEliminar
  10. Uhhh que bueno lo que estas empezando (y seguro terminando como siempre) jajajaja. Voy a poner tu tweeter así te sigo y voy enterándome de las continuaciones del cursillo ;-). Te comento que en casa tengo 2 PC corriendo ubuntu, 2 netbook corriendo xpsp3 y 1 notebook corriendo 7sp1. Y en el negocio tenemos 3pc con xpsp3 2 imac 1 powerpc y 1 ibook y en el otro local 1pc wxpsp3 1 imac 2g3 y otra power pc.

    Que lindo seria tener todo conectado ;-)

    Saludos desde Argentina

    ResponderEliminar
  11. Fascinante este tema, me sumo al resto de los amigos. Espero que tengas la misma paciencia que Frannoe jajaja. Bueno, saludos José M. estaré al pendiente también de este proyecto.

    ResponderEliminar
  12. Yo tengo instalado un servidor con ubuntu, tengo varios problemas con el router, no-ip y wordpress. Aunque se puede acceder en estos momentos a él, esperaré a que continúes con el post que seguramente me aclarará algo de mis dudas. Como tengo varios equipos disponibles para hacer pruebas, utilizaré otro para Debian. Yo ya uso Debian en un Netbook y Linux Mint Debian en el Toshiba desde el que escribo esto. Así que algo familiarizado estoy. Saludos.

    ResponderEliminar
  13. Me encanta tu estilo de escribir. Se nota que disfrutas esta labor y gracias por iluminarnos en este tema.

    ResponderEliminar