You are on page 1of 94

Configuracin de Servidor RedHat/CentOS

Roy Eddekel Alvear Aguirre 2011 - CC BY-SA 3.0


-1

tem 1. Instalacin y Configuracin de Sistema Operativo Linux


Pasos previos a la Instalacin
Los pasos previos consisten bsicamente en los siguientes puntos: 1. Descargar el archivo iso del CD/DVD de instalacin. 2. Verificar el iso descargado, chequear que no se encuentra corrupto, para ello en Linux se ejecuta le comando md5sum archivo.iso 3. Grabar el CD/DVD 4. Comprobar que el equipo donde se instalar el sistema cumpla con los requisitos mnimos de Disco, RAM y Procesador para la instalacin, estos parmetros dependern de la distribucin deseada y de los servicios que se deseen instalar. 5. Recopilar informacin sobre el Hardware del equipo, como por ejemplo Tarjetas de Red, Tarjeta de Video, perifricos que se conectarn cono impresora, etc. 6. Conocer e tipo de red a la cual nos conectaremos, en caso de IP fija se debe averiguar dicha IP, Mascara de red, Puerta de enlace y DNS. En caso de red de marcado, Nombre de usuario, contrasea de conexin PPPoE. 7. Tener configurada la BIOS para iniciar desde el medio de instalacin (CD/DVD).

Instalando el Sistema
Bsicamente existen dos mtodos de instalar el sistema con nuestro CD/DVD, estos mtodos no son nicos, pero si los ms usuales.

Modo Grfico
Para instalar en modo grfico en idioma espaol debemos colorar el DVD en la unidad de lectura y escribiremos en la pantalla inicial linux lang=es para comenzar con la instalacin en espaol.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 2

Paso siguiente el sistema evaluar las unidades de disco para comprobar que se encuentra bien grabada, es recomendable chequear el disco si ste no se ha chequeado previamente o si ha sufrido algn dao menor producto de una cada o similar.

Finalizado este paso se comprobar que los controladores cargados en la instalacin soporta la interfaz grfica de video de la tarjeta actual, en caso de ser favorable comenzar la instalacin modo grfico con una ventana de bienvenida.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 3

Paso siguiente se debe seleccionar el tipo de teclado que se utilizar en el terminal conectado al sistema, en nuestro caso es comn encontrar teclado espaol y teclado latinoamericano. Se pueden diferenciar fcilmente por la posicin de la @, cuando se encuentra a la derecha de 2 se trata de un teclado espaol, cuando se encuentra a la derecha de la Q se trata del latinoamericano.

El paso siguiente es la seleccin del disco y el espacio de disco con que se trabajarn las particiones, es recomendable en el caso de un servidor trabajar con el diseo personalizado y seguir las recomendaciones hechas por RedHat Enterprise.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 4

Las particiones dependern bastante del tipo de servidor a crear, sin embargo las recomendaciones de RedHat son las siguientes: La SWAP o memoria virtual debe ser del doble de la memoria RAM /boot debe ser una particin aparte de 100M aprox. / no debera superar los 5GB

Paso siguiente se recomienda crear una contrasea al sector del GRUB que es quien gestiona el Arranque de Linux, de esta forma se dificulta que alguien que tenga acceso fsico entrar como root.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 5

El siguiente paso nos permite configurar la conexin de red y el nombre del equipo. De forma predeterminada IPv4 lo obtendr a travs de DHCP e IPv6 de forma Automtica.

Lo siguiente es configurar la hora del sistema, para un servidor es recomendable siempre manejar la hora en UTC.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 6

El siguiente paso es indicar la contrasea de administracin o contrasea de root, se recomienda elaborar una contrasea con caracteres especiales y caracteres alfanumricos incluyendo maysculas y minsculas, como por ejemplo: MCeSS-52K11 donde cada uno de sus caracteres se les puede dar un significado fcil de recordar: Mi Clave es Super Segura mayo 2011

El siguiente paso es la eleccin de software, es recomendable en un servidor escoger cada uno de sus paquetes a mano y as optimizar el espacio en disco y la cantidad de servicios que arranquen de forma automtica, para ello seleccionaremos Personalizar ahora.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 7

En la personalizacin se software podemos ver agrupados los programas segn su funcionalidad, una vez que hemos seleccionado los servicios y utilidades que necesitaremos, pasaremos al paso siguiente en donde el instalador comprobar automticamente las dependencias de nuestra seleccin.

Finalmente procedemos a realizar la instalacin con cada una de las opciones seleccionadas en los pasos anteriores.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 8

Al comenzar la instalacin realizar varios pasos, entre los que podemos enumerar los siguientes: Formatear las unidades de disco y asignacin de las particiones

Copiar el sistema base e iniciar el proceso de instalacin

Instalar los programas seleccionados a disco

Este proceso demorar entre 15 minutos a 1 hora dependiendo de la cantidad de servicios instalados y de las caractersticas del Hardware.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 9

Una vez terminado el proceso de instalacin se ver la siguiente ventana que solicitar reinicia el equipo.

Cuando se reinicie el servidor, debera ver en pantalla la solicitud de inicio de sesin tpica de los sistemas UNIX/Linux en donde en el encabezado aparece nuestro sistema instalado, la versin del kernel y la solicitud de login.

Se recomienda que los servidores funcionen en modo texto bsicamente por: Mayor seguridad al reducir el rea de ataque. Mayor Performance al no utilizar recursos en interfaz grfica. La configuracin del sistema se realiza a modo texto.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 10

Modo Texto
La instalacin a modo texto es idntica a la grfica, con excepcin de la interfaz, cada uno de sus pasos es el mismo, aunque suele ser algo ms lenta debido a que la seleccin de los tem se realiza en base a tabulador, barra de espacio y enter. Para seleccionar la instalacin en modo texto, se debe escribir en la pantalla inicial linux text lang=es

Configuracin de Servicios
La configuracin de servicios es recomendable hacer la primer vez que ingrese al sistema, se puede realizar a travs del comando setup, el cual se invoca una vez iniciada la sesin en el sistema.

Se recomienda revisar los Servicios del sistema y detener el llamado automtico de los servicios no utilizados, como por ejemplo el de Bluetoot.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 11

tem 2. Instalacin de software


La instalacin se software en los sistemas derivados de RedHat se hace a travs de rpm (RPM Package Manager) o desde yum (Yellowdog Updater Modified). A continuacin se explican ambos comandos y su modo de uso.

RPM
RPM es un potente Administrador de paquetes, que se puede utilizar para construir, instalar, consultar, verificar, actualizar y eliminar paquetes de software individuales. Un paquete se compone de un archivo de archivos y metadatos que se utilizan para instalar y borrar los archivos de archivo. El metadatos incluyen scripts de ayuda, los atributos de archivo, e informacin descriptiva sobre el paquete. Los paquetes vienen en dos variedades: los paquetes binarios, que se utiliza para encapsular el software a instalar, y la fuente de los paquetes, que contienen el cdigo fuente y la receta necesaria para producir paquetes binarios.

Sintaxis del comando rpm


Consultar Y Verificar Los Paquetes
rpm {-q|--query} [select-options] [query-options] rpm {-V|--verify} [select-options] [verify-options] rpm --import PUBKEY ... rpm {-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE ...

Instalacin, Actualizacin, Y Eliminacin De Paquetes


rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm {-U|--upgrade} [install-options] PACKAGE_FILE ... rpm {-F|--freshen} [install-options] PACKAGE_FILE ... rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

Ejemplos:
rpm -qa | grep http rpm -Uvh eaglemode-0.80.0-1.i586.rpm

Mayor informacin es posible encontrar leyendo el manual de rpm:


man rpm

tem 2. Instalacin de software - 12

YUM
yum es un rpm interactivo, basada en el gestor de paquetes. Se puede realizar automticamente los repositorios del sistema, incluyendo el anlisis de la dependencia y el tratamiento obsoleto basado en "repositorio" de metadatos. Tambin puede realizar la instalacin de nuevos paquetes, la eliminacin de paquetes antiguos y realizar consultas sobre los paquetes disponibles, entre muchos otros comandos.

Sintaxis del comando yum es


yum [options] [command] [package ...]

algnas de las opciones del comando yum son:


yum install package1 [package2] [...]] yum update [package1] [package2] [...] yum check-update yum upgrade [package1] [package2] [...] yum distribution-synchronization [package1] [package2] [...] yum remove | erase package1 [package2] [...] yum list [...] yum info [...] yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] yum groupinstall group1 [group2] [...] yum grouplist [hidden] [groupwildcard] [...] yum groupremove group1 [group2] [...] yum groupinfo group1 [...] yum search string1 [string2] [...]

Ejemplo:
yum install dhcpd

tem 2. Instalacin de software - 13

tem 3. La Shell de Linux


Introduccin
En primer lugar es bueno destacar que existen varias shell en GNU/Linux, la ms comn de encontrar es bash (GNU Bourne-Again SHell), como la mayor parte de las shell bash provee una serie de comandos. A continuacin no aparecen listados todos los comandos, ni todos los posibles usos de ellos, pero s es una primera aproximacin a su uso, para conocerlos e investigarlos.

Comandos Bsicos
Esta es una pequea lista de los comandos ms utilizados, no es que sean los ms faciles, la verdad es que "no hay comando complicado, slo comandos que no conocemos".

man
Este comando es el ms til de todos, su funcin es mostrar el manual del comando que se coloque a continuacin, dependiendo de la distribucin de Linux y de diversos programas, ste estar en tu idioma. Para saber como utilizarlo, puedes pedir el manual del manual escribiendo
man man

Cuando revisas un manual, como el de "man", es posible que aparezcan algnas referencias (en la seccin "SEE ALSO" o "VER TAMBIN"), las cuales estn numeradas, por ejemplo, en el caso de "man", es posible ver:
SEE ALSO: manpath(1), apropos(1), whatis(1), catman(8), less(1), setlocale(3), troff(1), nroff(1), man(7), ascii(7), ...

Esta es una lista de contextos relacionados de los cuales tambin puedes pedir con man, es decir despus de salir de man (con la tecla "q"), puedes escribir por ejemplo: man whatis. De esta forma siempre puedes encontrar informacin relacionada.

ls
Lista o muestra el contenido del directorio actual. El uso de este comando de forma ms bsica es sin parmetros, de esta forma lista todos los archivos y directorios ordenndolos en columnas de arriba a abajo y de izquierda a derecha.
bin boot dev etc home lib lost+found media misc mnt net opt proc root sbin selinux srv sys tmp usr var

tem 3. La Shell de Linux - 14

Obviamente el resultado variar dependiendo de en qu directorio estemos parados y que cosas tengamos ah. El parmetro que recibe este comando es algna expresin regular que represente lo que deseamos listar, por ejemplo podemos buscar dentro de "todo lo que comience con b", para ello usamos "b*"
ls b*

Es bueno a estas alturas decir que si existe algn directorio que coincida con "que comience con b", ls mostrar su contenido; por ejemplo, la salida del comando anterior regresa lo siguiente:
bin: alsacard alsaunmute arch awk basename bash cat chgrp chmod chown cp cpio csh cut date dbus-cleanup-sockets dbus-daemon dbus-monitor dbus-send dbus-uuidgen dd df dmesg dnsdomainname doexec domainname dumpkeys echo ed egrep env ex false fgrep fusermount gawk gettext grep gtar gunzip gzip hostname igawk ipcalc kbd_mode kill link ln loadkeys login ls mail mailx mkdir mknod mktemp more mount mountpoint mv netstat nice nisdomainname ntfs-3g ntfsmount pgawk ping ping6 ps pwd red redhat_lsb_init rm rmdir rpm rvi rview sed setfont setserial sh sleep sort stty su sync tar taskset tcsh touch tracepath tracepath6 traceroute traceroute6 tracert true ulockmgr_server umount uname unicode_start unicode_stop unlink usleep vi view ypdomainname zcat zsh

boot: config-2.6.23.1-49.fc8 config-2.6.23.8-63.fc8 grub initrd-2.6.23.1-49.fc8.img initrd-2.6.23.8-63.fc8.img lost+found System.map-2.6.23.1-49.fc8 System.map-2.6.23.8-63.fc8 vmlinuz-2.6.23.1-49.fc8 vmlinuz-2.6.23.8-63.fc8

tem 3. La Shell de Linux - 15

Existen tambin opciones para este comando, opciones que cambian los datos que muestra, estos se pueden combinar entre s, los ms comunes son los siguientes: -l : Muestra una lista de un archivo (directorio, etc) por linea, muestra el tipo del archivo, los permisos, el nmero de enlaces duros, el nombre del propietario, el del grupo al que pertenece, el tamao en bytes, la marca de tiempo y el nombre del archivo. -a : Muestra todos los archivos, incluyendo los ocultos (que comienzan con .) -d : No muestra el contenido interno de los directorios. -h : Muestra el tamao en formato humano (Kilos, Megas, etc.) -v : Ordena los archivos por versin en vez de alfabeticamente. Ejemplos ls -l muestra, de izquierda a derecha lo siguiente : el tipo del archivo, los permisos, el nmero de enlaces al archivo, el nombre del propietario, el del grupo al que pertenece, el tamao en bytes, la fecha de la ltima modificacin y el nombre del archivo.
total 150 drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4 root root 12 root root 4096 dic 1024 dic 9 22:20 bin 4 17:08 boot

4240 dic 15 15:15 dev

drwxr-xr-x 126 root root 12288 dic 15 15:41 etc drwxr-xr-x drwxr-xr-x drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x 12 root root 15 root root 4096 dic 13 22:56 home 4096 dic 15 04:23 lib 2 12:25 lost+found

2 root root 16384 dic 2 root root 2 root root 2 root root 2 root root 2 root root

4096 dic 15 15:15 media 0 dic 15 15:14 misc 4096 ago 13 10:47 mnt 0 dic 15 15:14 net 4096 dic 3 16:29 opt

dr-xr-xr-x 142 root root drwxr-x--drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxrwxrwt drwxr-xr-x drwxr-xr-x 10 root root

0 dic 15 12:14 proc 4096 dic 14 00:52 root

2 root root 12288 dic 11 13:48 sbin 2 root root 3 root root 12 root root 24 root root 14 root root 22 root root 4096 dic 4096 dic 2 12:25 selinux 2 12:45 srv

0 dic 15 12:14 sys 4096 dic 15 18:06 tmp 4096 dic 4096 dic 3 16:24 usr 2 12:48 var

ls -a muestra:
. .. .autofsck .autorelabel bin boot dev etc home lib lost+found media misc mnt net opt proc .pulse-cookie root sbin selinux srv .suspended sys

tem 3. La Shell de Linux - 16

ls -d b* muestra:
bin boot

Note la diferencia con la ejecucin sin la opcin -d Combinado algnas opciones, podemos ejecutar: ls -hl que muestra:
total 150K drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4,0K dic 4 root root 1,0K dic 9 22:20 bin 4 17:08 boot

12 root root 4,2K dic 15 15:15 dev 12K dic 15 15:41 etc

drwxr-xr-x 126 root root drwxr-xr-x drwxr-xr-x drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x

12 root root 4,0K dic 13 22:56 home 15 root root 4,0K dic 15 04:23 lib 2 root root 16K dic 2 12:25 lost+found

2 root root 4,0K dic 15 15:15 media 2 root root 0 dic 15 15:14 misc

2 root root 4,0K ago 13 10:47 mnt 2 root root 0 dic 15 15:14 net 3 16:29 opt

2 root root 4,0K dic

dr-xr-xr-x 142 root root drwxr-x--drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxrwxrwt drwxr-xr-x drwxr-xr-x

0 dic 15 12:14 proc

10 root root 4,0K dic 14 00:52 root 2 root root 12K dic 11 13:48 sbin 2 12:25 selinux 2 12:45 srv

2 root root 4,0K dic 3 root root 4,0K dic 12 root root

0 dic 15 12:14 sys

24 root root 4,0K dic 15 18:06 tmp 14 root root 4,0K dic 22 root root 4,0K dic 3 16:24 usr 2 12:48 var

cd
Cambia el directorio (o carpeta) actual. Al ejecutarse sin parmetro, normalmente (aun no he conocido un Linux, Unix o Solaris en que no suceda) cambia al directorio de home (o directorio base) del usuario en curso. Al entregarle un parmetro (nombre de algn directorio), se cambia a l. algnos nombres de directorios especiales son por ejemplo: . que hace referencia a mi directorio actual, .. que hace referencia al directorio padre, y / que es el directorio raz del sistema. Cabe destacar que uno puede cambiarse de directorio dando toda la ruta (directa o relativa) de una carpeta.

tem 3. La Shell de Linux - 17

Ejemplos Cambiarse al directorio Escritorio


cd Escritorio

Ir a la raz del sistema


cd /

Ir a la carpeta home que esta dentro de la raz


cd /home

Regresar a mi carpeta
cd

pwd
Muestra el directorio actual regresando toda su ruta desde la raz del sistema.
pwd

cp
Copia dentro del equipo local un archivo o directorio, para ello recibe dos parmetros, el origen y el destino.
cp origen destino

Existen algnas opciones que se utilizan bastante, no son todas, pero son las ms frecuentes: -R : Copia recursiva de directorios. -i : Pregunta si quiere sobrescribir los que tienen el mismo nombre. -d : copia los enlaces simblicos en vez de copiar el archivo (o directorio) al que apunta. -u : copia sobreescribiendo solamente los archivos ms viejos (una forma de sincronizacin).

tem 3. La Shell de Linux - 18

Ejemplos Copia mi carpeta Escritorio en la carpeta respaldo


cp -R Escritorio respaldo

Copia el archivo xorg.conf ubicado en /etc/X11 en mi carpeta de home


cp /etc/X11/xorg.conf $HOME

mv
Mueve o renombra un archivo o directorio a un nuevo destino. De que depende cual de las dos acciones ejecuta? Fcil, depende si existe el destino o no como directorio, en caso contrario renombra (ojo, si se mueve un archivo a otro que ya existe, lo reemplaza).
mv curriculum.pdf Documentos/personales/

Las opciones ms utilizadas de mv son: -i : pregunta antes de sobrescribir si el destino existe. -u : no mueve el archivo si existe en el destino uno ms actual.

rm
Borra un archivo o directorio.
rm archivoViejo.txt

Los operadores mas importantes son: -r : borra recursivamente. -i : pide confirmar. -f : por la fuerza. Nunca hagas lo siguiente aunque es gracioso (para el que observa)
rm -rf $HOME

ni ninguna cosa parecida, preocpate de manejar bien este comando, pues de que borra borra.

cat
Despliega un archivo por la salida estndar.
cat README.txt

tem 3. La Shell de Linux - 19

El operador entretenido que tiene es el -n que muestra los nmeros de linea, es especial si quieres ver que dice la linea que se queja un archivo PHP. En la mayora de los terminales con las teclas <shift> y <pg up> o <pg dw> nos permite desplazarnos.

more
Despliega un archivo por la salida estndar agregando pausas por pantalla. Claramente esto es bastante til cuando el archivo sobrepasa un par de pantallas.
more README.txt

tail
Muestra las ltimas lineas de un archivo. Tal ves te preguntes y para que solo quiero ver las ltimas lneas?, algnas respuestas posibles a esta pregunta son: Puede ser que ests viendo un archivo secuencial (como un log del sistema) en donde te interese solamente ver lo que ocurre ahora.

dmesg | tail # <--- ver los avisos ms recientes de mi sistema

Ver el progreso de un registro secuencia, gracias al operador ms utilizado, -f (follow) que deja el canal abierto mirando las ultimas lineas mientras se actualizan.

tail -f /var/log/messages

para concluir presionar <ctrl> + <c>

head
Igual que el anterior, pero muestra solamente las primeras lneas de un archivo. Tal vez te preguntes, y para qu solamente querra ver las primeras lneas? algnos casos posibles son: Quieres ver si un archivo se trata de lo que crees (en Linux, muchos archivos de configuracin guardan comentarios descriptivos en las primeras lneas):

head /etc/samba/smb.conf # <-- ser este el archivo de directivas de samba?

algnos archivos de registro y salidas de programa guardan informacin cronolgica "inversa", es decir, los ms recientes primero:

last | head # <-- quines son los ms recientes que se han conectado al sistema?

No recuerdas con qu opciones compilaste un cdigo fuente?

head config.log

tem 3. La Shell de Linux - 20

ps
Muestra los procesos en ejecucin. Entre todos los comandos que hemos visto, este es uno de los que tiene las ms variadas opciones, pues uno puede ver los procesos en total, por usuario, por grupo de usuario, etc... Lo ms comn en todo caso es que me interesen mis procesos, para ello se utiliza el operador -U seguido por el nombre del usuario.
ps -U gulixiano

lo que retornar algo similar a lo siguiente:


PID TTY 2505 ? 2561 ? 2564 ? 2565 ? 2635 ? 2636 ? 2639 ? 2641 ? 2643 ? 2648 ? 2650 ? 2651 ? 2653 ? 2658 ? 2662 ? 2673 ? 2675 ? 2696 pts/2 2735 ? 2756 ? 2761 ? 2915 ? 3557 ? 3660 ? 3684 ? 4445 pts/2 TIME CMD 00:00:00 startkde 00:00:00 ssh-agent 00:00:00 dbus-launch 00:00:00 dbus-daemon 00:00:00 start_kdeinit 00:00:00 kdeinit 00:00:00 dcopserver 00:00:00 klauncher 00:00:05 kded 00:00:00 kwrapper 00:00:00 ksmserver 00:00:10 kwin 00:00:05 kdesktop 00:00:13 kicker 00:00:17 artsd 00:00:00 kmix 00:00:17 yakuake 00:00:00 bash 00:00:00 firefox 00:00:00 run-mozilla.sh 00:24:08 firefox-bin 00:00:01 knotify 00:00:21 xchat 00:00:04 konqueror 00:00:01 kio_uiserver 00:00:00 ps

si le agregamos el operador x podemos ver adems los parmetros de los programas, ubicacin, entre otros. La primer columna de lo que retorna es el nmero del proceso.
ps x -U gulixiano

tem 3. La Shell de Linux - 21

retorna
PID TTY 2505 ? 2561 ? 2564 ? 2565 ? 2609 ? 2612 ? 2614 ? 2635 ? 2636 ? 2639 ? 2641 ? 2643 ? 2648 ? 2650 ? 2651 ? 2653 ? 2658 ? 2662 ? 2685 ? 2690 ? 2696 pts/2 2735 ? 2756 ? 2761 ? 2915 ? 3557 ? 3660 ? 3684 ? 4423 ? 4451 pts/2 STAT Ss Ss S Ss S Ss Ssl S Ss S S S S S S S S S S S Ss S S Sl S S S S Rl R+ TIME COMMAND 0:00 /bin/sh /usr/bin/startkde 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session 0:00 /usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients 0:00 /bin/dbus-daemon --fork --print-pid 4 --print-address 8 --session 0:00 /usr/bin/gnome-keyring-daemon 0:01 /usr/bin/gpg-agent -s --daemon 0:55 /usr/bin/pulseaudio -D 0:00 start_kdeinit --new-startup +kcminit_startup 0:00 kdeinit Running... 0:00 dcopserver --nosid 0:00 klauncher [kdeinit] --new-startup 0:05 kded --new-startup 0:00 kwrapper ksmserver 0:00 ksmserver 0:10 kwin -session 101bc18c1b6166000119671600300000064280000_1197099738_82464 0:05 kdesktop 0:13 kicker 0:17 /usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -c drkonqi -l 3 -f 0:00 kalarmd --autostart 0:00 /usr/libexec/gconfd-2 13 0:00 /bin/bash 0:00 /bin/sh /usr/lib/firefox-2.0.0.10/firefox -UILocale es-ES 0:00 /bin/sh /usr/lib/firefox-2.0.0.10/run-mozilla.sh 24:15 /usr/lib/firefox-2.0.0.10/firefox-bin -UILocale es-ES 0:01 knotify [kdeinit] 0:21 xchat 0:04 konqueror --silent 0:01 kio_uiserver 3:53 /usr/lib/nspluginwrapper/npviewer.bin 0:00 ps x -U gulixiano

kill
Mata algn proceso. Para entender mejor recomiendo ver man 7 signal que especifica cada una de las seales, en este pequeo texto utilizaremos la seal 9 (matar) y la seal 15 (terminar). Por ejemplo, supongamos que de la lista de procesos vistos en el ejemplo de ps deseamos terminar xchat, cuyo nmero de proceso es 3557
kill -15 3557

lo que cerrar (amablemente) el programa xchat. Ahora, supongamos que (por esas cosas que rara vez ocurren) se pega xchat y no est respondiendo, por lo que en ves de cerrarlo, es mejor matarlo (por la fuerza).
tem 3. La Shell de Linux - 22

Kill -9 3557

Mediante kill incluso se pueden detener o reiniciar procesos, no es lo ms habitual, pero de poder se puede.

killall
Este comando no esta disponible por defecto en todos los sistemas Unix, pero s en la mayora de las distribuciones Linux. Mata todos los procesos al los cuales el usuario tiene acceso. Similar al comando Kill, pero diseado para matar procesos por sus nombres. ejemplo:
killall firefox-bin

top
Al igual que ps muestra los procesos, a diferencia de ps, top los ordena por porcentaje de CPU utilizado (lo que se puede cambiar a porcentaje de memoria, etc.) Por ejemplo al ejecutar
top

se vera algo as como lo siguiente, note que se va actualizando.


top - 22:49:02 up Tasks: 129 total, Cpu(s): 15.3%us, Mem: Swap: 7:34, 1 user, load average: 1.12, 0.85, 0.80 0 stopped, 2.5%wa, 0 zombie 0.1%si, 0.0%st

2 running, 127 sleeping, 1.2%sy, 0.2%ni, 80.4%id, 395052k used, 81044k used,

0.3%hi,

450000k total, 2096440k total,

54948k free, 2015396k free,

2848k buffers 103548k cached

PID USER

PR

NI

VIRT

RES

SHR S %CPU %MEM 9.7

TIME+

COMMAND

4423 gulixiano 20 2483 root 20

0 98.3m 0 0 0 -5 -5 -5 123m

42m 9648 R 51.2 46m 3392 S 18m S 536 S 0 S 0 S 0 S

27:22.42 npviewer.bin 11:58.59 X 27:24.50 firefox-bin 0:01.20 init 0:00.00 kthreadd 0:00.00 migration/0 0:01.43 ksoftirqd/0

2.0 10.6 2.0 37.6 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0

2761 gulixiano 20 1 root 2 root 3 root 4 root 20 15 RT 15

323m 165m 2112 0 0 0 564 0 0 0

tem 3. La Shell de Linux - 23

Con la opcin -u se le puede especificar el usuario, por ejemplo si solo deseamos ver los procesos de root ejecutamos
top -u root

que muestra
top - 23:01:35 up Tasks: 129 total, Cpu(s): 16.4%us, Mem: Swap: 7:46, 1 user, load average: 1.80, 1.48, 1.09 0 stopped, 2.5%wa, 0 zombie 0.1%si, 0.0%st

2 running, 127 sleeping, 1.3%sy, 0.2%ni, 79.3%id, 402064k used, 81044k used,

0.3%hi,

450000k total, 2096440k total,

47936k free, 2015396k free,

3240k buffers 103564k cached

PID USER 2483 root 1 root 2 root 3 root 4 root 5 root 6 root

PR 20 20 15 RT 15 RT 15

NI 0 0 -5 -5 -5 -5 -5

VIRT 123m 2112 0 0 0 0 0

RES

SHR S %CPU %MEM 5.6 10.6 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0

TIME+

COMMAND

46m 3392 S 564 0 0 0 0 0 536 S 0 S 0 S 0 S 0 S 0 S

12:19.55 X 0:01.21 init 0:00.00 kthreadd 0:00.00 migration/0 0:01.47 ksoftirqd/0 0:00.00 watchdog/0 0:00.29 events/0

top adems recibe comandos mientras est en ejecucin, entre ellos, k es equivalente a kill, O es para ordenar por otro criterio, q sale, entre otros.

alias
Crea un alias de un comando, esto sirve bastante para escribir menos. Por ejemplo, podemos crear una alias para ls -al cosa de no escribir a cada rato esos 5 caracteres, podemos crear una alias una ves y de ah solo usar el alias.
alias ll='ls -al'

y despus de ello solo usamos


ll

Se puede crear un alias para prevenir borrar cosas accidentalmente incorporando la confirmacin (lo malo es que uno se acostumbra a responder que si).
alias rm='rm -i'

El uso del alias es desde que se crea hasta que se cierra la cuenta, para la perpetuidad del alias se puede agregar al archivo .bashrc (en el directorio base de tu usuario)

tem 3. La Shell de Linux - 24

Comandos Bsicos Avanzados


Estos se denominan as porque generalmente son utilizados para administrar el sistema.

chmod
Se usa para cambiar los permisos de los archivos y directorios. Los tipos de permisos son bsicamente 3 r :lectura w :escritura x :ejecucin (acceso) Los permisos los podemos agrupar en u : usuario g : grupo o : otros Para aadir un permiso se utiliza el + mas y para quitarlo el - menos, y para asignar quitando otros cambios se usa el =, con esto agregar a todos el permiso de lectura a un archivo sera as:
chmod ugo+r archivo

si deseamos que todos mis archivos y carpetas sean accedidas y ledas por las personas de mi grupo, puedo agregar la opcin de recursividad -R
chmod g+rx * -R

Cambio de permisos utilizando nmeros Es posible asignar un nmero identificatorio a cada tipo de permiso, considerando lo siguiente: r = 4 (lectura) w = 2 (escritura) x = 1 (ejecucin) - = 0 (sin permisos) Cuando asignamos los permisos utilizando nmeros debemos tener en cuenta que primero se sumarn los valores y dicho resultado es el que se usar. Ejemplos:
rw------- (600) Slo el propietario tiene el derecho de leer y escribir. chmod 600 archivo.txt rw-r--r-- (644) Slo el propietario tiene los permisos de leer y escribir; el grupo y los dems slo pueden leer. rwx------ (700) Slo el propietario tiene los derechos de leer, escribir y ejecutar el archivo. rwxr-xr-x (755) El propietario tiene los derechos de leer, ejecutar; el grupo y los dems slo pueden leer y ejecutar. escribir y

tem 3. La Shell de Linux - 25

rwx--x--x (711) El propietario tiene los derechos de lectura, escritura y ejecucin; el grupo y los dems slo pueden ejecutar. rw-rw-rw- (666) Todo el mundo puede leer y escribir en el archivo. No es una buena eleccin! rwxrwxrwx (777) Todo el mundo puede leer, escribir y ejecutar. Tampoco es buena eleccin!

chgrp
Cambia el grupo a un archivo o carpeta, su uso es simple, se especifica el grupo y de ah a que se le desea cambiar, al igual que a chmod tiene la opcin -R para cambiar el grupo de forma recursiva, por ejemplo podemos querer cambiar el grupo del directorio public_html y su contenido al grupo apache.
chgrp apache public_html -R

chown
Cambia el usuario y grupo a un archivo o directorio, su uso es similar a los comandos anteriores, por ejemplo podramos copiar una carpeta carpeta como root dentro del usuario gulixiano que pertenece al grupo gulix, el paso siguiente es que gulixiano pueda disponer de dicha carpeta y archivos interiores, el comando que debera ejecutar es:
chown gulixiano:gulix carpeta -R

df
Regresa el espacio disponible y utilizado en disco (por particiones montadas), la opcin que debe conocer es -h que retorna el espacio en "formato humano" (Kilos, Megas, etc):
df -h

du
Regresa el tamao de los archivos y carpetas de forma recursiva del lugar en donde te encuentres parado, al igual como en el comando anterior con la opcin -h queda en "formato humano":
du -h

Dos opciones de inters son: -s muestra solamente la suma total de los archivos examinados, esto es para conocer el espacio total que usa una carpeta, por ejemplo:
du -s $HOME/manuales

tem 3. La Shell de Linux - 26

Te dir que ests usando, por ejemplo, 246736 "unidades" en puros manuales, usa la opcin "-h" para pasar eso a formato humano:
du -sh $HOME/manuales

Mmmm. 241M (megas), nada mal! -a es la opcin opuesta, en vez de resumir el espacio ocupado en un solo nmero, entrega un detalle de cuntas "unidades" (Kilos o Megas con "-h") usa cada archivo y directorio que encuentre, siendo til para determinar qu est ocupando todo el espacio de tu home:
du -ah $HOME

Eso s, si tienes muchos archivos va a ser una larga lista por lo que puedes examinarla por partes usando "more" o "less".

find
Realiza una bsqueda, el parmetro opcional ms utilizado es el path, mediante una tubera uno puede filtrar con egrep o con grep.
find

un ejemplo, para buscar desde la raiz del sistema un archivo llamado "miarchivo.odt"
find / -name 'miarchivo.odt'

grep
Retorna una linea segn un trmino buscado en un archivo segn algna expresin regular. La sintaxis general del comando es:
grep lo_que_busco donde_busco

Ejemplos: buscar el usuario "gulixiano" en el archivo de registro de usuarios:


grep gulixiano /etc/passwd

regresara:
gulixiano:x:500:500::/home/gulixiano:/bin/bash

tem 3. La Shell de Linux - 27

ifconfig
Regresa o configura los datos de nuestra(s) tarjeta(s) de red. Su uso bsico es de consulta, en donde se llama sin parmetros.
ifconfig

retornando algo as como lo siguiente:


eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55 Bcast:192.168.0.255 Mask:255.255.255.0

inet addr:192.168.0.247

inet6 addr: fe80::214:2aff:fe14:9b4f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:2002 errors:0 dropped:0 overruns:0 frame:0 TX packets:1912 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1480919 (1.4 MiB) TX bytes:560964 (547.8 KiB)

Interrupt:20 Base address:0x8c00

lo

Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:2988 errors:0 dropped:0 overruns:0 frame:0 TX packets:2988 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3501364 (3.3 MiB) TX bytes:3501364 (3.3 MiB)

Normalmenre las tarjetas de red son nombradas como ethX en donde X va del 0 en adelante dependiendo de las tarjetas que tengamos, existen algnas distros que nombran a la inalambrica como wlanX en donde X es el nmero de tarjeta. Dependiendo de la distro, es probable que se necesite llamar a ifconfig de la siguiente manera /sbin/ifconfig. Notemos que en la primer linea de nuestra tarjeta tenemos el HWaddr seguido de la mac de nuestra tarjeta, en la segunda linea, encontramos nuestra IP (addr), broadcast (Bcast) y mascara de red (Mask). No detallaremos aqu como configurar la red a modo texto, es interesante, pero ese ya es un tema algo ms avanzado.

tem 3. La Shell de Linux - 28

ln
Crea un enlace (Acceso directo para los hijos de Windows). Recibe dos parmetros, origen y destino, normalmente se usa el operador -s simblico para crear enlaces simblicos. Por ejemplo, podemos crear un enlace simblico en el Escritorio del directorio Documentos (que se encuentra en paralelo a Escritorio).
ln -s ../Documentos Escritorio

otro operador de ln bastante usado es -f por la fuerza, en que obliga a hacer el enlace, es muy til si el enlace ya exista y lo queremos sobrescribir.

passwd
Cambia la contrasea, al usarse sin parmetros cambia la contrasea propia, el parmetro que recibe es el nombre de usuario al que se le desea cambiar la clave (se requieren permisos de root para ello).
passwd

ping
Solicita un eco desde algna maquina en la red, muy til para saber si tu conexin de red esta funcionando.
ping www.google.cl

retorna algo as como


PING www.l.google.com (74.125.47.99) 56(84) bytes of data. 64 bytes from 74.125.47.99: icmp_seq=1 ttl=245 time=162 ms 64 bytes from 74.125.47.99: icmp_seq=2 ttl=245 time=161 ms

--- www.l.google.com ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 161.464/161.841/162.218/0.377 ms

Presiona <ctrl> + <c> para terminar la ejecucin de este comando.

route
Sirve para ver o configurar la(s) puerta(s) de enlace de mi equipo. Su uso bsico es sin parmetros y es para ver cual es mi puerta de enlace y por que dispositivo de red est saliendo.
route

tem 3. La Shell de Linux - 29

debera mostrar algo as como


Kernel IP routing table Destination 192.168.0.0 192.168.122.0 default Gateway * * 192.168.0.1 Genmask 255.255.255.0 255.255.255.0 0.0.0.0 Flags Metric Ref U U UG 0 0 0 0 0 0 Use Iface 0 eth0 0 virbr0 0 eth0

La puerta de enlace que toma es la que est marcada con default, en nuestro caso 192.168.0.1 conectado por la tarjeta de red eth0 Al igual que con ipconfig, este comando no lo tocaremos ms aqu, pero tiene para mucho estudio.

scp
Copia archivos de o a maquinas remotas, la sintaxis de este comando es igual a la de cp, la diferencia es el origen o el destino que pueden ser remotos, para especificar el usuario y maquina y ruta remota se estila colocar usuario@maquina:/ruta/remota, despus de presionar enter solicitara la o las contraseas. Por ejemplo don Juan Prez usuario de linux en su equipo de casa y en su notebook, podra copiar las fotos de sus vacaciones (que tiene en su notebook) en el pc de su casa (obviamente encendido) desde Brasil a Chile sin mayor problema.
scp fotosSaoPablo.tar.bz2 jperez@200.190.22.12:/home/jperez/fotos/vacaciones2007/ jperez@200.190.22.12's password:

la opcin para recursivo es -r con la ere minscula. El caso ms extrao para usar este comando es por ejemplo para copiar algo dentro del mismo equipo pero a otro usuario, por ejemplo, un rpm que bajamos copiarlo al directorio de root.
scp VMware-server-1.0.3-44356.i386.rpm root@localhost:/root/ root@localhost's password:

ssh
Permite acceder a una shell en un equipo remoto, dentro de las opciones interesantes esta -X que permite ejecutar de forma remota aplicaciones X11 (si el servidor lo permite). Por ejemplo, supongamos que Juan Perez, mientras est de vacaciones se entera que existe una vulnerabilidad en su servidor ftp y que actualizando queda protegido. Obviamente no va a viajar a Chile interrumpiendo la playa y caipiria... lo que hace es conectarse remotamente para actualizar.
ssh jperez@200.190.22.12

Tras lo cual actualiza el ftp.


tem 3. La Shell de Linux - 30

su
Hecha a correr una shell como otro usuario, es muy practico tener una consola como un usuario distinto, por ejemplo como root o como un usuario con privilegios distintos, as uno puede probar sin necesidad de loggearse una y otra vez. Por ejemplo supongamos que quiero ser jperez lo que har es:
su - jperez

una vez presionado el enter me pedir la contrasea, a menos que sea root o tenga privilegios especiales. Para convertirme en root basta con teclear
su -

yes
Este comando escribe y mientras no sea cancelado, puede sonar a un comando intil, pero gracias a las tuberas y redireccionamientos se convierte en un comando indispensable.

time
Haciendo uso del comando time, sirve para medir el tiempo que demora un comando en ejecutarse.
root@fenix:/home/knx# time ls Documentos Downloads Escritorio Imgenes Msica Plantillas programas

real user sys

0m0.403s 0m0.004s 0m0.016s

Tuberas y Redireccionamientos
Las tuberas o pipeline son interesantes, si bien no haremos un uso detallado de ellas aqu, la idea es dejar el concepto e inquietud para el estudio profundo personal. La gracia de esto, es que la salida de un comando puede ser la entrada de otro (tubera) o bien que en ves de mostrar algo por pantalla (o la salida o entrada predeterminada) podemos modificar el dispositivo de salida (o entrada).

Tuberas (pipeline)
Transformando el flujo de los datos... se lee de izquierda a derecha, la salida del comando de la derecha, es la entrada del comando de la izquierda, el smbolo de la tubera es | Ejemplo de tubera yes y rm -i Veamos un ejemplo, supongamos que hemos creado el alias para borrar confirmando
alias rm='rm -i'

tem 3. La Shell de Linux - 31

Pero deseo borrar todos los archivos de respaldo (terminados en ~) con lo que obviamente hara un
rm *~

pero comenzara a preguntar si quiero borrar cada uno de ellos, a lo que tendra que ir respondiendo que si (algo bastante tedioso) y terminaramos odiando el rm -i ...para que ello no ocurra podemos usar una tubera y decir que si a todo gracias al comando yes.
yes | rm *~

Esto har que para cada pregunta de confirmacin, yes le dir que si. Ejemplo de tubera, bsqueda de archivo Supongamos que hemos creado un documento en OpenOffice.org (OOo) y que no sabemos donde lo dejamos (caso ficticio, nunca sucede), recordamos que el ttulo del documento tenia la palabra resumen, pues se trata del resumen del libro que hemos ledo, por lo que tenemos dos filtros de bsqueda, la palabra resumen y el formato odt, con ello hacemos lo siguiente:
find | grep resumen | grep odt

con lo que decimos que buscara, dicha bsqueda se la pasa a grep resumen (para filtrar) y lo que encuentre grep resumen se lo entrega a grep odt (para el segundo filtro).

Redireccionamiento
El simbolo que se usa para cambiar la direccin es > para direccionar una salida y de < para una entrada. Ejemplo, copiando un archivo con cat Como vimos anteriormente, cat despliega un archivo en pantalla, para copiar un archivo usando cat, lo que hacemos es direccionar la salida de pantalla a un archivo.
cat README.txt > LEEME.txt

Ejemplo, creando un archivo con cat cat no es un editor de texto, pero cuando no se le entrega el parmetro (uno o varios archivo), hace un eco de lo que escribimos en pantalla, dicho eco lo podemos redireccionar a un archivo y as crearlo con lo que estamos escribiendo.
cat > creandoArchivoConCAT.txt

Una vez hecho esto escribe lo que quieras, para terminar de escribir presiona <ctrl>+<d> lo que enviar un fin de archivo, luego puedes hacer un
cat creandoArchivoConCAT.txt

y ver lo que has escrito.


tem 3. La Shell de Linux - 32

Dado a que cat despliega uno o varios archivos que se le entregue, estos se pueden concatenar en uno solo redireccionando la salida, es as como por ejemplo podemos hacer:
cat capitulo1.txt capitulo2.txt capitulo3.txt > libro.txt

Trabajos en segundo plano


control Z

A veces necesitamos ejecutar un comando mientras estamos trabajando con otro, por ejemplo, supongamos que estamos modificando los permisos de un usuario en visudo y olvidamos como era el login del usuario, en ves de cerrar visudo y abrirlo mas tarde, podemos suspender su ejecucin con control Z
jobs

Con jobs podemos ver todas las tareas que tenemos suspendidas, por ejemplo en el caso anterior, nos entrega
[1]+ Stopped visudo

fg

Lo prctico de la suspensin es poder retomar lo que hemos dejado en segundo plano, esto lo hacemos con el comando fg y el nmero del proceso suspendido. En nuestro ejemplo
fg 1

&

El & se usa para dejar inmediatamente una ejecucin en segundo plano, por ejemplo, supongamos que queremos crear un indice de nuestro equipo, pero queremos dejar el terminal libre por si necesitamos ejecutar otra accin. Lo que haramos sera:
find / > indice.txt &

bg

El comando bg permite enviar a segundo plano un proceso que se encuentre en estado de suspensin. Veamos un ejemplo: ejecutamos el siguiente comando de prueba
ping www.google.cl

tem 3. La Shell de Linux - 33

comenzaremos a obtener la salida:


PING www.l.google.com (74.125.45.99) 56(84) bytes of data. 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=1 ttl=48 time=258 ms 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=2 ttl=46 time=211 ms 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=4 ttl=48 time=247 ms 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=6 ttl=46 time=370 ms

ctr+z para suspenderlo,tendremos la siguiente salida:


^Z [1]+ Stopped ping www.google.cl

Luego si deseamos , lo podemos enviar a segundo plano ( con lo que perderemos el control que tenamos sobre el proceso)
bg 1

y tendremos la siguiente salida por consola ( tambin se comenzaran a ver los mensajes de la salida del comando )
[1]+ ping www.google.cl &

tem 3. La Shell de Linux - 34

tem 4. El kernel de Linux


El kernel es el ncleo del sistema operativo. El kernel de las distribuciones GNU/Linux, como por ejemplo CentOS, se llama Linux. Linux est licenciado bajo la GPL v2 y est desarrollado por colaboradores de todo el mundo. El ncleo Linux fue concebido por el entonces estudiante de ciencias de la computacin finlands, Linus Torvalds, en 1991. Hoy en da, Linux es una marca registrada de Linus Torvalds en los Estados Unidos. CentOS maneja la misma notacin que RedHat para los paquetes del kernel, estos son: kernel : Contiene el kernel para sistemas multiprocesos. Para el sistema x86 slamente se utilizan los primeros 4GB de RAM. Como tal, los sistemas x86 con ms de 4GB de RAM deben utilizar el kernel-PAE. Kernel-PAE : (Physical Address Extension) Es solo para sistemas i686, PAE soporta sistemas con mas de 4GB de RAM, y es fiable hasta 16GB. kernel-xen : Incluye una versin del kernel de Linux la cual se necesita para ejecutar Virtualizacin.

Para visualizar que versin del kernel usamos actualmente, consultamos mediante el comando:
uname -a

Si queremos ver todos los paquetes de kernel que tenemos instalados, podemos utilizar:
rpm -qa| grep kernel

La versin del ncleo Linux actualmente consta de cuatro nmeros. Por ejemplo, asumamos que el nmero de la versin est compuesta de esta forma: A.B.C[.D] (ej.: 2.2.1, 2.4.13 2.6.30.6). El nmero A denota la versin del ncleo. Es el que cambia con menor frecuencia y solo lo hace cuando se produce un gran cambio en el cdigo o en el concepto del ncleo. Histricamente slo ha sido modificado dos veces: en 1994 (versin 1.0) y en 1996 (versin 2.0). El nmero B denota la subversin del ncleo. Antes de la serie de Linux 2.6.x, los nmeros pares indicaban la versin estable lanzada. Por ejemplo una para uso de fabricacin, como el 1.2, 2.4 2.6. Los nmeros impares, en cambio, como la serie 2.5.x, son versiones de desarrollo, es decir que no son consideradas de produccin. Comenzando con la serie Linux 2.6.x, no hay gran diferencia entre los nmeros pares o impares con respecto a las nuevas herramientas desarrolladas en la misma serie del ncleo. Linus Torvalds dictamin que este ser el modelo en el futuro.
tem 4. El kernel de Linux - 35

El nmero C indica una revisin mayor en el ncleo. En la forma anterior de versiones con tres nmeros, esto fue cambiado cuando se implementaron en el ncleo los parches de seguridad, bugfixes, nuevas caractersticas o drivers. Con la nueva poltica, solo es cambiado cuando se introducen nuevos drivers o caractersticas; cambios menores se reflejan en el nmero D. El nmero D se produjo cuando un grave error, que requiere de un arreglo inmediato, se encontr en el cdigo NFS de la versin 2.6.8. Sin embargo, no haban otros cambios como para lanzar una nueva revisin (la cual hubiera sido 2.6.9). Entonces se lanz la versin 2.6.8.1, con el error arreglado como nico cambio. Con 2.6.11, esto fue adoptado como la nueva poltica de versiones. Bug-fixes y parches de seguridad son actualmente manejados por el cuarto nmero dejando los cambios mayores para el nmero C.

Normalmente despus del nmero de la versin del kernel se especifica la arquitectura, esta puede ser algna de las siguientes: x86_64 para las arquitecturas AMD64 e Intel EM64T ia64 para la arquitectura Intel Itanium. ppc64pseries para la arquitectura IBM eServer pSeries. s390 para la arquitectura IBM S/390. s390x para la arquitectura IBM eServer System z. i686 para sistemas Intel Pentium II, Intel Pentium III, Intel Pentium 4, AMD Athlon y sistemas AMD Duron.

Configuracin del gestor de arranque para un nuevo kernel


El paquete RPM kernel configura el gestor de arranque para arrancar el nuevo kernel (excepto para sistemas IBM eServer iSeries). Sin embargo, no configura el gestor de arranque para cargar el nuevo kernel por defecto. Es una buena idea confirmar que el gestor de arranque se ha configurado correctamente. Esto es un paso crucial. Si el gestor de arranque est configurado de forma incorrecta, no podrn arrancar CentOS correctamente. Si esto ocurre, arranque el sistema con el disquete de arranque que cre anteriormente e intente configurar de nuevo el gestor de arranque. Todos los sistemas x86 (incluyendo todos los sistemas AMD64) utilizan GRUB como gestor de arranque.

tem 4. El kernel de Linux - 36

GRUB
Confirme que el archivo /boot/grub/grub.conf contiene una seccin title con la misma versin que el paquete kernel que acaba de instalar
# Note that you do not have to rerun grub after making changes to this file # NOTICE: # # # # You have a /boot partition. This means that

all kernel and initrd paths are relative to /boot/, eg. root (hd0,0) kernel /vmlinuz-version ro root=/dev/hda2 initrd /initrd-version.img

#boot=/dev/hda default=1 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Enterprise Linux (2.6.9-5.EL) root (hd0,0) kernel /vmlinuz-2.6.9-5.EL ro root=LABEL=/ initrd /initrd-2.6.9-5.EL.img title Red Hat Enterprise Linux (2.6.9-1.906_EL) root (hd0,0) kernel /vmlinuz-2.6.9-1.906_EL ro root=LABEL=/ initrd /initrd-2.6.9-1.906_EL.img

Si ha creado una particin separada para /boot/ la ruta al kernel y la imagen initrd sern relativas a /boot/. Observe que el nuevo kernel no est configurado para ser el kernel por defecto. Para configurar GRUB para que arranque el nuevo kernel por defecto, cambie el valor de la variable default al nmero del ttulo de la seccin que contiene el nuevo kernel. La cuenta comienza con 0. Por ejemplo, si el nuevo kernel es el primer ttulo en la seccin, configure default a 0. Comience evaluando el nuevo kernel reiniciando el computador y vigilando los mensajes para asegurarase de que el hardware es detectado adecuadamente.

tem 4. El kernel de Linux - 37

tem 5. Sistemas de archivos


El sistema de archivos UNIX est caracterizado por: Una estructura jerrquica. Un tratamiento consistente de la informacin de los archivos. Proteccin de los archivos.

Este estndar del sistema de archivos Linux sigue el mismo principio bsico que la mayora de los sistemas de archivos UNIX siguen, sin embargo que este estndar no intenta concordar en cada aspecto posible con algna implementacin particular del sistema UNIX. De cualquier forma, muchos de los aspectos de este estndar estn basados en ideas encontradas en UNIX y sistemas similares a UNIX. Al contrario que en Windows o MS-DOS el sistema de archivos en cualquier sistema UNIX no est ligado de una forma directa con la estructura del Hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 7 discos duros para crear las unidades c:, d: o m:. Todos el sistema de archivos de UNIX tiene un origen nico la raz o root representada por /. Bajo este directorio se encuentran todos los archivos a los que puede acceder el sistema operativo. Estos archivos se organizan en distintos directorios cuya misin y nombre son estndar para todos los sistema UNIX.
/ Raz del sistema de archivos. /dev Contiene archivos del sistema representando los dispositivos que estn fsicamente instalados en el ordenador. /etc Este directorio esta reservado para los archivos de configuracin del sistema. En este directorio no debe aparecer ningn archivo binario (programas). Bajo este deben aparecer otros dos subdirectorios: /etc/X11 archivos de configuracin de X Window /etc/skel archivos de configuracin bsica que son copiados al directorio del usuario cuando se crea uno nuevo. /lib Contiene las libreras necesarias para que se ejecuten los programas que residen en /bin (no las libreras de los programas de los usuarios). /proc Contiene archivos especiales que o bien reciben o envan informacin al kernel del sistema (Se recomienda no modificar el contenido de este directorio y sus archivos). /sbin Contiene programas que son nicamente accesibles al superusuario o root. /usr Este es uno de los directorios ms importantes del sistema puesto que contiene los programas de uso comn para todos los usuarios. Su estructura suele ser similar a la siguiente: /usr/bin Programas de uso general, lo que incluye el compilador de C/C++. /usr/doc Documentacin general del sistema. /usr/etc archivos de configuracin generales. /usr/include archivos de cabecera de C/C++ (.h). /usr/lib Libreras generales de los programas. /usr/sbin Programas de administracin del sistema. /usr/src Cdigo fuente de programas. /var Este directorio contiene informacin temporal de los programas (lo cual no implica que se pueda borrar su contenido)

tem 5. Sistemas de archivos - 38

Estructura del sistema de Archivos


Resulta paradjico que el sistema de archivos ms utilizado de Linux, y por lo tanto probablemente el ms utilizado del mundo del cdigo abierto, el llamado Ext2, Ext3 o Ext4 (segn su versin) sea tan desconocido. Lo primero que hay que observar es que no existen tres sistemas de archivos diferentes, Ext2, Ext3 y Ext4, sino que solamente existe uno, llammosle simplemente Ext2, pero con un montn de caractersticas (features) opcionales; algnas de estas caractersticas son compatibles hacia atrs y otras no. Lo que s existen son tres mdulos de kernel diferentes en Linux, cada uno con un nmero creciente de caractersticas soportadas (ms sobre esto ms adelante). A continuacin es conveniente aclarar el significado de algnos trminos: Bloque: un conjunto de bytes contiguos en disco, de un tamao determinado y que comienza en una posicin mltipla de ese mismo tamao. Todos los bloques tienen el mismo tamao, que debe ser una potencia de 2. Es importante observar que el espacio en disco siempre se asigna en bloques enteros. El tamao mnimo de bloque es de 1024 bytes. algnos bloques se utilizan para guardar datos de archivos y otros para estructuras auxiliares. Inodo: estructura en disco que representa un archivo u otro objeto similar (enlace simblico, fifo, device, etc.). Se identifica de forma nivoca con un nmero llamado naturalmente nmero de inodo. Puedes ver el nmero de inodo que corresponde a un archivo con el comando ls -i. Grupo de bloques: un conjunto de bloques contiguos, junto con una tabla de inodos. La idea es que se intenten mantener cerca el inodo y los datos de un mismo archivo. Descriptor de grupo de bloques: estructura que describe los contenidos de un group de bloques. Bitmap: no es un dibujo sino un array de bits, donde cada uno indica si un bloque o inodo est libre o en uso. Se utiliza para buscar rpidamente huecos libres.
Libre Superbloque Descriptores de grupos de bloques Grupo de bloques #0 Grupo de bloques #1 ... Grupo de bloques #N

La estructura bsica de un sistema Ext2 es la siguiente:

Y cada grupo de bloques tiene la siguiente estructura:


Bitmap de bloques Bitmap de inodos Tabla de inodos Bloques de datos
tem 5. Sistemas de archivos - 39

A continuacin se describen con detalle cada uno de estos elementos.

Libre
Los primeros 1024 bytes del dispositivo de bloques no se utilizan para nada. La idea es que el principio de la particin suele utilizarse para instalar algn tipo de sistema de arranque o de tabla de particiones. Otros sistemas, como FAT, hacen malabarismos para integrar varias estructuras no relacionadas en el primer sector del disco sin que se pisen entre s.

Superbloque
En la posicin 1024 de la particin se encuentra el superbloque. Este contiene informacin clave del sistema, tanto esttica (tamao de las estructuras) como dinmica (espacio libre). Tan importante es esta estructura que se mantienen copias de ella desperdigadas por el disco, de manera que si se destruyera el comienzo del sistema se pudiera recuperar la mayor informacin posible (ms sobre eso ms adelante). Como unas cuantas lneas de cdigo valen ms que mil palabras, aqu est la estructura del superbloque escrita en C (ntese que todos los datos en disco se guardan en Little-Endian, aunque no se indique en el cdigo):
struct Superblock { uint32_t inodes; uint32_t blocks; uint32_t reserved_blocks; uint32_t free_blocks; uint32_t free_inodes; uint32_t first_data_block; uint32_t log_block_size; uint32_t fragment_size; uint32_t blocks_per_group; uint32_t fragments_per_group; uint32_t inodes_per_group; uint32_t mount_time; uint32_t write_time; uint16_t mount_count; uint16_t max_mount; uint16_t magic; uint16_t state; uint16_t errors; uint16_t minor; uint32_t last_check; uint32_t check_int; uint32_t creator_os; uint32_t rev_level; uint16_t resv_uid; uint16_t resv_gid; //rev_level == 1 uint32_t first_inode; uint16_t inode_size; uint16_t block_group; uint32_t feature_compat; uint32_t feature_incompat; uint32_t feature_ro_compat; uint8_t uuid[16]; };

Los campos a partir del comentario rev_level == 1 solo existen si rev_level es mayor o igual a 1 (tu disco es realmente viejo si tienes rev_level a 0). Y hay ms campos a continuacin de estos, pero que solo se usan con features particulares y no las comentar aqu.

tem 5. Sistemas de archivos - 40

Los campos del superbloque significan lo siguiente: inodes: El nmero total de inodos en el sistema de archivos. blocks: El nmero total de bloques en el sistema de archivos. reserved_blocks: El nmero de bloques reservados para el usuaro root. free_blocks: El nmero de bloques libres. free_inodes: El nmero de inodos libres. first_data_block: El primer bloque utilizable para datos. log_block_size: El logaritmo base 2 del tamao de bloque, menos 10. Es decir, 0 es 1024, 1 es 2048, 2 es 4096, 3 es 8192, etc. fragment_size: Los fragmentos son una obsolescencia, as que esto no sirve para nada. blocks_per_group: El nmero de bloques de datos por grupo de bloques. fragments_per_group: Vase dos ms arriba. inodes_per_group: El nmero de inodos por grupo de bloques. mount_time: La fecha/hora de la ltima vez que se mont el sistema en lectura/escritura (como time_t). write_time: La fecha/hora de la ltima vez que se desmont el sistema habindolo montado como lectura/escritura. mount_count: El nmero de veces que se mont el sistema desde el ltimo chequeo. max_mount: Cuando el sistema se monta este nmero de veces se fuerza un chequeo de mantenimiento. magic: Un nmero fijo que identifica esta estructura. Debe ser 0xEF53. state: El estado general del sistema. 1 es correcto, otro valor indica errores. errors: Qu hacer si se encuentran errores en el formato de disco. 1 indica continuar como si nada; 2 conmuna el sistema a solo lectura; 3 genera un panic y bloquea el sistema operativo. Puede cambiarse con la opcin de montaje errors. minor: El nmero menor de la revisin del formato. Bsicamente no sirve para nada. last_check: La fecha/hora del ltimo chequeo. check_int: Si el ltimo chequeo ha sido hace ms de este nmero de segundos se fuerza un chequeo de mantenimiento. creator_os: El sistema operativo en el que se cre este sistema. 0 es Linux, 1 es Hurd, 3 es FreeBSD. rev_level: Si es 1 o superior existen los campos posteriores a resv_gid. Es 1 siempre salvo en sistemas prehistricos. resv_uid: El usuario para el que se reservan los reserved_blocks. Normalmente es 0 (root) resv_gid: Lo mismo que el anterior, pero el grupo. first_inode: El primero inodo disponible para uso general. Casi siempre es 11, que es el valor por defecto si rev_level==0.
tem 5. Sistemas de archivos - 41

inode_size: El tamao de la estructura de inodo en disco. Suele ser 128 o 256, pero puede ser cualquier potencia de 2 mayor. Si rev_level==0 es 128. block_group: Identifica la copia de este superbloque. Solo es til para el diagnsticos. feature_compat: Features compatibles. Vase ms abajo. feature_incompat: Features incompatibles. Vase ms abajo. feature_ro_compat: Features compatibles en modo de solo lectura. Vase ms abajo.

Features
Se llaman features (o caractersticas) a las modificaciones en el formato de archivos respecto a la implementacin Ext2 original. Se clasifican en tres tipos segn cmo afectan a la compatibilidad hacia atrs, es decir, a cmo debe comportarse un driver que no conozca esa feature. Compatibles: El driver puede funcionar perfectamente ignorando esta caracterstica. Incompatibles: El driver no debe utilizar el sistema de archivos si no conoce esta caracterstica. RO-compatibles: (ReadOnly o solo lectura) El driver puede leer el sistema de archivos ignorando esta caracterstica, pero no debe modificarlo. Cada una de estas features se representa con un bit en el campo del superbloque correspondiente. algnas features se pueden activar y/o desactivar de un sistema de archivos existente usando el comando tune2fs. La diferencia entre los distintos drivers Ext2, Ext3 y Ext4 radica principalmente en las features disponibles y activadas por defecto. As, Ext3 es bsicamente igual que Ext2, pero con journal; y Ext4 es Ext3 con extents y flex_bg.

Descriptores de grupos de bloques


En el siguiente bloque al que contiene el superbloque comienza la lista de descriptores de grupos de bloques, que se prolonga por cuntos bloques sea necesario. Puedes calcular cantos grupos de bloques tiene el sistema dividiendo inodes entre inodes_per_group y redondeando hacia arriba. La estructura un descriptor de grupo de bloques es:
struct GroupDesc { uint32_t block_bitmap; uint32_t inode_bitmap; uint32_t inode_table; uint16_t free_blocks_count; uint16_t free_inodes_count; uint16_t used_dirs_count; uint16_t dummy[7]; };

Los campos de esta estructura son: block_bitmap: El nmero de bloque donde comienza el bitmap de bloques de datos de este grupo. inode_bitmap: El nmero de bloque donde comienza el bitmap de inodos de este grupo. inode_table: El nmero de bloque donde comienza la tabla de inodos de este grupo. free_blocks_count: El nmero de bloques de datos libres en este grupo. free_inodes_count: El nmero de inodos libres en este grupo.
tem 5. Sistemas de archivos - 42

used_dirs_count: Cantos directorios hay en este grupo. dummy: Relleno para alinear la estructura. algnas features utilizan algno de estos bytes.

La idea es que el driver disponga de estos datos para decidir en qu grupo de bloques crear un archivo minimizando el riesgo de fragmentacin.

Grupo de bloques
Un grupo de bloques viene descrito por el descriptor de grupo de bloques correspondiente. Los bloques de datos que corresponden a un grupo no se guardan en el descriptor porque se deducen directamente del campo blocks_per_group del superbloque: el grupo 0 va del 0 a blocks_per_group-1; el grupo 1 va de blocks_per_group a 2*blocks_per_group 1; el grupo N va de N*blocks_per_group a (N+1)*blocks_per_group 1. Naturalmente, puesto que los bitmaps y los inodos tambin son parte del grupo se solapan con los bloques de datos. Para evitar que se machaquen estas estructuras se marcan permanentemente como ocupados en el block_bitmap al crear el sistema de archivos. En algnos grupos de bloques, al principio de los bloques de datos se guarda una copia del superbloque y de los descriptores de grupos. Naturalmente, en el block_bitmap se marcan estos bloques como ocupados. La longitud de las estructuras de un grupo de bloques se deduce de campos del superbloque: el bitmap de bloques tiene blocks_per_group bits, alineado hacia arriba a un nmero entero de bloques; el bitmap de inodos tiene un inodes_per_group bits, alineado de la misma manera; la tabla de inodos tiene inodes_per_group inodos de inode_size bytes cada uno, alineado igualmente.

Tabla de inodos
La tabla de inodos de un grupo de bloques consiste simplemente en un array de inodos, uno tras otro, de inode_size bytes cada uno. La estructura de un inodo es:
struct INode { uint16_t uint16_t uint32_t uint32_t uint32_t uint32_t uint32_t uint16_t uint16_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t }; mode; uid; size; atime; ctime; mtime; dtime; gid; links; nr_blocks; flags; reserved1; blocks[12]; iblock; iiblock; iiiblock; generation; file_acl; size_hi; reserved2[4];

Los contenidos de esta estructura son intencionadamente similares a varios de los campos de la estructura stat devuelta por las llamadas al sistema stat y fstat (vase man 2 stat para ms informacin). El significado de los campos es el siguiente: mode: El tipo de inodo y los permisos, en un campo de bits. Los 9 bits menos significativos son los permisos (3 para el propietario, 3 para el grupo y 3 para otros), otros 3 bits son para opciones varias, y 4 bits ms indican el tipo de inodo. uid: El identificador de usuario (uid) propietario del archivo.
tem 5. Sistemas de archivos - 43

size: Los 32 bits menos significativos del tamao del archivo, en bytes. atime: La fecha/hora del ltimo acceso a los datos del archivo. ctime: La fecha/hora del ltimo cambio al contenido de esta estructura (el inodo, no los datos del archivo). mtime: La fecha/hora del ltimo cambio a los datos del archivo. dtime: La fecha/hora en la que se borr el inodo. Debe ser 0 para inodos existentes y distinto de 0 para inodos borrados. gid: El identificador de grupo (gid) propietario del archivo. links: El numero de enlaces (links) a este inodo. Se refiere a hard links, no links simblicos. nr_blocks: El nmero de bloques total que ocupa este inodo. Es, ms o menos, el dato devuelto por el comando du. flags: Bits varios. La mayora solo pueden existir si est activada la feature correspondiente. reserved1: Este valor se usa en algnos sistemas operativos, para tareas particulares, pero en Linux no se usa para nada. blocks: Nmeros de bloques de datos. iblock: Nmero de bloque indirecto. iiblock: Nmero de bloque doble-indirecto. iiiblock: Nmero de bloque triple-indirecto. generation: Este es un nmero secuencial que se incrementa cada vez que se reutiliza el inodo despus de borrarlo. Lo necesitan algnos programas como NFS. file_acl: El nmero de bloque donde se guardan los attributos extendidos, si es que existen. size_hi: Los 32 bits ms significativos del tamao del archivo (para archivos de ms de 4 GB). reserved2: Esto sirve para hacer el tamao de la estructura exactamente 128 bytes. Estos y los siguientes, si el inodo es mayor de 128 sirven para guardar attributos extendidos y otra informacin adicional.

Los campos blocks, iblock, iiblock y iiiblock merecen una mencin especial. Los primeros 12 bloques de datos se guardan directamente en los valores blocks[0] a blocks[11]. A archivos ms grandes se les asigna un bloque de datos llamado bloque indirecto<, y se guarda su nmero en iblock. Este bloque se llena con los siguientes nmeros de bloques de datos del archivo. As, si el tamao de bloque es de 4 KB, y puesto que cada nmero de bloque son 4 bytes, en el bloque indirecto caben 1024 referencias a bloques de datos. Para archivos que necesiten ms espacio se utiliza un bloque doble-indirecto y se guarda su nmero en iiblock. Este contiene nmeros de bloques indirectos, as que con bloques de 4 KB puede referenciar 1024 bloques indirectos que son 1024 * 1024 = 1048576 bloques de datos. Y para archivos que necesiten an ms espacio existe el bloque triple-indirecto, que es fcil imaginar para qu sirve. Como optimizacin especial, si el inodo es un link simblico, y el tamao es menor de 60 bytes (casi todos lo son) entonces no se guardan los datos en un bloque de datos, sino que se utiliza directamente el array blocks y los tres campos siguientes como si fuera un array de bytes. Tiene sentido hacerlo para los link simblicos porque son inmutables, es decir, una vez creados no se pueden modificar.
tem 5. Sistemas de archivos - 44

Directorios
Un directorio es similar a un archivo ordinario, excepto que el campo mode del inodo indica que es un directorio ((mode & 0170000) == 0040000) y que el contenido de datos debe tener un formato particular. Bsicamente contiene una lista de entradas de directorio o (direntries), que asocian un nombre con un nmero de inodo. Los directorios tienen un tamao variable, pero cumplen la siguiente estructura:
struct DirEntry { uint32_t inode; uint16_t entry_len; uint8_t name_len; uint8_t type; char name[]; };

inode es el nmero de inodo al que corresponde esta entrada de directorio. Contando entry_len bytes desde el comienzo de una entrada de directorio se encuentra la siguiente, hasta encontrar una de longitud 0 que marca el final. name_len es el nmero de bytes en del nombre (debe ser menor o igual a entry_len 8, adivina por qu). Finalmente, type indica de qu tipo es el inodo al que apunta esta direntry (puede ser 0 si no se conoce). El uso de este campo est condicionado a la feature filetype, que est presente casi siempre.

tem 5. Sistemas de archivos - 45

tem 6. Uso de vi
El vi es un editor de textos. Se puede observar en la pantalla una ventana del archivo que se esta editando, y los cambios que se hagan se veran en pantalla. La sintaxis es:
vi archivo

y el archivo se editar en pantalla. Para las distintas opciones que ir detallando ms abajo, hay que apretar primero Esc, tanto para comenzar a usar la opcin como para terminar la anterior.

Para insertar
I Inserta texto al comienzo de la lnea. a Inserta texto despues del cursor. A Inserta texto al final de la lnea. o Inserta lineas de texto despues de la lnea actual. O Inserta lineas de texto antes de la lnea actual.

Para hacer correcciones


x nx rX dw ndw dd ndd %d D cw cc R S Borra un caracter. Borra n caracteres. Reemplaza el caracter en donde esta el cursor por X. Borra una palabra. Borra n palabras. Borra una lnea. Borra n lneas. Borra todo desde la primera lnea hasta el final (es igual a :1,$d) Borra lo que esta entre el cursor y el final de la lnea. Cambia una palabra por otra. Cambia una linea por otra. Reemplaza el caracter por una cadena finalizada con Esc. Reemplaza la lnea.

tem 6. Uso de vi - 46

Salidas
:x,y w archivo :w :w archivo :q :q! :wq :x :zz :e! :e archivo :e# Escribe las lneas entre x e y en el archivo dado. Graba. Graba con ese nombre de archivo. Sale (antes se debe grabar). Sale sin grabar los cambios. Graba y sale. Graba y sale. Graba y sale. Recupera lo ultimo que se hizo (Undo total). Abre un segundo archivo sin cerrar el que tenemos en pantalla. Vuelve al primer archivo

Mover y pegar texto


:r archivo nyy y ytx Y numero Y p P Lee un archivo y lo pega. Copia n lneas. Guarda texto en un buffer sin nombre. Guarda en un buffer el texto que esta entre el cursor y el caracter x. Guarda en un buffer la lnea completa. Guarda en un buffer el numero de lneas solicitado. Coloca lo que est en el buffer despues del cursor. Coloca lo que est en el buffer antes del cursor.

Se puede poner nombre al buffer precediendo el comando por " y cualquier letra. Se pueden abrir hasta 9 buffers.

Repetir y deshacer cambios


u U . t dtx f Deshace el ltimo cambio. Vuelve la lnea a su estado original. Repite el ultimo cambio. (to) Hasta (sin inclur). Borra desde el cursor hasta el caracter x. (find) Busca la primera instancia del caracter.
tem 6. Uso de vi - 47

dfx

Borra x solo en la lnea.

Comandos desde vi
:! comando :!ls -l :r! comando :& Ejecuta el comando. Ejecuta el comando y lo lee. Lee la salida del comando. Repite el ltimo comando :S efectuado.

Sustituciones
:S/vieja cadena/nueva cadena/opciones Sustituye una cadena por otra. Si apretamos n, sustituye la siguiente cadena vieja por la nueva.

Opciones
/g /c /p /gc :& Cambia todas las apariciones de la vieja cadena en la lnea. Solicita confirmacin de cada cambio. Imprime las lneas corregidas. Lo hace todo globalmente pero pide confirmacin ante cada sustitucin. Repite el ltimo comando :S efectuado.

Tambin se puede dar la orden como una expresin regular, por ejemplo as: :1,$ s/cadena vieja/cadena nueva/gc Donde 1,$ le dice que lea el texto desde el primer caracter hasta el final ($) y que vaya sustituyendo a la cadena vieja por la cadena nueva, pero pidiendo confirmacin cada vez que lo vaya a hacer.

tem 6. Uso de vi - 48

tem 7. Administracin de usuarios


Creando usuarios de forma bsica
La forma ms bsica de crear un usuario es mediante el siguiente comando:
useradd usuario

con lo que crea un usuario en /home/ que es el directorio predeterminado para los usuarios, al ejecutar un ls -al /home/ deberamos visualizarlo en una linea como sigue:
drwxr-xr-x drwxr-xr-x drwx-----12 root 23 root root root 4096 dic 13 22:56 . 4096 dic 14 11:19 ..

4 usuario usuario 4096 dic 14 13:14 usuario

Ahora, puede que se pregunten, y eso que me dice? o eso que es?, en palabras simples las dos primeras lineas se refieren al directorio actual y al directorio padre respectivamente, la tercer linea se refiere al directorio de trabajo de nuestro usuario. De izquierda a derecha nos encontramos con: drwx------: d = directorio, rwx = permiso del usuario de lectura(r), escritura(w), ejecucin(x), ------ = sin permiso para el grupo y para los demas. 4: nmero de enlaces duros. usuario: dueo de la carpeta. usuario: grupo al que pertenece. 4096: tamao en bytes. dic 14 13:14: marca horaria. usuario: nombre de la carpeta. En pocas palabras, el usuario usuario tiene una carpeta con su nombre y con un grupo propio con su nombre. Esto puede llegar a ser prctico si queremos que cada usuario sea especial, pero no en casos en que deseamos agrupar usuarios. Algo que no debemos olvidar cuando creamos un usuario es asignarle una clave, esto, de forma simple se puede hacer con el comando passwd de la siguiente manera:
passwd usuario

Esto a continuacin preguntar dos veces la clave, y si coinciden tienes una nueva clave para tu usuario.

tem 7. Administracin de usuarios - 49

Creando Grupos de Usuario


La necesidad de crear grupos nace por si sola, dado a que nuestro mundo lo podemos clasificar en conjuntos, gerentes, secretarias, administrativos... o clase alta, clase media y clase baja... o profesores, ayudantes y alumnos, etc. Ahora en nuestra casa por ejemplo podemos tener a padres e hijos o mayores y menores, semidioses y mortales o la variedad que deseemos. Para este ejemplo tendremos dos grupos, familia y visitas, para agregar un grupo es suficiente con ejecutar
groupadd familia

Ahora, cabe destacar que no me sirve tener grupos si no creo usuarios que pertenezcan a ese grupo.

Creando usuarios en Grupos


Por ejemplo supondremos que queremos agregar al padre al grupo (que ya creamos) familia, tendramos que hacer lo siguiente:
useradd padre -g familia passwd padre

Con ello al hacer un ls -al /home/ nos debera dar como resultado:
drwxr-xr-x drwxr-xr-x drwx-----drwx-----12 root 23 root 4 padre root root 4096 dic 13 22:56 . 4096 dic 14 11:19 ..

familia 4096 dic 14 13:57 padre

4 usuario usuario 4096 dic 14 13:14 usuario

Con ello leemos que la carpeta padre tiene por propietario al padre, pero que pertenece al grupo familia. Ahora, al tener mas de un usuario dentro del mismo grupo, por ejemplo a padre, madre e hijo dentro del grupo familia pueden compartir archivos y carpetas entre ellos protegindola de que las visitas puedan ver su contenido.

Dando permiso a carpetas y archivos de Usuarios


Supongamos que tenemos ya ejecutados los pasos anteriores y que hemos replicado los pasos para crear dos grupos, familia y visitas, ademas tenemos 3 usuarios en el grupo familia (padre, madre e hijo) y vecino y vecina en el grupo visita (suponiendo que los vecinos son buena onda y de ves en cuando piden el pc para revisar, por ejemplo el e-mail (nunca pasa en la vida real, pero igual).

tem 7. Administracin de usuarios - 50

Al ejecutar un ls -al /home/ tenemos:


drwxr-xr-x drwxr-xr-x drwx-----drwx-----drwx-----drwx-----drwx-----drwx-----12 root 23 root 4 hijo 4 madre 4 padre root root 4096 dic 13 22:56 . 4096 dic 14 11:19 ..

familia 4096 dic 14 13:59 hijo familia 4096 dic 14 13:58 madre familia 4096 dic 14 13:57 padre

4 usuario usuario 4096 dic 14 13:14 usuario 4 vecina 4 vecino visita visita 4096 dic 14 14:01 vecina 4096 dic 14 14:00 vecino

Al mirar este resultado vemos que existen los grupos y los usuarios que hemos descrito anteriormente, dado a que la 4 columna me muestra los grupos, la 3 los propietarios y la ultima el nombre de sus carpetas (que coincide con su nombre de usuario). Ahora, en la primer columna podemos notar el tipo y los permisos del archivo o directorio, la primer letra indica que es, lo ms comn es: d: directorio o carpeta. -: archivo l: link o enlace simblico. Existen otros tipos, pero no los detallar aqu. Los siguientes caracteres de esta columna lo podemos dividir en tres grupos de a tres, cada grupo esta compuesto por tres tipos de permiso: Activo r: lectura w: escritura x: ejecucin No activo -: sin permiso Estos permisos se repiten en este orden (rwx) para el usuario, para el grupo y para los otros. Teniendo lo anterior relativamente claro, de seguro se preguntan cmo cambiar los permisos?, los permisos se cambian con el comando chmod. Para agregar un permiso lo hacemos con + y para quitarlo con - especificando a quien, que permiso y a quien, por ejemplo, para agregar permiso de lectura y ejecucin al grupo al usuario padre se hara as:
cd /home/ chmod g+rx padre

tem 7. Administracin de usuarios - 51

con esto, al hacer un ls -al /home/ tenemos:


drwxr-xr-x drwxr-xr-x drwx-----drwx-----drwxr-x--drwx-----drwx-----drwx-----12 root 23 root 4 hijo 4 madre 4 padre root root 4096 dic 13 22:56 . 4096 dic 14 11:19 ..

familia 4096 dic 14 13:59 hijo familia 4096 dic 14 13:58 madre familia 4096 dic 14 13:57 padre

4 usuario usuario 4096 dic 14 13:14 usuario 4 vecina 4 vecino visita visita 4096 dic 14 14:01 vecina 4096 dic 14 14:00 vecino

Al mirar este resultado podemos apreciar como figuran ahora r y x en el permiso para el grupo. Como hemos hecho esto, hijo y madre pueden entrar a ver el contenido de la carpeta del usuario padre, pero no vecino y vecina (ni usuario), pues pertenecen a distinto grupo, ahora, por ejemplo, si el vecino quiere que los del grupo familia (o cualquiera que no pertenece a su grupo) vean su carpeta, el debe hacer lo siguiente:
cd /home/ chmod o+rx vecino

con esto, al hacer un ls -al /home/ tenemos:


drwxr-xr-x drwxr-xr-x drwx-----drwx-----drwxr-x--drwx-----drwx-----drwx---r-x 12 root 23 root 4 hijo 4 madre 4 padre root root 4096 dic 13 22:56 . 4096 dic 14 11:19 ..

familia 4096 dic 14 13:59 hijo familia 4096 dic 14 13:58 madre familia 4096 dic 14 13:57 padre

4 usuario usuario 4096 dic 14 13:14 usuario 4 vecina 4 vecino visita visita 4096 dic 14 14:01 vecina 4096 dic 14 14:00 vecino

Con ello, vemos que vecino le ha dado permiso a otros para ver el contenido de su carpeta, es decir, madre, padre, hijo y usuario pueden ver lo de vecino, pero no vecina, pues vecina pertenece a su mismo grupo de vecino. Cabe destacar que uno, como dueo de su carpeta y de los archivos que en ella estn, se puede cambiar permisos sin necesidad de ser root, pero no es posible cambiar el permiso de una carpeta o archivo que uno no haya creado, para ello si son necesarios permisos especiales.

tem 7. Administracin de usuarios - 52

Dando permisos especiales (sudo)


El comando sudo ejecuta comandos como un usuario privilegiado, es decir, mediante sudo el usuario puede hacer cosas que slo root podra hacer. Te preguntaras y porque no hacerlo como root? y la verdad es que no es recomendable que muchos usuarios manejen la clave de root, por ejemplo si administras sitios web y quieres que cada usuario pueda ver los log, no es para nada recomendable pasar a cada uno la clave de root, ahora si tu hijo maneja la clave de root, nadie te asegura que no se la de a su amigo, compaero, primo, etc... y al final ni sepas cuantas personas manejan esa clave con todos los riesgos que eso significa. Para modificar los privilegios de los usuarios o de los grupos de usuarios, debes editar /etc/sudoers o aplicar como root el comando:
visudo

Dando permiso especial a Usuario


Supongamos que solo padre tendr derecho a administrar usuarios, deberamos editar y agregar una linea como la que sigue:
padre ALL= NOPASSWD: /usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/groupadd,/usr/bin/passwd

Como se pueden dar cuenta, la linea empieza con el usuario al que se desea habilitar, seguida por el host en donde lo autorizamos (si es uno solo da lo mismo localhost o ALL) luego, decimos que no le solicitar contrasea para ejecutar los comandos y finalmente la lista de comandos separados por coma (,). Despus de esto, el usuario padre, por ejemplo, puede cambiarle la contrasea al hijo mediante el comando:
sudo /usr/bin/passwd hijo

Dando permiso especial a Grupos de Usuario


Finalmente hagamos la suposicin de que cualquier miembro de la familia puede llegar a instalar un programa, pero por obviedad pasar la contrasea de root a todos es un riesgo innecesario, por lo que lo que se hace es autorizar a los miembros del grupo. Esto debera quedar as:
%familia ALL= NOPASSWD: /bin/rpm, /usr/bin/up2date, /usr/bin/yum

Notemos que la diferencia entre dar permiso a un usuario v/s un grupo en lo nico que cambia es que al grupo se le antepone el caracter %

tem 7. Administracin de usuarios - 53

tem 8. Redes
Introduccin
Dentro de los protocolos de red, el ms comn es TCP/IP, TCP/IP fue desarrollado y presentado por el Departamento de Defensa de EE.UU. En 1972 y fue aplicado en ARPANET, que era la red de rea extensa del Departamento de Defensa como medio de comunicacin para los diferentes organismos de EE.UU. La transicin hacia TCP/IP en ARPANET se concret en 1983. Se conoce como familia de protocolos de Internet al conjunto de protocolos de red que son implementados por la pila de protocolos sobre los cuales se fundamenta Internet y que permiten la transmisin de datos entre las redes de computadoras. Los dos protocolos ms importantes, y que fueron tambin los primeros en definirse y tambin los ms utilizados, son TCP (Protocolo de Control de Transmisin o Transmission Control Protocol) e IP (Protocolo de Internet o Internet Protocol), de ah que se denomine tambin como Conjunto de Protocolos TCP/IP. Los tipos de protocolos existentes superan los cien, ente los cuales podemos mencionar como los ms conocidos a HTTP, FTP, SMTP, POP, ARP, etc. TCP/IP es la plataforma que sostiene Internet y que permite la comunicacin entre diferentes sistemas operativos en diferentes computadoras, ya sea sobre redes de rea local (LAN) o redes de rea extensa (WAN).

Niveles de pila.
En la actualidad contina la discusin respecto a si el modelo TCP/IP de cinco niveles encaja dentro del modelo OSI de siete niveles.
Niveles 5 4 3 2 1 7 6 5 4 3 2 1 Nombre Aplicacin Transporte Red Enlace Fsico. Modelo OSI Aplicacin Presentacin Sesin Transporte Red Enlace de datos Fsico Modelo TCP/IP

El Conjunto de Protocolos TCP/IP (y su correspondiente pila) han sido utilizados antes de que se estableciera el modelo OSI (Open Systems Interconnection) y desde entonces el modelo TCP/IP ha sido comparado con el modelo OSI tanto en libros como en instituciones educativas. Ambas se relacionan pero no son equiparables. El modelo OSI utiliza siete niveles, mientras que el modelo TCP/IP utiliza cinco niveles. Los dos niveles que hacen la diferencia en el Modelo OSI son el Nivel de Presentacin y el Nivel de Sesin, mismo que podran ser equivalentes al Nivel de Aplicacin del modelo TCP/IP.
tem 8. Redes - 54

El modelo TCP
Nivel 5 Nombre Aplicacin Detalle Se compone de diversos protocolos de servicios como: DNS (Domain Name System) TLS/SSL (Transport Layer Security) TFTP (Trivial File Transfer Protocol) FTP (File Transfer Protocol) HTTP (Hyper Text Transfer Protocol) IMAP (Internet Messsage Access Protocol) NNTP (Network News Transfer Protocol) POP3 (Post Office Protocol) SIP (Session Iniciation Protocol) SMTP (Simple Mail Transfer Protocol) SNMP (Simple Network Management Protcol) SSH (Secure Shell) BitTorrent RTP (Real-time Transport Protocol) ENRP (Endpoint Handlespace Redundancy Protocol)

Los protocolos de encaminamiento como BGP (Border Gateway Protocol) y RIP (Routing Information Protocol) que utilizan transporte por TCP y UDP respectivamente pueden ser considerados como parte de esta capa. 4 Transporte Se compone de diversos protocolos de servicios como: TCP (Transmision Control Protocol) UDP (User Datagram Protocol), DCCP (Datagram Congestion Control Protocol) SCTP (Stream Control Transmision Protococol) IL (Internet Link Protocol, similar a TCP pero ms simple) RUDP (Reliable User Datagram Protocol), etc.

Los protocolos como OSPF (Open Shortest Path First), que corren sobre IP, pueden ser tambin considerados como parte de esta capa. ICMP (Internet Control Message Protocol) e IGMP (Internet Group Management Protocol) que tambin utilizan IP pueden ser considerados parte del Nivel de Red. 3 Red Se compone de diversos protocolos de servicios como IP (incluyendo IPv4 e IPv6). Protocolos como ARP (Address Resolution Protocol) y RARP (Reverse Address Resolution Protocol) operan por debajo de IP, pero arriba del Nivel de enlace, de modo que pertenecen a un punto intermedio entre el Nivel de Red y el Nivel de Enlace. Compuesto de protocolos como: 1 Fsico Ethernet Wi-Fi Token ring PPP (Point-to-Point Protocol) SLIP (Serial Line Internet Protocol) FDDI (Fiber Distributed Data Interface) ATM (Asynchronous Transfer Protocol) Frame Relay SMDS (Switched Multi-megabit Data Services)

Enlace

Medio fsico.
tem 8. Redes - 55

tem 9. Configuracin de red


Bajo Red Hat Enterprise Linux, todas las comunicaciones de red acontecen entre interfaces de software configuradas y dispositivos de red fsicos conectados al sistema. CentOS como distribucin basada en Red Hat, maneja las interfaces de igual forma. Los archivos de configuracin para las interfaces de red y los scripts para activarlas o desactivarlas estn ubicados en el directorio /etc/sysconfig/network-scripts. An cuando el nmero y tipo de archivos de interfaces pueden diferir de sistema a sistema, hay tres categoras de archivos que existen en este directorio. 1. Interface configuration files 2. Interface control scripts 3. Network function files Los archivos en cada una de estas categoras trabajan juntos para habilitar varios dispositivos de red.

Archivos de configuracin de red


Antes de ahondar en los archivos de configuracin de interfaz, hagamos una lista de los principales archivos de configuracin usados en la configuracin de la red. La comprensin del papel que desempean estos archivos en la configuracin de la red puede ser de ayuda a la hora de personalizar el sistema. Los principales archivos de configuracin de la red son los siguientes:

/etc/hosts
El principal propsito de este archivo es resolver los nombres de hosts que no pueden ser resueltos de otra manera. Tambin se puede usar para resolver nombres de hosts en pequeas redes sin servidor DNS. Sin tener en cuenta el tipo de red en que se encuentre el ordenador, este archivo debe contener un lnea que especifica la direccin IP del dispositivo loopback (127.0.0.1) como por ejemplo localhost.localdomain. Para mayor informacin consulte la pgina man de hosts.

/etc/resolv.conf
Este archivo especifica las direcciones IP de los servidores DNS y el dominio de bsqueda. A menos que se haya configurado para algo diferente, los scripts de inicializacin de la red llenan este archivo. Para mayor informacin consulte la pgina man de resolv.conf.

/etc/sysconfig/network-scripts/ifcfg-<interface-name>
Para cada interfaz de red, existe un script de configuracin de interfaz correspondiente. Cada uno de estos archivos proporcionan informacin especfica para una interfaz de red en particular. Uno de los archivos de interfaz ms comunes es ifcfg-eth0, que controla la primera red Ethernet de la tarjeta de interfaz o NIC en el sistema. En un sistema con varias tarjetas de red, hay varios archivos ifcfg-eth<X> (donde <X> es un nmero nico correspondiente a una interfaz especfica). Debido a que cada dispositivo tiene su propio archivo de configuracin, un administrador puede controlar cmo cada interfaz funciona individualmente.

tem 9. Configuracin de red - 56

El siguiente es un ejemplo de un archivo ifcfg-eth0 para un sistema que usa una direccin IP fija:
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes NETWORK=10.0.1.0 NETMASK=255.255.255.0 IPADDR=10.0.1.27 USERCTL=no

Los valores requeridos en un archivo de configuracin de interfaz pueden cambiar basndose en otros valores. Por ejemplo, el archivo ifcfg-eth0 para una interfaz que use DHCP se ver bastante diferente ya que la informacin IP es proporcionada por el servidor DHCP:
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes

Sin embargo, tambin es posible modificar manualmente los archivos de configuracin para una interfaz de red dada. Los parmetros ms comunes del archivo de configuracin del script de interface son: BOOTPROTO=<none | bootp | dhcp> BROADCAST=<address> DEVICE=<name> GATEWAY=<address> HWADDR=<MAC-address>, la MAC-address posee la forma AA:BB:CC:DD:EE:FF IPADDR=<address> NETMASK=<mask> NETWORK=<address> ONBOOT=<yes | no> PEERDNS=<yes | no> Modifica /etc/resolv.conf si est activada. Si usa DCHP, yes es predeterminada. USERCTL=<yes | no> Los usuarios que no sean root pueden controlar este dispositivo. Es posible configurar muchas de estas opciones de forma automatizada mediante el comando
system-config-network

Interfaces de acceso telefnico o red de marcado

Si se conecta a una red, como Internet, a travs de la conexin de acceso telefnico, necesitar un archivo de configuracin para la interfaz. Los archivos de interfaz PPP son nombrados utilizando el siguiente formato: ifcfg-ppp<X> donde <X> corresponde al nmero de interfaz. El archivo de configuracin de la interfaz PPP es creado automticamente cuando se usa wvdial, la Herramienta de Administracin de Red o Kppp para crear una cuenta de marcado telefnico, o bien pppoe-setup para una red de marcado. Tambin es posible crear y modificar este archivo manualmente.
tem 9. Configuracin de red - 57

A continuacin se presenta un archivo ifcfg-ppp0 tpico:


DEVICE=ppp0 NAME=test WVDIALSECT=test MODEMPORT=/dev/modem LINESPEED=115200 PAPNAME=test USERCTL=true ONBOOT=no PERSIST=no DEFROUTE=yes PEERDNS=yes DEMAND=no IDLETIMEOUT=600

El Protocolo SLIP (siglas en ingls de Serial Line Internet Protocol) es otra interfaz de acceso telefnico menos usada. Los archivos SLIP tienen nombres de archivos de configuracin de interfaz tales como ifcfg-sl0. Otras opciones que se pueden utilizar en estos archivos incluyen: DEFROUTE=<yes | no> Establece esta interfaz como la ruta por defecto o no. DEMAND=<yes | no> Se debe establecer una conexin que inicie cuando alguien intente usarla IDLETIMEOUT=<value> donde value es el nmero de segundos sin actividad antes que se desconecte INITSTRING=<string> donde <string> es la cadena de inicializacin se pasa al dispositivo del mdem. Esta opcin se utiliza sobre todo en relacin con las interfaces SLIP. LINESPEED=<value> donde <valor> es la velocidad de transmisin del dispositivo. Posibles valores estndar incluyen 57600, 38400, 19200, y 9600. MODEMPORT=<device> MTU=<value> donde <value> es la unidad mxima de transferencia (MTU) configurada para la interfaz. La MTU hace referencia al mayor nmero de bytes de datos pueden llevar a un marco, sin contar la informacin del encabezado. En algnas situaciones de acceso telefnico, configurarlo hasta un valor de 576 resultados en menos paquetes perdidos y una ligera mejora para el rendimiento de una conexin. NAME=<name> donde <name> es la referencia al ttulo dado a un conjunto de configuraciones de conexin de acceso telefnico. PAPNAME=<name> donde NOMBRE es el nombre de usuario dado durante el protocolo de autenticacin de contrasea (PAP) de cambio que se produce para permitir conexiones a un sistema remoto. PERSIST=<yes | no> Esta interfaz debera mantenerse siempre activa, incluso si se desactiva tras una desconexin del mdem o no WVDIALSECT=<name> donde <name> esta asociando con la interfaz de configuracin en /etc/wvdial.conf.

tem 9. Configuracin de red - 58

Scripts de control de interfaz


Los scripts de control de interfaz controlan la activacin y desactivacin de las interfaces del sistema. Existen dos scripts de control de la interfaz primaria que llaman a los scripts de control ubicados en el directorio /etc/sysconfig/network-scripts: /sbin/ifdown y /sbin/ifup. Los scripts de interfaz ifdown y ifup son enlaces simblicos a los scripts en el directorio /sbin. Cuando se solicita cualquiera de estos scripts se debe especificar el valor de la interfaz, como por ejemplo:
ifup eth0

Tras haber verificado que se ha especificado una interfaz y que al usuario que ha ejecutado la peticin se le permite controlar la interfaz, el script correcto activa o desactiva la interfaz. Los siguientes scripts de control de interfaz son bastante comunes: ifup-aliases : Configura los alias IP desde los archivos de configuracin de la interfaz cuando se asocia ms de una direccin IP con una interfaz. ifup-ippp y ifdown-ippp : Activa y desactiva una interfaz ISDN. ifup-ipsec y ifdown-ipsec : Activa y desactiva una interfaz IPsec. ifup-ipv6 y ifdown-ipv6 : Se usa para activar y desactivar una interfaz IPv6. ifup-ipx : Activa y desactiva una interfaz IPX. ifup-plip : Activa y desactiva una interfaz PLIP. ifup-plusb : Activa y desactiva una interfaz USB para conexiones de red. ifup-post y ifdown-post : Contiene comandos que son ejecutados despus de que una interfaz ha sido activada o desactivada. ifup-ppp y ifdown-ppp : Activa o desactiva una interfaz PPP. ifup-routes : Aade rutas estticas para un dispositivo como si se activase su interfaz. ifdown-sit y ifup-sit : Contiene llamadas de funciones relacionadas con la activacin y desactivacin de un tnel IPv6 dentro de una conexin IPv4. ifup-sl y ifdown-sl : Activa o desactiva una interfaz SLIP. ifup-wireless : Activa una interfaz inalmbrica.

La forma ms fcil de manipular todos los scripts de red simultneamente es con el comando /sbin/service en el servicio de red (/etc/rc.d/init.d/network), como se ilustra en el comando siguiente:
/sbin/service network <action>

Donde, <action> puede ser: start, stop, o restart. Para ver una lista de los dispositivos configurados y las interfaces de red actualmente activas, utilice el comando:
/sbin/service network status

tem 9. Configuracin de red - 59

tem 10. Configuracin de Firewall


Comandos para manejar el firewall
El servicio iptables
service iptables <options>

Donde <options> pueden ser: start : inicia iptables cargando las reglas stop : detiene iptables restart / force-reload : carga nuevamente las reglas status : revisa si iptables esta activo o no panic : cierra todos los puertos al exterior (nunca se debe ejecutar de forma remota pues se pierde el control de la mquina)

El comando iptables
iptables [-t table] [options] [parameters]

Donde las tablas ms comunes son: filter : tabla de filtros nat : Reglas de redireccionamiento o nateo Las opciones ms comunes son: -A : Agregar. -D : Borrar. -R : Remplazar. -L : Listar. -F : Borrar todas las reglas.

-Z : Colocar los contadores de paquetes en cero. Los parmetros ms comunes son: -p protocolo : el protocolo puede ser tcp, udp, icmp, esp, ah, entre otros. -s address[/mask] : direcciones de origen -d address[/mask] : direcciones de destino -i interface : interfaz de entrada -o interface : interfaz de salida

-j target : especifica el target de la regla, donde los target pueden ser ACCEPT, DROP, REJECT, MASQUERADE, DNAT, SNAT, MARK, entre otros. Para mayor informacin de cada una de las opciones, parmetros y tablas se recomienda fuertemente revisar el manual de iptables.
tem 10. Configuracin de Firewall - 60

Ejemplos:
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

En la primer linea abrimos el puerto 80 de forma universal, en la segunda, abrimos el puerto 22 solamente para la red privada 192.168.1.0/24

iptables-save e iptables-restore
Una ves que son creadas las reglas, estas se pueden revisar y si uno est conforme guardar en un archivo de reglas de iptables, estas reglas se pueden restaurar en cualquier momento desde el archivo. El comando iptables-save despliega por pantalla el esquema de archivo de configuracin, si uno desea guardar en un archivo se utiliza el redireccionamiento de la salida.
iptables-save > /etc/sysconfig/iptables

De similar forma iptables-restore espera el esquema desde la entrada estndar, sin embargo, se le puede entregar el archivo mediante direccionamiento.
iptables-restore < /etc/sysconfig/iptables

Configuracin Manual
La configuracin manual se hace a travs de un editor de texto (como vi), editando los archivos involucrados en la configuracin del firewall, dichos archivos son: /etc/sysconfig/iptables /etc/sysconfig/iptables-config /etc/sysconfig/ip6tables /etc/sysconfig/ip6tables-config

La configuracin de iptables se encuentra en los archivos terminados en -config, mientras que en los otros se encuentran las reglas del firewall, que son quienes ms nos interesan, en /etc/sysconfig/iptables se encuentran las reglas para IPv4 y en /etc/sysconfig/ip6tables las reglas para IPv6. Las tablas se encuentran en el archivo de reglas entre el *nombreDeTabla y COMMIT, a la cabecera de cada una de estas secciones, el tipo de reglas como por ejemplo INPUT / OUTPUT, a continuacin las reglas de iptables sin especificar ni la tabla ni el comando en s.
# Generated by iptables-save v1.4.9 on Thu May 12 15:29:40 2011 *nat :PREROUTING ACCEPT [6971:2143349] :OUTPUT ACCEPT [6614:351729] :POSTROUTING ACCEPT [1248:86307] -A POSTROUTING -s 172.16.2.0/24 -j MASQUERADE -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE COMMIT

tem 10. Configuracin de Firewall - 61

# Completed on Thu May 12 15:29:40 2011 # Generated by iptables-save v1.4.9 on Thu May 12 15:29:40 2011 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [233:54560] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited #-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Thu May 12 15:29:40 2011

En el esquema anterior se puede apreciar la existencia de dos tablas (nat y filter), en cada tabla vemos el tipo de reglas que corresponde, en nat PREROUTING, POSTROUTING y OUTPUT, y en filter INPUT, OUTPUT y FORWARD. Los comentarios comienzan con #, notaremos que la ltima linea de filter se encuentra comentada. Las reglas de la tabla nat estn directamente asociadas a los direccionamientos o labores de router que puede cumplir un servidor, las reglas de la tabla filter es el firewall propio del servidor, por lo que si deseamos que nuestra red tenga puertos habilitados o bloqueados debemos crear estas reglas en nat. Es importante recalcar que las reglas de iptables tienen prioridad de arriba hacia abajo, siendo las ms prioritarias las superiores, esto quiere decir que si escribo una regla abriendo un puerto y en la linea siguiente otra regla cerrndolo, el puerto queda abierto. Por este motivo es normal encontrar lineas que hacen DROP o REJECT al final de las tablas, pues ellas cerrarn todo lo que no est explcitamente abierto. Es importante recordar que si poseemos algn servicio en nuestro servidor, para que l est disponible en nuestra red, se deben abrir los puertos correspondientes a los servicios prestados. Tener solamente abiertos los puertos de los servicios disponibles, reduce la superficie de ataque del servidor, por lo que es fuertemente recomendable, es ms, si tenemos servicios que nicamente deberan estar visibles para nuestra Intranet es fuertemente recomendable agregar una regla que especifique aquello, abriendo solamente el puerto para nuestra red interna dejando ste cerrado para la red externa.

Opciones extras de seguridad


Dentro de las opciones extras de seguridad se recomienda el uso de SELinux (NSA Security-Enhanced Linux), el manejo de estas directivas se encuentra fuera del presente manual, sin embargo, se recomienda su posterior estudio. Es comn que cada servicio escriba un registro, es recomendable revisarlos peridicamente y llevar un control de lo que acontece. Finalmente agregar que las actualizaciones son necesarias, muchas de ellas incluyen correccin de errores.

tem 10. Configuracin de Firewall - 62

tem 11. Configuracin de SSH


Configurando el servicio
El servicio de OpenSSH se maneja a travs del comando service, con l se puede detener el servicio (stop), iniciar (start), reiniciar (restart), recargar (reload), entre otras. La configuracin del servicio se hace de forma manual con un editor de texto en el archivo de configuracin /etc/ssh/sshd_config algnos parmetros de configuracin comunes del archivo son los siguientes: Port <port>: Puerto que est escuchando ListenAddress <address> : Direcciones que esta escuchando X11Forwarding <yes | no> : Atender solicitudes grficas PasswordAuthentication <yes | no> : Se autentificar el usuario con contrasea AllowUsers <users> : Lista de usuarios (separado por espacios) que pueden acceder va ssh PermitRootLogin <yes | no> : puede root acceder va ssh (se recomienda por seguridad que no) Banner <path> : Despliega el contenido del archivo en el <path> al conectarse LoginGraceTime <seconds> : cuantos segundos debe esperar tras una contrasea erronea.

Existen muchos administradores de red que cambian el puerto 22 predeterminado por algn otro con el objetivo de burlar ataques automticos, sin embargo existen mltiples herramientas para detectar puertos abiertos y el servicio al cual pertenecen, por lo que esta prctica no es tan recomendable, es mejor aumentar el tiempo del parmetro LoginGraceTime y filtrar la lista de quienes pueden acceder con el parmetro AllowUsers, o bien prohibir el acceso con usuario y contrasea PasswordAuthentication no y usar el acceso mediante llaves.

Autentificacin Usando llaves


Los parmetros para el uso de llaves son:
RSAAuthentication yes PubkeyAuthentication yes

Si a estos adems se le suma


PasswordAuthentication no

El usuario solamente se podr autentificar mediante su llave.

Creando llaves RSA


ssh-keygen -t rsa -b 4096

El comando creara un par de llaves de tipo RSA de 4096 bytes, es recomendable usar llaves de 2048 bytes o superior. La clave pblica deber agregarla en el servidor en el $HOME/.ssh/authorized_keys y la privada mantenerla en $HOME/.ssh/id_rsa
tem 11. Configuracin de SSH - 63

tem 12. Configuracin de Servidor Samba


Samba es una implementacin libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux o Mac acten como clientes en redes de Windows. Samba tambin permite validar usuarios haciendo de Controlador Principal de Dominio, como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresin, directorios compartidos y autenticar con su propio archivo de usuarios. Para instalar samba se ejecuta el comando yum con los paquetes correspondientes a samba
yum install samba samba-client samba-common

Recuerde abrir los puertos en el firewall con protocolo tcp 137, 138,139 y 445. Ahora, para configurar samba modificamos los archivos: /etc/samba/lmhosts /etc/samba/smb.conf

El archivo /etc/samba/lmhost es el equivalente al archivo /etc/hosts la nica diferencia es que los nombres de la columna derecha son nombres NetBIOS y solo son usados en linux por samba y su estructura es idntica a la que se muestra a continuacin:
192.168.220.100 192.168.220.101 desarrollo ventas

La configuracin bsica de Samba se hace en /etc/samba/smb.conf workgroup = MYGROUP : indica el grupo de que pertenece. server string = Samba Server Version %v : es el mensaje de bienvenida al servidor netbios name = MYSERVER : es el nombre del servidor en la red NetBios interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 : interfaces y subred que est escuchando hosts allow = 127. 192.168.12. 192.168.13. : subred que est escuchando Para iniciar/reiniciar/detener el servicio de samba ejecutamos:
service smb start service smb restart service smb stop

Configuracin de recursos compartidos


[nombreDescriptivoDelRecursoCompartido] comment = Comentarios path = rutaDirectorioCompartido public = yes writable = yes printable = no write list = desarrollo

tem 12. Configuracin de Servidor Samba - 64

algnas de las opciones que podemos agregar a esta estructura son las siguientes: Directiva encrypt passwords invalid users valid users admin users read list write list guest ok comment path browseable Valor yes | no usuario | grupo usuario usuario usuario usuario yes | no Comentario /ruta/del/recurso yes | no Accin Esta directiva indica si las contraseas sern cifradas cuando el usuario se autentique Lista a los usuarios o grupos a los cuales les negara el acceso Lista a los usuarios a los cuales el servidor les dar acceso Lista a los usuarios que asumirn el rol de administrador Lista a los usuarios que solo podrn leer el recurso compartido Lista a los usuarios que podrn escribir en el recurso compartido Define si se permitir el acceso como usuario invitado o no En esta seccin podrs poner un comentario acerca del recurso que estas compartiendo En esta seccin debers especificar la ruta del recurso que compartes Define si el recurso podr ser visible o no

Un ejemplo sobre el uso de estas opciones se ve a continuacin


[FacturasDiarias] comment = Facturas path = /var/facturas guest ok = no write list = jefe directory mask = 1770 create mask = 0660 browseable = yes admin users = jefe contador valid users = jefe contador writable = yes public = yes

Para agregar un usuario en el servidor se ejecuta el siguiente comando:


useradd -s /bin/nologin cuentaDeUsuario

y para configurar la contrasea:


smbpasswd -a cuentaDeUsuario

tem 12. Configuracin de Servidor Samba - 65

tem 13. Configuracin de Servidor DHCP


El DHCP (Dynamic Host Configuration Protocol) o Protocolo Dinmico de Configuracin de Equipos no es un protocolo especfico de Linux, sino que se trata de un estndar para cualquier tipo de sistema conectado a una red TCP/IP. La funcin bsica de este protocolo es evitar que el administrador tenga que configurar manualmente las caractersticas propias del protocolo TCP/IP en cada equipo. Para ello, existe en la red un sistema especial, denominado servidor DHCP, que es capaz de asignar la configuracin TCP/IP al resto de mquinas presentes en la red, o clientes DHCP, cuando estos arrancan. Entre los datos que ms habitualmente proporciona el servidor a los clientes se incluyen: Una direccin IP por cada tarjeta de red o NIC (Network Interface Card) que posea el cliente. La mscara de subred. La puerta de enlace o gateway.

Otros parmetros adicionales, como el sufijo del dominio DNS, o el propio servidor DNS, servidor de tiempo, entre otros. En una red pueden convivir equipos que sean clientes DHCP con otros cuya configuracin se haya establecido manualmente. Aquellos que estn configurados como clientes DHCP necesitarn encontrar en la red local un servidor DHCP para que les proporciones los parmetros TCP/IP. La instalacin de un servidor dhcp en CentOS es:
yum install dhcp

Recuerde abrir los puetos 67 y 68 del firewall con protocolo udp. Edite el archivo de configuracin /etc/dhcpd.conf de una forma similar a la siguiente:
# Esto reescribira cualquier configuracin previa del cliente. authoritative; ignore client-updates; # ddns-updates - Activa la actualizacin DNS mediante los valores asignados por DHCP. ddns-updates on; # ddns-update-style - Define el mtodo de actualizacin automtica de los DNS. ddns-update-style ad-hoc; option ntp-servers 200.54.149.19; # servidor de tiempo ntp.shoa.cl option domain-name-servers 172.16.1.1, 172.16.2.1; shared-network zoneClient{ subnet 172.16.2.0 netmask 255.255.255.0 { option routers 172.16.2.1; option subnet-mask 255.255.255.0; range dynamic-bootp 172.16.2.128 172.16.2.254; default-lease-time 2160; max-lease-time 4320; } subnet 172.16.1.0 netmask 255.255.255.0 { option routers 172.16.1.1; option netbios-name-servers 172.16.1.11; option subnet-mask 255.255.255.0; default-lease-time 2160; max-lease-time 4320; } group { host cel { hardware ethernet 00:01:f1:33:22:22; fixed-address 172.16.2.7; } } }

tem 13. Configuracin de Servidor DHCP - 66

Dentro del archivo de ejemplo podemos notar el esquema seguido, en la cabecera todas las directivas y opciones comunes a nuestra red, despus se crea una zona que administra nuestro dispositivo fsico de red, en este caso zonaClient, en su interior se pueden crear una o varias subredes (aunque una sola podr entregar IP dinmica por interfaz) y grupos en donde se pueden configurar varios dispositivos de red asignando diversas opciones adems de la posibilidad de asignarle siempre una misma IP. Dentro de las opciones y directivas ms utilizadas encontramos: option domain-name-servers option ntp-servers option routers option subnet-mask option netbios-name-servers range dynamic-bootp hardware ethernet fixed-address servidores DNS asignados al cliente. servidor de tiempo asignado al cliente puerta de enlace de la red o subred mascara de la subred servidor WINS rango en que repartir las IP MAC de una tarjeta de red de algn cliente IP que se asigna a una mquina

Finalmente, editaremos /etc/sysconfig/dhcpd en donde seleccionamos el dispositivo de red que dar usar nuestro servidor.
DHCPDARGS=eth1

Esta ltima configuracin es muy importante para restringir por que interfaz de red atender las solicitudes y as no causar posibles conflictos de red.

tem 13. Configuracin de Servidor DHCP - 67

tem 14. Configuracin de Servidor DNS


DNS asocia nombres de hosts con sus respectivas direcciones IP. As, los usuarios pueden utilizar el nombre de host cuando desean conectarse a otras mquinas en la red sin tener que recordar las direcciones IP. El uso de nombres de un dominio completamente cualificado (FQDN) y DNS brinda varias ventajas a los administradores de sistemas, ofrecindoles flexibilidad a la hora de cambiar las direcciones IP para mquinas individuales sin afectar las peticiones a nombres en las mquinas. Por otro lado, los administradores pueden intercambiar las mquinas que manejan consultas basadas en nombre. Cuando un host cliente solicita informacin desde un servidor de nombres, usualmente se conecta al puerto 53. El servidor de nombres intenta luego resolver el FQDN basado en su librera de resolucin, la cual puede contener informacin de autorizacin sobre el host solicitado o datos en cach de una consulta anterior. Si el nombre del servidor no tiene la respuesta en su librera de resolucin, consultar a otros servidores de nombres, llamados servidores de nombres de root, para determinar cules servidores de nombres son fidedignos para el FQDN en cuestin. Luego, con esa informacin, consulta los servidores de nombres autoritarios para determinar la direccin IP del host solicitado. Si se est realizando una bsqueda inversa, se usa el mismo procedimiento, excepto que la consulta es realizada con una direccin IP conocida en vez de un nombre.

Configurando un servidor DNS solo Cache


Un DNS cache es aquel que guarda los nombres resueltos evitando que cada una de esas peticiones salga a Internet para resolver un nombre, sino que solamente saldrn las peticiones no guardadas y almacenar en cache dicha solicitud asociando la IP al nombre. Los paquetes a instalar que son necesarios para montar un DNS cache son bind, bind-utils, bind-libs y caching-nameserver. Un ejemplo de un archivo de configuracin DNS Cache es el que se muestra a continuacin.
options { listen-on port 53 { 127.0.0.1; 172.16.0.0/12; }; directory "/var/named"; forwarders { 8.8.8.8; 190.208.65.14; 190.208.65.13; }; forward only; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view localhost_resolver { recursion yes; include "/etc/named.rfc1912.zones"; };

Configurando un servidor DNS maestro


En Internet, el FQDN de un host se puede dividir en diversas secciones. Estas secciones son organizadas en orden jerrquico (como un rbol), con un tronco, ramas principales, ramas secundarias, etc. Por ejemplo, considere el siguiente FQDN:
bob.sales.example.com

tem 14. Configuracin de Servidor DNS - 68

Para leer cmo un FQDN es resuelto para encontrar la direccin IP que se relaciona a un sistema particular, lea el nombre de derecha a izquierda, con cada nivel de la jerarqua dividido por puntos (.). En nuestro ejemplo, com define el dominio de nivel superior para este FQDN. El nombre example es un subdominio bajo com, mientras que sales es un subdominio bajo example. El nombre a la izquierda, bob, identifica el nombre de una mquina especfica. Aparte del nombre del dominio, cada seccin se llama zona, la cual define un espacio de nombre particular. Un espacio de nombre, controla los nombres de los subdominios de la izquierda. Aunque en el ejemplo solamente hay dos subdominios, un FQDN tiene que contener al menos un subdominio, pero puede incluir muchos ms dependiendo de la organizacin del espacio de nombres elegido.

Instalacin y configuracin de BIND


yum install bind-chroot

Editar (crendolo si no existe) el archivo /var/named/chroot/etc/named.conf:


options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; }; include "/etc/rndc.key"; zone "misitio.cl" IN { type master; file "misitio.cl.zone"; allow-update { none; }; }; zone "4.13.200.in-addr.arpa" { type master; file "4.13.200.in-addr.arpa.zone"; };

Configuracin por zona misitio.cl.zone


$TTL 21600 @ IN SOA ns1.misitio.cl. hostmaster.misitio.cl. ( 2011051900 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 21600 ) ; minimun TTL of 1 day NS A CNAME CNAME ns1.misitio.cl. 200.13.4.10 misitio.cl. misitio.cl

IN $ORIGIN misitio.cl. www w3 IN IN IN

Zona inversa 4.13.200.in-addr.arpa


$TTL 21600 @ IN SOA ns1.misitio.cl. hostmaster.misitio.cl. ( 2011051900 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 21600 ) ; minimun TTL of 1 day NS ns1.misitio.cl. 10 10 10 10 PTR PTR PTR PTR misitio.cl. ns1.misitio.cl w3.misitio.cl. www.misitio.cl.

tem 14. Configuracin de Servidor DNS - 69

tem 15. Configuracin de Servidor Proxy (Squid)


La configuracin que haremos trata de un proxy transparente, es decir de aquel proxy que el usuario final no se da cuenta que utiliza, el cul no se configura en el navegador, sino que toma al momento de traficar paquetes de red. Haremos adems un archivo de reglas de palabras denegadas y de otras permitidas, de forma predeterminada acepta todo lo que no esta denegado, sin embargo puede ser que al denegar algna palabra, por ejemplo hot tambin prohbe hotmail, la cual si queremos aceptar hay que agregarla a la lista de permitidas. La instalacin del proxy se puede hacer mediante
yum install squid

Es recomendable crear el archivo /etc/squid/squid.conf, veamos como hacer este archivo paso a paso

proxy transparente
http_port 10.69.0.1:3128 transparent

Esta primer instruccin dice que usaremos el puerto 3128 en nuestro servidor 10.69.0.1, ademas de ello que nuestro proxy ser transparente.

el cache
cache_mem 64 MB cache_swap_low 90 cache_swap_high 95 maximum_object_size 4096 KB cache_dir aufs /var/spool/squid 1024 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log

Esta es la configuracin del cache hablar ac un poco de estas lineas: cache_mem: memoria de objetos calientes (de forma predeterminada esta en 256, pero si su equipo es pequeo debe bajar, el tope recomendado es RAM/3). cache_swap_low y cache_swap_high: son el rango de porcentajes de memoria cache que se dedica para el intercambio. maximum_object_size: el tamao mximo del objeto que va a ser almacenado en cache, los objetos mas grandes que estos no se almacenarn, en este caso 4M que es lo predeterminado. cache_dir: directorio donde almacenar el cache, el parmetro aufs es mejor que ufs debido a que maneja multihilo aumentando el rendimiento... 1024 es la cantidad de megas que usar en disco, en nuestro caso 1G y el resto es la figura de 16 directorios o carpetas con 256 directorios cada uno, este valor es el predeterminado (16 256). cache_access_log, cache_log, cache_store_log son los logs que informan el acceso, el log del sistema de cache y el del uso del almacenamiento.

tem 15. Configuracin de Servidor Proxy (Squid) - 70

el refresco
Despus del cache definimos cuanto tiempo lo guardamos, bsicamente la expresin regular, el tiempo mnimo antes de descargar de nuevo (en minutos), el porcentaje de envejecimiento y el tiempo mximo para considerarse viejo (en minutos)
# Paquetes Debian y RedHat 1 dia refresh_pattern -i \.deb$ 1440 100% 1440 refresh_pattern -i \.rpm$ 1440 100% 1440 # Actualizaciones de windows 10 a 20 dias refresh_pattern -i \.cab$ 14400 80% 28800 # Ejecutables 10 a 30 dias refresh_pattern -i \.exe$ 14400 80% 43200 # Imagenes minimo 1 dia maximo 3 antes de descargar de nuevo refresh_pattern -i \.gif$ 1440 80% 4320 refresh_pattern -i \.tiff?$ 1440 80% 4320 refresh_pattern -i \.bmp$ 1440 80% 4320 refresh_pattern -i \.jpe?g$ 1440 80% 4320 refresh_pattern -i \.xbm$ 1440 80% 4320 refresh_pattern -i \.png$ 1440 80% 4320 refresh_pattern -i \.wrl$ 1440 80% 4320 refresh_pattern -i \.ico$ 1440 80% 4320 refresh_pattern -i \.pnm$ 1440 80% 4320 refresh_pattern -i \.pbm$ 1440 80% 4320 refresh_pattern -i \.pgm$ 1440 80% 4320 refresh_pattern -i \.ppm$ 1440 80% 4320 refresh_pattern -i \.rgb$ 1440 80% 4320 refresh_pattern -i \.ppm$ 1440 80% 4320 refresh_pattern -i \.rgb$ 1440 80% 4320 refresh_pattern -i \.xpm$ 1440 80% 4320 refresh_pattern -i \.xwd$ 1440 80% 4320 refresh_pattern -i \.pict?$ 1440 80% 4320 # Video minimo 10 dias, maximo 30 refresh_pattern -i \.mov$ 14400 80% 43200 refresh_pattern -i \.mpe?g?$ 14400 80% 43200 refresh_pattern -i \.avi$ 14400 80% 43200 refresh_pattern -i \.qtm?$ 14400 80% 43200 refresh_pattern -i \.viv$ 14400 80% 43200 refresh_pattern -i \.swf$ 14400 80% 43200 refresh_pattern -i \.flv$ 14400 80% 43200 # Sonido idem que video refresh_pattern -i \.wav$ 14400 80% 43200 refresh_pattern -i \.aiff?$ 14400 80% 43200 refresh_pattern -i \.au$ 14400 80% 43200 refresh_pattern -i \.ram?$ 14400 80% 43200 refresh_pattern -i \.snd$ 14400 80% 43200 refresh_pattern -i \.mid$ 14400 80% 43200 refresh_pattern -i \.mp2$ 14400 80% 43200 refresh_pattern -i \.mp3$ 14400 80% 43200 refresh_pattern -i \.ogg$ 14400 80% 43200 # Default refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320

El tiempo que deseemos mantener almacenado algo es relativo a nuestro trabajo, en todo caso por motivos de actualizaciones lo ideal no es dejar muy alto los valores de los archivos .deb .rpm, y si la gente de Microsoft trabajara en serio en parches, deberia acortarse ese tiempo, pero como no es as... Recordemos que slo almacenar los archivos que estn dentro del maximum_object_size

Control de Acceso
Ahora, a crear las listas de control de acceso (acl : access control list), en ellas bsicamente decimos que o a quien permitimos o denegamos. En este lugar tambin usamos el http_access que permite o provee el acceso a las reglas de acceso http. Una cosa importante a recordar es que estas reglas se aplican de arriba a abajo, siendo las superiores sobre las inferiores, es decir, si permito abc arriba y luego deniego todo abajo, significa que solamente estoy permitiendo abc y nada ms.
tem 15. Configuracin de Servidor Proxy (Squid) - 71

acl all src 0.0.0.0/0.0.0.0 # todo acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 # maquina local acl SSL_ports port 443 873 # https, rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl CONNECT method CONNECT # metodo Connect acl padres src 10.69.0.0/255.255.255.0 # red padres acl hijos src 10.69.1.0/255.255.255.0 # red hijos acl palabrasNo url_regex "/etc/squid/palabras_no" acl palabrasSi url_regex "/etc/squid/palabras_si" acl horario time MTWHF 18:30-20:00 acl finsemana time AS 15:00-20:00 http_access allow manager localhost http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow palabrasSi http_access allow padres http_access allow horario finsemana hijos !palabrasNo http_access deny all

Me detendr ac a explicar solo un par de reglas, src hace referencia a una o un rango de ip, time hace referencia a dias de la semana (MTWHFAS) y rango horario (00:00-23:59). acl palabrasNo url_regex "/etc/squid/palabras_no" y acl palabrasSi url_regex "/etc/squid/palabras_si" hacen referencia a url_regex que busca una expresin regular en una url, y la lista de expresiones regulares esta en los archivos /etc/squid/palabras_no y /etc/squid/palabras_si. Un ejemplo de palabras_no es:
ardiente ass bdsm bestialismo bitch bizarre bizarro blowjob boobies boobs bukkake chochito cum exnovia ex\+novia hot

Un ejemplo de palabras_si seria aquel que tiene como parte algna denegada, por ejemplo "cum"
cumple document acumula ecumenico

Otras configuraciones
Finalmente es bueno dejar los mensajes del proxy en espaol y cambiar el nombre del host a algno que queramos.
error_directory /usr/share/squid/errors/Spanish visible_hostname proxy.gulix.local

tem 15. Configuracin de Servidor Proxy (Squid) - 72

tem 16. Servidor Web (Apache)


Instalacin de los paquetes bsicos
Para tener un servidor web completamente funcional se deben instalar los siguientes programas: Apache (httpd): servidor web. ImageMagick: programa para el tratamiento de imgenes. MySQL: motor de base de datos. PHP: lenguaje interpretado para la generacin de pginas web dinmicas. La instalacin con PHP 5.1 se realiza de la siguiente forma:
yum install httpd mysql mysql-server php php-pear php-gd php-imap php-mysql php-mbstring php-soap \ php-xml php-pecl-apc php-pecl-http perl-Geo-IP GeoIP GeoIP-data ImageMagick

Configuracin de PHP
Para un correcto funcionamiento de las aplicaciones web (por ejemplo, TYPO3), se deben modificar algnos valores en la configuracin de PHP. Para ello se debe editar el archivo /etc/php.ini y modificar los siguientes valores:
max_execution_time = 60 max_input_time = 90 memory_limit = 128M post_max_size = 16M upload_max_filesize = 16M

Configuracin de Apache VirtualHost por omisin


Se debe editar el archivo /etc/httpd/conf/httpd.conf y realizar los siguientes ajustes: Descomentar la lnea:
#NameVirtualHost *:80

Agregar la siguiente seccin al final del archivo:


<VirtualHost *:80> ServerAdmin webmaster@misitio.cl DocumentRoot /var/www/html ServerName misitio.cl ErrorLog logs/error_log CustomLog logs/access_log combined </VirtualHost>

Es recomendable agregar cada servidor virtual en archivos propios en el directorio /etc/httpd/conf.d/, el archivo debe terminar en .conf para que sea cargado al hacer
service httpd reload

tem 16. Servidor Web (Apache) - 73

tem 17. Configuracin de FTP (vsftpd)


vsftpd es un servicio de FTP rpido y seguro. Este es el preferido en Red Hat Enterprise Linux. El modelo de seguridad utilizado por vsftpd tiene tres aspectos principales: Clara separacin de procesos privilegiados y sin privilegios Procesos separados manejan tareas diferentes y cada uno de estos procesos se ejecuta con los privilegios mnimos requeridos para la tarea. Las tareas que requieren altos privilegios son manejadas por procesos con los mnimos privilegios necesarios Influenciando las compatibilidades encontradas en la biblioteca libcap, las tareas que usualmente requieren privilegios de superusuario se pueden ejecutar de forma ms segura desde un proceso menos privilegiado. La mayora de los procesos se ejecutan enjaulados en un ambiente chroot Siempre que sea posible, se cambia la raz de los procesos al directorio compartido; este directorio se considera luego como la jaula chroot. Por ejemplo, si el directorio /var/ftp/ es el directorio compartido principal, vsftpd reasigna /var/ftp/ al nuevo directorio raz, conocido como /. Esto previene actividades maliciosas de cualquier hacker potencial en algn directorio que no estn por debajo del nuevo directorio root.

Instalacin
yum install vsftpd

Recordamos abrir los puertos 20 y 21 en tcp para la conexin FTP y los puertos superiores para la trasnferencia de archivos. Los archivos instalados son: /etc/vsftpd/vsftpd.conf el archivo de configuracin de vsftpd. /etc/vsftpd.ftpusers Una lista de los usuarios que no tienen permitido conectarse a vsftpd. Por defecto esta lista incluye a los usuarios root, bin y daemon, entre otros. /etc/vsftpd.user_list Este archivo se puede configurar para negar o permitir el acceso a los usuarios listados, dependiendo de si la directriz userlist_deny est configurada a YES (por defecto) o a NO en /etc/vsftpd/vsftpd.conf. Si se utiliza /etc/vsftpd.user_list para permitir acceso a los usuarios, los nombres de usuarios listados no deben aparecer en /etc/vsftpd.ftpusers. El directorio /var/ftp/ El directorio que contiene los archivos servidos por vsftpd. Tambin contiene el directorio /var/ftp/pub/ para los usuarios annimos. Ambos directorios estn disponibles para la lectura de todos, pero slo el superusuario o root puede escribir en el.

Configuracin
Editar /etc/vsftpd/vsftpd.conf y usar para eliminar los usuarios annimos el siguiente valor:
anonymous_enable=NO

Si se desea restringir el acceso FTP a un grupo especfico de usuarios, se debe agregar la siguiente lnea
userlist_deny=NO

Luego se debe editar el archivo /etc/vsftpd/user_list y dejar slo los usuarios que pueden acceder por FTP.
tem 17. Configuracin de FTP (vsftpd) - 74

Estableciendo jaulas para los usuarios


De modo predeterminado los usuarios del sistema que se autentiquen tendrn acceso a otros directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder utilizar su propio directorio personal, puede hacerse fcilmente con el parmetro chroot_local_user que habilitar la funcin de chroot() y los parmetros chroot_list_enable y chroot_list_file para establecer el archivo con la lista de usuarios que quedarn excluidos de la funcin chroot().
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list

Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendr acceso a su propio directorio personal y lo que este contenga. No olvide crear el archivo /etc/vsftpd/chroot_list, ya que de otro modo no arrancar el servicio vsftpd.

algnas directivas importantes de considerar


pasv_address Especifica la direccin IP para la IP del lado pblico del servidor para los servidores detrs de cortafuegos Network Address Translation (NAT). Esto permite que vsftpd entregue la direccin correcta de retorno para las conexiones pasivas. Esta directriz no tiene un valor predeterminado. pasv_enable Cuando est activa, se permiten conexiones en modo pasivo. El valor por defecto es YES. pasv_max_port Especifica el puerto ms alto posible enviado a los clientes FTP para las conexiones en modo pasivo. Esta configuracin es utilizada para limitar el intervalo de puertos para que las reglas del cortafuegos sean ms fciles de crear. El valor predeterminado es 0, lo que no limita el rango de puertos pasivos ms alto. El valor no puede exceder de 65535. pasv_min_port Especifica el puerto ms bajo posible para los clientes FTP para las conexiones en modo pasivo. Esta configuracin es utilizada para limitar el intervalo de puertos para que las reglas del cortafuego sean ms fciles de implementar. El valor predeterminado es 0, lo que no limita el intervalo de puertos pasivos ms bajo. El valor no debe ser menor que 1024. Estas directivas son muy importantes a la hora de configurar el firewall, debido a que segn se encuentre el puerto mximo y mnimo es el rango en que hay que abrir los puertos superiores.

tem 17. Configuracin de FTP (vsftpd) - 75

tem 18. xinetd


Conceptos bsicos de TCP wrappers
Muchos administradores de sistemas UNIX estn acostumbrados a usar TCP wrappers para administrar el acceso a determinados servicios de red. Todos los servicios de red gestionados por xinetd (as como cualquier programa con soporte incorporado para libwrap) puede usar TCP wrappers para administrar el acceso. xinetd puede usar el archivo /etc/hosts.allow y /etc/hosts.deny para configurar el acceso a los servicios del sistema. Como el nombre implica, hosts.allow contiene una lista de reglas que permiten a los clientes acceder a los servicios de red controlados por xinetd, y hosts.deny contiene reglas para denegar el acceso. El archivo hosts.allow tiene prioridad sobre el archivo hosts.deny. Los permisos que conceden o deniegan el acceso se puede basar en cada direccin IP (o nombres de host) o en un modelo de clientes. Consulte la seccin 5 de hosts_access en las pginas del manual (man 5 hosts_access) para ms detalles. Los TCP wrappers proporcionan control de acceso a una variedad de servicios. La mayora de los servicios modernos de redes, tales como SSH, Telnet y FTP, utilizan TCP wrappers como guardias entre las peticiones entrantes y el servicio solicitado. Los beneficios ofrecidos por TCP wrappers son mejorados cuando se usan en conjunto con xinetd, un super servicio que proporciona acceso adicional, conexin, enlace, redireccin y control de la utilizacin de recursos. Para controlar el acceso a los servicios de Internet, use xinetd. ste es un sustituto seguro del comando inetd. El demonio xinetd conserva los recursos del sistema, proporciona control y registro de acceso, y sirve para arrancar servidores de uso especial. xinetd puede ser usado para proveer acceso a host particulares, denegar el acceso a determinados hosts, proporcionar acceso a un servicio en horas concretas, limitar el nmero de conexiones de entrada y/o la carga que se crea con las conexiones, etc. xinetd se ejecuta de forma permanente y escucha en todos los puertos para los servicios que administra. Cuando recibe una peticin de conexin de uno de los servicios que administra, xinetd arranca el servidor apropiado a dicho servicio. El archivo de configuracin para xinetd es /etc/xinetd.conf, pero el archivo slo contiene unos pocos valores por defecto y una instruccin para incluir el directorio /etc/xinetd.d. Para activar o desactivar un servicio xinetd, modifique el archivo de configuracin en el directorio /etc/xinetd.d. Si el atributo disable est definido como yes, el servicio es desactivado. Si el atributo disable est definido a no, el servicio es activado. Puede editar cualquiera de los archivos de configuracin xinetd o cambiar el estado usando la Services Configuration Tool, ntsysv o chkconfig. Para obtener una lista de los servicios de red controlados por xinetd, revise los contenidos del directorio /etc/xinetd.d con el comando ls /etc/xinetd.d.

Archivos de configuracin de xinetd


Los archivos de configuracin para xinetd son los siguientes: /etc/xinetd.conf El archivo de configuracin global de xinetd. /etc/xinetd.d/ El directorio que contiene todos los archivos especficos al servicio.

tem 18. xinetd - 76

El archivo /etc/xinetd.conf
El archivo /etc/xinetd.conf contiene parmetros de configuracin generales que afectan a todos los servicios bajo el control de xinetd. Se lee cuando el servicio xinetd inicia, as que para los cambios de configuracin surtan efecto, es necesario reiniciar el servicio xinetd. La siguiente es una muestra del archivo /etc/xinetd.conf:
defaults { instances log_type log_on_success log_on_failure cps } includedir /etc/xinetd.d = = = = = 60 SYSLOG HOST PID HOST 25 30

authpriv

Estas lneas controlan los siguientes aspectos de xinetd: instances Configura el mximo nmero de peticiones que xinetd puede manejar simultneamente. log_type Configura xinetd para usar la facilidad de registro authpriv, el cual escribe las entradas de registro al archivo /var/log/secure. Al agregar una directiva tal como FILE /var/log/xinetdlog aqu, crear un archivo de registro personalizado llamado xinetdlog en el directorio /var/log/. log_on_success Configures xinetd to log successful connection attempts. By default, the remote host's IP address and the process ID of the server processing the request are recorded. log_on_failure Configura xinetd para registrar si hay una falla de conexin o si la conexin no es permitida. cps Configura xinetd para no permitir ms de 25 conexiones por segundo a cualquier servicio dado. Si se alcanza este lmite, el servicio es retirado por 30 segundos. includedir /etc/xinetd.d/ incluye los archivos especficos ubicados en el directorio /etc/xinetd.d/ directory

Ejemplo usando xinit para control vsftpd


El formato de los archivos en el directorio /etc/xinetd.d/ usan las mismas convenciones que /etc/xinetd.conf. La razn principal por la que la configuracin para cada servicio es almacenada en un archivo separado es hacer ms fcil la personalizacin y que sea menos probable afectar otros servicios. Para tener una idea de cmo estos archivos estn estructurados, considere el archivo /etc/xinetd.d/telnet:
service telnet { flags socket_type wait user server log_on_failure disable }

= REUSE = stream = no = root = /usr/sbin/in.telnetd += USERID = yes

tem 18. xinetd - 77

Estas lneas controlan varios aspectos del servicio telnet: service Define el nombre del servicio, usualmente uno listado en el archivo /etc/services. flags Configura cualquier nmero de atributos para la conexin. REUSE instruye xinetd a reutilizar el socket para una conexin Telnet. socket_type Configura el socket de red a escribir a stream. wait Define si el servicio es de un slo hilo (yes) o de mltiples hilos (no). user Define bajo qu ID de usuario se ejecutar el proceso. server Define el binario ejecutable a lanzar. log_on_failure Define los parmetros de registro para log_on_failure adems de aquellos ya definidos en xinetd.conf. disable Define si el servicio est activo o no.

De similar forma creamos el archivo /etc/xinetd.d/vsftpd:


service ftp { socket_type wait user server log_on_success log_on_failure disable }

= stream = no = root = /usr/sbin/vsftpd += HOST DURATION += HOST = no

y agregar
vsftpd: ALL

a /etc/hosts.allow

tem 18. xinetd - 78

tem 19. Configuracin de Correo electrnico (sendmail)


algnos analisis y encuentas nos expresan comentarios muy buenos sobre Sendmail, esto de acuerdo a una encuesta realizada por la editorial O'Reilly, la cual formulo la siguiente pregunta: Cuantas empresas tienen implementado como servidor de correo a Sendmail? Para dicha encuesta se seleccionaron al rededor de 400 000 dominios, de los cuales el 12.3 % de los encuestados respondieron que tenian implementado a Sendmail como servidor de correo, el segundo lugar fue para Postfix con un 8.6 % y en tercer lugar tenemos a Postini con el 8.5%. Esta encuesta la puedes encontrar en la siguiente direccion web: http://www.oreillynet.com/lpt/a/6849

Protocolo SMTP
Simple Mail Transfer Protocol (SMTP) Protocolo Simple de Transferencia de Correo, es un protocolo de la capa de aplicacin. Protocolo de red basado en texto utilizado para el intercambio de mensajes de correo electrnico entre computadoras u otros dispositivos. SMTP se basa en el modelo cliente-servidor, donde un cliente enva un mensaje a uno o varios receptores. La comunicacin entre el cliente y el servidor consiste enteramente en lneas de texto compuestas por caracteres ASCII. El tamao mximo permitido para estas lneas es de 1000 caracteres. Las respuestas del servidor constan de un cdigo numrico de tres digitos, seguido de un texto explicativo. El nmero va dirigido a un procesado automtico de la respuesta por autmata, mientras que el texto permite que un humano interprete la respuesta. En el protocolo SMTP todas las rdenes, rplicas o datos son lneas de texto, delimitadas por el carcter <CRLF>. Todas las rplicas tienen un cdigo numrico al comienzo de la lnea. En el conjunto de protocolos TCP/IP, el SMTP va por encima del TCP, usando normalmente el puerto 25 en el servidor para establecer la conexin.

Protocolo POP3
POP3 est diseado para recibir correo, no para enviarlo; le permite a los usuarios con conexiones intermitentes muy lentas (tales como las conexiones por mdem), descargar su correo electrnico mientras tienen conexin y revisarlo posteriormente incluso estando desconectados. Cabe mencionar que la mayora de los clientes de correo incluyen la opcin de dejar los mensajes en el servidor, de manera tal que, un cliente que utilice POP3 se conecta, obtiene todos los mensajes, los almacena en la computadora del usuario como mensajes nuevos, los elimina del servidor y finalmente se desconecta. En contraste, el protocolo IMAP permite los modos de operacin conectado y desconectado. Los clientes de correo electrnico que utilizan IMAP dejan por lo general los mensajes en el servidor hasta que el usuario los elimina directamente. Esto y otros factores hacen que la operacin de IMAP permita a mltiples clientes acceder al mismo buzn de correo. La mayora de los clientes de correo electrnico soportan POP3 IMAP; sin embargo, solo unos cuantos proveedores de internet ofrecen IMAP como valor agregado de sus servicios.

Protocolo IMAP
Internet Message Access Protocol, o su acrnimo IMAP, es un protocolo de red de acceso a mensajes electrnicos almacenados en un servidor. Mediante IMAP se puede tener acceso al correo electrnico desde cualquier equipo que tenga una conexin a Internet. IMAP tiene varias ventajas sobre POP, que es el otro protocolo empleado para obtener correo desde un servidor. Por ejemplo, es posible especificar en IMAP carpetas del lado servidor. Por otro lado, es ms complejo que POP ya que
tem 19. Configuracin de Correo electrnico (sendmail) - 79

permite visualizar los mensajes de manera remota y no descargando los mensajes como lo hace POP.

Ventajas sobre POP3


Respaldo para los modos de operacin conetado y desconectado. Al utilizar POP3, los clientes se conectan brevemente al servidor de correo, solamente el tiempo que les tome descargar los nuevos mensajes. Al utilizar IMAP, los clientes permanecen conectados el tiempo que su interfaz permanezca activa y descargan los mensajes bajo demanda. Esta manera de trabajar de IMAP puede dar tiempos de respuesta ms rpidos para usuarios que tienen una gran cantidad de mensajes o mensajes grandes. Respaldo para que la informacin de estado del mensaje se mantenga en el servidor. A travs de la utilizacin de seales definidas en el protocolo IMAP4 de los clientes, se puede vigilar el estado del mensaje, por ejemplo, si el mensaje ha sido o no ledo, respondido o eliminado. Estas seales se almacenan en el servidor, de manera que varios clientes conectados al mismo correo en diferente tiempo pueden detectar los cambios hechos por otros clientes. Respaldo para bsquedas de parte del servidor. IMAP4 proporciona un mecanismo para que los clientes pidan al servidor que busque mensajes de acuerdo a una cierta variedad de criterios. Este mecanismo evita que los clientes descarguen todos los mensajes de su buzn de correo, agilizando, de esta manera, las bsquedas.

Instalacin de Sendmail
El proceso de instalacion de Sendmail requiere de los siguientes paquetes sendmail sendmail.cf dovecot cyrus cyrus-sasl-mmd5 cyrus-sasl-plain make m4

Sobre el paquete sendmail y senmail.cf


Este paquete incluye el MUA Sendmail as como los archivos de configuracin propios de sendmail.

Sobre el paquete dovecot


Dovecot es el servidor de IMAP y POP3 de Linux.

tem 19. Configuracin de Correo electrnico (sendmail) - 80

Sobre el paquete cyrus-sasl


SASL son las siglas de Simple Authentication and Security Layer, mtodo que aade un soporte adicional para la autenticacin de los protocolos que fundamentan su conexin en la estandarizacin fijada por la IETF (Internet Engineering Task Force). Se usa en servidores, como Cyrus IMAP, para controlar las peticiones de acceso de los clientes. El protocolo de autenticacin incluir comandos para la correcta apertura del canal cliente-servidor y las subsiguientes aperturas del canal para la toma de nuevos datos. Opcionalmente, puede negociarse una capa de seguridad entre el protocolo mismo y la conexin. Cyrus SASL utiliza OpenSSL para cifrar los datos. Para llevar a cabo la instalacion de estos paquetes solo teclee en terminal lo siguiente:
yum install sendmail sendmail.cf dovecot cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5 make m4

Configuracin Bsica de Sendmail


Los archivos generados a partir de la instalacin del servidor de coreo Sendmail que modificaremos sern los siguientes: access local-host-names relay-domains ---> (Este archivo sera creado por usted) sendmail.mc

El archivo relay-domains no existe por lo que tendr que ser creado por usted mismo Estos archivos los puedes localizar en: /etc/mail/

Configuracin de /etc/mail/access
En este archivo se definen los dominios o conjunto de direcciones IP que podran hacer uso o no del servidor de correo. La sintaxis de este archivo es el siguiente
Connect:midominio1.net Connect:midominio2.net Connect:midominio3.net Connect:midominio4.net [accion] [accion] [accion] [accion]

Los valores que puede tomar el parametro (accion) son los siguientes: RELAY REJECT Permite el envio de correo a travez de nuestro servidor Niega el uso de nuestro servidor para la entrega de correo

tem 19. Configuracin de Correo electrnico (sendmail) - 81

Ejemplo:
# Check the /usr/share/doc/sendmail/README.cf file for a description # of the format of this file. (search for access_db in that file) # The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc # package. # # If you want to use AuthInfo with "M:PLAIN LOGIN", make sure to have the # cyrus-sasl-plain package installed. # # By default we allow relaying from localhost... Connect:localhost.localdomain RELAY Connect:localhost RELAY Connect:127.0.0.1 RELAY #IP Publica de su Servidor de correo Connect: 207.249.24.30 #Nombre de su Dominio Connect: midominio.com.mx #Nombre de su Equipo Connect: correo.midominio.com.mx #IP Local de su Servidor de correo Connect: 192.168.1.10 RELAY RELAY RELAY RELAY

#Dominios y direcciones IP a quienes se les negara el envio de correo Connect:spammers.com.ar REJECT Connect:yourporn.net REJECT Connect:207.46.197.32 REJECT Connect:207.46.197.32 REJECT

Como podemos observar, solo permitimos el envo de correo a nuestro propio dominio as como tambin a la direccin IP publica que tiene asignada nuestro dominio, as mismo estamos denegando el uso de nuestro servidor de correo a dominios como spammers.com.ar , yourporn.net y a las direcciones IP 207.46.197.32 y 207.46.197.32.

Configuracin del /etc/mail/local-host-names


Se suele utilizar para escribir aquellos dominios o equipos de los cuales sendmail va a recibir correo. Por ejemplo, si nuestro servidor de correo va a aceptar correo proveniente del dominio midominio.com.mx y tambin de la mquina correo.midominio.com.mx nuestro archivo local-host-names debera quedar editado de la siguiente forma
correo.midominio.com.mx midominio.com.mx

Configuracin de /etc/mail/relay-domains
En este archivo se introducirn los nombres de los equipos, redes o dominios desde o hacia las que podemos hacer transmisin de correo. Por ejemplo:
midominio.com.mx correoomidominio.com.mx

Como podemos observar estamos permitiendo la transmisin a cualquier correo que venga de o vaya hacia el dominio midominio.com.mx , asi como tambien al dominio correo.midominio.com.mx. Practicamente es una copia del archivo /etc/mail/local-host-names

tem 19. Configuracin de Correo electrnico (sendmail) - 82

Configuracin de /etc/mail/sendmail.mc
Este archivo contiene la configuracin completa del servidor de correo, es por ello que debe ser cuidadoso al momento de editarlo.
Activando interfaces de red

Por defecto sendmail esta configurado para enviar correos desde la interfaz loopback 127.0.0.1,esto quiere decir que unicamente el servidor envia correos a si mismo, para cambiar este comportamiento solo debers ubicar la siguiente linea:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

y eliminar el parametro Addr=127.0.0.1 , es decir, al final, la linea deber quedar de la siguiente manera
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

Con esta accin sendmail asumir que podr enviar correos desde cualquier IP. As mismo tambin podrs declarar cada una de las direcciones IP por las cuales se podr enviar correo Ejemplo:
DAEMON_OPTIONS(`Port=smtp,Addr=192.168.0.1 Name=MTA')dnl DAEMON_OPTIONS(`Port=smtp,Addr=172.16.0.10 Name=MTA')dnl

Filtrado de dominios no validos

Por defecto, Sendmail esta configurado para aceptar correos de dominios no resueltos. Una forma de cambiar este comportamiento es comentando la siguiente linea del archivo /etc/mail/sendmail.mc.
FEATURE(`accept_unresolvable_domains')dnl

Solo tendr que agregar la palabra dnl al comienzo de la linea, al finalizar deber quedar de la siguiente forma
dnl FEATURE(`accept_unresolvable_domains')dnl

Con esta accin usted estar restringiendo el paso de spam a su servidor de correo
Enmascarar dominios

Si tu intencin es enviar correo con solo un dominio lo conveniente es enmascarar todos los correos emitidos desde el servidor con el nombre de tu dominio. Para ello ubica la siguiente linea:
dnl MASQUERADE_AS(`mydomain.com')dnl

descomente la linea eliminando la palabra dnl que se encuentra al principio de la linea y luego introduce el nombre de tu dominio como se a muestra a continuacin
dnl MASQUERADE_AS(`midominio.com.mx')dnl

Con esta accin lograras que tus correos salgan con la terminacin @midominio.com.mx Igualmente ubique las siguientes lineas y tambin descomentelas
FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl

tem 19. Configuracin de Correo electrnico (sendmail) - 83

Habilitar el puerto 587 para el envo de correo

Recomendamos abrir el puerto alternativo 587 de SMTP para el envo de correo en su servidor. Para hacerlo, busque la siguiente linea
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

descomente la linea eliminando la palabra dnl que se encuentra al principio de la linea, con eso tendr habilitado el envo por el puerto 587
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

Habilitar la autenticacin de los usuarios de correo

La linea
define(`confAUTH_OPTIONS', `A')dnl

se encuentra habilitada por defecto permite realizar autenticacin de usuarios por el mtodo PLAIN o mediante cifrado. El mtodo PLAIN consiste en autenticacin en texto plano Dejar esta linea activada presenta cierto riesgo de seguridad ya que todas las contraseas de los usuarios viajan en texto claro lo cual podra ser aprovechado por algn analizador de protocolos y robar las contraseas. Una manera de solucionar este problema seria comentando la anterior linea y en su lugar descomentar la siguiente.
define(`confAUTH_OPTIONS', `A p')dnl

Esta accin desactiva la autenticacin en texto plano y en su lugar activa la autenticacin mediante cifrado, el nico inconveniente es que obligara a sus clientes o usuarios a utilizar clientes de correo con soporte para autenticacin mediante cifrado. No lo olvide Adicionalmente ubique las siguientes lineas y tambin descomentelas
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

Configuracin del servidor dovecot


Por defecto,el servidor dovecot tiene deshabilitados los protocolos pop e imap lo cuales son necesarios para la entrega de correo, la forma de habilitar estos protocolos es de la siguiente manera. Edite el siguiente archivo con la ayuda de cualquier editor de textos /etc/dovecot.conf Ubique la siguiente linea
#protocols = imap imaps pop3 pop3s

Y solo borre la almohadilla de # y las palabras imaps pop3s. Al final deber lucir de la siguiente manera:
protocols = imap pop3

tem 19. Configuracin de Correo electrnico (sendmail) - 84

Configuracin Avanzada de Sendmail


Limitando el numero de destinatarios de correo
La manera de establecer un numero mximo de destinatarios para un mensaje de correo electrnico se hace agregando la siguiente linea:
define(`confMAX_RCPTS_PER_MESSAGE', `10')dnl

justo debajo de la linea


dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl

El numero 10 hace referencia al numero mximo de destinatarios para un mensaje de coreo, tu puedes modificar este valor segn tu conveniencia Al finalizar deber lucir de la siguiente manera
dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confMAX_RCPTS_PER_MESSAGE', `10')dnl

Limitando el tamao de la cabecera de un correo


La manera de establecer un tamao mximo de cabecera para un mensaje de correo electrnico se hace agregando la siguiente linea:
define(`confMAX_HEADERS_LENGTH', `10240')dnl

justo debajo de la linea


define(`confMAX_RCPTS_PER_MESSAGE', `10')dnl

El numero 10240 es equivalente a 10Kb (Kilo Bytes), tu puedes modificar este valor segn tu conveniencia Al finalizar deber lucir de la siguiente manera
define(`confMAX_RCPTS_PER_MESSAGE', `10')dnl define(`confMAX_HEADERS_LENGTH', `10240')dnl

Limitando el tamao para un mensaje de correo


La manera de establecer un tamao mximo para un mensaje de correo electrnico se hace agregando la siguiente linea
define(`confMAX_MESSAGE_SIZE', `3075000')dnl

justo debajo de la linea


define(`confMAX_HEADERS_LENGTH', `10240')dnl

El numero 3075000 es equivalente a 3Mb (Mega Bytes),tu puedes modificar este valor segn tu conveniencia Al finalizar deber lucir de la siguiente manera
define(`confMAX_HEADERS_LENGTH', `10240')dnl define(`confMAX_MESSAGE_SIZE', `3075000')dnl

tem 19. Configuracin de Correo electrnico (sendmail) - 85

Limitando el nmero de procesos hijos en el servidor de correo


La forma de limitar el numero de procesos hijos que se permitirn simultneamente en el servidor de correo sera de la siguiente manera: Agregue la siguiente linea
define(`confMAX_DAEMON_CHILDREN', `5')dnl

justo debajo de la linea


define(`confMAX_MESSAGE_SIZE', `3075000')dnl

Al finalizar deber lucir de la siguiente manera


define(`confMAX_MESSAGE_SIZE', `3075000')dnl define(`confMAX_DAEMON_CHILDREN', `5')dnl

Limitando el nmero de conexiones


La forma de limitar el numero de conexiones por segundo que se permitirn en el servidor de correo sera de la siguiente manera: Agregue la siguiente linea
define(`confCONNECTION_RATE_THROTTLE', `4')dnl

justo debajo de la linea


define(`confMAX_DAEMON_CHILDREN', `5')dnl

Al finalizar deber lucir de la siguiente manera


define(`confMAX_DAEMON_CHILDREN', `5')dnl define(`confCONNECTION_RATE_THROTTLE', `4')dnl

Alta de cuentas de correo


La forma en que dar de alta cuentas de correo para sus usuarios sera de la siguiente manera
useradd -s /sbin/nologin nombreDeUsuario

Asignando contraseas a las cuentas de correo


La forma en que asignara contraseas a las cuentas de correo sera a travs de dos fases. La primera aplicando el siguiente comando
passswd nombreDelsuario

y la segunda aplicando este otro


saslpasswd2 nombreDelsuario

tem 19. Configuracin de Correo electrnico (sendmail) - 86

Iniciar , detener o reiniciar el servidor de Correo


Para iniciar el servidor de correo por primera vez solo deber teclear en terminal el siguiente comando:
service sendmail start | stop | restart

Iniciar , detener o reiniciar el servidor Dovecot


Para iniciar el servidor de correo por primera vez solo deber teclear en terminal el siguiente comando:
service dovecot start | stop | restart

Iniciar , detener o reiniciar el servicio de autenticacin


Para iniciar el servidor de correo por primera vez solo deber teclear en terminal el siguiente comando:
service saslauthd start | stop | restart

tem 19. Configuracin de Correo electrnico (sendmail) - 87

tem 20. Programacin de tareas


Configuracin de una tarea repetitiva con Cron
El fichero de configuracin principal de cron, /etc/crontab, contiene las lneas siguientes:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly

Cada lnea del archivo /etc/crontab representa una tarea y tiene el formato siguiente: minute hour day month dayofweek command minute nmero entero entre 0 y 59 hour nmero entero entre 0 y 23 day nmero entero entre 1 y 31 (debe ser un da vlido si se especifica un mes) month nmero entero entre 1 y 12 (o nombre corto del mes, por ejemplo, ene, feb, etc.) dayofweek nmero entero entre 0 y 7, donde 0 o 7 corresponde a Domingo (o el nombre corto del da de la semana, por ejemplo, dom, lun, etc.) command comando a ejecutar

En cualquiera de los valores antes indicados, se puede utilizar un asterisco (*) para especificar todos los valores vlidos. Por ejemplo, un asterisco para el valor de mes significa que el comando se ejecutar cada mes dentro de las limitaciones del resto de los valores. Un guin (-) entre los nmeros enteros indica un intervalo de nmeros enteros. Por ejemplo, 1-4 significa los nmeros enteros 1, 2, 3 y 4. Una lista de valores separados por comas (,) especifica una lista. Por ejemplo, 3, 4, 6, 8 indica esos cuatro nmeros enteros. El demonio cron controla el fichero etc/crontab, el directorio etc/cron.d/ y el directorio /var/spool/cron cada minuto para cada cambio. Si se encuentra algn cambio, estos se cargan en la memoria. De este modo, el demonio no necesita ser reiniciado si se cambia un fichero crontab.

Configuracin de una tarea nica con At


Mientras que cron es utilizado para programar tareas recurrentes, el comando at se usa para programar una nica tarea en un tiempo especfico. El comando batch se usa para programar que se ejecute una nica tarea cuando la carga promedio de los sistemas estn por debajo de 0.8. Para poder usar at debe tener el paquete RPM at instalado y el servicio atd en funcionamiento. Para determinar si el paquete est instalado, utilice el comando rpm -q at. Para determinar si el servicio se est ejecutando,utilice el comando /sbin/service atd status. Para programar una tarea no repetitiva en un tiempo especfico, escriba el comando at time, en el que time es el tiempo para ejecutar el comando.

tem 20. Programacin de tareas - 88

El argumento time puede ser uno de los siguientes: Formato HH:MM Por ejemplo,04:00 seala las 4:00AM. Si se inserta el tiempo, se ejecuta en la hora especfica del siguiente da. midnight Especifica 12:00 a.m. noon Especifica 12:00 p.m. teatime Especifica las 4:00 p.m. Formato del nombre-mes, da y ao Por ejemplo, Enero 15 del ao 2002. El ao es opcional. Formato MMDDYY, MM/DD/YY, o MM.DD.YY Por ejemplo, 011502 para el da 15 de Enero del 2002. now + time el tiempo est en minutos, horas, das o semanas. Por ejemplo, now + 5 das, especifica que el comando debera ser ejecutado a la misma hora en 5 das.

tem 20. Programacin de tareas - 89

Documentacin
El presente manual es una recopilacin de informacin de diferentes sitios de Internet, la mayor parte de ellos bajo licencias que permiten compartir dicha informacin, otros que no se encontraban licenciados (como la wiki de Lazos), a continuacin se nombran ellos. Documentacin de CentOS : http://www.centos.org/docs/5 Documentacin de RedHat : http://docs.redhat.com Wiki del Grupo de Usuarios Linux de la IX Regin : http://gulix.cl/wiki Base de Conocimiento de la Comunidad Linux Para Todos : http://www2.linuxparatodos.net/web/comunidad/base-de-conocimiento Documentacion de ArchLinux : http://www.archlinux.org Wikipedia en Espaol : http://es.wikipedia.org Wiki de Lazos : http://wiki.lazos.cl Instituto de Tecnologa de Massachusett : http://web.mit.edu

El licenciamiento ms apropiado tomando en cuenta la voluntad de licenciamiento de cada uno de dichos sitios, su documentacin, licencias y la informacin recopilada, modificada y agregada aparentemente la ms compatible es Creative Commons BY-SA 3.0

Documentacin - 90

INDICES
ndice de contenido
tem 1. Instalacin y Configuracin de Sistema Operativo Linux.............................................................2 Pasos previos a la Instalacin................................................................................................................2 Instalando el Sistema.............................................................................................................................2 Modo Grfico....................................................................................................................................2 Modo Texto....................................................................................................................................11 Configuracin de Servicios.................................................................................................................11 tem 2. Instalacin de software................................................................................................................12 RPM.....................................................................................................................................................12 Sintaxis del comando rpm..............................................................................................................12 Consultar Y Verificar Los Paquetes..........................................................................................12 Instalacin, Actualizacin, Y Eliminacin De Paquetes...........................................................12 YUM....................................................................................................................................................13 Sintaxis del comando yum es.........................................................................................................13 tem 3. La Shell de Linux.........................................................................................................................14 Introduccin.........................................................................................................................................14 Comandos Bsicos..............................................................................................................................14 man.................................................................................................................................................14 ls......................................................................................................................................................14 cd.....................................................................................................................................................17 pwd.................................................................................................................................................18 cp.....................................................................................................................................................18 mv...................................................................................................................................................19 rm....................................................................................................................................................19 cat....................................................................................................................................................19 more................................................................................................................................................20 tail...................................................................................................................................................20 head.................................................................................................................................................20 ps.....................................................................................................................................................21 kill...................................................................................................................................................22 killall...............................................................................................................................................23 top...................................................................................................................................................23 alias.................................................................................................................................................24 Comandos Bsicos Avanzados............................................................................................................25 chmod.............................................................................................................................................25 chgrp...............................................................................................................................................26 chown..............................................................................................................................................26 df.....................................................................................................................................................26 du....................................................................................................................................................26 find..................................................................................................................................................27 grep.................................................................................................................................................27 ifconfig............................................................................................................................................28 ln.....................................................................................................................................................29 passwd.............................................................................................................................................29 ping.................................................................................................................................................29 route................................................................................................................................................29
INDICES - 91

scp...................................................................................................................................................30 ssh...................................................................................................................................................30 su.....................................................................................................................................................31 yes...................................................................................................................................................31 time.................................................................................................................................................31 Tuberas y Redireccionamientos.........................................................................................................31 Tuberas (pipeline)..........................................................................................................................31 Redireccionamiento........................................................................................................................32 Trabajos en segundo plano.............................................................................................................33 control Z.....................................................................................................................................33 jobs.............................................................................................................................................33 fg................................................................................................................................................33 &................................................................................................................................................33 bg................................................................................................................................................33 tem 4. El kernel de Linux........................................................................................................................35 Configuracin del gestor de arranque para un nuevo kernel...............................................................36 GRUB.............................................................................................................................................37 tem 5. Sistemas de archivos....................................................................................................................38 Estructura del sistema de Archivos.....................................................................................................39 Libre................................................................................................................................................40 Superbloque....................................................................................................................................40 Features...........................................................................................................................................42 Descriptores de grupos de bloques.................................................................................................42 Grupo de bloques............................................................................................................................43 Tabla de inodos...............................................................................................................................43 Directorios......................................................................................................................................45 tem 6. Uso de vi......................................................................................................................................46 Para insertar.........................................................................................................................................46 Para hacer correcciones.......................................................................................................................46 Salidas.................................................................................................................................................47 Mover y pegar texto............................................................................................................................47 Repetir y deshacer cambios.................................................................................................................47 Comandos desde vi..............................................................................................................................48 Sustituciones........................................................................................................................................48 Opciones.........................................................................................................................................48 tem 7. Administracin de usuarios.........................................................................................................49 Creando usuarios de forma bsica.......................................................................................................49 Creando Grupos de Usuario................................................................................................................50 Creando usuarios en Grupos................................................................................................................50 Dando permiso a carpetas y archivos de Usuarios..............................................................................50 Dando permisos especiales (sudo)......................................................................................................53 Dando permiso especial a Usuario.................................................................................................53 Dando permiso especial a Grupos de Usuario................................................................................53 tem 8. Redes............................................................................................................................................54 Introduccin.........................................................................................................................................54 Niveles de pila................................................................................................................................54 El modelo TCP....................................................................................................................................55 tem 9. Configuracin de red...................................................................................................................56 Archivos de configuracin de red.......................................................................................................56 /etc/hosts ........................................................................................................................................56 /etc/resolv.conf ...............................................................................................................................56
INDICES - 92

/etc/sysconfig/network-scripts/ifcfg-<interface-name> .................................................................56 Interfaces de acceso telefnico o red de marcado......................................................................57 Scripts de control de interfaz...............................................................................................................59 tem 10. Configuracin de Firewall.........................................................................................................60 Comandos para manejar el firewall.....................................................................................................60 El servicio iptables..........................................................................................................................60 El comando iptables........................................................................................................................60 iptables-save e iptables-restore.......................................................................................................61 Configuracin Manual.........................................................................................................................61 Opciones extras de seguridad..............................................................................................................62 tem 11. Configuracin de SSH...............................................................................................................63 Configurando el servicio.....................................................................................................................63 Autentificacin Usando llaves.............................................................................................................63 Creando llaves RSA........................................................................................................................63 tem 12. Configuracin de Servidor Samba.............................................................................................64 Configuracin de recursos compartidos..............................................................................................64 tem 13. Configuracin de Servidor DHCP.............................................................................................66 tem 14. Configuracin de Servidor DNS................................................................................................68 Configurando un servidor DNS solo Cache........................................................................................68 Configurando un servidor DNS maestro.............................................................................................68 Instalacin y configuracin de BIND.............................................................................................69 tem 15. Configuracin de Servidor Proxy (Squid).................................................................................70 proxy transparente...............................................................................................................................70 el cache................................................................................................................................................70 el refresco............................................................................................................................................71 Control de Acceso...............................................................................................................................71 Otras configuraciones..........................................................................................................................72 tem 16. Servidor Web (Apache).............................................................................................................73 Instalacin de los paquetes bsicos.....................................................................................................73 Configuracin de PHP....................................................................................................................73 Configuracin de Apache VirtualHost por omisin............................................................................73 tem 17. Configuracin de FTP (vsftpd)..................................................................................................74 Configuracin......................................................................................................................................74 Estableciendo jaulas para los usuarios............................................................................................75 algnas directivas importantes de considerar.................................................................................75 tem 18. xinetd.........................................................................................................................................76 Conceptos bsicos de TCP wrappers...................................................................................................76 Archivos de configuracin de xinetd...................................................................................................76 El archivo /etc/xinetd.conf..............................................................................................................77 Ejemplo usando xinit para control vsftpd............................................................................................77 tem 19. Configuracin de Correo electrnico (sendmail).......................................................................79 Protocolo SMTP..................................................................................................................................79 Protocolo POP3...................................................................................................................................79 Protocolo IMAP..................................................................................................................................79 Ventajas sobre POP3...........................................................................................................................80 Instalacin de Sendmail.......................................................................................................................80 Sobre el paquete sendmail y senmail.cf..........................................................................................80 Sobre el paquete dovecot................................................................................................................80 Sobre el paquete cyrus-sasl.............................................................................................................81 Configuracin Bsica de Sendmail.....................................................................................................81 Configuracin de /etc/mail/access..................................................................................................81
INDICES - 93

Configuracin del /etc/mail/local-host-names................................................................................82 Configuracin de /etc/mail/relay-domains.....................................................................................82 Configuracin de /etc/mail/sendmail.mc........................................................................................83 Activando interfaces de red.......................................................................................................83 Filtrado de dominios no validos.................................................................................................83 Enmascarar dominios.................................................................................................................83 Habilitar el puerto 587 para el envo de correo..........................................................................84 Habilitar la autenticacin de los usuarios de correo..................................................................84 Configuracin del servidor dovecot....................................................................................................84 Configuracin Avanzada de Sendmail................................................................................................85 Limitando el numero de destinatarios de correo.............................................................................85 Limitando el tamao de la cabecera de un correo..........................................................................85 Limitando el tamao para un mensaje de correo............................................................................85 Limitando el nmero de procesos hijos en el servidor de correo...................................................86 Limitando el nmero de conexiones...............................................................................................86 Alta de cuentas de correo....................................................................................................................86 Asignando contraseas a las cuentas de correo...................................................................................86 Iniciar , detener o reiniciar el servidor de Correo................................................................................87 Iniciar , detener o reiniciar el servidor Dovecot..................................................................................87 Iniciar , detener o reiniciar el servicio de autenticacin......................................................................87 tem 20. Programacin de tareas..............................................................................................................88 Configuracin de una tarea repetitiva con Cron..................................................................................88 Configuracin de una tarea nica con At............................................................................................88 Documentacin........................................................................................................................................90 INDICES..................................................................................................................................................91

INDICES - 94

You might also like