Unos apuntes rápidos sobre los backups y su importancia en la administración de sistemas y sobre el comando rsync, cuyas múltiples aplicaciones incluyen usarlo como herramienta para hacer copias de seguridad
Entradas con la etiqueta administración de sistemas

Como me ha costado mucho encontrar una buena solución al reto de manejar remotamente una máquina Ubuntu 10.10 sin monitor, ni teclado, ni ratón, he decidido escribir este tutorial rápido para allanar un poco el camino a cualquiera que tenga esta necesidad.
Seguiendo con las explicaciones de mis compañeros sobre el Proyecto E2C2010, toca el turno de la Monitorización del Hardware y de las Estadísticas Web, que es lo que les explicaré a continuación.
La monitorización nos servirá para comprobar el hardware de un servidor, es decir: el espacio que queda en las particiones, consumo de memoria, CPU…Esto es importante ya que en todo momento podremos ir administrando (según nos convenga) el hardware del servidor que vamos a crear.
Aparte de esto también controlaremos la monitorización de la información de nuestros sitios web, es decir controlaremos el tráfico que tendrán los sitios web alojados en el servidor.
¿Empezamos?
Seguimos con nuestro proyecto de la escuela EDIB y ahora llega el turno de los dominios y subdominios que tendrá nuestro servidor. En este artículo explicaremos como configurar el servidor para tener varios subdominios, es decir, para que el servidor almacene diferentes web. Esperemos que sirva de ayuda a todos los lectores!
Este artículo está dedicado a la instalación de OpenSSH, el servidor LAMP y PhpMyAdmin, así como la configuración de algunos paquetes adicionales y la configuración de algunas funcionalidades interesantes.
Comenzaremos con una breve descripción de los términos para que nos quede claro lo que vamos a instalar y para que sirve cada paquete.
En primer lugar, SSH son las siglas de Secure SHell, que es el protocolo que nos permite acceder a máquinas remotas a través de la red. Así pues, OpenSSH es el conjunto de aplicaciones que nos permitirán realizar dichas conexiones, además de poder realizar transferencias de datos de forma segura. De esta manera, ademas de poder realizar varias conexiones simultáneas para poder trabajar todos juntos en el servidor, tenemos la opcion de dejar el servidor sin monitor, ya que se podrá administrar remotamente con cualquier equipo.
LAMP son las siglas de:
Linux: el Sistema Operativo con el que vamos a trabajar
Apache: el Servidor Web que instalaremos en nuestro equipo
MySQL: el gestor de Bases de Datos que nos permitiran guardar información en tablas
PHP/Perl/Python: el lenguaje de programación que nos permitirá programar y realizar consultas SQL a la base de datos.
La combinación de estas tecnologías nos permite definir la infraestructura de un servidor web.
PhpMyAdmin es la herramienta que nos permitirá administrar MySQL desde la web. Asi podremos crear y eliminar Bases de Datos; crear, eliminar y alterar tablas; borrar, editar y añadir campos; ejecutar sentencias SQL; administrar claves de campos; administrar privilegios; y exportar datos en varios formularios.
Así pues, vamos a comenzar con la instalación y configuración de OpenSSH en nuestro servidor Ubuntu.
Para instalar este paquete de aplicaciones, tenemos varias opciones disponibles:
www.openssh.org para descargar el paquete e instalarlo
Utilizar tasksel para escoger el paquete que nos interesa (SSH)
Utilizar el comando aptitude del terminal
En esta ocasión, nos parece interesante utilizar el tasksel, que ofrece un entorno gráfico simple pero práctico. Así pues, nos vamos al terminal de linux e introducimos el siguiente comando:
~sudo tasksel /* escribimos sudo al principio del comando para acceder como administrador*/
~inroducimos el password del administrador
A continuación, nos aparece la ventana tasksel desde la que podemos seleccionar los paquetes que queremos instalar en nuestro computador. En este momento, nos interesa el OpenSSH server, así que lo seleccionamos con la tecla ‘espacio’, y con el tabulador nos situamos en el botón aceptar y pulsamos ‘enter’.
Como vereis, en esta fotografía están seleccionadas varias opciones. Podemos seleccionar los paquetes que nos interesen y se instalarán uno tras otro.
La instalación de OpenSSH no conlleva mucha interacción con el sistema.
Antes de continuar con la instalación del siguiente paquete, cambiaremos el puerto que habitualmente utiliza el SSH, que es el puerto 22, por otro a nuestra libre elección, ya que este es un servidor experimental y lo utilizaremos un grupo reducido de personas, y además nos da un pequeño plus de seguridad que se conoce como “Seguridad por Oscuridad”, que consiste en ocultar al resto del mundo la vía de entrada a nuestra máquina. Este paso no es obligatorio, sino que se puede realizar en función de la “visibilidad” que queremos que tenga nuestro servidor con respecto al mundo exterior. Cabe destacar que no es una medida infalible, pues existen programas que rastrean puertos abiertos.
Cambiar el puerto en el que opera SSH es un paso sencillo. Sólo debemos ir al terminal e introducir el siguiente comando para editar el fichero sshd_config.
~ sudo vim /etc/ssh/sshd_config
El fichero contiene la configuración del SSH de nuestra máquina, y la opción que nos interesa es la primera, en la que aparece el puerto en el que va a operar. Una vez editado, la linea que nos interesa debe quedar con este aspecto:
# What ports, IPs and protocols we listen for Port 6666
Ahora ya tenemos instalado el paquete de aplicaciones OpenSSH y ya podemos realizar conexiones remotas a nuestra máquina. Para esto, nos iremos al terminal de Linux y escribiremos el siguiente comando:
~ssh -p 6666 master@190.160.34.34 desde la red de la escuela
~ssh -p 6666 EMAIL OCULTO desde una red externa
Como hemos explicado al inicio del artículo, podemos realizar varias conexiones simultáneas al servidor, lo que nos vendrá muy bien para trabajar en grupo.
Como extra opcional, vamos ver de que manera podemos automatizar el login para que no nos pida la contraseña cada vez que nos conectamos. Esto puede ser interesante si tenemos que hacer varias conexiones en una misma sesion, o si queremos que algun script se conecte remotamente al servidor para, por ejemplo, hacer una copia de seguridad u otra tarea de administración, de esta manera el servidor no pediria la contraseña y la tarea quedaria automatizada.
Primero, debemos crear una clave publica y una privada en el cliente (nuestra máquina). Para ello introduciremos el siguiente comando en nuestro terminal
ssh-keygen -t rsa
Nos preguntará el fichero en el que queremos guardar la clave. Lo dejaremos por defecto apretando enter.
Nos pedirá un passpharse, y lo dejaremos en blanco. Nos pedirá que la confirmemos y la dejamos en blanco.
Ahora la clave esta creada, y debemos copiar el fichero id_rsa.pub del cliente al servidor en la carpeta personal del usuario. Para ello utilizaremos el siguiente comando:
scp -P 6666 .ssh/id_rsa.pub EMAIL OCULTO:/home/usuario
Ahora nos conectaremos al servidor con nuestro usuario y crearemos un directorio en nuestra carpeta personal:
sudo mkdir .ssh
En el servidor, ejecutamos el siguiente comando:
cat id_rsa.pub >> .ssh/authorized_keys
Dentro del fichero authorized_keys acumularia todas las claves publicas de los clientes autorizados.
Ahora hacemos exit para salir del servidor y volvemos a conectarnos con nuestro usuario pero sin necesidad de escribir la contraseña.
Ahora instalaremos LAMP en nuestro servidor, y ya que hemos instalado OpenSSH, nos conectaremos remotamente para realizar estas acciones.
Así pues, nos vamos al terminal de Linux para iniciar la sesión remota via SSH
Una vez conectados, vamos a instalar el LAMP de la misma forma que hemos instalado OpenSSH, a través del tasksel:
~sudo tasksel
Igual que antes, seleccionaremos con el ‘espacio’ la opción que nos interesa, en este caso, LAMP, y con el tabulador nos colocaremos en el botón de aceptar y pulsaremos ‘enter’
La instalacion se inicia y tarda un tiempo en pedirnos:
“Es altamente recomendable poner una contraseña para el usuario root que gestionara mysql”, para evitar que usuarios no autorizados puedan acceder.
Indicamos la contraseña que queremos asignar al usuario root y aceptamos.
Esperamos a que termine la instalación, y ya tenemos el LAMP en nuestro servidor.
Ahora necesitaremos una herramienta que nos permita administrar MySQL. Esta herramienta es PHPMyAdmin. Para ello, nos iremos al terminal de Linux y escribiremos el siguiente comando:
~sudo aptitude install phpmyadmin
Al iniciar la instalación, nos pide que especifiquemos el servidor web con el que va a trabajar.

—————————————————————————
especificar el password de root de mysql

Especificar password de phpmyadmin
Una vez finalizada la instalación debemos ir al explorador de internet y introducir la dirección del localhost o la ip del servidor seguido de /phpmyadmin
http://190.160.34.34/phpmyadmin

El proyecto de la escuela Edib E2C2010 presenta la fase de instalación de nuestro Ubuntu Server 9.10 64 bits. En esta guía quedan reflejados todos los pasos, desde la grabación en CD de Ubuntu, pasando por la configuración de LVM (Logical Volume Manager) y las decisiones de formato para cada uno de las áreas del disco. Este, es solo un capítulo de nuestro trabajo de grupo, que se complementará con otras publicaciones sobre Open SSH, la instalación de Lamp Server, y otros. Esperamos que os sirva de ayuda!

Este año la propuesta de práctica para el 2º cuatrimestre de Administración de Sistemas Operativos GNU/Linux de EDIB es completamente nueva y muy ambiciosa: estudiantes y profe vamos a constituir un equipo de trabajo con la intención de montar un servidor web de pruebas en el aula, que también sea accesible desde fuera de nuestra red local.
En este artículo voy a presentar el proyecto y a hacer una breve introducción a sus objetivos. Intentaré que quede claro lo que podréis a encontrar en esta serie de posts que inauguramos.
Continuando con la explicación del proyecto, en este artículo se tratará el tema de instalar un servidor ftp, crear usuarios y dar permisos únicamente a aquellos usuarios que queramos que tengan acceso a nuestro servidor.
Creamos un grupo ftp:
- sudo addgroup ftp
Creamos los usuarios que queramos:
- sudo adduser nombre_usuario
Por defecto asignará que su shell es:
–> /bin/bash
y lo asignará al directorio:
–> /home/nombre_usuario
Podemos borrar su directorio por defecto:
- sudo rm -r /home/nombre_usuario
Una vez creados los usuarios con sus contraseñas, debemos acceder a /etc/passwd para modificarlo:
- sudo vi /etc/passwd
Nos mostrará los usuarios creados y, en cada uno de los usuarios que acabamos de crear, tendrán al final de linea el campo:
/bin/sh
Podemos dejarlo como está o cambiarlo por:
/bin/bash

De esta manera podremos logear correctamente.
Además del cambio anterior deberemos modificar su directorio:
/home/nombre_usuario por /home/virtualhosts/nombre_usuario
Revisar/ajustar y propiedad del directorio del hosting:
- sudo chown -R nombre_usuario:nombre_grupo /home/vitualhosts/nombre_usuario
Podemos hacer una prueba para confirmar que podemos hacer login sin problema:
- sudo -l nombre_usuario

Una vez comprobado, instalamos el servidor a utilizar:
- sudo aptitude install vsftpd
(Cuando esté instalado, por defecto lo arrancará)

Se deberán hacer algunas modificaciones en /etc/vsftpd.conf:
- sudo vi /etc/vsftpd.conf
Para más información sobre vsftpd.conf podemos ejecutar en consola:
- man vsftpd.conf (Nos aparecerá un manual sobre vsftpd)

LAS MODIFICACIONES EN EL FICHERO SON LAS SIGUIENTES:
- anonymous_enable=TRUE —-> anonymous_enable=FALSE (Acceso anónimo)
<< Las líneas siguientes aparecen comentadas y debemos descomentarlas >>
- local_enable=YES (Para atender a usuarios que quieran acceder)
- write_enable=YES
- xferlog_file=/var/log/vsftpd.log (Saber en que directorio se guarda el fichero)
- xferlog_std_format=YES
- chroot_local_user=YES (Para que el usuario solo vea su dirección, nada más)
- chroot_list_file=/etc/vsftpd.chroot_list (Hace una lista de usuarios para impedir que se puedan conectar otro tipo de usuario, por ejemplo master)
<< La línea siguiente, además de ser descomentada, se debe modificar >>
- local_umask=022 —-> local_umask=077

<< Las líneas siguientes aparecen descomentadas y debemos comentarlas >>
- secure_chroot_dir=/var/run/vsftpd/empty
- rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
(No se utilizarán)
<< Finalmente se añadirá, al final del fichero, lo siguiente >>
#Opciones añadidas extra:
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO
Una vez realizados los cambios anteriores crearemos dos ficheros, uno para los usuarios que queremos que se puedan conectar (vsftpd.user_list) y otro para los usuarios que no queremos que tengan acceso al servidor (vsftpd.chroot_list)
(ESTE PASO ES OPCIONAL)
En el caso de que queramos hacer este paso opcional, deberemos volcar en el fichero /etc/vsftpd.chroot_list todos los usuarios que no queremos que tengan acceso al servidor. Lo haremos con el siguiente comando:
- sudo cut -d “:” -f1 /etc/passwd | grep -v “(“nombre_usuario)|(nombre_usuario)|…” >/etc/vsftpd.chroot_list

Cuando se haya realizado todo lo anterior solo nos quedará el paso de reiniciar el servidor pasa que funcione correctamente:
- /etc/init.d/vsftpd reload
Además de vsftpd, hay otro tipo de implementaciones de FTP, como por ejemplo cuteFTP.
CuteFTP (Protocolo de transferencia de archivos) se utiliza para la transferencia de archivos entre un equipo y un servidor FTP.
Finalmente nos decidimos por la implementación de vsftpd.
¿Te gustaría saber cuál es la configuración de servidores DNS que te conviene por velocidad y cercanía? namebench 1.2 es una herramienta que, después de unos minutos de ejecución, te propondrá dicha configuración.
El pasado jueves, en clase de Administración de Sistemas Operativos surgió una cuestión acerca de la organización de los diferentes directorios de los sistemas GNU/Linux.
Recordé haber leído un artículo publicado en Forat que aunque pueda parecer básico me gustó por su sencillez y su claridad. Como me parece útil, quería colaborar modestamente en difundirlo. Lo encontraréis aquí.
Forat me parec un blog de lo más interesante para todos aquellos que estén interesados en GNU/Linux y en la informática "desde otro punto de vista" como dice su autor. Es de agradecer el gran trabajo que lleva a cabo elaborando excelentes y extensos tutoriales de diversos temas.



