Está en la página 1de 21

Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005.

Guía de administración  de
 servidores Gnu/Linux. 

Copyright (c) 2006 Antonio Becerro Martinez.


     Permission is granted to copy, distribute and/or modify this document
     under the terms of the GNU Free Documentation License, Version 1.2
     or any later version published by the Free Software Foundation;
     with no Invariant Sections, no Front­Cover Texts, and no Back­Cover
     Texts.  A copy of the license is included in the section entitled "GNU
             Free Documentation License".
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005.

   1. INSTALACION DE DEBIAN GNU/LINUX.  

   En primer lugar, vamos a realizar una instalación de  Debian  en un Pc. La versión que vamos a utilizar, es  Woody


release   4.   Si   el   ordenador   tiene   instalado   previamente   otro   sistema   operativo   como  Microsoft   Windows,   lo
conservaremos   intacto   en   su  partición.   Introducimos   nuestro   CD­Rom   de  Debian,  y   arrancamos   el   equipo,   poniendo
especial cuidado en que la Bios esté configurada para arrancar un CD­Rom de instalación. Normalmente, solo habrá que
situar como dispositivo de arranque primario el CD­Rom, en lugar del disco duro. Los ajustes de la Bios, se inician pulsando
la tecla Supr, durante el arranque del ordenador. El apartado que necesitamos modificar se suele llamar: boot loader o
algo similar. En todo caso, ello depende de la marca y versión de la Bios que tengamos. Hecho esto, se inicia el programa
de instalación de  Debian. Pulsamos  F3, en el menú que aparece a continuación elegimos el  kernel 2.4, y seguimos
todos  los   pasos  de  la  instalación  (idioma,   teclado,  etc).  Creamos  solamente   dos  particiones,   una   para  la   memoria   de
intercambio (swap), y otra para el sistema. Dos particiones es lo mínimo para un sistema Gnu/Linux, aunque podemos
añadir las que queramos. Es muy habitual una partición /users, para los usuarios, o /home, o lo que queramos. /var y /
data, son particiones habituales, en muchos servidores. Formateamos las particiones nuevas y les asignamos los puntos de
montaje adecuados. A continuación escogemos: instalar el nucleo y los mó dulos. Habitualmente, en el caso de un
Pc, con componentes comunes, no necesitaremos instalar controladores de dispositivos adicionales. En estos casos, el
kernel dispone de suficiente información para manejar el hardware por si mismo. Cuando llegamos al apartado de elegir
DHCP o BOOTP, no instalamos ni uno ni otro. Un servidor DHCP, es aquél que nos asigna una IP dentro del rango que
tenga disponible.  Es  una forma  de conectarse  a internet pŕacticamente  autómatica.  BOOTP  es un método  diferente,
apropiado en algunos casos concretos (como los Clusters). La tarjeta de red, hace un broadcasting (una llamada en busca
de servidores disponibles), y se autoconfigura. Así que, si instalamos el servidor  BOOTP  en una máquina, el resto de
máquinas   se   conectarán   solas.   Nosotros   no   vamos   a   utilizar   ni  DHCP,   ni  BOOTP,   sino   que   vamos   a   configurar
manualmente nuestros datos de red. En nuestro caso son los  siguientes:

                                                              IP: 192.168.0.209
                                                        Máscara: 255.255.255.0
                                                        Dominio: hileras.net
                                                        Pasarela: 192.168.0.100
                                                        DNS: 192.168.0.254
                                                                  192.168.1.100
                                                                  192.168.1.101
                                                        nombre: aula9
                                                        Pass: nodo50
                                                        Direcció n: aula9.hileras.net

   Ahora, se instala el sistema base. Después escogemos hacer el sistema arracable (Lilo). No hacemos disco de arranque.
No es necesario, ya que siempre podemos utilizar el disco de instalación de Debian, y llegar hasta el punto de la instalación
que nos interese, para hacer algún cambio, sin realizar ninguna otra modificación. Más tarde, nos pregunta si queremos
utilizar GMT. Decimos que sí. Es la hora del meridiano de referencia, que se encuentra en el Reino Unido. Como algoritmo
de encriptación de contraseñas, elegimos md5 en lugar de Des, un algoritmo más antiguo. Nos va a aparecer, un mensaje
acerca de los peligros de utilizar NIS (sistema de contraseñas no locales). Es solo una nota informativa. No hay ningún error
en   la   instalación.   Ante   la   pregunta:  Shadows   password,   respondemos   Yes.   Es   más   seguro.   Esto   es,   que   las
contraseñas en lugar de guardarse en la carpeta:  /etc/password  (que es un directorio accesible a todo el mundo) se
guarden en: /etc/shadow, que es un directorio accesible solo por el root. Naturalmente, las contraseñas van encriptadas,
en cualquier caso. 
     En el siguiente paso, cuando nos pregunta si queremos instalar los paquetes  Pcmcia  le decimos que no, ya que no
estamos realizando la instalación en un portátil. Ahora vamos a pasar a una parte de la instalación muy importante: la
configuración de Apt. Este es el programa que gestiona los paquetes en Debian. Es el mejor gestor de paquetes de todas
las distribuciones  Gnu/Linux.  Apt puede  buscar,  instalar  y  resolver  las  dependencias  de  cualquier paquete .deb
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005.

e incluso de código fuente, desde múltiples repositorios. Es cómodo de utilizar, robusto y muy capáz. El enfoque que hace
Debian  de este programa es peculiar. Como  apt  es muy fléxible, la instalación de  Debian  es minimalista (instalación
base). Se instala lo esencial para funcionar, se configura  apt, y el resto ya se instalara más tarde, a medida que sea
necesario.   Mediante   el   comando:  apt­setup  vuelven   a  salir   las   pantallas   de   configuración   de  apt,  en   caso   de  que
queramos volver a configurarlo. Escogemos como medio de instalación ftp, como servidor ftp: ftp.rediris.com y como
país Spain (es).  Para instalar paquetes en Debian hay muchos métodos. Veamos algunos;

                                       ­apt        ­tar.gz         ­tasksel          ­apkg           ­dselect 

     No obstante, la herramienta que más se suele utilizar es apt. En este curso vamos a utilizar preferentemente  apt. En
cualquier caso, en el siguiente paso de la instalación  de  Debian, va a aparecer  tasksel. Este es un programa  de
instalación de paquetes, que muestra un menú, con todos los paquetes agrupados dentro de categorias más o menos
genéricas, como X windows system o Desktop environment. Si escogemos cualquiera de estas, tasksel instalará todos los
paquetes asociados a la categoria seleccionada.  tasksel  puede ser ejecutado en cualquier momento desde una  shell,
mediante el comando: tasksel. En nuestro caso, escogemos: X windows system y Desktop environment, así como tcl­tk
(conjunto de librerias gráficas esenciales para muchos programas. (Permiten, por ejemplo, configurar el kernel en modo
gráfico.)
     Seguimos adelante. El instalador nos va a preguntar si queremos instalar  exim, el gestor de correo por defecto, en
Debian. Le decimos que no. Ahora llega el momento de configurar el sistema gráfico. Se utiliza el siguiente comando:

dpkg­reconfigure xserver­xfree86

   El comando dpkg­reconfigure  sirve  para  volver  a configurar  cualquier paquete en Debian. Durante esta parte,
tenemos   que   escoger   el   monitor,   la   tarjeta   gráfica,   el   ratón,   el   teclado,   y   cualquier   otro   periférico   que   tengamos.
Naturalmente, tendremos que conocer nuestro hardware de antemano. El hardware estandar no presentará ningún problema.
Si   tenemos   algún   periférico   especial,   puede   ser   que   tengamos   que   trabajar   algo   más.   Hecho   esto,   nuestra   flamante
distribución Debian estará completamente instalada.

   Veamos ahora un listado de comandos para el gestor de paquetes apt:

apt­get install paquete                                       # Instala paquete.
apt­cache search cadena de caracteres           # busca paquetes.
apt­get update                                                   # Actualiza la lista de paquetes.
apt­cache show paquete                                   # Descripción máxima de paquete.
apt­cache depends paquete                              # Muestra dependencias.
apt­get install /testing                                        # Cambio a la rama testing.
apt­get install /unstable                                     # Cambio a la rama inestable.
apt­get remove paquete                                    # Borra paquete. Deja ficheros de configuración.
apt­get remove –purge paquete                        # Borra paquete y fichero de configuración.
apt­get upgrade  paquete                                  # Actualiza paquete.
apt­get dist­upgrade paquete                            # Actualiza todos los paquetes de la distro.
apt­get source paquete                                     # Descargar código fuente. 
apt­get ­b source paquete                                 # Descargar fuente y compilarlo automáticamente
apt­get autoclean paquete                                     # Elimina versiones anteriores. 

     Nota                                                                                                                                              
     more y less, son paginadores. Sirven para mostrar el contenido de un fichero en el monitor, 
     en forma de pantallas sucesivas. Muy útil para visualizar documentos grandes.
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005.

     Nota                                                                                                                                              
     El pid, es el número de un proceso. Es el resultado de unir p (proceso) e id (identificador).

  Por último, vamos a hacer unos test a nuestros medios de instalación, en este caso servidores ftp.  El programa que vamos
a utilizar se llama: netselect. En primer lugar, hay que instalarlo mediante  apt. Vamos a poner a prueba los siguientes
servidores:
ftp.rediris.es
ftp.lnux.co.uk
ftp.sunet.se
ftp.debian.org

   El programa  netselect, devuelve un valor numérico de cada servidor. El número más bajo, indica una respuesta más
rápida por parte del servidor. Es interesante saber cual va mejor, para poder instalar los paquetes que nos interesen, de
forma lo más rápida posible.

   2. APACHE

   El servidor apache, es seguramente el programa de software libre más conocido. Su éxito, radica en su robustez, y su
capacidad para soportar una enorme cantidad de características en forma de módulos. Su extensa  API, permite a los
desarrolladores ampliar sus capacidades para hacer casi cualquier cosa. Nosotros vamos a instalar la versión 1 de Apache.
Existe versión 2, pero todavía no se considera lo bastante estable, en entornos de producción. Utilizaremos un módulo
adicional de encriptación llamado ssl. De modo, que la versión se llama: apache­ssl.
   En primer lugar, instalamos el programa mediante: apt­get install apache­ssl  El programa de instalación nos va a
hacer un par de preguntas:  Server Name  y  Email Address. La primera es la identificación de nuestro equipo. En
nuestro caso: aula9.hileras.net. Como dirección de correo no ponemos nada. Los ficheros de configuración de Debian se
encuentran en: /etc y los de Apache­ssl en: /etc/apache­ssl  El archivo de configuración tiene el siguiente nombre:

httpd.conf

   Todo lo que hay que hacer para configurar Apache­ssl, es editar este fichero mediante un editor de textos. Podemos
utilizar cualquiera de estos: emacs, xemacs, kate, etc  si nos defendemos bien en modo de texto, emacs es el mejor
editor, es extensible, configurable y está completamente autodocumentado. El fichero  httpd.conf, está muy comentado.
Solo están activas las lineas que no empiezan por el carácter:#, el resto son comentarios. Podemos escribir nuestros propios
comentarios  añadiendo lineas precedidadas  por:  #. Primero  hacemos  una copia del  fichero original  httpd.conf. Con
guardarlo con otra extensión es suficiente. Cada vez que hagamos un cambio, hay que parar y arrancar el servidor Apache.
Estos son los comandos:

                              apache ­sslctl stop # para Apache­ssl
                              apache ­sslctl start # arranca Apache­ssl
                              apache ­sslctl restart # para y arranca Apache­ssl

  Lo mínimo que hay que hacer para tener un servidor Apache funcionando es eliminar el carácter # (comentario) a la linea: /
ServerName, y sustituir ServerName por el nombre de nuestro servidor. En este caso queda: /aula9.hileras.net
Para comprobar su funcionamiento paramos y arrancamos el servidor apache, y en un navegador de internet, tecleamos esta
url:                                        
                                                                          https://aula9.hileras.net
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005.

   Si en lugar de https, escribimos http, no funciona. Por el momento, el puerto 80 no está abierto (puerto estandar para
servidores http) por motivos de seguridad. La página web que aparece en el navegador se llama: index.html, y su ruta es: /
etc/www, nosotros podremos crear carpetas nuevas dentro del directorio /etc/www para nuestras páginas web. Si creamos
una carpeta llamada, por ejemplo: empresa1, entonces, la url será: https://empresa1/aula9.hileras.net.  Apache­
ssl, asume que la web de inicio de cualquier sitio web debe llamarse: index.html. Como se ve, la instalación y configuración
básica de Apache­ssl, no es nada difícil. 

 En principio, parece buena idea personalizar la página de inicio de nuestro servidor. Podemos hacerlo en el editor de texto
que estemos utilizando, o ejecutar un editor de html, como Quanta o Bluefish. Ahora, vamos a ver con un poco más de
detenimiento el fichero de configuración de Apache: httpd.conf. 
  Los apartados más importantes a tener en cuenta son las siguientes lineas:

                                    Servertype standalone     # arranca por ti mismo.
                                    Si se desea, se puede hacer que el demonio inetd
                                    arranque el Apache. Ventaja: es cómodo porque en
                                    el inicio de los servicios de red se tiene Apache activo.
                                    Desventaja: si inetd falla, Apache también y viceversa.

                                    ServerRoot     # ficheros de configuración.
                            
                                    Timeout 300     # 300 sg. (5 minutos). Tiempo máximo
                                    de una conexión. Si durante 300 sg. el usuario no hace
                                    nada, Apache le desconecta. La idea es no perder ancho
                                    de banda en conexiónes acabadas.

                                    StartServers 5      # 5 procesos hijos en cola, como
                                    máximo. Es decir, 5 usuarios.

                                   MaxClients 150      # 150 usuarios simultáneos, como
                                   máximo.

                                   Listen                # Es el puerto. Para http normalmente
                                   es el 80. https utiliza el 443. https es un protocolo para
                                   conexiones seguras o encriptadas.

                                   DocumentRoot     # Es la ruta a los archivos de las 
                                   páginas Web. Por defecto /etc/www

                                   Errorlog      # Es la ruta al fichero de errores. Por defecto
                                   /var/log/apache­ssl/error.log   Hay 7 niveles de información
                                   de error, según su importancia: debug, info, notice, warn, 
                                   error, crit, alert y emerg.

     Vamos a ver ahora los enlaces directos o  Alias. estos, sirven para que un usuario teclee en la  url  de la página, a


continuación del dominio de nuestro servidor, el nombre de un directorio y que se le muestre otro diferente. El que nosotros
hayamos definido. ¿Para que sirve? Veamos un ejemplo. Supongamos que queremos que los usuarios de nuestro servidor
puedan ver el contenido del directorio: /etc. Entonces, para hacer un alias escribimos:

                                                 Alias /configuracion /etc
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

  El usuario se conecta a la url: https//aula9.hileras.net/configuració n y el navegador le muestra el contenido de /
etc. Esta técnica, puede servir para hacer una especie de rudimentario servidor de descarga de ficheros, al estilo ftp. En
una carpeta ponemos los ficheros a descargar, hacemos el alias, y cuando los usuarios se conecten podrán descargarse los
ficheros. Los Alias se
escriben en el fichero httpd.conf.

     Nota                                                                                                                                              
     El propietario de Apache (por así decirlo el administrador) es el usuario: www­data, del
     grupo www­data, por motivos de seguridad.

                                   
   Ahora vamos a hacer un  directorio privado  accesible mediante login y password (usuario y contraseña) desde un
navegador de internet. El comando para esta acción es:

htpasswd ­c   ruta a directorio  

 Entonces, el sistema te pide que le proporciones una contraseña, y que la confirmes escribiendola de nuevo. Esto, genera
en el directorio propuesto, un fichero llamado: .htaccess.
Este fichero está oculto (todos los ficheros precedidos por un punto lo están en Unix). No obstante es editable en un editor
de texto como vi. Veamos que contiene:
                        AuthName "Directorio privado"
                        AuthType Basic
                        AuthUserFile /etc/apache­ssl/htpasswd
                                                               require user antonio

   La primera linea simplemente es el nombre. La segunda el tipo de restricción que se va a aplicar, en este caso: Basic. La
tercera linea indica la ruta al directorio al cual queramos aplicar las restricciones. Finalmente, la última linea es el nombre del
usuario, en este caso antonio. Si queremos crear otro usuario, simplemente cambiamos antonio por joseba. El fichero  .
htaccess siempre tiene que estar en el directorio al cual se aplican las restricciones.

     Veamos, a continuación, como crear un  Virtual Host. Esto se traduce por alojamiento virtual. La mejor manera de
entenderlo es mediante un ejemplo. Unos amigos quieren alojar en nuestro servidor su web. Si hiciesemos una carpeta
nueva para ellos en /etc/www, técnicamente estaría resuelto. Sin embargo, nuestros amigos tienen su propio dominio, y
quieren que sea este, y no el nuestro el que se visualice en la url de su página. Lo que hay que hacer, es una redirección.
Los usuarios que se conecten a su dominio, realmente se tienen que conectar a nuestra máquina. Lo primero que hay que
saber, es que el  Virtual Host  hereda los parámetros de configuración generales. Realicemos un ejemplo. Lo primero,
editamos httpd.conf, y añadimos el siguiente contenido:

                         <VirtualHost 192.168.0.209:80>              # mi servidor
           ServerName www.miempresa.com      # url del cliente
           SSLDisable                        # modulo de seguridad. Apagado.
           DocumentRoot /var/miempresa       # ruta a documento html
                         </VirtualHost> 

   Hecho   esto,   cuando   los   usuarios   se   conecten   a:  http://www.miempresa.com,   realmente   apache   mostrara   el
contenido de: /var/miempresa. 

 Apache, tiene capacidad para hacer muchas otras cosas, mediante módulos. Estos son fragmentos de código que añaden
funcionalidades nuevas. Veamos un ejemplo:
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

 mod_speling     # Cuando un usuario comete un error ortográfico, presenta una lista con las 
                         las opciones correctas más similares.   

   Para aplicar este modulo, editamos el fichero:  httpd.conf, buscamos la linea  mod_speling, borramos el carácter:  #, y


añadimos: CheckSpelling On. Queda así:

LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so


CheckSpelling On

  Si ahora hacemos una prueba, veremos el resultado. La forma más sencilla es cometer un error a propósito. Por ejemplo,
escribimos: http://aula9.hileras.net/indexe (en lugar de: index). Existen muchos más módulos para hacer otras cosas. Se
utilizan de la misma forma.

   Bien.   Ya   tenemos   un   servidor   Apache   funcionando,   hemos   alojado   varios   sitios   Web,   instalado   módulos.   Ahora,
necesitamos saber si nuestro servidor está dando un buen servicio. ¿Es lo bastante rápido? ¿Soporta bien un número alto de
conexiones simultaneas? ¿Sufren los usuarios demoras a la hora de visualizar los sitios que alojamos? Para poder responder
a estas preguntas, es necesario instalar algunos programas especializados en test de rendimiento. Un buen progra­
ma es: httperf  Se utiliza así:

 httperf –hog –server aula9.hileras.net –num­conn 5000   # El número del final es opcional.
 En este caso 5000 conexiones. Podemos poner lo que queramos hasta hundir el Servidor.

   Apache  no   es   fácil   de   hundir.   Es   un   Servidor   muy   robusto.   Veamos   otro   programa,   esta   vez   en   modo   gráfico:
Kdesystemguard  (es decir, el guardián de  Kde). Puede mostrar mediante varios tipos de gráficas, el estado de la
máquina en tiempo real. Es decir, que se va actualizando sobre la marcha. Las conexiones simuladas lanzadas por httperf,
han tenido una repercusión en en el rendimiento del ordenador: procesador, memoria, etc. Con  Kdesystemguard, lo
podemos ver. Es buena idea ejecutar al mismo tiempo httperf en una consola, cambiando el número de conexiones y ver
como esto afecta al sistema. El parámetro –timeout número, comprueba el tiempo de respuesta. Mediante este método,
emulamos conexiones al puerto 80 (http), si añadimos el parámetro  –port443, hace lo mismo en el puerto  443. El
parámetro  –ssl  es para  utilizar encriptación,  en  la simulación.  Este último parámetro,  obliga a Apache  a un esfuerzo
notablemente superior. Veamos una posibilidad más sofisticada:

                                                                    ­­wsess=24,6,4
                                           Esto quiere decir: simula 24 conexiones, en bloques de 6, cada 4 segundos.

  Este parámetro rompe la linealidad. Con anterioridad, el número de conexiones, ya fueran un número muy alto o muy bajo,
se llevaban a cabo de una en una. ­­wsess permite conexiones simultaneas, lo cual es muy interesante, pues podremos
comprobar la capacidad de nuestro servidor ante una situación, mucho más cercana a la realidad. De este modo, a medida
que aumentemos el número, podremos saber los límites de nuestra máquina. Estas pruebas, son esenciales, ya que de lo
contrario no podríamos configurar  Apache  de una forma apropiada. Es imprescindible  saber lo que nuestra máquina
aguanta, para  editar el fichero: httpd.conf en función de nuestras necesidades específicas.

   Con Kdesystemguard, podíamos ver unas gráficas de rendimiento de la máquina. Esto esta bien. Pero seria mucho
más interesante disponer de unos informes, con la información concreta de cada conexión (hora, usuario, etc). Para esto se
utilizan estos dos programas:
                                                            webalizer
                                                            analog

   Webalizer y analog, nos informan de las conexiones recibidas. Los datos de estos programas suelen ser: IP / hora /
navegador. Webalizer los presenta en formato html, en color, con gráficos y demás. analog posee un frontend llamado:
fanalog. 
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

  Los accesos que nos van a aparecer en los informes de webalicer y analog, son las peticiones que hicimos previamente con
httperf. 

     Nota                                                                                                                                              
     webalizer da un error con Apache­ssl. Hay que editar su fichero de configuración en /etc y
     modificarlo cambiando el nombre apache, por apache­ssl.

  

     Nota                                                                                                                                              
     En Unix, las extensiones de los archivos son meramente informativas. El comando file sirve
     para saber de que tipo es un archivo. No es obligatorio poner extensión a los ficheros.

 
                                
   3. SHELL  SCRIPT.

  La shell, es el intérprete de comandos de la mayoría de los sistemas Unix o similares a Unix. Un script es un guión,
es decir una serie de instrucciones para la consola guardado en un fichero de texto de extensión: .sh. En Gnu/Linux, esta
técnica   alcanza   el   nivel   de   un   lenguaje   de   programación.   Para   los   administradores   de   Servidores,   los  scripts  son
herramientas  muy útiles.  Permiten  hacer  tareas  de una forma muy  productiva,  ejecutar aplicaciones  cuando  se desee,
mediante el demonio crontab, etc. Incluso el sistema operativo se inicia gracias a un script (initd).
   Este capítulo, se divide en tres secciones:

                                  1­  Comandos.
                                  2­  Generación de Script.
                                  3­  Ejecución de programas con periodicidad (crontab). 
                                       En esta parte también estudiaremos los scripts de arranque. 

    
   3. 1. COMANDOS.

touch fichero # crea fichero vacío.


ls -la # lista todos los ficheros detalladamente.
-lat # lista todos los ficheros por fechas.
-latr # invierte ordenación.
-l # Detalles.
mkdir # crea directorio.
rmdir # borra directorio.
cp # copia directorio.
mv # renombra y mueve simultaneamente.
rm # borra directorios vacios.
rm -r # borra directorios llenos.
cat fichero # /head presenta fichero. (con head las 15 primeras)
more fichero # paginar fichero.
tail -f fichero # ver finál de fichero y los cambios que pueda haber
en tiempo real.
echo # devuelve lo que se escribe.
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

ls / wc # se usa -c (caracteres) -w (palabras) -l (lineas).


lista / y muestra palabras y caracteres.
cat # cuenta. Con -head cuenta la cabecera
Con -grep + cadena de caracteres, filtra.

grep + cadena de caracteres # filtra la cadena de caracteres indicada.


grep -r "ServerName" /etc # busca recursivamente ServerName en: /etc
grep -i cadena de caracteres # busca cadena de caracteres y no tengas en
cuenta mayúsculas y minúsculas (-i).

who # quién es el usuario (conectado).


w # quien es el usuario.
last # los últimos usuarios (estén o no conectados).
lastlog # listado de usuarios y fechas de las última
entrada de cada uno.
date # fecha.
top # procesos y estado de la máquina.
ps # procesos activos.
ps aux # todos los procesos
ps aux | grep "apache" | grep -v "grep" |wc
# muestra todos los procesos | filtra apache | selecciona todos menos apache | muestra palabra y
número.
kill+Nº proceso # mata proceso.
kill -9 Nº proceso # mata procesos resistentes.
file # tipo de fichero
tar donde que # empaqueta fichero.
tar -cf fichero.tar /etc # desempaqueta fichero.tar en: /etc
gzip -9 fichero fichero.gz # comprimir. -9 máxima compresión.
gunzip # descomprimir.
gzip -d # descomprimir.
tar cvzf destino.tgz origen # crear un targz (tarball).
tar xvzf origen.tgz destino # descomprimir.

   3. 2. SHELL  SCRIPT.

Los scripts empiezan por una linea de este tipo:


#! / bin / bash

hora =`date +%H:%M` # hora en formato: 20:29


conectados=`who | wc -l`
echo "A las" $hora "hay" $conectados
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

Los permisos:

-|rw-|r--|r--|
tipo dueño grupo todos

  Dos formas de cambiar los permisos: numérica y alfabética. Se hace con un número de 3 cifras. la primera es el dueño, la
segunda el grupo y la tercera son todos.  Va de 1 a 7. 4 es lectura (r), 2 es es escritura(w) y 1 es ejecución (x).   750 es:
máximo para el dueño (7, resultado de 4+2+1, 5 para el  grupo, y 0 para todos los demás) El comando para dar los máximos
permisos al usuario es:

chmod 750 prueba1.sh

chown jorge fichero # cambia los permisos de un fichero al


usuario jorge.

chown jorge:hileras fichero # cambia un fichero a un usuario y además


lo cambia de grupo.

   3. 3.  REDIRECCIONES.

Esto es, no imprimir en la pantalla sino en la impresora, o en un fichero.

ls 1> listado.txt
salida estandard

ls 1> listado.txt 2>errores.txt


pasa el fichero listado.txt con el nombre errores.txt donde le digamos.

ls 1> listado.txt 2>>errores.txt


pasa el fichero listado.txt con el nombre errores.txt donde le digamos
añadiendo más texto en la salida.

grep "ServerName" /etc 2>/dev/null


filtra "ServerName" y redireccionalo al agujero negro.
/dev/null es un directorio donde todo lo que se envia desaparece.
Por eso, lo de agujero negro.

Ahora, vamos a escribir el siguiente shell script, que guardaremos con el 
                                                nombre: prueba2.sh
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

for i in `ls /etc`; do


wc /etc/$i
done

                                         prueba2, lo que hace es listar todos los ficheros dentro de /etc y luego                                    
                                           cuenta el número de palabras que tenga. Antes de ejecutarlo,  es preciso              
                                           concederle todos los permisos.

prueba3 Lo que pretendemos hacer con este script es capturar todos los 
procesos apache, seleccionar los que tengan el número de un usuario y 
matarlos. Dicho de otro modo, queremos expulsar a un usuario de apache. 
Veamos:

ps aux | grep "apache"


Si con el script prueba2 lo intentamos cambiando wc por kill no lo lograremos

ps aux | grep "apache" | awk '{print $2}' $0 # toda la linea


selecciona la segunda columna (desde la izquierda) y lo imprime en la pantalla.

ps aux | grep "apache" | awk '{print "kill -9 " $2}' | sh


 selecciona la segunda columna y mata los procesos apache

cat /etc/passwd | awk -F: '{print $1}'


     busca todos los usuarios* e imprime la primera columna.
 * están en el fichero passwd

Vamos a ver ahora si un usuario está conectado. Utilizaremos if

> if [`who | grep "root"`]; then


echo "root esta conectado";
else
echo "root no esta conectado"fi

nice # es el comando para dar prioridades.


renice # es el comando para dar prioridades en marcha.
Parámetros:
-20 # mayor prioridad.
0 # normal.
19 # menor prioridad.

top # ver procesos. La tercera columna es la prioridad.

     Nota                                                                                                                                              
     El comando: wget,  se utiliza para buscar mirrors.
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

   3. 4.  EL DEMONIO CRONTAB.

cron / crontab # demonio para periodicidad de tareas.

crontab -l # ver tareas del usuario.

crontab -u ususario -l  #  ver tareas del ususario que se desee.

crontab -e #  editar fichero de configuración de tareas. 

 Estructura del fichero de configuracion de cron
CUANDO QUE COSA> programa, script, comando...
                          min      Horas     Dia     mes      dia (semana) 
                                   0­59     0­23     1­31    ­12      0­7 (7 y 0 es lo mismo)
                          ejemplo    0          12             3            *           *       

                                   ejemplo   0,3  0,4,5 * * *

 * significa cualquiera o mejor dicho todos.

Cron funciona continuamente. Se puede parar o arrancar pero no es necesario.


El script de arranque se encuentra en: /etc/init. También existe un script para
cron.
               Ejercicio.
                                        Almacenar en un archivo todos los procesos y guardarlos en un fichero.
                                        Luego eliminar el fichero.

ps aux | wc -1 >> /root/process 2>/dev/null


***** ps aux | wc -l >>/root/process 2>/dev/null

tail -f process
busca las últimas lineas de un fichero hasta que cambie. Con la f es dinámico.
como el fichero process es la salida de cron, tail nos mostrara los procesos
presentes en el sistema. Se actualiza cada segundo. -f cd /root

     Nota                                                                                                                                              
     du  disk usage    # ver memoria.    du fichero  #  ver memoria de fichero.
     du ­h  # ver en modo humano.

Ejercicio.
                                         crear un script que se ejecute al arrancar la maquina.
echo
echo
echo GNU/LINUX EL SISTEMA OPERATIVO LIBRE.
lo guardamos en /etc/initd con el nombre arranque.sh
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

pero no vale solamente con esto. Hay que escribir también:


update-rc.d arranque.sh defaults para que funcione.
update-rc.d -f arranque.sh remove para que no funcione.

ls |tee listado.txt # a la vez que vemos el listado nos lo imprime en un


fichero llamado listado.txt (que se crea automáticamente)

more .bash_history # ver con el paginador more el fichero de historia


de la shell. Hay uno para cada usuario.

more .bashrc # ver con el paginador el fichero de configuracion de la bash.

cat /etc/motd # ver mensaje del dia.

find donde criterios # busquedas según diferentes criterios.

find / -name"

contr+c # detener busqueda

find /etc/ -name "http*" # busca algo que empieza por http en /etc
el criterio es nombres. Se puede cambiar. Veamos utilizando como criterio el
tamaño.

find /etc/ -size +1000k # busca los ficheros que tengan mas de 1000 K.

find /etc/ -size +1000k -name "antoniux" se puede hacer busquedas


con varios criterios al mismo tiempo.

find / -mmin -5 # busca los ficheros ejecutados en los últimos 5 minutos.

find / -size +100K -exec ls -l {} \;


este significa que lo haga con los resultados

     Nota                                                                                                                                              
     Microsoft Windows puede hacer todo esto. Sin embargo, find llega un poco más lejos, pues
     permite hacer las busquedas y realizar, al mismo tiempo, alguna acción con los ficheros en­
     contrados.

     Nota                                                                                                                                              
     tee    # ver y guardar una salida simultáneamente.
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

 
                                  
   4.  SEGURIDAD.

  Supongamos que se nos olvida la contraseña del root. ¿Como podemos entrar en el sistema?
¿Existe una puerta trasera? Sin duda, se trata de un agujero de seguridad, pero esta puerta existe. Posiblemente, existe
también   en   todos   los   sistemas   operativos.   Es   práctico,   porque   nos   soluciona   un   problema,   pero   es   peligroso,   porque
cualquiera que tenga acceso físico a nuestra máquina puede hacerse con el control total del sistema. Veamos como se hace.
Durante el arranque del Lilo, introducimos la siguiente linea:

                                                  init = /bin/bash rw
                                                     arranca  bash con permisos lectura y escritura.

  
  Esto arranca en modo texto. Lo primero que hacemos, es una copia del fichero de contraseñas:

                                                     cp /etc/shadow  /root/shadow

   A continuación, editamos el fichero  etc/shadow  con un editor de texto como  emacs. Hay que borrar el segundo


campo. El primero es: root. El segundo es la contraseña. guardamos el fichero de contraseñas sobreescribiendo el antiguo.
Ejecutamos  el  comando:  sync  (sincronizar)  para  que  el  sistema  ejecute los cambios  de forma  inmediata.  Ahora  solo
tenemos que reiniciar el ordenador normalmente. Cuando introducimos el login, veremos que se salta la contraseña y entra
en el sistema. Para restablecer la normalidad, deberíamos saber cual era nuestra contraseña. Para ello, vamos a utilizar un
programa que se llama:  john. Este, busca   contraseñas, listandolas contra un diccionario interno del programa. Este, es
bastante básico, pero se puede cambiar por muchos otros que circulan por internet. Dependiendo de la complejidad de la
contraseña, John puede tardar unos pocos instantes u horas. Los diccionarios se descargan previamente en formato txt, o
comprimidos. Los guardamos en la ruta que queramos y se la indicamos a john:

                                              john ­wordfile: spanish.txt
                                                        carga el diccionario español

4. 1.  CORTAFUEGOS.

 El cortafuegos, es un programa que construye, por así decirlo un muro alrededor de una red para protegerla de ataques
desde Internet. El cortafuegos, puede ser un ordenador completo o una aplicación de software. El uso de una máquina o de
un   programa   depende   del   tráfico   implicado.   Para   un   equipo   casero,   un   cortafuegos   por   software   es   suficiente.   En
Gnu/Linux, se suele utilizar el programa: iptables, Freebsd utiliza: ipfw y Openbsd: pf. Iptables es un módulo del
kernel de Gnu/Linux. Los niveles de seguridad, oscilan entre el acceso total, sin acceso y acceso a algunos puertos. La
respuesta del cortafuegos, va a depender de las “Reglas” que utilice. Estas son los parámetros de seguridad. Editar Reglas a
mano es muy complicado. Normalmente se utilizan programas que nos ayuden en esta tarea. Los programas más utilizados
son:

                                                      Knetfilter
                                                      Firestarter
                                                      Fwbuilder (frontend para Iptables)

     Nota                                                                                                                                              
     Principales puertos:  http: 80 , https: 443 , ftp: 21 , smtp: 25 , pop: 110
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

   Para ver los puertos abiertos de una máquina, se utiliza el programa: nmap. Es muy sencillo utilizarlo. nmap nombre
de la máquina. El uso de escaneadores de puertos, supone una vulnerabilidad para cualquier sistema. No es un ataque
propiamente dicho, pero puede precederlo. Para evitar un escaneo de puertos, se utiliza el programa:  portsentry. Este
ofrece   información   falsa   a  nmap.   Los   puertos   que   aparecen   abiertos   no   lo   están   realmente,   o   no   coinciden   los
identificadores. Los parámetros de configuración del acceso se encuentran en:

                                                                       /etc/login.defs
  
   Estos parámetros, son cosas como el número de días que se puede acceder al sistema con la misma contraseña, los
intentos de login posibles, el tiempo de login, etc. El comando: faillog, permite aplicar restricciones. Veamos un ejemplo:

                                                               faillog ­u antoniux ­m3
                                                                            El usuario antoniux tiene 3 intentos de login

   El parámetro ­a, muestra desde root, los intentos de login.

4.2.  AUDITORIA DE SEGURIDAD.

  Una auditoría de seguridad, es un estudio de las vulnerabilidades que pueda presentar una red. Para ello, se realizan unas
pruebas, mediante programas específicos. Uno de estos programas es:  NESSUS. Es una aplicación muy completa, en
modo gráfico. Es necesario instalar los siguientes paquetes:

                                  nessusd                         # demonio.
                                  nessus                            # cliente.
                                  nessus­pluging           # base de datos de vulnerabilidades conocidas.

   Lo primero que hay que hacer es crear un usuario. 

                                                                 nessus ­adduser 

     El programa nos va a hacer algunas preguntas. Es conveniente escoger encriptación (cipher) y saltar las reglas (rules)
mediante: Ctrl + d. La opción: one time password, es una contraseña que solo se nos va pedir la primera vez que
ejecutemos Nessus. El comando para ello es:

                                                                     nessus ­p

  Primero, se arranca el demonio (nessus­d) y luego se arranca el cliente (nessus). Hecho esto, veremos una ventana
con varias pestañas. En el apartado:  Target  selection, escribimos  la  IP  del equipo o su nombre. Si escribimos el
nombre, es preciso activar el botón: dns. Aunque tiene bastantes más posibilidades de configuración, ya podemos escanear
el equipo. Finalmente, Nessus ofrece un informe. Un código de colores nos indica el nivel de peligrosidad  encontrado en
cada funcionalidad del sistema operativo.

     Nota                                                                                                                                              
     Sentry Firewall.  Live CD, al estilo Knoppix enfocado a temas de Seguridad.

  
     Nota                                                                                                                                              
     Ruta a los log: tail ­f /var/log/daemon.log

    
Guía de Administración  de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

   4.2.   SNIFFER.

   Los  sniffers,  son programas que nos muestran todo el tráfico que pasa por nuestra tarjeta de red. La traducción de


snifers, es algo así como husmeadores. Veamos algunos programas:

                                                              dsniff
                                                              ethereal
                                                              snort
                                                              etherape
                                                              ettercap

     El programa  ethereal, captura  absolutamente  todo lo que pasa por la tarjeta y nos lo presenta en pantalla.  Esta


verbosidad, es finalmente un problema. La verdad, es que la mayoría del tráfico no nos interesa mucho. Para que nos sirva
para algo, es preciso aplicarle filtrados. O utilizar otro programa.  dsniff, resume mucho más la información. Además el
objetivo de dsniff, es bastante más concreto: capturar contraseñas. El programa etherape, genera un gŕafico de la red, y
de las relaciones entre las distintas máquinas de la misma. Si nos conectamos a internet también aparecen las páginas. Si
hacemos:  ping  a otra máquina  también aparecerá.  El programa  más complejo  de todos es:  ettercap. Es capáz de
capturar paquetes por la red. Puede ser utilizado para hacer ataques, del tipo de hacerse pasar por otra máquina, o el
llamado: man in the middle. El hombre en el medio, es decir colocarse entre dos máquinas.

     Nota                                                                                                                                              
     touchGraph.com Ver internet en modo gráfico.

     

   5.  CORREO ELECTRONICO.

  Vamos a instalar y configurar un servidor de correo. Tenemos varios programas en Debian para hacer esto. El programa
por defecto es: exim. También se puede utilizar:

                                                              Sendmail
                                                              qmail
                                                              postfix

   Sendmail. recibe bastantes ataques. Qmail es seguro, pero bastante difícil de instalar. Postfix es un termino medio entre
ambos, y es el que vamos a utilizar. Hay que instalar tres paquetes:
                           
                                                                 postfix
                                                             postfix pcre
                                                             [ postfix­doc]

   Durante la instalación de Postfix, tendremos que responder algunas preguntas. Escogemos internet, y le indicamos nuestro
usuario:  user@aula9.hileras.net.  Para   arrancarlo,   ejecutamos   el   comando:  postfix   start.   Las   posibilidades   del
comando postfix son:

                                                    postfix start    # arrancar.
                                                    postfix stop     # parar.
                                                    postfix reload  # reiniciar.
Guía de Administració n de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

   Para configurarlo editamos el fichero: main.cf, que se encuentra en: /etc/postfix. Es un documento muy comentado.
En el apartado:  relayhost =  , no hay ningún nombre de un servidor externo. Esto es lo adecuado,   si no vamos a
subcontratar el servicio. En principio, no hace falta mucho más para postfix funcione. Ahora, vamos a instalar un cliente de
correo para comprobar el correcto funcionamiento de nuestro servidor. Utilizaremos:  mutt, un cliente en modo texto. Lo
primero de todo, va a ser crear dos usuarios nuevos del sistema, que se van a llamar: prueba1 y prrueba2. Para crear un
usuario, el comando es: adduser.  Más tarde, enviaremos tres correos, uno de prueba1 a prueba2, otro de prueba2 a
aula6 (un ordenador de la red local) y otro de prueba1 a una cuenta de correo en el exterior. Las rutas a los correos son: 

                                                            /var/mail
                                                            /var/spool/mail

     Estas dos rutas son. la primera la ruta a los correos recibidos, y la segunda la cola de los correos que están siendo
enviados. El comando: mailq nos muestra el estado de la cola. El comando: sendmail ­q, fuerza al sistema a enviar el
correo inmediatamente.
   Ahora vamos a pasar al controvertido asunto de las restricciones. Las restricciones son medidas que se aplican al servidor
de correo para que rechace algunos correos por motivos de seguridad. Lo cierto es que una parte significativa de los correos
son Spam, es decir correos no solicitados. El Spam disminuye el rendimiento global de internet, mina sus posibilidades de
crecimiento,   aparte   de   ser  una   molestia   para   los   usuarios.   Para   hacerle   frente   se  han   creado   autoridades   en   internet
capacitados para incluir a los servidores implicados en listas de sospechosos de practicar Spam. Es bastante fácil entrar en
una de estas listas, pero es muy difícil salir. Para colmo, esta autoridades incapacitan para servir correo a las máquinas
implicadas durante algún tiempo. Estas listas son la pesadilla de los administradores de servidores.  Ahora, veamos como se
aplican las restricciones:

   Para añadir una restricción, escribimos estas lineas en el fichero: main.cf :

                                                   smtp
                                                   smtp_server_restrictions =
                                                   hash: /etc/postfix/access
                                                   reject_unknown_sender_domain
                                                   permit_mynetworks

  La ruta: /etc/postfix/access hace referencia a un fichero de nombre: access que tenemos que editar. 

   6.  MYSQL.

  MySQL, es una base de datos muy potente, del estilo de aplicaciones privativas como Oracle o Postgress. Permite
conexiones remotas, conexiones concurrentes, sistemas de seguridad, etc. Se utiliza habitualmente en servidores Web que
alojen sitios dinámicos, como foros, tiendas on line, gestores de contenidos, etc. Por supuesto, también puede utilizarse en
las típicas bases de datos corporativas. Utiliza un lenguaje de sintaxis clara y sencilla llamado: SQL.

   Para instalar MySQL, utilizamos, como siempre apt. Es preciso instalar un servidor y un cliente. Durante el proceso de
instalación tendremos que responder algunas preguntas de configuración del programa. La primera pantalla que aparece, no
es un error, sino información de seguridad. Más tarde, tenemos que elegir si queremos eliminar las bases de datos al
desinstalar el programa. Es mejor contestar que no. Finalmente, nos va a preguntar, si queremos que arranque MySQL al
iniciar el sistema. Lo más cómodo es responder si.
    
  Hecho esto, ya hemos terminado la instalación. Lo primero que tenemos que hacer ahora, es crear un usuario, y asignarle
una contraseña. Un usuario para Mysql exclusivamente.

                                            mysqladmin ­u root password
Guía de Administració n de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

Más   adelante,   hay   que   activar   el   acceso   a   la   red.   Para   ello,   editamos   el   fichero:  my.cnf,   que   se   encuentra   en:  /
etc/mysql/my.cnf. comentamos la fila:  # skip­network, que impide los servicios de red. Para arrancar  MySQL
ejecutamos:

                                             /etc/init.d/mysql restart

  El ejecutable, se encuentra es:  /usr/sbin/  y se llama:  mysqld. Aunque normalmente no utilizaremos  el ejecutable


directamente. Las tablas se encuentran en: /var/lib/mysql/mysql. Entre otros ficheros, destacan por su importancia los
de extensión:

                                                 .frm     # Estructura.
                                                 .myd    # Datos.
                                                 .myi     # Indice.

   En principio, una copia de seguridad podría consistir simplemente, en copiar estos ficheros. Es imprescindible parar el
servidor primero.  Los informes se guardan en:  /var/log/mysql/  y los clientes,  en:  /usr/bin/. El cliente más básico,
funciona en linea de comandos y es el que vamos a utilizar, aunque también existen clientes gráficos. Para administrar
rémotamente MySQL, también puede utilizarse: webmin.
   El comando para ejecutar el cliente es: mysql ­p. Este cliente, es una consola virtual. Para salir se escribe: q o exit.
Veamos algunos comandos:

                    SELECT USER (); # mostrar usuario. 


                    SELECT VERSION (); # mostrar versión.
                    SHOW DATABASES; # mostrar bases de datos en el servidor.
                    USE nombre de base de datos; # utilizar base de datos.

   Ahora, vamos a crear una base de datos nueva. Crearemos también una tabla, y veremos como se editan los registros,
como se accede a los datos, etc. Para crear una base de datos nueva:

                                             CREATE TABLE video (
                                            id INT NOT NULL AUTO_INCREMENT,
                                            titulo VARCHAR (200),
                                             autor VARCHAR (64),
                                             PRIMARY KEY (id)
                                             );
 
   Mediante estas instrucciones, hemos creado una tabla llamada:  video, donde los registros se identifican (id) por un
número que se incrementará automáticamente con cada nuevo registro. Si un registro es eliminado, su número no será
utilizado   por  otro.   La  tabla   va   a  tener  las   columnas:   titulo,   y   autor,   que   permimitirán   campos   de   200   y   64   caracteres
respectivamente.
  Para ver  las tablas disponibles, utilizamos el comando: show tables. Para ver su estructura: describe tables. Para
insertar registros nuevos se hace de la siguiente manera:

                        INSERT INTO video (titulo,autor) VALUES ('ESPARTACO','Kubrik); 

   De esta manera, hemos creado un registro para la película  Espartaco  , en nuestra base de datos de vídeos. Para


visualizar el contenido de una tabla, y no solamente su estructura, el comando es:

                                                                      SELECT * FROM  video

   Si queremos hacer   busquedas más precisas, tendremos que complicar un poco las cosas. Podemos introducir algunos
registros más, y hacer una busqueda de, digamos, todas las películas de Kubrick.
Guía de Administració n de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

mysql> SELECT * FROM video WHERE autor  = 'Kubrick';

  De la misma manera, podemos buscar un registro completo, mediante su identificador:

                               mysql> SELECT * FROM video WHERE id = '7';

  O todos los titulos, que empiecen por la letra: P.

                          mysql> SELECT * FROM video WHERE titulo LIKE 'P%';

  O todas las películas de Kubrick que empiecen por la letra: s.

        mysql> SElECT * FROM video WHERE titulo LIKE 's%' WHERE autor = 'Kubrick';

  Para eliminar una base de datos:

                                      DROP DATABASE video;

  La orden: mysqldump, sirve para hacer un volcado de datos. Desde: /var/lib/mysql

                        mysqldump ­u root ­p video >curso20050426.sql

  Esto, redirecciona en un solo fichero el contenido de /var/lib/mysql

  Tambien se pueden hacer volcados comprimidos. Los parámetros que admite mysqldump, son:
                                             ­d      # solo estructura.
                                             ­t       # solo datos

   Ahora, vamos a plantearnos un problema. Supongamos que estamos obligados a hacer una copia de seguridad cada día a
las cuatro de la mañana. Nosotros no trabajamos por la noche. ¿Cómo lo podríamos a hacer? Veamos, en primer lugar el
código y luego lo comentamos:
                         
#!/BIN/SH
for bd in `ls /var/lib/mysql/   |grep ­v my.cnf`;
do
LABEL=SQL_`hostname`_`date +%y­%m­%d`_”.sql.bz2
mysqldump ­u root ­pnodo50 $bd | bzip2 > /COPIAS_SEGURIDAD/$LABEL
echo “volcada $bd”
done

   Este ejercicio es muy interesante. La primera linea es el encabezamiento habitual de todos los  scripts  de  shell.  La


segunda establece la variable: bd y lista el directorio: /var/lib/mysql/ y filtra: my.cnf. La tercera establece  el nombre
del fichero de salida en base a la fecha (año, mes, dia). La extensión de las copias es: .sql.bz2, es decir, que la salida va
comprimida. La cuarta linea es el comando de copia propiamente dicho (mysqldump) , el usuario y su contraseña. Así
como, la ruta a la copia. Finalmente la quinta linea es más bien decorativa. Escribe en pantalla: volcada y la base de datos
que sea.
Guía de Administració n de servidores Gnu/Linux                                                    Antonio Becerro Martinez.  2005

   Este script se guarda con el nombre: backup.sh, en /root. Ejecutamos el comando: crontab ­e. Esto nos permite
configurar el demonio cron. Le indicamos la periodicidad de las copias de esta forma:

                                                  0 1 * * *    /root/backup.sh

   Otra forma de configurar  MySQL, es mediante  Webmin, un programa web capacitado para configurar servidores


Linux  online.   Para   ejecutarlo   abrimos   una   sesión   en   un   navegador,   como  Firefox  y   de   url   escribimos:
https://aula9.hileras.net:1000. La administración, se realiza en modo gráfico. Las desventajas de este método son
dos: por un lado no existe la misma seguridad que al editar las configuraciones en modo texto, y por otro, los refrescos de
pantalla podrían causar problemas.  

7. COMPILACION DEL KERNEL.
   En  Gnu/Linux, la compilación de un nuevo Kernel es una acción relativamente corriente. En los sistemas operativos
privativos este tipo de cosas, solamente las hace el fabricante. Dos son las razones fundamentales para compilar un nuevo
kernel. Obtener un mejor rendimiento de la máquina, y lograr nuevas prestaciones, normalmente soporte de hardware nuevo.
Lo primero que hay que hacer es descargar el kernel que nos interese desde internet (www.kernel.org). Suele estar
comprimido en .tar.gz o en .bz2. Hay que descomprimirlo en el directorio: /usr/src. Creamos una carpeta llamada linux,
y copiamos dentro de ella el kernel descomprimido. Es buena idea hacer un enlace simbólico (acceso directo) a esta carpeta.
Más que nada, para cambiar el nombre de linux, por algo más concreto en el enlace. 
  Para la configuración previa a la compilación, se pueden utilizar varios programas. Todo tienen las mismas capacidades. No
son unos mejores que otros. Lo que cambia, es la interfaz. Los más utilizados son:

                        xconfig                  # Método gráfico (precisa las librerias QT).
                        menuconfig         # Método gráfico basado en menús  (precisa nurses).
                        gconfig                  # Modo texto ( precisa Gtk).

  Para saber que kernel estamos utilizando se utiliza el comando: uname ­a , para saber cual es nuestro hardware: lspci.
La información sobre la máquina se obtiene mediante:
                                                        cat /proc/cpuinfo

   Comencemos. Elegimos uno de los programas de configuración, por ejemplo: menuconfig. Para ejecutar el programa,
desde: /usr/src/Linux, escribimos:
                                                       make menuconfig

   La cantidad de parámetros  que se pueden modificar es enorme.  Conviene saber, que unos apartados se relacionan


automáticamente con otros, de tal forma que para poder realizar una acción, es preciso haber realizado otra previamente. 
Por ejemplo, si queremos activar soporte para particiones de macintosh, primero tendremos que activar un menú llamado
sistemas de ficheros especiales, o algo similar. En general, lo que se hace es ir seleccionando nuestro hardware: tarjeta de
red, tarjeta de video, etc. Es el momento de comprobar si el nuevo kernel soporta algún dispositivo que no pudiésemos hacer
funcionar con el kernel anterior. Es imposible dar una receta precisa de lo que hay que activar o no. Esto, va a depender de
cada ordenador concreto. No hay que tener miedo. Instalar un nuevo kernel no significa destruir el antiguo. Finalmente
dispondremos de los dos, y escogeremos en el Lilo arrancar con uno o con otro.
   Si salimos de  menuconfig, nos va a preguntar si queremos guardar los cambios. Le decimos que sí. Ya tenemos la
configuración preparada. Ahora vamos a hacer algunas comprobaciones antes de compilar. 
Guía de Administració n de servidores Gnu/Linux                                                                Antonio Becerro Martinez.  2005

Escribimos: make dep, Este comando sirve para comprobar las dependencias.
Ahora: make clean, para borrar posibles restos de otras compilaciones anteriores. Finalmente:
                                                   make bzImage2430

   Este último comando es el que compila. El kernel compilado se va a llamar: bzImage2430, y lo encontraremos en la
siguiente ruta: /usr/src/linux­2.4.30/arch/i386/lib. Una vez que la compilación del kernel se ha completado, hay que
compilar también los módulos. Estos le añaden funcionalidades. Los comandos necesarios son, en primer lugar:  make
modules, y luego:  make  modules_install. Hecho esto, el kernel está completamente compilado. Pero para poder
utilizarlo hay que enviarlo al directorio /boot, que es donde se tienen que guardar los kernels con capacidad de arrancar el
sistema. También tenemos que copiar el fichero: System. map a /boot.
   Por último, ya solo nos queda añadir una entrada en el Lilo al nuevo kernel. Pare ello abrimos el fichero de configuración
de Lilo en: /etc/lilo/lilo.conf, mediante un editor de texto como Vim.
Lo único que hay que hacer es añadir al finál del documento dos lineas: 

                                               image=/boot/bzImage2430 
                                                label=linux2430

  Guardamos los cambios, y ejecutamos el comando: lilo, que actualiza la configuración. Y ya estamos listos para reiniciar el
ordenador. En la pantalla del lilo escogemos nuestro flamante kernel nuevo y cruzamos los dedos. Normalmente, suelen ser
capaces   de arrancar  el  sistema.  Otra  cosa  es  la  conexión  a  internet,  que   solo     funcionará     si   se   ha   configurado
correctamente la tarjeta de red. Si algún apartado no responde a nuestras expectativas, se vuelve a ejecutar el programa de
configuración (menuconfig) y volvemos a compilar. 

    Antonio Becerro Martinez. 
 littledog@es.gnu.org
Alcobendas. 2005.

También podría gustarte