Anda di halaman 1dari 255

Manual de Implementacion de Beakos GNU/Linux

Version 2
03/03/2011

Fondo de Informacin y documentacin para la Industria Infotec


Autor: Francisco Sosa Romero

Beakos GNU/Linux: Manual de Implementacin de Beakos GNU/Linux 1.0

Este manual de implementacin documenta toda la informacin relacionada a la configuracin y administracin de Beakos GNU/Linux en ambientes de produccin.

Fondo de Informacin y Documentacin para la Industria

Av. San Fernando #37 Col. Toriello Guerra Del. Tlalpan Mxico D. F.

Colaboradores
Francisco Sosa Romero Jess Arriola Villarreal Antonio Moreno Herrera Carlos Torres Arcega ngel Ruiz Rosas

Informacin sobre los derechos reservados relacionados a esta publicacin.


Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0
Usted es libre de:

Copiar, distribuir y comunicar pblicamente la obra. Hacer obras derivadas.

Bajo las condiciones siguientes:


Reconocimiento Debe reconocer y citar al autor original de esta obra. No comercial No puede utilizar esta obra para fines comerciales. Compartir bajo la misma licencia Si altera o transforma esta obra, o genera una obra derivada, slo puede distribuir la obra generada bajo una licencia idntica a sta.

Tabla de contenido
Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 .................................. 4 Usted es libre de:............................................................................................................... 4 Bajo las condiciones siguientes: ........................................................................................ 4

Introduccin .......................................................................................... 15
Convenciones para este documento....................................................................................... 15

Captulo 1 Instalacin de Beakos GNU/Linux ......................................... 17


Instalacin guiada de Beakos GNU/Linux ............................................................................... 17 1.2 Instalacin personalizada .................................................................................................. 25 1.3 Arranque del sistema operativo Beakos GNU/Linux ......................................................... 39 1.3.1 Cargador de inicializacin GRUB ................................................................................ 39 1.3.2 Proceso INIT ............................................................................................................... 40 1.3.3 Secuencia de arranque en Beakos GNU/Linux ........................................................... 40

Captulo 2 Configuracin de la red ......................................................... 41


2.1 Archivos de configuracin de la red .................................................................................. 41 2.2 Asistente de la configuracin de la red ............................................................................. 42 2.2.1 Asignacin de direccin IP esttica ............................................................................ 43 2.2.2 Asignacin de la direccin IP a travs de DHCP ......................................................... 46 2.2.3 Parmetros de DNS ................................................................................................... 47 2.2.4 Configuracin del nombre del sistema ...................................................................... 49 2.3 Administracin de hosts .................................................................................................... 50

Captulo 3 Control de servicios de Beakos GNU/Linux ........................... 51


3.1 Niveles de ejecucin.......................................................................................................... 51 3.2 Administracin de servicios con chkconfig ....................................................................... 53 3.3 Administracin de servicios a travs de Webmin ............................................................. 54

Captulo 4 Lnea de comandos ............................................................... 57


4.1 Intrprete de comandos BASH ......................................................................................... 57 4.1.1 Control de tareas ........................................................................................................ 60 4.1.2 Variables de entorno .................................................................................................. 60 4.1.3 Redireccin ................................................................................................................. 61 4.1.4 Pginas del manual..................................................................................................... 62 4.1.5 Textinfo ...................................................................................................................... 62 4.1.7 Listar archivos............................................................................................................. 62

4.2 Manipulacin de archivos y directorios ............................................................................ 64 4.2.1 Tipos de ficheros y directorios ................................................................................... 64 4.2.3 Archivos, propiedades y permisos ............................................................................. 64 4.2.2 Cambio de un usuario a un archivo o directorio ........................................................ 65 4.2.3 Copiar archivos ........................................................................................................... 66 4.2.4 Mover archivos directorios ....................................................................................... 66 4.2.5 Crear enlaces simblicos ............................................................................................ 67 4.2.6 Buscar archivos y directorios...................................................................................... 67 4.2.7 Compresin de archivos y directorios con GZIP y BZIP2 ............................................ 68 4.2.8 Crear y eliminar directorios ....................................................................................... 68 4.2.9 Concatenar archivos ................................................................................................... 69 4.2.10 Uso de espacio en disco ........................................................................................... 69 4.2.11 Localizar comandos .................................................................................................. 70 4.3 Edicin de textos ............................................................................................................... 70 4.4 Lectura de archivos ........................................................................................................... 71 4.5 Utileras del sistema .......................................................................................................... 71 4.5.1 Mostrar el directorio de ubicacin actual .................................................................. 71 4.5.2 Espacio libre del disco ................................................................................................ 71 4.5.3 Mostrar un archivo mientras crece ............................................................................ 72 4.5.4 Sincronizacin de archivos y copias de respaldo con RSYNC ..................................... 72 4.5.5 Listar procesos............................................................................................................ 73 4.5.6 Matar procesos .......................................................................................................... 73

Captulo 5 Administracin de usuarios y grupos .................................... 74


5.1 Qu constituye a un usuario?.......................................................................................... 74 5.2 El archivo /etc/passwd ...................................................................................................... 74 5.2.1 Campo del nombre de usuario ................................................................................... 74 5.2.2 Campo de la contrasea ............................................................................................. 75 5.2.3 Campo del ID del usuario (UID) .................................................................................. 75 5.2.4 Campo de la ID del grupo (GID) .................................................................................. 75 5.2.5 Campo del nombre completo .................................................................................... 75 5.2.6 Campo del directorio .................................................................................................. 75 5.2.7 Campo del intrprete de comandos .......................................................................... 75 5.4 El archivo /etc/shadow ..................................................................................................... 76 5.4.1 Polticas de expiracin de contraseas ...................................................................... 76

5.5 El archivo /etc/group......................................................................................................... 77 5.6 Administrando usuarios .................................................................................................... 78 4.6.1 Agregar usuarios......................................................................................................... 78 5.6.2 Borrar usuarios ........................................................................................................... 79 5.6.3 Modificar usuarios...................................................................................................... 79 5.6.4 Agregar grupos .......................................................................................................... 79 5.6.5 Borrar grupos ............................................................................................................. 79 5.6.6 Modificar grupos ........................................................................................................ 79 5.7 Administracin de usuarios a travs de Webmin ............................................................ 80 5.8 Usuarios y permisos de acceso ......................................................................................... 80 4.9 Comprensin de SetUID, SetGID y Sticky bit ..................................................................... 80 5.10 Listas de accesos (ACL) .................................................................................................... 82 5.10.1 Activacin del uso de listas de acceso sobre sistemas de archivos. ........................ 82 5.10.2 Implementacin de listas de acceso en archivos y directorios. ............................... 83 5.11 Configuracin y administracin de cuotas ...................................................................... 85 5.11.1 Activacin del uso de cuotas sobre sistemas de archivos........................................ 85 5.11.2 Administracin de cuotas de disco. ......................................................................... 86

Captulo 6 Planificacin de tareas con Cron ........................................... 88


6.1 Configuracin de una tarea con cron ............................................................................ 88 6.2 Control de acceso a cron ............................................................................................... 91 6.3 Administracin de tareas planificadas a travs de Webmin ......................................... 91 6.3.1 Editar una tarea programada ..................................................................................... 92 6.3.2 Control de acceso de los usuarios a cron ................................................................... 92

Captulo 7 Administracin de sistemas de archivos ............................... 93


7.1 Administracin de particiones .......................................................................................... 93 7.1.2 ext3 y ReiserFS ........................................................................................................... 93 7.1.3 Creacin de una particin .......................................................................................... 93 7.2 Utilizacin de etiquetas en sistemas de archivos.............................................................. 97 7.3 Montando y desmontando sistemas de archivos ............................................................. 98 7.4 Puntos de montaje y el archivo /etc/fstab........................................................................ 99 7.5 Software RAID ................................................................................................................. 100 7.5.1 Niveles de RAID ms comunes ................................................................................. 100 7.5.1 Configuracin de software RAID .............................................................................. 101 7.5.2 Pruebas y recuperacin ............................................................................................ 103

7.6 Administracin de volmenes lgicos............................................................................. 104 7.6.1 Creacin de Grupos de volmenes y volmenes lgicos ........................................ 106 7.6.2 Redimensionando volmenes lgicos ...................................................................... 109 7.7 Crear un rea de intercambio (SWAP) utilizando un archivo ......................................... 110

Captulo 8 Configuracin del firewall de Beakos GNU/Linux ................ 112


9.1 Netfilter ........................................................................................................................... 112 8.2 Funcionamiento de IPtables ............................................................................................ 112 8.3 Manejo de IPtables.......................................................................................................... 114 8.4 Opciones de comandos de IPtables ................................................................................ 116 8.4.1 Destinos de las reglas (target) .................................................................................. 118 8.4.2 Especificaciones de las reglas ................................................................................... 118 8.4.3 Seguimiento de conexiones ..................................................................................... 119 8.4.4 Persistencia de las reglas.......................................................................................... 120 8.5 Network Address Translation (NAT) ................................................................................ 121 8.5.1 Compartir Internet en una red LAN ......................................................................... 124 8.5.2 Configuracin de un firewall simple......................................................................... 125 8.6 Configuracin del firewall con Webmin .......................................................................... 127

Captulo 9 Sistema de archivos /proc................................................... 129


10.1 Archivos dentro del directorio /proc............................................................................. 129 9.1.1 buddyinfo ................................................................................................................. 130 9.1.2 cmdiline .................................................................................................................... 130 9.1.3 cpuinfo...................................................................................................................... 130 9.1.4 crypto ....................................................................................................................... 131 9.1.5 devices ...................................................................................................................... 131 9.1.6 dma........................................................................................................................... 132 9.1.7 filesystems ................................................................................................................ 132 9.1.8 interrupts.................................................................................................................. 132 9.1.9 loadavg ..................................................................................................................... 133 9.1.10 meminfo ................................................................................................................. 133 9.1.11 modules .................................................................................................................. 134 9.1.12 mounts ................................................................................................................... 134 9.1.13 partitions ................................................................................................................ 135 9.1.14 stat.......................................................................................................................... 135 9.1.15 swaps ...................................................................................................................... 135

9.2 Ajustes dentro de /proc .................................................................................................. 135 9.3 Uso del comando sysctl ................................................................................................... 136

Captulo 10 Gestin de paquetes ......................................................... 138


11.1 Instalacin y desinstalacin de paquetes...................................................................... 138 10.1.1 Comando installpkg ................................................................................................ 138 10.1.2 Comando removepkg ............................................................................................. 138 10.2 Administracin de paquetes con SWARET .................................................................... 139 10.2.1 Archivo de configuracin swaret.conf ................................................................... 139 10.2.2 Opciones del comando swaret ............................................................................... 141 10.3 Compilacin de software desde el cdigo fuente ......................................................... 142 10.3.1 Creacin de paquetes con la herramienta Checkinstall ......................................... 144

Captulo 11

Sistema de logs ............................................................ 145

11.1 El demonio Syslogd ....................................................................................................... 145 11.2 Configuracin del demonio syslogd .............................................................................. 145 11.3 Enviar registros a otro sistema remoto ......................................................................... 146

Captulo 12 Servicios sobre demanda .................................................. 148


12.1 Extended Internet Daemon ........................................................................................... 148 12.2 Instalacin del Demonio Xinetd .................................................................................... 148 12.3 Configuracin del demonio Xinetd................................................................................ 148 12.3.1 Variables para servicios de Xinetd ......................................................................... 149 12.3.2 Ejemplos de servicios a travs de Xinetd ............................................................... 150

Captulo 13 Open SSH .......................................................................... 151


13.1 Ventajas de SSH ............................................................................................................. 151 13.2 Versiones de SSH ........................................................................................................... 151 13.3 Configuracin del servidor SSH ..................................................................................... 151 13.4 Administracin del servidor SSH a travs de Webmin .................................................. 152 13.5 Cliente SSH .................................................................................................................... 154 13.5.1 Comando ssh .......................................................................................................... 154 13.5.2 Comando scp .......................................................................................................... 155 13.5.3 Comando sftp ......................................................................................................... 156 13.5.4 Clientes con interfaz grafica para SSH .................................................................... 156

Captulo 14 Servicios de impresin ...................................................... 158


14.1 Sistema de impresin cups............................................................................................ 158

14.1.1 Caractersticas ........................................................................................................ 158 14.2 Funcionamiento ............................................................................................................ 158 14.3 Planificador.................................................................................................................... 159 14.4 Instalacin de CUPS ....................................................................................................... 159 14.4.1 Archivos de Trabajo ................................................................................................ 160 14.4.2 Archivos de registro ............................................................................................... 160 14.5 Comandos Berkeley....................................................................................................... 161 14.5.1 El comando LPC ...................................................................................................... 161 14.5.2 El comando LPQ ..................................................................................................... 161 14.5.3 El comando LPR ...................................................................................................... 162 14.5.4 El comando LPRM................................................................................................... 162 14.6 Comandos SYSTEM V..................................................................................................... 163 14.6.1 El comando LP ........................................................................................................ 163 14.6.2 El comando LPADMIN ............................................................................................ 163 14.7 Comandos CUPS ............................................................................................................ 164 14.7.1 El comando CUPSADDSMB ..................................................................................... 164 14.7.2 El comando LPINFO ................................................................................................ 165 14.8 Configuracin de impresoras ........................................................................................ 165 14.8.1 Uso de la interfaz web ............................................................................................ 166 14.8.2 Agregado de impresoras con la interfaz Web ........................................................ 167 14.8.3 Agregar una impresora desde la lnea de comandos ............................................. 169 14.8.4 Configuracin de la impresora predeterminada .................................................... 170 14.8.5 Privilegios de impresin ......................................................................................... 171 14.8.6 Eliminar impresoras ............................................................................................... 171

Captulo 15 Network File System (NFS) ................................................ 172


15.1 Historia de NFS .............................................................................................................. 172 15.2 Instalacin de NFS ......................................................................................................... 172 15.3 Acceso y montaje de las particiones ............................................................................. 173 15.4 Configuracin del servidor NFS ..................................................................................... 173 15.4.1 El archivo de configuracin /etc/exports ............................................................... 174 15.4.2 Comando exportfs .................................................................................................. 174 15.4.3 Comando showmount ............................................................................................ 175 15.5 Configuracin del cliente NFS ....................................................................................... 175

Captulo 16 SAMBA (CIFS).................................................................... 178

16.1 Caractersticas ............................................................................................................... 178 16.1.2 Lo que puede y no puede hacer Samba ................................................................. 179 16.2 Demonios de Samba...................................................................................................... 179 16.3 Nombres de usuarios y contraseas ............................................................................. 179 16.3.1 Motores de usuarios y contraseas ....................................................................... 180 16.4 Instalacin de Samba .................................................................................................... 180 16.5 Configuracin de Samba ............................................................................................... 181 16.5.1 Configuracin del grupo de trabajo ....................................................................... 181 16.5.2 Seguridad a nivel de usuarios................................................................................. 181 16.5.3 Seguridad a nivel de red ......................................................................................... 182 16.5.4 Compartir impresoras en un entorno de red de Windows .................................... 182 16.5.5 Compartir archivos en un entorno de red de Windows ........................................ 183 16.6 Samba como controlador de dominio primario usando tdbsam. ................................. 185 16.7 Uso de samba para autenticar contra un servidor Windows........................................ 187 16.7.1 El demonio Winbind ............................................................................................... 187 16.7.2 Integracin al active directory ............................................................................... 187 16.8 SWAT (Samba Web Administration Tool) ..................................................................... 192 16.8.1 Mens de SWAT ..................................................................................................... 193 16.9 El comando SMBCLIENT ................................................................................................ 194 16.9.1 Explorar un servidor ............................................................................................... 194 16.9.2 Acceder a un archivo remoto ................................................................................. 195 16.10 Montaje de un recurso compartido de Samba ........................................................... 196

Captulo 17 LDAP ................................................................................. 198


17.2 Conceptos bsicos de LDAP........................................................................................... 198 17.2.1 Jerarqua de LDAP .................................................................................................. 198 17.2.2 Funcionamiento de LDAP ....................................................................................... 199 17.2.3 Implementaciones de LDAP ................................................................................... 199 17.2.4 Trminos empleados en LDAP ............................................................................... 200 17.3 Open LDAP..................................................................................................................... 201 17.3.1 Los demonios Slapd y Slurpd. ................................................................................. 201 17.3.2 Utilidades del Cliente de OpenLDAP ...................................................................... 201 17.4 Instalacin de OpenLDAP .............................................................................................. 202 17.5 Configuracin de OpenLDAP ......................................................................................... 202 17.5.1 El archivo de configuracin slapd.conf................................................................... 202

17.5.3 Administracin del servicio de OpenLDAP ............................................................. 204 17.5.4 Configuracin del cliente de OpenLDAP ................................................................ 205 17.6 Creacin de objetos en OpenLDAP ........................................................................... 205 17.6.1 Consultas en un directorio LDAP ............................................................................ 206 17.7 Implementacin de una libreta de direcciones en un directorio LDAP ........................ 207 17.7.1 Agregar los esquemas. ........................................................................................... 208 17.7.2 Instalacin de PHPLDAPADMIN.............................................................................. 208 17.7.3 Creacin de Objetos con PHPLDAPADMIN ............................................................ 210 17.7.4 Configuracin del cliente de Correo....................................................................... 211

Captulo 18 DHCP ................................................................................ 214


18.1 Funcionamiento del servicio de DHCP .......................................................................... 214 18.2 Instalacin del servidor DHCP ....................................................................................... 214 18.2.1 Administracin del Servicio de DHCP ..................................................................... 215 18.3 Configuracin del servidor DHCP .................................................................................. 215 18.3.1 Declaraciones ......................................................................................................... 216 18.3.2 Parmetros ............................................................................................................. 217 18.3.3 Opciones ................................................................................................................. 218 18.4 Ejemplo de un archivo de configuracin ................................................................... 218

Captulo 19 Copias de seguridad .......................................................... 220


19.1 Amanda ......................................................................................................................... 220 19.2 Instalacin de Amanda .................................................................................................. 220 19.3 Configuracin de un servidor amanda .......................................................................... 221 19.3.1 Modificar Amanda Daemons para usar auth bsdtcp ............................................. 221 19.3.2 Configuracin del respaldo .................................................................................... 222 19.3.3 Configuracin de Cintas Virtuales .......................................................................... 224 19.3.4 Definicin de las rutas de respaldos ...................................................................... 225 19.4 Configuracin del Cliente .............................................................................................. 226 19.4.1 Solo para otras distribuciones ................................................................................ 227

Captulo 20 Berkeley Internet Name Domain (BIND) ........................... 233


20.1 Historia del DNS ............................................................................................................ 233 20.2 La tabla de hosts............................................................................................................ 233 20.3 Dominios y conceptos sobre los nombres de hosts .................................................. 234 20.3.1 Dominio raz ........................................................................................................... 234

20.3.2 Dominios de primer nivel ....................................................................................... 235 20.3.3 Dominios de segundo nivel .................................................................................... 235 20.3.4 Dominios de tercer nivel ....................................................................................... 235 20.3.5 El dominio in-addr.arpa .......................................................................................... 236 20.4 Tipos de servidores de DNS ........................................................................................... 236 20.4.1 Servidores DNS primarios....................................................................................... 236 20.4.2 Servidores DNS secundarios ................................................................................... 237 20.4.3 Servidores DNS de cach ........................................................................................ 237 20.5 Instalacin de un servidor DNS .................................................................................... 237 20.6 Archivo de configuracin de named.conf ..................................................................... 237 20.6.1 Comentarios ........................................................................................................... 238 20.6.2 Palabras reservadas para los enunciados .............................................................. 238 20.6.3 El enunciado include .............................................................................................. 238 20.6.4 Enunciado logging .................................................................................................. 239 20.6.5 Enunciado server .................................................................................................... 239 20.6.6 Zonas ...................................................................................................................... 239 20.6.7 Enunciado Key ........................................................................................................ 240 20.7 Configuracin de BIND .................................................................................................. 240 20.7.1 Definicin de una zona primaria ............................................................................ 240 20.7.2 Definicin de una zona secundaria ........................................................................ 242 20.7.3 Definicin de una zona de cach............................................................................ 242 20.8 Tipos de registros DNS .................................................................................................. 243 20.8.1 Inicio de autoridad (SOA) ...................................................................................... 243 20.8.2 Servidor de nombres (NS) ...................................................................................... 244 20.8.3 Registro de direccin (A) ....................................................................................... 244 20.8.4 Registro apuntador (PTR) ....................................................................................... 244 20.8.5 Intercambio de correo (MX) ................................................................................... 245 20.8.6 Nombre cannico (CNAME) ................................................................................... 245 20.8.7 Registros de documentacin RP y TXT ................................................................... 245 20.9 Configuracin de un servidor DNS completo ................................................................ 246 20.9.1 Configuracin de la zona en el servidor primario .................................................. 246 20.9.2 Configuracin de la zona en el servidor secundario .............................................. 247 20.9.3 Configuracin de la zona inversa en el servidor primario ...................................... 247 20.10 Consultas a servidores DNS ......................................................................................... 248

20.10.1 Comando host ...................................................................................................... 248 20.10.2 El comando dig ..................................................................................................... 248

Captulo 21 File Tranfer Protocol (FTP) ................................................ 250


21.1 Funcionamiento de FTP ................................................................................................. 250 21.1.1 Accesos a un servidor FTP ...................................................................................... 250 21.1.2 FTP activo ............................................................................................................... 250 21.1.3 FTP pasivo ............................................................................................................... 251 21.2 Instalacin de VSFTPD ................................................................................................... 251 21.3 Configuracin de VSFTPD .............................................................................................. 251 21.3.1 El archivo vsftpd.conf ............................................................................................. 251 20.3.2 Ejemplo de un archivo de configuracin vsftpd.conf ............................................. 253

Referencias ......................................................................................... 254


Libros ..................................................................................................................................... 254 Manuales y tutoriales en lnea .............................................................................................. 254 Informacin general .............................................................................................................. 255

ndice .......................................................... Error! Marcador no definido.

Introduccion
Bienvenido al manual de implementacin de Beakos GNU/Linux, este documento contiene informacin sobre la instalacin, personalizacin y tareas de mantenimiento de su sistema Beakos GNU/Linux. El proyecto de la distribucin Beakos GNU/Linux, nace de analizar la tendencia de otras distribuciones de GNU/Linux que en su intento de acercarse ms al usuario final, incluyen soporte para una gran cantidad de hardware y mdulos de Kernel innecesarios, lo que eleva el consumo del CPU y memoria RAM de manera considerable.

Beakos GNU/Linux es un sistema de desarrollo de software libre impulsado por Infotec para desempearse en ambientes de produccin.

El software libre se refiere directamente a la Libertad que el usuario tiene de emplear y modificar el software a sus necesidades, no tiene nada que ver con el precio. El equipo de desarrollo de Beakos GNU/Linux espera que esta distribucin le sea de utilidad y lo invita a participar de forma activa con la misma.

Convenciones para este documento


Este manual de Beakos GNU/Linux contiene palabras que varan en tamao y tipo de letra para diferenciar su inclusin en una categora especfica, ejemplos de palabras con este tipo de caractersticas son: comandos Cuando encuentre texto con este tipo de estilo (Courier New negrita 11)significa que deber teclear tal cual el comando directamente en la consola. Ejemplo: Introduzca el comando cat archivo para leer su contenido nombres de archivos Los nombres de archivos, rutas especficas, directorios, enlaces simblicos utilizarn el mismo estilo sin negrita, esto significa que los archivos o directorios mencionados existen con el mismo nombre en el sistema operativo. Ejemplo: El archivo /etc/fstab contiene datos sobre los puntos de montaje de los sistemas de archivos.

Aplicaciones Cuando se haga mencin de una aplicacin de un usuario se utilizar este estilo (Calibri 11, negrita). Ejemplo: Puede acceder a la interfaz de administracin Webmin a travs un navegador web como firefox.

El intrprete de comandos se mostrara bajo la siguiente forma (Courier New 11), sombreado en gris root [ ~ ]#

De forma adicional se utilizan algunas imgenes para resaltar informacin importante.

Nota Tenga en cuenta que Beakos es sensible a letras maysculas por lo que escribir network no es lo mismo que Network

Sugerencia No olvides de usar el usuario root lo menos posible, crea un usuario habilitado para usar el comando sudo.

Captulo 1 Instalacion de Beakos GNU/Linux


Instalacin guiada de Beakos GNU/Linux
La instalacin guiada permite a los usuarios con pocos conocimientos instalar Beakos GNU/Linux de una manera fcil, este mtodo crear tres particiones: /boot para alojar la imagen del Kernel y archivos de configuracin para el arranque del sistema operativo, tendr un tamao 130 Mb. / donde residirn todos los directorios del sistema, utilizar todo el espacio restante del disco duro. swap rea de intercambio, tendr el doble de tamao que la memoria RAM de el ordenador donde ser instalado.

Pasos para llevar a cabo una instalacin de Beakos. Insertar el disco en la unidad DVD/ROM que contiene la imagen de Beakos GNU/Linux e iniciar el equipo en modalidad de arranque desde unidad de CD-ROM/DVD-ROM. La imagen ISO se puede obtener de la pgina oficial del proyecto Beakos www.beakos.com.mx

Seleccionar la opcin Instalar Beakos GNU/Linux.

Ingresar el nombre del login root y password toor que se indica en el submen del instalador de Beakos.

Teclear en el prompt la palabra setup para inicializar el instalador.

Seleccionar el botn EXIT y presionar la tecla enter una vez que haya terminado de leer la licencia GPL.

Seleccionar la modalidad de instalacin AUTOMTICA.

Elegir el disco duro donde se llevar a cabo la instalacin.

Una vez seleccionada la unidad correcta para continuar con la instalacin automtica, el instalador proceder a definir el particionamiento adecuado.

Confirmar que desea continuar con la instalacin.

Seleccionar la opcin Yes para proceder con la instalacin de GRUB.

Elegir la opcin No deseo crear un Floppy de GRUB.

Ingresar el password que ser asignado al super usuario root de 6 caracteres como mnimo, posteriormente confirmar dicha contrasea ingresada.

Capturada correctamente la contrasea que ser establecida para el usuario root, seleccionar OK para proceder en reiniciar el equipo y finalizar la instalacin de Beakos GNU/Linux.

1.2 Instalacin personalizada


Dentro de este apartado se mencionaran los pasos a seguir para realizar una correcta instalacin de sistema operativo dentro de la modalidad manual. Insertar el disco que contiene la imagen (ISO) de BeakOS GNU/Linux e iniciar el equipo en modalidad de arranque desde unidad de CD-ROM/DVD-ROM. la imagen se puede obtener del sitio oficial del proyecto Beakos www.beakos.com.mx. Seleccionar Instalar Beakos GNU/Linux.

Ingresar el nombre del login root y password toor que se indica en el submen del instalador de Beakos.

Teclear en el prompt la palabra setup para inicializar el instalador.

Presionar enter y salir una vez que haya terminado de leer la licencia.

Seleccionar la modalidad de instalacin MANUAL.

Teclear enter al aviso que se muestra previo a la creacin del esquema de particionamiento.

Una vez posicionados en la siguiente ventana, seleccionar la opcin PARTICIONAR para personalizar nuestro esquema de particionamiento.

Elegir el disco duro donde se llevar a cabo la instalacin.

Seleccionada la unidad correcta para continuar con la instalacin personalizada, el instalador pasara al men de opciones previo a la creacin del esquema de particionamiento.

Para crear las particiones que necesitamos utilicemos la herramienta fdisk (vase el tema 7.1 Administracin de particiones), necesitamos crear mnimamente las siguientes particiones. / (raiz) que almacenar todos los archivos necesarios para el funcionamiento de beakos. Su tamao mnimo debe ser de 4GB. swap rea de intercambio, su tamao debe ser del doble de la memoria RAM, si es un servidor de ms de 4 GB de RAM lo conveniente es que su tamao no exceda los 4 GB. Concluida la creacin de las particiones necesarias para poder instalar Beakos, procedemos a configurar la particin SWAP.

El instalador detectar automticamente la particin SWAP creada previamente con la herramienta fdisk, seleccionemos la opcin Yes para utilizar esa particin.

Si ya hemos activado alguna particin SWAP lo adecuado es reiniciar el sistema para no corromper la memoria de las pginas que se encuentren actualmente, si est seguro de que no hay particiones SWAP activas. Seleccionemos la opcin OK.

El instalador de Beakos dar formato a las particiones SWAP, seleccione la opcin Yes para continuar.

Una vez que la particin tenga formato adecuado para actuar como rea de intercambio el instalador nos mostrar el guin que tendr en el archivo /etc/fstab. Seleccionamos EXIT para continuar.

Cuando se ha aadido la particin SWAP al archivo /etc/fstab seleccionamos la opcin Yes para configurar la tabla de particiones.

El instalador de Beakos nos mostrar las particiones disponibles creadas con fdisk, seleccionaremos en primera instancia la destinada a / (raiz) y seleccionamos OK, si creaste mas particiones de Linux puedes utilizarlas para fijar mas puntos de montaje.

Selecciona la particin donde se instalar el sistema.

Como la particin no ha sido formateada seleccionemos la opcin Format, se le asignar el sistema de archivos ext3.

Seleccionar la densidad del los inodos, por defecto el instalador selecciona el valor de 4096 bytes si desea conservar ese valor seleccione OK.

Una vez formateada nos indicar la particin que ya ha sido habilitada y el punto de montaje asignado. Si estamos conformes seleccionamos Cancel para continuar.

Ahora se mostrar como ha sido configurado el archivo /etc/fstab previo a la instalacin de Beakos. Selecciona EXIT para ir al confirmacin de la instalacin.

Los parmetros han sido configurados a nuestra necesidad, seleccione Yes para concluir la instalacin.

Concluida la instalacin debemos configurar el gestor de arranque, Beakos utiliza el gestor de arranque GRUB, este se instala en el primer sector del disco duro.

Beakos puede crear un floppy con informacin acerca de la configuracin de GRUB en caso de que el gestor se dae, para fines prcticos seleccionamos la opcin No.

Ingresar contrasea que ser asignada al super usuario root de 6 caracteres como mnimo, posteriormente confirmar dicha contrasea ingresada.

Capturada correctamente la contrasea que ser establecida para el usuario root, seleccionar OK para proceder en reiniciar el equipo y finalizar la instalacin de Beakos GNU/Linux.

1.3 Arranque del sistema operativo Beakos GNU/Linux


Es importante conocer la fases de arranque en sistema operativo GNU/Linux. Conforme evolucionan los sistemas operativos su complejidad va en aumento. En esta seccin analizaremos la inicializacin de Beakos con el gestor de arranque GRUB, describiremos los procesos de arranque y los scripts que automatizan los procesos subsecuentes.

1.3.1 Cargador de inicializacin GRUB


Todos los sistemas operativos necesitan un gestor de arranque o inicializacin incluso los sistemas operativos de la Familia de Microsoft tambin utilizan su gestor de arranque, su principal funcin es pasarle el control al sistema operativo en cuestin, algunos gestores de arranque como GRUB, permiten incluso seleccionar con que sistema operativo deseamos iniciar. El cargador de arranque se instala por lo general en el primer sector del disco duro llamado Master Boot Record (MBR), para los ambientes GNU/Linux e incluso para otras variantes de UNIX, existen dos principales opciones de gestores de arranque GRUB (Grand Unified Boortloader) y LILO (Linux Loader), slo hablaremos de GRUB porque es el gestor ms comn pues cuenta con muchas ms opciones que LILO. En las distribuciones ms modernas de GNU/Linux se utiliza GRUB como es el caso de Red Hat, SuSE, Mandriva, Ubuntu y por supuesto Beakos. El proceso de arranque de GRUB consiste en dos etapas, existen dos archivos dentro de / boot , que se encargan de cada una de ellas, estos archivos son stage1 y stage2. Etapa 1: este archivo se encarga del arranque del GRUB y est incrustado en el MBR. Etapa2: este archivo contiene el cdigo y los parmetros para cargar el ncleo que inicia el sistema operativo, presenta el men de inicializacin y cuenta adems con una consola para aadir parmetros al gestor de arranque.

El GRUB de Beakos consta de dos entradas: Beakos: Inicia el sistema operativo en modo de ejecucin 3 (ver tema 3.1 Niveles de ejecucin), con todos los servicios por defecto. Beakos a prueba de fallos: Inicia el sistema operativo en modo monousuario con la cuenta de root, ideal para realizar tareas de mantenimiento sin usar servicios de red.

1.3.2 Proceso INIT


Es el primer proceso ajeno al ncleo que arranca, este proceso lee la informacin del archivo /etc/inittab y determina el nivel de ejecucin, los valores de ejecucin que se vern mas a detalle en el captulo3 son los siguientes: 0 1 2 3 4 5 6 Apagar el sistema. Modo monousuario. Modo multiusuario sin servicio de NFS. Modo de operacin normal sin interfaz grfica. Sin aplicacin. Modo multiusuario con X Windows. Modo de reinicio.

1.3.3 Secuencia de arranque en Beakos GNU/Linux


En resumen la secuencia de arranque consiste en: Inicializacin del BIOS: El BIOS define de que dispositivo desea leer primer informacin en este caso leer el disco duro que contiene la imagen del GRUB. Cargador de arranque: Una vez que el BIOS cede el control al disco duro este lee la informacin del disco duro y carga el gestor de arranque, que presenta un men para seleccionar el sistema operativo en cuestin y las opciones con las que arrancar. Inicializacin del Kernel: Seleccionado el sistema operativo el GRUB cede el control al Kernel que se encargar de detectar el hardware y cargar los drivers necesarios para el sistema operativo, montar los sistemas de archivos y cargar el proceso init. Inicio del proceso INIT: Este proceso lee el archivo /etc/inittab y arranca en el nivel de ejecucin definido en este archivo. Lectura de los los rc Scripts: /etc/rc.d/rcsysinit.d: esta carpeta contiene scripts indispensables para arrancar el sistema. /etc/rc.d/rc[0-6]: contiene enlaces simblicos al directorio /etc/init.d donde se define en que niveles de arranque de los servicios.

Captulo 2 Configuracion de la red


2.1 Archivos de configuracin de la red
En Beakos GNU/Linux podemos localizar los dispositivos de red que nuestro sistema operativo ha detectado en el directorio /sys/class/net, tecleando el siguiente comando: root [ ~ ]# ls /sys/class/net/ eth0 eth1 eth2 eth3 lo

podemos observar cuatro interfaces Ethernet y el looback. La configuracin de las interfaces de red reside en el siguiente directorio /etc/sysconfig/network-devices. Este directorio debe contener un subdirectorio para cada dispositivo de red a configurar, con la estructura ifconfig.xxx, donde xxx corresponde al nombre de una interfaz de red. Dentro de este directorio se debe crear un fichero con el nombre de i pv 4 y es su contenido la definicin de su direccin IP, mascaras de subred, Gateway, Broadcast etc.., El siguiente es un ejemplo de la configuracin manual que se debe aplicar a Beakos GNU/Linux
Cambiamos de directorio a la ruta donde debe residir el script

root [ ~ ]# cd /etc/sysconfig/network-devices Creamos el directorio correspondiente a la interfaz eth0 root [ ~ ]# mkdir -v ifconfig.eth0 Creamos el contenido del fichero ipv4, para configuracin de IP esttica. root [ ~ ]# cat > ifconfig.eth0/ipv4 << "EOF" ONBOOT=yes SERVICE=ipv4-static IP=192.168.1.1 GATEWAY=192.168.1.2 PREFIX=24 BROADCAST=192.168.1.255 EOF

Configuracin correspondiente utilizando el cliente de DHCP. root [ ~ ]# cat > /etc/sysconfig/networkdevices/ifconfig.eth0/dhclient << "EOF" ONBOOT="yes" SERVICE="dhclient" DHCP_START="-q " DHCP_STOP="-q -r " PRINTIP="no" PRINTALL="no" EOF

Adicionalmente creamos el siguiente fichero en el directorio /etc root [ ~ ]# cat > /etc/dhclient.conf << "EOF" # dhclient.conf interface "eth0"{ prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name; require subnet-mask, domain-name-servers; } # end dhclient.conf EOF

2.2 Asistente de la configuracin de la red


Beakos GNU/Linux cuenta con una herramienta de configuracin de red para facilitar la administracin de dispositivos relacionados, configuracin de dns, nombres de equipo etc. Para utilizarla ejecutamos el siguiente comando: root [ ~ ]# network

Opciones: NETWORK Muestra interfaces de red configuradas en el sistema. CONFIG Configura interfaces de red o modifica las interfaces configuradas. NAME configura el nombre de equipo. DNS configura los servidores de DNS para nuestro equipo. SALIR cerrar la herramienta de configuracin.

2.2.1 Asignacin de direccin IP esttica


Asignar una direccin IP esttica en Beakos se realiza de la siguiente forma: Seleccionar en el asistente la opcin CONFIG.

Seleccionar la interfaz a configurar.

Seleccionar la opcin Esttica.

Asignar la direccin correspondiente .

Asignar mscara de subred.

Asignar puerta de enlace (Gateway).

Asignar Broadcast.

Presione OK para finalizar la configuracin.

Aviso Al terminar de configurar una interfaz el servicio de red se reiniciar, esto puede causar intermitencia en algunos servicios dependientes de la red.

2.2.2 Asignacin de la direccin IP a travs de DHCP


Asignar una direccin IP a travs del protocolo DHCP en Beakos se realiza de la siguiente forma: Seleccionar en el asistente la opcin CONFIG.

Seleccionar la interfaz a configurar.

Seleccionar la opcin DHCP.

Presionar OK para completar la configuracin

2.2.3 Parmetros de DNS


La configuracin de los servidores DNS que utilizar Beakos GNU/Linux se realiza de la siguiente forma: Seleccionar la opcin DNS del men de configuracin.

La ventana de configuracin nos mostrar los servidores DNS configurados en nuestro equipo seleccionamos la opcin Yes en caso de editar los servidores DNS.

Ingresamos la direccin IP del servidor DNS primario.

Ingresamos la direccin del servidor DNS secundario.

Seleccionamos la opcin OK para completar la configuracin.

En caso de requerir agregar o modificar un servidor DNS de forma directa en el archivo /etc/resolv.conf podemos utilizar el editor de textos vim agregando la lnea siguiente: nameserver <nombre_servidor_dns o direccin_IP>

2.2.4 Configuracin del nombre del sistema


La configuracin del nombre del sistema se realiza de la siguiente forma: Seleccionamos la opcin NAME del men de configuracin.

Nos mostrar el nombre actual del equipo seleccionamos la opcin Yes para realizar el cambio.

Ingresamos el nombre de equipo en el campo de captura y seleccionamos la opcin OK para concluir la configuracin.

En caso de requerir la modificacin del nombre de equipo forma directa en el archivo /etc/sysconfig/network podemos utilizar el editor de textos vim agregando la lnea siguiente: HOSTNAME=<nombre_equipo> Posteriormente procedemos a reiniciar la red local con el siguiente comando para aplicar los cambios anteriores. root [ ~ ]# /etc/init.d/localnet restart

2.3 Administracin de hosts


El archivo principal para la configuracin de hosts es /etc/hosts, su funcin es resolver los nombre de equipo y nombre de dominio que no pueden ser resueltos por un servidor DNS. Ejemplo: 127.0.0.1 200.38.189.20 207.248.177.128 localhost www.beakos.org.mx www.infotec.com.mx beakos

Captulo 3 Control de servicios de Beakos GNU/Linux


3.1 Niveles de ejecucin
El proceso de arranque se basa en la ejecucin de diversas fases o etapas que consisten en la bsqueda del sector de arranque (MBR), cargar el kernel para despus iniciar los servicios. En los sistemas GNU/Linux existen definidos siete niveles de ejecucin o runlevels sobre los que puede trabajar el sistema operativo, el sistema SysV Init controla que aplicaciones de tipo init ejecuta o detiene cuando se inicia un nivel de ejecucin determinado, los archivos de configuracin se encuentran en /etc/rc.d y dentro de este directorio encontramos los subdirectorios: init.d/, rcsysinit.d/, rc0.d/, rc1.d/, rc2.d/, rc3.d/, rc4.d/, rc5.d/, rc6.d/, y el script rc.iptables. Beakos 1.03 define por default el Nivel 3, declarado en el script /etc/inittab: id:3:initdefault:

rc.0/ rc.1/ rc.2/ rc.3/ rc.4/ rc.d/ rc.5/ rc.6/ init.d/

/etc
rcsysinit.d rc.iptables Nivel de ejecucin por defecto

inittab/

Descripcin de los siete niveles de ejecucin manejados en Beakos GNU/Linux:

Nivel 0
rc.0/
Nivel de ejecucin conocido como halt, detiene todos los procesos activos en el sistema, para efectuar el apagado del equipo.

Nivel 1
rc.1/
Nivel de ejecucin monousuario, inicia como usuario root, sin soporte para red. Permite realizar pruebas, reparar problemas o dar mantenimiento al sistema.

Nivel 2
rc.2/
Nivel de ejecucin multiusuario, sin soporte para sevicios de red.

Nivel 3
rc.3/
Nivel de ejecucin multiusuario con soporte para servicios de red.

Nivel 4
rc.4/
No usado

Nivel 5
rc.5/
Nivel de ejecucin Multiusuario con interfaz grfica X window.

Nivel 6
rc.6/
Nivel de ejecucin que reinicia el sistema.

3.2 Administracin de servicios con chkconfig


El comando chkconfig permite realizar actualizaciones y consultas de los parmetros de los niveles de arranque del sistema operativo, as como controlar la ejecucin de servicios entre reinicios del equipo. Este comando se encarga de administrar los scripts alojados en el directorio /etc/rc.d La sintaxis de las diferentes opciones es la siguiente:
--list

Muestra una lista de los servicios que estn iniciados o apagados (on/off) en el sistema. Sintaxis: chkconfig --list [nombre del servicio] Ejemplo: root [ ~ ]# chkconfig --list iptables 0:off 1:off 6:off postfix 0:off 1:off 6:off sshd 0:off 1:off 6:off --add Esta opcin aade un nuevo servicio para ser administrado por chkconfig. Cuando un nuevo servicio es agregado, chkconfig se asegura de que el servicio tenga entradas para los estados de encendido (start) y apagado (kill) para cada uno de los niveles de ejecucin. Sintaxis: chkconfig --add [nombre_servicio] Ejemplo: root [ ~ ]# chkconfig --add respaldos Automticamente cuando agregamos un servicio se crean los vnculos simblicos. --del Esta opcin nos permite cancelar la ejecucin de un servicio al arranque del sistema operativo, y los enlaces simblicos son destruidos. Sintaxis: chkconfig --del [nombre_servicio] Ejemplo: root [ ~ ]# chkconfig --del respaldos --level La opcin level permite definir el estado de los servicios de acuerdo al nivel de arranque del sistema operativo. 2:on 2:off 2:on 3:on 3:on 3:on 4:on 4:on 4:on 5:on 5:on 5:on

Sintaxis: chkconfig <on|off|reset> [--level niveles] nombre del servicio

Ejemplo: root [ ~ ]# chkconfig --level 35 squid on

3.3 Administracin de servicios a travs de Webmin


Webmin permite administrar los siete niveles de arranque del sistema (runlevels) a travs de diferentes mdulos que se describen a continuacin: Mdulo Bootup y Shutdown Este mdulo permite editar y crear los scripts que son ejecutados al momento de arrancar o detener el sistema, como ya se ha visto anteriormente estos scripts son administrados por SystemV el cual tambin es utilizado por Webmin. En la pgina principal del mdulo aparece una lista con los servicios, los niveles de arranque con los que se inician y una breve descripcin. Configurar un servicio para que inicie al arranque del sistema. Si algn servicio, por ejemplo un servidor web no es iniciado automticamente en el arranque del sistema, es posible modificar su script de configuracin con ayuda de webmin para cambiar sus parmetros, cada servidor viene con sus scripts de configuracin los cuales permiten especificar entre otros parmetros el arranque automtico bootup del servidor. Para modificar dicho parmetro en webmin se requiere seguir los siguientes pasos: En la pgina principal de este mdulo dar click en el servicio que se dese activar y enseguida aparecer una ventana para editar el script correspondiente. Cambiar el parmetro Iniciar al momento de arrancar el sistema? de No a S. Una vez hecho esto hay que guardar los cambios dando click en el botn Guardar, lo cual regresar al men principal del mdulo. Iniciar y detener servicios Aunque en muchas ocasiones los servicios se inician cuando arranca el sistema y se detienen al momento que se apaga, tambin es indispensable realizar este encendido y apagado en el momento que el administrador del sistema lo requiera, dichos estados pueden ser modificados en Webmin en cualquier momento, a continuacin se describen los pasos que hay que seguir: En la pgina principal del mdulo dar click en el nombre del servicio. En seguida aparece una venta de edicin con los botones de:

Iniciar ahora.- Esta accin inicia el servicio seleccionado, por ejemplo un servidor, por lo regular esta accin suele ser neutral si el servicio ya se encuentra en ejecucin. Reiniciar ahora.- Esta accin detiene y arranca el servicio seleccionado, de igual forma esta accin suele ser neutral si el servicio no se ha iniciado previamente. Mostar el estado.- Esta accin muestra el estado actual en el que se encuentra el servicio seleccionado, es decir si est corriendo o no, as como su PID. Detener ahora.- Esta accin detiene el servicio seleccionado, si el servicio se encuentra apagado, simplemente mandar un mensaje de que no se puede apagar dicho servicio ya que no se encuentra corriendo en ese momento. Agregar un nuevo servicio o accin Si se requiere estar iniciando un servicio constantemente lo recomendable sera crear un script que ejecute el determinado servicio. Por lo regular en los servidores Apache cuando son compilados e instalador de forma manual no vienen con scripts de acciones que se mencionan en el subtema anterior (iniciar, detener, reiniciar, estado), por lo que es necesario tambin crearlos de forma manual con ayuda de Webmin: En la pgina principal del mdulo dar click en el enlace Crear nuevo bootup y shutdown En el camp de Nombre ingresar el nombre (se recomienda un nombre corto) de la accin o servicio, el cual debe ser nico. En el campo Descripcin ingresar una breve descripcin de la accin o servicio que estamos creando, esta descripcin se mostrara en la pgina principal del mdulo a lado del nombre del servicio o accin. En el campo comandos de Bootup ingresar el o los comandos que se ingresan desde la consola cuando se inicia el servicio o accin de forma manual. En el campo comandos de Shutdown ingresar los comandos necesarios para detener el servicio o accin, tal y como se hace desde la lnea de comandos. Asumiendo que se dese iniciar el servicio o la accin al momento de arrancar el sistema seleccionamos S en el campo Iniciar al momento de arrancar el sistema? Finalmente guardar los cambios dando click en Crear Reiniciar o Apagar el sistema Beakos se puede reiniciar o apagar usando los comandos apropiados, aunque tambin se puede hacer presionando los botones de la computadora esta va no es muy recomendable ya que no se detienen de forma adecuada los servicios lo que puede ocasionar prdida de informacin. Webmin permite realizar el reinicio y/o apagado del sistema de forma segura, a continuacin se describen los pasos para hacerlo:

Para reiniciar: Colocarse en la pgina principal de este mdulo (Bootup y Shutdown). En la parte inferior de la pgina dar click en el botn Reiniciar Sistema enseguida aparecer una ventana de dilogo para confirmar si de verdad se quiere reiniciar el sistema, dar click en el botn reiniciar sistema de la ventana de confirmacin, e inmediatamente comenzar el proceso de apagado del sistema.

Configuracin de rcsysinit.d Como ya se ha explicado anteriormente en el arranque del sistema despus de que se haya cargado el Kernel, los scripts del directorio /etc/rc.d/rcsysinit.d/ son los primeros en ejecutarse y los que determinan cuales servicios van a ser iniciados, es decir, aquellos que se encuentren declarados en /etc/inittab. En Webmin se puede modificar son los Niveles de Arranque as como el Nivel de arranque por defecto que se cargar al iniciar el sistema. Este mdulo podemos ubicarlo en la categora de Sistemas de Webmin. Para configurar Niveles de Arranque: Posicionarse en la pgina principal del mdulo, esta desplegar una lista de servicios, comandos o acciones que estn definidas en cada uno de los Niveles de Arranque. Dar click en el campo de la columna ID, despus de esto se desplegar una venta con los parmetros de edicin. En la columna Nivel de Arranque de Bootup seleccionamos entre 0 y 6 para especificar en qu Nivel de Arranque iniciara el servicio, comando o accin, o tambin se puede seleccionar Ninguno. Por ltimo hay que guardar los cambios dando click en el botn Guardar. Ahora se puede reiniciar el sistema para comprobar que los cambios se hayan guardado

Captulo 4 Lnea de comandos


4.1 Intrprete de comandos BASH
Es una aplicacin basada en el Shell de Unix y cumple la funcin de un intrprete de comandos su sintaxis incluye algunas caractersticas de Korn Shell y el C Shell como son: Edicin de la lnea de rdenes La pila de directorios Las variables $RANDOM y $PPID Sintaxis de sustitucin de rdenes POSIX

Otra caracterstica del bash es que proporciona autocompletado de nombres de programas, nombres de archivos, nombres de variables, etc. Acceso a los parmetros La programacin de scripts en Shell resulta muy til y prctica para ejecutar tareas repetitivas y tediosas en cierto momento. Un script no es ms que un fichero de texto plano que contiene una lista de comandos de cierto lenguaje dichos lenguajes son interpretados a diferencia de los compilados que generan un cdigo objeto ejecutable los intrpretes se van ejecutando conforme se van leyendo directamente del cdigo fuente algunos de estos lenguajes son: Perl Python Php

El intrprete de comandos Bash nos permite ejecutar los scripts pasndole como parmetro el script: root [ ~ ]# bash script.sh root [ ~ ]# sh script.sh Ms adelante se describir la sintaxis para crear un script, as como, los comandos ms usuales para crear dichos scripts. A continuacin se muestra un breve script de la programacin en Shell: #!/bin/bash FECHA=$(date) echo "Hola mundo" echo "Hoy es:"; echo $FECHA echo "Tienes una reunin de trabajo" Como se puede observar en es script es que se especifica el intrprete a utilizar (bash), tambin es posible indicar otros como /bin/sh. En seguida se almacena en una variable el resultado de ejecutar el comando date, hay que identificar qu FECHA es el nombre de la variable y $FECHA es su contenido para asignar un

valor o contenido a una variable utilizamos el signo =. El comando ECHO imprime en pantalla una cadena de texto o bien el contenido de una variable. Si se requiere un script en donde el usuario ingrese datos es necesario utilizar el comando READ.
#!/bin/bash echo -n "Introduce tu Nombre: \t" read nombre echo "Tu nombre es: $nombre"

SELECT Permite al usuario seleccionar una opcin de una lista previamente creada. CONTROLES DE FLUJO En la mayora de los scripts es necesario utilizar estructuras de control que nos ayuden a manipular el flujo de un programa, algunas de estas estructuras son las que se describen a continuacin: IF Esta es una de las ms bsicas en donde si se cumple determinada condicin ejecuta cierta tarea de lo contrario ejecuta otra. if [condicin] then comandos si se cumple la condicin else comandos si no se cumple la condicin fi WHILE Con esta estructura de control repetimos una serie de comandos siempre y cuando la condicin sea cierta, cabe mencionar que cuando se utiliza esta estructura de control se comprueba primero la condicin antes de ser ejecutada lo cual indica que tal vez no se ejecuten ni una sola vez. Sintaxis: while [condicin] do comandos a ejecutar cuando se cumple la condicin done

FOR La estructura de control for permite indicar un nmero mximo de iteraciones, los scripts de bash utilizan los parmetros obtenidos de la Shell como $1, $2, $3$n. Esta estructura de control a diferencia de las dems requiere de varios parmetros los que se detallan a continuacin. Variable de control.- Comnmente se acostumbra utilizar como variable de control el carcter i (iterador) Inicializacin de la variable de control.- Esta variable debe se declarada en el inicio de la estructura de control, en este caso del for por ejemplo: i=0. Condicin de control.- Aqu se declaran las condiciones que se deseen ejecutar durante las iteraciones del for. Incremento.- Aqu se define la otra parte de la variable de control, es decir, definir cmo se va a ir incrementando dicha variable conforme vayan pasando las iteraciones, por ejemplo: i++. Esto quiere decir que el valor de i va incrementar de uno en uno. Cuerpo.- Aqu van una serie de comandos o instrucciones a ejecutar durante cada iteracin. Sintaxis: for [variable_control] in expresin1,expresin2expresinN do [comandos o tareas a ejecutar]; done Ejemplo: root [ ~ ]# for n in {1,2,3,4}; do echo Numero $n; done La sintaxis de rdenes de bash incluye ideas tomadas desde el Korn Shell (ksh) y el C Shell (csh), como la edicin de la lnea de rdenes, el historial de rdenes, la pila de directorios, las variables $RANDOM y $PPID, y la sintaxis de substitucin de rdenes POSIX: $(...). Cuando se utiliza como un intrprete de rdenes interactivo, bash proporciona autocompletado de nombres de programas, nombres de archivos, nombres de variables, etc, cuando el usuario pulsa la tecla TAB.

4.1.1 Control de tareas


Existe un comando que permite realizar monitoreo y control de tareas en tiempo real llamado top dicho comando cuenta con varias opciones. Ejemplo: root [ ~ ]# top La ejecucin del comando anterior nos mostrar en tiempo real los procesos que se encuentran ejecutando en nuestro sistema, describiendo % del uso del CPU, la cantidad de memoria RAM y memoria SWAP utilizada y los usuario que ejecutan el proceso. Tabla 4-1. Opciones ms comunes para el comando Top Opciones Descripcin -c Visualiza de forma completa la ruta del comando que se est ejecutando. -d Intervalo de tiempo en el que se actualizar la informacin, se le asigna un valor numrico (segundos). -U Monitorear los procesos de un determinado UID. -p Monitorear los procesos especificados por ID. -n Nmero de veces que se actualizar la informacin antes definalizar el comando top.

4.1.2 Variables de entorno


Son un conjunto de valores dinmicos cargados en la memoria que pueden ser utilizados por distintas tareas o aplicaciones de forma simultnea y que afectan su comportamiento, las variables de entorno pueden ser modificadas en cualquier momento para que cada usuario las utilice con los parmetros que se adecuen a sus aplicaciones, con esto se quiere decir, que cada aplicacin se ejecuta sobre su propio entorno, lo que le da un aspecto, ajustes y comportamiento particulares y son precisamente las variables de entorno las que modifican estos parmetros. Algunas variables de entorno ya viene definidas por defecto en el shell, adems cada usuario puede agregar tantas como sea necesario y usarlas para labores especficas . Los comandos env, set, printenv muestran un listado de todas las variables de entorno junto con sus respectivos valores. A continuacin se muestra la forma en cmo asignar un nuevo valor a una variable. variable = value Donde variable es el nombre de la variable de entorno y value es el valor que se desea asignarle. Ejemplo: root [ ~ ]# PATH=USERS root [ ~ ]# export PATH Para ver el valor de las variables se utiliza el comando printenv [nombre_variable]

Ejemplo: root [ ~ ]# printenv PATH /bin:/usr/bin:/sbin:/usr/sbin Tambin es posible eliminar las variables de entorno usando el comando unset. unset Ejemplo: root [ ~ ]# unset PATH [nombre_variable]

Contiene una lista de direcctorios separados por ":" en la cual l sistema buscar los archivos ejecutables

nicamente contiene los directorios del usuario root para cuando este introduzca un comando

Contiene una lista de direcctorios en la cual el enlazador dinmico busca para encontrar una librera

Contiene una lista de directorios en la cual el comando man localiza las pginas del manual.

PATH

ROOTPATH

LDPATH

MANPATH

Esta variable es utilizada por el comando info para localizar las pginas de info

Contiene la ruta del progrma encargado de mostrar el contenido de los archivos

Contiene la ruta del programa encargado de modificar el contenido de los archivos.

INFODIR

PAGER

EDITOR

4.1.3 Redireccin
Todos los comandos en GNU/Linux tienen tres tuberas: Entrada estndar, salida estndar y salida de error estndar estas opciones pueden ser redireccionadas a ficheros con los smbolos < y > o tambin se puede redireccionar a otros comandos (con el smbolo |). A continuacin se muestran ejemplos con el uso de estos smbolos. Esto enviara la salida del comando ls a al archivo usuarios.txt. root [ ~ ]# ls -la > /home/admin/usuarios.txt Para aadir la salida de un comando a un archivo utilizamos >> root [ ~ ]# ls la >>/home/admin/usuarios.txt

Obsrvese que en ambos ejemplos se utiliza la ruta absoluta, sin embargo tambin es posible utilizar rutas relativas. Para especificar que un archivo sea la entrada de un comando se utiliza el smbolo <. root [ ~ ]# sort < usuarios.txt

4.1.4 Pginas del manual


Las pginas man son documentos que se encuentran en lnea en el sistema local y que son un apoyo para el uso de diversas herramientas y configuraciones del sistema, el formato del comando man es el siguiente: man [programa o comando]

En donde programa es cualquier programa que se desee conocer su sintaxis y opciones que maneja. Se pueden realizar consultas a los manuales de forma ms especfica para cada aplicacin ya que las pginas de los manuales se encuentran seccionadas en varias partes las cuales se pueden ser identificadas por un nmero.

4.1.5 Textinfo
Otra alternativa que existe para consultar documentacin es textinfo, establecida como el estndar de GNU, textinfo es una estructura de documentacin que se basa en el uso de hipervnculos que existen en la World Wide Web, esto quiere decir, que los documentos se pueden enlazar entre s por medio de hipervnculos. A continuacin se muestra un ejemplo de cmo usar este comando: root [ ~ ]# info mkdir

4.1.7 Listar archivos


El comando ls nos permite listar los archivos de un directorio este comando maneja diversas opciones entre las cuales est ls l esta opcin permite adems de listar los archivos de un directorio ver sus propiedades y permisos. El siguiente esquema ayuda a interpretar la salida de dicho comando. El uso simple del comando ls muestra un listado de todos los archivos no ocultos de un directorio, ls cuenta con gran variedad de opciones dentro de las cuales se describen a continuacin las ms comunes.

Tabla 4-2. Opciones ms comunes para el comando ls Opcin Descripcin -l Lista adems del nombre del archivo o directorio se muestra el tamao, la fecha de modificacin, permisos, propiedad e informacin del grupo. -a Muestra todos los archivos que se encuentran en un directorio incluyendo los archivos ocultos. -t Genera una lista en orden del momento de la ltima modificacin. -r Muestra una lista de archivos ordenada de forma inversa. -1 Lista en una sola columna los archivos y directorios. -R Hace una lista en forma recursiva de todos los archivos y directorios.

Ejemplo: root [ ~ ]# ls l -rw-r--r-- 1 root root 56797881 Nov 25 08:39 ISPConfig.tar.gz drwxr-xr-x 5 1000 1000 4096 Mar 8 07:39 baifox_1.0 Analicemos la salida del comando anterior que indica que existen dos archivos en el directorio de inicial del usuario root. La primera letra en la primera columna seala si se trata de un fichero (-), de un directorio (d), de un enlace simblico (l) o un dispositivo de bloques (b), los nueve caracteres siguientes en la primera columna describen los permisos del propietario, del grupo y de otros usuarios que detallaremos ms adelante. La segunda columna indica el nmero de vnculos de un determinado archivo, se trata de un dato poco relevante para una administrador de sistemas GNU/Linux En la tercera columna aparece de ambas lneas el nombre de root refirindose al propietario del archivo o directorio. A continuacin vuelve a parecer el nombre de root que indica el grupo al cual pertenece el archivo o directorio. En la quinta lnea aparece un nmero, se trata de la cantidad de espacio en disco que ocupa un archivo o directorio, este valor est indicado en bytes. Despus del tamao, las siguientes tres columnas indican la fecha en que el archivo o directorio se modific por ltima vez, si el archivo se modific en este ao aparecer el mes, el da y la hora, si se modific por ltima vez en aos pasados, slo se indicar el mes el da y el ao. Por ltimo aparecer el nombre del archivo o directorio o bien si se trata de un enlace simblico se indica la ruta del enlace.

4.2 Manipulacin de archivos y directorios


La administracin de archivos bajo GNU/Linux es distinta a la Windows, en esta seccin se describirn herramientas y comandos tiles para la administracin de los archivos y directorios.

4.2.1 Tipos de ficheros y directorios


Existen diferentes tipos de ficheros y directorios dentro de las distribuciones GNU/Linux, en un principio esto se hizo con la finalidad de simplificar el trabajo del programador, para evitar tener que comunicarse en forma directa con los controladores de dispositivos, se usan archivos especiales o scripts, dentro de las distribuciones GNU/Linux tenemos los siguientes archivos: Archivos normales Simplemente contienen datos o ejecutables que el sistema no ocupa de forma especial. Directorios Son un caso especial de archivos normales se hace una lista de las ubicaciones de otros archivos incluso pueden ser otros directorios Vnculos Fuertes Cada archivo tiene su propio nodo i. Estos nodos se actualizan diariamente sobre los cambios que hay en los atributos de un archivo y de su ubicacin en el disco. Si se requiere referirse a un solo archivo usando dos nombres separados de archivo, se puede crear un vnculo fuerte. Vnculos simblicos A diferencia de los vnculos fuertes los cuales apuntan a un archivo por su nodo i, un vnculo simblico apunta a otro archivo por su nombre, esto permite apuntar a archivos ubicados en otras particiones, incluso en otras redes.

4.2.3 Archivos, propiedades y permisos


En la administracin de Linux, los archivo y directorios tienen siempre permisos y dueos asociados con ellos, de forma predeterminada los permisos se fijan al propietario del archivo, el grupo al cual pertenece y otros usuarios que pueden accesar al l(propietario, grupo y otros). Cuando se hace una lista de archivos y directorios esto se puede notar (ver seccin 4.1.7 Listar archivos). Se utiliza el comando chmod para fijar los valores relacionados con los permisos (lectura escritura y ejecucin). Tabla 4-3. Valores relacionados para permisos Smbolo Permiso Valor numrico r Lectura 4 w Escritura 2 x Ejecucin 1

Este modo numrico se le conoce como octal, el valor puede variar de 0 hasta 7. Para cambiar estos permisos sencillamente agregue los valores numricos despus del comando chmod y el nombre de archivos o directorio. Ejemplo: root [ ~ ]# chmod 700 xorg

El comando anterior har que slo el dueo del archivo tenga permisos totales sobre l. Es importante notar que este modo reemplaza cualquiera de los permisos antes fijados. El otro modo de emplear el comando chmod es la forma simblica, por ejemplo si queremos agregarle permisos de ejecucin al dueo de un archivo bastar con teclear lo siguiente: root [ ~ ]# chmod u+x rsync-3.0.7.tar.gz Si deseamos quitarle el permiso de escritura al mismo archivo podemos teclear lo siguiente: root [ ~ ]# chmod u-w rsync-3.0.7.tar.gz Si deseamos darle permisos de escritura al grupo del archivo tecleamos: root [ ~ ]# chmod g+w rsync-3.0.7.tar.gz Se queremos asignar permiso de lectura a otros usuarios tecleamos: root [ ~ ]# chmod o+r rsync-3.0.7.tar.gz Tabla 4-4. Combinaciones ms comunes Smbolo Permiso Valor numrico --Sin permisos 0 r-Slo lectura 4 rwLectura y escritura 6 rwx Lectura, escritura y ejecucin 7 r-x Lectura y ejecucin 5 --x Slo ejecucin 1

4.2.2 Cambio de un usuario a un archivo o directorio


La forma ms comn de cambiar al propietario de un archivo o directorio en las distribuciones GNU/Linux es mediante el comando chown, cada fichero tiene asignado un propietario y un grupo, es decir el usuario y el grupo de quien lo creo. El sper usuario (root) es quien tiene los privilegios para modificar al propietario y el grupo de los archivos Beakos, sin embargo, esto se puede modificar para que otros usuarios tambin puedan utilizar chown, pero en la mayora de los casos es ms recomendable por cuestiones de seguridad que lo haga el sper usuario. A continuacin se muestra la sintaxis para utilizar dicho comando: chown [-R] usuario nombre_archivo Una opcin que permite chown es la recursividad con R, es decir si se trata de un directorio todo lo que contenga dentro de l se asignar al nuevo usuario. Ejemplo: root [ ~ ]# chown -R antonio rsync-3.0.7 El comando anterior har que la carpeta rsync-3.0.7 y todo su contenido pase a ser propiedad del usuario antonio.

Si deseamos cambiar al mismo tiempo el usuario y grupo tecleamos lo siguiente: root [ ~ ]# chown -R antonio:beakos rsync-3.0.7 Si deseamos cambiar slo el grupo utilizamos el comando chgrp, de la siguiente forma: root [ ~ ]# chgrp -R laboratorio rsync-3.0.7

4.2.3 Copiar archivos


El comando utilizado para copiar archivos es cp, dispone de varias opciones para revisar todas consulte la pgina del manual. Tabla 4-5. Opciones ms comunes para el comando cp Descripcin Fuerza la copia sin realizar verificacin. Recursivo, copia un directorio y lo que hay dentro de l. Muestra los archivos copiados. Hace un respaldo si el existen archivos con el mismo nombre en la ruta destino. Copiado interactivo, antes de que se realice la copia verifica con el usuario.

Opcin -f -r -v -b -i

Ejemplo: root [ ~ ]# cp -v webmail_php.zip webmail_php.zip.bak cp -v webmail_php.zip webmail_php.zip.bak `webmail_php.zip' -> `webmail_php.zip.bak'

4.2.4 Mover archivos directorios


Se utiliza el comando mv para mover archivos de una ubicacin a otra, tambin se utiliza para cambiar de nombre a un archivo. Tabla 4-6. Opciones ms comunes para el comando mv Descripcin Fuerza el movimiento sin realizar verificacin. Recursivo copia un directorio y lo que hay dentro de l. Muestra los archivos movidos. Interactivo, antes de que se realice la operacin verifica con el usuario.

Opcin -f -r -v -i

Ejemplo: root [ ~ ]# mv -v gnuhh-admin-2.05.tar.gz /opt/ `gnuhh-admin-2.05.tar.gz' -> `/opt/gnuhh-admin-2.05.tar.gz'

4.2.5 Crear enlaces simblicos


El comando ln permite establecer enlaces fuertes y enlaces simblicos, este comando dispone de varias opciones pero la ms usual es s, que nos permite crear un enlace simblico en lugar de un enlace fuerte. Ejemplo: root [ ~ ]# ln -sv /opt/gnuhh-admin-2.05.tar.gz ./enlace `./enlace' -> `/opt/gnuhh-admin-2.05.tar.gz' El comando anterior cre un enlace simblico llamado enlace en el directorio inicial de root que apunta al archivo `/opt/gnuhh-admin-2.05.tar.gz'.

4.2.6 Buscar archivos y directorios


El comando find permite buscar archivos utilizando varios criterios, como los comandos anteriores find cuenta con varias opciones que son descritas en su pgina del manual. Sintaxis del comando find: find directorio_busqueda [opciones]

Ejemplos: Buscar archivos y directorios cuyo nombre sea webmail, dentro del directorio inicial de root. root [ ~ ]# find ./ -name webmail ./webmail/adminpanel/plugins/webmail Encontrar los archivos que tienen dos das de antigedad dentro del directorio de root. root [ ~ ]# find ./ -ctime 2 ./ede ./.viminfo Encontrar un archivo que tenga un tamao de 1024 K o mayor en el directorio /root root [ ~ ]# find ./ -size 1024k ./ innodb.result Otro comando til es locate, es fcil de usar, para ejecutarlo slo se escribe el comando seguido del archivo que se desee buscar, y nos mostrara todos los archivos y directorios que contengan esa palabra. Ejemplo: root [ ~ ]# locate rsync

4.2.7 Compresin de archivos y directorios con GZIP y BZIP2


La herramienta gzip se cre como una alternativa al programa compress, los archivos gzip tienen la extensin .gz , es de resaltar que despus de comprimir un archivo, la utilidad gzip borra el archivo original y slo queda el archivo comprimido. Ejemplo: root [ ~ ]# gzip archivo1 Para descomprimirlo teclee: root [ ~ ]# gunzip archivo1.gz

La herramienta bzip2 proporciona una mejor compresin que la anterior, como resultado genera archivos ms pequeos. Ejemplo: root [ ~ ]# bzip2 archivo1 Para descomprimirlo teclee: root [ ~ ]# bunzip2 archivo1.bz2

4.2.8 Crear y eliminar directorios


Para crear un directorios utilizamos el comando mkdir, este comando se usa a menudo con la opcin p, esta opcin generar directorios si aun no existen por ejemplo si se requiere crear varios subdirectorios dentro de un directorio. Ejemplo: root [ ~ ]# mkdir -p directorio/subdirectorio1/subdirectorio2 Para eliminar un directorio vacio utilizamos el comando rmdir, borrar el subdirectorio2. root [ ~ ]# rmdir directorio/subdirectorio1/subdirectorio2

Aviso Se puede emplear tambin para borrar directorios el comando rm rf, pero esto borrar todos los archivos y directorios dentro de l de forma permanente, usar con precaucin.

4.2.9 Concatenar archivos


El comando cat entre otras funciones permite visualizar archivos pequeos, crear un archivo a partir de dos archivos y hasta generar archivos. Ejemplos: Visualizar el contenido de un archivo root [ ~ ]# cat /etc/hosts # Begin /etc/hosts (network card version) 127.0.0.1 localhost localhost.localdomain Visualizar el contenido de dos archivos. root [ ~ ]# cat /etc/hosts /etc/hosts.allow # Begin /etc/hosts (network card version) # End /etc/hosts (network card version) 192.168.0.182 example.com sshd: 127.0.0.1 Redirigir el contenido de dos archivos y generar uno nuevo. root [ ~ ]# cat /etc/hosts /etc/hosts.allow > hosts.txt

4.2.10 Uso de espacio en disco


Es muy comn que con frecuencia necesitemos saber el espacio en disco que ocupan los archivos. El comando du nos permite saber el espacio en disco que ocupa cada archivo o directorio. du -[opciones] archivo/directorio Tabla 4-7. Opciones ms comunes para el comando du Opcin Descripcin -c Muestra el total al final, en bloques. -h Muestra el total en un formato legible -k Muestra el tamao en kilobits -s Muestra el total resumido.

Ejemplo: root [ /opt/MailRoot/bin ]# du -chs * 96K CtrlClnt 8.0K MkMachDep 12K MkUsers

4.0K 368K 4.0K 16K 508K

XMCrypt XMail sa_filter.pl sendmail total

4.2.11 Localizar comandos


El comando whereis, busca la ubicacin de un comando y muestra el nombre del comando, su directorio y la pgina del manual si est disponible. Ejemplo: root [ ~ ]# whereis mkdir mkdir: /bin/mkdir /usr/man/man2/mkdir.2 /usr/man/man1/mkdir.1 /usr/share/man/man2/mkdir.2 /usr/share/man/man1/mkdir.1

4.3 Edicin de textos


Los editores de textos son las principales herramientas para trabajar desde la consola de Linux, uno de los ms habituales es vi, este editor existente en los sistemas UNIXfue desarrollado en la dcada de 1970, es el editor de textos utilizado en Beakos, cuya versin es la 7.2.25. Para utilizar vi teclee de la siguiente forma: root [ ~ ]# vi nombre_archivo Si el archivo no existe lo crea, si existe lo edita. Vim cuenta con un buen manual, para acceder a l simplemente teclee: root [ ~ ]# vimtutor Tabla 4-8. Opciones ms comunes para el edito Vi Descripcin Borra una lnea. Pasar al modo edicin (insertar texto). Inserta texto antes del carcter sobre el que est el cursor. Inserta texto despus del carcter sobre el que est el cursor. Inserta texto al comienzo de la lnea en la que est el cursor. Inserta texto al final de la lnea en la que est el cursor. Abre espacio para una nueva lnea despus de la lnea en la que est el cursor y permite insertar texto en la nueva lnea. Busca una palabra o una serie de ellas. Guarda los cambios realizados. Sale del programa Vi. Guarda los cambios y sale del programa. Forzar la salida sin guardar cambios. Muestra los nmeros de lnea en el archivo editado. Muestra la ayuda de Vi.

Opcin dd i a I A o O /[palabra ] :w :q :wq :q! :set number :help

4.4 Lectura de archivos


El comando more presenta un archivo por pantalla, es uno de los comunes, su forma de uso es la siguiente: root [ ~ ]# more nombre_archivo Otro comando til en Beakos para la lectura de archivo es less, con mayor funcionalidad que more, permitiendo regresar a lneas a anteriores y avanzar lnea por lnea. Su forma de uso es : root [ ~ ]# less nombre_archivo

4.5 Utileras del sistema


Beakos cuenta con varias utileras que nos muestran informacin importante, para un administrador de Linux es indispensable conocer las herramientas con las que se puede apoyar a menudo para realizar sus labores.

4.5.1 Mostrar el directorio de ubicacin actual


El Comando pwd nos indica el directorio actual donde nos encontramos ubicados, no obstante la consola de Beakos siempre indica el directorio de trabajo.

Ejemplo: root [ /opt/directorio1 ]# pwd /opt/directorio1

4.5.2 Espacio libre del disco


El comando df nos permite obtener informacin no slo del espacio libre en los discos y particiones del sistema, tambin nos permite saber el tamao y el punto de montaje. Ejemplo: root [ /opt/directorio1 ]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 7.0G 1.1G 5.5G 17% / tmpfs 126M 0 126M 0% /dev/shm /dev/sda1 130M 15M 108M 12% /boot /dev/sdb1 1004M 19M 935M 2% /opt Sin la opcin h nos mostrar el tamao de los discos en bloques.

4.5.3 Mostrar un archivo mientras crece


El comando tail nos mostrar las ltimas lneas de un archivo, empleando opcin f nos mostrar si un archivo ha crecido en tamao imprimiendo en pantalla las ltimas lneas que han sido agregadas, esto es especialmente til en el anlisis de las bitcoras del sistema. Ejemplo: root [ ~ ]# tail -f /var/log/kern.log Jun 1 08:13:52 Beakos kernel: [ 6.342343] EXT3-fs: mounted filesystem with ordered data. Jun 1 08:13:52 Beakos kernel: [ 6.344137] kjournald starting. Commit interval 5 seconds Jun 1 08:13:52 Beakos kernel: [ 6.348307] EXT3 FS on sdb1, internal journal

4.5.4 Sincronizacin de archivos y copias de respaldo con RSYNC


Rsync permite la transferencia de archivos incrementales, permite sincronizar ficheros y directorios dentro de un mismo equipo, o bien a travs de dos equipos utilizando una conexin por SSH.

Tabla 4-9. Opciones ms comunes para el comando rsync Opcin Descripcin -n Modo de prueba, no hace copia, slo nos muestra el resultado. -a Modo archivo. Respeta todos los permisos y propiedad del archivo de origen. -r Modo recursivo, copia las carpetas y lo que haya dentro de ellas. -l Respeta enlaces blandos -p Respetar permisos -t Respetar fecha/hora -g Respetar grupo -D Respetar dispositivos (solamente con usuario root) -v Modo verboso, para mayor verbosidad usar -vv -z Comprimir para una transmisin ms rpida. -C Ignora archivos como hace CVS. -u Modo update, mantiene archivo en el destino si es posterior. -b Backup renombrar archivos existentes a extensin.

Ejemplo en un mismo equipo:


rsync [opciones] [Dir-origen] [Dir-destino] root [ ~ ]# rsync archivo1 /opt

Ejemplo entre dos equipos a travs de SSH. root [ ~ ]# rsync -e ssh -avrlptg 192.168.0.190:/opt/directorio1 /opt

4.5.5 Listar procesos


El comando ps hace una lista de procesos en GNU/Linux, indica su estado, su terminal controladora, el tiempo de CPU entre otros. Se dispone de varias opciones, enlistamos las mas utilizadas. Tabla 4-10. Opciones ms comunes para el comando ps Descripcin Muestra todos los procesos controlados por una terminal. Muestra slo los procesos que se encuentran en ejecucin. Muestra los procesos que no estn controlados por una terminal. Muestra los propietarios de los procesos. Presenta la relacin entre los procesos. Lista los procesos con mayor detalle. Muestra la ruta completa de los comandos que generan procesos.

Opcin a r x u f l w

Ejemplo: root [ / ]# ps ax PID TTY STAT 1 ? Ss 2 ? S< TIME COMMAND 0:02 init [3] 0:00 [kthreadd]

4.5.6 Matar procesos


El comando utilizado para matar procesos es kill, en realidad lo que hace es enviar una seal a un proceso, se emplea con varios manejadores de seales predeterminados para un sistema Linux(consulte la pgina de man), el ms utilizado por los administradores de sistemas GNU/Linux es 9, que anula y termina un proceso respectivamente. Ejemplo: root [ / ]# kill -9 2228 Donde el nmero 2228 es el nmero de proceso que se desea terminar.

Sugerencia Para obtener un listado de las seales posibles a utilizar junto con el comando kill, teclee kill -l

Captulo 5 Administracion de usuarios y grupos


5.1 Qu constituye a un usuario?
En Beakos como en cualquier otra distribucin de GNU/Linux cada archivo y cada binario son propiedad de un usuario. Cada usuario se distingue por tener un identificador nico llamado UID. Cada usuario debe pertenecer a un grupo primario y a su vez puede pertenecer a ms grupos, as como los usuarios tienen identificadores nicos los grupos tambin tienen identificadores nicos llamados GID. El acceso y el control de seguridad se basa principalmente en sus UID y GID, los derechos de los usuarios se delimitan de dos maneras, el usuario raz o superusuario o el usuario normal, los usuarios normales slo tienen acceso a lo que poseen o a lo que se les ha dado privilegios de ejecutar, estos privilegios se obtienen ya sea por pertenecer a un grupo o que se trate de un archivo accesible a todos los usuarios. El usuario raz tiene accesos a todos los archivos y binarios en el sistema, sin importar si les pertenece o no.

5.2 El archivo /etc/passwd


Beakos GNU/Linux conserva toda la informacin del usuario en archivos de texto, esto representa una ventaja debido a que permite hacer cambios a la informacin de los usuarios sin necesidad de herramientas distintas a un simple editor de textos, el archivo principal donde se almacena la informacin de los usuarios es /etc/passwd.

Nombre del usuario

ID usuario

Nombre completo

Interprete de comandos

amoreno :

* : 501 : 501 : Antonio Moreno : /home/amoreno : /bin/bash


ID grupo Directorio

Contrasea

Figura 5-1. Estructura del archivo /etc/passwd

5.2.1 Campo del nombre de usuario


En este campo se almacena el nombre con el que el usuario ingresar al sistema, este debe ser nico, una forma comn de dar de alta un nombre es usar la primera letra del nombre seguida del primer apellido, por ejemplo un usuario que se llame Juan Prez se le podra asignar el nombre de usuario jperez .

5.2.2 Campo de la contrasea


Este campo contiene la contrasea cifrada del usuario, en Beakos este campo contiene la letra x, lo cual indica que la contrasea es almacenada en el archivo /etc/shadow, lo cual se explica ms adelante. Todos los usuarios deben tener una contrasea que cumpla con los siguientes requisitos: Compuesta por ms de 8 caracteres . Mezclar caracteres alfabticos y numricos. No derivarse de palabras existentes en el diccionario. No derivarse del nombre de usuario. No derivarse de informacin personal (domicilio, telfono, etc.)

5.2.3 Campo del ID del usuario (UID)


En este campo se almacena el nmero nico que utiliza el sistema operativo y otras aplicaciones para diferenciar a cada usuario y sus respectivos privilegios de acceso. La UID debe ser nica para cada usuario con excepcin del UID 0 (cero). Cualquier usuario con UID 0 tiene privilegios de root, por consecuencia el control total del sistema.

5.2.4 Campo de la ID del grupo (GID)


El campo del ID del grupo es el equivalente numrico al nombre del grupo primario al que pertenece cada usuario. Es importante recordar que adems de pertenecer a un grupo primerio un usuario puede pertenecer a ms grupos, lo cual se describe ms adelante.

5.2.5 Campo del nombre completo


Este campo almacena comnmente el nombre completo de usuario, aunque tambin se pueden almacenar ms datos como el nmero telefnico etc. Este campo es opcional, se puede dejar en blanco.

5.2.6 Campo del directorio


En este campo se describe la ruta del directorio inicial del usuario, cada usuario dado del alta necesita un lugar destinado para almacenar los archivos que le pertenecen, este directorio le permite al usuario trabajar en un ambiente personalizado. En Beakos GNU/Linux al generarse un nuevo usuario por defecto su carpeta inicial se generar sobre /home con el nombre del usuario correspondiente, esto se hace por sentido de organizacin aunque no es necesario, pues se puede designar otra carpeta inicial para un usuario.

5.2.7 Campo del intrprete de comandos


Cuando los usuario son admitidos en el sistema, se deben de encontrar con un entorno que les permita ingresar instrucciones (comandos) este entorno se denomina Shell, el Shell por default que se integra en Beakos como en la mayora de las distribuciones es BASH (Bourne Again Shell).

5.4 El archivo /etc/shadow


Este archivo es el que contiene las contraseas cifradas. En l se almacena la informacin de las contraseas cifradas para las cuentas de los usuarios. Adems de la contrasea cifrada, en este archivo tambin se guarda informacin referente acerca de la expiracin de la misma. As como el archivo /etc/passwd, cada lnea del archivo /etc/shadow representa informacin acerca del usuario, los campos del archivo son: Nombre para obtener acceso. Contrasea cifrada. Das transcurridos a partir del primero de enero de 1970 en que la contrasea se cambi por ltima vez. Das antes de los cuales la contrasea puede ser cambiada. Das despus de los cuales debe cambiarse la contrasea. Das antes de que expire la contrasea en que debe avisarle al usuario. Das despus de que expire la contrasea para desactivar la cuenta. Das transcurridos a partir del primero de enero de 1970 en que se desactiva esa cuenta. Campo reservado

Muestra de una lnea del archivo /etc/shadow root:$1$w0UReMgg$N/BQspuvJqE1lLiKjBLLb/:14635:0:99999:7:::

5.4.1 Polticas de expiracin de contraseas


De forma predeterminada una contrasea no expira, forzar a que una contrasea expire es una forma mejorar las polticas de seguridad, los parmetros por defecto para la expiracin de contraseas se definen en el archivo /etc/login.defs. El comando chage es usado para administrar la expiracin de las contraseas. Su sintaxis es la siguiente. chage [opciones] nombre_usuario Tabla 5-1. Opciones ms comunes para el comando chage Descripcin Mnimo de das entre cambio de password. Mximo de das entre cambio de password. Nmero de das desde que el password expir para bloquear la cuenta. Expiracin de la cuenta Nmero de das antes de requerir un cambio de contrasea para enviar avisos al usuario. Enlista configuracin

Opcin -m -M -I -E fecha -W -l

5.5 El archivo /etc/group


El archivo /etc/group contiene una lista de grupos primario y secundarios, cada grupo en una lnea. Todos los usuarios del sistema pertenecen por lo menos a un grupo, considerndose a ese grupo como el primario, de ser necesario se pueden asignar grupos adicionales. Los campos por lnea del archivo /etc/group son: Nombre de grupo Contrasea de grupo ID del grupo Miembros del grupo

Muestra de una lnea del archivo /etc/group clamav:x:20006:daemon,amavis

5.6 Administrando usuarios


En esta seccin se describen las herramientas para administrar usuarios a partir de la lnea de comandos.

4.6.1 Agregar usuarios


El comando utilizado para agregar usuarios en Beakos es useradd. useradd [opciones] nombre_usuario Tabla 5-2. Opciones ms comunes para el comando useradd Descripcin Permite agregar el nombre completo del usuario (GECOS), si el valor incluye espacios ser necesario poner el valor entre comillas. Por ejemplo: -c Antonio Moreno. De forma predeterminada el valor del directorio inicial es /home/nombre_usuario, cuando un nuevo usuario se crea su directorio inicial lo hace al mismo tiempo. Es posible que la cuenta de un usuario pueda expirar, de forma predeterminada una cuenta nunca expira, para especificar una fecha correctamente se debe hacer bajo el siguiente formato. -e 2010 10 26 Esta opcin especifica el nmero de das despus de que expire que la cuenta seguir activa. Por ejemplo f 3 la cuenta seguir activa tres das despus de que caduc. Esta opcin sirve para especificar el grupo primario al cual el usuario estar enrolado, de no especificar esta opcin, se crear un grupo con el mismo nombre de usuario. Si usa un nombre de grupo este debe de estar previamente registrado en el archivo /etc/group. Esta opcin permite especificar grupos adicionales a los cuales pertenecer el nuevo usuario. Si usa la opcin G debe especificar por lo menos un grupo adicional que debe existir en en el archivo /etc/group. Por ejemplo: -G sistemas,desarrollo De forma predeterminada los archivos de configuracin del usuario se toman del directorio /etc/skel, esta opcin permite tomar los archivos de configuracin (.bash_logout, .bash_profile, .bashrc)de otra ubicacin. Esta opcin permite no crear un directorio inicial para el usuario. De forma predeterminada el interprete de comandos de Beakos es /bin/bash, esta opcin permite utilizar otra Shell para el usuario. De forma predeterminada al crear un usuario, el sistema usar la siguiente UID disponible y se la asignar al nuevo usuario. Si se requiere que la UID de un usuario tenga un valor particular esta opcin se debe emplear. Ejemplo -u 10098

Opcin -c comentario

-d directorio inicial -e expiracin

-f tiempo inactivo -g grupo primario

-G grupos secundarios

-m skel-dir

-M -s Shell -u id usuario

5.6.2 Borrar usuarios


El comando userdel, como su nombre lo indica elimina usuarios existentes, su sintaxis es la siguiente: userdel [-r] nombre_usuario La opcin r borra el directorio del usuario y todo su contenido.

5.6.3 Modificar usuarios


El comando para este propsito es usermod, funciona con prcticamente los mismos parmetros que useradd (refirase a la tabla anterior), la opcin que utilice modificar al usuario en ese parmetro en particular.

5.6.4 Agregar grupos


El comando destinado para dicha tarea es groupadd, este comando agrega los grupos en el archivo /etc/group. Sus opciones se describen en la tabla siguiente. Tabla 5-3. Opciones ms comunes para el comando groupadd Opcin Descripcin -g GID Especifica la GID para el nuevo grupo como gid. Este valor debe ser nico, de forma predeterminada se elige el siguiente valor disonible -r De forma predeterminada Beakos asigna nmeros GID mayores a 20000, esta opcin le dice a Beakos que el grupo es uno grupo del sistema y le asigna un nmero inferior a 20000. -f Esta opcin har que groupadd se ejecute sin error si se intenta agregar un grupo que ya existe en el sistema.

5.6.5 Borrar grupos


El comando groupdel es el encargado de esta tarea, elimina grupos existentes en el archivo /etc/group. Su sintaxis de uso es la siguiente: groupdel nombre_grupo

5.6.6 Modificar grupos


El comando groupmod es el encargado de realizar la modificacin de parmetros de grupos. Sus posibles usos son los siguientes: groupmod g gid groupmod n nombre_grupo grupo La opcin g le permite cambiar la GID del grupo y la opcin n permite especificar un nuevo nombre de grupo.

5.7 Administracin de usuarios a travs de Webmin


La aplicacin Webmin proporciona una herramienta muy intuitiva para la administracin de usuarios, que permite crear, modificar y eliminar usuario y grupos entre otras opciones. Para accesar a la herramienta debemos ingresar a Webmin por el puerto 10000 en un navegador ingresando la direccin IP del servidoro el dominio correspondiente, posteriormente seleccionar el men System y la opcin Users and Groups.

Figura 5-2. Administracin de usuarios con Webmin.

5.8 Usuarios y permisos de acceso


Beakos GNU/Linux determina si un usuario o grupo tienen acceso o no a los archivos, programas u otros recursos del sistema al revisar los permisos que este posee. El modelo tradicional en UNIX y Linux es bastante sencillo, se basa en 4 reglas de acceso: (r) Lectura (w) Escritura (x) Ejecucin (-) Permiso de acceso denegado

Adems existen 3 tipos de usuarios: (Propietario) Dueo del archivo (Grupo) Grupo que posee el archivo (Otros) Todos los usuarios del sistema que no entren en los anteriores

4.9 Comprensin de SetUID, SetGID y Sticky bit


Los programas se pueden etiquetar con lo que se conoce como bit de setUID, esto permite que el programa se ejecute con los privilegios del dueo de ese programa no con los privilegios del usuario, es decir al realizar la siguiente operacin: root [ ~ ]# chmod 4775 /bin/ls root [ ~ ]# chmod u+s /bin/ls El comando ls se ejecutar con los privilegios del usuario root que es el dueo del archivo.

El bit de setGID funciona de forma similar, con la diferencia de que en lugar de aplicarlo al propietario del archivo se aplica al grupo del archivo. Con SGID podemos crear directorios colaborativos para varios usuarios, es decir los archivos creados en el directorio se crearn con el grupo por default al cual pertenece el directorio. Ejemplo: root [ ~ ]# mkdir /compartidos root [ ~ ]# ls -ld /compartidos drwxr-xr-x 2 root root 4096 Apr 21 06:34 /compartidos root [ ~ ]# touch /compartidos/archivo1 root [ ~ ]# ls -l /compartidos total 0 -rw-r--r-- 1 root root 0 Apr 21 06:34 archivo1 En el ejemplo anterior se observa que el archivo es creado por el usuario raz y hereda los mismo dueo y mismo grupo. Ahora bien cambiamos el grupo de la carpeta y le agregamos el setGID. root [ ~ ]# chgrp mail /compartidos root [ ~ ]# ls -ld /compartidos drwxr-xr-x 2 root mail 4096 Apr 21 06:34 /compartidos root [ ~ ]# chmod g+s /compartidos root [ ~ ]# ls -ld /compartidos drwxr-sr-x 2 root mail 4096 Apr 21 06:34 /compartidos

Creamos un archivo que llamado archivo2 root [ ~ ]# touch root [ ~ ]# ls -l total 0 -rw-r--r-- 1 root -rw-r--r-- 1 root /compartidos/archivo2 /compartidos/ root 0 Apr 21 06:34 archivo1 mail 0 Apr 21 06:40 archivo2

Ntese que el archivo2 se guard con el grupo mail aunque el usuario no lo tenga como su grupo primario. Normalmente usuarios con permisos de escritura en un directorio pueden borrar archivos, el bit pegajoso (sticky bit) permite que otros usuarios con permisos de escritura sobre l puedan editar el archivo pero slo el dueo podr borrarlo. Muchos usuarios necesitan tener permisos para crear y borrar archivos en el directorio /tmp, configurando esta carpeta con sticky bit se previene que los usuarios borren archivos que no les pertenecen. El directorio /tmp est configurado con sticky bit por defecto, se puede observar una t en los permisos de acceso.

root [ ~ ]# ls -ld /tmp drwxrwxrwt 4 root root 4096 Apr 21 22:26 /tmp La asignacin del bit pegajoso se hace de la siguiente forma: root [ ~ ]# chmod o+t /home/compartidos o bien: root [ ~ ]# chmod 1777 /home/compartidos

5.10 Listas de accesos (ACL)


Las listas de acceso permiten la aplicacin de permisos para los usuarios sobre ficheros y carpetas con mayor exactitud, el sistema tradicional de permisos resulta insuficiente en gran cantidad de situaciones donde es necesario crear permisos para usuarios y grupos en especfico. Es aqu donde se utilizan las listas de acceso para GNU/Linux. Caractersticas: Las ACLs permiten compartir archivos con otros usuario sin el riesgo de utilizar el comando chmod 777. Se pueden implementar sobre un punto de montaje en especfico. El sistema de archivos implementado en Beakos (ext3)cuenta con soporte para ACLs.

5.10.1 Activacin del uso de listas de acceso sobre sistemas de archivos.


Para habilitar el uso de listas de acceso es indispensable que el sistema de archivos est montando con la opcin acl, modificando el archivo /etc/fstab en la columna options. #filesystem /dev/sdb1 mount-point /opt type ext3 options defaults,acl dump 0 fsck 0

Realizados los cambios anteriores ejecutamos la siguiente instruccin para habilitar los cambios previamente realizados al punto de montaje. root [ ~ ]# mount a Validamos los cambios aplicados al sistema de archivos tecleando el comando mount. root [ ~ ]# mount /dev/sda2 on / type ext3 (rw) /dev/sdb1 on /opt type ext3 (rw,acl)

Otra forma de realizarlo es la siguiente, no recomendable porque no persistir a un reinicio. root [ ~ ]# mount -o remount,acl /opt Podemos observar en el ejemplo anterior que al sistema de archivos / dev/sdb1 se le ha definido el punto de montaje /opt habilitado para el uso de listas de acceso.

Sugerencia Si desea habilitar el uso de ACLs para el sistema de archivos raz, edtelo directamente en el archivo /etc/fstab para que persista a un posible reinicio del sistema.

5.10.2 Implementacin de listas de acceso en archivos y directorios.


Para la aplicacin, modificacin y consulta de listas de acceso se utilizan dos comandos getfacl y setfacl, el primero muestra informacin sobre los permisos de lectura, escritura y ejecucin de un grupo o un usuario sobre un fichero o directorio; el segundo se utiliza para aplicar y modificar permisos. Sintaxis: getfacl [archivo/directorio] setfacl [opciones] u:nombreusuario:permisos [archivo/directorio] Ejemplos: Obtener los permisos vigentes que posee el archivo1. root [ /opt ]# getfacl archivo1 # file: archivo1 # owner: root # group: root user::rwgroup::r-other::r--

En el ejemplo anterior podemos observar que el archivo1 pertenece al usuario y grupo root, para el usuario tiene permisos de escritura y lectura. para el grupo solo de lectura. Asignamos permisos de lectura y escritura para el usuario francisco. root [ /opt ]# setfacl -m u:francisco:rw archivo1 root [ /opt ]# getfacl archivo1 # file: archivo1 # owner: root # group: root user::rwuser:francisco:rwgroup::r-mask::rwother::r-Hacer que los archivos nuevos agregados a un directorio hereden la ACL por defecto, que har que el usuario francisco sea el usuario por defecto con permiso de lectura y escritura. root [ /opt ]# setfacl -m d:u:francisco:rw directorio1 root [ /opt ]# getfacl directorio1/ # file: directorio1/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:francisco:rwdefault:group::r-x default:mask::rwx default:other::r-x

Podemos observar claramente que el usuario por defecto ha sido fijado como francisco con permisos de lectura y escritura para los archivos que se coloquen en esta carpeta. Remover la lista de acceso asignada al usuario francisco sobre el archivo1. root [ /opt ]# setfacl -x u:francisco archivo1 root [ /opt ]# getfacl archivo1 # file: archivo1 # owner: root # group: root user::rwgroup::r-mask::r-other::r

Sugerencia Si desea preservar los atributos de ACL de los archivos y directorios al mover o copiar utilice la opcin -p

5.11 Configuracin y administracin de cuotas


En ambientes GNU/Linux con gran cantidad de usuarios, pueden enfrentarse a problemas como el espacio de almacenamiento, la implementacin de cuotas permite limitar el espacio en disco que puede utilizar cada usuario, las cuotas se pueden implementar de dos formas. Por Inodos: Un Inodo indica en que bloques del disco duro se localizan los datos de un archivo. Para administrar cuotas a travs de Inodos debemos determinar el nmero de Inodos al que un usuario tiene derecho, un Inodo equivale a un archivo. Por Bloques: Un bloque es el equivalente a a 1Kb, administrar quotas a travs de bloques , es decir 1 Mb ocupar 1000 bloques en el disco duro.

Otro punto importante a tomar en cuenta son los lmites, se emplean dos para la administracin de cuotas. Hard: Es el lmite absoluto que el usuario puede ocupar. Soft: Su valor debe ser menor que hard, se puede exceder tanto por Inodos como por bloques, puede interpretarse como el lmite mximo antes de que el usuario reciba mensajes de aviso.

Cuando se usa el lmite SOFT, dos situaciones pueden suceder. Si no se ha establecido un periodo de gracia, el usuario podr seguir usando bloques o Inodos hasta llegar al lmite HARD que ser su lmite absoluto de uso. Si se estableci el periodo de gracia, que puede ser en das, horas, minutos o segundos, el usuario podr seguir usando bloques o inodos hasta que termine el tiempo de gracia o llegue al lmite HARD, cualquiera que ocurra primero.

5.11.1 Activacin del uso de cuotas sobre sistemas de archivos.


Para llevar a cabo la implementacin de quotas sobre los sistemas de archivos es necesario montar la particin con la opcion usrquota para quotas por usuarios o bien con la opcin grpquota. Editamos el archivo /etc/fstab, para habilitar estas opciones, quedando la estructura de la siguiente forma: #filesystem /dev/sdb1 mount-point /opt type ext3 options dump 0 fsck 0

defaults,usrquota

Para activar los puntos de montaje con sus nuevas opciones tecleamos: root [ /opt ]# mount a Verificamos que el uso de cuotas se haya activado de forma correcta. root [ /opt ]# mount Salida truncada /dev/sdb1 on /opt type ext3 (rw,acl,usrquota) El siguiente paso consiste en verificar con el comando quotacheck, si el sistema de archivos est preparado para soportar cuotas de usuarios crear el archivo aquota.user, se anexan algunas opciones para el uso de quotacheck, para mayor referencia consulte la pgina del manual. Tabla 5-4. Opciones ms comunes para el comando quotacheck Opcin Descripcin -a Verifica que sistemas de archivos soportan el uso cuotas. -u Verifica el soporte de cuotas para usuarios. -g Verifica el soporte de cuotas para grupos. -m Evita que el sistema se remonte como slo lectura -v Modo verboso, muestra el resultado de la ejecucin del comando. -c No lee el archivo aquota.user si este ya existe. root [ /opt ]# quotacheck -cu /opt Procedemos a activar el uso de cuotas sobre el sistema de archivos. root [ / ]# quotaon /opt

5.11.2 Administracin de cuotas de disco.


El uso del sistema de cuotas ya ha sido habilitado, pero ningn usuario por defecto tiene establecidas cuotas. Para la administracin de cuotas utilizamos el comando edquota del siguiente modo. edquota nombre_usuario Ejemplo: root [ /opt ]# edquota francisco Nos mostrar la siguiente informacin Disk quotas for user francisco (uid 1008): Filesystem /dev/sdb1 blocks 0 soft 0 hard 0 inodes 0 soft 0 hard 0

Podemos observar que se puede editar el numero de bloques e inodos, as como el lmite blando y lmite duro respectivamente. Los nicos valores que se editan son soft y hard, dejando blocks e inodes con valor igual a cero. Otra forma de realizarlo es utilizando el comando setquota del siguiente modo. setquota [usuario] soft_bloques hard_bloques soft_inodos hard_inodos [punto_montaje] Ejemplo: root [ /opt ]# setquota francisco 512 1024 40 50 /opt El comando anterior asignar al usuario francisco un lmite blando de 512 bloques, un lmite duro de 1024 bloques, un lmite blando de 40 inodos y un limite duro de 50 inodos en la particin /opt. Establecer el tiempo de gracia de forma global se realiza con el siguiente procedimiento. root [ /opt ]# edquota t

Establecer el tiempo de gracia de forma individual. root [ /opt ]# edquota -u francisco -T Por defecto el tiempo de gracia para los inodos y los bloques es de 7 das en la configuracin global, en la configuracin individual por defecto no est definida. Podemos obtener un reporte del estado de las cuotas de los usuarios con el siguiente comando: root [ /opt ]# repquota /opt *** Report for user quotas on device /dev/sdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------root -17692 0 0 6 0 0 francisco +1024 512 1024 7days 1 0 0

Captulo 6 Planificacion de tareas con Cron


6.1 Configuracin de una tarea con cron
Existe una aplicacin utilizada en los sistemas Unix GNU/Linux llamada cron o crontab que es un administrador regular de procesos en segundo plano mejor conocido como demonio, que ejecuta procesos o scripts a intervalos regulares, debido a que cron es un demonio (crond) solo necesita ser iniciado una vez, en Beakos GNU/Linux este demonio es iniciado desde el arranque del sistema y como la mayora de las distribuciones GNU/Linux se puede cambiar esta opcin con el comando chkconfig, para mayor informacin sobre este comando consulte el Captulo 3: Control de Servicios de Beakos GNU/Linux. Para saber cul es el estado actual del programa teclear cualquiera de los siguientes comandos: root [ ~ ]# /etc/rc.d/init.d/cron status root [ ~ ]# /etc/init.d/cron status root [ ~ ]# ps ef | grep crond Para detener o iniciar cron se utiliza: root [ ~ ]# /etc/rc.d/init.d/cron start root [ ~ ]# /etc/rc.d/init.d/cron stop En el caso de que cron no iniciara desde el arranque del sistema se hace uso de chkconfig: root [ ~ ]# chkconfig level 35 crond on Tambin en /etc podemos encontrar los siguientes archivos: cron.hourly cron.daily cron.weekly cron.monthly

Desde estos archivos tambin es posible definir tareas programas, sin embargo, es ms recomendable hacerlo con el comando crontab ms adelante se especificar como usar este comando. Otros archivos importantes son: cron.allow cron.deny

En Beakos dichos archivos se encuentran en la ruta /etc/cron.d/cron.allow en este archivo es donde se encuentran los usuarios permitidos para ejecutar el comando cron, as mismo, en /etc/cron.d/cron.deny estn los usuarios que tienen restringido ejecutar dicho comando. El siguiente diagrama muestra los parmetros de los que se compone una tarea programada en cron.

Minuto

Minuto en que se ejecuta el proceso Parmetros: 0-59

Hora

Hora en que se ejecuta el proceso Parmetros: 0-23

Da

Da del mes en que se ejecuta el proceso Parmetros: 1-31

Mes

Mes en que se ejecuta el proceso Parmetros: 1-12

Da de la semana en que se ejecuta el proceso Da de la Parmetros: 0-6 Semana

Donde los valores de tiempo pueden tener el siguiente formato: Para definir todos los valores se utiliza un asterisco (*). Para definir un nico valor se utiliza un entero que este dentro de los parmetros de cada variable. Para definir una lista de valores se hacen separaciones por comas: (1,2,4,6). Para definir un rango se utiliza el guin :(1-5).

Es usado normalmente para comandos de tareas administrativas, es decir, que ejecuta programas agendados en el sistema. La versin normalmente utilizada de esta aplicacin es la Vixie Cron.

A continuacin se describe el formato para realizar una tarea programada con ayuda de cron:

Minuto

Hora

Da del Mes

Mes

Da de la Semana

Como ya se ha mencionado el script que contiene los procesos que se tienen programados es crontab y para editarlo se debe escribir el siguiente comando: root [ ~ ]# crontab -e Ejemplo de cmo agregar una nueva tarea programada: 30 12 * * 1-5 /usr/bin/top >> /home/top.txt

Minuto

12
Hora

Da del Mes

*
Mes

/usr/bin/top >> /home/top.txt

Da de la semana

30

1-5

Se ejecuta el comando "top" y se guarda la salida en "top.txt"

En este ejemplo, se ejecutar el comando top de Lunes a Viernes a las 12:30 am durante todos los meses y la salida la guardar en el archivo top.txt. Para verificar que la nueva tarea haya sido agregada correctamente al archivo crontab se puede teclear el siguiente comando: crontab [u usuario] -l Con esto veremos todas las tareas o procesos que hay programadas con cron. Y si se desean eliminar bastar con escribir: crontab [-u usuario] -r

6.2 Control de acceso a cron


Como ya se mencion anteriormente existen dos scripts que permiten o deniegan a los usuarios la ejecucin de cron dichos scripts son: cron.allow y cron.deny. A continuacin se describe como utilizar estos scripts: Para impedir que un usuario utilice el comando crontab es necesario agregar su nombre de usuario al archivo /etc/cron.deny, por el contrario si se desea permitir el uso de crontab hay que agregar los nombres de usuarios en /etc/cron.allow. Tambin se puede permitir o denegar el uso de crontab a todos los usuarios agregando ALL al final del script y comentando o eliminando el nombre de los usuarios.

6.3 Administracin de tareas planificadas a travs de Webmin


A travs de Webmin tambin es posible llevar a cabo la administracin de la aplicacin cron y el mdulo que se requiere es: Scheduled Cron Jobs (trabajos programados de cron). Este mdulo se encuentra en la seccin de sistema del sitio oficial de Webmin. A continuacin se explicar como programar tareas desde este mdulo: Al ingresar en la pgina principal se muestra un listado de todas las tareas programadas actualmente en el sistema, en dicha se tabla se pueden observar los campos de: Usuario Estado (Activo/Desactivo) Comando Si esta ejecutndose actualmente

Para agregar una nueva tarea, desde la pgina principal dar clic en el enlace Crear una nueva tarea programada a continuacin se mostrar un formulario para ingresar los datos de la nueva tarea: En el campo Ejecutar tarea como, todas las tareas en cron deben ser ejecutadas por un usuario, as que en este campo se ingresa el nombre del usuario que va a ejecutar dicha tarea. Esto es para que la tarea programada sea ejecutada con los privilegios del usuario que se le configure. En el campo Activo? presenta dos opciones No y Si con ello se determina el estado de la tarea programada, esto permite posponer dicha tarea hacia una nueva fecha y hora de ejecucin. En el campo de Comandos hay que escribir los comandos de Shell necesarios para que se ejecute la tarea programada. De forma predeterminada, cualquier salida del comando ser enviada por correo electrnico al propietario de la tarea, para modificar esta opcin hay que redirigir la salida hacia otro archivo.

Dentro de la pgina de creacin de una nueva tarea programada tambin aparece un la lista para configurar los horarios y fechas de ejecucin: Minutos Horas Das Meses Das de Semana

Despus de ajustar estos parmetros simplemente queda por dar clic en el botn Crear, para que la nueva tarea sea agregada.

6.3.1 Editar una tarea programada


Desde Webmin tambin se pueden modificar los parmetros de una tarea previamente programada siguiendo los pasos que a continuacin se describen: Desde la pgina principal del mdulo, dar clic en la tarea que se dese modificar. En seguida aparecer un formulario para modificar los parmetros y realizar los ajustes necesarios. Despus de que se hayan hecho las modificaciones deseadas dar clic en el enlace Guardar.

6.3.2 Control de acceso de los usuarios a cron


Este mdulo tambin permite controlar el acceso de usuarios al crontab o a la creacin y/o ejecucin de tareas programadas, por lo general de forma predeterminada todos los usuarios tienen permiso para crear nuevas tareas programadas esto pude ser modificado de la siguiente forma: En la parte inferior de la pgina principal dar clic en la opcin Control de acceso a usuarios para tareas programadas En seguida se muestra un formulario con las opciones para permitir o denegar el acceso a determinados usuarios, aqu se presentan tres opciones: Permitir a todos los usuarios, Permitir solo a los usuarios listados, Denegar solo a los usuarios listados, dependiendo de las necesidades y requerimientos se optar por cualquiera de estas opciones.

Captulo 7 Administracion de sistemas de archivos


7.1 Administracin de particiones
Los sistemas de archivos son los mecanismos mediante los cuales se organizan los datos en medio de almacenamiento.

7.1.2 ext3 y ReiserFS


Ext3 y Reiserfs son los sistemas de archivos soportados en Beakos, son usados en la mayor parte de las distribuciones. El sistema ext3 es el versin mejorada de ext2 ofrece grandes mejores en rendimiento y estabilidad. Tanto en sistemas ext3 y Reiserfs se ha implementado el mtodo de journaling (registro diario). El journaling es un mecanismo por el cual un sistema operativo puede realizar transacciones, se basa en un registro en el que se almacena la informacin necesaria para establecer datos afectados en caso de que una transaccin falle. En lo que se refiere a los sistemas de archivos el Journaling se encarga de las operaciones que afectan a: Estructuras de directorios. Bloques libres de disco. Descriptores de archivos (tamao, fecha de modificacin, etc..).

El journaling de sistemas de archivos tiene como objetivo evitar los engorrosos y largos chequeos de disco (fsck) que efectan los sistemas al apagarse bruscamente, ya que el sistema al arrancar solo deber deshacer el journal para tener un sistema coherente de nuevo. Tener que esperar un chequeo en un sistema de archivos de 200 megas en un sistema de produccin puede ser una prdida significativa de tiempo para los usuarios. Para poder visualizar una tabla de particiones podemos hacer uso de los siguientes comandos: root [ ~ ]# cat /proc/partitions root [ ~ ]# fdisk l

7.1.3 Creacin de una particin


La herramienta que proporciona GNU/Linux para la administracin de discos es fdisk suponiendo que est agregando al sistema un disco IDE, este lo reconocer como hda, si est agregando al sistema un disco SATA o SCSI, este lo reconocer como sda. En cuanto a las particiones, la primer particin de un disco si se trata de un IDE, el sistema operativo la nombrar hda1 y as sucesivamente, lo mismo para un disco SATA ser sda1. El ncleo compilado para Beakos en estos momentos es la versin 2.6.26, el cul soporta una gran cantidad de controladoras de disco incluyendo SCSI, pero puede darse el caso de que la controladora no est soportada.

Una vez que se ha colocado el disco, inicie el sistema operativo y para asegurarse de que el disco ha sido reconocido ejecute el comando dmesg, que muestra los mensajes del kernel. root [ ~ ]# dmesg | less Supongamos que hemos agregado un disco duro a nuestro sistema y el sistema lo ha instalado con sus respectivos controladores. Ejecute fdisk para corroborar los discos disponibles y la tabla de particiones que se encuentra en cada uno. root [ ~ ]# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000 Device Boot /dev/sda1 /dev/sda2 /dev/sda3 swap / Solaris Start 1 18 982 End 17 981 1044 Blocks 136521 7743330 506047+ Id 83 83 82 System Linux Linux Linux

Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table Con la ejecucin del comando anterior podemos observar que el sistema ha detectado un nuevo disco en nuestro sistema (/dev/sdb) pero aun no contiene una tabla de particiones. Ejecute fdisk /dev/sdb para comenzar con el particionamiento del disco. root [ ~ ]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Salida truncada.. 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help):

Se presentar la opcin de presionar m para obtener ayuda. La cual le ofrecer distintas opciones: a b c d l m n o p q s t u v w x Conmuta el indicador de iniciable Modifica la etiqueta de disco bsd Conmuta el indicador de compatibilidad con DOS Suprime una particin Lista los tipos de particiones conocidos Muestra opciones posibles Agrega una nueva particin Crea una nueva tabla de particiones DOS vaca Imprime la tabla de particiones Sale sin guardar los cambios Crea una nueva etiqueta de disco Sun Cambia el tipo de particin a crear Cambia las unidades de visualizacin/entrada Verifica la tabla de particiones Escribe la tabla en el disco y sale Funciones adicionales (slo para usuarios avanzados)

Una vez ejecutando la opcin anterior seleccione la opcin p para visualizar la tabla de particiones existente. Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xaeb28e04 Device Boot Start End Blocks Id System

Como podemos ver no existe an una tabla de particiones definida, seleccionemos la opcin n para crear una nueva particin. Command (m for help): n Command action e extended p primary partition (1-4) El men nos solicita crear una particin primaria o extendida. Presionamos la letra p y seleccionamos el nmero de particin que se le asignar, seleccionamos la opcin 1.

Sugerencia GNU/Linux slo permite la creacin de tres particiones primarias, si se va a crear ms de 4 particiones se recomienda que la cuarta sea extendida.

Para definir el tamao seleccionamos el primer cilindro del disco en cuestin, podemos definir el tamao en Megabytes o Gigabytes, crearemos para cuestiones de ejemplo una particin de 2 GB. De la siguiente forma teclee +2G First cylinder (1-1044, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G. De forma predeterminada, fdisk crea particiones del tipo ext3 (es decir 83 en su equivalente hexadecimal, puede ver una lista de cdigo presionando la letra L mayscula). Para cambiar el tipo de particin por ejemplo a RAID o Linux LVM presionamos la tecla t. Dejaremos de forma predeterminada el tipo de particin ext3 as que escribiremos 83. Command (m for help): t Selected partition 1 Hex code (type L to list codes): 83 Tecleamos de nueva forma la opcin p para volver a visualizar la tabla de particiones, observaremos que ya no est vaca como en un principio. Contiene una particin /dev/sdb1 Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes Salida truncada. Device Boot Start End /dev/sdb1 1 262

Blocks 2104483+

Id 83

System Linux

Una vez seguros que la particin creada cumple con las caractersticas requeridas, procedemos a escribir los cambios teclee w, al finalizar nos regresar a la lnea de comandos. Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.

Ejecute el comando partprobe para que el sistema est informado de los cambios hechos en la tabla de particiones. Procedemos a formatear el disco que se ha generado, Beakos soporta los sistemas de archivos ext3 y reiserFS. Se realiza de la siguiente forma si se quiere darle formato con ext3. root [ ~ ]# mkfs.ext3 /dev/sdb1 Si se requiere dar el formato con sistema de archivos reiserFS se realiza de la siguiente forma. root [ ~ ]# mkfs.reiserfs /dev/sdb1 Posterior a esto debemos definir un punto de montaje para nuestro sistema de archivos, supongamos que hemos creado la carpeta /data el comando sera el siguiente. root [ ~ ]# mount /dev/sdb1 /data Podemos ver detalles del sistema de archivos ya montado a travs del siguiente comando. root [ ~ ]# df -h Filesystem /dev/sda2 tmpfs /dev/sda1 /dev/sdb1

Size 7.0G 126M 130M 2.1G

Used Avail Use% Mounted on 4.2G 2.5G 64% / 0 126M 0% /dev/shm 15M 109M 12% /boot 33M 2.0G 2% /data

El cual nos muestra informacin sobre el tamao, uso y disponibilidad de nuestros sistemas de archivos.

7.2 Utilizacin de etiquetas en sistemas de archivos


Las etiquetas son tiles para utilizar un nombre alterno al de una particin, resulta ms factible recordar un nombre que un dispositivo de almacenamiento, Beakos slo soporta el uso de etiquetas en disco para particiones ext3. Existen dos formas de asignar una etiqueta un disco, la primera al mismo tiempo de dar formato a la particin. mkfs.ext3 [dispositivo] L Ejemplo: root [ ~ ]# mkfs.ext3 /dev/sdb1 -L data La segunda opcin es hacerlo con una particin ya formateada. e2label [dispositivo] [etiqueta] [etiqueta]

Ejemplo: root [ ~ ]# e2label /dev/sdb1 datos El sistema de archivos puede ser montado utilizando su etiqueta de la siguiente forma: mount [opciones] LABEL=[etiqueta] [punto de montaje] Ejemplo: root [ ~ ]# mount LABEL=datos /data

7.3 Montando y desmontando sistemas de archivos


El comando para el montaje y desmontaje de unidades de disco es mount y umount de manera relativa. Su forma de uso es la siguiente: mount [opciones] [dispositivo] [directorio]

En donde opciones pueden las que se muestran en la tabla, en la segunda tabla se anexan las opciones para usarse con el comando mount o . Si ejecutamos el comando mount sin ninguna opcin, presentar una lista de todos los sistemas de archivos montados hasta el momento. Por ejemplo: root [ ~ ]# mount /dev/sda2 on / type ext3 (rw) /proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=4,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext3 (rw) /dev/sdb1 on /data type ext3 (rw) Tabla 7-1. Opciones ms comunes para el comando mount Descripcin Monta todos los sistemas de archivos que han sido declarados en el archivo /etc/fstab -t [sistema archivo] Especifica el sistema de archivos que ser montado. Beakos est habilitado para montar ext3 y reiserFS y NFS. Si no se define el tipo de sistema de archivos el comando mount por si slo puede saber esta informacin. -o [opciones] Aplica opciones que se definen en la siguiente tabla, por lo general son opciones para un sistema de archivos en especfico. Opcin -a

Tabla 7-2. Opciones ms comunes para el comando mount -o Opciones para Descripcin mount -o ro Monta la particin como slo lectura. rw Monta la particin con permisos de lectura y escritura, esta es la opcin predeterminada. exec Permite ejecutar binarios, opcin predeterminada. noauto Desactiva el montaje automtico cuando se ejecuta mount a (aplicable para el archivo /etc/fstab). nosuid No permite la aplicacin de los bits del programa SetUID a la particn montada. acl Permite la implementacin de listas de acceso en la particin. quota Permite la implementacin de cuotas de disco en la particin. Ejemplo: root [ ~ ]# mount -o rw,acl /dev/sdb1 /data El comando anterior montar la particin /dev/sdb1 en el punto de montaje /data con permisos de lectura y escritura, adems del soporte para listas de acceso.

7.4 Puntos de montaje y el archivo /etc/fstab


Este archivo contiene una lista de particiones que el sistema ha de utilizar durante su proceso de inicializacin, el sistema lee esta lista y monta las particiones que se encuentren en ella de forma automtica y con las opciones especificadas. Formato de entradas en el archivo /etc/fstab [particin][punto_montaje][tipo_fs] [parametros][bakup][fsck] Ejemplo de un archivo /etc/fstab de Beakos GNU/Linux root [ ~ ]# cat /etc/fstab #filesystem mount-point proc /proc sysfs /sys tmpfs /dev/shm /dev/sda2 / /dev/sda1 /boot /dev/sda3 swap type proc sysfs tmpfs ext3 ext3 swap options defaults defaults defaults defaults defaults default dump 0 0 0 1 1 0 fsck 0 0 0 1 1 0

La primer lnea descomentada se refiere evidentemente a un sistema de archivos proc, que mantiene de forma dinmica los procesos del sistema. La segunda lnea es para el sistema de archivos sysfs, este sistema es requerido en los Kernel versin 2.6, al igual que proc es un sistema de archivos temporal y especial. Proporciona una visin estructurada del rbol de dispositivos del sistema operativo.

La tercer lnea declara al sistema de archivos de memoria virtual, el cual utiliza la memoria RAM y el rea de intercambio (SWAP), se utiliza para solicitar pginas del subsistema de memoria virtual para almacenar archivos. La cuarta lnea corresponde al sistema de archivo raz, la primer columna define la particin en un disco SATA, la segunda columna define el punto de montaje (/), la tercer columna declara que el sistema de archivos en uso es ext3, la siguiente columna especifica que slo utilice las opciones de montaje de archivos por defecto (vase tablas del tema Montando y desmontando archivos), la quinta columna se refiere al respaldo con la herramienta dump y su prioridad y la sexta determina si este sistema necesita verificacin (fsck) y el nivel de prioridad. La quinta lnea corresponde al punto de montaje /boot. Bsicamente los campos de esta lnea corresponden al del directorio raz, en esta particin se almacenan los archivos del gestor de arranque as como la imagen del kernel y la imagen del disco de RAM (initrd). La ltima lnea corresponde a la particin de intercambio (SWAP), es altamente recomendable tener una particin de este tipo ya que mejora el rendimiento del sistema, se recomienda que sea el doble de tamao que se tiene de memoria RAM. En la instalacin de Beakos si se elige la instalacin automtica, el instalador se encargar de definir el tamao adecuado para la particin de intercambio.

7.5 Software RAID


RAID significa conjunto redundante de discos independientes (en ingls Redundant Array of Independent Disks). Es un sistema de almacenamiento que hace uso de mltiples discos duros entre los que distribuye la informacin o la rplica para obtener redundancia de datos. Entre las ventajas de implementacin de RAID estn: Mejor rendimiento. Mejor tolerancia a fallas a nivel fsico del disco duro. Mayor capacidad de almacenamiento.

7.5.1 Niveles de RAID ms comunes


RAID 0 Tambin llamado volumen dividido, distribuye los datos equitativamente entre dos o ms discos pero sin redundancia. Su principal uso es incrementar el rendimiento, aunque tambin es utilizado para sumar varios discos fsicos y crear uno o ms discos virtuales. RAID 1

Crea una copia exacta de la informacin de un disco en otro(s), esto representa mayor velocidad de lectura pero un menor espacio de almacenamiento. Un ejemplo clsico de RAID 1 es la implementacin de dos disco en espejo, lo que proporciona fiabilidad de modo que si se presenta un fallo en uno de ellos para lograr perder el arreglo sera necesario que los fallaran. En este tipo de arreglo la velocidad de lectura se duplica porque el sistema puede estar leyendo informacin de ambos discos a la vez. RAID 5 El RAID 5 se divide en bloques distribuyendo la informacin de paridad entre todos los discos miembros del conjunto. El RAID 5 requiere al menos 3 unidades de disco para ser implementado, preferentemente del mismo tamao, al fallar un disco el arreglo se conserva, la perdida completa de datos suceder si falla un segundo disco.

7.5.1 Configuracin de software RAID


Creacin de un arreglo (RAID 5) Para este ejemplo, utilizaremos tres particiones de 512 M cada una simulando que son dos discos duros fsicos, los creamos con la herramienta fdisk (refirase al apartado 7.1.3), del tipo Linux auto detect (cdigo hexadecimal fd). root [ ~ ]# fdisk -l Salida truncada.... Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xaeb28e04 Device Boot /dev/sdb1 raid autodetect /dev/sdb2 raid autodetect /dev/sdb3 raid autodetect Start 1 67 133 End 66 132 198 Blocks 530113+ 530145 530145 Id fd fd fd System Linux Linux Linux

No olvidar ejecutar el comando partprobe para que el sistema operativo reconozca la tabla de particiones. Inicializamos y activamos el arreglo de RAID 5, el comando utilizado en esta tarea es mdadm su forma de uso es la siguiente: root [ ~ ]# mdadm -C /dev/md0 devices=3 /dev/sdb{1,2,3} mdadm: array /dev/md0 started. --chunk=64 --level=5 --raid-

La opcin C indica al comando que cree un nuevo arreglo llamado /dev/md0, la opcin --chunk se refiere al nmero de bloques le asignamos un numero de 64, --level representa el tipo de RAID que ha de generar, --raid-devices representa el nmero de discos, en este caso de particiones que se han de utilizar, recordemos que para RAID se requieren mnimo 3 discos. Crear un sistema de archivos ext3 para el dispositivo de almacenamiento. root [ ~ ]# mkfs.ext3 /dev/md0 El RAID de Linux puede ser monitoreado con el comando mdadm detail tambin nos sirve para ver una descripcin detallada del arreglo. root [ ~ ]# mdadm --detail /dev/md0 mdadm --detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Wed Apr 28 06:05:02 2010 Raid Level : raid5 Array Size : 1060096 (1035.42 MiB 1085.54 MB) Used Dev Size : 530048 (517.71 MiB 542.77 MB) Raid Devices : 3 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time State Active Devices Working Devices Failed Devices Spare Devices : : : : : : Wed Apr 28 06:09:22 2010 clean 3 3 0 0

Layout : left-symmetric Chunk Size : 64K UUID : ed26dad0:2c353a94:9688d056:0b76f4fc Events : 0.4 Number 0 1 2 Major 8 8 8 Minor 17 18 19 RaidDevice 0 1 2 State active sync active sync active sync

/dev/sdb1 /dev/sdb2 /dev/sdb3

7.5.2 Pruebas y recuperacin


Para este ejemplo simularemos la falla del disco disco /dev/sdb3 perteneciente al arreglo de RAID 5 que creamos anteriormente. Ejecutemos el siguiente comando. root [ ~ ]# mdadm /dev/md0 -f /dev/sdb3 mdadm: set /dev/sdb3 faulty in /dev/md0 La accin anterior har que el disco /dev/sdb3 falle, pero el arreglo conservar los datos no olvidemos que si un segundo disco falla el arreglo se perder. Nuevamente utilicemos el comando mdadm --detail /dev/md0, observemos que el arreglo se conserva, pero el disco sdb3 se encuentra daado. root [ ~ ]# mdadm /dev/md0: Version : Creation Time : Raid Level : Array Size : Used Dev Size : Raid Devices : Total Devices : Preferred Minor : Persistence : Update Time State Active Devices Working Devices Failed Devices Spare Devices : : : : : : --detail /dev/md0 0.90 Wed Apr 28 06:05:02 2010 raid5 1060096 (1035.42 MiB 1085.54 MB) 530048 (517.71 MiB 542.77 MB) 3 3 0 Superblock is persistent Wed Apr 28 06:36:31 2010 clean, degraded 2 2 1 0

Layout : left-symmetric Chunk Size : 64K UUID : ed26dad0:2c353a94:9688d056:0b76f4fc Events : 0.6 Number 0 1 2 3 Major 8 8 0 8 Minor 17 18 0 19 RaidDevice 0 1 2 State active sync active sync removed faulty spare

/dev/sdb1 /dev/sdb2 /dev/sdb3

Supongamos que hemos removido el disco daado y hemos conectado uno nuevo, debemos crearle una particin de RAID con fdisk y agregarlo al arreglo con el comando siguiente: root [ ~ ]# mdadm /dev/md0 -a /dev/sdb5 mdadm: added /dev/sdb5

7.6 Administracin de volmenes lgicos


La administracin de discos a travs de volmenes lgicos permite visualizar un disco o dispositivo de almacenamiento como un conjunto, sobre el cual se pueden crear espacios de almacenamiento, es decir se pueden conjuntar varios discos de diferentes tecnologas como SCISI, IDE y SATA, sumar su capacidad de almacenamiento, crear volmenes fsicos y con ello crear un grupo de volmenes cuya capacidad sea la suma de los dispositivos de almacenamiento y a partir de ah crear volmenes lgicos del tamao que se desee con la caracterstica de redimensionar su capacidad de almacenamiento segn nuestras necesidades. Las caractersticas ms notables de la administracin de volmenes lgicos son: Redimensionamiento de grupos de volmenes lgicos. Mayor flexibilidad para las particiones del disco. Redimensionamiento de volmenes lgicos. Fcil aumento de espacio de almacenamiento al agregar nuevos discos.

Definiciones referentes a la administracin de volmenes lgicos. Volumen fsico (PV, en ingls physical volume). Cuando hablamos de los volmenes fsicos nos estamos refiriendo a los discos o dispositivos de almacenamiento como tal, como un disco SCSI, un RAID por hardware, un disco SATA etc. Grupo de volmenes (VG, en ingls volumen group). Los grupos de volmenes permiten administrar un conjunto de volmenes fsicos en una sola unidad. Estos no se pueden montar, se pueden definir como discos virtuales. Volumen lgico (LV en ingls Logical volume). Los volmenes lgicos son el equivalente a las particiones en un esquema donde no se utiliza la administracin de volmenes lgicos. El volumen lgico se crea a partir del espacio disponible en un grupo de volmenes. A este se le asigna un sistema de archivos y un punto de montaje. En resumen los pasos para la creacin de un volumen lgico son los siguientes: Creacin de una particin. Creacin de un volumen fsico. Agregar de un volumen fsico a un grupo de volmenes. Creacin de un volumen lgico.

Figura 7-1. Esquema de la administracin de volmenes lgicos

Tabla 7-3. Comandos ms comunes para la administracin de Volmenes Lgicos. Comando Descripcin LVM pvcreate Inicializa una particin para convertirla en un volumen fsico que pueda ser integrado a un grupo de volmenes. pvdisplay Muestra los volmenes fsicos existentes en el sistema operativo y sus respectivas caractersticas. vgcreate Usado para crear un grupo de volmenes a partir de uno o varios volmenes fsicos. vgextend Usado para agregar uno o ms volmenes fsicos a un grupo existente de volmenes para ampliar su tamao. vgdisplay Muestra grupos de volmenes existentes y sus respectivas caractersticas. lvcreate Crea un nuevo volumen lgico a partir de un grupo de volmenes. lvdisplay Muestra los volmenes lgicos existentes en el sistema operativo y sus respectivas caractersticas. lvremove Elimina un volumen lgico del grupo de volmenes para esta operacin debe desmontarlo y los datos se perdern.

7.6.1 Creacin de Grupos de volmenes y volmenes lgicos


Supongamos que hemos agregado un disco duro nuevo nuestro sistema y tiene un tamao de 8 GB, utilizando la herramienta fdisk (refirase al tema Creacin de una particin), crear una particin de 8 GB del tipo LVM (en cdigo hexadecimal corresponde a 8e). No olvidar ejecutar el comando partprobe para que el sistema reconozca la tabla de particiones. Ejecutemos el comando fdisk l para corroborar que se ha creado la particin de forma exitosa. root [ ~ ]# fdisk -l /dev/sdb Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x4edd0986 Device Boot /dev/sdb1 Start 1 End 1044 Blocks 8385898+ Id 8e System Linux LVM

El siguiente paso es inicializar el volumen fsico creado en el paso anterior con el comando pvcreate, hacerlo de la siguiente forma. root [ ~ ]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created

Usar el comando pvdisplay para ver los cambios teclee: root [ ~ ]# pvdisplay "/dev/sdb1" is a new physical volume of "8.00 GB" --- NEW Physical volume --PV Name /dev/sdb1 VG Name PV Size 8.00 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID D9S3Rt-rs2i-5rAm-8rG8-yAXg-K3ZK-SOte8X Una vez que hemos corroborado que el volumen fsico se ha creado con xito, lo asignaremos a un grupo de volmenes (VG) que tambin ser creado con el nombre de vg0, el comando a usar ser vgcreate. root [ ~ ]# vgcreate vg0 /dev/sdb1 Volume group "vg0" successfully created Tecleamos el comando vgdisplay para ver las caractersticas y tamao del grupo de volmenes. root [ ~ ]# vgdisplay --- Volume group --VG Name System ID Format Metadata Areas Metadata Sequence No Salida truncada VG Size PE Size Total PE Alloc PE / Size Free PE / Size VG UUID

vg0 lvm2 1 1 8.00 GB 4.00 MB 2047 0 / 0 2047 / 8.00 GB CAxcc1-XA9L-8tGX-xjDT-y3Hd-yJb0-oOQ31Q

Ahora tenemos 8 GB de espacio libre para crear volmenes lgicos. Con esta informacin procedemos a crear un volumen lgico, utilizaremos en comando lvcreate. Su sintaxis es la siguiente: lvcreate L [tamao en MB o GB] n [nombre] [Volume Group]

Crearemos un volumen lgico con un tamao de 4G llamado data, a partir del grupo de volmenes previo. root [ ~ ]# lvcreate -L 4G -n data vg0 Logical volume "data" created Tecleamos el comando lvdisplay para corroborar que el volumen lgico se ha creado con xito, recordemos que este volumen lgico es el equivalente a una particin en un particionado de forma convencional. root [ ~ ]# lvdisplay --- Logical volume --LV Name VG Name LV UUID LV Write Access LV Status # open LV Size Current LE Segments Allocation Read ahead sectors - currently set to Block device

/dev/vg0/data vg0 nxF2pu-Basx-6qaj-x8Dd-UGqX-qlps-kI7iN4 read/write available 0 4.00 GB 1024 1 inherit auto 256 254:0

Con el volumen creado es necesario asignarle un sistema de ficheros, para fines prcticos formatearemos el volumen lgico con el sistema ext3 utilizando el comando mkfs.ext3 de la siguiente forma: root [ ~ ]# mkfs.ext3 /dev/vg0/data mke2fs 1.41.3 (12-Oct-2008) Filesystem label= OS type: Linux Block size=4096 (log=2) Salida truncada.... This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. Concluyendo los pasos anteriores el volumen lgico est listo para definirle un punto de montaje, se lo definiremos en /data. root [ ~ ]# mount /dev/vg0/data /data

7.6.2 Redimensionando volmenes lgicos


Supongamos que el volumen lgico llamado data se ha quedado sin espacio suficiente, es necesario agregarle ms espacio recordemos que al grupo de volmenes slo le quedan 4 GB de los 8GB inicialmente disponibles, para aumentar su tamao no es necesario desmontar el volumen lgico, no as para una reduccin. El procedimiento es el siguiente: Extender el volumen lgico a 6 GB con el comando lvextend root [ ~ ]# lvextend -L +2G /dev/vg0/data Extending logical volume data to 6.00 GB Logical volume data successfully resized Ajustar el sistema de archivos correspondiente al volumen lgico. root [ ~ ]# resize2fs -p /dev/vg0/data resize2fs 1.41.3 (12-Oct-2008) Filesystem at /dev/vg0/data is mounted on /data; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/vg0/data to 1572864 (4k) blocks. The filesystem on /dev/vg0/data is now 1572864 blocks long. Supongamos que ahora nuestras necesidades nos exigen que el tamao del volumen lgico vuelva a ser de 4 GB. El procedimiento es el siguiente: Desmontar el volumen lgico con uso del comando umount root [ ~ ]# umount /data Realizar una comprobacin de la estructura e integridad del sistema de ficheros. root [ ~ ]# e2fsck -f /dev/vg0/data e2fsck 1.41.3 (12-Oct-2008) Salida truncada... /dev/vg0/data: ***** FILE SYSTEM WAS MODIFIED ***** /dev/vg0/data: 11/393216 files (0.0% non-contiguous), 59535/1572864 blocks Asignamos el tamao deseado al sistema de archivos con el comando rezise2fs root [ ~ ]# resize2fs /dev/vg0/data 4G resize2fs 1.41.3 (12-Oct-2008) Resizing the filesystem on /dev/vg0/data to 1048576 (4k) blocks. The filesystem on /dev/vg0/data is now 1048576 blocks long.

Asignamos el tamao deseado al volumen lgico con el comando lvreduce, esta operacin podra destruir los datos as que debe realizarse con precaucin, el comando nos pedir una confirmacin para ejecutarse. root [ ~ ]# lvreduce -L 4G /dev/vg0/data WARNING: Reducing active logical volume to 4.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce data? [y/n]: y Reducing logical volume data to 4.00 GB Logical volume data successfully resized Concluida la operacin podemos verificar que se efectuado con xito con el comando lvdisplay root [ ~ ]# lvdisplay --- Logical volume --LV Name Salida truncada... LV Size Salida Truncada... - currently set to Block device

/dev/vg0/data 4.00 GB 256 254:0

Montamos el volumen lgico en /data root [ ~ ]# mount /dev/vg0/data /data

7.7 Crear un rea de intercambio (SWAP) utilizando un archivo


En ocasiones pude resultar til generar una nueva rea de intercambio (SWAP), esta se genera normalmente en el proceso de instalacin de Beakos y la regla nos dice que debe ser del doble de tamao que la memoria RAM, pero puede darse el caso en ambientes de produccin que algunas aplicaciones no exigan aumentar este tamao una alternativa adecuada es la utilizacin de un archivo como memoria SWAP, el procedimiento es el siguiente: Creamos el archivo, este ejemplo lo haremos con 256 megas. root [ ~ ]# dd if=/dev/zero of=/data/espacioswap bs=1M count=256 256+0 records in 256+0 records out 268435456 bytes (268 MB) copied, 1.20527 s, 223 MB/s

El comando anterior cre un archivo de 265 Megas. Le asignamos un sistema de archivos SWAP, de la siguiente forma: root [ ~ ]# mkswap /data/espacioswap Setting up swapspace version 1, size = 262140 KiB no label, UUID=9688c1d7-812b-4789-8bc3-17a0bb5a8e38 Activamos el archivo SWAP root [ ~ ]# swapon /data/espacioswap Verificamos el archivo /proc/swaps root [ ~ ]# cat /proc/swaps Filename Type Size Used /dev/sda3 partition 506036 8612 /data/espacioswap file 262136 0

Priority -1 -2

Podemos observar que nuestro archivo SWAP se encuentra activo. Por ltimo agregamos la lnea correspondiente al archivo /etc/fstab con el objetivo de que est disponible al arranque del sistema operativo. root [ ~ ]# echo "/data/espacioswap 0">> /etc/fstab swap swap defaults 0

Captulo 8 Configuracion del firewall de Beakos GNU/Linux


9.1 Netfilter
Netfilter es un framework dentro del Kernel de Linux disponible desde la versin 2.4, su funcin es interceptar, manejar y redireccionar paquetes de red entre otras funciones. Netfilter est disponible en prcticamente todas las distribuciones de GNU/Linux en la actualidad su componente ms popular es el comando iptables, que facilita la creacin, modificacin y eliminacin de reglas segn sea requerido en un sistema.
Red local
Firewall Iptables eth0 eth1

Internet
Figura 8-1. Configuracin general bsica de un firewall con IPtables

8.2 Funcionamiento de IPtables


IPtables se denomina normalmente a la herramienta para la administracin de paquetes del firewall de Linux, pero en realidad se trata de un complejo sistema de componentes como Netfilter, Conntrack, NAT y por supuesto el comando iptables. Uno de los principales componentes de IPtables es el filtrado de paquetes (packet filtering), su funcin es la de analizar el encabezado del paquete (header) a medida que pasa por el ncleo y el sistema operativo en general y decide qu hacer con este. Segn las reglas configuradas en nuestro sistema operativo este puede decidir aceptar el paquete (ACCEPT), descartar el paquete (DROP) o bien reenviar el paquete (FORWARD ) entre otras opciones ms complejas. IPtables nos ofrece la posibilidad de crear reglas para el filtrado de paquetes, estas reglas se agrupan para formar cadenas y estas a su vez conforman tablas, cada una de estas tablas se asocia a un determinado procesamiento de paquetes. Cada regla de IPtables contiene informacin especfica como la direccin IP, el puerto de destino del paquete y lo que se va a decidir hacer con l (TARGET) , todos los paquetes que ingresan o egresan en el sistema operativo atraviesan por lo menos una cadena y los paquetes deben de coincidir por lo menos

con alguna de ellas. Si un paquete llega al final de la cadena sin coincidir con ninguna regla este ser descartado o acepta segn la poltica por defecto.

Aviso Existen disponibles 65535 puertos, ya sea UDP o TCP, en los sistemas basados en UNIX como BeakOS el usuario root solo puede escuchar del 1 al 1023.

Trafico saliente

DROP

regla

regla

ACCEPT

Paquete

ACCEPT

regla

Cadenas

regla

Paquete

DROP

Paquete

Paquete
Trafico entrante

Figura 8-2. Esquema general del manejo de paquetes en IPtables.

Existen tres tipos de cadenas bsicas en la tabla Filter (filtrado de paquetes): INPUT, OUTPUT y FORDWARD, se puede generar la cantidad de cadenas que se requieran, pata la tabla NAT (traduccin de direcciones): OUTPUT, PREROUTING y POSTROUTING. Tabla 8-1. Tablas de Netfilter. Tabla Filter Nat X X X X X X

Cadena INPUT FORDWARD OUTPUT PREROUTING POSTROUTING

Mangle X X X X X

8.3 Manejo de IPtables


Beakos GNU/Linux incluye la instalacin de Netfilter y de la herramienta IPtables, la sintaxis correcta para utilizar el comando iptables esta siguiente: iptables t [TABLA] COMANDO [REGLA] [OPCIONES] TABLA puede ser cualquiera de las tablas siguientes: filter: destinada al filtrado de paquetes nat: destinada a generar reglas para traduccin de direcciones mangle: destinada a efectuar marcados de paquetes

Aviso de no especificar cualquiera de las anteriores, la tabla por defecto que utilizar el comando iptables ser filter.

COMANDO se refiere a la accin que realizar iptables con la regla, es decir agregarla (-A), insertarla (I), borrarla (D) reemplazarla (-R), etc.. Ejemplos con el comando A, --append: iptables t filter A INPUT s 192.168.1.0 j DROP

Bloquear todos los paquetes que vengan de la red 192.168.1.0 (agregar la regla al final de la cadena). iptables t filter A OUTPUT s 192.168.3.20 j ACCEPT

Aceptar todos los paquetes que vengan de la direccin IP 192.168.3.20 (agregar la regla al final de la cadena). Ejemplos con el comando I, --insert: iptables t filter I INPUT s 192.168.1.0 j DROP

Bloquear todos los paquetes que vengan de la red 192.168.1.0 (agregar la regla al principio de la cadena).

iptables t filter I OUTPUT s 192.168.3.20 j ACCEPT

Aceptar todos los paquetes que vengan de la direccin IP 192.168.3.20 (agregar la regla al principio de la cadena).

Ejemplos con el comando D, --delete: iptables t filter D INPUT s 192.168.1.0 j DROP

Borrara la regla que bloquee los paquetes provenientes de la red 192.168.1.0. iptables t filter D OUTPUT s 192.168.3.20 j ACCEPT

Borrar la regla que acepte los paquetes salientes a la direccin 192.168.3.20. Ejemplos con el comando R, --replace: iptables t filter R INPUT 1 s 192.168.1.0 j DROP

Reemplazar la regla 1 que bloquee los paquetes provenientes de la red 192.168.1.0. iptables t filter R OUTPUT 3 s 192.168.3.20 j ACCEPT

Reemplazar la regla 3 que acepte los paquetes salientes a la direccin 192.168.3.20.

Ejemplos con el comando L, --list: iptables L n

Muestra todas las reglas de iptables. iptables t filter L

Muestra todas las reglas de iptables correspondientes a la tabla FILTER. iptables t nat L

Muestra todas las reglas de iptables correspondientes a la tabla NAT. iptables t nat L PREROUTING

Muestra todas las reglas de iptables correspondientes a la tabla NAT en la cadena PREROUTING. Ejemplos con el comando F, --flush: iptables t filter F INPUT

Borra todas las reglas de la cadena INPUT de la tabla FILTER Ejemplos con el comando Z, --zero iptables Z input

Los contadores de reglas para la cadena INPUT de la tabla filter de reinicializarn a cero.

8.4 Opciones de comandos de IPtables


A algunos de los comandos antes descritos podemos aadir las siguientes opciones: Opcin 1: -v, --verbose Ejemplo: iptables t nat L v iptables L v

Comandos que permiten verbosidad: -L, --list -A, --append -I, --insert -D, --delete -R, --replace Esta opcin al ser utilizada con L , mostrar en pantalla los contadores de paquetes y las interfaces de entrada y salida para cada regla.

Figura 8-3. Visualizacin de reglas a detalle aplicadas en Beakos Al utilizarla con los dems comandos nos mostrar informacin ms detallada de la regla en cuestin. Opcin 2: -x, --exact Ejemplo: iptables t filter L v x iptables L x

Comandos que la aceptan esta opcin: -L, --list Esta opcin no muestra el valor de los contadores en bytes de manera exacta. Opcin 3: -n, --numeric Ejemplo: iptables t nat L PREROUTING n v

Comandos que aceptan esta opcin: -L, --list Esta opcin mostrar en pantalla todas las reglas de la cadena POSTROUTING de la tabla de nat con los contadores de paquetes y los bytes para cada regla sin resolver las direcciones IP o los puertos y los mostrar en formato numrico.

Figura 8-4. Visualizacin de reglas resumidas aplicadas en Beakos.

8.4.1 Destinos de las reglas (target)


Podemos determinar el destino de un paquete que atraviesa por una regla, por ejemplo podemos aceptarlo, denegarlo, procesarlo por alguna otra cadena, para la asignacin del target se utiliza el parmetro j o jump, la sintaxis sera la siguiente: iptables t [TABLA] COMANDO MATCH [-j TARGET] [OPCIONES] Opciones ms comunes: DROP hace que Netfilter descarte el paquete sin nign otro tipo de procesamiento. ACCEPT hace que netfilter acepte el paquete. LOG conecta el sistema con el sistema de log del kernel REJECT enva una notificacin de que el paquete ha sido rechazado al origen del mismo. QUEUE hace que netfilter encole el paquete en el espacio de un usuario. RETURN Hace que el paquete en cuestin deje de circular por la cadena en cuya regla se ejecut el destino return.

8.4.2 Especificaciones de las reglas


-i, --in-interface Especfica la interfaz de red por donde el paquete ser recibido. Ejemplo: iptables A INPUT i eth0 j ACCEPT

-o, --out-interface Especfica la interfaz de red por la cual un paquete ser enviado. Ejemplo:

iptables A OUTPUT o eth1 d 192.168.0.4 j DROP

-p, --protocol Especfica el protocolo de un determinado paquete, las opciones posibles son icmp, udp y tcp Ejemplo: iptables I INPUT s 200.38.146.24 p tcp j ACCEPT iptables A INPUT -i eth1 p tcp j DROP

-s,--source Especifica el origen de una direccin Ip o un grupo de direcciones IP especificadas por un sufijo. Ejemplo: --sport Especifica los puertos de donde proviene un paquete, puede ser tcp o udp dependiendo de la opcin p. --dport Especifica el puerto destino de un paquete, puede ser tcp o udp dependiendo de la opcin p. iptables A INPUT p tcp -dport 80 j ACCEPT iptables I INPUT p udp -dport 161 j DROP iptables I INPUT -sport 1000 s 192.168.4.32 -J ACCEPT iptables A INPUT p tcp -sport 23:27 j ACCEPT iptables A INPUT s 192.168.2.0/24 j ACCEPT

8.4.3 Seguimiento de conexiones


Esta es una de las caractersticas ms importantes de Netfilter (connection traking), le permite al kernel llevar la cuenta de las conexiones de red y de esta forma relacionar los paquetes que pueda llegar a ser parte de la conexin, esta informacin se clasifica en 4 estados. NEW Intentando crear una nueva conexin. ESTABLISHED Parte de una conexin ya existente. RELATED

Relacionada, no necesariamente parte de una conexin existente. INVALID No es parte de una conexin existente ni puede crear una conexin nueva. Ejemplo: iptables A INPUT m state -state ESTABLISHED,RELATED j ACCEPT iptables I INPUT m state --state NEW p tcp -dport 25 j ACCEPT iptables A INPUT m state -state NEW j DROP

8.4.4 Persistencia de las reglas


Iptables no se ejecuta sobre Beakos como un demonio, las reglas se almacenan en la memoria y estas no persisten a un reinicio del sistema. Para que las reglas persistan al reinicio del sistema deben almacenarse en el archivo /etc/rc.d/rc.iptables

Figura 8-5. Archivo de configuracin del firewall de Beakos. Comando para aplicar la configuracin una vez modificado el archivo. root [ ~ ]#/etc/init.d/iptables start Comando para borrar la configuracin y dejar el firewall sin reglas aplicadas root [ ~ ]#/etc/init.d/iptables clear Comando para mostrar la configuracin y las reglas aplicadas root [ ~ ]#/etc/init.d/iptables status

Bloquear todo el trfico entrante y saliente root [ ~ ]#/etc/init.d/iptables lock

8.5 Network Address Translation (NAT)


La NAT (Network Address Translation) permite proteger a los anfitriones de la red interna del router, esto tiene como ventaja que los equipos de la red interna permanezcan ocultos al exterior. Implementando Netfilter, NAT se divide en las siguientes categoras: Source NAT (SNAT) Destination NAT (DNAT) Masquerading

SNAT es el responsable de cambiar las direcciones IP y puerto origen, para que un paquete aparezca como proveniente de la puerta de enlace por donde sale el paquete en cuestin. sta es la de mayor uso para el caso en que una red privada necesite utilizar una direccin IP desde el exterior. Para utilizar un SNAT es necesario conocer la direccin IP origen al momento de definir la regla, otro uso de SNAT es cuando se requiere que un host aparezca con otra direccin IP generalmente pblica. DNAT es responsable de cambiar la direccin IP y puertos destino, con el objetivo de que el paquete se dirija a otra direccin IP diferente de la que originalmente se tena destinada, esto resulta til para redireccionar todo el trfico web hacia un servidor proxy por ejemplo. MASQUERADING, es sencillamente un caso especial de SNAT, esto resulta til cuando existen mltiples sistemas en el interior de una red LAN que requieren salir a internet a travs de una sola direccin IP pblica.

Cliente: 192.168.1.2 Gateway: 192.168.1.1

Eth0 192.168.1.1 NAT

Eth1 207.249.24.254

Figura 8.6 Diagrama de SNAT en una conexin

Servidor: 192.168.1.7 Gateway: 192.168.1.1

De: 207.249.161.19:1025 A:192.168.1.7:80 Eth0 192.168.1.1 NAT

Eth1 207.249.24.254

De: 207.248.161.19:49100 A:207.249.24.254:80

Cliente: 207.249.161.19

Figura 8-7. Diagrama de DNAT en una conexin

8.5.1 Compartir Internet en una red LAN


Script de ejemplo para compartir Internet con una Red LAN a travs de un equipo con dos interfaces de red. Eth0 es la interfaz conectada al router y eth1 es la interfaz conectada a la red local.

#!/bin/sh # Modulos de firewall para Iptables modprobe ip_tables modprobe iptable_filter modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ipt_state modprobe iptable_nat modprobe ip_nat_ftp modprobe ipt_MASQUERADE modprobe ipt_LOG modprobe ipt_REJECT modprobe iptable_mangle ## Borrado de reglas iptables -F iptables -X iptables -Z iptables -t nat -F ## Polticas por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT # Todo lo que venga de una red externa con destino al #puerto 80 lo redireccionamos a una IP iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.12:80 # Permitir conexiones entrantes a localhost iptables -A INPUT -i lo -j ACCEPT # Permitir el acceso local desde el firewall iptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT # Abrir el acceso al servicio de correo SMTP iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT # Abrir el acceso al servicio de correo POP3 iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT

# Permitir el acceso a servidores web iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp -dport 80 -j ACCEPT # Permitir el acceso a servidores web seguros iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp -dport 443 -j ACCEPT # Permitir consultas a servidores DNS iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp -dport 53 -j ACCEPT iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p udp -dport 53 -j ACCEPT #Enmascarar la red local para que los equipos de la red #local puedan salir la interfaz eth0 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE #Activar el bit para el reenvo de paquetes a nivel de #kernel echo 1 > /proc/sys/net/ipv4/ip_forward #Permitir conexiones entrantes y sus respectivos puertos iptables A INPUT m state -state NEW,ESTABLISHED,RELATED j ACCEPT #Denegar los servicios no utilizados iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -j DROP

8.5.2 Configuracin de un firewall simple


Configuracin de un firewall simple para proteccin de servicios en Beakos GNU/Linux

#!/bin/sh # Modulos de firewall para Iptables modprobe ip_tables modprobe iptable_filter modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ipt_state modprobe iptable_nat modprobe ip_nat_ftp modprobe ipt_MASQUERADE modprobe ipt_LOG modprobe ipt_REJECT modprobe iptable_mangle # Borrado de reglas iptables -F

iptables -X iptables -Z iptables -t nat -F ## Polticas por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT #Aceptar conexiones al localhost iptables A INPUT i lo j ACCEPT #Permitir la entrada de ping al sistema iptables A INPUT p icmp j ACCEPT #Permitir conexiones existentes y relacionadas #(indispensable) iptables A INPUT m state state ESTABLISHED,RELATED j ACCEPT #Permitir conexiones al protocolo SSH desde el exterior #Podemos permitir ms puertos como se requiera iptables A INPUT p tcp --dport 22 j ACCEPT #Activar el uso de syslog para iptables iptables A INPUT j LOG #Rechazar todo lo dems iptables A INPUT j REJECT

Aviso Al terminar de ingresar los comandos anteriores al archivo /etc/rc.d/rc.iptables no olvidemos iniciar el servicio.

8.6 Configuracin del firewall con Webmin


Beakos GNU/Linux cuenta con una interfaz de configuracin para el cortafuegos a travs de la aplicacin Webmin, para accesar a ella debemos utilizar un navegador web tecleando la url siguiente: https://direccion_ip:10000

Una vez que ingresemos al conjunto de mens seleccionaremos la opcin red y el submen Cortafuegos Linux.

Figura 8-8. Interfaz de Webmin para la administracin del firewall. Con la interfaz de configuracin podemos definir configuraciones por defecto: Permitir todo el trfico. Hacer una traduccin de direccin de red en la interfaz externa. Bloquear todo el trfico excepto SSH e IDENT en una interfaz externa. Bloquear todo el trfico excepto SSH , IDENT y ping en una interfaz. Bloquear todo el trfico excepto los puertos usados para servicios de internet.

Adems de estas plantillas prediseadas podemos agregar reglas personalizadas a cada una de ellas. Seleccionando la opcin aadir reglas dentro de las polticas por defecto (INPUT, OUTPUT, FORWARD).

Figura 8-9. Creacin de reglas de Iptables a travs de Webmin. A diferencia de la configuracin manual las reglas creadas con la interfaz de webmin se almacenarn en el archivo /etc/webmin/firewall/iptables.save

Captulo 9 Sistema de archivos /proc


10.1 Archivos dentro del directorio /proc
El sistema de archivos proc contiene informacin acerca de la configuracin del sistema, dentro de este se puede observar el estado actual del Kernel y los procesos que se estn ejecutando, adems tambin se puede encontrar informacin detallada sobre dispositivos de hardware, algunos archivos que se encuentran dentro de /proc pueden ser modificados por usuarios que tengan permiso de escritura en este directorio. Como ya se ha estudiado en los sistemas GNU/Linux todo se maneja como archivo y los hay de tres tipos: Binarios De texto Virtuales

Los que se encuentran dentro de /proc son archivos virtuales sus principales caractersticas son: Son de tamao 0 bytes El Sistema Operativo los genera conforme se consultan Son constantemente modificados por el Sistema Operativo Algunos archivos solo pueden ser ledos por el usuario root Como ya se ha mencionado algunos archivos pueden ser modificados, esto con la finalidad de ajustar la configuracin del kernel, comnmente esto ocurre con los archivos que estn dentro de /proc/sys. Para modificar un archivo virtual, se debe hacer de la siguiente forma: echo [texto_nuevo] > [ruta_del_archivo] Ejemplo: root [ ~ ]# echo beakos.com.mx > /proc/sys/kernel/hostname Los archivos que comnmente se pueden encontrar dentro de /proc pueden variar ya que los directorios con nmero hacen referencia a los procesos que se estn ejecutando en esos momentos. A continuacin se listan algunos de los directorios ms importantes dentro de este sistema de archivos:

A continuacin se describen algunos de los directorios ms importantes:

9.1.1 buddyinfo
Este archivo utiliza un algoritmo llamado buddy para diagnosticar los problemas de fragmentacin que ocurren en memoria. root [/proc]# cat buddyinfo Node 0, zone DMA 4 1 2 Node 0, zone Normal 3 2 4 5 13 3 4 3 1 3 3 2 2 2 17 1 15 1 9

9.1.2 cmdiline
Este archivo permite visualizar los parmetros pasados al kernel en el momento en que este se inicia. root [/proc]# cat cmdline root=/dev/sda2 ro quiet splash vga=788

9.1.3 cpuinfo
Este archivo identifica las caractersticas principales del procesador utilizado por el sistema. Processor: Enumera cada uno de los procesadores que reconoce el sistema empezando por 0 para el primer procesador, 1 para el segundo y as sucesivamente. cpu-family: Proporciona el tipo de procesador que se encuentra en el sistema. model model name: Muestra el nombre del procesador. cpu Mhz: Muestra la velocidad del procesador indicada en Mhz cache size: Muestra la cantidad de memoria root [ /proc ]# cat cpuinfo processor :0 vendor_id :GenuineIntel cpu family model :23 :6

model name :23 stepping cache size fdiv_bug hlt_bug f00f_bug coma_bug :6 :0 KB :no :no :no :no

fpu fpu_exception cpuid level wp

:yes :yes :5 :yes

flags :fpu vme de pse tsc msr pae cx8 apic sep mtrr pge mca cmov pat

bogomips clflush size

:3497.67 :64

9.1.4 crypto
Este archivo muestra en forma de listado los cdigos de cifrado utilizados por el kernel de Linux. root [ ]# cat /proc/crypto name :md5 driver :md5-generic module :kernel priority :0 refcnt :1 type :digest blocksize :64 digestsize :16

9.1.5 devices
Muestra los diferentes dispositivos tanto de caracteres como de bloque que se encuentran configurados (no incluye dispositivos cuyos mdulos no estn cargados). A continuacin se muestran los datos que contiene este archivo. root [ /proc ]# cat devices 1 mem 4 /dev/vc/0 4 tty 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 14 sound 21 sg 29 fb 116 alsa

128 ptm 136 pts

9.1.6 dma
Este archivo muestra los canales registrados DMA ISA en uso. root [ /proc ]# cat dma 4: cascade

9.1.7 filesystems
Lista los sistemas de archivos que estn soportados por el kernel. root [ /proc ]# cat filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev cgroup nodev cpuset nodev debugfs nodev securityfx nodev sockefs nodev pipefs nodev amon_inodefs nodev tmpfs nodev inotifyfs nodev devpls

9.1.8 interrupts
Muestra la interrupciones que estn siendo utilizadas y cuantas de cada tipo ha habido. root 0: 1: 2: 5: 9: 10: 11: 12: 14: 15: NMI: ... [ /proc ]# cat interrupts 95 XT-PIC-XT timer 602 XT-PIC-XT i8042 0 XT-PIC-XT cascade 0 XT-PIC-XT Intel 82801AA-ICH 0 XT-PIC-XT acpi 0 XT-PIC-XT ehci_hcd:usb2, eth0 0 XT-PIC-XT ohci_hcd:usb1 2896 XT-PIC-XT i8042 1103 XT-PIC-XT ata_piix 162 XT-PIC-XT ata_piix 0 XT-PIC-XT ata_piix

9.1.9 loadavg
El nivel medio de carga del sistema; tres indicadores significativos sobre la carga de trabajo del sistema en cada momento. root[ /proc ]# cat loaddavg 0.02 .0.00 2/38 149

9.1.10 meminfo
Informacin acerca de la utilizacin de la memoria fsica y del archivo de intercambio. root [ /proc ]# cat meminfo MemTotal: 4027012 kB MemFree: 3935932 kB Buffers: 1092 kB Cached: 19088 kB SwapCached: 0 kB Active: 70288 kB Inactive: 3340 kB HighTotal: 3145664 kB HighFree: 3068876 kB LowTotal: 881348 kB LowFree: 867056 kB SwapTotal: 4200988 kB SwapFree: 4199620 kB Dirty: 136 kB Writeback: 0 kB AnonPages: 53460 kB Mapped: 15820 kB Slab: 8136 kB SReclaimable: 2348 kB SUnreclaim: 5788 kB PageTables: 1140 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 6214492 kB Committed_AS: 378096 kB VmallocTotal: 114680 kB VmallocUsed: 6596 kB VmallocChunk: 107876 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 4096 kB

9.1.11 modules
Indica los mdulos del ncleo que han sido cargados hasta el momento. root [ /proc ]# cat modules ipv6 232636 12 - Live 0xf04c9000 iptable_mangle 3584 0 - Live 0xf044c000 ipt_REJECT 3584 0 - Live 0xf044a000 ipt_LOG 5764 0 - Live 0xf0435000 ipt_MASQUERADE 3456 0 - Live 0xf0438000 nf_nat_ftp 3456 0 - Live 0xf034f000 iptable_nat 5640 0 - Live 0xf043d000 nf_nat 16408 3 ipt_MASQUERADE,nf_nat_ftp,iptable_nat, Live 0xf0444000 xt_state 2944 1 - Live 0xf02af000 nf_conntrack_ftp 7716 1 nf_nat_ftp, Live 0xf043a000 nf_conntrack_ipv4 12940 4 iptable_nat,nf_nat, Live 0xf040e000 nf_conntrack 55892 7 ipt_MASQUERADE,nf_nat_ftp,iptable_nat,nf_nat,xt_state,nf_co nntrack_ftp,nf_conntrack_ipv4, Live 0xf046c000 iptable_filter 3456 1 - Live 0xf0031000 ip_tables 11024 3 iptable_mangle,iptable_nat,iptable_filter, Live 0xf0414000 x_tables 14084 6 ipt_REJECT,ipt_LOG,ipt_MASQUERADE,iptable_nat,xt_state,ip_table s, Live 0xf041f000 parport_pc 22548 0 - Live 0xf0418000 parport 31572 1 parport_pc, Live 0xf0376000 pcspkr 3200 0 - Live 0xf0057000 snd_intel8x0 26652 0 - Live 0xf0368000 snd_ac97_codec 90404 1 snd_intel8x0, Live 0xf0454000 ac97_bus 2560 1 snd_ac97_codec, Live 0xf0019000 snd_pcm 63108 2 snd_intel8x0,snd_ac97_codec, Live 0xf0424000 snd_timer 18440 1 snd_pcm, Live 0xf0370000

9.1.12 mounts
Muestra las particiones y lo puntos de montaje activos. root [ /proc ]# cat mounts rootfs / rootfs rw 0 0 none /sys sysfs rw,nosuid,nodev,noexec 0 0 none /proc proc rw,nosuid,nodev,noexec 0 0 udev /dev tmpfs rw,size=10240k,mode=755 0 0 /dev/hda1 / ext3 rw,errors=continue,data=ordered 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,gid=4,mode=620 0 0 tmpfs /dev/shm tmpfs rw 0 0 /dev/hda2 /root/distro ext3 rw,errors=continue,data=ordered 0 0

9.1.13 partitions
Muestra las particiones existentes root [ /proc ]# cat partitions major minor #blocks name 3 0 39082680 hda 3 1 19923592 hda1 3 2 17826480 hda2 22 0 39082680 hdc 22 1 10490413 hdc1 22 2 1060290 hdc2 120 60 8 : slabdata 1 1 0

9.1.14 stat
Muestra varias estadsticas acerca del sistema, tales como el nmero de fallos de pgina que han tenido lugar desde el arranque del sistema. root [ /proc ]# cat stat cpu 250 48 294 628400 384 6 2 0 0

cpu0 250 48 294 628400 384 6 2 0 0 intr 31558 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1311 259 0 0 0 29912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

9.1.15 swaps
Muestra las particones SWAP activas en el sistema. root [ /proc ]# cat swaps Filename Type Size Used Priority /dev/sda3

partition 506036 0 -1

9.2 Ajustes dentro de /proc


Muchos de los archivos virtuales que residen dentro de /proc tienen un modo de lectura y escritura, archivos residentes en /proc/sys/net/ipv4 se pueden modificar de forma muy dinmica, la mayora de los archivos contienen slo nmeros, muchos de ellos valores booleanos que si son modificados cambian el comportamiento del sistema, para ver los cambios que es posible realizar consulte la documentacin del Kernel en cuestin.

Ejemplo: root [ /proc ]# echo 1 >/proc/sys/net/ipv4/ip_forward La instruccin anterior habilit (1 activado), el reenvio de paquetes, esto resulta til si nuestro sistema se utilizar como un router.

Nota Los cambios realizados en /proc, no persistirn a un reinicio, para ello debe guardarlos en el archivo /etc/sysctl.conf

9.3 Uso del comando sysctl


Como se ha mencionado el sistema de archivos /proc es virtual y por consecuencia los cambios aplicados a este no seguirn vigentes despus de haber aplicado un reinicio al sistema. la herramienta sysctl, permite hacer que los cambios en el sistema de archivos /proc. Sysctl cuenta con un archivo de configuracin en /etc/sysctl.conf, que es donde se almacenan los parmetros que el sistema modificar en /proc al iniciarse. Se recomienda revisar las entradas del archivo /etc/sysctl.conf, y la documentacin del Kernel. Archivo de configuracin de sysctl en Beakos root [ /proc ]# cat /etc/sysctl.conf #Controls IP packet forwarding net.ipv4.ip_forward = 0 # Controls source route verification net.ipv4.conf.default.rp_filter = 1 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename # Useful for debugging multi-threaded applications kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1

La sintaxis correspondiente al comando sysctl corresponde a: sysctl [opciones] variable=[valor]

Tabla 10-1. Opciones ms comunes para el comando sysctl. Opcin Descripcin -n No muestra el nombre de la variable, slo el valor. -e Ignora errores referentes a claves desconocidas. -w Se utiliza para cambiar la un ajuste de sysctl. -p Carga la configuracin que est escrita en el archivo de configuracin de sysctl. -a Presenta todos los valores disponibles que estn configurados.

La variable es utilizada para fijar el valor fijar un valor. Ejemplos: root [ ~ ]# sysctl kernel.core_uses_pid=0 kernel.core_uses_pid = 0 root [ ~ ]# sysctl net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1

Captulo 10 Gestion de paquetes


11.1 Instalacin y desinstalacin de paquetes
Beakos GNU/Linux implementa la administracin de paquetes en formato .tgzque no es ms que un archivo tar comprimido con GZIP, aunque soporta otros formatos como RPM de Red Hat y Pacman de Arch Linux de forma complementaria. Un paquete de software es un conjunto de archivos que mantienen una relacin entre si y que han sido compilados para poder funcionar luego de que se instalen en el sistema, esto representa la ventaja de que no es necesario compilar el software desde el cdigo fuente para utilizarse, esto ya se ha hecho con anticipacin.

10.1.1 Comando installpkg


El comando installpkg permite instalar paquetes (.tgz) de forma directa, es importante mencionar que esta aplicacin no resuelve dependencias, por lo que es un poco difcil saber si el paquete que instalemos requerir de algn otro, la lista de paquetes instalados se almacena en la ruta /var/log/packages, su sintaxis es la siguiente: installpkg <paquete_con_extensin_.tgz> Ejemplo: root [ ~ ]# installpkg iproute2-2.6.26-i386-1.tgz +------------------------------------------------------------------------------+ | Installing package iproute2-2.6.26-i386-1.tgz... | +------------------------------------------------------------------------------+ Executing install script for iproute2-2.6.26-i386-1.tgz... PACKAGE DESCRIPTION: Programas bsicos y avanzados para ipv4

10.1.2 Comando removepkg


Este comando nos permite desinstalar un paquete previamente instalado su sintaxis es la siguiente: removepkg <nombre_paquete_sin_extension>

Ejemplo: root [ ~ ]# removepkg iproute2-2.6.26-i386-1 Removing package iproute2-2.6.26-i386-1... Removing files: --> Deleting ./etc/iproute2/ematch_map --> Deleting ./etc/iproute2/rt_dsfield --> Deleting ./etc/iproute2/rt_protos --> Deleting ./etc/iproute2/rt_realms --> Deleting ./etc/iproute2/rt_scopes --> Deleting ./etc/iproute2/rt_tables Salida truncada

Es importante notar que para la desinstalacin de un paquete no es necesario poner su extensin .tgz, la lista de paquetes instalados se obtiene del archivo /var/log/packages.

10.2 Administracin de paquetes con SWARET


Swaret es un administrador de paquetes creado inicialmente para la distribucin de GNU/Linux Slackware que ha sido adaptado para funcionar con Beakos, esta herramienta facilita la instalacin de paquetes porque nos permite comprobar las dependencias de los paquetes e instala las faltantes. Swaret permite la interaccin con repositorios de software bajo los protocolos http, ftp, rsync, sistemas de ficheros locales y NFS.

10.2.1 Archivo de configuracin swaret.conf


El archivo de configuracin de Swaret se ubica en /etc/swaret.conf, analicemos las opciones ms importantes de este fichero. VERSION=1.06.001 Indica la versin de Beakos correspondiente al repositorio de software.

LANGUAGE=ESPANOL Define el lenguaje con el cual se mostrarn los mensajes de error y los mensajes de estado de la aplicacin.

ROOT=http://www.beakos.com.mx/paquetes/beakos-1.05.001 Permite indicar el repositorio de software donde estn almacenados los paquetes.

REPOS_ROOT=BEAKOS_PACKAGES%http://www.beakos.com.mx/paquetes/bea kos-1.06.001 Define el nombre del repositorio del cual vamos a hacer uso, estas opciones estn previamente configuradas, no es recomendable modificarlas, ni agregar repositorios de software que no correspondan a la distribucin de Beakos GNU/Linux.

DEP_ROOT=http://www.beakos.com.mx/paquetes/beakos-1.06.001 Especifica la ruta donde se encuentra el archivo con la lista de dependencias.

RANDOMR=0 Permite elegir de manera aleatoria entre varios repositorios de software. por defecto est deshabilitada (0).

EXCLUDE=MANIFEST.bz2$ Este parmetro permite excluir nombres de paquetes disponibles en los repositorios que no deseamos instalar ni actualizar.

DEPENDENCY=1 Permite activar o desactivar el soporte de dependencias, por defecto se encuentra activado.

DSEARCHLIB=1 Realizar un bsqueda de libreras faltantes por todo el sistema.

MD5CHECK=1 Comprueba la integridad de los paquetes.

DESC=0

Muestra una descripcin de los paquetes mientras se instalan o actualizan.

CACHE_DIR=/var/swaret Ruta donde se almacenarn los paquetes que se descarguen de los repositorios.

10.2.2 Opciones del comando swaret


El comando swaret permite instalar, actualizar, borrar y consultar si un paquete est instalado o no. Su sintaxis se describe a continuacin. swaret [opciones] [nombre del paquete] [opcin adicional] Tabla 11-1. Opciones para el comando swaret (sin nombre del paquete). Opcin Descripcin --update Actualiza la lista de archivos disponibles. --purge Borra los archivos descargados repositorio. Recomendable antes de actualizar. --list Muestra una lista de paquetes disponibles instalados y no instalados. --changelog Muestra el archivo de registro de cambios. --log Muestra los registros generados en la bitcora. --config Muestra el archivo de configuracin de swaret. --help Muestra las opciones disponibles para el comando. --morehelp Muestra las opciones disponibles para el comando de forma compleja. --version Muestra la versin de swaret actual.

Tabla 11-2. Opciones para el comando swaret (con nombre del paquete). Opcin Descripcin --install Instala un paquete. --reinstall Reinstala un paquete. --remove Desinstala un paquete. --get Obtiene un paquete y lo almacena en /var/swaret, pero no lo instala. --dep Comprueba dependencias de un determinado paquete. --search Busca si un paquete existe en el repositorio, si est instalado o no. --show Muestra la descripcin de un paquete. Ejemplos: Actualizar la lista de paquetes root [ ~ ]# swaret --update Instalar paquetes que coincidan con la palabra bash root [ ~ ]# swaret --install bash Instalar los paquetes relacionados con la interfaz grfica (-a) no solicita confirmacin.

root [ ~ ]# swaret --install xorg a

Reinstalar todos los paquetes existentes. root [ ~ ]# swaret --reinstall a Borra los paquetes almacenados en el cach. root [ ~ ]# swaret purge Remover los paquetes que coincidan con la palabra glib. root [ ~ ]# swaret --remove glib Instalar los paquetes para desarrollo. root [ ~ ]# swaret install developer -a

10.3 Compilacin de software desde el cdigo fuente


El equipo desarrollo de Beakos se esfuerza por ofrecer una mayor cantidad de software cada vez para la distribucin, sin embargo es probable que algn paquete que usted necesite no se encuentre dentro de los repositorios de software, la mayora del software requerido para implementar Beakos est disponible en los repositorios, es importante describir la forma de compilar e instalar software desde el cdigo fuente, compilar un programa permite elegir las opciones ms adecuadas para su compilacin, lo que no se puede hacer con un paquete ya construido y distribuido a travs de los repositorios. El software en cdigo fuente est disponible en un archivo tar, comprimido normalmente con GZIP o BZIP2. Para poder construir el software desde el cdigo fuente es necesario contar con el compilador GCC, los encabezados del Kernel (Linux headers) y la utilidad make. Podemos instalarlos a travs de los repositorios. Dependiendo del software a compilar, este puede requerir paquetes adicionales que quiz ya se encuentren dentro de los repositorios listos para instalarse. root [ ~ ]# swaret --install gcc root [ ~ ]# swaret --install linux-headers root [ ~ ]# swaret install make Procedemos para fines didcticos a compilar el editor de textos nano. El primer paso es obtener una copia del cdigo fuente del software que vamos a compilar. root [ ~ ]# wget http://www.nano-editor.org/dist/v2.2/nano2.2.5.tar.gz

Una vez que hemos descargado una copia del software procedemos a descomprimirla. root [ ~ ]# tar -xf nano-2.2.5.tar.gz Terminado el paso anterior, nos cambiamos a la carpeta que se genero tras la descompresin y revisamos el contenido. root [ ~ ]# cd nano-2.2.5 ; ls Es importante observar si dentro de los documentos se encuentra alguno que nos brinde informacin especial sobre la instalacin del programa (poner especial atencin a los archivos INSTALL y README o similares). El siguiente paso consiste en la configuracin del paquete, la mayora del software GNU provee un script llamado configure, este script permite establecer la ruta donde se instalarn los binarios, los archivos de configuracin, las bitcoras, el software contra el que se compilar entre otras opciones. Para ver las opciones del script configure ejecutamos: root [ ~/nano-2.2.5 ]# ./configure --help Nos mostrar una lista extensa de diversas opciones para compilar el software, una de las conocidas y ms empleadas es la opcin prefix, nos permite elegir la ruta donde se instalar el programa, por ejemplo: root [ ~/nano-2.2.5 ]# ./configure --prefix=/usr En esta accin entra en accin un archivo llamado makefile, estos archivos son la base de la compilacin si el script configure falla, no obtendremos un archivos de este tipo, el siguiente paso consiste en ejecutar el comando make. root [ ~/nano-2.2.5 ]# make El comando make busca todos los makefiles que se crearon con el comando configure y obtiene de ellos la informacin sobre los archivos que deben ser compilados y en qu orden, si la compilacin se lleva a cabo con xito (dependiendo de su hardware este proceso puede tardar algunos minutos) no observar mensajes de error, quiz algunos warnings se muestren en pantalla, la mayora de los errores que se presentan en esta fase, estn relacionados a la falta de algn archivo, permisos de usuario y algunos tambin se deben a la versin del compilador GCC que se est empleando. El paso final consiste en la instalacin del paquete, si no obtuvo un error en los pasos anteriores proceda a ejecutar el siguiente comando: root [ ~/nano-2.2.5 ]# make install Una vez terminado el proceso, es importante verificar que el software instalado se ejecuta adecuadamente.

10.3.1 Creacin de paquetes con la herramienta Checkinstall


Checkinstall es una herramienta que nos permite crear paquetes RPM, DEB y TGZ a partir del cdigo fuente de las aplicaciones. Empaquetaremos el editor nano compilado en el paso anterior para dar un ejemplo de su uso. Tecleamos el comando checkinstall: root [ ~/nano-2.2.5 ]# checkinstall El programa nos solicitar seleccionar el tipo de paquete que deseamos crear a partir del cdigo fuente de nano: Please choose the packaging method you want to use. Slackware [S], RPM [R] or Debian [D]? Beakos GNU/Linux utiliza por defecto el sistema de ficheros de Slackware tecleamos la tecla S. Nos mostrar la siguiente informacin, revisamos si es que deseamos modificar algn parmetro, si estamos conformes con la informacin que nos muestra tecleamos ENTER This package will be built according to these values: 1 2 3 4 5 6 7 8 9 Summary: [ Editor de textos de consola. ] Name: [ nano ] Version: [ 2.2.5 ] Release: [ 1 ] License: [ GPL ] Group: [ Applications/System ] Architecture: [ i386 ] Source location: [ nano-2.2.5 ] Alternate source location: [ ]

Enter a number to change any of them or press ENTER to continue:

El paquete se almacenar en la siguiente ruta con extensin tgz: /root/nano-2.2.5/nano-2.2.5-i386-1.tgz Este paquete se puede distribuir a otros usuarios sin necesidad de que lo vuelvan a compilar, slo se requiere instalar con el comando installpkg

Captulo 11 Sistema de logs


11.1 El demonio Syslogd
El Kernel cmo otros demonios y aplicaciones en sistemas GNU/Linux generan registros que se almacenan en archivos con el objetivo de llevar un control de los sucesos, detectar errores, mal funcionamiento o situaciones crticas. Estos registros son imprescindibles para cuando se presenta una falla, son de gran ayuda para detectar y corregir inconsistencias en el sistema.

Nota La mayora de los archivos log se generan en el directorio /var/log, aunque en la mayora de las aplicaciones se puede modificar este valor

Syslogd es un demonio que se encarga de recibir los registros del Kernel y de otros demonios del sistema, syslog viene con parmetros por defecto, pero se puede personalizar su funcionamiento a travs del archivo /etc/syslog.conf.

11.2 Configuracin del demonio syslogd


El archivo de configuracin de syslogd, contiene informacin necesaria para que el demonio puede ejecutarse y generar registros de ciertos servicios, por lo general la informacin contenida es suficiente para un buen funcionamiento, pero puede darse el caso de que se requiera configurar Syslog para que enve mensajes de registro hacia otros sistemas remotos y que estos pueda recibirlos y almacenarlos. Tabla 11-1. Parmetros para configuracin de syslog.conf Opcin Descripcin auth Mensajes de autenticacin de usuarios. cron Mensajes generados por el demonio cron. daemon Mensajes de demonios y servicios. kern Mensajes del ncleo de Linux. Lpr Mensajes del sistema de impresin. Mail Mensajes del sistema de correos. syslog Mensajes relacionados al propio syslog. User Mensajes relacionados a programas de usuarios. emerg Situacin de emergencia. alert Mensajes considerados importantes. crit Mensajes crticos. err Mensajes de error. warning Situacin potencialmente peligrosa. notice Informes trascendentes pero no peligrosos. info Informacin diversa debug Informe de correccin de errores.

Las opciones por defecto que contiene el archivo de configuracin syslogd son las siguientes: auth,authpriv.* -/var/log/auth.log *.*;auth,authpriv.none -/var/log/sys.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log mail.* -/var/log/mail.log user.* -/var/log/user.log *.emerg * cron.* -/var/log/cron.log # End /etc/syslog.conf Como podemos observar el archivo de configuracin de syslogd la informacin se canaliza a diversos archivos. Informacin relacionada a la autenticacin se canaliza a /var/log/auth.log y /var/log/sys.log Informacin relacionadas con /var/log/daemon.log otros demonios del sistema se registra en

Mensajes generados por la actividad del Kernel se registran en /var/log/kern.log Mensajes relacionados al correo electrnico se registran en /var/log/mail.log Mensajes relacionados a aplicaciones ejecutadas por usuarios del sistema se almacenan en /var/log/user.log Registros generados por /var/log/cron.log el sistema de tareas planificadas se almacenan en

11.3 Enviar registros a otro sistema remoto


Syslog nos permite centralizar los logs y enviarlos a un sistema remoto, esto resulta til porque en caso de presentarse una falla que no nos permita revisar el sistema local, podemos revisar los resgitros en el sistema remoto. Supongamos que deseamos enviar los logs relacionados a los demonios del sistema de un equipo cuya direccin IP es la 192.168.0.128 a un equipo que tiene la direccin 192.168.0.132. Debemos configurar el archivo de configuracin del /etc/syslog.conf del primer equipo agregando la siguiente lnea. daemon.* @192.168.0.132 El smbolo @, nos indica los registros se enviarn a un servidor remoto.

Procedemos con el reinicio del servicio. root [ ~ ]# /etc/init.d/sysklogd restart Deteniendo demonio de logs del kernel... Deteniendo demonio de logs del sistema... Iniciando demonio de logs del sistema... Iniciando demonio de logs del kernel...

[ [ [ [

OK OK OK OK

] ] ] ]

Ahora bien Beakos GNU/Linux est configurado para slo recibir logs del propio sistema, en el sistema que recibir los logs (192.168.0.132), debemos modificar el script de arranque ubicado en /etc/init.d/sysklogd agragndole la opcin r al demonio syslogd. Cambiar la lnea (21) loadproc syslogd -m 0 Por loadproc syslogd -r -m 0 Reiniciar el servicio para aplicar el cambio root [ ~ ]# /etc/init.d/sysklogd restart Deteniendo demonio de logs del kernel... Deteniendo demonio de logs del sistema... Iniciando demonio de logs del sistema... Iniciando demonio de logs del kernel...

[ [ [ [

OK OK OK OK

] ] ] ]

Los cambios deben verse reflejados en los logs generados por el Kernel, donde se puede observar la direccin IP de donde provienen los registros. root [ /var/log ]# tail -f /var/log/kern.log Sep 23 08:24:31 192.168.0.129 kernel: Kernel logging stopped. Sep 23 08:24:31 192.168.0.129 kernel: Kernel log terminating.

(proc) daemon

Captulo 12 Servicios sobre demanda


12.1 Extended Internet Daemon
Xinetd (eXtended InterNET Daemon) es un servicio muy difundido en ambientes UNIX, reemplazo de inetd, los sistemas Linux y UNIX como Beakos pueden funcionar perfectamente sin este servicio, pero en ocasiones es viable utilizarlo para optimizar los recursos. Xinetd, es un demonio (programas que se ejecutan en segundo plano, una vez iniciados se liberan de la terminal) que funciona como un administrador de servicios relacionados con el servidor como FTP, TFTP, Samba SWAT, HTTP, TELNET, etc. No todos los servicios del sistema se utilizan con tanta frecuencia, en lugar de mantener muchos demonios en ejecucin esperando responder solicitudes; Xinetd se encarga de escuchar esas peticiones y levantar los servicios correspondientes, esto es til para servicios como Telnet o algn sistema de respaldo, no as para servicios como HTTPD, que necesitan estar escuchando peticiones constantemente. En resumen, Xinetd recibe la peticin y levanta el demonio correspondiente, una vez terminada la peticin desactiva el servicio con el objetivo de optimizar recursos del sistema.

12.2 Instalacin del Demonio Xinetd


Beakos proporciona en su repositorio de paquetes el demonio Xinetd, para instalarlo simplemente teclee. root [ ~ ]# swaret update root [ ~ ]# swaret --install xinetd Swaret instalar el demonio, por defecto Xinetd est configurado para iniciar con el sistema, podemos corroborarlo tecleando el siguiente comando: root [ ~ ]# chkconfig --list xinetd xinetd 0:off 1:off 2:on 3:on

4:on

5:on

6:off

Xinetd se habilita en los niveles de ejecucin 2,3,4 y 5, para iniciar el servicio de forma manual tecleamos: root [ ~/servers ]# /etc/init.d/xinetd start

12.3 Configuracin del demonio Xinetd


Xinetd consta de un archivo de configuracin ubicado en /etc/xinetd.conf, donde slo se encuentra la configuracin por default, si deseamos agregar ms servicios debemos crear un archivo con el nombre del servicio dentro del directorio /etc/xinexd.d/ el formato que debe tener un archivo de configuracin es el siguiente:

bloque { variable = valor } Cada bloque puede contener mltiples variables definidas dentro de l, el bloque llamado defaults en el archivo de configuracin principal hereda esos parmetros a los dems bloques definidos en el directorio /etc/xinetd.d

12.3.1 Variables para servicios de Xinetd


Para definir un bloque de servicio no se requiere declarar todas las variables, solo son requeridas las siguientes: socket_type user server wait

Tabla 12-1. Variables para servicios Xinetd Variable Descripcin id Especifica un nombre para el servicio, con el objetivo de no duplicarse, de modo predeterminado el id, es el mismo que el nombre del servicio. type Se puede especificar los siguientes valores RPC si se trata de un servicio RPC, INTERNAL si es un servicio provisto por xinetd, o bien UNLISTED si no es un servicio enlistado en el fichero /etc/services. socket_type Los valores vlidos son los siguientes: stream: servicio basado en flujo de datos. dgram: servicio basado en datagramas. raw: datagramas IP en bruto. protocol Determina si es protocolo UDP o TCP. wait Correspondes dos valores: yes: procesa un conexin por vez. no: permite mltiples conexiones si el demonio en cuestin tambin lo permite. disable Valores: yes: habilita el servicio para ser utilizado. no: servicio no disponible para ser usado. user Nombre del usuario con el que se ejecutar el demonio. group Nombre del grupo con el que se ejecutar el demonio. instances Nmero mximo de conexiones simultneas permitidas. log_type Determina como se generaran las bitcoras de registro. Se dispone de dos opciones: SYSLOG: establecido por defecto, xinetd enviar los archivos log al demonio syslogd. FILE: enviar los registros de los logs a un archivo especificado. Ejemplo: FILE /var/log/bitacora server El nombre del programa a ejecutar cuando se solicita este servicio. server_args Argumentos adicionales al comando a ejecutar. only_from Especifica las redes o los hosts desde los cuales se puede solicitar una conexin.

no_access cps

interface port

Lo contrario de only_from, especifica las redes o hosts desde los cuales no se puede establecer conexin. Especifica el nmero de conexiones mximas por segundo para el servicio, si se excede de este parmetro el servicio se deshabilitar los segundo declarados en el segundo parmetro. Ejemplo: cps = 10 20 Especifica por cual interface responder el servicio. Especifica el puerto por el cual escuchar el servicio, debe estar declarado en el archivo /etc/services.

12.3.2 Ejemplos de servicios a travs de Xinetd


service ftp { disable socket_type wait user server server_args instances log_on_success log_on_failure access_times nice } service echo { disable type id socket_type protocol user wait } = yes = stream = no = root = /usr/sbin/in.ftpd = -l = 4 += DURATION USERID += USERID = 2:00-8:59 12:00-23:59 = 10

= = = = = = =

yes INTERNAL echo-stream stream tcp root no

Una vez creados los bloques dentro del directorio /etc/xinetd.d, slo basta reiniciar el servicio de xinetd. root [ ~ ]# /etc/init.d/xinetd restart

Captulo 13 Open SSH


OpenSSH es una versin libre de las herramientas de conexin SSH en la que los usuarios de Internet confan por su algoritmo de seguridad implementado. Los usuarios de telnet, rlogin, y ftp no se dan cuenta de que su informacin se transmite a travs de Internet sin cifrar. OpenSSH cifra todo el trfico (incluyendo de contraseas) para neutralizar efectivamente programas sniffer, secuestro de conexiones y otros ataques. Adems, OpenSSH ofrece creacin segura de tneles y varios mtodos de autenticacin, y soporta todas las versiones del protocolo SSH. Fue creado como una alternativa libre y abierta al programa Secure Shell, que es software propietario. El proyecto est liderado por Theo de Raadt, residente en Calgary. Su seguridad se debe a la buena reputacin que han ganado de sus desarrolladores (OpenBSD) con cdigo limpio y perfectamente auditado, otro factor es el hecho de que su cdigo fuente se distribuya libremente con una licencia BSD.

13.1 Ventajas de SSH


Permite a los usuarios conectarse a un servidor remoto tal como lo estaran haciendo con Telnet, rlogin, FTP, etc.; excepto que la sesin esta 100% encriptada, si se llegan a capturar los paquetes, debido a que estos viajan con una encriptacin robusta de 128 bits los hace extremadamente difcil de leer y escribir. Esta es la ventaja principal que presenta Secure Shell (SSH), esto ocasiona tambin se pueden ejecutar aplicaciones grficas de forma segura. Ya que este protocolo recibe y enva informacin cifrada se puede utilizar para asegurar protocolos inseguros mediante el reenvo por puerto por ejemplo POP con lo que se incrementa la integridad de los datos.

13.2 Versiones de SSH


Existen actualmente dos versiones de SSH, SSH1 y SSH2. La primera versin (SSH1) propuesta en 1995 hace uso de diferentes algoritmos de encriptacin, debido a que estos algoritmos son de patentes expiradas es vulnerable a un hueco de seguridad, lo cual permite a intrusos insertar paquetes en la transmisin de informacin, en cambio la versin 2 (SSH2) propuesta en 1997 utiliza un algoritmo de intercambio de llaves dicho algoritmo es la solucin al hueco que presenta la primera versin. Sin embargo dicha versin an se mantiene vigente por cuestiones de compatibilidad, aunque siempre se debe considerar usar SSH2.

13.3 Configuracin del servidor SSH


El servidor SSH maneja un archivo de configuracin, el directorio donde se encuentra alojado es: /etc/ssh, aqu encontraremos algunos archivos de configuracin: sshd_config: Archivo de configuracin del servidor. ssh_config: Archivo de configuracin del cliente. ssh_host_RSA/DSA_key.- Clave privada de la mquina. ssh_host_RSA/DSA_key:pub.- Clave pblica de la mquina.

A continuacin se describen los parmetros del archivo sshd_config: Port.- Especfica el nmero de puerto que va a ser utilizado por el servidor. Comnmente suele definirse el puerto 22, sin embargo puede elegirse cualquier otro entre el 1025 y el 65535. Sintaxis:
Port [N que se va a definir]

ListenAddress.- Por defecto SSH responde a peticiones a travs de todas las interfaces del sistema. Sin embargo, esta opcin puede ser modificada para que se pueda acceder nicamente por la red local a travs de una sola interfaz. Sintaxis:
ListenAddress [direccin IP]

PermitRootLogin Este parmetro especifica si se va a permitir el acceso al servidor SSH mediante el usuario root. Sintaxis:
PermitRootLogin [yes/no]

AllowUsers Permite el acceso a los usuarios que se encuentren definidos en este parmetro y restringe a todos a que ellos que queden excluidos. Sintaxis:
AllowUsers [usuario1] [usuario2]

Adicionalmente AllowUsers tambin permite el acceso a determinados usuarios desde determinada direccin IP. Sintaxis:
AllowUsers [usuario1@10.1.1.1] [usuario2@10.1.1.2] [usuario3@10.2.2.2]...

13.4 Administracin del servidor SSH a travs de Webmin


Una vez instalado OpenSSH es necesario verificar algunas configuraciones previas para que el servidor pueda ser administrado desde webmin: Que el servidor se inicie al arrancar el sistema. Que este permitido el acceso a cualquier usuario.

Generalmente estos parmetros ya vienen definidos por default en la instalacin. El mdulo de Webmin que se encarga de administrar tanto al servidor como al cliente ssh se llama SSH Server y se puede descargar del sitio oficial de Webmin en la categora de servidores.

Como ya se ha visto en otro subtema OpenSSH manejan dos archivos (scripts) para configurar tanto al cliente (ssh) como al servidor (sshd), ssh_config y sshd_config respectivamente ubicados en /etc/ssh, estos archivos son utilizados de igual manera por webmin para la efectuar las configuraciones que el Administrador defina en la aplicacin. La pgina principal del mdulo ssh muestra seis conos: Autenticacin Redes Control de Acceso Opciones Diversas Opciones del Host Cliente Administracin de las llaves de usuario SSH Cada uno de ellos enlaza a un formulario para editar cada una de las opciones. Restringir el acceso al servidor Seleccionar la opcin control de acceso: Para bloquear a todos los usuarios excepto algunos, ingresar una lista con los usuarios permitidos separados por un espacio dentro del nico campo que se encuentra activo. Tambin se pueden especificar algunos tipos de usuario en particular por ejemplo: an* Permite el acceso a cualquier usuario que comience con an. Otra forma puede ser permitir el acceso a usuarios de determinado grupo, habilitando las opciones Denegar usuarios denegar miembros de grupos. Para guardar los cambios realizados damos click en el botn Guardar y Aplicar cambios. Configuracin de la red Seleccionamos la opcin de Red en la pgina principal del mdulo: Por defecto el servidor ssh acepta todas las peticiones de conexin, para cambiar esta opcin se debe seleccionar el botn Escuchar en y en el campo de direccin introducimos las direcciones IP permitidas as como los puertos. Para cambiar el puerto por el que el servidor ssh escucha editar el campo Escuchar en el puerto. En la opcin Aceptar Protocolos seleccionamos las casillas de la versin del protocolo SSH debe aceptar (SSH1 y SSH2). Para que el servidor ssh desconecte automticamente a los host clientes que se hayan apagado o que no haya cerrado la sesin adecuadamente, existe la opcin Desconectar si el cliente se ha roto la cual podemos marcar con la opciones S y No. Para configurar el tiempo de espera que el servidor da a los host clientes para autenticarse despus de que se hayan conectado modificar el parmetro Tiempo de espera en el campo inicio de sesin.

Una de las opciones de SSH es que permite el reenvo de puerto, el cual permite a los host clientes acceso a los puertos del servidor que normalmente tendran bloqueados, esto puede ocasionar una vulnerabilidad al momento de un ataque, para deshabilitar esta opcin modificamos el campo Permitir el reenvo TCP seleccionando No. Para que el servidor busque los nombres de host por su direccin de cliente y bloque todas aquellas que no coincidan seleccionamos la opcin S en validar-reverso de las direcciones IP de los clientes?. Esta opcin viene incluida a partir de la versin 2.3 de OpenSSH.

Siempre que hagamos alguna modificacin en la configuracin del servidor debemos guardar los cambios dando click en el botn Guardar y Aplciar. Configuracin de la autenticacin Seleccionamos la opcin de autenticacin en la pgina principal del mdulo: Para informar a los usuarios si tienen correo nuevo cuando inicien sesin seleccionar la opcin S en el campo Notificar al usuario de correo Nuevo. Para especificar si los usuarios acceden con o sin contrasea modificamos el campo Permitir la autenticacin por contrasea? Para denegar que los usuarios se autentiquen como root modificar la opcin Permitir inicio de sesin de root con el parmetro No. Para evitar que los usuarios utilicen certificados para autenticarse, modificar la opcin Permitir la autenticacin RSA? con el parmetro No. Configuracin de SSH para los nuevos usuarios Seleccionamos la opcin Configuracin de claves de usuario SSH en la pgina principal del mdulo: Marcar la casilla de Clave de configuracin de SSH para nuevos usuarios Unix esto permitir que ssh-keygen se aplique para todas las cuentas nuevas. Para que la clave pblica del usuario nuevo se agregue a la lista de claves que estn autorizados para utilizar su cuenta, marcar la opcin Copiar nuevo identify.pub a las claves autorizadas .

13.5 Cliente SSH


SSH se basa en la arquitectura cliente-servidor donde el flujo de datos se divide en procesos independientes que interactan para el intercambio de informacin servicios o recursos, es decir, las transacciones se reparten entre un host cliente y otro host servidor, este tipo de arquitectura ha servido de modelo para el desarrollo de mltiples sistemas. Se le denomina cliente al host que inicia sesin en un host remoto posteriormente realiza solicitudes para determinados servicios y el host servidor es el encargado de atender dichas solicitudes. A continuacin se mencionan algunas funciones del cliente: Manejo de la interfaz de usuario. Validacin de los datos de entrada. El intercambio de informacin es independiente de las caractersticas fsicas de los equipos y del entorno de sistema operativo. Consultas sobre Bases de Datos

13.5.1 Comando ssh


El comando ssh reemplaza a los comandos rlogin, rsh y telnet. Permite iniciar sesiones y ejecutar comandos en mquinas remotas. La sintaxis general es la siguiente: ssh <usuario>@<hostname> Otra forma tambin puede ser:

ssh l <usuario><hostname> Cuando se ejecuta por primera vez este comando aparece el siguiente mensaje:
The authenticity of host 'mail.Beakos.com.mx' can't be established. DSA key fingerprint 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c. Are you sure you want to continue connecting (yes/no)? is

Despus de escribir yes se aadir el servidor en su lista de hosts conocidos: ~/.ssh/known_hosts/ . En seguida aparecer un intrprete de comandos donde debe ingresar la contrasea del usuario con el que se desea conectar una vez ingresada la contrasea correcta aparecer el intrprete de comandos del host remoto. Otra opcin que tiene el comando ssh es: ssh <usuario>@<hostname> ls <path>

Este comando permite ejecutar instrucciones en un host remoto sin acceder al mismo, es decir, a su intrprete de comandos. Para conocer las dems opciones que tiene este comando se puede consultar el manual de ayuda escribiendo en el intrprete de comandos: man ssh

13.5.2 Comando scp


El comando scp permite copiar ficheros entre dos mquinas, debido a que utiliza ssh para la transmisin de informacin ofrece una seguridad robusta; es similar al comando rcp. A continuacin se muestra la sintaxis general para copiar archivos desde una mquina local a una mquina remota: scp <archivo-local> usuario@hostname:<archivo-remoto> <archivo-local> define la ruta origen del archivo a copiar, ej. /etc/hosts.allow. <archivo-remot> define la ruta destino donde se va a copiar el archivo, ej. /home/usuario/hosts.allow

Para copiar un archivo de un host remoto a un host local: scp usuario@hostname:<archivo-remoto><archivo-local> <archivo-remoto> define la ruta origen del archivo a copiar. <archivo-local> define la ruta destino donde se va a copiar el archivo. Para copiar archivos entre dos mquinas remotas:

scp usuario@hostname:<archivo-remoto-origen> \ usuario@hostname:<archivo-remoto-destino>

13.5.3 Comando sftp


El comando sftp es una utilidad que permite iniciar sesiones de forma interactiva similar a ftp pero con la seguridad de conexin por ssh. La sintaxis es la que a continuacin se muestra: sftp <nombre-usuario@hostname> sftp> get <fichero>

Tabla 8-1. Comandos ms comunes para en una sesin sftp. Comando Descripcin cd [path] Cambia el directorio remoto a la ruta especificada. lcd [path] Cambia el directorio local a la ruta especificada (path). get remote-path [local-path] Descarga el archivo. lmkdir [path] mkdir [path] Put local-path [remote-path] help pwd rename [oldpath] [newpath] rmdir [path] rm [path] Crea un directorio en el host local. Crea un directorio en el host remoto. Carga un archivo en el host remoto. Por lo regular suele usarse para subir archivos al servidor sftp. Despliega ayuda en modo texto. Despliega el directorio de trabajo en el host remoto Renombre un archivo del host remoto. Elimina un directorio del host remoto. Elimina un archivo del host remoto.

13.5.4 Clientes con interfaz grafica para SSH


Los clientes SSH con interfaz grfica son de gran ayuda para aquellos usuarios que no estn familiarizados con un entorno en modo comando y que requieren una forma de navegacin ms grfica por el sistema de archivos con ayuda del puntero. Existen diferentes clientes SSH con estas caractersticas.

Tabla 8-2. Clientes para sesiones SFTP. Entorno de SO Cliente SSH (grfico) Sito Oficial

Konqueror.Este http://www.konqueror.org navegador permite conexiones mediante ssh, tecleando en la barra de direcciones lo siguiente: sftp://username@host

GNU/LINUX

Nautilus.- Navegador que http://live.gnome.org/Nautilus ofrece conexiones grficas por ssh tecleando en la barra de direcciones: ssh://username@host KNetAttach.Esta http://docs.kde.org/stable/es/kdebaseaplicacin permite runtime/knetattach/index.html conexiones SSH grficas, integra diversas carpetas de red con el entorno KDE. Sujeta a los trminos de la Licencia Pblica General GNU. WinSCP.- Es una aplicacin http://winscp.net/eng/docs/lang:es de Software Libre. Facilita la transferencia segura de archivos entre dos sistemas local-remoto soporta la autenticacin por medio de SSH, soporta conexiones por SSH1 y SSH2.

WINDOWS

Captulo 14 Servicios de impresion


14.1 Sistema de impresin cups
Es el sistema de impresin basado en estndares de cdigo abierto desarrollado por Easy Software Products para brindar una solucin de impresin estndar a todas las empresas que ofrecieran soluciones de Sistema Operativo basadas en UNIX, as como para usuarios, adems de que provee las interfaces de lnea de comando de System V y Berkerley.

14.1.1 Caractersticas
CUPS utiliza como base el protocolo IPP pero tambin cuenta con el soporte para otros protocolos como Line Printer Daemon (LPD), Server Message Block (SMB) y AppSocket, sin embargo, la funcionalidad de estos protocolos est un tanto reducida. CUPS cuenta con una imagen del archivo RIP que soporta impresin de archivos de imagen en impresoras nonPostScript. Existen varias interfaces de usuario destinadas a diferentes plataformas para la configuracin de CUPS, tambin cuenta con una aplicacin web desde la cual poder administrar todos los recursos. A continuacin se describen las principales caractersticas de CUPS: CUPS utiliza el protocolo de impresin de Internet (IPP) por default para administrar las colas impresin entre otras tareas. Proporciona bsquedas de impresoras y algunas opciones de impresin basadas en archivos de descripcin de impresora PostScript(PPD) Es un sistema de impresin estandarizado, adems de modular es capaz de admitir distintos formatos de datos que son enviados al servidor de impresin. Provee un mecanismo el cual permite que los formatos de impresin sean ledos por las impresoras de manera estndar. Facilita la creacin de nuevos controladores tanto a los desarrolladores como a los fabricantes para que dichos controladores puedan ser implantados en el servidor de impresin.

14.2 Funcionamiento
Cups est diseando bajo la arquitectura cliente/servidor, en la cual existe una impresora central que se encarga de atender los trabajos de impresin que se van solicitando, as como el procesamiento de comandos, tambin provee informacin sobre el estado de las impresoras mediante aplicaciones locales o remotas, adems de informes o notificaciones cuando el usuario lo requiera.

La arquitectura de CUPS se divide en tres partes principales:

Planificador

Filtros

Backends

14.3 Planificador
El planificador de CUPS (cupsd) es un servidor de HTTP (Hypertext Transfrer Protocol) e IPP (Internet Printing Protocol) que administra las peticiones a dichos protocolos, las impresoras, clases, trabajos de impresin, suscripciones y las notificaciones del sistema. El planificador utiliza una serie de interfaces web dinmicas basadas en CGI que pueden ser configuradas mediante scripts. El nmero mximo de conexiones de clientes y trabajos de impresin simultneos depende de las caractersticas del hardware del servidor de impresin, velocidad de procesador y de memoria RAM principalmente.

14.4 Instalacin de CUPS


Para la instalacin del demonio CUPS y los driver para impresoras del paquete Gutenprint tecleamos el siguiente comando: root [ ~ ]# swaret --install print Iniciar el demonio CUPS root [ ~ ]# /etc/init.d/cups start

Iniciar CUPS al arranque con el sistema root [ ~ ]# chkconfig --add cups root [ ~ ]# chkconfig --list cups 0:off 1:off 6:off

2:off

3:on

4:off

5:on

Por defecto el servidor CUPS iniciar en los niveles de ejecucin 3 y 5. El servidor utiliza el archivo de configuracin cupsd.conf ubicado en /etc/cups.

Algunas de las opciones del archivo de configuracin de CUPS ms importantes son: Browsing Establece si es posible o no administrar las funciones de impresin en red por medio de la interfaz web, es decir, desde algn navegador de internet. BrowseProtocols Especfica que protocolos utilizar al momento de compartir impresoras a travs de la red local. BrowseInterval Especfica el tiempo lmite transcurrido entre las actualizaciones de navegacin. BrowseAddress Especfica una direccin a la cual se enviar informacin de navegacin. Varias directivas de BrowseAddress pueden ser especificadas para enviar informacin a diferentes redes o sistemas. Limit (Location) Limit especifica los grupos de control de acceso y autenticacin determinados tipos de peticiones HTTP. para

ServerName La directiva de ServerName especifica el nombre del host anfitrin que ser notificado a los host clientes. Por defecto dicho nombre es hostname.

14.4.1 Archivos de Trabajo


Una de las tareas del planificador es la de almacenar los archivos en un directorio de impresin, usualmente en /var/spool/cups. Dentro del directorio spool se pueden encontrar dos tipos de archivos distintos: archivos de control los cuales inician con la letra c y los archivos de datos que comienzan con la letra d.

14.4.2 Archivos de registro


La ruta donde por lo regular se localizan estos archivos es /var/log/cups. El planificador cuenta con tres tipos de logs (archivos de registro) los cuales se describen a continuacin: El archivo acces_log.lista todas las peticiones HTTP e IPP que son procesadas por el planificador. El archivo error_log contiene los mensajes del planificador y aplicaciones de ayuda que son de utilidad para localizar problemas. El archivo page_log contiene el registro de las pginas que se van imprimiendo lo que permite llevar un conteo y mostrarlo al usuario cuando lo requiera. Los log de

registro son girados* por el planificador cuando es rebasado el lmite de almacenamiento que por defecto es de 1MB, si se establece que el tamao sea de 0 entonces no se realiza la rotacin de los archivos, esto a menudo es utilizado por los administradores de Linux para que ellos utilicen el logrotated.

14.5 Comandos Berkeley


CUPS provee algunos comandos de Berkeley para su administracin.

14.5.1 El comando LPC


El comando lpc permite un control limitado sobre la impresora y las colas de clase que proporciona CUPS. Tambin permite realizar consultas sobre el estado de las colas de impresin. Si no se especifica algn comando, lpc desplegar un prompt y aceptara comandos desde la entrada estndar. Sintaxis lpc [ comando [ parmetros ] ] Tabla 14-1. Opciones para el comando LPC Descripcin Nos muestra el estado de las impresoras. Nos muestra una lista de comandos disponibles. Cierra el programa lpc y nos regresa a la consola. Lo mismo que quit

Opcin status help quit exit

Ejemplo: root [ ~ ]# lpc lpc> help Commands may be abbreviated. Commands are: exit help quit status ?

14.5.2 El comando LPQ


Muestra el estado del trabajo a imprimir dentro de las colas de impresin, este comando es de utilidad para saber si la impresin se llevo a cabo o si permanece activa en la cola. Sintaxis: lpq [-E] [-U nombre_usuario] [-h servidor:[puerto]] [-P destino] [-a] [-l]

Opcin -E -P -U -a -h -I

Tabla 14-2. Opciones para el comando LPQ Descripcin Encripta las conexiones al servidor. Especifica una impresora. Especifica un nombre de usuario alterno. Seala los trabajos en todas las impresoras. Especifica un servidor alterno. Pide un formato de reportes ms extenso y detallado.

14.5.3 El comando LPR


La mayora de los documentos PostScript, as como documentos de texto puede imprimirse en forma directa utilizando el comando lpr. Este comando imprime los archivos o trabajos que son especificados con la sintaxis y opciones vlidas. Sintaxis lpr [-E] [-H servidor [:puerto]] [-U nombre_de_usuario] [-P destino] [-#copias ] Tabla 14-3. Opciones para el comando LPR Descripcin Nmero de impresiones, el valor puede ir de 1 hasta 1000. Establece el nombre del trabajo de impresin. Permite imprimir en la impresora seleccionada. Especifica un nombre de usuario alterno. Especifica que el archivo a imprimir se encuentra en un formato correcto para que no sea necesario filtrarlo. Enva un correo despus de que se ha completado la impresin. Especifica que archivo de la cola de impresin debe ir con un formato sombreado de fecha, hora, nombre del trabajo y nmero de pgina. Mantiene en espera el trabajo para imprimirse. Especifica los nombres de los archivos que deben ser eliminados despus de la impresin.

Opcin -#copias -T -P -U -I -m -p -q -r

14.5.4 El comando LPRM


Cancela los trabajos de impresin, es decir que lprm retira los trabajos de la cola de impresin. Sintaxis lprm [-E] [-U usuario] [-h servidor[:puerto]] [-P destino] [ID del trabajo]

Opcin -E -U -h -P

Tabla 14-4. Opciones para el comando LPRM Descripcin Forzar la encriptacin cuando hay una conexin al servidor. Especifica un nombre de usuario alterno. Especifica un servidor de impresin alterno. Especifica la impresora.

14.6 Comandos SYSTEM V


Adems de los comandos Berkeley CUPS tambin permite la utilizacin de los siguientes comandos de System V.

14.6.1 El comando LP
El comando lp permite imprimir un archivo. Sintaxis lp [archivo] [-P #paginas] [-n #copias] [-d impresora] Tabla 14-5. Opciones para el comando LP Opcin -d -n -P Ejemplo: root [ ~ ]# lp n 28 p impresora_color documento.txt Descripcin Especifica la impresora donde se enviarn los trabajos. Nmero de copias del trabajo de impresin, mximo 100 Determina el nmero de pginas a imprimir (1,5,80-100).

14.6.2 El comando LPADMIN


Configura las colas de las clases e impresoras proporcionadas por CUPS. Tambin se puede usar para poner la clase o impresora predeterminada del servidor. Cuando se usa la opcin -E antes de las opciones -d, -p, o -x, hace que se use encriptacin en la conexin con el servidor. Sintaxis lpadmin [ -E ] [ -h servidor ] -d impresora_destino lpadmin [-h servidor] -p impresora[-c clase] [-i interfaz] [-m modelo] [-r borrar_clase] [-v dispositivo] [-D descripcin] [-P archivo ppd] [-o name=valor] [-u allow:user] [-u deny:user]

Opcin -E -h -d -p

Tabla 14-6. Opciones para el comando LPADMIN Descripcin Encripta las conexiones al servidor. Especifica el servidor de impresin. Indica la impresora destino. indica la impresora a utilizar.

Tabla 14-7. Opciones para utilizar con lpadmin p [impresora] Opcin Descripcin -c Agrega la impresora especificada a la clase. Si la clase no existe se crea automticamente. -i Establece para la impresora un guin (script) de interfaz estilo SYSTEM V Esta opcin no puede ser especificada con la opcin P, y est pensada para dar soporte a controladores de impresora legados. -m Establece un guin (script) de interfaz estndar System V o archivo PPD desde el directorio modelo. -r Elimina la impresora especificada de la clase. -u allow:usuario Establece el control de acceso a nivel usuario. -D Proporciona una descripcin de la impresora. -L Proporciona una ubicacin de la impresora. -P Especifica un archivo de impresin de la impresora PostScript para usar con la impresora.

14.7 Comandos CUPS


CUPS proporciona los siguientes comandos para la administracin.

14.7.1 El comando CUPSADDSMB


cupsaddsmb exporta las impresoras de Samba para utilizarlas con clientes de Windows. Dependiendo de la configuracin de Samba se debe proporcionar una contrasea adems de la instalacin de un driver. Sintaxis cupsaddsmb [ -H servidor-samba ] [ -U usuario-samba [ %contrasea-samba ] ] [ -h servidor-cups [:puerto] ] [ -v ] printer [ impresora ] Tabla 14-8. Opciones para el comando CUPSADDSMB Descripcin Especifica el servidor SAMBA que se tomara por defecto en el servidor CUPS. Especifica el nombre de usuario del administrador de impresin. Exporta todas las impresoras. En caso contrario solo las impresoras nombradas son exportadas. Especifica un servidor CUPS diferente a usar. Especifica que se despliegue un informe ms detallado sobre la accin que se est ejecutando. Esto es de utilidad para identificar problemas de configuracin en el servidor SAMBA.

Opcin -H -U -a -h -v

14.7.2 El comando LPINFO


Lista los dispositivos o controladores disponibles conocidos dentro del servidor CUPS. La primera forma con m muestra los controladores disponibles y la segunda forma con v muestra los dispositivos disponibles. Sintaxis lpinfo [-E] [-U usuario] [-h servidor[:puerto]] [-l] [--id-dispositivo id-dispositivo-string] [--idioma_local] [--marca_y_modelo] [--nombre_producto] m

lpinfo [-E] [-U usuario] [-h servidor[:puerto]] [-l] v

14.8 Configuracin de impresoras


CUPS cuenta con una interfaz web desde el cual se pueden monitorizar las impresoras y trabajos, as como ejecutar tareas para la administracin del sistema. La interface web es soportada por cinco programas CGI. La siguiente tabla especifica cada uno de ellos: Tabla 14-9. Programas CGI de la interfaz web de CUPS

PROGRAMA
admin.cgi

UBICACIN
/admin

DESCRIPCIN
Proporciona todas las funciones administrativas, por ejemplo: Aadir impresora Editar archivo de configuracin Mostrar el archivo de registro de accesos Aadir clase Administrar clases Administrar trabajos Lista las clases y proporciona la funcin de bsqueda para la administracin de clases. Proporciona documentacin y ayuda en lnea. Enumera los trabajos y proporciona funcionalidades para la administracin, como son las bsquedas y mostrar resultados detallados de dichas bsquedas. Muestra un listado de las impresoras y proporciona funciones para la administracin, como son: Imprimir pginas de prueba Modificar las opciones de

classes.cgi

/classes

help.cgi

/help /jobs

jobs.cgi

printers.cgi

/printers

impresora Eliminar impresora Detener impresora Rechazar trabajos Establecer como predeterminada Modificar usuarios permitidos

14.8.1 Uso de la interfaz web


La interfaz web de CUPS es accesible a travs de un navegador por el puerto 631(localhost:631). La pgina de inicio contiene tres mens principales: CUPS para usuarios. Este apartado contiene documentacin tcnica acerca del sistema CUPS, contiene informacin de cmo imprimir desde la lnea de comandos, las novedades que presenta la versin instalada respecto a otras anteriores y el foro de usuarios donde se comparten problemas y soluciones relacionados al sistema de impresin. CUPS para administradores. Este apartado contiene informacin sobre como agregar impresoras y clases, polticas de funcionamiento, contabilidad bsica, autenticacin con Kerberos y el manual de referencia del archivo de configuracin de CUPS. Cups para desarrolladores. Este apartado contiene informacin sobre el desarrollo de CUPS y cmo modificar su cdigo fuente, adems de una liga al foro de desarrollo.

La pagina de administracin permite realizar las siguientes tareas: Impresoras Clases Aadir clases. Administrar clases. Agregar impresora. Encontrar nuevas impresoras. Administrar impresoras.

Trabajos Administrar trabajos.

Servidor Editar archivo de configuracin. Ver archivo de registro de accesos. Ver archivo de registro de errores. Ver archivo de registro de pginas.

Figura 14-1. Interfaz web para la administracin de CUPS.

14.8.2 Agregado de impresoras con la interfaz Web


CUPS permite agregar impresoras locales, las que estn directamente conectadas o remotas, las que se encuentran en la red (IPP). Para comunicarse con los dispositivos de impresin CUPS hace uso de URI Uniform Resource Information, el cual es un identificador que consiste en una secuencia de caracteres que permiten la identificacin uniforme de los recursos. A continuacin se muestran los dispositivos que se pueden configurar dependiendo del tipo de conexin que se tenga:

Conectados directamente.- Se encuentran conectados por puerto paralelo, puerto serial o puerto USB. Por lo que estos dispositivos se encuentran especificados de la siguiente manera: parallel:/dev/lp* Para impresoras conectadas al puerto paralelo. serial:/dev/ttyS* Para impresoras conectadas al puerto serial. usb:/dev/usb/lp* Para impresoras conectadas al puerto USB.

Conectados en red (IPP).- IPP o Internet Printing Protocol, gracias a este protocolo CUPS permite que se puedan utilizar impresoras a travs de internet o en una intranet. Dispositivos IPP en CUPS: LPD Line Printer Daemon, CUPS soporta conexiones de este tipo, permitiendo establecer una impresora compartida en red para que puedan ser utilizada por otros equipos que no cuenten con LPD. La sintaxis URI para dirigirse a una impresora LPD: lpd://nombreanfitrion/cola, donde nombreanfitrion es el nombre de la mquina.

SMB Service Message Block este protocolo es muy comn para compartir impresoras en redes Windows, CUPS permite a sus clientes el acceso a una impresora que se encuentre en un servidor SAMBA o SMB. La sintaxis URI para dirigirse a una impresora compartida por SMB: smb://nombreservidor/recursocompartido, donde recursocompartido es el nombre con el que se identifica la impresora que ha sido compartida.

Impresora compartida en red Son impresoras que por sus caractersticas tcnicas tienen la capacidad de conectarse a una red ya sea por Ethernet, inalmbrica, etc. La sintaxis URI para dirigirse a una impresora: socket://direccin_ip:puerto

A continuacin se describen los pasos para agregar una impresora imaginaria a travs de la interfaz Web de CUPS con las siguientes caractersticas: Nombre: impresora-1 Ubicacin: administracin Descripcin: Impresora imaginaria de pruebas Tipo de conexin: Socket Marca: HP Modelo: Laser Jet

Procedimiento 1. Ejecutar en el navegador de nuestro sistema la URL http://localhost:631, de los mens superiores seleccionar la opcin Administracin , le pedir introducir el nombre de usuario y contrasea, utilice la cuenta de root y su respectiva contrasea.

2. Despus de ingresar al sistema seleccionamos el vnculo Aadir impresora. 3. En el men Otras impresoras de red, seleccionamos la opcin Appsocket/HP JetDirect y damos click en el vnculo siguiente. 4. En el campo conexin escribimos socket://localhost y damos un click en el vnculo siguiente. 5. CUPS nos mostrar un formulario donde debemos introducir la informacin relacionada a la impresora (Nombre, Ubicacin, Descripcin, etc). 6. Dar click en el botn siguiente cuando termine de introducir los datos. 7. Seleccionamos la marca de la impresora (HP), y damos un click en siguiente. 8. Seleccionamos el modelo HP DeskJet Series y damos un click en siguiente. 9 Nos mostrar algunas opciones para la configuracin del papel, color, resolucin, etc. Podemos modificar las opciones a nuestras necesidades y damos un click en cambiar opciones prederminadas para finalizar con la configuracin. Al terminar debe mostrar la siguiente pantalla.

Figura 14-2. Descripcin de la impresora configurada por socket.

14.8.3 Agregar una impresora desde la lnea de comandos


Cmo es habitual en ambientes GNU/Linux las tareas que se pueden realizar a travs de la interfaz grfica o interfaz web, se pueden realizar a travs de la lnea de comandos, es importante aprender este mtodo, pues no siempre se dispone de una interfaz que nos ayude a realizar este tipo de tareas. Vamos a proceder a dar de alta una impresora imaginaria en el sistema CUPS de forma sencilla pero bien detallada, esta impresora tendr las mismas opciones de configuracin que el ejercicio anterior con excepcin del nombre, esta se llamar impresora-2.

Procedimiento 1. Abrir una terminal del sistema con el usuario root y enlistar las colas de impresin del sistema actualmente configuradas, para esto utilizamos el comando lpstat, escribir: root [ ~ ]# lpstat -a impresora-1 accepting requests since Tue Sep 28 06:24:03 2010 2. Con el comando lpadmin que analizamos en temas anteriores agregaremos una impresora imaginaria con los parmetros siguientes: root [ ~ ]# lpadmin -p "impresora-2" -E \ -v socket://192.168.0.132 -D "Impresora de prueba" \ -L "Administracion" 3. Utilizamos el comando lpstat para listar las impresoras configuradas. root [ ~ ]# lpstat -a impresora-1 accepting requests since Tue Sep 28 06:24:03 2010 impresora-2 accepting requests since Tue Sep 28 07:12:08 2010

4. Podemos tambin visualizar la impresora que acabamos de configurar a travs de la interfaz web.

Figura 14-3. Impresoras configuradas en nuestro sistema.

14.8.4 Configuracin de la impresora predeterminada


Si tenemos un sistema con mltiples impresoras configuradas, es adecuado establecer alguna de ellas como predeterminadas, para que los usuarios que no especifiquen explcitamente una impresora de las que estn configuradas. Por ejemplo para establecer la impresora-2

configurada en el tema anterior como impresora predeterminada utilizar el siguiente comando. root [ ~ ]# lpadmin -d impresora-2

14.8.5 Privilegios de impresin


Como hemos configurado nuestro sistema, cualquier usuario puede enviar a imprimir trabajos a cualquier impresora administrada por CUPS. En ambientes productivos quiz resulte til delimitar a ciertos usuarios a utilizar ciertas impresoras, esto puede suceder por polticas de la organizacin o simple seguridad. Por ejemplo si deseamos que el usuario francisco pueda imprimir en la impresora-1 tecleamos el siguiente comando: root [ ~ ]# lpadmin -p impresora-1 -u allow:francisco

Si deseamos denegar el acceso a la impresora-2 al usuario angel, tecleamos: root [ ~ ]# lpadmin -p impresora-2 -u deny:angel

Para quitar todas las restricciones y permitir que todos los a la impresora-1 tecleamos: root [ ~ ]# lpadmin -p impresora-1 -u allow:all

14.8.6 Eliminar impresoras


Para eliminar impresoras desde el intrprete de comandos tecleamos: root [ ~ ]# lpadmin -x impresora-2

Captulo 15 Network File System (NFS)


Network File System (NFS), es un protocolo a nivel de aplicacin que permite compartir archivos y directorios a travs de la red en ambientes UNIX y GNU/Linux e incluso Servidores Windows, si disponemos de una red con varios sistemas operativos basados en UNIX, NFS representa una buena opcin, podemos montar un directorio de un sistema remoto y trabajar en l como si estuviera en nuestro equipo.

Servidor NFS /media/datos

Cliente NFS servidor:/media/datos

Figura 15-1. Podemos observar como el servidor comparte un directorio con un host remoto y este lo monta como un directorio local.

15.1 Historia de NFS


NFS fue desarrollado en sus inicios por la empresa SUN Microsystems, la primera versin slo fue experimental. La versin 2 del protocolo se bas en UDP con mejoras significativas respecto a su antecesora. En 1995 sali a la luz la versin 3, implementada sobre el protocolo TCP en lugar de UDP. En el ao 2000 surgi NFS versin 4 que incluye como principales mejoras la seguridad con Kerberos, interaccin con cortafuegos y Listas de acceso (ACL). Es importante mencionar que NFS puede interactuar incluso con sistemas no basados en UNIX como Microsoft Windows, pero para ello existe una aplicacin ms adecuada como Samba que abordaremos en el siguiente captulo.

15.2 Instalacin de NFS


Beakos GNU/Linux en sus repositorios cuenta con soporte para la versin 4 de NFS a travs del paquete NFS Utils, que necesitamos tener instalado en nuestro sistema. Instalaremos el paquete ejecutando en la terminal los siguientes comandos: root [ ~ ]# swaret --update

root [ ~ ]# swaret --install nfs-utils Antes de iniciar el servicio de NFS debemos iniciar el servicio Portmap, Beakos ya tiene este servicio instalado y configurado para arrancar con el sistema, verificamos que este en ejecucin tecleando: root [ ~ ]# /etc/init.d/portmap status portmap is running with Process ID(s) 2103. Si el servicio Portmap est en ejecucin procedemos a iniciar el servicio NFS tecleando el siguiente comando: root [ ~ ]# /etc/init.d/nfs-server start Iniciando NFS mountd... Iniciando NFS nfsd... Iniciando NFS statd... Montando nfsd sistema de archivos virtuales... Exportando sistemas de archivos NFS... [ [ [ [ [ OK OK OK OK OK ] ] ] ] ]

Si deseamos habilitar el servicio de NFS para que arranque en automtico cuando inicia el sistema tecleamos: root [ ~ ]# chkconfig --add nfs-server root [ ~ ]# chkconfig -list nfs-server nfs-server 0:off 1:off 2:off 3:on

4:on

5:on

6:off

15.3 Acceso y montaje de las particiones


Explicaremos de forma breve el proceso que se lleva a cabo para acceder y montar una particin NFS: El cliente se conecta al servicio portmap para saber el puerto que est asignado al servicio de montajes NFS. El cliente solicita al servidor NFS el uso de una particin, el servidor verifica los permisos del cliente para accesar a la particin en el archivo /etc/exports, si el cliente tiene permiso se otorga el servicio de montaje. El cliente contacta de nuevo al servicio portmap para saber el puerto que tiene asignado el servidor NFS (2049 generalmente). Cuando el cliente solicita leer un directorio enva una seal RPC al servidor. Cuando finaliza el cliente actualiza su propia tabla de montajes pero no informa al servidor, aunque esto no es relevante ya que el servidor no lleva el control de los clientes conectados.

15.4 Configuracin del servidor NFS


Una vez que hemos verificado que el servidor NFS se encuentra funcionando podemos proceder a compartir particiones a otros equipos, el primer paso es crear el archivo

/etc/exports en este archivo se define que particiones se compartirn a una determinada red y los permisos que tendrn otros anfitriones de lectura y escritura.

15.4.1 El archivo de configuracin /etc/exports


Este archivo de configuracin es el principal para un servidor NFS, en el se declaran varias opciones para compartir particiones a otros hosts, su sintaxis es muy sencilla: directorio_a_exportar direccionIP_cliente(permisos) Ejemplo de una carpeta compartida con un cliente por NFS: root [ ~ ]# cat /etc/exports /opt/prueba 192.168.0.128(rw)

El archivo muestra el directorio /opt/prueba, compartido con el host con direccin IP 192.168.0.128, otorgndole permisos de lectura y escritura.

Tabla 15-1. Permisos posibles para un servidor NFS Opcin Descripcin secure Opcin configurada por defecto para indicar que el nmero de puerto por el cual el cliente solicita un montaje debe ser menor a 1024, si se desea desactivarlo especificar la opcin insecure. rw Permisos al cliente de lectura y escritura. ro Permisos al cliente de slo lectura. no_root_squash Permite que el usuario root del cliente, conserve los mismos privilegios que el usuario local en el servidor tendra normalmente. root_squash Lo contrario al anterior, evita que el usuario root del cliente NFS acceda con los mismos derechos que el usuario raz local. all_squash Asigna los UID y los GID de los archivos al usuario annimo.

15.4.2 Comando exportfs


La funcin del comando exportfs es volver a leer el contenido del archivo /etc/exportfs, las opciones a utilizar con el comando se describen en la siguiente tabla. Tabla 15-2. Opciones para el comando exportfs Opcin Descripcin -a Exporta todas las particiones declaradas en el /etc/exportfs -u cliente:/directorio Deja de exportar el directorio a un cliente determinado. -o (opciones) Utiliza las opciones descritas en la tabla anterior -v Muestra mayor cantidad de informacin. -r Restaura todas las conexiones.

archivo

Ejemplos del comando exportfs. Exportar todas las entradas disponibles en /etc/exports root [ ~ ]# exportfs -a Exportar el directorio /opt/dir1 al host cliente1, con permisos de lectura y escritura y conservando los permisos de root del directorio local. root [ ~ ]# exportfs -o rw,no_root_squash cliente1:/opt/dir1

15.4.3 Comando showmount


El comando showmount, nos permite obtener informacin sobre el funcionamiento de nuestro servidor NFS, luego de haber exportado las particiones deseadas podemos ver un listado de los sistemas de archivos compartidos tecleando el siguiente comando: root [ ~ ]# showmount -e localhost Export list for localhost: /opt/prueba 192.168.0.13,192.168.0.130,192.168.0.128 /opt/directorio1 192.168.0.130 La opcin e, permite muestra una lista de exportaciones del servidor NFS.

15.5 Configuracin del cliente NFS


La configura del cliente se supone ms sencilla que la configuracin del servidor, ya que no se requiere de la instalacin de ningn software adicional en nuestro sistema, el Kernel de Beakos soporta nativamente sistemas de archivos NFS. Tabla 15-3. Opciones del comando mount o para NFS Descripcin Montaje del sistema de archivos en segundo plano, en caso de que un montaje falle al inicio, seguir intentando establecer conexin, esto es til porque permite que el sistema no se inmovilice esperando establecer una conexin. Especifica si el montaje se puede interrumpido aun cuando hay transferencia de datos. Es una opcin predeterminada, si se cae una conexin y el servidor no responde, el cliente seguir persistiendo de forma indefinida. Habilita el montaje suave de un sistema de archivos NFS, permite que el cliente desista de una conexin despus de un cierto nmero de intentos especificados en la opcin retrans. Nmero mximo de intentos que un cliente intentar conectarse a un servidor NFS. Nmero mximo de bytes que un cliente utiliza para leer archivos de una particin NFS. Ajusta el modo de seguridad para autenticar usuarios y operaciones. sec=sys Utiliza UID y GID locales para autenticar operaciones de NFS (valor por defecto).

Opcin bg

intr hard soft

retrans=n rsize=n sec=valor

nfsvers=n

proto=n wsize=n

sec=krb5 Utiliza Kerberos 5 en lugar del UID y GID locales. sec=krb5i Utiliza Kerberos 5 para autenticar usuarios y lleva acabo verificaciones de integridad de datos con el uso de sumas seguras (MD5sum) para prevenir la alteracin de datos. sec=krb5p Utiliza Kerberos para la autenticacin adems de llevar a cabo la encriptacin de datos. Permite seleccionar la versin del sistema NFS que puede corresponder a 2 o 3, no est habilitado para esta opcin, en lugar de ello sera necesario especificar el tipo como nfs4 como sistema de archivos. Especifica el protocolo a utilizar, podemos seleccionar entre UCP y TCP, la versin de NFSv4 slo trabaja con TCP. Nmero mximo de bytes que utiliza NFS para escribir datos en un sistema de archivos, el valor por defecto corresponde a 4096 bytes.

Ejemplo utilizando el comando mount con sistemas de archivos NFS root [ ~ ]# mount -o rw,bg,soft 192.168.0.132:/opt/dir1 /opt/dir1 El comando anterior montar el sistema de archivos NFS en el directorio /opt con permisos de lectura y escritura, si falla se intentar conectar en segundo plano y har un montaje suave. Si deseamos que el montaje sea permanente debemos crear la siguiente entrada en el fichero /etc/fstab 192.168.0.132:/opt/dir1 /opt/dir1 nfs defaults,soft,bg,rw 0 0

Ejecutamos el siguiente comando para que monte las particiones definidas en el archivo /etc/fstab root [ ~ ]# mount a Validamos tecleando root [ ~ ]# mount /dev/sda2 on / type ext3 (rw) /proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=4,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext3 (rw) none on /proc/fs/nfsd type nfsd (rw) 192.168.0.132:/opt/prueba on /opt type nfs (rw,soft,bg,addr=192.168.0.132) Si no recibimos mensajes de error, podemos ver que en la ltima lnea aparece el sistema de archivos compartido.

NFS es una herramienta muy til para poder compartir sistemas de archivos con otros anfitriones, ampliamente recomendada para compartir discos en red con otros sistemas operativos UNIX y Linux.

Captulo 16 SAMBA (CIFS)


Samba es una implementacin del protocolo CIFS (Common Internet File System) anteriormente llamado SMB(Server Message Block), permite a sistemas UNIX y LINUX interactuar con sistemas Windows compartiendo ficheros y directorios. Samba tambin permite actuar como un controlador principal de dominio (PDC), administrar colas de impresin para usuario de Windows incluso como un sencillo director activo.

16.1 Caractersticas
Samba fue desarrollado en sus inicios por Andrew Tridgell, el nombre proviene de insertar dos vocales a SMB que es el protocolo estndar de Microsoft. Samba es una implementacin de varios protocolos entre los que destacan: NetBIOS sobre TCP/IP SMB ahora conocido como CIFS MSRPC WINS servidor de nombres de NetBIOS Protocolos del dominio NT

Samba configura los directorios y subdirectorios incluyendo los archivos para poder compartirlos en la red con otros usuarios Windows u otros usuarios de GNU/Linux que ejecuten Samba. Los usuarios de GNU/Linux pueden montar particiones Samba como si fueran discos del sistema o utilizar la herramienta smbclient para conectarse a ellas e interactuar con las informacin como se realiza con un cliente de FTP. Sugerencia Este captulo pretende brindarle la informacin necesaria para la configuracin de Samba, sin embargo recomendamos leer ampliamente la documentacin oficial.

16.1.2 Lo que puede y no puede hacer Samba


Es importante antes de comenzar comprender las limitaciones que tiene samba as como sus funciones. Lo que Samba puede hacer:

Compartir archivo, directorios e impresoras a clientes Linux, UNIX y Windows . Asistir en la navegacin de la red a travs de NETBIOS. Autenticar usuarios a dominios Windows. Proporcionar resolucin de nombres de Windows Internet Name Service (WINS) Funcionar como un Controlador de Dominio Primario. Funcionar un BDC para un PDC basado en Samba. Actuar como un miembro del directorio activo de Microsoft. Une un Windows NT/2000/2003 PDC.

Lo que Samba no puede hacer:


Funcionar como un BDC para un Windows PDC . Funcionar como un controlador de Directorio Activo.

16.2 Demonios de Samba


Samba est compuesto por tres demonios smbd, nmbd, windbind. SMBD Este demonio suministra servicios para compartir archivos e impresoras a clientes Windows, tambin es el encargado de autenticar usuarios, compartir datos a travs del protocolo CIFS. Los puertos predeterminados para este demonio son TCP 139 y 445. NMBD Interpreta y responde a peticiones de servicio de Nombres de NETBIOS producidas por el protocolo CIFS, tambin participa en los protocolos de navegacin que forman la vista de entorno de red de Windows. WINDBIND Resuelve la informacin de los usuarios y grupos en un servidor NT, este demonio permite que los usuarios del dominio NT puedan aparecer como usuarios de UNIX y operar de la misma forma. Su uso se puede ampliar mediante un mdulo de PAM (pam_windbind) a fin de que pueda proporcionar servicios de autenticacin, este servicio se controla aparte del servicio SMB y puede funcionar de forma independiente.

16.3 Nombres de usuarios y contraseas


La ltima versin de Samba 3.0 proporciona varias formas de almacenar usuarios y contraseas, para un administrador de sistemas es muy importante mantener una consistencia

en los registros, los usuarios no se preocuparn por recordar varias contraseas, por lo que es importante disear un modelo adecuado a las necesidades de cada organizacin. Entre algunas opciones que disponemos para administrar nombres de usuarios y contraseas estn las siguientes: Mdulos PAM (Mdulos de autenticacin enchufables) de GNU/Linux. Esta opcin permite la autenticacin de usuarios en un PDC. Su desventaja es que aun habr que mantener una lista de usuarios locales y una en el PDC, pero los usuarios slo tendrn que preocuparse de las contraseas del PDC. Samba como un PDC (Controlador de dominio primario). Esta opcin permite mantener los usuarios y sus contraseas de forma local y que las mquinas se autentiquen en Samba utilizando alguno de los motores de contraseas (smbpasswd, tdbsam, ldapsam, etc.).

16.3.1 Motores de usuarios y contraseas


Algunos de los motores ms importantes para la administracin de cuentas en Samba son: smbpasswd Motor utilizando anteriormente con otras versiones de Samba, utiliza un formato de texto ASCII, no se recomienda este motor porque no escala ni guarda bien informacin de Windows. tdbsam Ideal para servidores locales que no requieren replicar la informacin que contienen a otros y que no necesitan la complejidad de LDAP, se recomienda para su uso en organizciones menores a 250 usuarios. ldapsam Este motor proporciona una solucin escalable que permite replicar sus cuentas a otros servidores LDAP o que varios servidores Samba consulten la informacin de las cuentas en un servidor con LDAP.

16.4 Instalacin de Samba


Beakos como varias distribuciones proporciona los paquetes precompilados de Samba, Samba echa mano de algunos paquetes como Xinetd para activar la interfaz grfica de administracin llamada Swat y de CUPS para compartir impresoras, para instalar Samba tecleamos los siguiente comandos: root root root root root [ [ [ [ [ ~ ~ ~ ~ ~ ]# ]# ]# ]# ]# swaret swaret swaret swaret swaret --update --install xinetd --install expat install libdaemon install samba

Si deseamos que estos servicios se inicien junto con el sistema tecleamos. root [ ~ ]# chkconfig --add avahidaemon root [ ~ ]# chkconfig --add samba

Corroboramos que los servicios que deseamos se iniciarn con el sistema root [ ~ ]# chkconfig --list

Procedemos a iniciar los servicios samba ejecutando: root [ ~ ]# /etc/init.d/xinetd start root [ ~ ]# /etc/init.d/avahidaemon start root [ ~ ]# /etc/init.d/samba start

16.5 Configuracin de Samba


La configuracin de Samba se lleva a cabo en nico archivo de configuracin ubicado /etc/samba/smb.conf, los cambios realizados se aplican una vez que reinicie el servicio de Samba.

16.5.1 Configuracin del grupo de trabajo


Analizaremos las opciones ms importantes de este archivo de configuracin. Para modificar el grupo de trabajo de Windows y aadirle una descripcin debemos modificar las siguientes lneas dentro de la configuracin global: workgroup = beakos.com.mx server string = Beakos Samba Server

16.5.2 Seguridad a nivel de usuarios


El parmetro security nos permite modificar el modo de autenticacin de los usuarios, los usos ms comunes son: user es la configuracin predeterminada por Samba, permite al servidor solicitar nombre de usuario y contrasea para acceder a los recursos. domain el modo de seguridad de dominio, el servidor samba se convierte en un miembro del dominio y pasa todas las peticiones de autenticacin a otros servidores de dominio. ADS modo de seguridad de directorio activo, permite al servidor Samba unirse a un directorio activo utilizando Kerberos. share este modo de seguridad permite al servidor samba compartir recursos con otros clientes Windows sin solicitar autenticacin. Ejemplo: security = user

16.5.3 Seguridad a nivel de red


Podemos especificar en el servidor Samba las redes o los hosts desde los cuales los clientes pueden establecer una conexin, modificando el siguiente parmetro: hosts allow = 192.168.1. 127. Esta configuracin permite establecer conexiones desde las redes 192.168.1.0/24 y desde localhost. Podemos especificar por cuales interfaces escuchar el servidor Samba: interfaces = 192.168.12.2/24 192.168.13.2/24 Es posible implementar niveles de seguridad en red ms complejos con el uso de TCP/wrappers y el firewall de IPTABLES.

16.5.4 Compartir impresoras en un entorno de red de Windows


Samba puede compartir las impresoras que estn configuradas con el servidor CUPS con otros clientes de Windows, para ello el servidor CUPS debe de estar funcionando. Debemos configurar los siguientes parmetros: load printers = yes

Este parmetro habilitado cargar en automtico las impresoras que el sistema samba encuentre conectadas. Podemos seleccionar el sistema de impresin que deseamos utilizar, generalmente no es necesario editar este parmetro, toma como opcin predeterminada el sistema CUPS. printing = cups Finalmente debemos compartir las impresoras creando el siguiente recurso, por defecto en Beakos GNU/Linux ya viene configurado. [printers] comment = Impresoras compartidas path = /usr/spool/samba browseable = no guest ok = no writable = no printable = yes El parmetro [printers] se refiere al nombre que le asignamos al recurso. comment define una descripcin para las impresoras compartidas. path indica el directorio de donde se tomarn las impresoras.

browseable permite explorar con un administrador de archivos los recursos, por defecto est negado, no se trata de un archivo. guest ok indica si un usuario invitado puede acceder al recurso. writable indica si el usuario tiene permisos de escritura, configurado con valor negativo. printable indica si se trata de una impresora. Una vez configurado es necesario reiniciar el servidor Samba root [ ~ ]# /etc/init.d/samba restart Deteniendo smbd... Deteniendo nmbd... Iniciando nmbd... Iniciando smbd...

[ [ [ [

OK OK OK OK

] ] ] ]

16.5.5 Compartir archivos en un entorno de red de Windows


Resulta sencillo compartir directorios con clientes Windows, la sintaxis es la siguiente: [nombre_recurso] comment = descripcin path = /ruta/del/recurso/a/compartir parametro1 = valor parametro2 = valor Tabla 16-1. Parmetros para compartir archivos y directorios con Samba Valor Descripcin invalid users Usuarios que no estn permitidos a acceder al recurso. Ejemplo: invalid users = root antonio angel valid users Slo estos usuarios podrn aceder al recurso. Ejemplo: valid users = francisco carlos admin users Usuarios con privilegios administrativos para compartir recursos, este parmetro no es vlido con el modo de seguridad share. Ejemplo: admin users = jesus read list Lista de usuarios o grupos que tendrn permisos de lectura solamente. Ejemplo: read list = francisco @beakos write list Lista de usuarios o grupos con permiso de escritura. Ejemplo: write list = roberto @sistemas read only Indica que el recurso es de slo lectura. Ejemplo: read only = yes guest ok No requiere de password para acceder a los recursos si el valor es yes. Ejemplo: guest ok = yes host allow Permite establecer para que hosts estar disponible el recurso. Ejemplo: hosts allow = 192.168.4. EXCEPT 192.168.4.2 hosts deny Permite establecer para que hosts no estarn disponibles los recursos. Ejemplo: hosts deny = 192.168.4. EXCEPT 192.168.4.35

browseable

writable available

Permite a los recursos permanecer visibles para ser explorados o mantenerse ocultos para mayor seguridad. Ejemplo: browseable = yes Establece permisos de escritura al recurso. Ejemplo: writable = no Permite habilitar y deshabilitar un recurso, segn su valor. Ejemplo: available = no

Creacin de un recurso compartido Llevaremos a cabo la creacin de un recurso compartido dentro del directorio /opt, llamado compartido , donde puedan accesar los usuarios pertenecientes al grupo beakos con permisos de lectura y escritura. Crearemos el directorio: root [ ~ ]# mkdir /opt/compartido Creamos de los usuarios angel y antonio, con su grupo primario llamado beakos: root [ ~ ]# groupadd beakos root [ ~ ]# useradd -g beakos -c "Antonio Moreno" antonio root [ ~ ]# useradd -g beakos -c "Angel Ruiz" angel Creamos las contraseas de los usuarios de samba: root [ ~ ]# smbpasswd -a antonio New SMB password: Retype new SMB password: Added user antonio. root [ ~ ]# smbpasswd -a angel New SMB password: Retype new SMB password: Added user angel.

Asignamos el directorio al grupo beakos y los permisos correspondientes de lectura y escritura para el grupo: root [ ~ ]# chgrp beakos /opt/compartido root [ ~ ]# chmod 760 /opt/compartido

Ahora que hemos creado el recurso y los usuarios, debemos de editar el archivo de configuracin de samba con el editor vi, agregaremos al final las siguientes lneas [practica] comment = recurso de practica path = /opt/compartido browseable = yes write list = @beakos read only = no security = user Tecleamos el comando testparm para corroborar fallas en la configuracin: root [ ~ ]# testparm Si todo est correcto procedemos a reiniciar el servicio de samba: root [ ~ ]# /etc/init.d/samba restart Deteniendo smbd... Deteniendo nmbd... Iniciando nmbd... Iniciando smbd...

[ [ [ [

OK OK OK OK

] ] ] ]

Validamos en un cliente Windows a travs del explorador de archivos escribiendo la siguiente URL: \\servidor_samba\practica Donde servidor_samba corresponde al servidor al cual nos queremos conectar, podemos utilizar cualquiera de los dos usuarios que creamos anteriormente, con ambos debemos poder escribir en el directorio.

16.6 Samba como controlador de dominio primario usando tdbsam.


La implementacin ms sencilla de un PDC con Samba utiliza el motor tdbsam, veamos el archivo de configuracin /etc/samba/smb.conf que debemos utilizar. [global] workgroup = beakos.com.mx netbios name = beakos passdb backend = tdbsam security = user add user script = /usr/sbin/useradd -m %u delete user script = /usr/sbin/userdel -r %u add group script = /usr/sbin/groupadd %g delete group script = /usr/sbin/groupdel %g add user to group script = /usr/sbin/usermod -G %g %u

add machine script = /usr/sbin/useradd -s /bin/false -d /dev/null -g machines %u logon drive = H: domain logons = Yes os level = 35 preferred master = Yes domain master = Yes [homes] comment = Home Directories valid users = %S read only = No [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon/scripts browseable = No read only = No [Profiles] comment = Roaming Profile Share path = /var/lib/samba/profiles read only = No browseable = No guest ok = Yes profile acls = Yes Debemos copiar la configuracin anterior al archivo de /etc/samba/smb.conf, tambin debemos crear el grupo machines. root [ ~ ]# groupadd machines Reiniciamos el servicio: root [ ~ ]# /etc/init.d/samba restart Deteniendo smbd... Deteniendo nmbd... Iniciando nmbd... Iniciando smbd... configuracin

[ [ [ [

OK OK OK OK

] ] ] ]

Creamos los usuarios que se autenticarn a nuestro servidor desde un cliente Windows: root [ ~ ]# useradd francisco root [ ~ ]# smbpasswd -a francisco New SMB password: Retype new SMB password: Added user francisco. Por ltimo autenticamos los clientes Windows para que pertenezcan al dominio que hemos creado en este servidor, utilizamos la cuenta de superusuario para realizar esta tarea.

16.7 Uso de samba para autenticar contra un servidor Windows.


Hasta ahora hemos configurado un sistema Samba para que los usuarios se autentiquen en l utilizando los motores de autenticacin que nos provee Samba. Pero una solucin que se requiere en grandes ambientes de produccin donde se utiliza un Directorio Activo de Windows es poder utilizar los mismos usuarios que ya estn registrados, es decir que Samba comparta recursos utilizando los usuarios y contraseas de un servidor Windows.

16.7.1 El demonio Winbind


El demonio winbind nos permite traducir informacin sobre las cuentas de los usuarios desde servidores nativos en Windows, para esto se basa en el mdulo de PAM pam_winbind, la herramienta ntlm_auth que permite el acceso externo a las funciones de autenticacin y el servicio libnss_winbind (biblioteca del conmutador del servicio de nombres de winbind).

16.7.2 Integracin al active directory


A continuacin veremos un ejemplo real de la integracin de un host a un dominio de Windows llamado dcinfotec.local

1. Debemos modificar el archivo /etc/sysconfig/network, con el propsito de que pertenezca al dominio de Windows, lo editamos de la siguiente forma: HOSTNAME=nombre_host.nombre_dominio Ejemplo: HOSTNAME=beakos.dcinfotec.local Hacemos lo mismo en el archivo /etc/hosts Ejemplo: 127.0.0.1 localhost beakos beakos.dcinfotec.local

2. Editamos el archivos /etc/samba/smb.conf para que quede de la siguiente forma: [global] unix charset = LOCALE realm = dcinfotec.local workgroup = dcinfotec security = ADS password server = 192.168.105.50 winbind separator = + log level = 1

syslog = 1 log file = /var/log/samba/%m winbind uid=10000-20000 winbind gid=10000-20000 winbind enum users=yes winbind enum groups=yes template homedir=/tmp template shell=/sbin/nologin

Analicemos detalladamente cada una de las opciones. unix charset = LOCALE Esta directiva utilizar la codificacin de caracteres local configurada en Beakos GNU/Linux. Por defecto es el estndar POSIX. realm = dcinfotec.local Indica el dominio al cual el servidor Samba estar uniendo. workgroup = dcinfotec Indica el grupo de trabajo de Windows al cual nos estaremos integrando. password server = 192.68.105.50 Indica el servidor que contiene la informacin de la autenticacin, por lo regular es el mismo que contiene el Directorio Activo. security = ADS El nivel de seguridad ADS permitir unirnos a un Directorio Activo mediante Kerberos. winbind separator = + Indica el separador a utilizar en las cuentas y grupos de usuarios. Ejemplo: DCINFOTEC+angel.ruiz log level = 1 Indica el nivel de detalle del registro en la bitcora de actividades. syslog = 1 El valor 1 indica que est activado en envi de registros al sistema de logs del Kernel. winbind uid=10000-20000

Indica al demonio winbind que los UID de los usuarios del directorio activo estarn dentro de este rango. winbind gid=10000-20000 Indica al demonio winbind que los GID de los grupos del directorio activo estarn dentro de este rango. winbind enum users=yes winbind enum groups=yes template homedir=/tmp Le indica al demonio winbind que el directorio inicial para los usuarios del directorio activo ser /tmp. template shell=/sbin/nologin Le indica al demonio winbind que el intrprete de comandos para los usuarios del directorio activo ser /sbin/nologin. Es recomendable no darles acceso a la consola a estos usuarios.

3. Editamos el archivo /etc/nsswitch.conf que es que se encarga de regular el orden en que se buscan los usuarios y las contraseas en el sistema. Dejndolo de la siguiente forma: # Begin /etc/nsswitch.conf passwd: files winbind group: files winbind shadow: files winbind hosts: files dns networks: files protocols: files services: files ethers: files rpc: files # End /etc/nsswitch.conf Lo anterior har posible que despus de obtener los usuarios locales del archivo /etc/passwd haga una bsqueda de usuarios en el directorio activo.

4. Editamos el archivo de configuracin de Kerberos dejndolo de la siguiente forma: # Begin etc/krb5/krb5.conf [libdefaults] default_realm = DCINFOTEC.LOCAL encrypt = true [realms] DCINFOTEC.LOCAL = { kdc = 192.168.105.50 admin_server = 192.168.105.50 dict_file = /usr/share/dict/words } [domain_realm] .dcinfotec.local = DCINFOTEC.LOCAL [logging] kdc = SYSLOG[:INFO[:AUTH]] admin_server = SYSLOG[INFO[:AUTH]] default = SYSLOG[[:SYS]] # End /etc/krb5/krb5.conf 6. Generamos el ticket de Kerberos root [ ~ ]# kdb5_util create -s 7. Una vez realizados los pasos anteriores reiniciamos el servidor samba e iniciamos el servidor winbind. root [ ~ ]# /etc/init.d/samba restart

8. Ahora el sistema se encuentra listo para poder integrarse al directorio activo, tecleamos el siguiente comando: root [ /etc ]# net ads join -U usuario%contrasea

Donde el usuario es el administrador autorizado para agregar equipos al directorio activo. Procedemos a iniciar el demonio winbind root [ ~ ]# /etc/init.d/winbind start root [ ~ ]# chkconfig add winbind

9. Podemos corroborar que ya podemos hacer uso de los usuarios y grupos del directorio activo tecleando: root [ ~ ]# wbinfo -u 10. Comprobamos la validacin de usuarios y grupo funciona bien a travs de NSS, teclea: root [ ~ ]# getent passwd 11. Supongamos que existe un grupo llamado samba dentro del directorio activo llamado DCINFOTEC, al cual pertenecen los usuarios miguel.cuapio y francisco.sosa, y deseamos compartir el directorio /opt/directorio1, en el cual ambos usuarios tengan permiso de lectura y escritura. Realizaramos los siguientes pasos: Creamos el directorio: root [ ~ ]# mkdir /opt/directorio1 Asignamos el recurso al grupo Samba y le damos permisos de lectura y escritura: root [ ~ ]# chmod 770 /opt/directorio1 root [ ~ ]# chgrp DCINFOTEC+samba /opt/directorio1 Por ltimo editamos el archivo /etc/samba/smb.conf , y agregamos el recurso al final. [compartido] comment = directorio de prueba path = /opt/directorio1 guest ok = no write list = @DCINFOTEC+SAMBA-rw browseable = yes writable = yes create mask = 0775 directory mask = 0775 Reconfiguramos samba: root [ ~ ]# /etc/init.d/samba reload Recargando smbd... Recargando nmbd...

[ [

OK OK

] ]

Ahora podemos acceder con los usuarios que pertenecen al grupo samba con privilegios de lectura y escritura.

16.8 SWAT (Samba Web Administration Tool)


SWAT es una interfaz que nos permite administrar Samba de manera grfica, es una excelente alternativa si no deseamos complicarnos la existencia editando los archivos de configuracin de forma manual. Beakos GNU/Linux incluye SWAT junto con el paquete de Samba, as que si ha instalado Samba no tiene que preocuparse de SWAT, slo debe cerciorarse que est instalado el paquete Xinetd, SWAT lo necesita para ejecutarse como servicio sobre demanda. Ejecutemos el comando: root [ ~ ]# chkconfig --list xinetd based services: swat: on Podemos observar que el servicio SWAT se encuentra activo. Analicemos el archivo de configuracin de SWAT /etc/xinetd.d/swat # Begin /etc/xinetd.d/swat service swat { port = 904 socket_type = stream wait = no only_from = 127.0.0.1 user = root server = /usr/sbin/swat log_on_failure += USERID } # End /etc/xinetd.d/swat Podemos observar que el servicio SWAT estar escuchando por el puerto 904, y slo escuchar peticiones por localhost, podemos modificarlo para que escuche peticiones de alguna otra direccin IP. Sugerencia La autenticacin de SWAT enviar la informacin sin cifrar del navegador al servidor, no se recomienda operar SWAT desde otra mquina o bien si desea hacerlo utilice alguna herramienta como Stunnel

Si ha decidido modificar el archivo, es necesario reiniciar Xinetd para que los cambios surtan efecto. root [ ~ ]# /etc/init.d/xinetd restart Deteniendo xinetd... Iniciando xinetd...

[ [

OK OK

] ]

Puede conectarse a la interfaz Web de SWAT utilizando el navegador Web del sistema de Beakos, (necesitar haber instalado la interfaz grfica, vea gestin de paquetes). Teclee la siguiente URL en el navegador web: http://127.0.0.1:904

Al ingresar esta URL se le pedir nombre usuario y contrasea, escriba root como nombre de usuario y su respectiva contrasea, una vez registrado se mostrar una interfaz web como esta:

Figura 16-1. SWAT herramienta para la administracin grfica de Samba.

16.8.1 Mens de SWAT


Cuando establece una conexin a la herramienta de configuracin SWAT y se autentica como usuario root, ver el men de la figura 16-1, adems de encontrar muchas opciones para la configuracin de Samba, encontrar tambin toda la documentacin referente a esta herramienta.

En la pgina superior encontrar las siguientes opciones: Tabla 16-1. Mens de la herramienta Samba SWAT Descripcin La pgina del men principal, en ella se encuentran ligas hacia la documentacin de Samba, ests ligas apuntan a enlaces dentro del servidor, por lo que no deber preocuparse por la conexin a Internet, podemos obtener informacin de los demonios de Samba, los archivos de configuracin, herramientas del lado del cliente, herramientas administrativas, de consulta, etc. Incluye opciones de configuracin globales para el servidor Samba, por ejemplo la configuracin del grupo de trabajo, del dominio, de winbind, de usuarios y contraseas entre otros. A la izquierda de cada valor existe un vnculo hacia la documentacin relevante de cada parmetro, vale la pena revisarlo, le proporcionar conocimientos valiosos y prcticos. En Windows compartir un directorio resulta sumamente sencillo, basta con realizar unos cuantos clicks, este trabajo se logra en samba usando este men. Este men permite administrar impresoras disponibles con CUPS, compartidas con samba, podemos editar, agregar, borrar, etc. Opcin disponible en otras versiones de Samba, su funcin es configurar un servidor Samba paso a paso a travs de mens intuitivos. Muy til para administrar los demonios de Samba, permite detener, iniciar y reiniciar. Adems muestra las conexiones activas al servidor, los directorios compartidos y los ficheros abiertos. Nos genera una vista del archivo de configuracin de Samba, conforme vaya realizando modificaciones observar como va cambiando. Podemos administrar usuarios y contraseas a travs de este men, sin accesar a la consola.

Men Home

Globals

Shares

Printers Wizard Status

View Password

16.9 El comando SMBCLIENT


El comando smbclient es una herramienta de la lnea de comandos que nos permite actuar como cliente de Samba o incluso de otros servidores Windows, es una herramienta muy completa, permite explorar en otros servidores, enviar y recibir archivos de ellos. En esta seccin mostraremos como accesar a recursos remotos de una manera bsica, sin embargo este comando ofrece muchas opciones tmese su tiempo el tiempo necesario para ir ms all si as lo desea.

16.9.1 Explorar un servidor


Con tantas interfaces grficas disponibles para GNU/Linux, seguramente no hemos pensado utilizar algn comando de consola para acceder un recurso de Samba, pero como administradores de sistemas sabemos que no siempre tendremos a nuestra disposicin una cmoda interfaz grfica, la sintaxis para accesar a un recurso es la siguiente: smbclient L nombre_del_servidor

Por ejemplo si deseamos ver los recursos compartidos de un servidor samba escribimos: root [ ~ ]# smbclient -L 192.168.4.226

Quiz nos pida contrasea, simplemente tecleamos ENTER, para evitar esto podemos acceder como usuario annimo utilizando U%, de la siguiente forma: root [ ~ ]# smbclient U% -L 192.168.4.226 Anonymous login successful Domain=[BEAKOS.COM.MX] OS=[Unix] Server=[Samba 3.5.4] Sharename Type Comment -----------------compartido Disk directorio compartido IPC$ IPC IPC Service (Samba Server) Anonymous login successful Domain=[BEAKOS.COM.MX] OS=[Unix] Server=[Samba 3.5.4] Server --------BEAKOS Comment ------Samba Server

Ponga especial atencin en que existe un recurso llamado compartido. Al cual vamos a acceder con el usuario del sistema angel.

16.9.2 Acceder a un archivo remoto


Acceder a un recurso remoto en un servidor Windows o en un servidor Samba es una tarea que se puede realizar tambin con el comando smbclient, sintaxis: smbclient //servidor_samba/recurso_compartido Explicaremos algunas opciones para conectarse a los recursos compartidos con samba mediante smbclient. Tabla 16-2. Opciones para conectar con un servidor con smbclient Opcin Descripcin -I IP_destino Direccin Ip del servidor al cual nos queremos conectar. -U usuario Nombre del usuario con el que deseamos establecer conexin al servidor samba. Ejemplo: -U francisco -W grupo_trab Establece el grupo de traajo. -D Directorio Directorio empieza la sesin conectndose al directorio.

Supongamos que el servidor 192.168.4.226 tiene configurado el recurso compartido, y deseamos acceder a l con el usuario angel. root [ ~ ]# smbclient -U angel //192.168.4.226/compartido Enter angel's password: Domain=[BEAKOS.COM.MX] OS=[Unix] Server=[Samba 3.5.4] smb: \>

Podemos emplear los siguientes comandos para administrar nuestros archivos: cd Cambiar de directorios ls Mostrar el contenido de los directorios get Obtener ficheros del servidor. put Colocar ficheros en el servidor. mget Obtener mltiples ficheros en el servidor. mput Colocar mltiples ficheros en el servidor. help Muestra la ayuda disponible.

16.10 Montaje de un recurso compartido de Samba


El ncleo(Kernel) de Beakos GNU/Linux se encuentra compilado para montar recursos compartidos de Samba como sucede con la mayora de las distribuciones, usted podr montar recursos de SMB casi de la misma forma que lo hace con particiones NFS, resulta especialmente til para acceder a grandes volmenes de un sistema remoto sin autenticarse de manera continua. Podemos usar el comando mount para montar un recurso compartido, veamos el siguiente ejemplo: 1. Crear un directorio como punto de montaje: root [ ~ ]# mkdir /mnt/samba 2. Ahora tecleamos el comando mount con sus opciones para realizar el montaje: root [ ~ ]# mount.cifs //192.168.4.226/compartido \ /mnt/samba/ -o user=angel,pass=***** Esto para un montaje que no persista a un reinicio, si deseamos crearle una entrada en el archivo /etc/fstab, quedara de la siguiente forma: //192.168.4.226/compartido /mnt/samba cifs user=angel,pass=******,defaults 0 0

Ahora debemos ejecutar el siguiente comando para que monte las entradas de archivos /etc/fstab root [ ~ ]# mount -a Escribimos el siguiente comando para corroborar que el sistema de archivos de Samba se encuentra montado. root [ ~ ]# mount //192.168.4.226/compartido on /mnt/samba type cifs (rw,user=angel,pass=*****)

Captulo 17 LDAP
LDAP (Lightweight Directory Access Protocol, Protocolo Ligero de Acceso a Directorios), es un servicio a nivel de aplicacin que incluye un conjunto de protocolos utilizados para acceder y modificar informacin centralizada en una red de computadoras. LDAP est diseado para acceso a directorios basado en el modelo X.500, al igual que una base de datos convencional se le pude realizar consultas para obtener informacin almacenada en el servidor. LDAP es un servicio muy escalable y relativamente fcil de configurar, pero para eso daremos una breve introduccin sobre los conceptos principales que rigen su arquitectura.

17.2 Conceptos bsicos de LDAP


LDAP es un servicio global de directorios. Estos directorios permiten almacenar todo tipo de informacin relativa a objetos de distintas clases. LDAP se diferencia de las bases de datos tradicionales en que est especialmente diseada para buscar y leer datos, no para operaciones de escritura. Algunas implementaciones populares de LDAP son: Open LDAP, implementacin de cdigo abierto de LDAP que abordaremos en captulos siguientes. Red Hat Directory Server, implementacin de LDAP desarrollada por Red Hat Inc. Directorio Activo de Microsoft. Apache Directory Server, Implementacin de LDAP desarrollada en Java, por Apache Fundation.

17.2.1 Jerarqua de LDAP


Las entradas de un directorio LDAP estn estructuradas en forma de rbol jerraquico, a esta estructura se le conoce como DIT(rbol de informacin del directorio). Analicemos a fondo este rbol a travs del siguiente esquema.

dc = beakos, dc = com

ou = Diseno

ou = Desarrollo

ou = Pruebas

uid = carlos

uid = jesus

uid = antonio

(dn: uid = carlos, ou = Diseno, dc = beakos, dc = com )


Figura 17-1. Esquema de un rbol LDAP para beakos.com La parte superior de la estructura se le conoce como raz, la ruta completa para un objeto del directorio se le conoce como dn(nombre diferenciado). LDAP es ampliamente utilizado para definir estructuras dentro de las organizaciones, por ejemplo la definicin de funciones de diversas reas y las personas que las integran. Ejemplo: El proyecto Beakos GNU/Linux puede estructurarse declarando su dominio como la raz ( dc), de la cual se desprenden 3 reas (OU Unidades organizacionales), a las cuales pertenecen diversas personas (uid).

17.2.2 Funcionamiento de LDAP


Al igual que otros servicios de Red, LDAP se basa en la arquitectura cliente/servidor, en este contexto la conexin a un servidor LDAP sera como se describe continuacin: Un cliente de LDAP se conecta a un servidor, esta accin se conoce como enlazarse a un servidor. Dependiendo de los privilegios de acceso configurados en el servidor LDAP, este puede aceptar o rechazar la conexin. Si el servidor acepta la conexin, el cliente entonces puede acceder a la informacin del directorio, modificarla o actualizarla. Si la conexin es rechazada, el servidor LDAP puede enviar la peticin del cliente a otro servidor LDAP superior que quiz si pueda atender la solicitud.

17.2.3 Implementaciones de LDAP


LDAP es un servicio de directorios distribuidos y puede almacenar diversos tipos de informacin. Prcticamente puede almacenar cualquier tipo de informacin como texto, fotos, certificados digitales.

Enlistamos algunos de los usos que se le pueden dar a LDAP: LDAP puede servir como una completa solucin para Administrar la identidad de los usuarios dentro de una organizacin. NIS puede ser reemplazado por completo con LDAP para administrar los servicios de autenticacin. Los servidores DNS puede almacenar su informacin en un servidor LDAP. LDAP puede hacer la funcin de un directorio que ofrezca informacin de contacto de los usuarios dentro de una organizacin (no. de telfono, direccin, correo electrnico, etc.). Un servidor LDAP puede proporcionar a un servidor de archivos en Samba un base de objetos de grandes dimensiones para que Samba pueda operar como un servidor de dominio. Los servidores de correo electrnico pueden almacenar la informacin de las cuentas en servidores LDAP.

17.2.4 Trminos empleados en LDAP


En esta seccin definiremos algunos de los trminos ms empleados al trabajar con LDAP. Objeto, Es la unidad mnima de un directorio LDAP. A cada objeto se le llama por su nombre diferenciad. Por ejemplo: dn:uid=angel,ou=desarrollo,dc=beakos,dc=com Atributo, Es la informacin relacionada al objet. por ejemplo en su correo elctrnico, direciin, telfono, etc. ObjectClass, este es un tipo especial de atributo, sirve para especificar que atributos son requeridos por un objeto de LDAP, este atributo se puede modificar por los clientes, pero no puede ser borrado. Las definiciones de ObjectClass se almacenan en los esquemas. Esquemas (schemas), Un esquema es una coleccin de reglas que determinan la estructura y el contenido de un directorio. El esquema contiene las definiciones, los tipos de atributo y las clases de objetos. Es usual que los esquemas se almacenen en archivos de texto plano y define si los atributos son opcionales u obligatorios. Ejemplos de esquemas son (/etc/openldap/schema): core.schema, este esquema define los objetos y atributos bsicos de la versin 3 de LDAP, es el esquema central requerido para la implementacin de OpenLDAP. inetorgperson.schema, Esta clase de objeto se utiliza con frecuencia para almacenar informacin de usuarios. LDIF, Formato de intercambio de datos LDAP. Es un archivo de texto plano para objetos LDAP. Los archivos que importan o exportan datos hacia y desde un servidor LDAP deben hacerlo con este formato.

17.3 Open LDAP


OpenLDAP es la implementacin abierta del protocolo LDAP, est liberada bajo su propia licencia y es la implementacin que utiliza el proyecto Beakos, el programa bsicamente incorpora los siguientes componentes.

17.3.1 Los demonios Slapd y Slurpd.


Splapd es un demonio de OpenLDAP independiente, escucha las conexiones de clientes LDAP hechas por el puerto 389 de TCP y atiende dichas conexiones. El demonio Slurpd, se trata de un demonio independiente para la replicacin de datos hacia otros servidores, slo es requerido cuando se sincronizan dos o ms servidores.

17.3.2 Utilidades del Cliente de OpenLDAP


Estas utilidades son un conjunto de herramientas que funcionan desde la lnea de comandos, nos permiten hacer consultas, visualizar, actualizar y modificar datos de un directorio de LDAP, en Beakos GNU/Linux estas herramientas se incluyen el paquete openldap-client, disponible en el repositorio de software. Tabla 17-1. Utilidades ms usuales de OpenLDAP Opcin Descripcin ldapadd Abre una conexin a un servidor LDAP, enlaza y aade entradas. ldapcompare Abre una conexin a un servidor LDAP, enlaza y compara usando parmetros especficos. ldapdelete Abre una conexin a un servidor LDAP, enlaza y borra una o ms entradas. ldapmodify Abre una conexin a un servidor LDAP, enlaza y modifica entradas. ldapmodrdn Abre una conexin a un servidor LDAP, enlaza y modifica las entradas de RDN. ldappasswd Herramienta para crear contraseas a usuarios de LDAP. ldapsearch Abre una conexin a un servidor LDAP, enlaza y realiza bsquedas usando los parmetros especificados. slapadd Se utiliza para aadir entradas especificadas en el formato de intercambio de directorios LDAP (LDIF) a una base de datos LDAP. slapcat Se utiliza para generar una salida LDAP LDIF basada en el contenido de una base de datos slapd. slapindex Se utiliza para regenerar ndices slapd basado en el contenido actual de una base de datos. slappasswd Utilidad de contraseas de OpenLDAP. slaptest Checa si existen errores en el archivo de configuracin de OpenLDAP.

17.4 Instalacin de OpenLDAP


Para poder instalar Open LDAP en Beakos GNU/Linux , se requiere de los siguientes paquetes: openldap-client-2.3.39-i386-1, Proporciona los binarios necesarios para que nuestro sistema funcione como un cliente de LDAP, pudiendo acceder a un servidor de OpenLDAP y editar y modificar registros. openldap-server-2.3.39-i386-1, Proporciona los binarios necesarios para instalar un servidor OpenLDAP en Beakos GNU/Linux, este paquete contiene los demonios slapd y slurpd. pam_ldap-185-i386-1, Permite autenticar usuarios del sistema contra un servidor LDAP. Para instalar los paquetes anteriores escribimos los siguientes comandos como usuario raz. root [ ~ ]# swaret --install openldap El comando anterior nos instalar el cliente y el servidor de OpenLDAP. Si deseamos instalar el mdulo de autenticacin PAM para LDAP, tecleamos: root [ ~ ]# swaret install pam_ldap

Concluida la instalacin del servidor LDAP podemos proceder con la configuracin de nuestro servidor.

17.5 Configuracin de OpenLDAP


Dependiendo de nuestras necesidades, la configuracin de OpenLDAP puede ser un proceso simple o tornarse en un asunto muy complejo, en esta seccin configuraremos un servidor con parmetros bsico, realizaremos consultas e inserciones de datos.

Sugerencia Antes de llevar a cabo la configuracin de un servidor OpenLDAP, es necesario que tenga usted bien definido la estructura de su directorio (unidades organizacionales, usuarios, etc.).

17.5.1 El archivo de configuracin slapd.conf


El archivo /etc/openldap/slapd.conf es el archivo de configuracin para el servidor OpenLDAP (demonio slapd), en esta seccin analizaremos a detalle la configuracin del este archivo, utilizando los siguientes parmetros:

dc=beakos,dc=com cn=admin

Analicemos las configuracin del servidor, hemos eliminado las lneas que no sern necesario modificar, en una configuracin bsica. 1 # 2 # See slapd.conf(5) for details on configuration options. 3 # This file should NOT be world readable. 4 # 5 include /etc/openldap/schema/core.schema 6 7 # Define global ACLs to disable default read access. 8 9 # Do not enable referrals until AFTER you have a working 10 # directory 11 # service AND an understanding of referrals. 12 #referral ldap://root.openldap.org 13 14 pidfile /srv/ldap/run/slapd.pid 15 argsfile /srv/ldap/run/slapd.args 16 17 ############################################################ 18 # BDB database definitions 19 ############################################################ 20 database bdb 21 suffix "dc=beakos,dc=com" 22 rootdn "cn=admin,dc=beakos,dc=com" 23 # Cleartext passwords, especially for the rootdn, should 24 # be avoid. See slappasswd(8) and slapd.conf(5) for details. 25 # Use of strong authentication encouraged. 26 rootpw secret 27 # The database directory MUST exist prior to running slapd 28 # should only be accessible by the slapd and slap tools. 29 # Mode 700 recommended. 30 directory /srv/ldap/openldap-data

Las primeras 4 lneas son comentarios. La lnea 5 corresponde al schema por default, podemos agregar ms esquemas del directorio /etc/openldap/schemas, segn nuestras necesidades y la funcin que nuestro sistema LDAP vaya a desempear, para una configuracin bsica, por lo menos el esquema core.schema, debe estar configurado. La lnea 14 indica la ruta donde estar almacenado el archivo indicador de proceso (pidfile).

La lnea 15 declara la directriz argsfile, indica la ruta del archivo que puede utilizarse para configurar opciones adicionales para el inicio del demonio slapd. La lnea 20 indica la base de datos que se utilizar para almacenar los datos relacionados con LDAP, por defecto se utiliza la base de datos de segundo plano de Berkeley (db), pero se puede hacer uso de algunas otras como SQL (se recomienda dejar esta opcin). La lnea 21 indica el sufijo DN de las consultas que se realizarn en el servidor OpenLDAP. Define el dominio de nuestro servidor Open LDAP, para esta prctica nosotros emplearemos el dominio beakos.com. La lnea 22 especifica el nombre diferenciado (dn) del usuario que administrar nuestro servidor OpenLDAP. La lnea 26 equivale a la contrasea de nuestro usuario administrador, debemos cambiar la palabra secret por la cadena de caracteres que nos arroje la utilidad slappasswd. Sobra decir que debemos utilizar una buena contrasea. Ejemplo: root [ ~ ]# slappasswd New password: Re-enter new password: {SSHA}UzK7y7seNn7zDRyq0s8/mlqxz1H3cjT6 Por ltimo, la lnea 30 indica la ruta del directorio donde se almacenarn los archivos de la base datos y archivos relacionados.

17.5.3 Administracin del servicio de OpenLDAP


Concluida la configuracin del demonio de OpenLDAP, podemos prepararnos para iniciar el demonio, tecleamos: root [ ~ ]# /etc/init.d/openldap start Iniciando servidor LDAP... Verificar el estado del servidor escribimos: root [ ~ ]# /etc/init.d/openldap status Iniciando servidor LDAP... Detener el demonio de OpenLDAP, tecleamos: root [ ~ ]# /etc/init.d/openldap stop Iniciando servidor LDAP... [ OK ]

OK

OK

Si deseamos que el servicio se inicie cuando arranque el sistema, tecleamos: root [ ~ ]# chkconfig openldap on Verificamos en que niveles se iniciar tecleando: root [ ~ ]# chkconfig --list | grep openldap openldap 0:off 1:off 2:on 3:on 4:on

5:on

6:off

17.5.4 Configuracin del cliente de OpenLDAP


La configuracin de un cliente de LDAP, puede tomar algn tiempo llegarla a comprender, el archivo de configuracin del cliente se ubica en la ruta /etc/openldap/ldap.conf. En esta seccin realizaremos los ajustes necesarios para hacer funcionar al cliente de OpenLDAP, en realidad slo ser necesario realizar un ajuste, bien valdra la pena revisar los dems parmetros de los que dispone el cliente para tener una idea ms clara de lo que se puede realizar con LDAP. Localice la siguiente lnea en el archivo /etc/openldap/ldap.conf base dc=padl,dc=com hacer que se vea de la siguiente forma: base dc=beakos,dc=com

17.6 Creacin de objetos en OpenLDAP


OpenLDAP nos permite insertar objetos desde un archivo de texto plano, estos objetos estn representados en el formato Data Interchange Format LDAP (LDIF), estos archivos se pueden utilizar para, agregar, borrar y modificar informacin en el directorio, el formato de un archivo LDIF corresponde a: dn: <nombre diferenciado> <descripcin_atributo>: <valor> <descripcin_atributo>: <valor> dn: <nombre diferenciado2> <descripcin_atributo>: <valor> <descripcin_atributo>: <valor> A continuacin crearemos un archivo llamado prueba.ldif, para poder crear objetos dentro de nuestro directorio LDAP. Utilice algn editor de textos para crear la siguiente informacin:

dn: dc=beakos,dc=com objectclass: dcObject objectclass: organization o: Proyecto Beakos dc: beakos dn: cn=angel,dc=beakos,dc=com objectclass: organizationalRole cn: angel dn: cn=francisco, dc=beakos,dc=com objectclass: organizationalRole cn: francisco Terminado el archivo de ser editado utilizamos el comando ldapadd, para importar el archivo LDIF a nuestro directorio, tecleamos: root[ ~ ]# ldapadd -x -D "cn=admin,dc=beakos,dc=com" -W f \ prueba.ldif Enter LDAP Password: adding new entry "dc=beakos,dc=com" adding new entry "cn=angel,dc=beakos,dc=com" adding new entry "cn=francisco, dc=beakos,dc=com" Utilizamos los siguientes parmetros: x Indica que se debe utilizar la autenticacin de LDAP en vez de SASL. D Se utiliza para especificar el nombre diferenciado que se va a utilizar. W Permite utilizar la autenticacin simple, en lugar de teclear la contrasea en la lnea de comandos. f Especifica el archivo que se utilizar para la importacin de los datos.

17.6.1 Consultas en un directorio LDAP


La utilidad ldapsearch, nos permite extraer informacin de un directorio de LDAP, para buscar las entradas que creamos en el ejercicio anterior, tecleamos: root [ ~ ]# ldapsearch -x -b "dc=beakos,dc=com" "objectclass=*" # extended LDIF # # LDAPv3 # base <dc=beakos,dc=com> with scope subtree # filter: objectclass=* # requesting: ALL # beakos.com dn: dc=beakos,dc=com objectClass: dcObject

objectClass: organization o: Proyecto Beakos dc: beakos Salida truncada # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3

Realizaremos nuestra consulta ahora buscando el objeto cuyo nombre sea angel. Tecleamos: root [ ~ ]# ldapsearch -x -b "dc=beakos,dc=com" "cn=angel" # extended LDIF Salida truncada # angel, beakos.com dn: cn=angel,dc=beakos,dc=com objectClass: organizationalRole cn: angel Salida truncada .

Ahora bien utilizaremos la herramienta ldapdelete eliminar el objeto cuyo cn es igual a francisco. root [ ~ ]# ldapdelete -x -W -D "cn=admin,dc=beakos,dc=com" \ "cn=francisco,dc=beakos,dc=com" Enter LDAP Password:

17.7 Implementacin de una libreta de direcciones en un directorio LDAP


LDAP es una herramienta muy verstil, la cual podemos aplicar en muchas soluciones, una de ella es una libreta de direcciones donde los usuarios pueden conectarse a nuestro servidor para consultar informacin de diversos contactos. En esta seccin pondremos en marcha un servidor LDAP cuyo nombre diferenciado sea dn: dc=beakos,dc=com y el usuario administrador sea admin. Es decir utilizaremos el servidor configurado en las secciones anteriores.

17.7.1 Agregar los esquemas.


Por defecto OpenLDAP solo incluye el esquema llamado core.schema, debemos agregar al archivo de configuracin /etc/openldap/slapd.conf, los siguientes esquemas del directorio /etc/openldap/schemas include include include /etc/openldap/schema/cosine.schema /etc/openldap/schema/inetorgperson.schema /etc/openldap/schema/misc.schema

Una vez que hemos agregado estas lneas podemos proceder a reiniciar el servidor. root [ ~ ]# /etc/init.d/openldap restart Deteniendo servidor LDAP... Iniciando servidor LDAP...

[ [

OK OK

] ]

17.7.2 Instalacin de PHPLDAPADMIN


Phpldapadmin, conocido tambin como PLA es una interfaz web desarrollada en PHP travs de la cual podemos administrar nuestro servidor OpenLDAP, podemos realizar bsquedas, crear, borrar, copiar y editar entradas LDAP, incluso copiar entradas entre servidores LDAP. Para instalar esta herramienta necesitamos tener instalado el servidor web apache y el interprete PHP. Tecleamos los siguientes comandos, instalamos tambin sus respectivas dependencias: root root root root [ [ [ [ ~ ~ ~ ~ ]# ]# ]# ]# swaret swaret swaret swaret install httpd-2.2.16-i386-1 install apr-util-1.3.9-i386-1 install apr-1.4.2-i386-1 --install php

Una vez instalados nos cambiamos al directorio de publicacin de apache: root [ ~ ]# cd /srv/www/htdocs/ Descargamos phpldapadmin de su sitio oficial, ya que lo hemos descargado descomprimimos el paquete, tecleamos: root [ /srv/www/htdocs ]# tar -xf phpldapadmin-1.2.0.5.tgz A este directorio le podemos crear un enlace simblico para recordar ms fcil su acceso. root [ /srv/www/htdocs ]# ln -sf phpldapadmin-1.2.0.5 \ phpldapadmin

Posterior a esto procedemos a instalar el archivo de configuracin de phpldapadmin, llamado config.php, copiamos el archivo config.php.example con el nombre config.php: root [ /srv/www/htdocs ]# cd phpldapadmin/config/ root [ /srv/www/htdocs/phpldapadmin/config ]# cp \ config.php.example config.php Procedemos a iniciar nuestro servidor apache. root [ ~ ]# /etc/init.d/apache start Ahora podemos acceder a la interfaz web con la siguiente URL. http://192.168.0.133/phpldapadmin/htdocs/index.php Nos deber mostrar la siguiente ventana:

Figura 17-2. Interfaz web de PLA Damos un click en conectar, la interfaz nos solicitar el nombre de usuario y contrasea, proporcionamos el nombre diferenciado de nuestro servidor que corresponde a cn=admin,dc=beakos,dc=com y la respectiva contrasea.

Figura 17-3. Autenticacin al servidor OpenLDAP a travs de PLA Una vez autenticados en el servidor podemos observar que existe nuestro dominio raz (dc=beakos, dc=com).

Figura 17-4. Domino raz en PLA

17.7.3 Creacin de Objetos con PHPLDAPADMIN


Autenticados en el servidor, podemos proceder a la creacin de Objetos, seleccionamos la opcin Crear objeto nuevo y seleccionamos del lado derecho la opcin Genrico: Entrada en la Libreta de Direcciones procedemos a llenar los campos y damos click en el botn crear objeto.

Figura 17-5 Creacin de objetos en PLA Verificamos los datos y damos un click en el botn cometer.

Figura 17-6. Entrada en la libreta de direcciones.

17.7.4 Configuracin del cliente de Correo


Utilizaremos el cliente de correo Thunderbird como cliente para Realizar bsquedas en nuestra libreta de direcciones.

Seleccionamos en el men la opcin herramientas>Libreta de direcciones.

Figura 17-7. Configuracin del cliente.

Nos mostrar la siguiente ventana, donde seleccionamos, Archivo>Nuevo>Directorio LDAP

Figura 17-8. Directorio LDAP

Thunderbird nos mostrar un formulario donde colocaremos los datos de nuestro servidor LDAP con el objetivo de establecer conexin. Donde Nombre corresponde al nombre de la libreta de direcciones, Servidor corresponde a la direccin IP o nombre de Host del servidor LDAP, DN base corresponde a dominio de LDAP donde estableceremos la conexin, Nmero de puerto corresponde a 389 de TCP, a menos que le hayamos configurado otro valor a nuestro servidor dejaremos este parmetro como est, por ltimo especificamos el DN para inicio de sesin , este valor corresponde en nuestro caso a cn=admin,dc=beakos,dc=com.

Figura 17-9. Configuracin de parmetros del servidor LDAP Seleccionamos el botn aceptar y slo resta realizar las pruebas pertinentes. En el cuadro de bsqueda, tecleamos un carcter y nos debe mostrar las direcciones que coincidan con ese patrn de bsqueda.

Figura 17-10. Bsqueda de datos en un servidor LDAP.

Captulo 18 DHCP
DHCP (Dinamic Host Control Protocol), es un servicio que permite a los nodos de una red obtener su configuracin de manera automtica. En una organizacin donde residen cientos o tal vez miles de nodos resultara un ardua labor asignar la configuracin del la red de los hosts de forma manual. La asignacin dinmica de direcciones IP es muy til para equipos mviles o que residirn en nuestra red de manera temporal. Las personas que se desplazan en diferentes oficinas pueden obtener una configuracin de red de acuerdo a sus necesidades. En este captulo mostraremos la mecnica del funcionamiento del servidor DHCP, ensearemos los pasos de la instalacin en Beakos GNU/Linux y realizaremos la configuracin de un servidor DHCP.

18.1 Funcionamiento del servicio de DHCP


La mecnica que se efecta entre un cliente y un servidor DHCP es la siguiente. El cliente es configurado para obtener su direccin IP de forma automtica a travs de un servidor DHCP. En la red local existe un servidor DHCP configurado para que escuche las peticiones de los clientes. El servidor que recibe la solicitud, revisa su archivo de configuracin para emitirle al cliente una respuesta, esta respuesta incluye la asignacin de una direccin IP, servidor DNS, puerta de enlace predeterminada, mscara de sub red etc. El cliente que ha recibido la respuesta del servidor configura los parmetros locales con los datos que ha recibido. El servidor mantiene una lista de direcciones que puede asignar a los clientes y mantiene otra lista de las direcciones que han sido asignadas. Cada direccin se emite por un periodo, durante el cual el cliente puede utilizar esa direccin, una vez terminado este periodo el cliente se vuelve a conectar con el servidor DHCP para renovar su direccin. Si el servidor no recibe la respuesta del cliente, este libera la direccin IP para colocarla en su base de datos de direcciones disponibles.

18.2 Instalacin del servidor DHCP


Beakos GNU/Linux tiene el cliente de DHCP instalado por defecto, para poder configurar una direccin IP proporcionada por otro servidor de manera automtica. Para la instalacin del servidor DHCP es necesaria la instalacin del paquete dhcp-3.0.6-i386-1, tecleamos:

root [ ~ ]# swaret --install dhcp-3.0.6-i386-1 Completado el comando anterior, debe ya tener instalado el servidor DHCP listo para funcionar.

18.2.1 Administracin del Servicio de DHCP


El paquete DHCP incluye un script para administrar el inicio y detencin de este servicio en particular. Para iniciar el servicio DHCP escribimos como usuario raz: root [ ~ ]# /etc/init.d/dhcp start Iniciando servidor DHCP...

OK

Para detener el servicio de DHCP tecleamos: root [ ~ ]# /etc/init.d/dhcp stop Deteniendo servidor DHCP...

OK

Verificar el estado del servicio de DHCP, escribimos en la consola: root [ ~ ]# /etc/init.d/dhcp status dhcpd is running with Process ID(s) 3226. Configurar el servidor para que inicie a la par del sistema, tecleamos: root [ ~ ]# chkconfig add dhcp

18.3 Configuracin del servidor DHCP


La configuracin del servidor DHCP se lleva a cabo en un solo archivo de configuracin llamado /etc/dhcpd.conf. La estructura general del archivo de configuracin es la siguiente: parmetros globales; Declaracin1 [parmetros relacionados a declaracion1] [subdeclaracin] Declaracin2 [parmetros relacionados a declaracion2] [subdeclaracin]

Se pueden aplicar parmetros distintos a cada tipo de declaraciones.

18.3.1 Declaraciones
Quiz se requiera agrupar a los clientes, para realizar esta labor podemos hacer uso de las siguientes declaraciones: group Esta declaracin nos permite aplicar una serie de parmetros y declaraciones a una lista de clientes, redes o subredes. Su sintaxis es la siguiente: group etiqueta [parmetros] [subdeclaraciones] Donde etiqueta es el nombre definido al grupo. host Esta declaracin se usa para aplicar un conjunto de parmetros y declaraciones a un anfitrin en particular. Su sintaxis es la siguiente: host etiqueta [parmetros] [subdeclaraciones]

Donde etiqueta corresponde al nombre del host.

shared network Esta declaracin agrupa un conjunto de direcciones dentro de una red fsica. Su sintaxis corresponde a: shared-network etiqueta [parmetros] [subdeclaraciones]

Donde etiqueta corresponde al nombre que se le asignar a la red compartida.

subnet Esta declaracin se utiliza para aplicar una serie de parmetros a un conjunto de direcciones IP que coincidan con la descripcin de esta declaracin. Su sintaxis es la siguiente: subnet numero_subred netmask mscara_de_red [parmetros] [subdeclaraciones]

El nmero_subred es la red a la que pertenecern los anfitriones conectados a la red fsica. Netmask es justamente eso, la mscara de sub red.

range Especifica el rango de direcciones que estarn disponibles para la asignacin a los clientes. La sintaxis es como sigue:

range [direccin inicial] [direccin final];

18.3.2 Parmetros
El uso de los parmetros permite afectar el comportamiento del servidor para un determinado nmero de clientes. Los parmetros de uso ms frecuente son: authoritative Este parmetro sirve para evitar que los hosts que han recibido una direccin de otro servidor DHCP, reciban mensajes DHCPNAK de un servidor no autntico, esto es especialmente til para un servidor DHCP que ha sido instalado de forma accidental y pueda causar conflictos a un servidor DHCP autntico. La sintaxis de este parmetro corresponde a: authoritative; not authoritative;

default-lease-time Este parmetro nos permite fijar el periodo de tiempo que una direccin IP estar asignada a un host, si terminado ese periodo el host no se encuentra conectado en la red el servidor DHCP liberar esta direccin para poder asignarla a otro equipo. Su sintaxis corresponde a: default-lease-time periodo en segundos;

fixed address Este parmetro slo aparece en la declaracin del host. Indica las direcciones que ese host puede utilizar. Su sintaxis es la siguiente: fixed-address direccin, direccion2;

hardware A fin de que un cliente de BOOTP sea reconocido, la direccin MAC debe ser declarada en la declaracin host. Su sintaxis es: hardware tipo_hardware direccinMAC; Donde tipo_hardware corresponde al tipo de interfaz de red del hardware ethernet y token-ring son los nicos soportados.

max-lease-time Un cliente tiene la opcin de especificar los segundos que requerir la direccin IP en prstamo. Esta direccin IP le ser asignada mientras no exceda el nmero de segundos declarados en este parmetro, de lo contrario se le asignar con un mximo de segundos especificado aqu. Su sintaxis es:

max-lease-time segundos; server-name Este parmetro se utiliza para informar al cliente el servidor desde el cual est iniciando. Esta instruccin resulta til para aquellos clientes remotos. Su sintaxis es: server-name nombre del servidor;

18.3.3 Opciones
DHCP ofrece soporte para ms de 60 opciones, la sintaxis para ellas es la siguiente: option nombreDelaOpcin [modificadores] En la siguiente tabla describimos las opciones ms utilizadas. Tabla 18-1 Opciones para DHCP Descripcin La direccin en la subred que ser especificada como broadcast. Nombre de dominio que los clientes deben utilizar en bsquedas locales de otros hosts. Servidores de nombres de dominio que los clientes utilizarn. Cadena de texto utilizada para identificar al cliente. Nombre de dominio de NIS para el cliente. Servidores NIS disponibles para los clientes. Una lista de ruteadores que el cliente debe utilizar, preferentemente declarar en orden. Mscara de red para la subred. Declara una lista de servidores de tiempo para nuestra clientes.

Opcin broadcast-address domain-name domain-name-servers host-name nis-domain nis-servers routers subnet-mask ntp-servers

18.4 Ejemplo de un archivo de configuracin


Mostraremos un archivo de configuracin de DHCP (/etc/dhcpd.conf), es decir la configuracin por defecto con la que viene el paquete de Beakos GNU/Linux. server-identifier dhcp.dcinfotec.local; ddns-update-style interim; ignore client-updates; authoritative; default-lease-time 900; max-lease-time 7200; option ip-forwarding off; option domain-name "dcinfotec.local"; shared-network miredlocal { subnet 192.168.4.0 netmask 255.255.255.0 { option routers 192.168.4.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.4.255;

option domain-name-servers 192.168.105.50; option ntp-servers 200.23.51.205, 132.248.81.29, 148.234.7.30; range 192.168.4.220 192.168.4.226; } } En este ejemplo podemos observar que hemos definido una sola subred (192.168.4.0), se ha establecido para nuestros clientes como puerta de enlace la direccin 192.168.4.254, como servidores DNS la direccin 192.168.105.50, como servidores de tiempo para nuestros clientes est definidos los hosts 200.23.51.205, 132.248.81.29, tambin se defini el rango de direcciones IP que se pueden asignar a los clientes entre las direcciones IP 192.168.4.220 y 192.168.4.226.

Captulo 19 Copias de seguridad


Un servidor del que no se realizan respaldos es una autntica bomba de tiempo. Realizar respaldos de forma peridica es parte de las tareas habituales de cualquier administrador de sistemas. En este captulo hablaremos de Amanda un software que realiza copias de seguridad para servidor Beakos GNU/Linux y otras distribuciones.

19.1 Amanda
Amanda es el software Open Source lder mundial en soluciones de respaldo y recuperacin. En la actualidad protege ms de un milln de servidores y equipos de escritorio ejecutando distintas versiones de Sistemas Operativos Linux, UNIX, BSD, Mac OS-X y Microsoft Windows. Amanda es una solucin estable debido a su cdigo de alta calidad Como Amanda no utiliza drivers propietarios de dispositivos, cualquier dispositivo soportado por el sistema operativo ser funcional con Amanda. El administrador del sistema no tiene que preocuparse de romper el soporte para un dispositivo al actualizar Amanda. Amanda simplifica la vida de los administradores de sistemas quienes pueden fcilmente poner un servidor de respaldos para mltiples clientes y respaldar directamente en cinta o en un sistema basado en algn tipo de almacenamiento.

19.2 Instalacin de Amanda


Para la instalacin de Amanda es necesario primero instalar el paquete xinetd que actualmente se encuentra en los repositorios de Beakos. Solo basta con ejecutar en una terminal los siguientes comandos : root [ ~ ]# swaret --update root [ ~ ]# swaret --install xinetd Una vez instalado xinetd podemos proceder a la instalacin de Amanda, para ello creamos el grupo y usuario backup: root [ ~ ]# groupadd backup root [ ~ ]# useradd backup g backup Ejecutamos el siguiente comando: root [ ~ ]# swaret install amanda-server Creamos el siguiente archivo sin importar el contenido ya que lo editaremos mas tarde. Posteriormente le creamos un enlace simblico: root [ ~ ]# vim /etc/amandahosts root [ ~ ]# ln sf /etc/amandahosts /home/backup/.amandahosts

19.3 Configuracin de un servidor amanda


Si tenemos pensado en conectar clientes de otras distribuciones u otros sistemas operativos a un servidor Amanda con Beakos GNU/Linux, en la pgina de http://www.amanda.org/ encontraras los paquetes compatibles de Amanda para su distribucin correspondiente. Para esta implementacin se realizar bajo el siguiente esquema: Maquina 1 Server Beakos con Zamanda Server hostname server1 Maquina 2 Server Beakos con Zamanda Client hostname client1 Se edita el hosts de cada mquina ubicado en /etc/hosts para asignar el nombre de la maquina a dichas ips de cliente y servidor de respaldos.

19.3.1 Modificar Amanda Daemons para usar auth bsdtcp


Las configuraciones para comunicacin de servidor y cliente se encuentran en la configuracin de xinetd. Para el servidor son 3 configuraciones amanda, amandaidx, amidxtape, debemos crear los siguientes archivos en el servidor. /etc/xinetd.d/amanda # default: on # description: The amanda service amanda { socket_type = protocol = wait = user = group = groups = server = server_args = amidxtaped disable = } /etc/xinetd.d/amandaidx #default: on # description: The amanda service amandaidx { socket_type = protocol = wait = user = group = groups = server = server_args = amidxtaped index service stream tcp no backup backup yes /usr/libexec/amindexd -auth=bsdtcp amdump amindexd service stream tcp no backup backup yes /usr/libexec/amandad -auth=bsdtcp amdump amindexd no

disable }

= no

/etc/xinetd.d/amidxtape #default: on # description: The amanda service amidxtape { socket_type = protocol = wait = user = group = groups = server = server_args = amidxtaped disable = } tape service stream tcp no backup backup yes /usr/libexec/amidxtaped -auth=bsdtcp amdump amindexd no

19.3.2 Configuracin del respaldo


Definiremos el respaldo y su configuracin como ejemplo. El usuario configurado por default en la instalacin es: user name: backup user group: backup home dir: /home/backup los directorios /etc/amanda/ejemplo y

Comenzamos por crear /var/amanda/ejemplo

root [ ~ ]# mkdir p /etc/amanda/ejemplo root [ ~ ]# mkdir p /var/amanda/ejemplo Con los permisos de propietario y grupo backup ejecutamos el siguiente comando: root [ ~ ]# chown backup:backup /etc/amanda/ejemplo Crear la configuracin amanda.conf mnima para el uso de amanda server. Creamos el archivo

root [ ~ ]# vim /etc/amanda/ejemplo/amanda.conf

Con el siguiente contenido: #Configuracion Amanda org "Infotec.com.mx" reports mailto "backup" your site dumpuser "backup" logdir infofile filename indexdir tapelist tapes # your organization name for # space separated list of operators at # the user to run dumps under # log directory # database # index directory # list of used

"/etc/amanda/ejemplo/logs" "/etc/amanda/ejemplo/curinfo" "/etc/amanda/ejemplo/index" "/etc/amanda/ejemplo/tapelist"

#dumpcycle 1 days tapecycle 1 tapes tapetype DISK tpchanger "chg-disk" changerfile "/etc/amanda/ejemplo/changer" # needed by amlabel tapedev "file:/backup/vtapes/ejemplo/slots" define tapetype DISK { comment "Backup to HD" length 30 gbytes } # comment holding disk section if needed #holdingdisk hd1 { # directory "/dumps/" #} # to be used by any other dumptype define dumptype global { comment "Global definitions" index yes record yes auth "bsdtcp" } define dumptype daily { global comment "daily dumptype" compress client fast program "GNUTAR" strategy standard priority high exclude list "/etc/amanda/ejemplo/global-debian-exclude.list" }

La configuracin amanda.conf muestra cmo vamos hacer un backup manual de nuestro cliente con una sola cinta de 5 GigaBytes. Que ser remplazada cada vez que se realice el backup. En la pgina de wiki.zmanda.com encontraras ms informacin acerca de amanda.conf Ahora comenzaremos por crear la base de datos de nuestro respaldo para la configuracin ejemplo que fue especificada dentro de amanda.conf: root [ ~ ]# su backup -c "mkdir /etc/amanda/ejemplo/logs" root [ ~ ]# su backup -c "mkdir /etc/amanda/ejemplo/index" root [ ~ ]# touch /etc/amanda/ejemplo/tapelist root [ ~ ]# su backup -c "mkdir /etc/amanda/ejemplo/curinfo"

19.3.3 Configuracin de Cintas Virtuales


Simularemos el uso de cintas virtuales ejecutando los siguientes comandos. Creamos el directorio para las cintas virtuales: root [ ~ ]# mkdir -p /backup/vtapes/ejemplo/slots

Cambiamos el dueo del directorio /backup al usuario backup: root [ ~ ]# chown backup:backup -R /backup/

Cambiamos los permisos al directorio /backup/vtapes por 750: root [ ~ ]# chmod 750 /backup/vtapes

Iniciamos sesin con el usuario bakup: root [ ~ ]# su - backup

backup [ ~ ]$ cd /backup/vtapes/ejemplo/slots/ Creando directorio de cinta virtual: backup [ /backup/vtapes/ejemplo/slots ]$ mkdir slot1 Inicializando el cargador de la cinta creando el siguiente enlace simblico: backup [ /backup/vtapes/ejemplo/slots ]$ ln -sf slot1 data

Probamos las cintas virtuales ejecutando los commandos siguientes con el usuario backup: backup [ /backup/vtapes/ejemplo/slots ]$ /usr/sbin/ammt -f \ file:/backup/vtapes/ejemplo/slots status file:/backup/vtapes/ejemplo/slots status: ONLINE backup [ /backup/vtapes/ejemplo/slots ]$ /usr/sbin/amlabel \ ejemplo slot1 Reiniciar la cinta virtual para que regrese al primer slot, esto debe hacerse con el usuario backup. backup [ /backup/vtapes/ejemplo/slots ]$ /usr/sbin/amtape ejemplo reset amtape: changer is reset, slot 1 is loaded. backup [ /backup/vtapes/ejemplo/slots ]$ lrwxrwxrwx 1 backup backup 35 jun /space/vtapes/ejemplo/slots/slot1 ls -l data

7 02:27 data ->

19.3.4 Definicin de las rutas de respaldos


En esta seccin se especifica la ruta de respaldo para cada cliente, crear con el usuario backup el siguiente archivo: backup [ /backup/vtapes/ejemplo/slots ]$ vim /etc/amanda/ejemplo/disklist Crear el siguiente contenido dentro del archivo: client1 /var/www/www.mysite.com/ daily Donde client1 indica el host que se va a respaldar, bien podemos colocar la direccin IP, /var/www/www.mysite.com/ indica el directorio que se va a respaldar, daily le indica a servidor amanda que el servidor debe respaldarse todos los das. Creamos el archivo donde declaramos los hosts que podrn accesar al servidor, esto lo realizamos con el usuario raz: root [ ~ ]# vim /etc/amandahosts

Con el siguiente contenido: server1 root amindexd amidxtaped server1 backup amdump client1 root amindexd amidxtaped En la lnea: server1 backup amdump permite al usuario backup de server1 correr respaldos en el mismo server1. En la lnea: client1 root amindexd amidxtapd le estamos otorgando permiso al cliente para que lleva acabo la restauracin de informacin. Para una mayor informacin sobre accesos puedes consultar la informacin referente en wiki.zmanda.com Debemos de darle solo privilegios de lectura al archivo /etc/amandahosts y este debe pertenecer al usuario y grupo backup. Revisar que exista el enlace simblico que creamos en la directorio inicial del root [ ~ ]# chmod 400 /etc/amandahosts root [ ~ ]# chown backup:backup /etc/amandahosts root [ ~ ]# ls -l /etc/amandahosts -r-------- 1 backup backup 157 mai 27 02:12 /etc/amandahosts root [ ~ ]# ls -l /home/backup/.amandahosts lrwxrwxrwx 1 root root 16 mai 17 00:41 /home/backup/.amandahosts -> /etc/amandahosts

19.4 Configuracin del Cliente


Como usuario root instala el paquete xinetd.

root [ ~ ]# swaret update root [ ~ ]# swaret install xinetd


Agregar usuario backup al grupo backup e instalar el paquete amanda-cliente

root [ ~ ]# groupadd backup root [ ~ ]# useradd backup g backup root [ ~ ]# swaret install amanda-client

19.4.1 Solo para otras distribuciones


Solo usaremos el xinetd para amanda as que se tendr que verificar si el inetd est instalado y en su caso comentar el uso de amanda en este mismo. #:OTHER: Other services #amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad -auth=bsd amdump amindexd amidxtaped Modificar los deamons de amanda para ser uso del acceso mediante bsdtcp Para ms detalles en wiki.zamanda.com Editamos amindextape y amandaidx en el directorio /etc/xinetd.d/ como en los ejemplos: /etc/xinetd.d/amanda service amanda { socket_type protocol wait user group groups server server_args amidxtaped disable } Aplicamos cambios: # /etc/init.d/xinetd restart Configuracin de amanda-client.conf Creamos la direccin /etc/amanda/ejemplo/ # vim /etc/amanda/ejemplo/amanda-client.conf conf "ejemplo" # your config name index_server "server1" # tu servidor amanda tape_server "server1" # tu servidor amanda

= = = = = = = =

stream tcp no backup backup yes /usr/libexec/amandad -auth=bsdtcp amdump amindexd

= no

auth "bsdtcp"

Autorizaciones en amandahosts Editamos el archivo amandahosts para permitir respaldos de zserver # vi /etc/amandahosts zserver backup amdump #el hostname del servidor de respaldo para dar acceso

Ms informacin en wiki.zamanda.com Creamos un enlace simblico #ln s /etc/amandahosts /home/backup/.amandahosts # ls -la /home/backup/.amandahosts lrwxrwxrwx 1 root root 23 mai 25 11:19 /home/backup/.amandahosts -> /etc/amanda/amandahosts #chmod 400 /etc/amandahosts Creamos el archivo amandates #vim /etc/amandates Y guardamos Creamos gnutar-lists #mkdir /etc/amanda/gnutar-lists Asignamos permisos #chown backup:backup /etc/amanda/gnutar-lists Lista de exclusin Es una lista para que el usuario backup salte el respaldo en dichos directorios Ms informacin wiki.amanda.com $ vi /etc/amanda/ejemplo/global-debian-exclude.list ./proc ./media ./mnt ./dev chmod 644 /var/amanda/ejemplo/global-debian-exclude.list

Prueba de configuracin Accede con usuario backup e introducir la siguiente lnea en el servidor de respaldo $ /usr/sbin/amcheck ejemplo Amanda Tape Server Host Check ----------------------------Holding disk /dumps/: 48800396 kB disk space available, using 48800396 kB slot 2: read label `ejemplo, date `20100607' cannot overwrite active tape DailySet1-02 slot 3: read label `ejemplo, date `X' NOTE: skipping tape-writable test Tape DailySet1-03 label ok NOTE: host info dir /etc/amanda/ejemplo/curinfo/zclient does not exist NOTE: it will be created on the next run. NOTE: index dir /etc/amanda/ejemplo/index/zclient does not exist NOTE: it will be created on the next run. Server check took 0.115 seconds Amanda Backup Client Hosts Check -------------------------------Client check: 1 host checked in 0.132 seconds, 0 problems found (brought to you by Amanda 2.5.2p1) Prueba de respaldo Accede como usuario backup en el servidor de respaldo seguido del siguiente comando $ amdump ejemplo Para ver informacion acerca del respaldo echo teclea los siguientes comandos $amadmin ejemplo find $amstatus ejemplo Ms informacin en wiki.zamada.com Programar respaldo Respaldo diario a la 1:00 hrs # su backup -c "crontab -e" 0 1 * * 1-7 /usr/local/sbin/amdump ejemplo

Restaurar El usuario root de zclient mediante cd se sita en el lugar que se piensa restaurar ejemplo: /temp siguiendo el siguiente comando # amrecover AMRECOVER Version 2.5.2p1. Contacting server on zserver ... 220 zserver AMANDA index server (2.5.2p1) ready. Setting restore date to today (2010-06-07) 200 Working date set to 2010-06-07. 200 Config set to ejemplo. 501 Host zclient is not in your disklist. Trying host bckclient.mydomain.com ... 200 Dump host set to bckclient.mydomain.com. Use the setdisk command to choose dump disk to recover amrecover> listdisk 200- List of disk for host bckclient.mydomain.com 201- / 201- /var/www/www.mysite.com 201- /boot amrecover> setdisk /var/www/www.mysite.com 200 Disk set to /var/www/www.mysite.com. amrecover> ls 2010-06-07 xmlrpc/ 2010-06-07 tmp/ 2010-06-07 templates/ 2010-06-07 robots.txt 2010-06-07 plugins/ 2010-06-07 modules/ 2010-06-07 logs/ 2010-06-07 libraries/ 2010-06-07 language/ 2010-06-07 index2.php 2010-06-07 index.php 2010-06-07 includes/ 2010-06-07 images/ 2010-06-07 htaccess.txt 2010-06-07 configuration.php-dist 2010-06-07 configuration.php 2010-06-07 components/ 2010-06-07 cache/ 2010-06-07 aicontactsafe/ 2010-06-07 administrator/

2010-06-07 LICENSES.php 2010-06-07 LICENSE.php 2010-06-07 INSTALL.php 2010-06-07 CREDITS.php 2010-06-07 COPYRIGHT.php 2010-06-07 CHANGELOG.php 2010-06-07 .htaccess 2010-06-07 . amrecover> add * Added dir /xmlrpc/ at date 2010-06-07 Added dir /tmp/ at date 2010-06-07 Added dir /templates/ at date 2010-06-07 Added file /robots.txt Added dir /plugins/ at date 2010-06-07 Added dir /modules/ at date 2010-06-07 Added dir /logs/ at date 2010-06-07 Added dir /libraries/ at date 2010-06-07 Added dir /language/ at date 2010-06-07 Added file /index2.php Added file /index.php Added dir /includes/ at date 2010-06-07 Added dir /images/ at date 2010-06-07 Added file /htaccess.txt Added file /configuration.php-dist Added file /configuration.php Added dir /components/ at date 2010-06-07 Added dir /cache/ at date 2010-06-07 Added dir /aicontactsafe/ at date 2010-06-07 Added dir /administrator/ at date 2010-06-07 Added file /LICENSES.php Added file /LICENSE.php Added file /INSTALL.php Added file /CREDITS.php Added file /COPYRIGHT.php Added file /CHANGELOG.php Added file /.htaccess amrecover> extract Extracting files using tape drive chg-disk on host zserver The following tapes are needed: ejemplo Restoring files into directory /tmp Continue [?/Y/n]? y

Extracting files using tape drive chg-disk on host zserver. Load tape ejemplo now Continue [?/Y/n/s/t]? y ./administrator/ ./administrator/backups/ Note: Ejecutar help dentro de amrecover para ver ms comandos

Captulo 20 Berkeley Internet Name Domain (BIND)


En la actualidad las redes modernas como Internet, los usuarios localizan a los hosts por su nombre no por su direccin, esta labor resultara complicada si tomamos en cuenta el gran nmero de direcciones IP que existen en la actualidad, no podramos recordar de manera tan sencilla una direccin IP como lo hacemos con un nombre. Los encargados de realizar est traduccin de nombres a direcciones IP son los servidores DNS (Domain Name Server). En este captulo abordaremos la configuracin de un servidor BIND, modificando sus archivos de configuracin y analizando las diferentes configuraciones que son posibles con Beakos GNU/Linux, al final realizaremos un ejemplo prctico de la configuracin.

20.1 Historia del DNS


En los inicios del protocolo TCP/IP, la traduccin de las direcciones IP a nombres de hosts se realizaba se realizaba a travs de un archivo que era distribuido a todas las mquinas de Internet va FTP. Cuando empezaron a multiplicarse el nmero de host a inicios de 1980, este archivo se volvi muy difcil de administrar. Entonces se pens crear un sistema capaz de distribuir y replicar de manera automtica los nombres de los equipos a travs de Internet. Un servidor que almacenara una tabla con los nombres de host y su respectiva la direccin IP, esta es la esencia de un servidor DNS. Si no existieran los servidores DNS, la solucin sera tener un servidor central con millones de nombres, actualizndose miles de veces al da, esto se hubiera convertido en una labor imposible de realizar.

20.2 La tabla de hosts


No es necesario que todos los sitios requieren hacer uso de un servidor DNS, en una red local de dimensiones pequeas, bastar con editar el archivo /etc/hosts para que su servidor mantenga una relacin de de nombres de host y direcciones IP. Aun cuando tenga acceso a un servidor DNS este archivo resulta til porque es ms rpido buscar en un archivo de forma local que consultar un servidor DNS. Tambin nos resulta til si deseaos asignar un nombre a un host, pero no tenemos acceso al servidor DNS. La sintaxis de un archivo /etc/hosts es muy simple, la primer columna representa la direccin del host, las columnas subsecuentes establecen los nombres de hosts relacionados a la direccin IP, veamos un ejemplo:

127.0.0.1 200.38.189.20 207.248.177.128

localhost www.beakos.org.mx www.infotec.com.mx beakos

El servicio de DNS maneja una relacin de nombres mucho ms robusta, en los siguientes temas veremos la instalacin y configuracin de servidor DNS, pero antes debemos comprender como funciona.

20.3 Dominios y conceptos sobre los nombres de hosts


En esta seccin analizaremos los conceptos necesarios para poder implementar un servidor DNS de manera optima. Lo ms comn es cuando accesamos a un sitio de internet es realizarlo a travs del nombre del dominio, este nombre es conocido como FQDN (nombre dominio complemente calificado), ejemplo: www.beakos.com.mx. Cada palabra separada por un punto tiene una razn de ser, cada seccin se denomina zona. analicemos un nombre de dominio:

Dominio de tercer nivel

Dominio de primer nivel

mail.

beakos.

com

Dominio de segundo nivel

Dominio raz

Figura 20-1. Ejemplo de FQDN para beakos.com Las zonas son definidas en servidores de nombres autorizados a travs del uso de archivos de zona, los servidores de correo a ser utilizados por un dominio particular o sub-dominio y ms. Los archivos de zona son almacenados en servidores de nombres primarios (tambin llamados servidores de nombres maestros), los cuales son autorizados y en donde los cambios se hacen a los archivos, y los servidores de nombres secundarios (tambin llamados servidores de nombres esclavos), reciben sus archivos de zona desde los servidores de nombres primarios. Cualquier servidor de nombres puede ser un servidor primario y secundario para zonas diferentes al mismo tiempo, y tambin pueden ser considerados autoritarios para mltiples zonas. Todo depende de cmo se configure el servidor de nombres.

20.3.1 Dominio raz


La estructura de un DNS es similar a un rbol invertido, en la cima de este rbol se localiza el dominio raz y es representado por un punto (.).

Este punto no aparece cuando escribimos un FQDN, pero supongamos que ah est aunque no est escrito. Un ejemplo sera el FQDN de www.beakos.com.mx que en realidad es www.beakos.com.mx. aunque el punto no se escriba. En el mundo existen alrededor de 13 servidores de dominio raz administrados por diversos proveedores y estos proveedores a sus vez pueden tener rplicas para balancear la carga de peticiones, mejorar la seguridad y la disponibilidad del servicio. El sitio de internet www.rootservers.org nos ofrece una lista de servidores raz con sus respectivas rplicas distribuidos por el mundo.

20.3.2 Dominios de primer nivel


Despus de los dominios raz siguen los dominios de primer nivel (LTD), estos dominios de primer nivel, son los geogrficos y funcionales. Los dominios de primer nivel se pueden subdividir en dos categoras, los genricos donde se ubican los .com, .gob, .edu, .org, .net y los dominios de primer nivel para cdigo de pas como .mx para Mxico, .us para estados unidos, .uk para Reino Unido, entre muchos otros. El dominio de primer nivel para www.beakos.com.mx sera .mx.

20.3.3 Dominios de segundo nivel


Los nombres en este nivel describen el nombre de la organizacin o individuos, por ejemplo: redhat.com, beakos.org.mx, Kernel.org. El dominio de segundo nivel para www.beakos.com.mx corresponde a beakos.

20.3.4 Dominios de tercer nivel


En este nivel el propietario del FQDN puede decidir qu hacer con l, lo ms usual es utilizar el dominio de tercer nivel para asignarlo a los hosts como nombre, utilizarlos para la asignacin de subdominios. Tambin es muy frecuente utilizar en este nivel el www como alias hacia el nombre del anfitrin existente. El nombre de tercer nivel para www.beakos.com.mx es www.

En la siguiente tabla mostramos la estructura jerrquica de un subdominio.

Dominio RAIZ (.) Dominios de primer nivel genricos y geogrficos .com .gob.mx .edu .org.mx

Sitios individuales redhat Subdominio s mail yahoo correo

bicentenario biblioteca

ilce

udem

beakos news

Figura 20-2 rbol jerrquico de DNS

20.3.5 El dominio in-addr.arpa


El DNS permite a la resolucin trabajar en ambos sentidos. La resolucin hacia adelante resuelve nombres a direcciones IP y la resolucin inversa, resuelve las direcciones IP a nombres de dominio. Para esta ltima se requiere del dominio in-addr-arpa, este correspondera al dominio de primer nivel de la direccin IP. En la resolucin hacia adelante los dominios se leen de derecha a izquierda, en la resolucin inversa sucede de izquierda a derecha. La resolucin inversa de la direccin 192.168.4.23 correponde a: 23.4.168.192.in-addr-arpa

20.4 Tipos de servidores de DNS


Existen 4 tipos de servidores de dominios: los primarios, los secundarios, los de cach y los raz. Los servidores de raz publican un archivo de zona raz para otros servidores DNS y para los clientes respectivos, estos servidores operan como el primer puerto de llamada en la parte ms elevada del rbol de DNS (.). Estos servidores describen los DNS primarios que tienen autoridad para los dominios primarios, es decir slo delegan las peticiones a otros DNS.

20.4.1 Servidores DNS primarios


Son aquellos autorizados par aun dominio en particular y es aqu donde residen los archivos de configuracin de los nombres de dominio y sus respectivas direcciones IP, es decir los cambios y actualizaciones son realizadas en estos DNS.

20.4.2 Servidores DNS secundarios


Estos servidores DNS funcionan de respaldo para los DNS primarios, sus principal funcin es aligerar la carga, estos servidores reciben actualizaciones de manera peridica provenientes de su DNS primario que sabe de la existencia de sus DNS secundarios.

20.4.3 Servidores DNS de cach


Como su nombre lo indica son servidores de almacenamiento. No contienen una configuracin en particular. Cuando un servidor recibe una peticin de un cliente, lo primero que realiza es verificar si en su propia memoria, si no puede resolver e nombre de dominio entonces pregunta a su servidor DNS primario, es de esperar que este dato quede almacenado en la memoria del servidor. Es importante resaltar que cuando un servidor de cach manda una respuesta a un cliente, esto se realiza de forma no autorizada. Todos lo servidores de dominio actan como servidores de cach sin importar si son primarios o secundarios.

20.5 Instalacin de un servidor DNS


Beakos GNU/Linux dispone en sus repositorios de software al servidor DNS BIND (Berkeley Internet Name Domain) (Dominio de nombre de Internet de Berkeley). Bind es un servidor robusto y muy popular, implementado en un gran nmero de servidores de DNS en todo el mundo. Bind es desarrollado hoy en da por Internet Systems Consortium puede consultar su portal www.isc.org . Suponiendo que tiene una conexin funcional a internet para la instalacin de BIND en nuestro sistema Beakos GNU/Linux escribimos lo siguiente utilizando la cuenta de usuario raz. root [ ~ ]# swaret update root [ ~ ]# swaret --install bind

20.6 Archivo de configuracin de named.conf


El archivo principal de configuracin de BIND llamado /srv/named/etc/named.conf, este archivo especifica el comportamiento de Bind y si existen otros archivos de configuracin que el servidor debe tomar en cuenta. El formato del archivo de configuracin en general maneja la siguiente estructura: enunciado { opciones; }; // comentarios

El enunciado se refiere a una faceta que se est a punto de declarar que contendr instrucciones para el funcionamiento del bind , las opciones son las instrucciones especificas que se ejercen sobre los enunciados. Veamos un ejemplo: options { directory "/etc/namedb"; pid-file "/var/run/named.pid"; };

La opcin directory nos indica el directorio de configuracin de named, la opcin pidfile indicar la ruta donde se almacena el archivo con el nmero de proceso de bind.

20.6.1 Comentarios
Los comentarios puede escribirse de alguna de las siguientes formas, no hay un estilo mejor que otro, puede usar el que mejor le guste. Tabla 20-1. Formato para los comentarios Descripcin Comentarios al estilo de C++ Comentarios al estilo de C Comantarios al estilo de BASH, PERL o Python

Formato // /**/ #

20.6.2 Palabras reservadas para los enunciados


Puede emplear las siguientes palabras en los enunciados del archivo de configuracin: Tabla 20-2. Enunciados para el archivo de configuracin Descripcin Lista de control de acceso para determinar los accesos a nuestro servidor DNS. hace referencia a otro archivo de configuracin que ser incluido en la configuracin de bind. Especifica la informacin que ser registrada en la las bitcoras del sistema y la ubicacin de estos archivos. Opciones de configuracin global del servidor. Permite declarar canales de control a ser utilizados por la utilidad rndc. Establece opciones de configuracin especificas para el servidor. Define las zonas para bind. Define las llaves de encriptacin DNSSEC para el servidor. Muestra diferentes vistas de la informacin de la zona a clientes diferentes. Define una lista con el nombre de los servidores maestros para utilizarse en las zonas.

Enunciado acl include logging options controls server zone key view masters

20.6.3 El enunciado include


Una buena prctica para organizarnos mejor cuando manejamos grandes cantidades de informacin en el archivo de configuracin, es dividirlo en varios archivos ms pequeos y crear una entrada para incluirlo en nuestro archivo de configuracin. Ejemplo:

include ruta_del_archivo_incluido;

20.6.4 Enunciado logging


Este enunciado como se describe en la tabla anterior, determina que actividad quedar registrada y la ubicacin de los registros. Por defecto la configuracin de este enunciado est estructurada para funcionar en conjunto con syslog, los registros son almacenados en el archivo /var/log/daemon.log, la configuracin por defecto es suficientemente adecuada para la deteccin y correccin de errores, por lo que en la mayora de los casos no requerir realizar alguna modificacin a este enunciado. Veamos la configuracin del registro cronolgico. logging { category default { default_syslog; default_debug; }; category unmatched { null; }; channel default_syslog { syslog daemon; //enva informacin al demonio de syslog severity info; }; } // enviar la informacin como prioridad

20.6.5 Enunciado server


Este enunciado proporciona informacin a bind sobre otros servidores de dominios con los que puede interactuar, un ejemplo del enunciado server sera: server direccin_ip { bogus yes/no; transfer-format one-answer/many-answers; <otras opciones> }; Donde direccin_ip es el servidor remoto en cuestin, la opcin bogus le indica al servidor local si el servidor remoto est enviando informacin errnea. La opcin transferformat, informa a nuestro servidor si l servidor remoto puede aceptar respuestas mltiples.

20.6.6 Zonas
Este enunciado nos permite definir Zonas, la definicin de zona resulta muchas veces confusa, una zona no es siempre lo mismo que un dominio de DNS, analicemos, los dominios son designados junto con los lmites organizacionales. De un dominio pueden surgir varios subdominios, cada subdominio recibe su zona, estas zonas en conjunto representan al dominio en su totalidad. Ejemplo: Supongamos que el news.beakos.com.mx, dominio beakos.com.mx tiene varios subdominios como soporte.beakos.com.mx, descargas.beakos.com.mx,

mail.beakos.com.mx. Cada uno de estos 4 subdominios tiene una zona, dentro del dominio beakos.com.mx existen algunos hosts, por lo tanto tambin tiene su propia zona. En total estamos hablando de 5 zonas para el dominio beakos.com.mx. Cuando hablamos de un dominio que no tiene subdominios, podemos decir que la zona y el dominio son los mismos en cuestin de configuracin.

20.6.7 Enunciado Key


Este enunciado nos permite generar una llave de seguridad para nuestro servidor, esto es indispensable para que bind pueda iniciar. Para generar la llave de seguridad es necesario teclear el siguiente comando: root [ ~ ]# rndc-confgen -r /dev/urandom -b 512 | grep \ -m 1 "secret" | cut -d '"' -f 2 El comando anterior nos generar un clave que debemos copiar y pegar a nuestro archivo de configuracin dentro del enunciado key, quedando nuestro enunciado de la siguiente manera: key "rndc_key" { algorithm hmac-md5; secret "zs+VJIeDBeRg5oJiJJFbjC17XuirYn9qPoahFl4M/lNYxA=="; };

20.7 Configuracin de BIND


En los temas anteriores analizamos las diferencias entre los tipos de servidores de dominio que existen, tambin analizamos a la estructura del archivo de configuracin. En sntesis in servidor primario contiene la informacin de las zonas y es el encargado de administrarlas, los servidores secundarios reciben las notificaciones de los cambios de los servidores primarios y actualizan sus datos. Los primarios y secundarios tienen autoridad en sus respuestas al cliente, no as los servidores de cach que no poseen registros autorizados.

20.7.1 Definicin de una zona primaria


Ahora que tenemos claramente el concepto de una zona, estamos listos para definir una zona primaria en nuestro archivo de configuracin de BIND, recordemos que est ubicado en /srv/named/etc/named.conf , la sintaxis que corresponde para la asignacin de una zona es: zone nombre_dominio { type master; file ruta_archivo; }; ruta_archivo se refiere al archivo que contendr la informacin de la base de datos correspondiente a la zona. Veamos un ejemplo para el dominio beakos.com.mx

zone beakos.com.mx { type master; file beakos.com.mx.db; }; Si analizamos el archivo de configuracin named.conf, observamos que en el enunciado options en la opcin directory ya viene la ruta definida para los archivos de configuracin, esta apunta a /etc/namedb, pero como named se ejecuta en un entorno enjaulado la ruta verdadera corresponde a /srv/named/etc/namedb por lo que no ser necesario incluir toda la ruta completa en la declaracin de la zona. Esta declaracin de zona nos permite obtener la direccin IP de un nombre, pero no olvidemos que hay que realizar la declaracin inversa, sobre todo si se trata de un servidor de correo electrnico. La declaracin in-addr.arpa dentro del archivo de configuracin de bind correspondiente a beakos.com.mx: zone 1.168.192.in-addr.arpa { type master; file beakos.com.mx.rev; }; El formato de in-addr.arpa consiste en declarar los tres primeros objetos de la direccin IP como se puede observar. En la siguiente tabla se muestran algunas opciones que podemos utilizar para nuestra declaracin de zona, slo aplicarn para la zona en cuestin. Tabla 20-2. Opciones adicionales para declaracin de Zonas primarias. Opcin Descripcin check-names Esta opcin se utiliza para restringir el conjunto de caracteres y la sintaxis de nombres de dominio en ciertos archivos maestros. allow-update Especifica los servidores DNS que podrn recibir actualizaciones de las zonas primarias. allow-query Especifica cules hosts tienen permitido hacer consultas de DNS ordinarias. Si no se especifica, el valor por defecto es permitir a las preguntas de todos los hosts. allow-transfer Especifica que servidores pueden recibir transferencias de zonas del servidor maestro. notify El servidor DNS enva mensajes de notificacin a los servidores secundarios, si no se especifica esta opcin su valor es positivo yes. also-notify Define una lista servidores a los que se les notificar los cambios , esta opcin slo es vlida si el valor de notify es no.

20.7.2 Definicin de una zona secundaria


La declaracin de una zona secundaria en el archivo de configuracin de bind, se realiza de manera muy similar a la declaracin de una zona primaria, veamos la sintaxis: zone nombre_dominio { type slave; masters lista_servidores_primarios ; file ruta_archivo; };

donde nombre_dominio debe corresponder al mismo especificado en la zona primaria, lista_servidores_primarios corresponde a la direccin IP donde est el servidor primario para esta zona. Tabla 20-3. Opciones adicionales para declaracin de Zonas secundarias. Opcin Descripcin check-names Esta opcin se utiliza para restringir el conjunto de caracteres y la sintaxis de nombres de dominio en ciertos archivos maestros. allow-update Especifica los servidores DNS que podrn recibir actualizaciones de las zonas primarias. allow-query Especifica cules hosts tienen permitido hacer consultas de DNS ordinarias. Si no se especifica, el valor por defecto es permitir a las preguntas de todos los hosts. allow-transfer Especifica que servidores pueden recibir transferencias de zonas del servidor maestro. max-transfer- Tiempo mximo para recibir una transferencia. time-in

20.7.3 Definicin de una zona de cach


La configuracin de una zona de cach es ms sencilla que las configuraciones anteriores, siempre es necesario aun cuando contemos con un servidor primario o secundario, es necesario para que el servidor pueda hacer una bsqueda recursiva con el objetivo de encontrar otros nombres de host. La configuracin del un servidor de cach se compone de tres secciones. Dos de estas secciones ya estn definidas en Beakos GNU/Linux, analicemos la primera. zone "." { type hint; file "root.hints"; Esta seccin especifica los servidores raz que nuestro servidor DNS puede consultar. La lnea type hint define que estamos hablando de un servidor de cach. La lnea file "root.hints" establece el archivo que contiene las entradas que apuntan al servidor raz.

La segunda seccin se muestra a continuacin, su funcin es definir la bsqueda inversa para el anfitrin local. Esta es la entrada inversa para resolver 127.0.0.1 al nombre localhost : zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; };

Con estas entradas es suficiente para poder crear un servidor de nombres de cach. La directiva file apunta a los archivos con la configuracin de las zonas, que son de suma importancia para la configuracin de un servidor DNS.

20.8 Tipos de registros DNS


En esta seccin describiremos la elaboracin de los archivos de base de datos del servidor de nombres, es decir los archivos que contendrn la informacin relacionada a las zonas, para ello analizaremos los registros ms comunes para un DNS.

20.8.1 Inicio de autoridad (SOA)


El SOA (Start of authority) o inicio de autoridad, sirve para iniciar la descripcin de las entradas DNS de un sitio. Su formato es el siguiente: nombre.dominio. ( 2010110901 10800 1800 1209600 604800 ) IN SOA sn.nombre.dominio. admin.nombre.dominio. ; ; ; ; nmero de serie actualizacin (3 horas) reintentos en segundos (30 minutos) caduca en segundos (2 semanas) ; mnimo en segundos

En la primer lnea debemos reemplazar nombre.dominio. por el nombre de nuestro dominio. IN indica que se trata de un registro de internet. SOA le dice al servidor DNS que es un inicio de autoridad sn.nombre.dominio. es el dominio calificado (FQDN) para el servidor de nombres en este dominio, no omita el punto final. admin.nombre.dominio. es la direccin de correo electrnico del administrador del dominio. Observemos que no se incluye la direccin con @, esta se sustituye con un punto (.) ejemplo: linux.infotec.com.mx La lnea 2 indica el nmero de serie. No olvide incrementar el nmero de serie cada que edite el registro, es un error frecuente cuando se actualizan datos en un servidor DNS.

La lnea 3 le ndica a los DNS secundarios la frecuencia con la que deben preguntarle al servidor primario si los valores se han actualizado. La lnea 4 indica le indica a los servidores secundarios el intervalo de tiempo en segundos de los reintentos en caso de no poder comunicarse con el servidor primario. La lnea 5 especifica la caducidad, les indica a los servidores secundarios que si no pueden contactar al servidor primario para una actualizacin, deben de dejar de hacer consultas, el tiempo establecido es de 2 semanas. La lnea 6 les indica a los servidores de cach el tiempo que deben esperar antes de que caduque una entrada en caso de no poder contactar al servidor primario.

20.8.2 Servidor de nombres (NS)


Este registro se utiliza para dar de alta los servidores de nombres que mantienen registros para esta zona. Es decir los servidores que funcionen como secundarios deben de estar registrados en este apartado. Su sintaxis sera la siguiente: IN IN NS NS sn1.nombre.dominio sn2.nombre.dominio

Se recomienda por lo menos mantener un servidor secundario.

20.8.3 Registro de direccin (A)


Se trata del registro ms comn que podemos encontrar dentro de un DNS. Este registro se usa para asignar una direccin IP a un nombre de equipo. Su formato es simple: nombre_equipo IN A direccin_IP

Un registro de un host llamado servidor.beakos.com.mx que tiene una direccin IP 192.168.4.251se definira de la siguiente manera: servidor IN A 192.168.4.251

El nombre del equipo se aadir de manera automtica al nombre de registro SOA, supongamos que en el registro SOA tenemos beakos.com.mx. (no olvide poner el punto), la direccin IP 192.168.4.251 corresponde a servidor.beakos.com.mx.

20.8.4 Registro apuntador (PTR)


Este registro sirve para llevar a cabo la resolucin de nombre inversa, lo cual permite especificar una direccin IP y determinar el nombre del anfitrin correspondiente, este registro es muy parecido al anterior, su formato corresponde a: direccin_IP IN PTR nombre_equipo

La direccin IP debe escribirse completa y con un punto al final, el nombre del host debe llevar el FQDN competo con el punto al final. Ejemplo:

192.168.4.251.

IN

PTR

servidor.beakos.com.mx.

20.8.5 Intercambio de correo (MX)


El registro MX (Mail Exchanger) se encarga de informar a otros equipos acerca del servidor de correo de la zona. Si un equipo enva un correo electrnico a un dominio, en realidad no lo enva a ese dominio, lo que hace es revisar el registro DNS correspondiente al servidor de correo y manda el correo electrnico a ese equipo. El formato de registro MX es el siguiente: nombre_dominio. IN MX peso nombre_host

Donde nombre_dominio se refiere al nombre del sitio, con punto final (no olvidar). Peso se refiere a la prioridad de cada servidor mientras ms grande es el nmero menor prioridad tiene. El nombre_host indica el nombre del host que funcionar como servidor de correo para la zona. El nombre_host debe tener una entrada correspondiente a un registro A. Veamos un ejemplo de este registro: beakos.com.mx. IN IN MX MX 10 20 mail1 mail2

Si el nombre de dominio no se especifica, este se extrae del registro SOA.

20.8.6 Nombre cannico (CNAME)


Este tipo de registro permite la creacin de alias para los nombres de hosts. Un uso que se le puede dar a este servidor es crear un nuevo dominio fcil de recordar, sin perder el dominio anterior, es decir utilizar ambos mientras se genera el cambio paulatino. El formato para este tipo de registro es el siguiente: nuevo_nombre_host Un ejemplo real sera: servidorweb www IN IN A CNAME 192.168.4.251 servidorweb IN CNAME nombre_host

20.8.7 Registros de documentacin RP y TXT


Siempre es buena idea proporcionar informacin adicional con registros reales, no slo haciendo uso de comentarios, para estos sirven estos los registros TXT y RP. Los registros TXT son entradas en texto con las cuales pude insertar informacin que considere adecuada, por ejemplo el nombre del administrador del dominio. Cada registro debe estar ligado a un nombre de host en particular. Ejemplo: www.beakos.com.mx. IN IN TXT Contacto: Francisco Sosa TXT Mail: linux@infotec.com.mx

El registro RP enuncia quien es el responsable para un determinado equipo. Ejemplo: www.beakos.com.mx IN RP linux.beakos.com.mx. beakos.com.mx.

20.9 Configuracin de un servidor DNS completo


Hemos repasado la teora necesaria para poder comprender el funcionamiento de un servidor DNS, ahora recurramos a un ejemplo prctico para comprender mejor la integracin de nuestro servidor siguiendo el siguiente esquema: Configuraremos dos servidores de nombres llamados dns1.beakos.com.mx y dns2.beakos.com.mx con las direcciones IP 192.168.0.133 y 192.168.0.129 respectivamente. dn2.beakos.com.mx ser el servidor secundario para la zona beakos.com.mx Definir los registros tipo A para los host web1, mail, dn1 y dn2 Definir el registro MX para el host mail Definir www.beakos.com.mx como alias (CNAME) para el servidor web1.

20.9.1 Configuracin de la zona en el servidor primario


1)El primer paso es la configuracin de la zona en el servidor primario. Utilice el editor de textos vi para agregar la siguiente zona al archivo de configuracin de Bind. zone "beakos.com.mx" { type master; file "beakos.com.mx.zone"; }; Donde "beakos.com.mx.zone" es el archivo de base de datos donde se encuentra la configuracin para la zona. 2) Dentro del directorio /srv/named/etc/namedb beakos.com.mx.zone el cual tendr el siguiente contenido: $TTL 1W beakos.com.mx. 20101111 10800 1800 1209600 604800 ) IN SOA crear el archivo

beakos.com.mx. soporte.beakos.com.mx. ( ; nmero de serie ; actualizacin (3 horas) ; reintentos en segundos (30 minutos) ; caduca en segundos (2 semanas) ; mnimo en segundos

dns1

IN IN IN

NS MX A

dns2.beakos.com.mx. 10 mail.beakos.com.mx. 192.168.0.133

dns2 web1 mail www.beakos.com.mx.

IN IN IN IN

A A A CNAME

192.168.0.129 192.168.0.251 192.168.0.56 web1

20.9.2 Configuracin de la zona en el servidor secundario


1) En el servidor secundario ser necesario generar en el archivo de configuracin named.conf la siguiente entrada: zone "beakos.com.mx" { type slave; masters {192.168.0.133; }; file beakos.com.mx.slave; };

20.9.3 Configuracin de la zona inversa en el servidor primario


1) Debemos crear la zona inversa por lo menos para el servidor de correo, ya que sin ella no funcionar. Agregamos la siguiente zona al archivo de configuracin de Bind: zone "0.168.192.in-addr.arpa" { type master; file "beakos.com.mx.rev"; }; 2) Procedemos a crear el archivo de zona llamado beakos.com.mx.rev en el directorio /srv/named/etc/namedb agregndole el siguiente contenido: $TTL 1W @ IN SOA 20101111 10800 1800 1209600 604800 )

beakos.com.mx. soporte.beakos.com.mx. ( ; nmero de serie ; actualizacin (3 horas) ; reintentos en segundos (30 minutos) ; caduca en segundos (2 semanas) ; mnimo en segundos IN IN IN IN NS NS PTR PTR dns1.beakos.com.mx. dns2.beakos.com.mx. web1.beakos.com.mx. mail.beakos.com.mx.

251 56

Los primeros nmeros del registro PTR (251 y 26) corresponden al ltimo octeto de la direccin IP, recordemos que los primeros 3 octetos estn declarados en la zona dentro del archivo de configuracin de Bind.

Una vez concluida la configuracin debemos de iniciar los servicios en el servidor primario y secundario. root [ /srv/named/etc ]# /etc/init.d/bind start Iniciando servidor named... [ OK ]

20.10 Consultas a servidores DNS


En esta seccin veremos algunas herramientas que nos pueden proporcionar informacin sobre los DNS.

20.10.1 Comando host


Este comando nos pude proporcionar la direccin de un servido, es un comando muy fcil de utilizar, utilicemos la informacin de la seccin anterior para realizar un par de ejemplos: root [ /srv/named/etc/namedb ]# host www.beakos.com.mx www.beakos.com.mx is an alias for web1.beakos.com.mx. web1.beakos.com.mx has address 192.168.0.251 Podemos observar que tenemos configurado un alias para web1 apuntando al host www y que la direccin IP que le corresponde es la 192.168.0.251. Tambin podemos realizar la consulta de algn inverso: root [ ~ ]# host 192.168.0.251 251.0.168.192.in-addr.arpa domain name pointer web1.beakos.com.mx.

20.10.2 El comando dig


El comando dig (Domain Information Groper) permite realizar consultas a los servidores DNS, nos permite comprobar el mapeo hacia nombres de internet as como el mapeo inverso. su modo de uso es el siguiente: dig @servidor_dns dominio tipo_de_registro @servidor es el nombre del servidor al que se va a consultar, dominio es el nombre del dominio del que se desea obtener informacin y el tipo_registro corresponde a los registro que se quieren obtener (A,SOA,MX,NS,TXT,ANY). Por ejemplo si queremos obtener el registro MX (mail exchange) del servidor DNS primario que previamente configuramos teclearamos lo siguiente: root [ ~ ]# dig @192.168.0.133 beakos.com.mx MX ; <<>> DiG 9.4.1-P1 <<>> @192.168.0.133 beakos.com.mx MX ; (1 server found) ;; global options: printcmd ;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; QUESTION SECTION: ;beakos.com.mx. ;; ANSWER SECTION: beakos.com.mx. mail.beakos.com.mx. ;; AUTHORITY SECTION: beakos.com.mx. dns2.beakos.com.mx. beakos.com.mx. dns1.beakos.com.mx. ;; ADDITIONAL SECTION: mail.beakos.com.mx. dns1.beakos.com.mx. dns2.beakos.com.mx. ;; ;; ;; ;;

IN

MX

604800

IN

MX

10

604800 604800

IN IN

NS NS

604800 604800 604800

IN IN IN

A A A

192.168.0.56 192.168.0.133 192.168.0.129

Query time: 0 msec SERVER: 192.168.0.133#53(192.168.0.133) WHEN: Thu Nov 11 19:43:55 2010 MSG SIZE rcvd: 138

De lo ms destacado podemos ver que el registro MX para el dominio beakos.com.mx corresponde al host mail.beakos.com.mx y su registro A corresponde a la direccin IP 192.168.0.56.

Captulo 21 File Tranfer Protocol (FTP)


El protocolo de transferencia de archivos permite al usuario accesar a ficheros y directorios de manera remota como si se realizara de manera local, el usuario no conoce el sistema de archivos de archivos con el que est trabajando. Este protocolo existe desde 1971 y se sigue utilizando a la fecha. En este captulo mostraremos la forma de instalar y configurar un servidor FTP en la distribucin de Beakos GNU/Linux, aunque si usted quisiera utilizar otra distribucin, este manual podra serle de utilidad con toda certeza.

21.1 Funcionamiento de FTP


El protocolo FTP establece una doble conexin entre un cliente y un servidor, analicemos los pasos: Conexin de control: utiliza el puerto 21 de TCP por defecto, le indica al servidor las operaciones que el cliente desea realizar. Conexin de datos: utiliza el puerto 20 de TCP y sirve para la transferencia de archivos del servidor al cliente o viceversa.

21.1.1 Accesos a un servidor FTP


Existen dos formas de accesar a un servidor FTP: Mediante acceso privado: el servidor est configurado para solicitar un usuario y contrasea a fin de acceder al contenido. Este mtodo no es nada recomendable porque el nombre de usuario y contrasea viajan a travs de la red sin ningn tipo de encriptacin, en lugar de ello puede emplear el protocolo SFTP (Secure Transfer File Protocol). Mediante acceso pblico: El cliente no debe ingresar ningn usuario para acceder al contenido del servidor, es el uso ms comn que se le da actualmente a este tipo de servidores, ya que es ms rpido que la transferencia de archivos por el protocolo HTTP.

Una vez que se ha establecido conexin con el servidor el cliente tendr acceso a los archivos y directorios, a travs de navegador web, lnea de comandos o clientes con interfaz grfica para FTP, los privilegios de cada usuario dependern directamente de la configuracin del servidor.

21.1.2 FTP activo


En este modo el cliente se conecta desde un puerto temporal mayor a 1024 hasta el puerto del servidor (puerto 21). Cuando el cliente est listo para recibir archivos el servidor inicia una conexin a travs del puerto 20 hacia la direccin IP y puerto proporcionada por el cliente. El problema de este modo es que el firewall del lado del cliente posiblemente nieguen conexiones que se originen desde internet ha un puerto que se supone que el fiwewall debe proteger.

21.1.3 FTP pasivo


El cliente emite el comando PASV para indicarle al servidor que quiere acceder datos en modo pasivo, el servidor responde entonces con una direccin IP y un puerto al cual el cliente puede conectarse. El problema con este modo es que los firewalls negarn conexiones a puertos temporales en el servidores que se supone que debera proteger. Un ejemplo claro de esto es cuando conectamos con el servidor pero al iniciar una transferencia de datos el servidor parece no responder.

21.2 Instalacin de VSFTPD


El paquete VSFTPD es que software para FTP disponible para la distribucin de Beakos GNU/Linux, VSFTPD est licenciado bajo la GPL (Licencia Pblica General). Para la instalacin en nuestra distribucin teclearemos el siguiente comando: root [ ~ ]# swaret --install vsftpd La instalacin como vemos resulta bastante sencilla de realizar, el paquete contiene un guin de inicio, para que la aplicacin arranque a la par del sistema de forma automtica, la habilitamos con el siguiente comando: root [ ~ ]# chkconfig --add vsftpd

Comprobamos los niveles de ejecucin en los cuales se activa, ejecutando el comando: root [ ~ ]# chkconfig --list vsftpd vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

21.3 Configuracin de VSFTPD


El comando de instalacin ejecutado en la seccin anterior instal los binarios correspondientes y adems el archivo de configuracin en la ruta /etc/vsftpd.conf donde concurren todos los cambios relacionados al servicio de FTP.

21.3.1 El archivo vsftpd.conf


Como se mencion anteriormente la configuracin principal para el servicio de FTP se realiza en /etc/vsftpd.conf este archivo es muy sencillo de configurar, sigue las siguientes directrices, no debemos dejar espacio entre las palabras y el signo =. opcin=valor

Tabla 21-1. Opciones ms comunes para el archivo de configuracin vsftpd.conf Opcin Descripcin write_enable Habilita la escritura en el servidor FTP. dirmessage_enable Muestra un mensaje al usuario al acceder a los directorios. ftpd_banner Muestra un mensaje de bienvenida. local_enable Habilita el acceso por FTP a los usuario con cuenta en el servidor. local_umask Establece la mscara de creacin de archivos, es decir si el valor es 022 los archivos creados tendrn permisos 755. chroot_local_user Limita el acceso a los usuarios a usar slo su directorio. chroot_list_enable Habilita una lista de usuarios con cuenta en el servidor a los que no se les restringe el acceso a otros directorios. Se debe usar con el parmetro chroot_list_file chroot_list_file Apunta al archivo que contiene los usuarios con cuenta en el servidor que no estn limitados a su directorio. local_max_rate Indica la tasa de transferencia de informacin expresada en bytes. anonymous_enable Habilita el acceso al servidor a usuarios que no tienen cuenta en el servidor. anon_world_readable_only permite descargar ficheros a los usuarios sin cuenta en el servidor. anon_upload_enable Permite colocar ficheros en el servidor a los usuarios sin cuenta. anon_umask Establece los permisos a los directorios y ficheros colocados por usuarios sin cuenta en el servidor. anon_mkdir_write_enable Permite la creacin de directorios a los usuarios sin cuenta en el servidor. anon_other_write_enable Permite borrar y actualizar en el servidor a los usuarios annimos. anon_max_rate Tasa de transferencia de datos para usuarios annimos (valor en bites). log_ftp_protocol Habilita el registro de todas la peticiones al servidor y su respuesta. xferlog_enable Habilita o inhabilita el registro de las transferencias de archivos. vsftpd_log_file Indica el fichero y la ruta que contendr el archivo de registro conect_from_prot_20 Habilita el puerto 20 del servidor para la transferencia de datos. idle_session_timeout Establece el tiempo en que se cerrara la conexin de usuarios inactivos. listen Habilita el modo de trabajo standalone para el servidor FTP chown_uploads Esta opcin cambia la propiedad de los archivos subidos en forma annima al usuario especificado en la opcin chown_username. chown_username Especifica el nombre del usuario que se asignar como propietario de los archivos subidos en forma annima. Su valor predeterminado es root.

20.3.2 Ejemplo de un archivo de configuracin vsftpd.conf


Este es un ejemplo de un servidor VSFTPD, el archivo se ubicar en /etc/vsftpd.conf listen=NO anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES xferlog_enable=YES # Make sure PORT transfer connections originate from port 20 (ftp-data). chroot_local_user=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log log_ftp_protocol=YES idle_session_timeout=600 data_connection_timeout=120 ftpd_banner= Generic FTP Daemon Ready ls_recurse_enable=NO chown_uploads=YES local_umask=022

Referencias
Las siguientes referencias presentan informacin que consideramos til y que abarca temas ms all de los presentados en este manual de implementacin. Considere que la rpida evolucin de GNU/Linux puede hacer que algn material de los presentes ya no se encuentre disponible o se considere obsoleto. Existen dos formas de montar un sistema de archivos NFS, la primera es utilizando el comando mount con sus distintas opciones, la segunda es creando una entrada en el archivo /etc/fstab, esta ultima persistir a un reinicio del sistema por lo tanto es la ms viable.

Libros
Manual de administracin de Linux Steve Shah, Wale Soyinka Editorial Mc Graw Hill, 2007 Programacin en Linux Al Descubierto Kurt Wall Editorial Prentice Hall, Segunda Edicin Redes GNU/Linux, Manual del Administrador Emiliano Francisco Spinella Editorial USERS, 2007 Gua Esencial de Linux Jonh Ray Editorial Prentice Hall, 2002

Manuales y tutoriales en lnea


Implementacin y administracin de Cuotas en Linux http://www.linuxtotal.com.mx/index.php?cont=info Uso de Listas para Control de Acceso (ACLs). http://www.escomposlinux.org/iarenaza/articulo-acls/acls-linux-samba.html Uso de systctl para control TCP y UDP. http://wwwx.cs.unc.edu/~sparkst/howto/network Configuracin de RAID a nivel de software para Linux. http://es.tldp.org/COMO-INSFLUG/COMOs/Software-RAID

Manual de Rsync http://samba.anu.edu.au/ftp/rsync/rsync.html Manuales diversos para GNU/Linux http://www.howtoforge.com/ Administracin Linux http://fferrer.dsic.upv.es/cursos/Linux/basico/ Gua para administradores de Sistema GNU/Linux http://www.ibiblio.org/pub/Linux/docs/LDP/system-admin-guide/translations/es/html/

Informacin general
Kernel de Linux http://www.kernel.org/ Free Software Fundation http://www.fsf.org/ GNU Operating System http://www.gnu.org/home.es.html Razones para usar GNU/Linux http://www.obtengalinux.org/