Manual de Implementacion de Beakos GNU2

255
Manual de Implementacion de Beakos GNU/Linux Version 2 03/03/2011 Fondo de Información y documentación para la Industria Infotec Autor: Francisco Sosa Romero

description

manual de como implementar Beakos

Transcript of Manual de Implementacion de Beakos GNU2

Page 1: Manual de Implementacion de Beakos GNU2

Manual de Implementacio n de Beakos GNU/Linux Versio n 2 03/03/2011

Fondo de Información y documentación para la Industria Infotec

Autor: Francisco Sosa Romero

Page 2: Manual de Implementacion de Beakos GNU2
Page 3: Manual de Implementacion de Beakos GNU2

Beakos GNU/Linux: Manual de Implementación de Beakos GNU/Linux 1.0

Este manual de implementación documenta toda la información relacionada a la configuración y administración de Beakos GNU/Linux en ambientes de producción.

Fondo de Información y

Documentación para la Industria

Av. San Fernando #37

Col. Toriello Guerra Del. Tlalpan

México D. F.

Colaboradores

Francisco Sosa Romero

Jesús Arriola Villarreal

Antonio Moreno Herrera

Carlos Torres Arcega

Ángel Ruiz Rosas

Page 4: Manual de Implementacion de Beakos GNU2

Información sobre los derechos reservados relacionados a esta publicación.

Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0

Usted es libre de:

Copiar, distribuir y comunicar públicamente 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, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.

Page 5: Manual de Implementacion de Beakos GNU2

Tabla de contenido

Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 .................................. 4

Usted es libre de:............................................................................................................... 4

Bajo las condiciones siguientes: ........................................................................................ 4

Introducción .......................................................................................... 15

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

Capítulo 1 Instalación de Beakos GNU/Linux ......................................... 17

Instalación guiada de Beakos GNU/Linux ............................................................................... 17

1.2 Instalación personalizada .................................................................................................. 25

1.3 Arranque del sistema operativo Beakos GNU/Linux ......................................................... 39

1.3.1 Cargador de inicialización GRUB ................................................................................ 39

1.3.2 Proceso INIT ............................................................................................................... 40

1.3.3 Secuencia de arranque en Beakos GNU/Linux ........................................................... 40

Capítulo 2 Configuración de la red ......................................................... 41

2.1 Archivos de configuración de la red .................................................................................. 41

2.2 Asistente de la configuración de la red ............................................................................. 42

2.2.1 Asignación de dirección IP estática ............................................................................ 43

2.2.2 Asignación de la dirección IP a través de DHCP ......................................................... 46

2.2.3 Parámetros de DNS ................................................................................................... 47

2.2.4 Configuración del nombre del sistema ...................................................................... 49

2.3 Administración de hosts .................................................................................................... 50

Capítulo 3 Control de servicios de Beakos GNU/Linux ........................... 51

3.1 Niveles de ejecución .......................................................................................................... 51

3.2 Administración de servicios con chkconfig ....................................................................... 53

3.3 Administración de servicios a través de Webmin ............................................................. 54

Capítulo 4 Línea de comandos ............................................................... 57

4.1 Intérprete de comandos BASH ......................................................................................... 57

4.1.1 Control de tareas ........................................................................................................ 60

4.1.2 Variables de entorno .................................................................................................. 60

4.1.3 Redirección ................................................................................................................. 61

4.1.4 Páginas del manual ..................................................................................................... 62

4.1.5 Textinfo ...................................................................................................................... 62

4.1.7 Listar archivos ............................................................................................................. 62

Page 6: Manual de Implementacion de Beakos GNU2

4.2 Manipulación 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 simbólicos ............................................................................................ 67

4.2.6 Buscar archivos y directorios...................................................................................... 67

4.2.7 Compresión 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 Edición de textos ............................................................................................................... 70

4.4 Lectura de archivos ........................................................................................................... 71

4.5 Utilerías del sistema .......................................................................................................... 71

4.5.1 Mostrar el directorio de ubicación actual .................................................................. 71

4.5.2 Espacio libre del disco ................................................................................................ 71

4.5.3 Mostrar un archivo mientras crece ............................................................................ 72

4.5.4 Sincronización de archivos y copias de respaldo con RSYNC ..................................... 72

4.5.5 Listar procesos ............................................................................................................ 73

4.5.6 Matar procesos .......................................................................................................... 73

Capítulo 5 Administración 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 contraseña ............................................................................................. 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 intérprete de comandos .......................................................................... 75

5.4 El archivo /etc/shadow ..................................................................................................... 76

5.4.1 Políticas de expiración de contraseñas ...................................................................... 76

Page 7: Manual de Implementacion de Beakos GNU2

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 Administración de usuarios a través de Webmin ............................................................ 80

5.8 Usuarios y permisos de acceso ......................................................................................... 80

4.9 Comprensión de SetUID, SetGID y Sticky bit ..................................................................... 80

5.10 Listas de accesos (ACL) .................................................................................................... 82

5.10.1 Activación del uso de listas de acceso sobre sistemas de archivos. ........................ 82

5.10.2 Implementación de listas de acceso en archivos y directorios. ............................... 83

5.11 Configuración y administración de cuotas ...................................................................... 85

5.11.1 Activación del uso de cuotas sobre sistemas de archivos. ....................................... 85

5.11.2 Administración de cuotas de disco. ......................................................................... 86

Capítulo 6 Planificación de tareas con Cron ........................................... 88

6.1 Configuración de una tarea con cron ............................................................................ 88

6.2 Control de acceso a cron ............................................................................................... 91

6.3 Administración de tareas planificadas a través de Webmin ......................................... 91

6.3.1 Editar una tarea programada ..................................................................................... 92

6.3.2 Control de acceso de los usuarios a cron ................................................................... 92

Capítulo 7 Administración de sistemas de archivos ............................... 93

7.1 Administración de particiones .......................................................................................... 93

7.1.2 ext3 y ReiserFS ........................................................................................................... 93

7.1.3 Creación de una partición .......................................................................................... 93

7.2 Utilización 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 más comunes ................................................................................. 100

7.5.1 Configuración de software RAID .............................................................................. 101

7.5.2 Pruebas y recuperación ............................................................................................ 103

Page 8: Manual de Implementacion de Beakos GNU2

7.6 Administración de volúmenes lógicos ............................................................................. 104

7.6.1 Creación de Grupos de volúmenes y volúmenes lógicos ........................................ 106

7.6.2 Redimensionando volúmenes lógicos ...................................................................... 109

7.7 Crear un área de intercambio (SWAP) utilizando un archivo ......................................... 110

Capítulo 8 Configuración 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 Configuración de un firewall simple ......................................................................... 125

8.6 Configuración del firewall con Webmin .......................................................................... 127

Capítulo 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

Page 9: Manual de Implementacion de Beakos GNU2

9.2 Ajustes dentro de /proc .................................................................................................. 135

9.3 Uso del comando sysctl ................................................................................................... 136

Capítulo 10 Gestión de paquetes ......................................................... 138

11.1 Instalación y desinstalación de paquetes ...................................................................... 138

10.1.1 Comando installpkg ................................................................................................ 138

10.1.2 Comando removepkg ............................................................................................. 138

10.2 Administración de paquetes con SWARET .................................................................... 139

10.2.1 Archivo de configuración swaret.conf ................................................................... 139

10.2.2 Opciones del comando swaret ............................................................................... 141

10.3 Compilación de software desde el código fuente ......................................................... 142

10.3.1 Creación de paquetes con la herramienta Checkinstall ......................................... 144

Capítulo 11 Sistema de logs ............................................................ 145

11.1 El demonio Syslogd ....................................................................................................... 145

11.2 Configuración del demonio syslogd .............................................................................. 145

11.3 Enviar registros a otro sistema remoto ......................................................................... 146

Capítulo 12 Servicios sobre demanda .................................................. 148

12.1 Extended Internet Daemon ........................................................................................... 148

12.2 Instalación del Demonio Xinetd .................................................................................... 148

12.3 Configuración del demonio Xinetd ................................................................................ 148

12.3.1 Variables para servicios de Xinetd ......................................................................... 149

12.3.2 Ejemplos de servicios a través de Xinetd ............................................................... 150

Capítulo 13 Open SSH .......................................................................... 151

13.1 Ventajas de SSH ............................................................................................................. 151

13.2 Versiones de SSH ........................................................................................................... 151

13.3 Configuración del servidor SSH ..................................................................................... 151

13.4 Administración del servidor SSH a través 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

Capítulo 14 Servicios de impresión ...................................................... 158

14.1 Sistema de impresión cups ............................................................................................ 158

Page 10: Manual de Implementacion de Beakos GNU2

14.1.1 Características ........................................................................................................ 158

14.2 Funcionamiento ............................................................................................................ 158

14.3 Planificador.................................................................................................................... 159

14.4 Instalación 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 Configuración 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 línea de comandos ............................................. 169

14.8.4 Configuración de la impresora predeterminada .................................................... 170

14.8.5 Privilegios de impresión ......................................................................................... 171

14.8.6 Eliminar impresoras ............................................................................................... 171

Capítulo 15 Network File System (NFS) ................................................ 172

15.1 Historia de NFS .............................................................................................................. 172

15.2 Instalación de NFS ......................................................................................................... 172

15.3 Acceso y montaje de las particiones ............................................................................. 173

15.4 Configuración del servidor NFS ..................................................................................... 173

15.4.1 El archivo de configuración /etc/exports ............................................................... 174

15.4.2 Comando exportfs .................................................................................................. 174

15.4.3 Comando showmount ............................................................................................ 175

15.5 Configuración del cliente NFS ....................................................................................... 175

Capítulo 16 SAMBA (CIFS) .................................................................... 178

Page 11: Manual de Implementacion de Beakos GNU2

16.1 Características ............................................................................................................... 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 contraseñas ............................................................................. 179

16.3.1 Motores de usuarios y contraseñas ....................................................................... 180

16.4 Instalación de Samba .................................................................................................... 180

16.5 Configuración de Samba ............................................................................................... 181

16.5.1 Configuración 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 Integración al active directory ............................................................................... 187

16.8 SWAT (Samba Web Administration Tool) ..................................................................... 192

16.8.1 Menús 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

Capítulo 17 LDAP ................................................................................. 198

17.2 Conceptos básicos de LDAP ........................................................................................... 198

17.2.1 Jerarquía de LDAP .................................................................................................. 198

17.2.2 Funcionamiento de LDAP ....................................................................................... 199

17.2.3 Implementaciones de LDAP ................................................................................... 199

17.2.4 Términos 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 Instalación de OpenLDAP .............................................................................................. 202

17.5 Configuración de OpenLDAP ......................................................................................... 202

17.5.1 El archivo de configuración slapd.conf................................................................... 202

Page 12: Manual de Implementacion de Beakos GNU2

17.5.3 Administración del servicio de OpenLDAP ............................................................. 204

17.5.4 Configuración del cliente de OpenLDAP ................................................................ 205

17.6 Creación de objetos en OpenLDAP ........................................................................... 205

17.6.1 Consultas en un directorio LDAP ............................................................................ 206

17.7 Implementación de una libreta de direcciones en un directorio LDAP ........................ 207

17.7.1 Agregar los esquemas. ........................................................................................... 208

17.7.2 Instalación de PHPLDAPADMIN.............................................................................. 208

17.7.3 Creación de Objetos con PHPLDAPADMIN ............................................................ 210

17.7.4 Configuración del cliente de Correo ....................................................................... 211

Capítulo 18 DHCP ................................................................................ 214

18.1 Funcionamiento del servicio de DHCP .......................................................................... 214

18.2 Instalación del servidor DHCP ....................................................................................... 214

18.2.1 Administración del Servicio de DHCP ..................................................................... 215

18.3 Configuración del servidor DHCP .................................................................................. 215

18.3.1 Declaraciones ......................................................................................................... 216

18.3.2 Parámetros ............................................................................................................. 217

18.3.3 Opciones ................................................................................................................. 218

18.4 Ejemplo de un archivo de configuración ................................................................... 218

Capítulo 19 Copias de seguridad .......................................................... 220

19.1 Amanda ......................................................................................................................... 220

19.2 Instalación de Amanda .................................................................................................. 220

19.3 Configuración de un servidor amanda .......................................................................... 221

19.3.1 Modificar Amanda Daemons para usar auth bsdtcp ............................................. 221

19.3.2 Configuración del respaldo .................................................................................... 222

19.3.3 Configuración de Cintas Virtuales .......................................................................... 224

19.3.4 Definición de las rutas de respaldos ...................................................................... 225

19.4 Configuración del Cliente .............................................................................................. 226

19.4.1 Solo para otras distribuciones ................................................................................ 227

Capítulo 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 raíz ........................................................................................................... 234

Page 13: Manual de Implementacion de Beakos GNU2

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 Instalación de un servidor DNS .................................................................................... 237

20.6 Archivo de configuración 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 Configuración de BIND .................................................................................................. 240

20.7.1 Definición de una zona primaria ............................................................................ 240

20.7.2 Definición de una zona secundaria ........................................................................ 242

20.7.3 Definición 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 dirección (A) ....................................................................................... 244

20.8.4 Registro apuntador (PTR) ....................................................................................... 244

20.8.5 Intercambio de correo (MX) ................................................................................... 245

20.8.6 Nombre canónico (CNAME) ................................................................................... 245

20.8.7 Registros de documentación RP y TXT ................................................................... 245

20.9 Configuración de un servidor DNS completo ................................................................ 246

20.9.1 Configuración de la zona en el servidor primario .................................................. 246

20.9.2 Configuración de la zona en el servidor secundario .............................................. 247

20.9.3 Configuración de la zona inversa en el servidor primario ...................................... 247

20.10 Consultas a servidores DNS ......................................................................................... 248

Page 14: Manual de Implementacion de Beakos GNU2

20.10.1 Comando host ...................................................................................................... 248

20.10.2 El comando dig ..................................................................................................... 248

Capítulo 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 Instalación de VSFTPD ................................................................................................... 251

21.3 Configuración de VSFTPD .............................................................................................. 251

21.3.1 El archivo vsftpd.conf ............................................................................................. 251

20.3.2 Ejemplo de un archivo de configuración vsftpd.conf ............................................. 253

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

Libros ..................................................................................................................................... 254

Manuales y tutoriales en línea .............................................................................................. 254

Información general .............................................................................................................. 255

Índice .......................................................... ¡Error! Marcador no definido.

Page 15: Manual de Implementacion de Beakos GNU2

Introduccio n

Bienvenido al manual de implementación de Beakos GNU/Linux, este documento contiene

información sobre la instalación, personalización y tareas de mantenimiento de su sistema

Beakos GNU/Linux.

El proyecto de la distribución Beakos GNU/Linux, nace de analizar la tendencia de otras

distribuciones de GNU/Linux que en su intento de acercarse más al usuario final, incluyen

soporte para una gran cantidad de hardware y módulos 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

desempeñarse en ambientes de producción.

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 distribución 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 varían en tamaño y tipo de letra para

diferenciar su inclusión en una categoría específica, ejemplos de palabras con este tipo de

características 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 específicas, directorios, enlaces simbólicos utilizarán 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.

Page 16: Manual de Implementacion de Beakos GNU2

Aplicaciones

Cuando se haga mención de una aplicación de un usuario se utilizará este estilo (Calibri 11,

negrita).

Ejemplo:

Puede acceder a la interfaz de administración Webmin a través un navegador web como

firefox.

El intérprete de comandos se mostrara bajo la siguiente forma (Courier New 11), sombreado

en gris

root [ ~ ]#

De forma adicional se utilizan algunas imágenes para resaltar información importante.

Nota Tenga en cuenta que Beakos es sensible a

letras mayúsculas 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.

Page 17: Manual de Implementacion de Beakos GNU2

Capí tulo 1 Instalacio n de Beakos GNU/Linux

Instalación guiada de Beakos GNU/Linux La instalación guiada permite a los usuarios con pocos conocimientos instalar Beakos

GNU/Linux de una manera fácil, este método creará tres particiones:

/boot para alojar la imagen del Kernel y archivos de configuración para el arranque del

sistema operativo, tendrá un tamaño 130 Mb.

/ donde residirán todos los directorios del sistema, utilizará todo el espacio restante del

disco duro.

swap área de intercambio, tendrá el doble de tamaño que la memoria RAM de el

ordenador donde será instalado.

Page 18: Manual de Implementacion de Beakos GNU2

Pasos para llevar a cabo una instalación 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 página oficial del proyecto Beakos

www.beakos.com.mx

Seleccionar la opción “Instalar Beakos GNU/Linux”.

Page 19: Manual de Implementacion de Beakos GNU2

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.

Page 20: Manual de Implementacion de Beakos GNU2

Seleccionar el botón “EXIT” y presionar la tecla “enter” una vez que haya terminado de

leer la licencia GPL.

Seleccionar la modalidad de instalación “AUTOMÁTICA”.

Page 21: Manual de Implementacion de Beakos GNU2

Elegir el disco duro donde se llevará a cabo la instalación.

Una vez seleccionada la unidad correcta para continuar con la instalación automática, el

instalador procederá a definir el particionamiento adecuado.

Page 22: Manual de Implementacion de Beakos GNU2

Confirmar que desea continuar con la instalación.

Seleccionar la opción ―Yes‖ para proceder con la instalación de GRUB.

Page 23: Manual de Implementacion de Beakos GNU2

Elegir la opción ―No‖ deseo crear un Floppy de GRUB.

Ingresar el password que será asignado al super usuario “root” de 6 caracteres como

mínimo, posteriormente confirmar dicha contraseña ingresada.

Page 24: Manual de Implementacion de Beakos GNU2

Capturada correctamente la contraseña que será establecida para el usuario “root”,

seleccionar ―OK‖ para proceder en reiniciar el equipo y finalizar la instalación de Beakos

GNU/Linux.

Page 25: Manual de Implementacion de Beakos GNU2

1.2 Instalación personalizada Dentro de este apartado se mencionaran los pasos a seguir para realizar una correcta instalación 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”.

Page 26: Manual de Implementacion de Beakos GNU2

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.

Page 27: Manual de Implementacion de Beakos GNU2

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

Seleccionar la modalidad de instalación ―MANUAL‖.

Page 28: Manual de Implementacion de Beakos GNU2

Teclear “enter” al aviso que se muestra previo a la creación del esquema de

particionamiento.

Una vez posicionados en la siguiente ventana, seleccionar la opción ―PARTICIONAR‖

para personalizar nuestro esquema de particionamiento.

Page 29: Manual de Implementacion de Beakos GNU2

Elegir el disco duro donde se llevará a cabo la instalación.

Seleccionada la unidad correcta para continuar con la instalación personalizada, el

instalador pasara al menú de opciones previo a la creación del esquema de

particionamiento.

Page 30: Manual de Implementacion de Beakos GNU2

Para crear las particiones que necesitamos utilicemos la herramienta fdisk (véase el tema

7.1 Administración de particiones), necesitamos crear mínimamente las siguientes

particiones.

/ (raiz) que almacenará todos los archivos necesarios para el funcionamiento de beakos. Su tamaño mínimo debe ser de 4GB.

swap área de intercambio, su tamaño debe ser del doble de la memoria RAM, si es un servidor de más de 4 GB de RAM lo conveniente es que su tamaño no exceda los 4 GB.

Concluida la creación de las particiones necesarias para poder instalar Beakos,

procedemos a configurar la partición SWAP.

Page 31: Manual de Implementacion de Beakos GNU2

El instalador detectará automáticamente la partición SWAP creada previamente con la

herramienta fdisk, seleccionemos la opción ―Yes‖ para utilizar esa partición.

Si ya hemos activado alguna partición SWAP lo adecuado es reiniciar el sistema para no

corromper la memoria de las páginas que se encuentren actualmente, si está seguro de

que no hay particiones SWAP activas. Seleccionemos la opción ―OK‖.

Page 32: Manual de Implementacion de Beakos GNU2

El instalador de Beakos dará formato a las particiones SWAP, seleccione la opción ―Yes‖

para continuar.

Una vez que la partición tenga formato adecuado para actuar como área de intercambio el

instalador nos mostrará el guión que tendrá en el archivo /etc/fstab. Seleccionamos

―EXIT‖ para continuar.

Page 33: Manual de Implementacion de Beakos GNU2

Cuando se ha añadido la partición SWAP al archivo /etc/fstab seleccionamos la opción

―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.

Page 34: Manual de Implementacion de Beakos GNU2

Selecciona la partición donde se instalará el sistema.

Como la partición no ha sido formateada seleccionemos la opción ―Format‖, se le

asignará el sistema de archivos ext3.

Page 35: Manual de Implementacion de Beakos GNU2

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 partición que ya ha sido habilitada y el punto de

montaje asignado. Si estamos conformes seleccionamos ―Cancel‖ para continuar.

Page 36: Manual de Implementacion de Beakos GNU2

Ahora se mostrará como ha sido configurado el archivo /etc/fstab previo a la

instalación de Beakos. Selecciona ―EXIT‖ para ir al confirmación de la instalación.

Los parámetros han sido configurados a nuestra necesidad, seleccione ―Yes‖ para

concluir la instalación.

Page 37: Manual de Implementacion de Beakos GNU2

Concluida la instalación 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 información acerca de la configuración de GRUB en

caso de que el gestor se dañe, para fines prácticos seleccionamos la opción ―No‖.

Page 38: Manual de Implementacion de Beakos GNU2

Ingresar contraseña que será asignada al super usuario “root” de 6 caracteres como

mínimo, posteriormente confirmar dicha contraseña ingresada.

Capturada correctamente la contraseña que será establecida para el usuario “root”,

seleccionar ―OK‖ para proceder en reiniciar el equipo y finalizar la instalación de Beakos

GNU/Linux.

Page 39: Manual de Implementacion de Beakos GNU2

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 sección

analizaremos la inicialización 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 inicialización GRUB Todos los sistemas operativos necesitan un gestor de arranque o inicialización incluso los

sistemas operativos de la Familia de Microsoft también utilizan su gestor de arranque, su

principal función es pasarle el control al sistema operativo en cuestión, 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), sólo hablaremos de GRUB porque es el gestor más común

pues cuenta con muchas más opciones que LILO.

En las distribuciones más 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 código y los parámetros para cargar el núcleo que

inicia el sistema operativo, presenta el menú de inicialización y cuenta además con

una consola para añadir parámetros al gestor de arranque.

El GRUB de Beakos consta de dos entradas:

Beakos: Inicia el sistema operativo en modo de ejecución 3 (ver tema 3.1 Niveles de

ejecución), 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.

Page 40: Manual de Implementacion de Beakos GNU2

1.3.2 Proceso INIT Es el primer proceso ajeno al núcleo que arranca, este proceso lee la información del archivo

/etc/inittab y determina el nivel de ejecución, los valores de ejecución que se verán mas

a detalle en el capítulo3 son los siguientes:

0 Apagar el sistema.

1 Modo monousuario.

2 Modo multiusuario sin servicio de NFS.

3 Modo de operación normal sin interfaz gráfica.

4 Sin aplicación.

5 Modo multiusuario con X Windows.

6 Modo de reinicio.

1.3.3 Secuencia de arranque en Beakos GNU/Linux En resumen la secuencia de arranque consiste en:

Inicialización del BIOS: El BIOS define de que dispositivo desea leer primer información

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

información del disco duro y carga el gestor de arranque, que presenta un menú para

seleccionar el sistema operativo en cuestión y las opciones con las que arrancará.

Inicialización 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 ejecución 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 simbólicos al directorio /etc/init.d donde se define

en que niveles de arranque de los servicios.

Page 41: Manual de Implementacion de Beakos GNU2

Capí tulo 2 Configuracio n de la red

2.1 Archivos de configuración 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 configuración 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 pv4 y es su contenido la definición de su dirección IP, mascaras de

subred, Gateway, Broadcast etc..,

El siguiente es un ejemplo de la configuración 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 configuración de IP estática. 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

Configuración correspondiente utilizando el cliente de DHCP.

root [ ~ ]# cat > /etc/sysconfig/network-

devices/ifconfig.eth0/dhclient << "EOF"

ONBOOT="yes"

SERVICE="dhclient"

DHCP_START="-q "

DHCP_STOP="-q -r "

PRINTIP="no"

PRINTALL="no"

EOF

Page 42: Manual de Implementacion de Beakos GNU2

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 configuración de la red Beakos GNU/Linux cuenta con una herramienta de configuración de red para facilitar la

administración de dispositivos relacionados, configuración 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 configuración.

Page 43: Manual de Implementacion de Beakos GNU2

2.2.1 Asignación de dirección IP estática Asignar una dirección IP estática en Beakos se realiza de la siguiente forma:

Seleccionar en el asistente la opción ―CONFIG‖.

Seleccionar la interfaz a configurar.

Page 44: Manual de Implementacion de Beakos GNU2

Seleccionar la opción “Estática‖.

Asignar la dirección correspondiente .

Asignar máscara de subred.

Asignar puerta de enlace (Gateway).

Page 45: Manual de Implementacion de Beakos GNU2

Asignar Broadcast.

Presione “OK‖ para finalizar la configuración.

Aviso Al terminar de configurar una interfaz el

servicio de red se reiniciará, esto puede causar

intermitencia en algunos servicios dependientes de

la red.

Page 46: Manual de Implementacion de Beakos GNU2

2.2.2 Asignación de la dirección IP a través de DHCP Asignar una dirección IP a través del protocolo DHCP en Beakos se realiza de la siguiente

forma:

Seleccionar en el asistente la opción “CONFIG‖.

Seleccionar la interfaz a configurar.

Page 47: Manual de Implementacion de Beakos GNU2

Seleccionar la opción “DHCP‖.

Presionar “OK‖ para completar la configuración

2.2.3 Parámetros de DNS La configuración de los servidores DNS que utilizará Beakos GNU/Linux se realiza de la

siguiente forma:

Seleccionar la opción ―DNS‖ del menú de configuración.

La ventana de configuración nos mostrará los servidores DNS configurados en nuestro equipo

seleccionamos la opción “Yes‖ en caso de editar los servidores DNS.

Page 48: Manual de Implementacion de Beakos GNU2

Ingresamos la dirección IP del servidor DNS primario.

Ingresamos la dirección del servidor DNS secundario.

Seleccionamos la opción OK para completar la configuración.

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 línea siguiente:

nameserver <nombre_servidor_dns o dirección_IP>

Page 49: Manual de Implementacion de Beakos GNU2

2.2.4 Configuración del nombre del sistema La configuración del nombre del sistema se realiza de la siguiente forma:

Seleccionamos la opción ―NAME‖ del menú de configuración.

Nos mostrará el nombre actual del equipo seleccionamos la opción ―Yes‖ para realizar el

cambio.

Ingresamos el nombre de equipo en el campo de captura y seleccionamos la opción ―OK‖ para

concluir la configuración.

En caso de requerir la modificación del nombre de equipo forma directa en el archivo

/etc/sysconfig/network podemos utilizar el editor de textos vim agregando la línea

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

Page 50: Manual de Implementacion de Beakos GNU2

2.3 Administración de hosts El archivo principal para la configuración de hosts es /etc/hosts, su función es resolver los

nombre de equipo y nombre de dominio que no pueden ser resueltos por un servidor DNS.

Ejemplo:

127.0.0.1 localhost

200.38.189.20 www.beakos.org.mx beakos

207.248.177.128 www.infotec.com.mx

Page 51: Manual de Implementacion de Beakos GNU2

Capí tulo 3 Control de servicios de Beakos GNU/Linux

3.1 Niveles de ejecución El proceso de arranque se basa en la ejecución de diversas fases o etapas que consisten en la

búsqueda del sector de arranque (MBR), cargar el kernel para después iniciar los servicios. En

los sistemas GNU/Linux existen definidos siete niveles de ejecución 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 ejecución determinado, los archivos de

configuración 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: ”

/etc

rc.d/

rc.0/

rc.1/

rc.2/

rc.3/

rc.4/

rc.5/

rc.6/

init.d/

rcsysinit.d

rc.iptables

inittab/

Nivel de ejecución

por defecto

Page 52: Manual de Implementacion de Beakos GNU2

Descripción de los siete niveles de ejecución manejados en Beakos GNU/Linux:

Nivel 6

rc.6/ Nivel de ejecución que reinicia el sistema.

Nivel 5

rc.5/ Nivel de ejecución Multiusuario con interfaz gráfica X window.

Nivel 4

rc.4/ No usado

Nivel 3

rc.3/ Nivel de ejecución multiusuario con soporte para servicios de red.

Nivel 2

rc.2/ Nivel de ejecución multiusuario, sin soporte para sevicios de red.

Nivel 1

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

Nivel 0

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

Page 53: Manual de Implementacion de Beakos GNU2

3.2 Administración de servicios con chkconfig El comando chkconfig permite realizar actualizaciones y consultas de los parámetros de los

niveles de arranque del sistema operativo, así como controlar la ejecución 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 están iniciados o apagados (on/off) en el sistema. Sintaxis:

chkconfig --list [nombre del servicio]

Ejemplo: root [ ~ ]# chkconfig --list

iptables 0:off 1:off 2:on 3:on 4:on 5:on

6:off

postfix 0:off 1:off 2:off 3:on 4:on 5:on

6:off

sshd 0:off 1:off 2:on 3:on 4:on 5:on

6:off

--add Esta opción añade 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 ejecución.

Sintaxis: chkconfig --add [nombre_servicio]

Ejemplo:

root [ ~ ]# chkconfig --add respaldos

Automáticamente cuando agregamos un servicio se crean los vínculos simbólicos.

--del Esta opción nos permite cancelar la ejecución de un servicio al arranque del sistema operativo, y los enlaces simbólicos son destruidos. Sintaxis: chkconfig --del [nombre_servicio]

Ejemplo: root [ ~ ]# chkconfig --del respaldos --level La opción level permite definir el estado de los servicios de acuerdo al nivel de arranque del sistema operativo.

Page 54: Manual de Implementacion de Beakos GNU2

Sintaxis: chkconfig [--level niveles] nombre del servicio

<on|off|reset>

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

3.3 Administración de servicios a través de Webmin

Webmin permite administrar los siete niveles de arranque del sistema (runlevels) a través de

diferentes módulos que se describen a continuación:

Módulo Bootup y Shutdown

Este módulo 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 también es utilizado por Webmin. En la página principal del módulo aparece

una lista con los servicios, los niveles de arranque con los que se inician y una breve

descripción.

Configurar un servicio para que inicie al arranque del sistema.

Si algún servicio, por ejemplo un servidor web no es iniciado automáticamente en el arranque

del sistema, es posible modificar su script de configuración con ayuda de webmin para

cambiar sus parámetros, cada servidor viene con sus scripts de configuración los cuales

permiten especificar entre otros parámetros el arranque automático ó bootup del servidor.

Para modificar dicho parámetro en webmin se requiere seguir los siguientes pasos:

En la página principal de este módulo dar click en el servicio que se deseé activar y enseguida

aparecerá una ventana para editar el script correspondiente.

Cambiar el parámetro “¿Iniciar al momento de arrancar el sistema?” de “No” a “Sí”.

Una vez hecho esto hay que guardar los cambios dando click en el botón “Guardar”, lo cual

regresará al menú principal del módulo.

Iniciar y detener servicios

Aunque en muchas ocasiones los servicios se inician cuando arranca el sistema y se detienen al

momento que se apaga, también 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 continuación se describen los pasos que hay que seguir:

En la página principal del módulo dar click en el nombre del servicio.

En seguida aparece una venta de edición con los botones de:

Page 55: Manual de Implementacion de Beakos GNU2

Iniciar ahora.- Esta acción inicia el servicio seleccionado, por ejemplo un servidor, por lo

regular esta acción suele ser neutral si el servicio ya se encuentra en ejecución.

Reiniciar ahora.- Esta acción detiene y arranca el servicio seleccionado, de igual forma esta

acción suele ser neutral si el servicio no se ha iniciado previamente.

Mostar el estado.- Esta acción 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 acción 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 acción

Si se requiere estar iniciando un servicio constantemente lo recomendable sería 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 también

crearlos de forma manual con ayuda de Webmin:

En la página principal del módulo 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 acción o

servicio, el cual debe ser único.

En el campo Descripción ingresar una breve descripción de la acción o servicio que estamos

creando, esta descripción se mostrara en la página principal del módulo a lado del nombre del

servicio o acción.

En el campo comandos de Bootup ingresar el o los comandos que se ingresan desde la consola

cuando se inicia el servicio o acción de forma manual.

En el campo comandos de Shutdown ingresar los comandos necesarios para detener el servicio

o acción, tal y como se hace desde la línea de comandos.

Asumiendo que se deseé iniciar el servicio o la acción 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 también se

puede hacer presionando los botones de la computadora esta vía no es muy recomendable ya

que no se detienen de forma adecuada los servicios lo que puede ocasionar pérdida de

información. Webmin permite realizar el reinicio y/o apagado del sistema de forma segura, a

continuación se describen los pasos para hacerlo:

Page 56: Manual de Implementacion de Beakos GNU2

Para reiniciar:

Colocarse en la página principal de este módulo (Bootup y Shutdown).

En la parte inferior de la página dar click en el botón “Reiniciar Sistema” enseguida aparecerá

una ventana de diálogo para confirmar si de verdad se quiere reiniciar el sistema, dar click en

el botón reiniciar sistema de la ventana de confirmación, e inmediatamente comenzará el

proceso de apagado del sistema.

Configuración de rcsysinit.d

Como ya se ha explicado anteriormente en el arranque del sistema después 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

módulo podemos ubicarlo en la categoría de Sistemas de Webmin.

Para configurar Niveles de Arranque:

Posicionarse en la página principal del módulo, esta desplegará una lista de servicios,

comandos o acciones que están definidas en cada uno de los Niveles de Arranque.

Dar click en el campo de la columna ID, después de esto se desplegará una venta con los

parámetros de edición.

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 acción, o también se puede seleccionar

“Ninguno”.

Por último hay que guardar los cambios dando click en el botón “Guardar”.

Ahora se puede reiniciar el sistema para comprobar que los cambios se hayan guardado

Page 57: Manual de Implementacion de Beakos GNU2

Capí tulo 4 Lí nea de comandos

4.1 Intérprete de comandos BASH Es una aplicación basada en el Shell de Unix y cumple la función de un intérprete de comandos su sintaxis incluye algunas características de Korn Shell y el C Shell como son:

Edición de la línea de órdenes

La pila de directorios

Las variables $RANDOM y $PPID

Sintaxis de sustitución de órdenes POSIX

Otra característica del bash es que proporciona autocompletado de nombres de programas, nombres de archivos, nombres de variables, etc.

Acceso a los parámetros

La programación de scripts en Shell resulta muy útil y práctica para ejecutar tareas repetitivas y tediosas en cierto momento. Un script no es más 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 código objeto ejecutable los intérpretes se van ejecutando conforme se van leyendo directamente del código fuente algunos de estos lenguajes son:

Perl

Python

Php

El intérprete de comandos Bash nos permite ejecutar los scripts pasándole como parámetro el script:

root [ ~ ]# bash script.sh

root [ ~ ]# sh script.sh

Más adelante se describirá la sintaxis para crear un script, así como, los comandos más usuales para crear dichos scripts. A continuación se muestra un breve script de la programación en Shell:

#!/bin/bash

FECHA=$(date)

echo "Hola mundo"

echo "Hoy es:"; echo $FECHA

echo "Tienes una reunión de trabajo"

Como se puede observar en es script es que se especifica el intérprete a utilizar (bash),

también 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

Page 58: Manual de Implementacion de Beakos GNU2

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 opción de una lista previamente creada.

CONTROLES DE FLUJO

En la mayoría 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 continuación:

IF

Esta es una de las más básicas en donde si se cumple determinada condición ejecuta cierta tarea de lo contrario ejecuta otra.

if [condición]

then

comandos si se cumple la condición

else

comandos si no se cumple la condición

fi

WHILE

Con esta estructura de control repetimos una serie de comandos siempre y cuando la condición sea cierta, cabe mencionar que cuando se utiliza esta estructura de control se comprueba primero la condición antes de ser ejecutada lo cual indica que tal vez no se ejecuten ni una sola vez.

Sintaxis:

while [condición]

do

comandos a ejecutar cuando se cumple la condición

done

Page 59: Manual de Implementacion de Beakos GNU2

FOR

La estructura de control for permite indicar un número máximo de iteraciones, los scripts de bash utilizan los parámetros obtenidos de la Shell como $1, $2, $3…$n. Esta estructura de control a diferencia de las demás requiere de varios parámetros los que se detallan a continuación.

Variable de control.- Comúnmente se acostumbra utilizar como variable de control el carácter i (iterador)

Inicialización 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.

Condición 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 cómo 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 iteración.

Sintaxis:

for [variable_control] in expresión1,expresión2…expresiónN

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 edición de la línea de órdenes, el historial de órdenes, la pila de directorios, las

variables $RANDOM y $PPID, y la sintaxis de substitución de órdenes POSIX: $(...). Cuando se

utiliza como un intérprete de órdenes interactivo, bash proporciona autocompletado de

nombres de programas, nombres de archivos, nombres de variables, etc, cuando el usuario

pulsa la tecla TAB.

Page 60: Manual de Implementacion de Beakos GNU2

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 ejecución 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 más comunes para el comando Top

Opciones Descripción

-c Visualiza de forma completa la ruta del comando que se está ejecutando.

-d Intervalo de tiempo en el que se actualizará la información, se le asigna un valor numérico (segundos).

-U Monitorear los procesos de un determinado UID.

-p Monitorear los procesos especificados por ID.

-n Número de veces que se actualizará la información antes definalizar el comando top.

4.1.2 Variables de entorno Son un conjunto de valores dinámicos cargados en la memoria que pueden ser utilizados por

distintas tareas o aplicaciones de forma simultánea y que afectan su comportamiento, las

variables de entorno pueden ser modificadas en cualquier momento para que cada usuario las

utilice con los parámetros que se adecuen a sus aplicaciones, con esto se quiere decir, que

cada aplicación 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 parámetros. Algunas variables de entorno ya viene definidas por defecto en el shell,

además cada usuario puede agregar tantas como sea necesario y usarlas para labores

específicas .

Los comandos env, set, printenv muestran un listado de todas las variables de

entorno junto con sus respectivos valores. A continuación se muestra la forma en cómo

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]

Page 61: Manual de Implementacion de Beakos GNU2

Ejemplo:

root [ ~ ]# printenv PATH

/bin:/usr/bin:/sbin:/usr/sbin

También es posible eliminar las variables de entorno usando el comando unset.

unset [nombre_variable]

Ejemplo:

root [ ~ ]# unset PATH

4.1.3 Redirección Todos los comandos en GNU/Linux tienen tres tuberías: Entrada estándar, salida estándar y salida de error estándar estas opciones pueden ser redireccionadas a ficheros con los símbolos < y > o también se puede redireccionar a otros comandos (con el símbolo |). A continuación se muestran ejemplos con el uso de estos símbolos.

Esto enviaría la salida del comando ls –a al archivo usuarios.txt.

root [ ~ ]# ls -la > /home/admin/usuarios.txt

Para añadir la salida de un comando a un archivo utilizamos >>

root [ ~ ]# ls –la >>/home/admin/usuarios.txt

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

PATH

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

ROOTPATH

•Contiene una lista de direcctorios en la cual el enlazador dinámico busca para encontrar una librería

LDPATH

•Contiene una lista de directorios en la cual el comando man localiza las páginas del manual.

MANPATH

•Esta variable es utilizada por el comando info para localizar las páginas de info

INFODIR

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

PAGER

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

EDITOR

Page 62: Manual de Implementacion de Beakos GNU2

Obsérvese que en ambos ejemplos se utiliza la ruta absoluta, sin embargo también es posible utilizar rutas relativas.

Para especificar que un archivo sea la entrada de un comando se utiliza el símbolo <.

root [ ~ ]# sort < usuarios.txt

4.1.4 Páginas del manual Las páginas man son documentos que se encuentran en línea ó 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 más específica para cada aplicación ya

que las páginas de los manuales se encuentran seccionadas en varias partes las cuales se

pueden ser identificadas por un número.

4.1.5 Textinfo Otra alternativa que existe para consultar documentación es textinfo, establecida como el

estándar de GNU, textinfo es una estructura de documentación que se basa en el uso de

hipervínculos que existen en la World Wide Web, esto quiere decir, que los documentos se

pueden enlazar entre sí por medio de hipervínculos.

A continuación se muestra un ejemplo de cómo 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 opción permite además 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

continuación las más comunes.

Page 63: Manual de Implementacion de Beakos GNU2

Tabla 4-2. Opciones más comunes para el comando ls

Opción Descripción

-l Lista además del nombre del archivo o directorio se muestra el tamaño, la fecha de modificación, permisos, propiedad e información 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 modificación.

-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 señala si se trata de un fichero (-), de un directorio (d),

de un enlace simbólico (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 más adelante.

La segunda columna indica el número de vínculos 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 líneas el nombre de “root” refiriéndose al

propietario del archivo o directorio. A continuación vuelve a parecer el nombre de “root” que

indica el grupo al cual pertenece el archivo o directorio.

En la quinta línea aparece un número, se trata de la cantidad de espacio en disco que ocupa un

archivo o directorio, este valor está indicado en bytes.

Después del tamaño, 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 año aparecerá el mes, el

día y la hora, si se modificó por última vez en años pasados, sólo se indicará el mes el día y el

año.

Por último aparecerá el nombre del archivo o directorio o bien si se trata de un enlace

simbólico se indica la ruta del enlace.

Page 64: Manual de Implementacion de Beakos GNU2

4.2 Manipulación de archivos y directorios La administración de archivos bajo GNU/Linux es distinta a la Windows, en esta sección se

describirán herramientas y comandos útiles para la administración 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

Vínculos 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 ubicación

en el disco. Si se requiere referirse a un solo archivo usando dos nombres separados

de archivo, se puede crear un vínculo fuerte.

Vínculos simbólicos A diferencia de los vínculos fuertes los cuales apuntan a un

archivo por su nodo i, un vínculo simbólico 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 administración de Linux, los archivo y directorios tienen siempre permisos y dueños

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 sección

4.1.7 Listar archivos). Se utiliza el comando chmod para fijar los valores relacionados con los

permisos (lectura escritura y ejecución).

Tabla 4-3. Valores relacionados para permisos

Símbolo Permiso Valor numérico

r Lectura 4

w Escritura 2

x Ejecución 1

Este modo numérico se le conoce como octal, el valor puede variar de 0 hasta 7. Para cambiar

estos permisos sencillamente agregue los valores numéricos después del comando chmod y el

nombre de archivos o directorio.

Ejemplo:

root [ ~ ]# chmod 700 xorg

Page 65: Manual de Implementacion de Beakos GNU2

El comando anterior hará que sólo el dueño 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 simbólica, por ejemplo si queremos

agregarle permisos de ejecución al dueño 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 más comunes

Símbolo Permiso Valor numérico

--- Sin permisos 0

r-- Sólo lectura 4

rw- Lectura y escritura 6

rwx Lectura, escritura y ejecución 7

r-x Lectura y ejecución 5

--x Sólo ejecución 1

4.2.2 Cambio de un usuario a un archivo o directorio La forma más común 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 súper 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 también puedan utilizar chown, pero en la

mayoría de los casos es más recomendable por cuestiones de seguridad que lo haga el súper

usuario.

A continuación se muestra la sintaxis para utilizar dicho comando:

chown [-R] usuario nombre_archivo

Una opción 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”.

Page 66: Manual de Implementacion de Beakos GNU2

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 sólo 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 página del manual.

Tabla 4-5. Opciones más comunes para el comando cp

Opción Descripción

-f Fuerza la copia sin realizar verificación.

-r Recursivo, copia un directorio y lo que hay dentro de él.

-v Muestra los archivos copiados.

-b Hace un respaldo si el existen archivos con el mismo nombre en la ruta destino.

-i Copiado interactivo, antes de que se realice la copia verifica con el usuario.

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 ubicación a otra, también se utiliza para

cambiar de nombre a un archivo.

Tabla 4-6. Opciones más comunes para el comando mv

Opción Descripción

-f Fuerza el movimiento sin realizar verificación.

-r Recursivo copia un directorio y lo que hay dentro de él.

-v Muestra los archivos movidos.

-i Interactivo, antes de que se realice la operación verifica con el usuario.

Ejemplo:

root [ ~ ]# mv -v gnuhh-admin-2.05.tar.gz /opt/

`gnuhh-admin-2.05.tar.gz' -> `/opt/gnuhh-admin-2.05.tar.gz'

Page 67: Manual de Implementacion de Beakos GNU2

4.2.5 Crear enlaces simbólicos El comando ln permite establecer enlaces fuertes y enlaces simbólicos, este comando

dispone de varias opciones pero la más usual es –s, que nos permite crear un enlace simbólico

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 simbólico 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 página 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 días de antigüedad dentro del directorio de root.

root [ ~ ]# find ./ -ctime 2

./ede

./.viminfo

Encontrar un archivo que tenga un tamaño de 1024 K o mayor en el directorio /root

root [ ~ ]# find ./ -size 1024k

./ innodb.result

Otro comando útil es locate, es fácil de usar, para ejecutarlo sólo 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

Page 68: Manual de Implementacion de Beakos GNU2

4.2.7 Compresión de archivos y directorios con GZIP y BZIP2 La herramienta gzip se creó como una alternativa al programa compress, los archivos gzip

tienen la extensión .gz , es de resaltar que después de comprimir un archivo, la utilidad gzip

borra el archivo original y sólo queda el archivo comprimido.

Ejemplo:

root [ ~ ]# gzip archivo1

Para descomprimirlo teclee:

root [ ~ ]# gunzip archivo1.gz

La herramienta bzip2 proporciona una mejor compresión que la anterior, como resultado

genera archivos más pequeños.

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 opción –p, esta opción 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 también para borrar

directorios el comando rm –rf, pero esto borrará

todos los archivos y directorios dentro de él de

forma permanente, usar con precaución.

Page 69: Manual de Implementacion de Beakos GNU2

4.2.9 Concatenar archivos El comando cat entre otras funciones permite visualizar archivos pequeños, 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 común 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 más comunes para el comando du

Opción Descripción

-c Muestra el total al final, en bloques.

-h Muestra el total en un formato legible

-k Muestra el tamaño en kilobits

-s Muestra el total resumido.

Ejemplo:

root [ /opt/MailRoot/bin ]# du -chs *

96K CtrlClnt

8.0K MkMachDep

12K MkUsers

Page 70: Manual de Implementacion de Beakos GNU2

4.0K XMCrypt

368K XMail

4.0K sa_filter.pl

16K sendmail

508K total

4.2.11 Localizar comandos El comando whereis, busca la ubicación de un comando y muestra el nombre del

comando, su directorio y la página 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 Edición de textos Los editores de textos son las principales herramientas para trabajar desde la consola de Linux,

uno de los más habituales es vi, este editor existente en los sistemas UNIXfue desarrollado en

la década de 1970, es el editor de textos utilizado en Beakos, cuya versión 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 más comunes para el edito Vi

Opción Descripción

dd Borra una línea.

i Pasar al modo edición (insertar texto).

a Inserta texto antes del carácter sobre el que está el cursor.

I Inserta texto después del carácter sobre el que está el cursor.

A Inserta texto al comienzo de la línea en la que está el cursor.

o Inserta texto al final de la línea en la que está el cursor.

O Abre espacio para una nueva línea después de la línea en la que está el cursor y permite insertar texto en la nueva línea.

/[palabra ] Busca una palabra o una serie de ellas.

:w Guarda los cambios realizados.

:q Sale del programa Vi.

:wq Guarda los cambios y sale del programa.

:q! Forzar la salida sin guardar cambios.

:set number

Muestra los números de línea en el archivo editado.

:help Muestra la ayuda de Vi.

Page 71: Manual de Implementacion de Beakos GNU2

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 líneas a anteriores y avanzar línea por línea. Su forma de uso

es :

root [ ~ ]# less nombre_archivo

4.5 Utilerías del sistema Beakos cuenta con varias utilerías que nos muestran información 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 ubicación 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 información no sólo del espacio libre en los discos y

particiones del sistema, también nos permite saber el tamaño 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 opción –h nos mostrará el tamaño de los discos en bloques.

Page 72: Manual de Implementacion de Beakos GNU2

4.5.3 Mostrar un archivo mientras crece El comando tail nos mostrará las últimas líneas de un archivo, empleando opción –f nos

mostrará si un archivo ha crecido en tamaño imprimiendo en pantalla las últimas líneas que

han sido agregadas, esto es especialmente útil en el análisis de las bitácoras 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 Sincronización 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 través de dos equipos utilizando una conexión

por SSH.

Tabla 4-9. Opciones más comunes para el comando rsync

Opción Descripción

-n Modo de prueba, no hace copia, sólo 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 transmisión más rápida.

-C Ignora archivos como hace CVS.

-u Modo update, mantiene archivo en el destino si es posterior.

-b Backup renombrar archivos existentes a extensión.

Ejemplo en un mismo equipo:

rsync [opciones] [Dir-origen] [Dir-destino]

root [ ~ ]# rsync archivo1 /opt

Page 73: Manual de Implementacion de Beakos GNU2

Ejemplo entre dos equipos a través 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 más comunes para el comando ps

Opción Descripción

a Muestra todos los procesos controlados por una terminal.

r Muestra sólo los procesos que se encuentran en ejecución.

x Muestra los procesos que no están controlados por una terminal.

u Muestra los propietarios de los procesos.

f Presenta la relación entre los procesos.

l Lista los procesos con mayor detalle.

w Muestra la ruta completa de los comandos que generan procesos.

Ejemplo:

root [ / ]# ps ax

PID TTY STAT TIME COMMAND

1 ? Ss 0:02 init [3]

2 ? S< 0:00 [kthreadd]

4.5.6 Matar procesos El comando utilizado para matar procesos es kill, en realidad lo que hace es enviar una

señal a un proceso, se emplea con varios manejadores de señales predeterminados para un

sistema Linux(consulte la página de man), el más utilizado por los administradores de sistemas

GNU/Linux es 9, que anula y termina un proceso respectivamente.

Ejemplo:

root [ / ]# kill -9 2228

Donde el número 2228 es el número de proceso que se desea terminar.

Sugerencia Para obtener un listado de las señales

posibles a utilizar junto con el comando kill, teclee

kill -l

Page 74: Manual de Implementacion de Beakos GNU2

Capí tulo 5 Administracio n de usuarios y grupos

5.1 ¿Qué constituye a un usuario? En Beakos como en cualquier otra distribución 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 más

grupos, así como los usuarios tienen identificadores únicos los grupos también 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 raíz o “superusuario” o el usuario

“normal”, los usuarios normales sólo 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 raíz 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 información del usuario en archivos de texto, esto

representa una ventaja debido a que permite hacer cambios a la información de los usuarios

sin necesidad de herramientas distintas a un simple editor de textos, el archivo principal donde

se almacena la información de los usuarios es /etc/passwd.

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 común 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 Pérez se le podría asignar el

nombre de usuario “jperez” .

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

Nombre del usuario

Contraseña

ID usuario

ID grupo

Nombre completo

Directorio

Interprete de comandos

Page 75: Manual de Implementacion de Beakos GNU2

5.2.2 Campo de la contraseña Este campo contiene la contraseña cifrada del usuario, en Beakos este campo contiene la letra

x, lo cual indica que la contraseña es almacenada en el archivo /etc/shadow, lo cual se

explica más adelante. Todos los usuarios deben tener una contraseña que cumpla con los

siguientes requisitos:

Compuesta por más de 8 caracteres .

Mezclar caracteres alfabéticos y numéricos.

No derivarse de palabras existentes en el diccionario.

No derivarse del nombre de usuario.

No derivarse de información personal (domicilio, teléfono, etc.)

5.2.3 Campo del ID del usuario (UID) En este campo se almacena el número ú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 excepción 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 numérico al nombre del grupo primario al que

pertenece cada usuario. Es importante recordar que además de pertenecer a un grupo

primerio un usuario puede pertenecer a más grupos, lo cual se describe más adelante.

5.2.5 Campo del nombre completo Este campo almacena comúnmente el nombre completo de usuario, aunque también se

pueden almacenar más datos como el número telefónico 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

organización aunque no es necesario, pues se puede designar otra carpeta inicial para un

usuario.

5.2.7 Campo del intérprete 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 mayoría de las distribuciones es BASH (Bourne Again

Shell).

Page 76: Manual de Implementacion de Beakos GNU2

5.4 El archivo /etc/shadow Este archivo es el que contiene las contraseñas cifradas. En él se almacena la información de

las contraseñas cifradas para las cuentas de los usuarios. Además de la contraseña cifrada, en

este archivo también se guarda información referente acerca de la expiración de la misma. Así

como el archivo /etc/passwd, cada línea del archivo /etc/shadow representa

información acerca del usuario, los campos del archivo son:

Nombre para obtener acceso.

Contraseña cifrada.

Días transcurridos a partir del primero de enero de 1970 en que la contraseña se

cambió por última vez.

Días antes de los cuales la contraseña puede ser cambiada.

Días después de los cuales debe cambiarse la contraseña.

Días antes de que expire la contraseña en que debe avisarle al usuario.

Días después de que expire la contraseña para desactivar la cuenta.

Días transcurridos a partir del primero de enero de 1970 en que se desactiva esa

cuenta.

Campo reservado

Muestra de una línea del archivo /etc/shadow

root:$1$w0UReMgg$N/BQspuvJqE1lLiKjBLLb/:14635:0:99999:7:::

5.4.1 Políticas de expiración de contraseñas De forma predeterminada una contraseña no expira, forzar a que una contraseña expire es

una forma mejorar las políticas de seguridad, los parámetros por defecto para la expiración de

contraseñas se definen en el archivo /etc/login.defs.

El comando chage es usado para administrar la expiración de las contraseñas. Su sintaxis es

la siguiente.

chage [opciones] nombre_usuario

Tabla 5-1. Opciones más comunes para el comando chage

Opción Descripción

-m Mínimo de días entre cambio de password.

-M Máximo de días entre cambio de password.

-I Número de días desde que el password expiró para bloquear la cuenta.

-E fecha

Expiración de la cuenta

-W Número de días antes de requerir un cambio de contraseña para enviar avisos al usuario.

-l Enlista configuración

Page 77: Manual de Implementacion de Beakos GNU2

5.5 El archivo /etc/group El archivo /etc/group contiene una lista de grupos primario y secundarios, cada grupo en

una línea. Todos los usuarios del sistema pertenecen por lo menos a un grupo, considerándose

a ese grupo como el primario, de ser necesario se pueden asignar grupos adicionales. Los

campos por línea del archivo /etc/group son:

Nombre de grupo

Contraseña de grupo

ID del grupo

Miembros del grupo

Muestra de una línea del archivo /etc/group

clamav:x:20006:daemon,amavis

Page 78: Manual de Implementacion de Beakos GNU2

5.6 Administrando usuarios En esta sección se describen las herramientas para administrar usuarios a partir de la línea 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 más comunes para el comando useradd

Opción Descripción

-c comentario 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”.

-d directorio inicial

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.

-e expiración 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

-f tiempo inactivo

Esta opción especifica el número de días después de que expire que la cuenta seguirá activa. Por ejemplo –f 3 la cuenta seguirá activa tres días después de que caducó.

-g grupo primario

Esta opción sirve para especificar el grupo primario al cual el usuario estará enrolado, de no especificar esta opción, 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.

-G grupos secundarios

Esta opción permite especificar grupos adicionales a los cuales pertenecerá el nuevo usuario. Si usa la opción –G debe especificar por lo menos un grupo adicional que debe existir en en el archivo /etc/group. Por ejemplo: -G sistemas,desarrollo

-m skel-dir De forma predeterminada los archivos de configuración del usuario se toman del directorio /etc/skel, esta opción permite tomar los archivos de configuración (.bash_logout, .bash_profile, .bashrc)de otra ubicación.

-M Esta opción permite no crear un directorio inicial para el usuario.

-s Shell De forma predeterminada el interprete de comandos de Beakos es /bin/bash, esta opción permite utilizar otra Shell para el usuario.

-u id 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 opción se debe emplear. Ejemplo -u 10098

Page 79: Manual de Implementacion de Beakos GNU2

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 opción –r borra el directorio del usuario y todo su contenido.

5.6.3 Modificar usuarios El comando para este propósito es usermod, funciona con prácticamente los mismos

parámetros que useradd (refiérase a la tabla anterior), la opción que utilice modificará al

usuario en ese parámetro 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 más comunes para el comando groupadd

Opción Descripción

-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 números GID mayores a 20000, esta opción le dice a Beakos que el grupo es uno grupo del sistema y le asigna un número inferior a 20000.

-f Esta opción 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 modificación de parámetros de grupos.

Sus posibles usos son los siguientes:

groupmod –g gid

groupmod –n nombre_grupo grupo

La opción –g le permite cambiar la GID del grupo y la opción –n permite especificar un nuevo

nombre de grupo.

Page 80: Manual de Implementacion de Beakos GNU2

5.7 Administración de usuarios a través de Webmin La aplicación Webmin proporciona una herramienta muy intuitiva para la administración 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 dirección IP del servidoro el dominio correspondiente,

posteriormente seleccionar el menú System y la opción Users and Groups.

Figura 5-2. Administración 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) Ejecución

(-) Permiso de acceso denegado

Además existen 3 tipos de usuarios:

(Propietario) Dueño del archivo

(Grupo) Grupo que posee el archivo

(Otros) Todos los usuarios del sistema que no entren en los anteriores

4.9 Comprensión 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 dueño de ese programa no con los privilegios del

usuario, es decir al realizar la siguiente operación:

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 dueño del archivo.

Page 81: Manual de Implementacion de Beakos GNU2

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 crearán 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 raíz y hereda los

mismo dueño 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 /compartidos/archivo2

root [ ~ ]# ls -l /compartidos/

total 0

-rw-r--r-- 1 root root 0 Apr 21 06:34 archivo1

-rw-r--r-- 1 root mail 0 Apr 21 06:40 archivo2

Nótese 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 sólo el dueño 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.

Page 82: Manual de Implementacion de Beakos GNU2

root [ ~ ]# ls -ld /tmp

drwxrwxrwt 4 root root 4096 Apr 21 22:26 /tmp

La asignación 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 aplicación 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

específico. Es aquí donde se utilizan las listas de acceso para GNU/Linux.

Características:

Las ACL´s permiten compartir archivos con otros usuario sin el riesgo de utilizar el

comando chmod 777.

Se pueden implementar sobre un punto de montaje en específico.

El sistema de archivos implementado en Beakos (ext3)cuenta con soporte para ACL´s.

5.10.1 Activación 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 opción acl, modificando el archivo /etc/fstab en la columna options.

#filesystem mount-point type options dump fsck

/dev/sdb1 /opt ext3 defaults,acl 0 0

Realizados los cambios anteriores ejecutamos la siguiente instrucción 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)

Page 83: Manual de Implementacion de Beakos GNU2

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.

5.10.2 Implementación de listas de acceso en archivos y directorios. Para la aplicación, modificación y consulta de listas de acceso se utilizan dos comandos

getfacl y setfacl, el primero muestra información sobre los permisos de lectura,

escritura y ejecución 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::rw-

group::r--

other::r--

Sugerencia Si desea habilitar el uso de ACL´s para el

sistema de archivos raíz, edítelo directamente en el

archivo /etc/fstab para que persista a un posible

reinicio del sistema.

Page 84: Manual de Implementacion de Beakos GNU2

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::rw-

user:francisco:rw-

group::r--

mask::rw-

other::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:rw-

default: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::rw-

group::r--

mask::r--

other::r—

Page 85: Manual de Implementacion de Beakos GNU2

5.11 Configuración y administración de cuotas En ambientes GNU/Linux con gran cantidad de usuarios, pueden enfrentarse a problemas

como el espacio de almacenamiento, la implementación 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 través de Inodos debemos determinar el número 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 través de

bloques , es decir 1 Mb ocupará 1000 bloques en el disco duro.

Otro punto importante a tomar en cuenta son los límites, se emplean dos para la

administración de cuotas.

Hard: Es el límite 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 límite máximo antes de que el usuario reciba

mensajes de aviso.

Cuando se usa el límite 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 límite HARD que será su límite absoluto de uso.

Si se estableció el periodo de gracia, que puede ser en días, horas, minutos o

segundos, el usuario podrá seguir usando bloques o inodos hasta que termine el

tiempo de gracia o llegue al límite HARD, cualquiera que ocurra primero.

5.11.1 Activación del uso de cuotas sobre sistemas de archivos. Para llevar a cabo la implementación de quotas sobre los sistemas de archivos es necesario

montar la partición con la opcion usrquota para quotas por usuarios o bien con la opción

grpquota.

Editamos el archivo /etc/fstab, para habilitar estas opciones, quedando la estructura de

la siguiente forma:

#filesystem mount-point type options dump fsck

/dev/sdb1 /opt ext3 defaults,usrquota 0 0

Sugerencia Si desea preservar los atributos de ACL

de los archivos y directorios al mover o copiar

utilice la opción -p

Page 86: Manual de Implementacion de Beakos GNU2

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

página del manual.

Tabla 5-4. Opciones más comunes para el comando quotacheck

Opción Descripción

-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 sólo lectura

-v Modo verboso, muestra el resultado de la ejecución 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 Administración de cuotas de disco. El uso del sistema de cuotas ya ha sido habilitado, pero ningún usuario por defecto tiene

establecidas cuotas. Para la administración de cuotas utilizamos el comando edquota del

siguiente modo.

edquota nombre_usuario

Ejemplo:

root [ /opt ]# edquota francisco

Nos mostrará la siguiente información

Disk quotas for user francisco (uid 1008):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 0 0 0 0 0 0

Page 87: Manual de Implementacion de Beakos GNU2

Podemos observar que se puede editar el numero de bloques e inodos, así como el límite

blando y límite 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 límite blando de 512 bloques, un límite

duro de 1024 bloques, un límite blando de 40 inodos y un limite duro de 50 inodos en la

partición /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 días en la configuración

global, en la configuración 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

Page 88: Manual de Implementacion de Beakos GNU2

Capí tulo 6 Planificacio n de tareas con Cron

6.1 Configuración de una tarea con cron Existe una aplicación 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 mayoría de las distribuciones GNU/Linux se puede cambiar

esta opción con el comando chkconfig, para mayor información sobre este comando consulte

el Capítulo 3: “Control de Servicios de Beakos GNU/Linux”. Para saber cuál 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

También en /etc podemos encontrar los siguientes archivos:

cron.hourly

cron.daily

cron.weekly

cron.monthly

Desde estos archivos también es posible definir tareas programas, sin embargo, es más

recomendable hacerlo con el comando crontab más adelante se especificará como usar este

comando.

Otros archivos importantes son:

cron.allow

cron.deny

Page 89: Manual de Implementacion de Beakos GNU2

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 están los usuarios que tienen restringido ejecutar

dicho comando.

El siguiente diagrama muestra los parámetros de los que se compone una tarea programada

en cron.

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 parámetros 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 guión :(1-5).

Es usado normalmente para comandos de tareas administrativas, es decir, que ejecuta

programas agendados en el sistema. La versión normalmente utilizada de esta aplicación es la

“Vixie Cron”.

Minuto

• Minuto en que se ejecuta el proceso

• Parámetros: 0-59

Hora

• Hora en que se ejecuta el proceso

• Parámetros: 0-23

Día

• Día del mes en que se ejecuta el proceso

• Parámetros: 1-31

Mes

• Mes en que se ejecuta el proceso

• Parámetros: 1-12

Día de la Semana

• Día de la semana en que se ejecuta el proceso

• Parámetros: 0-6

Page 90: Manual de Implementacion de Beakos GNU2

A continuación se describe el formato para realizar una tarea programada con ayuda de cron:

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 cómo agregar una nueva tarea programada:

30 12 * * 1-5 /usr/bin/top >> /home/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

Minuto Hora Día del

Mes Mes

Día de la Semana

• Minuto

30

• Hora

12 • Día del

Mes

*

• Mes

* • Día de la semana

1-5

•Se ejecuta el comando "top" y

se guarda la salida en "top.txt"

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

Page 91: Manual de Implementacion de Beakos GNU2

6.2 Control de acceso a cron Como ya se mencionó anteriormente existen dos scripts que permiten o deniegan a los

usuarios la ejecución de cron dichos scripts son: cron.allow y cron.deny. A

continuación 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. También 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 Administración de tareas planificadas a través de Webmin A través de Webmin también es posible llevar a cabo la administración de la aplicación cron y

el módulo que se requiere es: Scheduled Cron Jobs (trabajos programados de cron). Este

módulo se encuentra en la sección de sistema del sitio oficial de Webmin. A continuación se

explicará como programar tareas desde este módulo:

Al ingresar en la página 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 ejecutándose actualmente

Para agregar una nueva tarea, desde la página principal dar clic en el enlace “Crear una nueva

tarea programada” a continuación 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

ejecución.

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 electrónico al propietario de la tarea, para modificar esta opción hay que

redirigir la salida hacia otro archivo.

Page 92: Manual de Implementacion de Beakos GNU2

Dentro de la página de creación de una nueva tarea programada también aparece un la lista

para configurar los horarios y fechas de ejecución:

Minutos

Horas

Días

Meses

Días de Semana

Después de ajustar estos parámetros simplemente queda por dar clic en el botón “Crear”, para

que la nueva tarea sea agregada.

6.3.1 Editar una tarea programada Desde Webmin también se pueden modificar los parámetros de una tarea previamente

programada siguiendo los pasos que a continuación se describen:

Desde la página principal del módulo, dar clic en la tarea que se deseé modificar.

En seguida aparecerá un formulario para modificar los parámetros y realizar los ajustes

necesarios.

Después 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 módulo también permite controlar el acceso de usuarios al crontab o a la creación y/o

ejecución 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 página principal dar clic en la opción “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.

Page 93: Manual de Implementacion de Beakos GNU2

Capí tulo 7 Administracio n de sistemas de archivos

7.1 Administración 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 versión mejorada de ext2 ofrece grandes

mejores en rendimiento y estabilidad. Tanto en sistemas ext3 y Reiserfs se ha implementado el

método 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

información necesaria para establecer datos afectados en caso de que una transacción 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 (tamaño, fecha de modificación, etc..).

El journaling de sistemas de archivos tiene como objetivo evitar los engorrosos y largos

chequeos de disco (fsck) que efectúan 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 producción

puede ser una pérdida 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 Creación de una partición La herramienta que proporciona GNU/Linux para la administración 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 partición 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 núcleo compilado para Beakos en estos momentos es la versión 2.6.26, el cuál soporta una

gran cantidad de controladoras de disco incluyendo SCSI, pero puede darse el caso de que la

controladora no esté soportada.

Page 94: Manual de Implementacion de Beakos GNU2

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 Start End Blocks Id System

/dev/sda1 1 17 136521 83 Linux

/dev/sda2 18 981 7743330 83 Linux

/dev/sda3 982 1044 506047+ 82 Linux

swap / Solaris

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 ejecución 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):

Page 95: Manual de Implementacion de Beakos GNU2

Se presentará la opción de presionar m para obtener ayuda. La cual le ofrecerá distintas

opciones:

a Conmuta el indicador de iniciable

b Modifica la etiqueta de disco bsd

c Conmuta el indicador de compatibilidad con DOS

d Suprime una partición

l Lista los tipos de particiones conocidos

m Muestra opciones posibles

n Agrega una nueva partición

o Crea una nueva tabla de particiones DOS vacía

p Imprime la tabla de particiones

q Sale sin guardar los cambios

s Crea una nueva etiqueta de disco Sun

t Cambia el tipo de partición a crear

u Cambia las unidades de visualización/entrada

v Verifica la tabla de particiones

w Escribe la tabla en el disco y sale

x Funciones adicionales (sólo para usuarios avanzados)

Una vez ejecutando la opción anterior seleccione la opción 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 aún una tabla de particiones definida, seleccionemos la opción n

para crear una nueva partición.

Command (m for help): n

Command action

e extended

p primary partition (1-4)

El menú nos solicita crear una partición primaria o extendida. Presionamos la letra p y

seleccionamos el número de partición que se le asignará, seleccionamos la opción 1.

Page 96: Manual de Implementacion de Beakos GNU2

Para definir el tamaño seleccionamos el primer cilindro del disco en cuestión, podemos definir

el tamaño en Megabytes o Gigabytes, crearemos para cuestiones de ejemplo una partición 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 código presionando la letra L mayúscula). Para cambiar el

tipo de partición por ejemplo a RAID o Linux LVM presionamos la tecla t. Dejaremos de forma

predeterminada el tipo de partición 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 opción p para volver a visualizar la tabla de particiones,

observaremos que ya no está vacía como en un principio. Contiene una partición /dev/sdb1

Command (m for help): p

Disk /dev/sdb: 8589 MB, 8589934592 bytes

Salida truncada….

Device Boot Start End Blocks Id System

/dev/sdb1 1 262 2104483+ 83 Linux

Una vez seguros que la partición creada cumple con las características requeridas, procedemos

a escribir los cambios teclee w, al finalizar nos regresará a la línea de comandos.

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

Sugerencia GNU/Linux sólo permite la creación de

tres particiones primarias, si se va a crear más de 4

particiones se recomienda que la cuarta sea

extendida.

Page 97: Manual de Implementacion de Beakos GNU2

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 sería el siguiente.

root [ ~ ]# mount /dev/sdb1 /data

Podemos ver detalles del sistema de archivos ya montado a través del siguiente comando.

root [ ~ ]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 7.0G 4.2G 2.5G 64% /

tmpfs 126M 0 126M 0% /dev/shm

/dev/sda1 130M 15M 109M 12% /boot

/dev/sdb1 2.1G 33M 2.0G 2% /data

El cual nos muestra información sobre el tamaño, uso y disponibilidad de nuestros sistemas de

archivos.

7.2 Utilización de etiquetas en sistemas de archivos Las etiquetas son útiles para utilizar un nombre alterno al de una partición, resulta más factible

recordar un nombre que un dispositivo de almacenamiento, Beakos sólo 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 partición.

mkfs.ext3 [dispositivo] –L [etiqueta]

Ejemplo:

root [ ~ ]# mkfs.ext3 /dev/sdb1 -L data

La segunda opción es hacerlo con una partición ya formateada.

e2label [dispositivo] [etiqueta]

Page 98: Manual de Implementacion de Beakos GNU2

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 opción, 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 más comunes para el comando mount

Opción Descripción

-a 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 sólo puede saber esta información.

-o [opciones] Aplica opciones que se definen en la siguiente tabla, por lo general son opciones para un sistema de archivos en específico.

Page 99: Manual de Implementacion de Beakos GNU2

Tabla 7-2. Opciones más comunes para el comando mount -o

Opciones para mount -o

Descripción

ro Monta la partición como sólo lectura.

rw Monta la partición con permisos de lectura y escritura, esta es la opción predeterminada.

exec Permite ejecutar binarios, opción predeterminada.

noauto Desactiva el montaje automático cuando se ejecuta mount –a

(aplicable para el archivo /etc/fstab).

nosuid No permite la aplicación de los bits del programa SetUID a la particón montada.

acl Permite la implementación de listas de acceso en la partición.

quota Permite la implementación de cuotas de disco en la partición.

Ejemplo:

root [ ~ ]# mount -o rw,acl /dev/sdb1 /data

El comando anterior montará la partición /dev/sdb1 en el punto de montaje /data con

permisos de lectura y escritura, además 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 inicialización, el sistema lee esta lista y monta las particiones que se encuentren en ella de

forma automática y con las opciones especificadas.

Formato de entradas en el archivo /etc/fstab

[partición][punto_montaje][tipo_fs] [parametros][bakup][fsck]

Ejemplo de un archivo /etc/fstab de Beakos GNU/Linux

root [ ~ ]# cat /etc/fstab

#filesystem mount-point type options dump fsck

proc /proc proc defaults 0 0

sysfs /sys sysfs defaults 0 0

tmpfs /dev/shm tmpfs defaults 0 0

/dev/sda2 / ext3 defaults 1 1

/dev/sda1 /boot ext3 defaults 1 1

/dev/sda3 swap swap default 0 0

La primer línea descomentada se refiere evidentemente a un sistema de archivos proc, que

mantiene de forma dinámica los procesos del sistema.

La segunda línea es para el sistema de archivos sysfs, este sistema es requerido en los Kernel

versión 2.6, al igual que proc es un sistema de archivos temporal y especial. Proporciona una

visión estructurada del árbol de dispositivos del sistema operativo.

Page 100: Manual de Implementacion de Beakos GNU2

La tercer línea declara al sistema de archivos de memoria virtual, el cual utiliza la memoria

RAM y el área de intercambio (SWAP), se utiliza para solicitar páginas del subsistema de

memoria virtual para almacenar archivos.

La cuarta línea corresponde al sistema de archivo raíz, la primer columna define la partición 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 sólo utilice las

opciones de montaje de archivos por defecto (véase 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 verificación (fsck) y el nivel de

prioridad.

La quinta línea corresponde al punto de montaje /boot. Básicamente los campos de esta

línea corresponden al del directorio raíz, en esta partición se almacenan los archivos del gestor

de arranque así como la imagen del kernel y la imagen del disco de RAM (initrd).

La última línea corresponde a la partición de intercambio (SWAP), es altamente recomendable

tener una partición de este tipo ya que mejora el rendimiento del sistema, se recomienda que

sea el doble de tamaño que se tiene de memoria RAM. En la instalación de Beakos si se elige la

instalación automática, el instalador se encargará de definir el tamaño adecuado para la

partición de intercambio.

7.5 Software RAID RAID significa conjunto redundante de discos independientes (en inglés Redundant Array of

Independent Disks). Es un sistema de almacenamiento que hace uso de múltiples discos duros

entre los que distribuye la información o la réplica para obtener redundancia de datos. Entre

las ventajas de implementación de RAID están:

Mejor rendimiento.

Mejor tolerancia a fallas a nivel físico del disco duro.

Mayor capacidad de almacenamiento.

7.5.1 Niveles de RAID más comunes

RAID 0

También llamado volumen dividido, distribuye los datos equitativamente entre dos o más

discos pero sin redundancia. Su principal uso es incrementar el rendimiento, aunque también

es utilizado para sumar varios discos físicos y crear uno o más discos virtuales.

RAID 1

Page 101: Manual de Implementacion de Beakos GNU2

Crea una copia exacta de la información de un disco en otro(s), esto representa mayor

velocidad de lectura pero un menor espacio de almacenamiento. Un ejemplo clásico de RAID 1

es la implementación 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 sería necesario que los fallaran.

En este tipo de arreglo la velocidad de lectura se duplica porque el sistema puede estar

leyendo información de ambos discos a la vez.

RAID 5

El RAID 5 se divide en bloques distribuyendo la información 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 tamaño, al fallar un disco el arreglo se conserva, la

perdida completa de datos sucederá si falla un segundo disco.

7.5.1 Configuración de software RAID Creación de un arreglo (RAID 5)

Para este ejemplo, utilizaremos tres particiones de 512 M cada una simulando que son dos

discos duros físicos, los creamos con la herramienta fdisk (refiérase al apartado 7.1.3), del

tipo Linux auto detect (código 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 Start End Blocks Id System

/dev/sdb1 1 66 530113+ fd Linux

raid autodetect

/dev/sdb2 67 132 530145 fd Linux

raid autodetect

/dev/sdb3 133 198 530145 fd Linux

raid autodetect

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 --chunk=64 --level=5 --raid-

devices=3 /dev/sdb{1,2,3}

mdadm: array /dev/md0 started.

Page 102: Manual de Implementacion de Beakos GNU2

La opción –C indica al comando que cree un nuevo arreglo llamado /dev/md0, la opción

--chunk se refiere al número de bloques le asignamos un numero de 64, --level

representa el tipo de RAID que ha de generar, --raid-devices representa el número de

discos, en este caso de particiones que se han de utilizar, recordemos que para RAID se

requieren mínimo 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 también nos sirve

para ver una descripción 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 : Wed Apr 28 06:09:22 2010

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 0

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

UUID : ed26dad0:2c353a94:9688d056:0b76f4fc

Events : 0.4

Number Major Minor RaidDevice State

0 8 17 0 active sync /dev/sdb1

1 8 18 1 active sync /dev/sdb2

2 8 19 2 active sync /dev/sdb3

Page 103: Manual de Implementacion de Beakos GNU2

7.5.2 Pruebas y recuperación 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 acción 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 dañado.

root [ ~ ]# 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 : Wed Apr 28 06:36:31 2010

State : clean, degraded

Active Devices : 2

Working Devices : 2

Failed Devices : 1

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

UUID : ed26dad0:2c353a94:9688d056:0b76f4fc

Events : 0.6

Number Major Minor RaidDevice State

0 8 17 0 active sync /dev/sdb1

1 8 18 1 active sync /dev/sdb2

2 0 0 2 removed

3 8 19 - faulty spare /dev/sdb3

Supongamos que hemos removido el disco dañado y hemos conectado uno nuevo, debemos

crearle una partición de RAID con fdisk y agregarlo al arreglo con el comando siguiente:

root [ ~ ]# mdadm /dev/md0 -a /dev/sdb5

mdadm: added /dev/sdb5

Page 104: Manual de Implementacion de Beakos GNU2

7.6 Administración de volúmenes lógicos La administración de discos a través de volúmenes lógicos 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 tecnologías como

SCISI, IDE y SATA, sumar su capacidad de almacenamiento, crear volúmenes físicos y con ello

crear un grupo de volúmenes cuya capacidad sea la suma de los dispositivos de

almacenamiento y a partir de ahí crear volúmenes lógicos del tamaño que se desee con la

característica de redimensionar su capacidad de almacenamiento según nuestras necesidades.

Las características más notables de la administración de volúmenes lógicos son:

Redimensionamiento de grupos de volúmenes lógicos.

Mayor flexibilidad para las particiones del disco.

Redimensionamiento de volúmenes lógicos.

Fácil aumento de espacio de almacenamiento al agregar nuevos discos.

Definiciones referentes a la administración de volúmenes lógicos.

Volumen físico (PV, en inglés physical volume). Cuando hablamos de los volúmenes físicos

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 volúmenes (VG, en inglés volumen group). Los grupos de volúmenes permiten

administrar un conjunto de volúmenes físicos en una sola unidad. Estos no se pueden montar,

se pueden definir como discos virtuales.

Volumen lógico (LV en inglés Logical volume). Los volúmenes lógicos son el equivalente a las

particiones en un esquema donde no se utiliza la administración de volúmenes lógicos. El

volumen lógico se crea a partir del espacio disponible en un grupo de volúmenes. A este se le

asigna un sistema de archivos y un punto de montaje.

En resumen los pasos para la creación de un volumen lógico son los siguientes:

Creación de una partición.

Creación de un volumen físico.

Agregar de un volumen físico a un grupo de volúmenes.

Creación de un volumen lógico.

Page 105: Manual de Implementacion de Beakos GNU2

Figura 7-1. Esquema de la administración de volúmenes lógicos

Page 106: Manual de Implementacion de Beakos GNU2

Tabla 7-3. Comandos más comunes para la administración de Volúmenes Lógicos.

Comando LVM

Descripción

pvcreate Inicializa una partición para convertirla en un volumen físico que pueda ser integrado a un grupo de volúmenes.

pvdisplay Muestra los volúmenes físicos existentes en el sistema operativo y sus respectivas características.

vgcreate Usado para crear un grupo de volúmenes a partir de uno o varios volúmenes físicos.

vgextend Usado para agregar uno o más volúmenes físicos a un grupo existente de volúmenes para ampliar su tamaño.

vgdisplay Muestra grupos de volúmenes existentes y sus respectivas características.

lvcreate Crea un nuevo volumen lógico a partir de un grupo de volúmenes.

lvdisplay Muestra los volúmenes lógicos existentes en el sistema operativo y sus respectivas características.

lvremove Elimina un volumen lógico del grupo de volúmenes para esta operación debe desmontarlo y los datos se perderán.

7.6.1 Creación de Grupos de volúmenes y volúmenes lógicos Supongamos que hemos agregado un disco duro nuevo nuestro sistema y tiene un tamaño de

8 GB, utilizando la herramienta fdisk (refiérase al tema Creación de una partición), crear una

partición de 8 GB del tipo LVM (en código 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 partición 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 Start End Blocks Id System

/dev/sdb1 1 1044 8385898+ 8e Linux LVM

El siguiente paso es inicializar el volumen físico creado en el paso anterior con el comando

pvcreate, hacerlo de la siguiente forma.

root [ ~ ]# pvcreate /dev/sdb1

Physical volume "/dev/sdb1" successfully created

Page 107: Manual de Implementacion de Beakos GNU2

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 físico se ha creado con éxito, lo asignaremos

a un grupo de volúmenes (VG) que también 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 características y tamaño del grupo de

volúmenes.

root [ ~ ]# vgdisplay

--- Volume group ---

VG Name vg0

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 1

Salida truncada……

VG Size 8.00 GB

PE Size 4.00 MB

Total PE 2047

Alloc PE / Size 0 / 0

Free PE / Size 2047 / 8.00 GB

VG UUID CAxcc1-XA9L-8tGX-xjDT-y3Hd-yJb0-oOQ31Q

Ahora tenemos 8 GB de espacio libre para crear volúmenes lógicos. Con esta información

procedemos a crear un volumen lógico, utilizaremos en comando lvcreate. Su sintaxis es la

siguiente:

lvcreate –L [tamaño en MB o GB] –n [nombre] [Volume Group]

Page 108: Manual de Implementacion de Beakos GNU2

Crearemos un volumen lógico con un tamaño de 4G llamado “data”, a partir del grupo de

volúmenes previo.

root [ ~ ]# lvcreate -L 4G -n data vg0

Logical volume "data" created

Tecleamos el comando lvdisplay para corroborar que el volumen lógico se ha creado con

éxito, recordemos que este volumen lógico es el equivalente a una partición en un

particionado de forma convencional.

root [ ~ ]# lvdisplay

--- Logical volume ---

LV Name /dev/vg0/data

VG Name vg0

LV UUID nxF2pu-Basx-6qaj-x8Dd-UGqX-qlps-kI7iN4

LV Write Access read/write

LV Status available

# open 0

LV Size 4.00 GB

Current LE 1024

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 254:0

Con el volumen creado es necesario asignarle un sistema de ficheros, para fines prácticos

formatearemos el volumen lógico 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 lógico está listo para definirle un punto de

montaje, se lo definiremos en “/data”.

root [ ~ ]# mount /dev/vg0/data /data

Page 109: Manual de Implementacion de Beakos GNU2

7.6.2 Redimensionando volúmenes lógicos Supongamos que el volumen lógico llamado “data” se ha quedado sin espacio suficiente, es

necesario agregarle más espacio recordemos que al grupo de volúmenes sólo le quedan 4 GB

de los 8GB inicialmente disponibles, para aumentar su tamaño no es necesario desmontar el

volumen lógico, no así para una reducción. El procedimiento es el siguiente:

Extender el volumen lógico 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 lógico.

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 tamaño del volumen lógico

vuelva a ser de 4 GB. El procedimiento es el siguiente:

Desmontar el volumen lógico con uso del comando umount

root [ ~ ]# umount /data

Realizar una comprobación 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 tamaño 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.

Page 110: Manual de Implementacion de Beakos GNU2

Asignamos el tamaño deseado al volumen lógico con el comando lvreduce, esta

operación podría destruir los datos así que debe realizarse con precaución, el comando nos

pedirá una confirmación 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 operación podemos verificar que se efectuado con éxito con el comando

lvdisplay

root [ ~ ]# lvdisplay

--- Logical volume ---

LV Name /dev/vg0/data

Salida truncada...

LV Size 4.00 GB

Salida Truncada...

- currently set to 256

Block device 254:0

Montamos el volumen lógico 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 instalación de Beakos y la regla nos dice que debe ser del doble

de tamaño que la memoria RAM, pero puede darse el caso en ambientes de producción que

algunas aplicaciones no exigan aumentar este tamaño una alternativa adecuada es la

utilización 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

Page 111: Manual de Implementacion de Beakos GNU2

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 Priority

/dev/sda3 partition 506036 8612 -1

/data/espacioswap file 262136 0 -2

Podemos observar que nuestro archivo SWAP se encuentra activo. Por último agregamos la

línea correspondiente al archivo /etc/fstab con el objetivo de que esté disponible al

arranque del sistema operativo.

root [ ~ ]# echo "/data/espacioswap swap swap defaults 0

0">> /etc/fstab

Page 112: Manual de Implementacion de Beakos GNU2

Capí tulo 8 Configuracio n del firewall de Beakos GNU/Linux

9.1 Netfilter Netfilter es un framework dentro del Kernel de Linux disponible desde la versión 2.4, su

función es interceptar, manejar y redireccionar paquetes de red entre otras funciones.

Netfilter está disponible en prácticamente todas las distribuciones de GNU/Linux en la

actualidad su componente más popular es el comando iptables, que facilita la creación,

modificación y eliminación de reglas según sea requerido en un sistema.

Firewall

Iptables

Internet

Red local

eth0 eth1

Figura 8-1. Configuración general básica de un firewall con IPtables

8.2 Funcionamiento de IPtables IPtables se denomina normalmente a la herramienta para la administración 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

función es la de analizar el encabezado del paquete (header) a medida que pasa por el núcleo y

el sistema operativo en general y decide qué hacer con este. Según 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 más 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

información específica como la dirección 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

Page 113: Manual de Implementacion de Beakos GNU2

con alguna de ellas. Si un paquete llega al final de la cadena sin coincidir con ninguna regla

este será descartado o acepta según la política por defecto.

Trafico saliente

Trafico entrante

Pa

qu

ete

reglaDROP

Pa

qu

ete

regla ACCEPT

Ca

de

na

s

regla

Pa

qu

ete

regla

Pa

qu

ete

DROP

ACCEPT

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

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.

Page 114: Manual de Implementacion de Beakos GNU2

Existen tres tipos de cadenas básicas 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

(traducción de direcciones): OUTPUT, PREROUTING y POSTROUTING.

Tabla 8-1. Tablas de Netfilter.

Cadena Tabla

Filter Nat Mangle

INPUT X X

FORDWARD X X

OUTPUT X X X

PREROUTING X X

POSTROUTING X X

8.3 Manejo de IPtables Beakos GNU/Linux incluye la instalación 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 traducción de direcciones

mangle: destinada a efectuar marcados de paquetes

COMANDO se refiere a la acción 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

Aviso de no especificar cualquiera de las anteriores,

la tabla por defecto que utilizará el comando

iptables será filter.

Page 115: Manual de Implementacion de Beakos GNU2

Aceptar todos los paquetes que vengan de la dirección 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 dirección 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 dirección 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 dirección 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

Page 116: Manual de Implementacion de Beakos GNU2

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 reinicializarán a cero.

8.4 Opciones de comandos de IPtables A algunos de los comandos antes descritos podemos añadir las siguientes opciones:

Opción 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 opción al ser utilizada con –L , mostrará en pantalla los contadores de paquetes y las

interfaces de entrada y salida para cada regla.

Page 117: Manual de Implementacion de Beakos GNU2

Figura 8-3. Visualización de reglas a detalle aplicadas en Beakos

Al utilizarla con los demás comandos nos mostrará información más detallada de la regla en

cuestión.

Opción 2: -x, --exact

Ejemplo:

iptables –t filter –L –v –x

iptables –L –x

Comandos que la aceptan esta opción:

-L, --list

Esta opción no muestra el valor de los contadores en bytes de manera exacta.

Opción 3: -n, --numeric

Ejemplo:

iptables –t nat –L PREROUTING –n –v

Comandos que aceptan esta opción:

-L, --list

Esta opción 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 numérico.

Page 118: Manual de Implementacion de Beakos GNU2

Figura 8-4. Visualización 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 asignación del

target se utiliza el parámetro –j o –jump, la sintaxis sería la siguiente:

iptables –t [TABLA] COMANDO MATCH [-j TARGET] [OPCIONES]

Opciones más comunes:

DROP hace que Netfilter descarte el paquete sin nigún otro tipo de procesamiento.

ACCEPT hace que netfilter acepte el paquete.

LOG conecta el sistema con el sistema de log del kernel

REJECT envía una notificación 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 cuestión deje de circular por la cadena en cuya regla se

ejecutó el destino return.

8.4.2 Especificaciones de las reglas

-i, --in-interface

Específica la interfaz de red por donde el paquete será recibido.

Ejemplo:

iptables –A INPUT –i eth0 –j ACCEPT

-o, --out-interface

Específica la interfaz de red por la cual un paquete será enviado.

Ejemplo:

Page 119: Manual de Implementacion de Beakos GNU2

iptables –A OUTPUT –o eth1 –d 192.168.0.4 –j DROP

-p, --protocol

Específica 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 dirección Ip o un grupo de direcciones IP especificadas por un

sufijo.

Ejemplo:

iptables –A INPUT –s 192.168.2.0/24 –j ACCEPT

--sport

Especifica los puertos de donde proviene un paquete, puede ser tcp o udp dependiendo de la

opción –p.

iptables –I INPUT –-sport 1000 –s 192.168.4.32 -J ACCEPT

iptables –A INPUT –p tcp –-sport 23:27 –j ACCEPT

--dport

Especifica el puerto destino de un paquete, puede ser tcp o udp dependiendo de la opción –p.

iptables –A INPUT –p tcp -–dport 80 –j ACCEPT

iptables –I INPUT –p udp –-dport 161 –j DROP

8.4.3 Seguimiento de conexiones Esta es una de las características más 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 conexión, esta información se clasifica en 4 estados.

NEW

Intentando crear una nueva conexión.

ESTABLISHED

Parte de una conexión ya existente.

RELATED

Page 120: Manual de Implementacion de Beakos GNU2

Relacionada, no necesariamente parte de una conexión existente.

INVALID

No es parte de una conexión existente ni puede crear una conexión 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 configuración del firewall de Beakos.

Comando para aplicar la configuración una vez modificado el archivo.

root [ ~ ]#/etc/init.d/iptables start

Comando para borrar la configuración y dejar el firewall sin reglas aplicadas

root [ ~ ]#/etc/init.d/iptables clear

Comando para mostrar la configuración y las reglas aplicadas

root [ ~ ]#/etc/init.d/iptables status

Page 121: Manual de Implementacion de Beakos GNU2

Bloquear todo el tráfico 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 categorías:

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 cuestión. Ésta

es la de mayor uso para el caso en que una red privada necesite utilizar una dirección IP desde

el exterior. Para utilizar un SNAT es necesario conocer la dirección IP origen al momento de

definir la regla, otro uso de SNAT es cuando se requiere que un host aparezca con otra

dirección IP generalmente pública.

DNAT es responsable de cambiar la dirección IP y puertos destino, con el objetivo de que el

paquete se dirija a otra dirección IP diferente de la que originalmente se tenía destinada, esto

resulta útil para redireccionar todo el tráfico web hacia un servidor proxy por ejemplo.

MASQUERADING, es sencillamente un caso especial de SNAT, esto resulta útil cuando existen

múltiples sistemas en el interior de una red LAN que requieren salir a internet a través de una

sola dirección IP pública.

Page 122: Manual de Implementacion de Beakos GNU2

NAT

Eth0 192.168.1.1

Eth1 207.249.24.254

Cliente: 192.168.1.2

Gateway: 192.168.1.1

Figura 8.6 Diagrama de SNAT en una conexión

Page 123: Manual de Implementacion de Beakos GNU2

NAT

Eth0 192.168.1.1

Eth1 207.249.24.254

Cliente: 207.249.161.19

Servidor: 192.168.1.7

Gateway: 192.168.1.1

De: 207.249.161.19:1025

A:192.168.1.7:80

De: 207.248.161.19:49100

A:207.249.24.254:80

Figura 8-7. Diagrama de DNAT en una conexión

Page 124: Manual de Implementacion de Beakos GNU2

8.5.1 Compartir Internet en una red LAN Script de ejemplo para compartir Internet con una Red LAN a través 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

## Políticas 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

Page 125: Manual de Implementacion de Beakos GNU2

# 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 reenvío 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 Configuración de un firewall simple Configuración de un firewall simple para protección 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

Page 126: Manual de Implementacion de Beakos GNU2

iptables -X

iptables -Z

iptables -t nat -F

## Políticas 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 más 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 demás

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.

Page 127: Manual de Implementacion de Beakos GNU2

8.6 Configuración del firewall con Webmin Beakos GNU/Linux cuenta con una interfaz de configuración para el cortafuegos a través de la

aplicación 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 menús seleccionaremos la opción red y el submenú

Cortafuegos Linux.

Figura 8-8. Interfaz de Webmin para la administración del firewall.

Con la interfaz de configuración podemos definir configuraciones por defecto:

Permitir todo el tráfico.

Hacer una traducción de dirección de red en la interfaz externa.

Bloquear todo el tráfico excepto SSH e IDENT en una interfaz externa.

Bloquear todo el tráfico excepto SSH , IDENT y ping en una interfaz.

Bloquear todo el tráfico excepto los puertos usados para servicios de internet.

Además de estas plantillas prediseñadas podemos agregar reglas personalizadas a cada una de

ellas. Seleccionando la opción añadir reglas dentro de las políticas por defecto (INPUT,

OUTPUT, FORWARD).

Page 128: Manual de Implementacion de Beakos GNU2

Figura 8-9. Creación de reglas de Iptables a través de Webmin.

A diferencia de la configuración manual las reglas creadas con la interfaz de webmin se

almacenarán en el archivo /etc/webmin/firewall/iptables.save

Page 129: Manual de Implementacion de Beakos GNU2

Capí tulo 9 Sistema de archivos /proc

10.1 Archivos dentro del directorio /proc El sistema de archivos proc contiene información acerca de la configuración del sistema,

dentro de este se puede observar el estado actual del Kernel y los procesos que se estén

ejecutando, además también se puede encontrar información 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 características

son:

Son de tamaño 0 bytes

El Sistema Operativo los genera conforme se consultan

Son constantemente modificados por el Sistema Operativo

Algunos archivos solo pueden ser leídos por el usuario “root”

Como ya se ha mencionado algunos archivos pueden ser modificados, esto con la finalidad de

ajustar la configuración del kernel, comúnmente esto ocurre con los archivos que están 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 comúnmente se pueden encontrar dentro de /proc pueden variar ya que los

directorios con número hacen referencia a los procesos que se están ejecutando en esos

momentos. A continuación se listan algunos de los directorios más importantes dentro de este

sistema de archivos:

Page 130: Manual de Implementacion de Beakos GNU2

A continuación se describen algunos de los directorios más importantes:

9.1.1 buddyinfo

Este archivo utiliza un algoritmo llamado buddy para diagnosticar los problemas de

fragmentación que ocurren en memoria.

root [/proc]# cat buddyinfo

Node 0, zone DMA 4 5 3 3 3 2 2 1 1

1 2

Node 0, zone Normal 13 4 1 3 2 17 15 9

3 2 4

9.1.2 cmdiline

Este archivo permite visualizar los parámetros 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 características 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 :6

model :23

model name :23

stepping :6

cache size :0 KB

fdiv_bug :no

hlt_bug :no

f00f_bug :no

coma_bug :no

Page 131: Manual de Implementacion de Beakos GNU2

fpu :yes

fpu_exception :yes

cpuid level :5

wp :yes

flags :fpu vme de pse tsc msr pae cx8 apic sep mtrr

pge mca cmov pat

bogomips :3497.67

clflush size :64

9.1.4 crypto

Este archivo muestra en forma de listado los códigos 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 módulos no están cargados). A continuación 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

Page 132: Manual de Implementacion de Beakos GNU2

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 están 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 están siendo utilizadas y cuantas de cada tipo ha habido.

root [ /proc ]# cat interrupts

0: 95 XT-PIC-XT timer

1: 602 XT-PIC-XT i8042

2: 0 XT-PIC-XT cascade

5: 0 XT-PIC-XT Intel 82801AA-ICH

9: 0 XT-PIC-XT acpi

10: 0 XT-PIC-XT ehci_hcd:usb2, eth0

11: 0 XT-PIC-XT ohci_hcd:usb1

12: 2896 XT-PIC-XT i8042

14: 1103 XT-PIC-XT ata_piix

15: 162 XT-PIC-XT ata_piix

NMI: 0 XT-PIC-XT ata_piix

...

Page 133: Manual de Implementacion de Beakos GNU2

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

Información acerca de la utilización de la memoria física 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

Page 134: Manual de Implementacion de Beakos GNU2

9.1.11 modules

Indica los módulos del núcleo 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

Page 135: Manual de Implementacion de Beakos GNU2

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 estadísticas acerca del sistema, tales como el número de fallos de página 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 8 0 0 0 0 0 0 1 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 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 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 dinámica, la mayoría de los archivos contienen sólo números, muchos de ellos valores

booleanos que si son modificados cambian el comportamiento del sistema, para ver los

cambios que es posible realizar consulte la documentación del Kernel en cuestión.

Page 136: Manual de Implementacion de Beakos GNU2

Ejemplo:

root [ /proc ]# echo 1 >/proc/sys/net/ipv4/ip_forward

La instrucción anterior habilitó (1 activado), el reenvio de paquetes, esto resulta útil si nuestro

sistema se utilizará como un router.

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 seguirán vigentes después 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 configuración en /etc/sysctl.conf, que es

donde se almacenan los parámetros que el sistema modificará en /proc al iniciarse. Se

recomienda revisar las entradas del archivo /etc/sysctl.conf, y la documentación del

Kernel.

Archivo de configuración 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]

Nota Los cambios realizados en /proc, no

persistirán a un reinicio, para ello debe guardarlos

en el archivo /etc/sysctl.conf

Page 137: Manual de Implementacion de Beakos GNU2

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

Tabla 10-1. Opciones más comunes para el comando sysctl.

Opción Descripción

-n No muestra el nombre de la variable, sólo el valor.

-e Ignora errores referentes a claves desconocidas.

-w Se utiliza para cambiar la un ajuste de sysctl.

-p Carga la configuración que está escrita en el archivo de configuración de sysctl.

-a Presenta todos los valores disponibles que están configurados.

Page 138: Manual de Implementacion de Beakos GNU2

Capí tulo 10 Gestio n de paquetes

11.1 Instalación y desinstalación de paquetes Beakos GNU/Linux implementa la administración de paquetes en formato “.tgz”que no es más

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 relación 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 código fuente para

utilizarse, esto ya se ha hecho con anticipación.

10.1.1 Comando installpkg El comando installpkg permite instalar paquetes (.tgz) de forma directa, es importante

mencionar que esta aplicación no resuelve dependencias, por lo que es un poco difícil saber si

el paquete que instalemos requerirá de algún otro, la lista de paquetes instalados se almacena

en la ruta /var/log/packages, su sintaxis es la siguiente:

installpkg <paquete_con_extensión_.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 básicos 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>

Page 139: Manual de Implementacion de Beakos GNU2

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 desinstalación de un paquete no es necesario poner su

extensión “.tgz”, la lista de paquetes instalados se obtiene del archivo

/var/log/packages.

10.2 Administración de paquetes con SWARET Swaret es un administrador de paquetes creado inicialmente para la distribución de GNU/Linux

Slackware que ha sido adaptado para funcionar con Beakos, esta herramienta facilita la

instalación de paquetes porque nos permite comprobar las dependencias de los paquetes e

instala las faltantes.

Swaret permite la interacción con repositorios de software bajo los protocolos http, ftp, rsync,

sistemas de ficheros locales y NFS.

10.2.1 Archivo de configuración swaret.conf El archivo de configuración de Swaret se ubica en /etc/swaret.conf, analicemos las

opciones más importantes de este fichero.

VERSION=1.06.001

Indica la versión de Beakos correspondiente al repositorio de software.

LANGUAGE=ESPANOL

Define el lenguaje con el cual se mostrarán los mensajes de error y los mensajes de estado de

la aplicación.

Page 140: Manual de Implementacion de Beakos GNU2

ROOT=http://www.beakos.com.mx/paquetes/beakos-1.05.001

Permite indicar el repositorio de software donde están 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 están

previamente configuradas, no es recomendable modificarlas, ni agregar repositorios de

software que no correspondan a la distribución 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 parámetro 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 búsqueda de librerías faltantes por todo el sistema.

MD5CHECK=1

Comprueba la integridad de los paquetes.

DESC=0

Page 141: Manual de Implementacion de Beakos GNU2

Muestra una descripción de los paquetes mientras se instalan o actualizan.

CACHE_DIR=/var/swaret

Ruta donde se almacenarán 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 continuación.

swaret [opciones] [nombre del paquete] [opción adicional]

Tabla 11-1. Opciones para el comando swaret (sin nombre del paquete).

Opción Descripción

--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 bitácora.

--config Muestra el archivo de configuración de swaret.

--help Muestra las opciones disponibles para el comando.

--morehelp Muestra las opciones disponibles para el comando de forma compleja.

--version Muestra la versión de swaret actual.

Tabla 11-2. Opciones para el comando swaret (con nombre del paquete).

Opción Descripción

--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 descripción 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 gráfica (-a) no solicita confirmación.

Page 142: Manual de Implementacion de Beakos GNU2

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 Compilación de software desde el código fuente El equipo desarrollo de Beakos se esfuerza por ofrecer una mayor cantidad de software cada

vez para la distribución, sin embargo es probable que algún paquete que usted necesite no se

encuentre dentro de los repositorios de software, la mayoría del software requerido para

implementar Beakos está disponible en los repositorios, es importante describir la forma de

compilar e instalar software desde el código fuente, compilar un programa permite elegir las

opciones más adecuadas para su compilación, lo que no se puede hacer con un paquete ya

construido y distribuido a través de los repositorios.

El software en código fuente está disponible en un archivo tar, comprimido normalmente con

GZIP o BZIP2.

Para poder construir el software desde el código fuente es necesario contar con el compilador

GCC, los encabezados del Kernel (Linux headers) y la utilidad make. Podemos instalarlos a

través 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 didácticos a compilar el editor de textos nano.

El primer paso es obtener una copia del código fuente del software que vamos a compilar.

root [ ~ ]# wget http://www.nano-editor.org/dist/v2.2/nano-

2.2.5.tar.gz

Page 143: Manual de Implementacion de Beakos GNU2

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 descompresión 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

información especial sobre la instalación del programa (poner especial atención a los archivos

INSTALL y README o similares).

El siguiente paso consiste en la configuración del paquete, la mayoría del software GNU provee

un script llamado configure, este script permite establecer la ruta donde se instalarán los

binarios, los archivos de configuración, las bitácoras, 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 más empleadas es la opción prefix, nos permite elegir la ruta donde se

instalará el programa, por ejemplo:

root [ ~/nano-2.2.5 ]# ./configure --prefix=/usr

En esta acción entra en acción un archivo llamado makefile, estos archivos son la base de la

compilación 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 información sobre los archivos que deben ser compilados y en qué orden, si

la compilación 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 mayoría de los errores que se presentan en esta fase, están relacionados a la

falta de algún archivo, permisos de usuario y algunos también se deben a la versión del

compilador GCC que se está empleando.

El paso final consiste en la instalación 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.

Page 144: Manual de Implementacion de Beakos GNU2

10.3.1 Creación de paquetes con la herramienta Checkinstall Checkinstall es una herramienta que nos permite crear paquetes RPM, DEB y TGZ a partir

del código 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

código 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 información, revisamos si es que deseamos modificar algún

parámetro, si estamos conformes con la información que nos muestra tecleamos ENTER

This package will be built according to these values:

1 - Summary: [ Editor de textos de consola. ]

2 - Name: [ nano ]

3 - Version: [ 2.2.5 ]

4 - Release: [ 1 ]

5 - License: [ GPL ]

6 - Group: [ Applications/System ]

7 - Architecture: [ i386 ]

8 - Source location: [ nano-2.2.5 ]

9 - 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 extensión 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,

sólo se requiere instalar con el comando installpkg

Page 145: Manual de Implementacion de Beakos GNU2

Capí tulo 11 Sistema de logs

11.1 El demonio Syslogd El Kernel cómo 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 críticas. Estos registros son imprescindibles para cuando se

presenta una falla, son de gran ayuda para detectar y corregir inconsistencias en el sistema.

Syslogd es un demonio que se encarga de recibir los registros del Kernel y de otros demonios

del sistema, syslog viene con parámetros por defecto, pero se puede personalizar su

funcionamiento a través del archivo /etc/syslog.conf.

11.2 Configuración del demonio syslogd El archivo de configuración de syslogd, contiene información necesaria para que el demonio

puede ejecutarse y generar registros de ciertos servicios, por lo general la información

contenida es suficiente para un buen funcionamiento, pero puede darse el caso de que se

requiera configurar Syslog para que envíe mensajes de registro hacia otros sistemas remotos y

que estos pueda recibirlos y almacenarlos.

Tabla 11-1. Parámetros para configuración de syslog.conf

Opción Descripción

auth Mensajes de autenticación de usuarios.

cron Mensajes generados por el demonio cron.

daemon Mensajes de demonios y servicios.

kern Mensajes del núcleo de Linux.

Lpr Mensajes del sistema de impresión.

Mail Mensajes del sistema de correos.

syslog Mensajes relacionados al propio syslog.

User Mensajes relacionados a programas de usuarios.

emerg Situación de emergencia.

alert Mensajes considerados importantes.

crit Mensajes críticos.

err Mensajes de error.

warning Situación potencialmente peligrosa.

notice Informes trascendentes pero no peligrosos.

info Información diversa

debug Informe de corrección de errores.

Nota La mayoría de los archivos log se generan en el

directorio /var/log, aunque en la mayoría de

las aplicaciones se puede modificar este valor

Page 146: Manual de Implementacion de Beakos GNU2

Las opciones por defecto que contiene el archivo de configuración 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 configuración de syslogd la información se canaliza a

diversos archivos.

Información relacionada a la autenticación se canaliza a /var/log/auth.log y

/var/log/sys.log

Información relacionadas con otros demonios del sistema se registra en

/var/log/daemon.log

Mensajes generados por la actividad del Kernel se registran en /var/log/kern.log

Mensajes relacionados al correo electrónico 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 el sistema de tareas planificadas se almacenan en

/var/log/cron.log

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 dirección IP es la 192.168.0.128 a un equipo que

tiene la dirección 192.168.0.132. Debemos configurar el archivo de configuración del

/etc/syslog.conf del primer equipo agregando la siguiente línea.

daemon.* @192.168.0.132

El símbolo “@”, nos indica los registros se enviarán a un servidor remoto.

Page 147: Manual de Implementacion de Beakos GNU2

Procedemos con el reinicio del servicio.

root [ ~ ]# /etc/init.d/sysklogd restart

Deteniendo demonio de logs del kernel... [ OK ]

Deteniendo demonio de logs del sistema... [ OK ]

Iniciando demonio de logs del sistema... [ OK ]

Iniciando demonio de logs del kernel... [ OK ]

Ahora bien Beakos GNU/Linux está configurado para sólo 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 agragándole la opción “–r” al demonio syslogd.

Cambiar la línea (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... [ OK ]

Deteniendo demonio de logs del sistema... [ OK ]

Iniciando demonio de logs del sistema... [ OK ]

Iniciando demonio de logs del kernel... [ OK ]

Los cambios deben verse reflejados en los logs generados por el Kernel, donde se puede

observar la dirección 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 (proc)

stopped.

Sep 23 08:24:31 192.168.0.129 kernel: Kernel log daemon

terminating.

Page 148: Manual de Implementacion de Beakos GNU2

Capí tulo 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 ejecución

esperando responder solicitudes; Xinetd se encarga de escuchar esas peticiones y levantar los

servicios correspondientes, esto es útil para servicios como Telnet o algún sistema de

respaldo, no así para servicios como HTTPD, que necesitan estar escuchando peticiones

constantemente.

En resumen, Xinetd recibe la petición y levanta el demonio correspondiente, una vez

terminada la petición desactiva el servicio con el objetivo de optimizar recursos del sistema.

12.2 Instalación 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 ejecución 2,3,4 y 5, para iniciar el servicio de forma manual

tecleamos:

root [ ~/servers ]# /etc/init.d/xinetd start

12.3 Configuración del demonio Xinetd Xinetd consta de un archivo de configuración ubicado en /etc/xinetd.conf, donde sólo

se encuentra la configuración por default, si deseamos agregar más servicios debemos crear

un archivo con el nombre del servicio dentro del directorio /etc/xinexd.d/ el formato

que debe tener un archivo de configuración es el siguiente:

Page 149: Manual de Implementacion de Beakos GNU2

bloque

{

variable = valor

}

Cada bloque puede contener múltiples variables definidas dentro de él, el bloque llamado

defaults en el archivo de configuración principal hereda esos parámetros a los demás 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 Descripción

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 válidos 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 conexión por vez.

no: permite múltiples conexiones si el demonio en cuestión también 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 Número máximo de conexiones simultáneas permitidas.

log_type Determina como se generaran las bitácoras 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 conexión.

Page 150: Manual de Implementacion de Beakos GNU2

no_access Lo contrario de only_from, especifica las redes o hosts desde los cuales no se puede establecer conexión.

cps Especifica el número de conexiones máximas por segundo para el servicio, si se excede de este parámetro el servicio se deshabilitará los segundo declarados en el segundo parámetro. Ejemplo: cps = 10 20

interface Especifica por cual interface responderá el servicio.

port Especifica el puerto por el cual escuchará el servicio, debe estar declarado en el archivo /etc/services.

12.3.2 Ejemplos de servicios a través de Xinetd service ftp

{

disable = yes

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.ftpd

server_args = -l

instances = 4

log_on_success += DURATION USERID

log_on_failure += USERID

access_times = 2:00-8:59 12:00-23:59

nice = 10

}

service echo

{

disable = yes

type = INTERNAL

id = echo-stream

socket_type = stream

protocol = tcp

user = root

wait = no

}

Una vez creados los bloques dentro del directorio /etc/xinetd.d, sólo basta reiniciar el

servicio de xinetd.

root [ ~ ]# /etc/init.d/xinetd restart

Page 151: Manual de Implementacion de Beakos GNU2

Capí tulo 13 Open SSH

OpenSSH es una versión libre de las herramientas de conexión SSH en la que los usuarios de

Internet confían por su algoritmo de seguridad implementado. Los usuarios de telnet, rlogin, y

ftp no se dan cuenta de que su información se transmite a través de Internet sin cifrar.

OpenSSH cifra todo el tráfico (incluyendo de contraseñas) para neutralizar efectivamente

programas sniffer, secuestro de conexiones y otros ataques. Además, OpenSSH ofrece

creación segura de túneles y varios métodos de autenticación, 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 reputación que han ganado de sus desarrolladores (OpenBSD)

con código limpio y perfectamente auditado, otro factor es el hecho de que su código 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 estarían haciendo con

Telnet, rlogin, FTP, etc.; excepto que la sesión esta 100% encriptada, si se llegan a capturar los

paquetes, debido a que estos viajan con una encriptación robusta de 128 bits los hace

extremadamente difícil de leer y escribir. Esta es la ventaja principal que presenta Secure Shell

(SSH), esto ocasiona también se pueden ejecutar aplicaciones gráficas de forma segura. Ya

que este protocolo recibe y envía información cifrada se puede utilizar para asegurar

protocolos inseguros mediante el “reenvío 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 versión (SSH1) propuesta

en 1995 hace uso de diferentes algoritmos de encriptación, 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 transmisión de información, en cambio la versión 2 (SSH2) propuesta

en 1997 utiliza un algoritmo de intercambio de llaves dicho algoritmo es la solución al hueco

que presenta la primera versión. Sin embargo dicha versión aún se mantiene vigente por

cuestiones de compatibilidad, aunque siempre se debe considerar usar SSH2.

13.3 Configuración del servidor SSH El servidor SSH maneja un archivo de configuración, el directorio donde se encuentra alojado es: /etc/ssh, aquí encontraremos algunos archivos de configuración: sshd_config: Archivo de configuración del servidor. ssh_config: Archivo de configuración del cliente.

ssh_host_RSA/DSA_key.- Clave privada de la máquina. ssh_host_RSA/DSA_key:pub.- Clave pública de la máquina.

Page 152: Manual de Implementacion de Beakos GNU2

A continuación se describen los parámetros del archivo sshd_config: Port.- Específica el número de puerto que va a ser utilizado por el servidor. Comúnmente 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 través de todas las interfaces del sistema. Sin embargo, esta opción puede ser modificada para que se pueda acceder únicamente por la red local a través de una sola interfaz. Sintaxis: ListenAddress [dirección IP]

PermitRootLogin Este parámetro 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 parámetro y restringe a todos a que ellos que queden excluidos. Sintaxis: AllowUsers [usuario1] [usuario2]…

Adicionalmente AllowUsers también permite el acceso a determinados usuarios desde

determinada dirección IP.

Sintaxis:

AllowUsers [[email protected]] [[email protected]]

[[email protected]]...

13.4 Administración del servidor SSH a través 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 parámetros ya vienen definidos por default en la instalación. El módulo 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 categoría de servidores.

Page 153: Manual de Implementacion de Beakos GNU2

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 aplicación. La página principal del módulo ssh muestra seis íconos:

Autenticación

Redes

Control de Acceso

Opciones Diversas

Opciones del Host Cliente

Administración 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 opción 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. También 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 botón “Guardar” y “Aplicar cambios”. Configuración de la red Seleccionamos la opción de Red en la página principal del módulo: Por defecto el servidor ssh acepta todas las peticiones de conexión, para cambiar esta opción se debe seleccionar el botón “Escuchar en” y en el campo de dirección 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 opción “Aceptar Protocolos” seleccionamos las casillas de la versión del protocolo SSH debe aceptar (SSH1 y SSH2). Para que el servidor ssh desconecte automáticamente a los host clientes que se hayan apagado o que no haya cerrado la sesión adecuadamente, existe la opción “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 después de que se hayan conectado modificar el parámetro “Tiempo de espera” en el campo inicio de sesión. Una de las opciones de SSH es que permite el reenvío de puerto, el cual permite a los host clientes acceso a los puertos del servidor que normalmente tendrían bloqueados, esto puede ocasionar una vulnerabilidad al momento de un ataque, para deshabilitar esta opción modificamos el campo “Permitir el reenvío TCP” seleccionando “No”. Para que el servidor busque los nombres de host por su dirección de cliente y bloqueé todas aquellas que no coincidan seleccionamos la opción “Sí” en “validar-reverso de las direcciones IP de los clientes?”. Esta opción viene incluida a partir de la versión 2.3 de OpenSSH.

Page 154: Manual de Implementacion de Beakos GNU2

Siempre que hagamos alguna modificación en la configuración del servidor debemos guardar los cambios dando click en el botón “Guardar” y “Aplciar”. Configuración de la autenticación Seleccionamos la opción de autenticación en la página principal del módulo: Para informar a los usuarios si tienen correo nuevo cuando inicien sesión seleccionar la opción “Sí” en el campo “Notificar al usuario de correo Nuevo”. Para especificar si los usuarios acceden con o sin contraseña modificamos el campo “Permitir la autenticación por contraseña?” Para denegar que los usuarios se autentiquen como root modificar la opción “Permitir inicio de sesión de root” con el parámetro “No”. Para evitar que los usuarios utilicen certificados para autenticarse, modificar la opción “Permitir la autenticación RSA?” con el parámetro “No”. Configuración de SSH para los nuevos usuarios Seleccionamos la opción Configuración de claves de usuario SSH en la página principal del módulo: Marcar la casilla de “Clave de configuración de SSH para nuevos usuarios Unix” esto permitirá que ssh-keygen se aplique para todas las cuentas nuevas. Para que la clave pública del usuario nuevo se agregue a la lista de claves que están autorizados para utilizar su cuenta, marcar la opción “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 interactúan para el intercambio de información 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 múltiples sistemas. Se le denomina cliente al host que inicia sesión en un host remoto posteriormente realiza solicitudes para determinados servicios y el host servidor es el encargado de atender dichas solicitudes. A continuación se mencionan algunas funciones del cliente:

Manejo de la interfaz de usuario.

Validación de los datos de entrada.

El intercambio de información es independiente de las características físicas 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 máquinas remotas. La sintaxis general es la siguiente: ssh <usuario>@<hostname>

Otra forma también puede ser:

Page 155: Manual de Implementacion de Beakos GNU2

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 is

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)?

Después de escribir “yes” se añadirá el servidor en su lista de hosts conocidos: ~/.ssh/known_hosts/ . En seguida aparecerá un intérprete de comandos donde debe ingresar la contraseña del usuario con el que se desea conectar una vez ingresada la contraseña correcta aparecerá el intérprete de comandos del host remoto. Otra opción 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 intérprete de comandos. Para conocer las demás opciones que tiene este comando se puede consultar el manual de ayuda escribiendo en el intérprete de comandos: man ssh

13.5.2 Comando scp El comando scp permite copiar ficheros entre dos máquinas, debido a que utiliza ssh para la transmisión de información ofrece una seguridad robusta; es similar al comando rcp. A continuación se muestra la sintaxis general para copiar archivos desde una máquina local a una máquina 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 máquinas remotas:

Page 156: Manual de Implementacion de Beakos GNU2

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 conexión por ssh. La sintaxis es la que a continuación se muestra: sftp <nombre-usuario@hostname>

sftp> get <fichero>

Tabla 8-1. Comandos más comunes para en una sesión sftp.

Comando Descripción

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] Crea un directorio en el host local.

mkdir [path] Crea un directorio en el host remoto.

Put local-path [remote-path] Carga un archivo en el host remoto. Por lo regular suele usarse para subir archivos al servidor sftp.

help Despliega ayuda en modo texto.

pwd Despliega el directorio de trabajo en el host remoto

rename [oldpath] [newpath] Renombre un archivo del host remoto.

rmdir [path] Elimina un directorio del host remoto.

rm [path] Elimina un archivo del host remoto.

13.5.4 Clientes con interfaz grafica para SSH Los clientes SSH con interfaz gráfica son de gran ayuda para aquellos usuarios que no están familiarizados con un entorno en modo comando y que requieren una forma de navegación más gráfica por el sistema de archivos con ayuda del puntero. Existen diferentes clientes SSH con estas características.

Page 157: Manual de Implementacion de Beakos GNU2

Tabla 8-2. Clientes para sesiones SFTP.

Entorno de SO Cliente SSH (gráfico) Sito Oficial

GNU/LINUX

Konqueror.- Este

navegador permite

conexiones mediante ssh,

tecleando en la barra de

direcciones lo siguiente:

sftp://username@host

http://www.konqueror.org

Nautilus.- Navegador que

ofrece conexiones gráficas

por ssh tecleando en la

barra de direcciones:

ssh://username@host

http://live.gnome.org/Nautilus

KNetAttach.- Esta

aplicación permite

conexiones SSH gráficas,

integra diversas carpetas

de red con el entorno KDE.

Sujeta a los términos de la

Licencia Pública General

GNU.

http://docs.kde.org/stable/es/kdebase-

runtime/knetattach/index.html

WINDOWS

WinSCP.- Es una aplicación

de Software Libre. Facilita

la transferencia segura de

archivos entre dos sistemas

local-remoto soporta la

autenticación por medio de

SSH, soporta conexiones

por SSH1 y SSH2.

http://winscp.net/eng/docs/lang:es

Page 158: Manual de Implementacion de Beakos GNU2

Capí tulo 14 Servicios de impresio n

14.1 Sistema de impresión cups Es el sistema de impresión basado en estándares de código abierto desarrollado por Easy

Software Products para brindar una solución de impresión estándar a todas las empresas que

ofrecieran soluciones de Sistema Operativo basadas en UNIX, así como para usuarios, además

de que provee las interfaces de línea de comando de System V y Berkerley.

14.1.1 Características CUPS utiliza como base el protocolo IPP pero también 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 impresión de archivos de imagen en impresoras non-

PostScript.

Existen varias interfaces de usuario destinadas a diferentes plataformas para la configuración

de CUPS, también cuenta con una aplicación web desde la cual poder administrar todos los

recursos.

A continuación se describen las principales características de CUPS:

CUPS utiliza el protocolo de impresión de Internet (“IPP”) por default para administrar las colas impresión entre otras tareas.

Proporciona búsquedas de impresoras y algunas opciones de impresión basadas en archivos de descripción de impresora PostScript(“PPD”)

Es un sistema de impresión estandarizado, además de modular es capaz de admitir distintos formatos de datos que son enviados al servidor de impresión.

Provee un mecanismo el cual permite que los formatos de impresión sean leídos por las impresoras de manera estándar.

Facilita la creación de nuevos controladores tanto a los desarrolladores como a los fabricantes para que dichos controladores puedan ser implantados en el servidor de impresión.

14.2 Funcionamiento Cups está diseñando bajo la arquitectura cliente/servidor, en la cual existe una impresora

central que se encarga de atender los trabajos de impresión que se van solicitando, así como el

procesamiento de comandos, también provee información sobre el estado de las impresoras

mediante aplicaciones locales o remotas, además de informes o notificaciones cuando el

usuario lo requiera.

Page 159: Manual de Implementacion de Beakos GNU2

La arquitectura de CUPS se divide en tres partes principales:

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 impresión, suscripciones y las notificaciones del sistema. El planificador

utiliza una serie de interfaces web dinámicas basadas en CGI que pueden ser configuradas

mediante scripts.

El número máximo de conexiones de clientes y trabajos de impresión simultáneos depende de

las características del hardware del servidor de impresión, velocidad de procesador y de

memoria RAM principalmente.

14.4 Instalación de CUPS Para la instalación 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

Planificador

Filtros

Backends

Page 160: Manual de Implementacion de Beakos GNU2

Iniciar CUPS al arranque con el sistema

root [ ~ ]# chkconfig --add cups

root [ ~ ]# chkconfig --list

cups 0:off 1:off 2:off 3:on 4:off 5:on

6:off

Por defecto el servidor CUPS iniciará en los niveles de ejecución 3 y 5.

El servidor utiliza el archivo de configuración cupsd.conf ubicado en /etc/cups.

Algunas de las opciones del archivo de configuración de CUPS más importantes son:

Browsing Establece si es posible o no administrar las funciones de impresión en red por medio

de la interfaz web, es decir, desde algún navegador de internet.

BrowseProtocols Específica que protocolos utilizar al momento de compartir impresoras a

través de la red local.

BrowseInterval Específica el tiempo límite transcurrido entre las actualizaciones de

navegación.

BrowseAddress Específica una dirección a la cual se enviará información de navegación. Varias

directivas de BrowseAddress pueden ser especificadas para enviar información a diferentes

redes o sistemas.

Limit (Location) Limit especifica los grupos de control de acceso y autenticación para

determinados tipos de peticiones HTTP.

ServerName La directiva de ServerName especifica el nombre del host anfitrión 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

impresión, 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 continuación:

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 páginas que se van imprimiendo lo que permite llevar un conteo y mostrarlo al usuario cuando lo requiera. Los log de

Page 161: Manual de Implementacion de Beakos GNU2

registro son girados* por el planificador cuando es rebasado el límite de almacenamiento que por defecto es de 1MB, si se establece que el tamaño sea de 0 entonces no se realiza la rotación 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 administración.

14.5.1 El comando LPC El comando lpc permite un control limitado sobre la impresora y las colas de clase que

proporciona CUPS. También permite realizar consultas sobre el estado de las colas de

impresión. Si no se especifica algún comando, lpc desplegará un prompt y aceptara

comandos desde la entrada estándar.

Sintaxis

lpc [ comando [ parámetros ] ]

Tabla 14-1. Opciones para el comando LPC

Opción Descripción

status Nos muestra el estado de las impresoras.

help Nos muestra una lista de comandos disponibles.

quit Cierra el programa lpc y nos regresa a la consola.

exit Lo mismo que quit

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 impresión, este comando es de

utilidad para saber si la impresión se llevo a cabo o si permanece activa en la cola.

Sintaxis:

lpq [-E] [-U nombre_usuario] [-h servidor:[puerto]] [-P

destino] [-a] [-l]

Page 162: Manual de Implementacion de Beakos GNU2

Tabla 14-2. Opciones para el comando LPQ

Opción Descripción

-E Encripta las conexiones al servidor.

-P Especifica una impresora.

-U Especifica un nombre de usuario alterno.

-a Señala los trabajos en todas las impresoras.

-h Especifica un servidor alterno.

-I Pide un formato de reportes más extenso y detallado.

14.5.3 El comando LPR La mayoría 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 válidas.

Sintaxis

lpr [-E] [-H servidor [:puerto]] [-U nombre_de_usuario] [-P

destino] [-#copias ]

Tabla 14-3. Opciones para el comando LPR

Opción Descripción

-#copias Número de impresiones, el valor puede ir de 1 hasta 1000.

-T Establece el nombre del trabajo de impresión.

-P Permite imprimir en la impresora seleccionada.

-U Especifica un nombre de usuario alterno.

-I Especifica que el archivo a imprimir se encuentra en un formato correcto para que no sea necesario filtrarlo.

-m Envía un correo después de que se ha completado la impresión.

-p Especifica que archivo de la cola de impresión debe ir con un formato sombreado de fecha, hora, nombre del trabajo y número de página.

-q Mantiene en espera el trabajo para imprimirse.

-r Especifica los nombres de los archivos que deben ser eliminados después de la impresión.

14.5.4 El comando LPRM Cancela los trabajos de impresión, es decir que lprm retira los trabajos de la cola de

impresión.

Sintaxis

lprm [-E] [-U usuario] [-h servidor[:puerto]] [-P destino]

[ID del trabajo]

Page 163: Manual de Implementacion de Beakos GNU2

Tabla 14-4. Opciones para el comando LPRM

Opción Descripción

-E Forzar la encriptación cuando hay una conexión al servidor.

-U Especifica un nombre de usuario alterno.

-h Especifica un servidor de impresión alterno.

-P Especifica la impresora.

14.6 Comandos SYSTEM V Además de los comandos Berkeley CUPS también permite la utilización 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

Opción Descripción

-d Especifica la impresora donde se enviarán los trabajos.

-n Número de copias del trabajo de impresión, máximo 100

-P Determina el número de páginas a imprimir (1,5,80-100).

Ejemplo:

root [ ~ ]# lp –n 28 –p impresora_color documento.txt

14.6.2 El comando LPADMIN Configura las colas de las clases e impresoras proporcionadas por CUPS. También se puede

usar para poner la clase o impresora predeterminada del servidor. Cuando se usa la opción

-E antes de las opciones -d, -p, o -x, hace que se use encriptación en la conexión 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 descripción]

[-P archivo ppd] [-o name=valor] [-u allow:user] [-u deny:user]

Page 164: Manual de Implementacion de Beakos GNU2

Tabla 14-6. Opciones para el comando LPADMIN

Opción Descripción

-E Encripta las conexiones al servidor.

-h Especifica el servidor de impresión.

-d Indica la impresora destino.

-p indica la impresora a utilizar.

Tabla 14-7. Opciones para utilizar con lpadmin –p [impresora]

Opción Descripción

-c Agrega la impresora especificada a la clase. Si la clase no existe se crea automáticamente.

-i Establece para la impresora un guión (script) de interfaz estilo SYSTEM V Esta opción no puede ser especificada con la opción –P, y está pensada para dar soporte a controladores de impresora legados.

-m Establece un guión (script) de interfaz estándar 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 descripción de la impresora.

-L Proporciona una ubicación de la impresora.

-P Especifica un archivo de impresión de la impresora PostScript para usar con la impresora.

14.7 Comandos CUPS CUPS proporciona los siguientes comandos para la administración.

14.7.1 El comando CUPSADDSMB cupsaddsmb exporta las impresoras de Samba para utilizarlas con clientes de Windows.

Dependiendo de la configuración de Samba se debe proporcionar una contraseña además de la

instalación de un driver.

Sintaxis

cupsaddsmb [ -H servidor-samba ] [ -U usuario-samba [

%contraseña-samba ] ] [ -h servidor-cups [:puerto] ] [ -v ]

printer [ impresora… ]

Tabla 14-8. Opciones para el comando CUPSADDSMB

Opción Descripción

-H Especifica el servidor SAMBA que se tomara por defecto en el servidor CUPS.

-U Especifica el nombre de usuario del administrador de impresión.

-a Exporta todas las impresoras. En caso contrario solo las impresoras nombradas son exportadas.

-h Especifica un servidor CUPS diferente a usar.

-v Especifica que se despliegue un informe más detallado sobre la acción que se esté ejecutando. Esto es de utilidad para identificar problemas de configuración en el servidor SAMBA.

Page 165: Manual de Implementacion de Beakos GNU2

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 Configuración de impresoras CUPS cuenta con una interfaz web desde el cual se pueden monitorizar las impresoras y

trabajos, así como ejecutar tareas para la administración 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 UBICACIÓN DESCRIPCIÓN admin.cgi /admin Proporciona todas las

funciones administrativas, por ejemplo: Añadir impresora Editar archivo de configuración Mostrar el archivo de registro de accesos Añadir clase Administrar clases Administrar trabajos

classes.cgi /classes Lista las clases y proporciona la función de búsqueda para la administración de clases.

help.cgi /help Proporciona documentación y ayuda en línea.

jobs.cgi

/jobs Enumera los trabajos y proporciona funcionalidades para la administración, como son las búsquedas y mostrar resultados detallados de dichas búsquedas.

printers.cgi /printers Muestra un listado de las impresoras y proporciona funciones para la administración, como son: Imprimir páginas de prueba Modificar las opciones de

Page 166: Manual de Implementacion de Beakos GNU2

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 través de un navegador por el puerto

631(localhost:631). La página de inicio contiene tres menús principales:

CUPS para usuarios. Este apartado contiene documentación técnica acerca del

sistema CUPS, contiene información de cómo imprimir desde la línea de

comandos, las novedades que presenta la versión instalada respecto a otras

anteriores y el foro de usuarios donde se comparten problemas y soluciones

relacionados al sistema de impresión.

CUPS para administradores. Este apartado contiene información sobre como

agregar impresoras y clases, políticas de funcionamiento, contabilidad básica,

autenticación con Kerberos y el manual de referencia del archivo de

configuración de CUPS.

Cups para desarrolladores. Este apartado contiene información sobre el

desarrollo de CUPS y cómo modificar su código fuente, además de una liga al

foro de desarrollo.

La pagina de administración permite realizar las siguientes tareas:

Impresoras

Agregar impresora.

Encontrar nuevas impresoras.

Administrar impresoras.

Clases

Añadir clases.

Administrar clases.

Trabajos

Administrar trabajos.

Page 167: Manual de Implementacion de Beakos GNU2

Servidor

Editar archivo de configuración.

Ver archivo de registro de accesos.

Ver archivo de registro de errores.

Ver archivo de registro de páginas.

Figura 14-1. Interfaz web para la administración de CUPS.

14.8.2 Agregado de impresoras con la interfaz Web CUPS permite agregar impresoras locales, las que están directamente conectadas o remotas,

las que se encuentran en la red (IPP). Para comunicarse con los dispositivos de impresión CUPS

hace uso de URI Uniform Resource Information, el cual es un identificador que consiste en una

secuencia de caracteres que permiten la identificación uniforme de los recursos. A

continuación se muestran los dispositivos que se pueden configurar dependiendo del tipo de

conexión 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.

Page 168: Manual de Implementacion de Beakos GNU2

Conectados en red (IPP).- IPP o Internet Printing Protocol, gracias a este protocolo

CUPS permite que se puedan utilizar impresoras a través 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 máquina.

SMB Service Message Block este protocolo es muy común 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 características técnicas tienen la capacidad de conectarse a una red ya sea por Ethernet, inalámbrica, etc. La sintaxis URI para dirigirse a una impresora:

socket://dirección_ip:puerto

A continuación se describen los pasos para agregar una impresora imaginaria a través de la

interfaz Web de CUPS con las siguientes características:

Nombre: impresora-1

Ubicación: administración

Descripción: Impresora imaginaria de pruebas

Tipo de conexión: Socket

Marca: HP

Modelo: Laser Jet

Procedimiento

1. Ejecutar en el navegador de nuestro sistema la URL http://localhost:631, de los menús

superiores seleccionar la opción “Administración” , le pedirá introducir el nombre de usuario y

contraseña, utilice la cuenta de root y su respectiva contraseña.

Page 169: Manual de Implementacion de Beakos GNU2

2. Después de ingresar al sistema seleccionamos el vínculo “Añadir impresora”.

3. En el menú “Otras impresoras de red”, seleccionamos la opción Appsocket/HP JetDirect y

damos click en el vínculo “siguiente”.

4. En el campo “conexión” escribimos socket://localhost y damos un click en el

vínculo “siguiente”.

5. CUPS nos mostrará un formulario donde debemos introducir la información relacionada a la

impresora (Nombre, Ubicación, Descripción, etc).

6. Dar click en el botón “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 configuración del papel, color, resolución, etc.

Podemos modificar las opciones a nuestras necesidades y damos un click en “cambiar

opciones prederminadas” para finalizar con la configuración. Al terminar debe mostrar la

siguiente pantalla.

Figura 14-2. Descripción de la impresora configurada por socket.

14.8.3 Agregar una impresora desde la línea de comandos Cómo es habitual en ambientes GNU/Linux las tareas que se pueden realizar a través de la

interfaz gráfica o interfaz web, se pueden realizar a través de la línea de comandos, es

importante aprender este método, 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 configuración que el ejercicio anterior con excepción del nombre, esta se llamará

impresora-2.

Page 170: Manual de Implementacion de Beakos GNU2

Procedimiento

1. Abrir una terminal del sistema con el usuario root y enlistar las colas de impresión 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 parámetros 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 también visualizar la impresora que acabamos de configurar a través de la interfaz

web.

Figura 14-3. Impresoras configuradas en nuestro sistema.

14.8.4 Configuración de la impresora predeterminada Si tenemos un sistema con múltiples impresoras configuradas, es adecuado establecer alguna

de ellas como predeterminadas, para que los usuarios que no especifiquen explícitamente una

impresora de las que están configuradas. Por ejemplo para establecer la impresora-2

Page 171: Manual de Implementacion de Beakos GNU2

configurada en el tema anterior como impresora predeterminada utilizar el siguiente

comando.

root [ ~ ]# lpadmin -d impresora-2

14.8.5 Privilegios de impresión 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 políticas de la

organización 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 intérprete de comandos tecleamos:

root [ ~ ]# lpadmin -x impresora-2

Page 172: Manual de Implementacion de Beakos GNU2

Capí tulo 15 Network File System (NFS)

Network File System (NFS), es un protocolo a nivel de aplicación que permite compartir

archivos y directorios a través 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 opción, 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 versión sólo

fue experimental. La versión 2 del protocolo se basó en UDP con mejoras significativas

respecto a su antecesora. En 1995 salió a la luz la versión 3, implementada sobre el protocolo

TCP en lugar de UDP. En el año 2000 surgió NFS versión 4 que incluye como principales

mejoras la seguridad con Kerberos, interacción 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 aplicación más adecuada como Samba

que abordaremos en el siguiente capítulo.

15.2 Instalación de NFS Beakos GNU/Linux en sus repositorios cuenta con soporte para la versión 4 de NFS a través del

paquete NFS Utils, que necesitamos tener instalado en nuestro sistema. Instalaremos el

paquete ejecutando en la terminal los siguientes comandos:

root [ ~ ]# swaret --update

Page 173: Manual de Implementacion de Beakos GNU2

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

ejecución tecleando:

root [ ~ ]# /etc/init.d/portmap status

portmap is running with Process ID(s) 2103.

Si el servicio Portmap está en ejecución procedemos a iniciar el servicio NFS tecleando el

siguiente comando:

root [ ~ ]# /etc/init.d/nfs-server start

Iniciando NFS mountd... [ OK ]

Iniciando NFS nfsd... [ OK ]

Iniciando NFS statd... [ OK ]

Montando nfsd sistema de archivos virtuales... [ OK ]

Exportando sistemas de archivos NFS... [ OK ]

Si deseamos habilitar el servicio de NFS para que arranque en automático 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

partición 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 partición, el servidor verifica los

permisos del cliente para accesar a la partición 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 envía una señal 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 Configuración 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

Page 174: Manual de Implementacion de Beakos GNU2

/etc/exports en este archivo se define que particiones se compartirán a una

determinada red y los permisos que tendrán otros anfitriones de lectura y escritura.

15.4.1 El archivo de configuración /etc/exports Este archivo de configuración 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 dirección IP

192.168.0.128, otorgándole permisos de lectura y escritura.

Tabla 15-1. Permisos posibles para un servidor NFS

Opción Descripción

secure Opción configurada por defecto para indicar que el número de puerto por el cual el cliente solicita un montaje debe ser menor a 1024, si se desea desactivarlo especificar la opción insecure.

rw Permisos al cliente de lectura y escritura.

ro Permisos al cliente de sólo lectura.

no_root_squash Permite que el usuario root del cliente, conserve los mismos privilegios que el usuario local en el servidor tendría normalmente.

root_squash Lo contrario al anterior, evita que el usuario root del cliente NFS acceda con los mismos derechos que el usuario raíz local.

all_squash Asigna los UID y los GID de los archivos al usuario anónimo.

15.4.2 Comando exportfs La función 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

Opción Descripción

-a Exporta todas las particiones declaradas en el archivo /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 información.

-r Restaura todas las conexiones.

Page 175: Manual de Implementacion de Beakos GNU2

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 información 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 opción –e, permite muestra una lista de exportaciones del servidor NFS.

15.5 Configuración del cliente NFS La configura del cliente se supone más sencilla que la configuración del servidor, ya que no se

requiere de la instalación de ningún 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

Opción Descripción

bg Montaje del sistema de archivos en segundo plano, en caso de que un montaje falle al inicio, seguirá intentando establecer conexión, esto es útil porque permite que el sistema no se inmovilice esperando establecer una conexión.

intr Especifica si el montaje se puede interrumpido aun cuando hay transferencia de datos.

hard Es una opción predeterminada, si se cae una conexión y el servidor no responde, el cliente seguirá persistiendo de forma indefinida.

soft Habilita el montaje suave de un sistema de archivos NFS, permite que el cliente desista de una conexión después de un cierto número de intentos especificados en la opción retrans.

retrans=n Número máximo de intentos que un cliente intentará conectarse a un servidor NFS.

rsize=n Número máximo de bytes que un cliente utiliza para leer archivos de una partición NFS.

sec=valor 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).

Page 176: Manual de Implementacion de Beakos GNU2

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 alteración de datos.

sec=krb5p Utiliza Kerberos para la autenticación además de llevar a cabo la encriptación de datos.

nfsvers=n Permite seleccionar la versión del sistema NFS que puede corresponder a 2 o 3, no está habilitado para esta opción, en lugar de ello sería necesario especificar el tipo como nfs4 como sistema de archivos.

proto=n Especifica el protocolo a utilizar, podemos seleccionar entre UCP y TCP, la versión de NFSv4 sólo trabaja con TCP.

wsize=n Número máximo 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 línea aparece el sistema de

archivos compartido.

Page 177: Manual de Implementacion de Beakos GNU2

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.

Page 178: Manual de Implementacion de Beakos GNU2

Capí tulo 16 SAMBA (CIFS)

Samba es una implementación 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 también

permite actuar como un controlador principal de dominio (PDC), administrar colas de

impresión para usuario de Windows incluso como un sencillo director activo.

16.1 Características Samba fue desarrollado en sus inicios por Andrew Tridgell, el nombre proviene de insertar dos

vocales a SMB que es el protocolo estándar de Microsoft.

Samba es una implementación 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

información como se realiza con un cliente de FTP.

Sugerencia Este capítulo pretende brindarle la

información necesaria para la configuración de Samba,

sin embargo recomendamos leer ampliamente la

documentación oficial.

Page 179: Manual de Implementacion de Beakos GNU2

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 navegación de la red a través de NETBIOS.

Autenticar usuarios a dominios Windows.

Proporcionar resolución 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, también es el encargado de autenticar usuarios, compartir datos a

través 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, también participa en los protocolos de navegación

que forman la vista de entorno de red de Windows.

WINDBIND Resuelve la información 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 módulo de

PAM (pam_windbind) a fin de que pueda proporcionar servicios de autenticación, este

servicio se controla aparte del servicio SMB y puede funcionar de forma

independiente.

16.3 Nombres de usuarios y contraseñas La última versión de Samba 3.0 proporciona varias formas de almacenar usuarios y

contraseñas, para un administrador de sistemas es muy importante mantener una consistencia

Page 180: Manual de Implementacion de Beakos GNU2

en los registros, los usuarios no se preocuparán por recordar varias contraseñas, por lo que es

importante diseñar un modelo adecuado a las necesidades de cada organización.

Entre algunas opciones que disponemos para administrar nombres de usuarios y contraseñas

están las siguientes:

Módulos PAM (Módulos de autenticación enchufables) de GNU/Linux. Esta opción

permite la autenticación 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 sólo tendrán

que preocuparse de las contraseñas del PDC.

Samba como un PDC (Controlador de dominio primario). Esta opción permite

mantener los usuarios y sus contraseñas de forma local y que las máquinas se

autentiquen en Samba utilizando alguno de los motores de contraseñas (smbpasswd,

tdbsam, ldapsam, etc.).

16.3.1 Motores de usuarios y contraseñas Algunos de los motores más importantes para la administración 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

información de Windows.

tdbsam Ideal para servidores locales que no requieren replicar la información 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 solución escalable que permite replicar sus

cuentas a otros servidores LDAP o que varios servidores Samba consulten la

información de las cuentas en un servidor con LDAP.

16.4 Instalación de Samba Beakos como varias distribuciones proporciona los paquetes precompilados de Samba, Samba

echa mano de algunos paquetes como Xinetd para activar la interfaz gráfica de administración

llamada Swat y de CUPS para compartir impresoras, para instalar Samba tecleamos los

siguiente comandos:

root [ ~ ]# swaret --update

root [ ~ ]# swaret --install xinetd

root [ ~ ]# swaret --install expat

root [ ~ ]# swaret –install libdaemon

root [ ~ ]# swaret –install samba

Si deseamos que estos servicios se inicien junto con el sistema tecleamos.

root [ ~ ]# chkconfig --add avahidaemon

root [ ~ ]# chkconfig --add samba

Page 181: Manual de Implementacion de Beakos GNU2

Corroboramos que los servicios que deseamos se iniciarán 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 Configuración de Samba La configuración de Samba se lleva a cabo en único archivo de configuración ubicado

/etc/samba/smb.conf, los cambios realizados se aplican una vez que reinicie el servicio

de Samba.

16.5.1 Configuración del grupo de trabajo Analizaremos las opciones más importantes de este archivo de configuración.

Para modificar el grupo de trabajo de Windows y añadirle una descripción debemos modificar

las siguientes líneas dentro de la configuración global:

workgroup = beakos.com.mx

server string = Beakos Samba Server

16.5.2 Seguridad a nivel de usuarios El parámetro security nos permite modificar el modo de autenticación de los usuarios, los usos

más comunes son:

user es la configuración predeterminada por Samba, permite al servidor

solicitar nombre de usuario y contraseña 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 autenticación 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 autenticación.

Ejemplo:

security = user

Page 182: Manual de Implementacion de Beakos GNU2

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 conexión, modificando el siguiente parámetro:

hosts allow = 192.168.1. 127.

Esta configuración 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 más 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 están configuradas con el servidor CUPS con otros

clientes de Windows, para ello el servidor CUPS debe de estar funcionando. Debemos

configurar los siguientes parámetros:

load printers = yes

Este parámetro habilitado cargará en automático las impresoras que el sistema samba

encuentre conectadas.

Podemos seleccionar el sistema de impresión que deseamos utilizar, generalmente no es

necesario editar este parámetro, toma como opción 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 parámetro [printers] se refiere al nombre que le asignamos al recurso.

comment define una descripción para las impresoras compartidas.

path indica el directorio de donde se tomarán las impresoras.

Page 183: Manual de Implementacion de Beakos GNU2

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... [ OK ]

Deteniendo nmbd... [ OK ]

Iniciando nmbd... [ OK ]

Iniciando smbd... [ 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 = descripción

path = /ruta/del/recurso/a/compartir

parametro1 = valor

parametro2 = valor

Tabla 16-1. Parámetros para compartir archivos y directorios con Samba

Valor Descripción

invalid users Usuarios que no están permitidos a acceder al recurso. Ejemplo: invalid users = root antonio angel

valid users Sólo estos usuarios podrán aceder al recurso. Ejemplo: valid users = francisco carlos

admin users Usuarios con privilegios administrativos para compartir recursos, este parámetro no es válido con el modo de seguridad “share”. Ejemplo: admin users = jesus

read list Lista de usuarios o grupos que tendrán 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 sólo 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 estarán disponibles los recursos. Ejemplo: hosts deny = 192.168.4. EXCEPT 192.168.4.35

Page 184: Manual de Implementacion de Beakos GNU2

browseable Permite a los recursos permanecer visibles para ser explorados o mantenerse ocultos para mayor seguridad. Ejemplo: browseable = yes

writable Establece permisos de escritura al recurso. Ejemplo: writable = no

available Permite habilitar y deshabilitar un recurso, según su valor. Ejemplo: available = no

Creación de un recurso compartido

Llevaremos a cabo la creación 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 contraseñas 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

Page 185: Manual de Implementacion de Beakos GNU2

Ahora que hemos creado el recurso y los usuarios, debemos de editar el archivo de

configuración de samba con el editor vi, agregaremos al final las siguientes líneas

[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 configuración:

root [ ~ ]# testparm

Si todo está correcto procedemos a reiniciar el servicio de samba:

root [ ~ ]# /etc/init.d/samba restart

Deteniendo smbd... [ OK ]

Deteniendo nmbd... [ OK ]

Iniciando nmbd... [ OK ]

Iniciando smbd... [ OK ]

Validamos en un cliente Windows a través 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 implementación más sencilla de un PDC con Samba utiliza el motor tdbsam, veamos el

archivo de configuración /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

Page 186: Manual de Implementacion de Beakos GNU2

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 configuración anterior al archivo de configuración

/etc/samba/smb.conf, también debemos crear el grupo machines.

root [ ~ ]# groupadd machines

Reiniciamos el servicio:

root [ ~ ]# /etc/init.d/samba restart

Deteniendo smbd... [ OK ]

Deteniendo nmbd... [ OK ]

Iniciando nmbd... [ OK ]

Iniciando smbd... [ OK ]

Creamos los usuarios que se autenticarán 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.

Page 187: Manual de Implementacion de Beakos GNU2

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 autenticación que nos provee Samba. Pero una solución que se

requiere en grandes ambientes de producción donde se utiliza un Directorio Activo de

Windows es poder utilizar los mismos usuarios que ya están registrados, es decir que Samba

comparta recursos utilizando los usuarios y contraseñas de un servidor Windows.

16.7.1 El demonio Winbind

El demonio winbind nos permite traducir información sobre las cuentas de los usuarios desde

servidores nativos en Windows, para esto se basa en el módulo de PAM pam_winbind, la

herramienta ntlm_auth que permite el acceso externo a las funciones de autenticación y el

servicio libnss_winbind (biblioteca del conmutador del servicio de nombres de winbind).

16.7.2 Integración al active directory A continuación veremos un ejemplo real de la integración de un host a un dominio de

Windows llamado dcinfotec.local

1. Debemos modificar el archivo /etc/sysconfig/network, con el propósito 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

Page 188: Manual de Implementacion de Beakos GNU2

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 codificación de caracteres local configurada en Beakos GNU/Linux.

Por defecto es el estándar “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 información de la autenticación, 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 bitácora 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

Page 189: Manual de Implementacion de Beakos GNU2

Indica al demonio winbind que los UID de los usuarios del directorio activo estarán dentro de

este rango.

winbind gid=10000-20000

Indica al demonio winbind que los GID de los grupos del directorio activo estarán 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 intérprete 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 contraseñas en el sistema. Dejándolo 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 después de obtener los usuarios locales del archivo

/etc/passwd haga una búsqueda de usuarios en el directorio activo.

Page 190: Manual de Implementacion de Beakos GNU2

4. Editamos el archivo de configuración de Kerberos dejándolo 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%contraseña

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

Page 191: Manual de Implementacion de Beakos GNU2

9. Podemos corroborar que ya podemos hacer uso de los usuarios y grupos del directorio

activo tecleando:

root [ ~ ]# wbinfo -u

10. Comprobamos la validación de usuarios y grupo funciona bien a través 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. Realizaríamos 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... [ OK ]

Recargando nmbd... [ OK ]

Ahora podemos acceder con los usuarios que pertenecen al grupo samba con privilegios de

lectura y escritura.

Page 192: Manual de Implementacion de Beakos GNU2

16.8 SWAT (Samba Web Administration Tool) SWAT es una interfaz que nos permite administrar Samba de manera gráfica, es una excelente

alternativa si no deseamos complicarnos la existencia editando los archivos de configuración

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, sólo 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

configuración 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 sólo escuchará

peticiones por localhost, podemos modificarlo para que escuche peticiones de alguna otra

dirección IP.

Sugerencia La autenticación de SWAT enviará la

información sin cifrar del navegador al servidor, no se

recomienda operar SWAT desde otra máquina o bien si

desea hacerlo utilice alguna herramienta como Stunnel

Page 193: Manual de Implementacion de Beakos GNU2

Si ha decidido modificar el archivo, es necesario reiniciar Xinetd para que los cambios surtan

efecto.

root [ ~ ]# /etc/init.d/xinetd restart

Deteniendo xinetd... [ OK ]

Iniciando xinetd... [ OK ]

Puede conectarse a la interfaz Web de SWAT utilizando el navegador Web del sistema de

Beakos, (necesitará haber instalado la interfaz gráfica, vea gestión 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 contraseña, escriba root como nombre de

usuario y su respectiva contraseña, una vez registrado se mostrará una interfaz web como

esta:

Figura 16-1. SWAT herramienta para la administración gráfica de Samba.

16.8.1 Menús de SWAT Cuando establece una conexión a la herramienta de configuración SWAT y se autentica como

usuario root, verá el menú de la figura 16-1, además de encontrar muchas opciones para la

configuración de Samba, encontrará también toda la documentación referente a esta

herramienta.

Page 194: Manual de Implementacion de Beakos GNU2

En la página superior encontrará las siguientes opciones:

Tabla 16-1. Menús de la herramienta Samba SWAT

Menú Descripción

Home La página del menú principal, en ella se encuentran ligas hacia la documentación de Samba, estás ligas apuntan a enlaces dentro del servidor, por lo que no deberá preocuparse por la conexión a Internet, podemos obtener información de los demonios de Samba, los archivos de configuración, herramientas del lado del cliente, herramientas administrativas, de consulta, etc.

Globals Incluye opciones de configuración globales para el servidor Samba, por ejemplo la configuración del grupo de trabajo, del dominio, de winbind, de usuarios y contraseñas entre otros. A la izquierda de cada valor existe un vínculo hacia la documentación relevante de cada parámetro, vale la pena revisarlo, le proporcionará conocimientos valiosos y prácticos.

Shares En Windows compartir un directorio resulta sumamente sencillo, basta con realizar unos cuantos clicks, este trabajo se logra en samba usando este menú.

Printers Este menú permite administrar impresoras disponibles con CUPS, compartidas con samba, podemos editar, agregar, borrar, etc.

Wizard Opción disponible en otras versiones de Samba, su función es configurar un servidor Samba paso a paso a través de menús intuitivos.

Status Muy útil para administrar los demonios de Samba, permite detener, iniciar y reiniciar. Además muestra las conexiones activas al servidor, los directorios compartidos y los ficheros abiertos.

View Nos genera una vista del archivo de configuración de Samba, conforme vaya realizando modificaciones observará como va cambiando.

Password Podemos administrar usuarios y contraseñas a través de este menú, sin accesar a la consola.

16.9 El comando SMBCLIENT El comando smbclient es una herramienta de la línea 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

sección mostraremos como accesar a recursos remotos de una manera básica, sin embargo

este comando ofrece muchas opciones tómese su tiempo el tiempo necesario para ir más allá

si así lo desea.

16.9.1 Explorar un servidor Con tantas interfaces gráficas disponibles para GNU/Linux, seguramente no hemos pensado

utilizar algún comando de consola para acceder un recurso de Samba, pero como

administradores de sistemas sabemos que no siempre tendremos a nuestra disposición una

cómoda interfaz gráfica, la sintaxis para accesar a un recurso es la siguiente:

smbclient –L nombre_del_servidor

Page 195: Manual de Implementacion de Beakos GNU2

Por ejemplo si deseamos ver los recursos compartidos de un servidor samba escribimos:

root [ ~ ]# smbclient -L 192.168.4.226

Quizá nos pida contraseña, simplemente tecleamos ENTER, para evitar esto podemos acceder

como usuario anónimo 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 Comment

--------- -------

BEAKOS Samba Server

Ponga especial atención 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 también 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

Opción Descripción

-I IP_destino Dirección Ip del servidor al cual nos queremos conectar.

-U usuario Nombre del usuario con el que deseamos establecer conexión al servidor samba. Ejemplo: -U francisco

-W grupo_trab Establece el grupo de traajo.

-D Directorio Directorio empieza la sesión conectándose al directorio.

Page 196: Manual de Implementacion de Beakos GNU2

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 múltiples ficheros en el servidor.

mput Colocar múltiples ficheros en el servidor.

help Muestra la ayuda disponible.

16.10 Montaje de un recurso compartido de Samba El núcleo(Kernel) de Beakos GNU/Linux se encuentra compilado para montar recursos

compartidos de Samba como sucede con la mayoría 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 volúmenes 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, quedaría de la siguiente forma:

//192.168.4.226/compartido /mnt/samba cifs

user=angel,pass=******,defaults 0 0

Page 197: Manual de Implementacion de Beakos GNU2

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=*****)

Page 198: Manual de Implementacion de Beakos GNU2

Capí tulo 17 LDAP

LDAP (Lightweight Directory Access Protocol, Protocolo Ligero de Acceso a Directorios), es un

servicio a nivel de aplicación que incluye un conjunto de protocolos utilizados para acceder y

modificar información centralizada en una red de computadoras.

LDAP está diseñado 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 información almacenada en

el servidor.

LDAP es un servicio muy escalable y relativamente fácil de configurar, pero para eso daremos

una breve introducción sobre los conceptos principales que rigen su arquitectura.

17.2 Conceptos básicos de LDAP LDAP es un servicio global de directorios. Estos directorios permiten almacenar todo tipo de

información relativa a objetos de distintas clases. LDAP se diferencia de las bases de datos

tradicionales en que está especialmente diseñada para buscar y leer datos, no para

operaciones de escritura.

Algunas implementaciones populares de LDAP son:

Open LDAP, implementación de código abierto de LDAP que abordaremos en capítulos

siguientes.

Red Hat Directory Server, implementación de LDAP desarrollada por Red Hat Inc.

Directorio Activo de Microsoft.

Apache Directory Server, Implementación de LDAP desarrollada en Java, por Apache

Fundation.

17.2.1 Jerarquía de LDAP Las entradas de un directorio LDAP están estructuradas en forma de árbol jerraquico, a esta

estructura se le conoce como DIT(árbol de información del directorio). Analicemos a fondo este

árbol a través del siguiente esquema.

Page 199: Manual de Implementacion de Beakos GNU2

dc = beakos, dc = com

ou = Desarrollo

ou = Diseno

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 raíz, 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 definición de funciones de diversas áreas y las personas que las integran. Ejemplo:

El proyecto Beakos GNU/Linux puede estructurarse declarando su dominio como la raíz (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 conexión a un servidor LDAP sería como se describe continuación:

Un cliente de LDAP se conecta a un servidor, esta acción se conoce como enlazarse a

un servidor.

Dependiendo de los privilegios de acceso configurados en el servidor LDAP, este puede

aceptar o rechazar la conexión.

Si el servidor acepta la conexión, el cliente entonces puede acceder a la información

del directorio, modificarla o actualizarla.

Si la conexión es rechazada, el servidor LDAP puede enviar la petición 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

información. Prácticamente puede almacenar cualquier tipo de información como texto, fotos,

certificados digitales.

Page 200: Manual de Implementacion de Beakos GNU2

Enlistamos algunos de los usos que se le pueden dar a LDAP:

LDAP puede servir como una completa solución para Administrar la identidad de los

usuarios dentro de una organización. NIS puede ser reemplazado por completo con

LDAP para administrar los servicios de autenticación.

Los servidores DNS puede almacenar su información en un servidor LDAP.

LDAP puede hacer la función de un directorio que ofrezca información de contacto de

los usuarios dentro de una organización (no. de teléfono, dirección, correo electrónico,

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 electrónico pueden almacenar la información de las cuentas

en servidores LDAP.

17.2.4 Términos empleados en LDAP En esta sección definiremos algunos de los términos más empleados al trabajar con LDAP.

Objeto, Es la unidad mínima 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 información relacionada al objet. por ejemplo en su correo elctrónico,

direciión, teléfono, 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 colección 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 básicos de la versión 3 de

LDAP, es el esquema central requerido para la implementación de OpenLDAP.

inetorgperson.schema, Esta clase de objeto se utiliza con frecuencia para almacenar

información 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.

Page 201: Manual de Implementacion de Beakos GNU2

17.3 Open LDAP OpenLDAP es la implementación abierta del protocolo LDAP, está liberada bajo su propia

licencia y es la implementación que utiliza el proyecto Beakos, el programa básicamente

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 replicación de datos hacia

otros servidores, sólo es requerido cuando se sincronizan dos o más servidores.

17.3.2 Utilidades del Cliente de OpenLDAP Estas utilidades son un conjunto de herramientas que funcionan desde la línea 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 más usuales de OpenLDAP

Opción Descripción

ldapadd Abre una conexión a un servidor LDAP, enlaza y añade entradas.

ldapcompare Abre una conexión a un servidor LDAP, enlaza y compara usando parámetros específicos.

ldapdelete Abre una conexión a un servidor LDAP, enlaza y borra una o más entradas.

ldapmodify Abre una conexión a un servidor LDAP, enlaza y modifica entradas.

ldapmodrdn Abre una conexión a un servidor LDAP, enlaza y modifica las entradas de RDN.

ldappasswd Herramienta para crear contraseñas a usuarios de LDAP.

ldapsearch Abre una conexión a un servidor LDAP, enlaza y realiza búsquedas usando los parámetros especificados.

slapadd Se utiliza para añadir 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 contraseñas de OpenLDAP.

slaptest Checa si existen errores en el archivo de configuración de OpenLDAP.

Page 202: Manual de Implementacion de Beakos GNU2

17.4 Instalación 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 raíz.

root [ ~ ]# swaret --install openldap

El comando anterior nos instalará el cliente y el servidor de OpenLDAP. Si deseamos instalar el

módulo de autenticación PAM para LDAP, tecleamos:

root [ ~ ]# swaret –install pam_ldap

Concluida la instalación del servidor LDAP podemos proceder con la configuración de nuestro

servidor.

17.5 Configuración de OpenLDAP Dependiendo de nuestras necesidades, la configuración de OpenLDAP puede ser un proceso

simple o tornarse en un asunto muy complejo, en esta sección configuraremos un servidor con

parámetros básico, realizaremos consultas e inserciones de datos.

17.5.1 El archivo de configuración slapd.conf El archivo /etc/openldap/slapd.conf es el archivo de configuración para el servidor

OpenLDAP (demonio slapd), en esta sección analizaremos a detalle la configuración del este

archivo, utilizando los siguientes parámetros:

Sugerencia Antes de llevar a cabo la configuración

de un servidor OpenLDAP, es necesario que tenga

usted bien definido la estructura de su directorio

(unidades organizacionales, usuarios, etc.).

Page 203: Manual de Implementacion de Beakos GNU2

dc=beakos,dc=com

cn=admin

Analicemos las configuración del servidor, hemos eliminado las líneas que no serán necesario

modificar, en una configuración básica.

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 líneas son comentarios.

La línea 5 corresponde al “schema” por default, podemos agregar más esquemas del directorio

/etc/openldap/schemas, según nuestras necesidades y la función que nuestro sistema

LDAP vaya a desempeñar, para una configuración básica, por lo menos el esquema

“core.schema”, debe estar configurado.

La línea 14 indica la ruta donde estará almacenado el archivo indicador de proceso (pidfile).

Page 204: Manual de Implementacion de Beakos GNU2

La línea 15 declara la directriz argsfile, indica la ruta del archivo que puede utilizarse para

configurar opciones adicionales para el inicio del demonio slapd.

La línea 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 opción).

La línea 21 indica el sufijo DN de las consultas que se realizarán en el servidor OpenLDAP.

Define el dominio de nuestro servidor Open LDAP, para esta práctica nosotros emplearemos el

dominio beakos.com.

La línea 22 especifica el nombre diferenciado (dn) del usuario que administrará nuestro

servidor OpenLDAP.

La línea 26 equivale a la contraseña 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 contraseña. Ejemplo:

root [ ~ ]# slappasswd

New password:

Re-enter new password:

{SSHA}UzK7y7seNn7zDRyq0s8/mlqxz1H3cjT6

Por último, la línea 30 indica la ruta del directorio donde se almacenarán los archivos de la

base datos y archivos relacionados.

17.5.3 Administración del servicio de OpenLDAP Concluida la configuración del demonio de OpenLDAP, podemos prepararnos para iniciar el

demonio, tecleamos:

root [ ~ ]# /etc/init.d/openldap start

Iniciando servidor LDAP... [ OK ]

Verificar el estado del servidor escribimos:

root [ ~ ]# /etc/init.d/openldap status

Iniciando servidor LDAP... [ OK ]

Detener el demonio de OpenLDAP, tecleamos:

root [ ~ ]# /etc/init.d/openldap stop

Iniciando servidor LDAP... [ OK ]

Page 205: Manual de Implementacion de Beakos GNU2

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 Configuración del cliente de OpenLDAP La configuración de un cliente de LDAP, puede tomar algún tiempo llegarla a comprender, el

archivo de configuración del cliente se ubica en la ruta /etc/openldap/ldap.conf. En

esta sección realizaremos los ajustes necesarios para hacer funcionar al cliente de OpenLDAP,

en realidad sólo será necesario realizar un ajuste, bien valdría la pena revisar los demás

parámetros de los que dispone el cliente para tener una idea más clara de lo que se puede

realizar con LDAP.

Localice la siguiente línea 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 Creación de objetos en OpenLDAP OpenLDAP nos permite insertar objetos desde un archivo de texto plano, estos objetos están

representados en el formato Data Interchange Format LDAP (LDIF), estos archivos se pueden

utilizar para, agregar, borrar y modificar información en el directorio, el formato de un archivo

LDIF corresponde a:

dn: <nombre diferenciado>

<descripción_atributo>: <valor>

<descripción_atributo>: <valor>

dn: <nombre diferenciado2>

<descripción_atributo>: <valor>

<descripción_atributo>: <valor>

A continuación crearemos un archivo llamado prueba.ldif, para poder crear objetos

dentro de nuestro directorio LDAP. Utilice algún editor de textos para crear la siguiente

información:

Page 206: Manual de Implementacion de Beakos GNU2

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 parámetros:

x Indica que se debe utilizar la autenticación de LDAP en vez de SASL.

D Se utiliza para especificar el nombre diferenciado que se va a utilizar.

W Permite utilizar la autenticación simple, en lugar de teclear la contraseña en la línea

de comandos.

f Especifica el archivo que se utilizará para la importación de los datos.

17.6.1 Consultas en un directorio LDAP La utilidad ldapsearch, nos permite extraer información 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

Page 207: Manual de Implementacion de Beakos GNU2

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 Implementación de una libreta de direcciones en un

directorio LDAP

LDAP es una herramienta muy versátil, 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 información de diversos contactos. En esta sección 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.

Page 208: Manual de Implementacion de Beakos GNU2

17.7.1 Agregar los esquemas. Por defecto OpenLDAP solo incluye el esquema llamado “core.schema”, debemos agregar al

archivo de configuración /etc/openldap/slapd.conf, los siguientes esquemas del

directorio /etc/openldap/schemas

include /etc/openldap/schema/cosine.schema

include /etc/openldap/schema/inetorgperson.schema

include /etc/openldap/schema/misc.schema

Una vez que hemos agregado estas líneas podemos proceder a reiniciar el servidor.

root [ ~ ]# /etc/init.d/openldap restart

Deteniendo servidor LDAP... [ OK ]

Iniciando servidor LDAP... [ OK ]

17.7.2 Instalación de PHPLDAPADMIN Phpldapadmin, conocido también como PLA es una interfaz web desarrollada en PHP través

de la cual podemos administrar nuestro servidor OpenLDAP, podemos realizar búsquedas,

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 también sus respectivas

dependencias:

root [ ~ ]# swaret –install httpd-2.2.16-i386-1

root [ ~ ]# swaret –install apr-util-1.3.9-i386-1

root [ ~ ]# swaret –install apr-1.4.2-i386-1

root [ ~ ]# swaret --install php

Una vez instalados nos cambiamos al directorio de publicación 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 simbólico para recordar más fácil su acceso.

root [ /srv/www/htdocs ]# ln -sf phpldapadmin-1.2.0.5 \

phpldapadmin

Page 209: Manual de Implementacion de Beakos GNU2

Posterior a esto procedemos a instalar el archivo de configuración 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 contraseña,

proporcionamos el nombre diferenciado de nuestro servidor que corresponde a

“cn=admin,dc=beakos,dc=com” y la respectiva contraseña.

Page 210: Manual de Implementacion de Beakos GNU2

Figura 17-3. Autenticación al servidor OpenLDAP a través de PLA

Una vez autenticados en el servidor podemos observar que existe nuestro dominio raíz

(dc=beakos, dc=com).

Figura 17-4. Domino raíz en PLA

17.7.3 Creación de Objetos con PHPLDAPADMIN Autenticados en el servidor, podemos proceder a la creación de Objetos, seleccionamos la

opción “Crear objeto nuevo” y seleccionamos del lado derecho la opción “Genérico: Entrada en

la Libreta de Direcciones” procedemos a llenar los campos y damos click en el botón “crear

objeto”.

Page 211: Manual de Implementacion de Beakos GNU2

Figura 17-5 Creación de objetos en PLA

Verificamos los datos y damos un click en el botón “cometer”.

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

17.7.4 Configuración del cliente de Correo Utilizaremos el cliente de correo Thunderbird como cliente para Realizar búsquedas en

nuestra libreta de direcciones.

Page 212: Manual de Implementacion de Beakos GNU2

Seleccionamos en el menú la opción “herramientas>Libreta de direcciones”.

Figura 17-7. Configuración 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 conexión. Donde “Nombre” corresponde al nombre de la

libreta de direcciones, “Servidor” corresponde a la dirección IP o nombre de Host del servidor

LDAP, “DN base” corresponde a dominio de LDAP donde estableceremos la conexión, “Número

de puerto” corresponde a 389 de TCP, a menos que le hayamos configurado otro valor a

nuestro servidor dejaremos este parámetro como está, por último especificamos el “DN para

inicio de sesión ”, este valor corresponde en nuestro caso a “cn=admin,dc=beakos,dc=com”.

Figura 17-9. Configuración de parámetros del servidor LDAP

Seleccionamos el botón “aceptar” y sólo resta realizar las pruebas pertinentes. En el cuadro de

búsqueda, tecleamos un carácter y nos debe mostrar las direcciones que coincidan con ese

patrón de búsqueda.

Page 213: Manual de Implementacion de Beakos GNU2

Figura 17-10. Búsqueda de datos en un servidor LDAP.

Page 214: Manual de Implementacion de Beakos GNU2

Capí tulo 18 DHCP

DHCP (Dinamic Host Control Protocol), es un servicio que permite a los nodos de una red

obtener su configuración de manera automática. En una organización donde residen cientos o

tal vez miles de nodos resultaría un ardua labor asignar la configuración del la red de los hosts

de forma manual.

La asignación dinámica de direcciones IP es muy útil para equipos móviles o que residirán en

nuestra red de manera temporal. Las personas que se desplazan en diferentes oficinas pueden

obtener una configuración de red de acuerdo a sus necesidades.

En este capítulo mostraremos la mecánica del funcionamiento del servidor DHCP,

enseñaremos los pasos de la instalación en Beakos GNU/Linux y realizaremos la configuración

de un servidor DHCP.

18.1 Funcionamiento del servicio de DHCP La mecánica que se efectúa entre un cliente y un servidor DHCP es la siguiente.

El cliente es configurado para obtener su dirección IP de forma automática a través 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 configuración para emitirle al

cliente una respuesta, esta respuesta incluye la asignación de una dirección IP,

servidor DNS, puerta de enlace predeterminada, máscara de sub red etc.

El cliente que ha recibido la respuesta del servidor configura los parámetros 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 dirección se emite por un periodo, durante el cual el cliente puede utilizar esa

dirección, una vez terminado este periodo el cliente se vuelve a conectar con el

servidor DHCP para renovar su dirección.

Si el servidor no recibe la respuesta del cliente, este libera la dirección IP para colocarla

en su base de datos de direcciones disponibles.

18.2 Instalación del servidor DHCP Beakos GNU/Linux tiene el cliente de DHCP instalado por defecto, para poder configurar una

dirección IP proporcionada por otro servidor de manera automática. Para la instalación del

servidor DHCP es necesaria la instalación del paquete dhcp-3.0.6-i386-1, tecleamos:

Page 215: Manual de Implementacion de Beakos GNU2

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 Administración del Servicio de DHCP El paquete DHCP incluye un script para administrar el inicio y detención de este servicio en

particular. Para iniciar el servicio DHCP escribimos como usuario raíz:

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 Configuración del servidor DHCP La configuración del servidor DHCP se lleva a cabo en un solo archivo de configuración llamado

/etc/dhcpd.conf. La estructura general del archivo de configuración es la siguiente:

parámetros globales;

Declaración1

[parámetros relacionados a declaracion1]

[subdeclaración]

Declaración2

[parámetros relacionados a declaracion2]

[subdeclaración]

Se pueden aplicar parámetros distintos a cada tipo de declaraciones.

Page 216: Manual de Implementacion de Beakos GNU2

18.3.1 Declaraciones Quizá se requiera agrupar a los clientes, para realizar esta labor podemos hacer uso de las

siguientes declaraciones:

group Esta declaración nos permite aplicar una serie de parámetros y declaraciones a

una lista de clientes, redes o subredes. Su sintaxis es la siguiente:

group etiqueta

[parámetros]

[subdeclaraciones]

Donde etiqueta es el nombre definido al grupo.

host Esta declaración se usa para aplicar un conjunto de parámetros y declaraciones a

un anfitrión en particular. Su sintaxis es la siguiente:

host etiqueta

[parámetros]

[subdeclaraciones]

Donde etiqueta corresponde al nombre del host.

shared network Esta declaración agrupa un conjunto de direcciones dentro de una

red física. Su sintaxis corresponde a:

shared-network etiqueta

[parámetros]

[subdeclaraciones]

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

subnet Esta declaración se utiliza para aplicar una serie de parámetros a un conjunto

de direcciones IP que coincidan con la descripción de esta declaración. Su sintaxis es la

siguiente:

subnet numero_subred netmask máscara_de_red

[parámetros]

[subdeclaraciones]

El número_subred es la red a la que pertenecerán los anfitriones conectados a la red

física. Netmask es justamente eso, la máscara de sub red.

Page 217: Manual de Implementacion de Beakos GNU2

range Especifica el rango de direcciones que estarán disponibles para la asignación a

los clientes. La sintaxis es como sigue:

range [dirección inicial] [dirección final];

18.3.2 Parámetros El uso de los parámetros permite afectar el comportamiento del servidor para un determinado

número de clientes. Los parámetros de uso más frecuente son:

authoritative Este parámetro sirve para evitar que los hosts que han recibido una

dirección de otro servidor DHCP, reciban mensajes DHCPNAK de un servidor no

auténtico, esto es especialmente útil para un servidor DHCP que ha sido instalado de

forma accidental y pueda causar conflictos a un servidor DHCP auténtico. La sintaxis de

este parámetro corresponde a:

authoritative;

not authoritative;

default-lease-time Este parámetro nos permite fijar el periodo de tiempo que una

dirección IP estará asignada a un host, si terminado ese periodo el host no se

encuentra conectado en la red el servidor DHCP liberará esta dirección para poder

asignarla a otro equipo. Su sintaxis corresponde a:

default-lease-time periodo en segundos;

fixed address Este parámetro sólo aparece en la declaración del host. Indica las

direcciones que ese host puede utilizar. Su sintaxis es la siguiente:

fixed-address dirección, direccion2;

hardware A fin de que un cliente de BOOTP sea reconocido, la dirección MAC debe

ser declarada en la declaración host. Su sintaxis es:

hardware tipo_hardware direcciónMAC;

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 opción de especificar los segundos que requerirá la

dirección IP en préstamo. Esta dirección IP le será asignada mientras no exceda el

número de segundos declarados en este parámetro, de lo contrario se le asignará con

un máximo de segundos especificado aquí. Su sintaxis es:

Page 218: Manual de Implementacion de Beakos GNU2

max-lease-time segundos;

server-name Este parámetro se utiliza para informar al cliente el servidor desde el

cual está iniciando. Esta instrucción resulta útil para aquellos clientes remotos. Su

sintaxis es:

server-name nombre del servidor;

18.3.3 Opciones DHCP ofrece soporte para más de 60 opciones, la sintaxis para ellas es la siguiente:

option nombreDelaOpción [modificadores]

En la siguiente tabla describimos las opciones más utilizadas.

Tabla 18-1 Opciones para DHCP

Opción Descripción

broadcast-address La dirección en la subred que será especificada como broadcast.

domain-name Nombre de dominio que los clientes deben utilizar en búsquedas locales de otros hosts.

domain-name-servers Servidores de nombres de dominio que los clientes utilizarán.

host-name Cadena de texto utilizada para identificar al cliente.

nis-domain Nombre de dominio de NIS para el cliente.

nis-servers Servidores NIS disponibles para los clientes.

routers Una lista de ruteadores que el cliente debe utilizar, preferentemente declarar en orden.

subnet-mask Máscara de red para la subred.

ntp-servers Declara una lista de servidores de tiempo para nuestra clientes.

18.4 Ejemplo de un archivo de configuración Mostraremos un archivo de configuración de DHCP (/etc/dhcpd.conf), es decir la

configuración 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;

Page 219: Manual de Implementacion de Beakos GNU2

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 dirección 192.168.4.254, como

servidores DNS la dirección 192.168.105.50, como servidores de tiempo para nuestros clientes

está definidos los hosts 200.23.51.205, 132.248.81.29, también 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.

Page 220: Manual de Implementacion de Beakos GNU2

Capí tulo 19 Copias de seguridad

Un servidor del que no se realizan respaldos es una auténtica bomba de tiempo. Realizar

respaldos de forma periódica es parte de las tareas habituales de cualquier administrador de

sistemas. En este capítulo 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 líder mundial en soluciones de respaldo y recuperación.

En la actualidad protege más de un millón de servidores y equipos de escritorio ejecutando

distintas versiones de Sistemas Operativos Linux, UNIX, BSD, Mac OS-X y Microsoft Windows.

Amanda es una solución estable debido a su código 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 fácilmente

poner un servidor de respaldos para múltiples clientes y respaldar directamente en cinta o en

un sistema basado en algún tipo de almacenamiento.

19.2 Instalación de Amanda Para la instalación 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 instalación 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 simbólico:

root [ ~ ]# vim /etc/amandahosts

root [ ~ ]# ln –sf /etc/amandahosts /home/backup/.amandahosts

Page 221: Manual de Implementacion de Beakos GNU2

19.3 Configuración 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 página de http://www.amanda.org/

encontraras los paquetes compatibles de Amanda para su distribución correspondiente.

Para esta implementación 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 máquina 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 comunicación de servidor y cliente se encuentran en la configuración

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

service amanda

{

socket_type = stream

protocol = tcp

wait = no

user = backup

group = backup

groups = yes

server = /usr/libexec/amandad

server_args = -auth=bsdtcp amdump amindexd

amidxtaped

disable = no

}

/etc/xinetd.d/amandaidx

#default: on

# description: The amanda index service

service amandaidx

{

socket_type = stream

protocol = tcp

wait = no

user = backup

group = backup

groups = yes

server = /usr/libexec/amindexd

server_args = -auth=bsdtcp amdump amindexd

amidxtaped

Page 222: Manual de Implementacion de Beakos GNU2

disable = no

}

/etc/xinetd.d/amidxtape

#default: on

# description: The amanda tape service

service amidxtape

{

socket_type = stream

protocol = tcp

wait = no

user = backup

group = backup

groups = yes

server = /usr/libexec/amidxtaped

server_args = -auth=bsdtcp amdump amindexd

amidxtaped

disable = no

}

19.3.2 Configuración del respaldo Definiremos el respaldo y su configuración como “ejemplo”. El usuario configurado por default

en la instalación es:

user name: backup

user group: backup

home dir: /home/backup

Comenzamos por crear los directorios /etc/amanda/ejemplo y /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 configuración mínima para el uso de amanda server. Creamos el archivo amanda.conf

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

Page 223: Manual de Implementacion de Beakos GNU2

Con el siguiente contenido:

#Configuracion Amanda

org "Infotec.com.mx" # your organization name for

reports

mailto "backup" # space separated list of operators at

your site

dumpuser "backup" # the user to run dumps under

logdir "/etc/amanda/ejemplo/logs" # log directory

infofile "/etc/amanda/ejemplo/curinfo" # database

filename

indexdir "/etc/amanda/ejemplo/index" # index directory

tapelist "/etc/amanda/ejemplo/tapelist" # list of used

tapes

#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"

}

Page 224: Manual de Implementacion de Beakos GNU2

La configuración amanda.conf muestra cómo 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 página de wiki.zmanda.com encontraras más información acerca de amanda.conf

Ahora comenzaremos por crear la base de datos de nuestro respaldo para la configuración “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 Configuración 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 dueño 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 sesión 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 simbólico:

backup [ /backup/vtapes/ejemplo/slots ]$ ln -sf slot1 data

Page 225: Manual de Implementacion de Beakos GNU2

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 ]$ ls -l data

lrwxrwxrwx 1 backup backup 35 jun 7 02:27 data ->

/space/vtapes/ejemplo/slots/slot1

19.3.4 Definición de las rutas de respaldos

En esta sección 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 dirección 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 días.

Creamos el archivo donde declaramos los hosts que podrán accesar al servidor, esto lo realizamos con el usuario raíz:

root [ ~ ]# vim /etc/amandahosts

Page 226: Manual de Implementacion de Beakos GNU2

Con el siguiente contenido:

server1 root amindexd amidxtaped

server1 backup amdump

client1 root amindexd amidxtaped

En la línea: “server1 backup amdump” permite al usuario backup de server1 correr respaldos en el mismo server1.

En la línea: “client1 root amindexd amidxtapd” le estamos otorgando permiso al cliente para que lleva acabo la restauración de información.

Para una mayor información sobre accesos puedes consultar la información 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 simbólico 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 Configuración 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

Page 227: Manual de Implementacion de Beakos GNU2

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 más 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 = stream

protocol = tcp

wait = no

user = backup

group = backup

groups = yes

server = /usr/libexec/amandad

server_args = -auth=bsdtcp amdump amindexd

amidxtaped

disable = no

}

Aplicamos cambios:

# /etc/init.d/xinetd restart

Configuración de amanda-client.conf

Creamos la dirección

/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 auth "bsdtcp"

Page 228: Manual de Implementacion de Beakos GNU2

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

Más información en wiki.zamanda.com

Creamos un enlace simbólico

#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 exclusión

Es una lista para que el usuario backup salte el respaldo en dichos directorios

Más información wiki.amanda.com

$ vi /etc/amanda/ejemplo/global-debian-exclude.list

./proc

./media

./mnt

./dev

chmod 644 /var/amanda/ejemplo/global-debian-exclude.list

Page 229: Manual de Implementacion de Beakos GNU2

Prueba de configuración

Accede con usuario backup e introducir la siguiente línea 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

Más información 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

Page 230: Manual de Implementacion de Beakos GNU2

Restaurar

El usuario root de zclient mediante cd se sitúa 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/

Page 231: Manual de Implementacion de Beakos GNU2

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

Page 232: Manual de Implementacion de Beakos GNU2

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 más comandos

Page 233: Manual de Implementacion de Beakos GNU2

Capí tulo 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 dirección, esta labor resultaría complicada si tomamos en cuenta el gran

número de direcciones IP que existen en la actualidad, no podríamos recordar de manera tan

sencilla una dirección IP como lo hacemos con un nombre. Los encargados de realizar está

traducción de nombres a direcciones IP son los servidores DNS (Domain Name Server).

En este capítulo abordaremos la configuración de un servidor BIND, modificando sus archivos

de configuración y analizando las diferentes configuraciones que son posibles con Beakos

GNU/Linux, al final realizaremos un ejemplo práctico de la configuración.

20.1 Historia del DNS En los inicios del protocolo TCP/IP, la traducción de las direcciones IP a nombres de hosts se

realizaba se realizaba a través de un archivo que era distribuido a todas las máquinas de

Internet vía FTP. Cuando empezaron a multiplicarse el número de host a inicios de 1980, este

archivo se volvió muy difícil de administrar. Entonces se pensó crear un sistema capaz de

distribuir y replicar de manera automática los nombres de los equipos a través de Internet. Un

servidor que almacenara una tabla con los nombres de host y su respectiva la dirección IP,

esta es la esencia de un servidor DNS.

Si no existieran los servidores DNS, la solución sería tener un servidor central con millones de

nombres, actualizándose miles de veces al día, 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 pequeñas, bastará con editar el archivo /etc/hosts para que su servidor

mantenga una relación de de nombres de host y direcciones IP. Aun cuando tenga acceso a un

servidor DNS este archivo resulta útil porque es más rápido buscar en un archivo de forma

local que consultar un servidor DNS. También 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

dirección del host, las columnas subsecuentes establecen los nombres de hosts relacionados a

la dirección IP, veamos un ejemplo:

Page 234: Manual de Implementacion de Beakos GNU2

127.0.0.1 localhost

200.38.189.20 www.beakos.org.mx beakos

207.248.177.128 www.infotec.com.mx

El servicio de DNS maneja una relación de nombres mucho más robusta, en los siguientes

temas veremos la instalación y configuración de servidor DNS, pero antes debemos

comprender como funciona.

20.3 Dominios y conceptos sobre los nombres de hosts En esta sección analizaremos los conceptos necesarios para poder implementar un servidor

DNS de manera optima.

Lo más común es cuando accesamos a un sitio de internet es realizarlo a través 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 razón de ser,

cada sección se denomina zona. analicemos un nombre de dominio:

Figura 20-1. Ejemplo de FQDN para beakos.com

Las zonas son definidas en servidores de nombres autorizados a través del uso de archivos de

zona, los servidores de correo a ser utilizados por un dominio particular o sub-dominio y más.

Los archivos de zona son almacenados en servidores de nombres primarios (también 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 (también 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 también pueden ser considerados autoritarios para múltiples

zonas. Todo depende de cómo se configure el servidor de nombres.

20.3.1 Dominio raíz La estructura de un DNS es similar a un árbol invertido, en la cima de este árbol se localiza el

dominio raíz y es representado por un punto (.).

mail. beakos. com .

Dominio de tercer nivel

Dominio de segundo nivel Dominio raíz

Dominio de primer nivel

Page 235: Manual de Implementacion de Beakos GNU2

Este punto no aparece cuando escribimos un FQDN, pero supongamos que ahí está aunque no

esté escrito. Un ejemplo sería 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 raíz administrados por diversos

proveedores y estos proveedores a sus vez pueden tener réplicas para balancear la carga de

peticiones, mejorar la seguridad y la disponibilidad del servicio. El sitio de internet www.root-

servers.org nos ofrece una lista de servidores raíz con sus respectivas réplicas distribuidos por

el mundo.

20.3.2 Dominios de primer nivel Después de los dominios raíz siguen los dominios de primer nivel (LTD), estos dominios de

primer nivel, son los geográficos y funcionales.

Los dominios de primer nivel se pueden subdividir en dos categorías, los genéricos donde se

ubican los .com, .gob, .edu, .org, .net y los dominios de primer nivel para código de país como

.mx para México, .us para estados unidos, .uk para Reino Unido, entre muchos otros. El

dominio de primer nivel para www.beakos.com.mx sería .mx.

20.3.3 Dominios de segundo nivel Los nombres en este nivel describen el nombre de la organización 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 más usual es utilizar el

dominio de tercer nivel para asignarlo a los hosts como nombre, utilizarlos para la asignación

de subdominios. También es muy frecuente utilizar en este nivel el “www” como alias hacia el

nombre del anfitrión existente. El nombre de tercer nivel para www.beakos.com.mx es www.

Page 236: Manual de Implementacion de Beakos GNU2

En la siguiente tabla mostramos la estructura jerárquica de un subdominio.

Figura 20-2 Árbol jerárquico de DNS

20.3.5 El dominio in-addr.arpa El DNS permite a la resolución trabajar en ambos sentidos. La resolución hacia adelante

resuelve nombres a direcciones IP y la resolución inversa, resuelve las direcciones IP a

nombres de dominio. Para esta última se requiere del dominio in-addr-arpa, este

correspondería al dominio de primer nivel de la dirección IP.

En la resolución hacia adelante los dominios se leen de derecha a izquierda, en la resolución

inversa sucede de izquierda a derecha. La resolución inversa de la dirección 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

raíz. Los servidores de raíz publican un archivo de zona raíz para otros servidores DNS y para

los clientes respectivos, estos servidores operan como el primer puerto de llamada en la parte

más elevada del árbol de DNS (.). Estos servidores describen los DNS primarios que tienen

autoridad para los dominios primarios, es decir sólo 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

configuración de los nombres de dominio y sus respectivas direcciones IP, es decir los cambios

y actualizaciones son realizadas en estos DNS.

Dominio RAIZ (.)

Dominios de primer

nivel genéricos y

geográficos

.com .gob.mx .edu .org.mx

redhat yahoo bicentenario ilce udem beakos

Sitios individuales

mail correo biblioteca news

Subdominio

s

Page 237: Manual de Implementacion de Beakos GNU2

20.4.2 Servidores DNS secundarios Estos servidores DNS funcionan de respaldo para los DNS primarios, sus principal función es

aligerar la carga, estos servidores reciben actualizaciones de manera periódica 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 configuración

en particular. Cuando un servidor recibe una petición 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

actúan como servidores de caché sin importar si son primarios o secundarios.

20.5 Instalación 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 número de servidores de DNS en todo el

mundo. Bind es desarrollado hoy en día por Internet Systems Consortium puede consultar su

portal www.isc.org .

Suponiendo que tiene una conexión funcional a internet para la instalación de BIND en

nuestro sistema Beakos GNU/Linux escribimos lo siguiente utilizando la cuenta de usuario raíz.

root [ ~ ]# swaret –update

root [ ~ ]# swaret --install bind

20.6 Archivo de configuración de named.conf El archivo principal de configuración de BIND llamado /srv/named/etc/named.conf,

este archivo especifica el comportamiento de Bind y si existen otros archivos de configuración

que el servidor debe tomar en cuenta. El formato del archivo de configuración en general

maneja la siguiente estructura:

enunciado {

opciones; // comentarios

};

Page 238: Manual de Implementacion de Beakos GNU2

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 opción directory nos indica el directorio de configuración de named, la opción pid-

file indicará la ruta donde se almacena el archivo con el número 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

Formato Descripción

// Comentarios al estilo de C++

/*…*/ Comentarios al estilo de C

# Comantarios al estilo de BASH, PERL o Python

20.6.2 Palabras reservadas para los enunciados Puede emplear las siguientes palabras en los enunciados del archivo de configuración:

Tabla 20-2. Enunciados para el archivo de configuración

Enunciado Descripción

acl Lista de control de acceso para determinar los accesos a nuestro servidor DNS.

include hace referencia a otro archivo de configuración que será incluido en la configuración de bind.

logging Especifica la información que será registrada en la las bitácoras del sistema y la ubicación de estos archivos.

options Opciones de configuración global del servidor.

controls Permite declarar canales de control a ser utilizados por la utilidad rndc.

server Establece opciones de configuración especificas para el servidor.

zone Define las zonas para bind.

key Define las llaves de encriptación DNSSEC para el servidor.

view Muestra diferentes vistas de la información de la zona a clientes diferentes.

masters Define una lista con el nombre de los servidores maestros para utilizarse en las zonas.

20.6.3 El enunciado include Una buena práctica para organizarnos mejor cuando manejamos grandes cantidades de

información en el archivo de configuración, es dividirlo en varios archivos más pequeños y

crear una entrada para incluirlo en nuestro archivo de configuración. Ejemplo:

Page 239: Manual de Implementacion de Beakos GNU2

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 ubicación de los registros. Por defecto la configuración de este enunciado está

estructurada para funcionar en conjunto con syslog, los registros son almacenados en el

archivo /var/log/daemon.log, la configuración por defecto es suficientemente

adecuada para la detección y corrección de errores, por lo que en la mayoría de los casos no

requerirá realizar alguna modificación a este enunciado. Veamos la configuración del registro

cronológico.

logging {

category default { default_syslog; default_debug; };

category unmatched { null; };

channel default_syslog {

syslog daemon; //envía información al demonio de syslog

severity info; // enviará la información como prioridad

};

}

20.6.5 Enunciado server Este enunciado proporciona información a bind sobre otros servidores de dominios con los

que puede interactuar, un ejemplo del enunciado server sería:

server dirección_ip {

bogus yes/no;

transfer-format one-answer/many-answers;

<otras opciones>

};

Donde dirección_ip es el servidor remoto en cuestión, la opción bogus le indica al

servidor local si el servidor remoto está enviando información errónea. La opción transfer-

format, informa a nuestro servidor si l servidor remoto puede aceptar respuestas

múltiples.

20.6.6 Zonas Este enunciado nos permite definir Zonas, la definición 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 límites 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 dominio beakos.com.mx tiene varios subdominios como

news.beakos.com.mx, soporte.beakos.com.mx, descargas.beakos.com.mx,

Page 240: Manual de Implementacion de Beakos GNU2

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 también 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 cuestión de configuración.

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

configuración dentro del enunciado key, quedando nuestro enunciado de la siguiente

manera:

key "rndc_key" {

algorithm hmac-md5;

secret "zs+VJIeDBeRg5oJiJJFbjC17XuirYn9qPoahFl4M/lNYxA==";

};

20.7 Configuración de BIND En los temas anteriores analizamos las diferencias entre los tipos de servidores de dominio que

existen, también analizamos a la estructura del archivo de configuración. En síntesis in servidor

primario contiene la información 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 Definición de una zona primaria Ahora que tenemos claramente el concepto de una zona, estamos listos para definir una zona

primaria en nuestro archivo de configuración de BIND, recordemos que está ubicado en

/srv/named/etc/named.conf , la sintaxis que corresponde para la asignación de una

zona es:

zone nombre_dominio {

type master;

file ruta_archivo;

};

ruta_archivo se refiere al archivo que contendrá la información de la base de datos

correspondiente a la zona. Veamos un ejemplo para el dominio beakos.com.mx

Page 241: Manual de Implementacion de Beakos GNU2

zone ―beakos.com.mx‖ {

type master;

file ―beakos.com.mx.db‖;

};

Si analizamos el archivo de configuración named.conf, observamos que en el enunciado

options en la opción directory ya viene la ruta definida para los archivos de

configuración, 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 declaración de la zona.

Esta declaración de zona nos permite obtener la dirección IP de un nombre, pero no olvidemos

que hay que realizar la declaración inversa, sobre todo si se trata de un servidor de correo

electrónico.

La declaración in-addr.arpa dentro del archivo de configuración 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 dirección

IP como se puede observar. En la siguiente tabla se muestran algunas opciones que podemos

utilizar para nuestra declaración de zona, sólo aplicarán para la zona en cuestión.

Tabla 20-2. Opciones adicionales para declaración de Zonas primarias.

Opción Descripción

check-names Esta opción 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 podrán recibir actualizaciones de las zonas primarias.

allow-query Especifica cuáles 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 envía mensajes de notificación a los servidores secundarios, si no se especifica esta opción su valor es positivo “yes”.

also-notify Define una lista servidores a los que se les notificará los cambios , esta

opción sólo es válida si el valor de notify es “no”.

Page 242: Manual de Implementacion de Beakos GNU2

20.7.2 Definición de una zona secundaria La declaración de una zona secundaria en el archivo de configuración de bind, se realiza de

manera muy similar a la declaración 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 dirección IP donde está el servidor

primario para esta zona.

Tabla 20-3. Opciones adicionales para declaración de Zonas secundarias.

Opción Descripción

check-names Esta opción 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 podrán recibir actualizaciones de las zonas primarias.

allow-query Especifica cuáles 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-time-in

Tiempo máximo para recibir una transferencia.

20.7.3 Definición de una zona de caché La configuración de una zona de caché es más 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 búsqueda recursiva con el objetivo de

encontrar otros nombres de host. La configuración del un servidor de caché se compone de

tres secciones. Dos de estas secciones ya están definidas en Beakos GNU/Linux, analicemos la

primera.

zone "." {

type hint;

file "root.hints";

Esta sección especifica los servidores raíz que nuestro servidor DNS puede consultar. La línea

type hint define que estamos hablando de un servidor de caché. La línea file

"root.hints" establece el archivo que contiene las entradas que apuntan al servidor raíz.

Page 243: Manual de Implementacion de Beakos GNU2

La segunda sección se muestra a continuación, su función es definir la búsqueda inversa para

el anfitrión 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 configuración de las zonas, que son de suma

importancia para la configuración de un servidor DNS.

20.8 Tipos de registros DNS En esta sección describiremos la elaboración de los archivos de base de datos del servidor de

nombres, es decir los archivos que contendrán la información relacionada a las zonas, para ello

analizaremos los registros más comunes para un DNS.

20.8.1 Inicio de autoridad (SOA) El SOA (Start of authority) o inicio de autoridad, sirve para iniciar la descripción de las entradas

DNS de un sitio. Su formato es el siguiente:

nombre.dominio. IN SOA sn.nombre.dominio. admin.nombre.dominio.

(

2010110901 ; número de serie

10800 ; actualización (3 horas)

1800 ; reintentos en segundos (30 minutos)

1209600 ; caduca en segundos (2 semanas)

604800 ; mínimo en segundos

)

En la primer línea 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 dirección de correo electrónico del administrador del

dominio. Observemos que no se incluye la dirección con @, esta se sustituye con un punto (.)

ejemplo: linux.infotec.com.mx

La línea 2 indica el número de serie. No olvide incrementar el número de serie cada que edite

el registro, es un error frecuente cuando se actualizan datos en un servidor DNS.

Page 244: Manual de Implementacion de Beakos GNU2

La línea 3 le índica a los DNS secundarios la frecuencia con la que deben preguntarle al servidor

primario si los valores se han actualizado.

La línea 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 línea 5 especifica la caducidad, les indica a los servidores secundarios que si no pueden

contactar al servidor primario para una actualización, deben de dejar de hacer consultas, el

tiempo establecido es de 2 semanas.

La línea 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 sería la siguiente:

IN NS sn1.nombre.dominio

IN NS sn2.nombre.dominio

Se recomienda por lo menos mantener un servidor secundario.

20.8.3 Registro de dirección (A) Se trata del registro más común que podemos encontrar dentro de un DNS. Este registro se

usa para asignar una dirección IP a un nombre de equipo. Su formato es simple:

nombre_equipo IN A dirección_IP

Un registro de un host llamado servidor.beakos.com.mx que tiene una dirección IP

192.168.4.251se definiría de la siguiente manera:

servidor IN A 192.168.4.251

El nombre del equipo se añadirá de manera automática al nombre de registro SOA,

supongamos que en el registro SOA tenemos beakos.com.mx. (no olvide poner el punto), la

dirección 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 resolución de nombre inversa, lo cual permite

especificar una dirección IP y determinar el nombre del anfitrión correspondiente, este

registro es muy parecido al anterior, su formato corresponde a:

dirección_IP IN PTR nombre_equipo

La dirección 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:

Page 245: Manual de Implementacion de Beakos GNU2

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 envía un correo electrónico a un dominio, en realidad no lo

envía a ese dominio, lo que hace es revisar el registro DNS correspondiente al servidor de

correo y manda el correo electrónico 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 más grande es el número 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 MX 10 mail1

IN MX 20 mail2

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

20.8.6 Nombre canónico (CNAME) Este tipo de registro permite la creación de “alias” para los nombres de hosts. Un uso que se le

puede dar a este servidor es crear un nuevo dominio fácil 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 IN CNAME nombre_host

Un ejemplo real sería:

servidorweb IN A 192.168.4.251

www IN CNAME servidorweb

20.8.7 Registros de documentación RP y TXT Siempre es buena idea proporcionar información adicional con registros reales, no sólo

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 información 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 TXT ―Contacto: Francisco Sosa‖

IN TXT ‖Mail: [email protected]

Page 246: Manual de Implementacion de Beakos GNU2

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 Configuración de un servidor DNS completo Hemos repasado la teoría necesaria para poder comprender el funcionamiento de un servidor

DNS, ahora recurramos a un ejemplo práctico para comprender mejor la integración 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 Configuración de la zona en el servidor primario 1)El primer paso es la configuración de la zona en el servidor primario. Utilice el editor de

textos vi para agregar la siguiente zona al archivo de configuración 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

configuración para la zona.

2) Dentro del directorio /srv/named/etc/namedb crear el archivo

beakos.com.mx.zone el cual tendrá el siguiente contenido:

$TTL 1W

beakos.com.mx. IN SOA beakos.com.mx. soporte.beakos.com.mx. (

20101111 ; número de serie

10800 ; actualización (3 horas)

1800 ; reintentos en segundos (30 minutos)

1209600 ; caduca en segundos (2 semanas)

604800 ; mínimo en segundos

)

IN NS dns2.beakos.com.mx.

IN MX 10 mail.beakos.com.mx.

dns1 IN A 192.168.0.133

Page 247: Manual de Implementacion de Beakos GNU2

dns2 IN A 192.168.0.129

web1 IN A 192.168.0.251

mail IN A 192.168.0.56

www.beakos.com.mx. IN CNAME web1

20.9.2 Configuración de la zona en el servidor secundario 1) En el servidor secundario será necesario generar en el archivo de configuración

named.conf la siguiente entrada:

zone "beakos.com.mx" {

type slave;

masters {192.168.0.133; };

file ―beakos.com.mx.slave‖;

};

20.9.3 Configuración 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 configuración 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 agregándole el siguiente contenido:

$TTL 1W

@ IN SOA beakos.com.mx. soporte.beakos.com.mx. (

20101111 ; número de serie

10800 ; actualización (3 horas)

1800 ; reintentos en segundos (30 minutos)

1209600 ; caduca en segundos (2 semanas)

604800 ; mínimo en segundos

)

IN NS dns1.beakos.com.mx.

IN NS dns2.beakos.com.mx.

251 IN PTR web1.beakos.com.mx.

56 IN PTR mail.beakos.com.mx.

Los primeros números del registro PTR (251 y 26) corresponden al último octeto de la

dirección IP, recordemos que los primeros 3 octetos están declarados en la zona dentro del

archivo de configuración de Bind.

Page 248: Manual de Implementacion de Beakos GNU2

Una vez concluida la configuración 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 sección veremos algunas herramientas que nos pueden proporcionar información

sobre los DNS.

20.10.1 Comando host Este comando nos pude proporcionar la dirección de un servido, es un comando muy fácil de

utilizar, utilicemos la información de la sección 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 dirección IP que le corresponde es la 192.168.0.251.

También podemos realizar la consulta de algún 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 información 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

teclearíamos 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:

Page 249: Manual de Implementacion de Beakos GNU2

;; ->>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. IN MX

;; ANSWER SECTION:

beakos.com.mx. 604800 IN MX 10

mail.beakos.com.mx.

;; AUTHORITY SECTION:

beakos.com.mx. 604800 IN NS

dns2.beakos.com.mx.

beakos.com.mx. 604800 IN NS

dns1.beakos.com.mx.

;; ADDITIONAL SECTION:

mail.beakos.com.mx. 604800 IN A 192.168.0.56

dns1.beakos.com.mx. 604800 IN A 192.168.0.133

dns2.beakos.com.mx. 604800 IN A 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 más 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 dirección IP

192.168.0.56.

Page 250: Manual de Implementacion de Beakos GNU2

Capí tulo 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 capítulo mostraremos la forma de instalar y configurar un

servidor FTP en la distribución de Beakos GNU/Linux, aunque si usted quisiera utilizar otra

distribución, este manual podría serle de utilidad con toda certeza.

21.1 Funcionamiento de FTP El protocolo FTP establece una doble conexión entre un cliente y un servidor, analicemos los

pasos:

Conexión de control: utiliza el puerto 21 de TCP por defecto, le indica al servidor las

operaciones que el cliente desea realizar.

Conexión 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

contraseña a fin de acceder al contenido. Este método no es nada recomendable

porque el nombre de usuario y contraseña viajan a través de la red sin ningún tipo de

encriptación, en lugar de ello puede emplear el protocolo SFTP (Secure Transfer File

Protocol).

Mediante acceso público: El cliente no debe ingresar ningún usuario para acceder al

contenido del servidor, es el uso más común que se le da actualmente a este tipo de

servidores, ya que es más rápido que la transferencia de archivos por el protocolo

HTTP.

Una vez que se ha establecido conexión con el servidor el cliente tendrá acceso a los archivos y

directorios, a través de navegador web, línea de comandos o clientes con interfaz gráfica para

FTP, los privilegios de cada usuario dependerán directamente de la configuración 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

conexión a través del puerto 20 hacia la dirección 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.

Page 251: Manual de Implementacion de Beakos GNU2

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 dirección IP y un puerto al cual el cliente puede

conectarse. El problema con este modo es que los firewalls negarán conexiones a puertos

temporales en el servidores que se supone que debería 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 Instalación de VSFTPD El paquete VSFTPD es que software para FTP disponible para la distribución de Beakos

GNU/Linux, VSFTPD está licenciado bajo la GPL (Licencia Pública General). Para la instalación

en nuestra distribución teclearemos el siguiente comando:

root [ ~ ]# swaret --install vsftpd

La instalación como vemos resulta bastante sencilla de realizar, el paquete contiene un guión

de inicio, para que la aplicación arranque a la par del sistema de forma automática, la

habilitamos con el siguiente comando:

root [ ~ ]# chkconfig --add vsftpd

Comprobamos los niveles de ejecución 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 Configuración de VSFTPD El comando de instalación ejecutado en la sección anterior instaló los binarios

correspondientes y además el archivo de configuración 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 configuración 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 “=”.

opción=valor

Page 252: Manual de Implementacion de Beakos GNU2

Tabla 21-1. Opciones más comunes para el archivo de configuración vsftpd.conf

Opción Descripción

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 máscara de creación de archivos, es decir si el valor es 022 los archivos creados tendrán permisos 755.

chroot_local_user Limita el acceso a los usuarios a usar sólo 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 parámetro “chroot_list_file”

chroot_list_file Apunta al archivo que contiene los usuarios con cuenta en el servidor que no están limitados a su directorio.

local_max_rate Indica la tasa de transferencia de información 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 creación de directorios a los usuarios sin cuenta en el servidor.

anon_other_write_enable Permite borrar y actualizar en el servidor a los usuarios anónimos.

anon_max_rate Tasa de transferencia de datos para usuarios anónimos (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 conexión de usuarios inactivos.

listen Habilita el modo de trabajo standalone para el servidor FTP

chown_uploads Esta opción cambia la propiedad de los archivos subidos en forma anónima al usuario especificado en la opción chown_username.

chown_username Especifica el nombre del usuario que se asignará como propietario de los archivos subidos en forma anónima. Su valor predeterminado es root.

Page 253: Manual de Implementacion de Beakos GNU2

20.3.2 Ejemplo de un archivo de configuración 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

Page 254: Manual de Implementacion de Beakos GNU2

Referencias Las siguientes referencias presentan información que consideramos útil y que abarca temas

más allá de los presentados en este manual de implementación. Considere que la rápida

evolución de GNU/Linux puede hacer que algún 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 más viable.

Libros Manual de administración de Linux

Steve Shah, Wale Soyinka

Editorial Mc Graw Hill, 2007

Programación en Linux Al Descubierto

Kurt Wall

Editorial Prentice Hall, Segunda Edición

Redes GNU/Linux, Manual del Administrador

Emiliano Francisco Spinella

Editorial USERS, 2007

Guía Esencial de Linux

Jonh Ray

Editorial Prentice Hall, 2002

Manuales y tutoriales en línea Implementación y administración de Cuotas en Linux

http://www.linuxtotal.com.mx/index.php?cont=info

Uso de Listas para Control de Acceso (ACL´s).

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

Configuración de RAID a nivel de software para Linux.

http://es.tldp.org/COMO-INSFLUG/COMOs/Software-RAID

Page 255: Manual de Implementacion de Beakos GNU2

Manual de Rsync

http://samba.anu.edu.au/ftp/rsync/rsync.html

Manuales diversos para GNU/Linux

http://www.howtoforge.com/

Administración Linux

http://fferrer.dsic.upv.es/cursos/Linux/basico/

Guía para administradores de Sistema GNU/Linux

http://www.ibiblio.org/pub/Linux/docs/LDP/system-admin-guide/translations/es/html/

Información 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/