Este es un libro adecuado para aprender a crear básicas y complejas plataformas tecnológicas haciendo uso únicamente de software libre. En su interior encontrará una gran gama de procedimientos revisados y ajustados a las mejores prácticas de implementación de infraestructura tecnológica. Esta extensa guía de fácil lectura lo llevará de la mano para lograr objetivos concretos con el sistema operativo Debian GNU/Linux. Algunos de los temas abordados en esta obra son: distintas formas de instalación del sistema operativo, utilización profunda de la terminal de comandos, uso de los repositorios del sistema (paquetería), compilación de programas, exploración sobre los distintos entornos gráficos, configuración avanzada de servidores de distinta índole (Apache2, VSFTPD, PostgreSQL, PHP, Exim4 [haciendo uso de certificados de seguridad, llaves encriptadas, conexiones seguras, cuotas de disco por usuario para un mayor control]), fusión de aplicaciones, construcción de avanzados sistemas de cortafuegos (IPTABLES), creación de guiones de comandos, automatización y actualización del sistema operativo, administración avanzada de usuarios y grupos, permisologias del sistema, atributos sobre ficheros, un capítulo entero dedicado a la instalación y configuración de los juegos más populares del ambiente Linux. Todo esto y más haciendo uso de ejemplos prácticos y casos de estudio que le facilitarán la asimilación del conocimiento impartido. El Gran libro de Debian GNU/Linux está diseñado cronológicamente para facilitar el aprendizaje de los capítulos y cuenta con actividades para el laboratorio, de tal manera que usted pueda certificar sus conocimientos, independientemente de si tiene o no experiencia en el área de la administración de sistemas tipo UNIX. Conforme vaya avanzando en las materias del manual, usted irá dominando el sistema. El Gran libro de Debian GNU/Linux será su guía por excelencia en el momento del desarrollo e implementación de plataformas tecnológicas basadas en software libre.Índice1. Sobre Debian GNU/Linux y la instalación del sistema ................................... 1 1.1. Introducción ................................................................................................. 1 1.2. Historia de Debian GNU/Linux .................................................................... 2 1.3. Qué es Debian GNU/Linux .......................................................................... 2 1.4. Contrato Social de Debian GNU/Linux ........................................................ 3 1.4.1. Debian permanecerá 100% libre ........................................................... 3 1.4.2. Contribuiremos a la comunidad de software libre ................................. 3 1.4.3. No ocultaremos los problemas .............................................................. 3 1.4.4. Nuestra prioridad son nuestros usuarios y el software libre ................. 3 1.4.5. Trabajos que no siguen nuestros estándares de software libre ............ 3 1.5. Las ramas del sistema Debian .................................................................... 4 1.5.1. Estable ................................................................................................... 4 1.5.2. En pruebas ............................................................................................ 4 1.5.3. Inestable ................................................................................................ 4 1.5.4. Experimental .......................................................................................... 4 1.6. Las arquitecturas ......................................................................................... 5 1.7. Dónde obtener el sistema Debian GNU/Linux ............................................ 6 1.7.1. Grabando el disco compacto ................................................................. 6 1.7.1.1. Desde Microsoft Windows ......................................................... 7 1.7.1.2. Desde GNU/Linux ..................................................................... 7 1.8. Arrancando vía USB .................................................................................... 8 1.9. Arrancando vía red .................................................................................... 10 1.10. La instalación ............................................................................................ 15 1.10.1. Requerimientos mínimos .................................................................... 15 1.10.2. Procedimientos ................................................................................... 15 1.10.3. La instalación experta ......................................................................... 16 1.10.4. El modo de rescate ............................................................................. 17 1.10.5. La instalación automática ................................................................... 18 1.10.6. El argumento hd ................................................................................. 19 1.10.7. El argumento reserve ......................................................................... 20 1.10.8. El argumento VGA .............................................................................. 20 1.10.9. El argumento console ......................................................................... 21 1.10.10. El argumento all_generic_ide .......................................................... 22 1.10.11. Los argumentos noapic/nolapic ....................................................... 22 1.10.12. El argumento nousb ......................................................................... 22 1.10.13. El argumento irqpoll ......................................................................... 23 1.10.14. El argumento panic .......................................................................... 23 1.10.15. El argumento max_cpus .................................................................. 23 1.10.16. El argumento root ............................................................................. 23 1.10.17. El argumento rootdelay .................................................................... 24 1.10.18. El argumento ro ................................................................................ 24 1.10.19. El argumento quiet ........................................................................... 24 1.10.20. El argumento initrd ........................................................................... 25 1.10.21. El argumento fb ................................................................................ 27 1.10.22. El argumento hw-detect/start_pcmcia .............................................. 27 1.10.23. El argumento netcfg/disable_dhcp ................................................... 27 1.10.24. El argumento bootkbd ...................................................................... 27 1.10.25. El argumento desktop ...................................................................... 27 1.11. Iniciando la instalación .............................................................................. 28 1.11.1. Partición primaria ................................................................................ 32 1.11.2. Partición extendida ............................................................................. 32 1.11.3. Partición lógica ................................................................................... 32 1.12. Esquema de particionado para equipo de escritorio ................................. 33 1.13. Esquema de particionado para servidores................................................ 37 1.13.1. El sistema de archivos ReiserFS ........................................................40 1.13.2. El sistema de archivos JFS ................................................................ 40 1.13.3. El sistema de archivos XFS ................................................................ 41 1.13.4. Fat16 ................................................................................................... 41 1.13.5. Fat32 ................................................................................................... 41 1.14. Opciones de montaje ................................................................................ 42 1.14.1. atime ................................................................................................... 42 1.14.2. ctime ................................................................................................... 42 1.14.3. mtime .................................................................................................. 42 1.14.4. noatime ............................................................................................... 42 1.14.5. relatime ............................................................................................... 42 1.14.6. nodev .................................................................................................. 43 1.14.7. nosuid ................................................................................................. 43 1.14.8. exec/noexec ........................................................................................ 43 1.14.9. ro ......................................................................................................... 43 1.14.10. sync/async ........................................................................................ 43 1.14.11. usrquota/grpquota ............................................................................. 43 1.14.12. user_xattr .......................................................................................... 43 1.15. RAID .......................................................................................................... 44 1.15.1. Los beneficios de RAID ...................................................................... 45 1.15.2. Software RAID .................................................................................... 45 1.15.3. Hardware RAID ................................................................................... 45 1.15.4. RAID 0 ................................................................................................ 46 1.15.4.1. Posibles aplicaciones ............................................................ 46 1.15.5. RAID 1 ................................................................................................ 46 1.15.5.1. Posibles aplicaciones ............................................................ 46 1.15.6. RAID 5 ................................................................................................ 46 1.15.6.1. Posibles aplicaciones ............................................................ 47 1.15.7. RAID 6 ................................................................................................ 47 1.15.7.1. Posibles aplicaciones ............................................................ 47 1.15.8. RAID 10 .............................................................................................. 47 1.15.8.1. Posibles aplicaciones ............................................................ 48 1.16. Terminando la instalación ......................................................................... 54 1.17. Actividades para el laboratorio .................................................................. 56 2. Introducción a Debian GNU/Linux .................................................................. 57 2.1. El sistema de archivos .............................................................................. 57 2.2. Conectando el equipo a la red .................................................................. 60 2.3. Modificando el archivo de fuentes ............................................................. 64 2.3.1. main ..................................................................................................... 65 2.3.2. contrib .................................................................................................. 65 2.3.3. non-free ............................................................................................... 65 2.3.4. debian backports ................................................................................. 65 2.4. Actualizando el sistema............................................................................. 66 2.5. Actividades para el laboratorio .................................................................. 70 3. Fundamentos de la terminal ............................................................................ 71 3.1. La ayuda del sistema ................................................................................ 71 3.2. Comandos básicos .................................................................................... 72 3.3. El historial de comandos ........................................................................... 77 3.4. La variable PS1 y los alias ........................................................................ 79 3.5. El calendario del sistema .......................................................................... 80 3.6. Los terminales virtuales ............................................................................. 80 3.7. Navegando el directorio /proc/ .................................................................. 83 3.8. Actividades para el laboratorio .................................................................. 84 4. Trabajando en la terminal ................................................................................ 85 4.1. Configurando el dispositivo de sonido ...................................................... 85 4.2. Navegando la web ..................................................................................... 89 4.3. Ingresando a redes de chat ...................................................................... 90 4.4. Bittorrent .................................................................................................... 92 4.5. El editor de texto VIM ................................................................................ 93 4.6. Correo electrónico ..................................................................................... 97 4.7. Compresión y descompresión ................................................................. 102 4.8. La calculadora bc .................................................................................... 103 4.9. Corrección ortográfica ............................................................................. 105 4.10. Wget ....................................................................................................... 106 4.10.1. Uso Sencillo ...................................................................................... 107 4.10.2. Uso avanzado ................................................................................... 108 4.11. Localizando ficheros ............................................................................... 108 4.12. Aptitude .................................................................................................. 109 4.13. Actividades para el laboratorio ............................................................... 110 5. Guiones de comandos con Bash .................................................................. 111 5.1. Bash ........................................................................................................ 111 5.2. Script ....................................................................................................... 111 5.3. Caracteres Especiales de Unix ............................................................... 112 5.4. Consolas ................................................................................................. 112 5.5. Introducción a los guiones de comandos ................................................ 112 5.6. Herramientas para la construcción de scripts ......................................... 114 5.6.1. El comando echo ............................................................................... 114 5.6.2. El comando read ................................................................................ 114 5.6.3. El comando expr ................................................................................ 115 5.6.4. El comando if ..................................................................................... 115 5.6.5. El comando case ............................................................................... 116 5.6.6. El comando test ................................................................................. 116 5.6.7. Los comandos while y until ................................................................ 118 5.6.8. El comando for ................................................................................... 118 5.6.9. Las funciones ..................................................................................... 118 5.7. Ejemplos de las herramientas ................................................................. 119 5.7.1. Un ejemplo del comando echo .......................................................... 119 5.7.2. Un ejemplo del comando read ........................................................... 120 5.7.3. Un ejemplo del comando expr ........................................................... 121 5.7.4. Ejemplo del comando if ..................................................................... 121 5.7.5. Un ejemplo del comando case .......................................................... 122 5.7.6. Otro ejemplo del comando case ........................................................ 123 5.7.7. Un ejemplo del comando test ............................................................ 124 5.7.8. Un ejemplo de los comandos while y until ........................................ 124 5.7.8.1. While ...................................................................................... 124 5.7.8.2. Until ....................................................................................... 125 5.7.9. Un ejemplo del comando for .............................................................. 125 5.7.10. Un ejemplo de funciones ................................................................. 125 5.8. Cron ......................................................................................................... 126 5.9. Caso de estudio ...................................................................................... 127 5.10. Actividades para el laboratorio ................................................................ 130 6. Entornos gráficos ........................................................................................... 131 6.1. GNOME ................................................................................................... 131 6.1.1. Los principales componentes del escritorio GNOME ........................ 132 6.1.1.1. Escritorio ................................................................................ 132 6.1.1.2. Paneles .................................................................................. 132 6.1.1.3. Ventanas ................................................................................ 132 6.1.1.4. Áreas de trabajo .................................................................... 132 6.1.1.5. Gestor de archivos ................................................................ 132 6.1.1.6. Centro de control ................................................................... 132 6.1.2. Requerimientos mínimos ................................................................... 133 6.1.3. GDM/GDM3 ....................................................................................... 134 6.1.4. Otros datos sobre Gnome ................................................................. 136 6.2. KDE ......................................................................................................... 139 6.2.1. Requerimientos mínimos ................................................................... 139 6.3. XFCE ....................................................................................................... 141 6.3.1. Gestor de ventanas ........................................................................... 141 6.3.2. Manejador de escritorio .................................................................... 141 6.3.3. Paneles .............................................................................................. 141 6.3.4. Administrador de sesiones ................................................................ 141 6.3.5. Administrador de archivos ................................................................. 141 6.3.6. Administrador de preferencias ........................................................... 142 6.3.7. Requerimientos mínimos ................................................................... 142 6.4. LXDE ....................................................................................................... 143 6.4.1. Requerimientos mínimos ................................................................... 144 6.5. Fluxbox .................................................................................................... 145 6.5.1. Archivo de aplicaciones ..................................................................... 145 6.5.2. Archivo de atajos de teclado ............................................................. 145 6.5.3. Ventanas con pestañas ..................................................................... 146 6.5.4. SLIT ................................................................................................... 146 6.5.5. Menú raíz ........................................................................................... 146 6.5.6. Barra de herramientas ....................................................................... 147 6.5.7. Bandeja del sistema .......................................................................... 147 6.6. Wmaker ................................................................................................... 148 6.6.1. Características de Window Maker ..................................................... 149 6.7. Enlightenment DR16 ............................................................................... 150 6.8. Enlightenment DR17 ............................................................................... 153 6.9. Configuración de Xorg............................................................................. 155 6.10. Actividades para el laboratorio ................................................................ 157 7. Configuración de servidores ......................................................................... 159 7.1. Qué es Apache ........................................................................................ 159 7.2. Instalando y configurando Apache .......................................................... 159 7.2.1. Protegiendo los directorios de los clientes ........................................ 164 7.2.2. Enlazando PHP5, Apache y PostgreSQL ......................................... 171 7.2.3. Monitoreando el servidor Apache ...................................................... 173 7.3. Profundizando en PostgreSQL ............................................................... 173 7.3.1. Local .................................................................................................. 175 7.3.2. Host ................................................................................................... 175 7.3.3. Hostssl ............................................................................................... 175 7.3.4. Hostnossl ........................................................................................... 176 7.3.5. Database ........................................................................................... 176 7.3.6. User ................................................................................................... 176 7.3.7. Address................................... ........................................................... 176 7.3.8. IP-address IP-mask ........................................................................... 177 7.3.9. Auth-method ...................................................................................... 177 7.3.10. trust ................................................................................................... 178 7.3.11. reject ................................................................................................. 178 7.3.12. md5 ................................................................................................... 178 7.3.13. password........................................................................................... 178 7.3.14. gss .................................................................................................... 178 7.3.15. sspi .................................................................................................... 178 7.3.16. krb5 ................................................................................................... 178 7.3.17. Ident .................................................................................................. 178 7.3.18. ldap ................................................................................................... 178 7.3.19. radius ................................................................................................ 179 7.3.20. cert .................................................................................................... 179 7.3.21. pam ................................................................................................... 179 7.3.22. Auth-options ...................................................................................... 179 7.3.23. Comandos básicos ........................................................................... 185 7.3.24. Trabajando con archivos .................................................................. 186 7.3.25. Usuarios y Permisos ......................................................................... 189 7.3.26. Exportando e importando bases de datos ........................................ 191 7.4. VSFTPD .................................................................................................. 192 7.4.1. Características ................................................................................... 192 7.4.2. Configuración de VSFTPD con usuarios virtuales ............................ 196 7.4.3. Configuración de VSFTPD con usuarios y cuotas de disco .............. 200 7.4.3.1. Primera y segunda columnas: dispositivo y punto de montaje .............................................................. 201 7.4.3.2. Tercera columna: sistema de ficheros ................................. 202 7.4.3.3. Cuarta columna: opciones de montaje ................................. 202 7.4.3.4. Quinta y sexta columna: opciones de dump y fsck .............. 203 7.5. OpenSSH ................................................................................................ 208 7.6. Exim4....................................................................................................... 216 7.7. Notas finales ............................................................................................ 230 7.8. Actividades para el laboratorio ................................................................ 231 8. Administración del sistema ........................................................................... 233 8.1. Administrando los usuarios ..................................................................... 233 8.1.1. Los números UID y GID .................................................................... 239 8.1.1.1. 0-99 ....................................................................................... 239 8.1.1.2. 100-999 ................................................................................. 239 8.1.1.3. 1000-59999 ........................................................................... 240 8.1.1.4. 60000-64999 ......................................................................... 240 8.1.1.5. 65000-65533 ......................................................................... 240 8.1.1.6. 65534 ..................................................................................... 240 8.1.1.7. 65535 ..................................................................................... 240 8.2. Procesos ................................................................................................. 242 8.3. Fecha y hora ........................................................................................... 244 8.4. Interactuando con el núcleo .................................................................... 245 8.4.1. dmseg ................................................................................................ 245 8.4.2. lsmod ................................................................................................. 246 8.4.3. modconf ............................................................................................. 247 8.5. Red .......................................................................................................... 248 8.5.1. El comando ifup ................................................................................. 249 8.5.2. El comando ifdown ............................................................................ 249 8.5.3. El comando route ............................................................................... 249 8.6. Iptables .................................................................................................... 250 8.6.1. Tabla de filtros (filter table) ................................................................ 251 8.6.2. Tabla de traducción (nat table) .......................................................... 251 8.6.3. Tabla de mutilación (mangle table) ................................................... 251 8.6.4. Tabla de paquetes crudos (raw table) ............................................... 251 8.6.5. Sentencia de reglas ........................................................................... 251 8.6.6. Aceptar (ACCEPT) ............................................................................ 251 8.6.7. Descartar (DROP) ............................................................................. 252 8.6.8. Encolar (QUEUE) .............................................................................. 252 8.6.9. Retorno (RETURN) ............................................................................ 252 8.6.10. Rechazo (REJECT) .......................................................................... 252 8.6.11. Registro (LOG) ................................................................................. 252 8.6.12. DNAT (traducción destino) ............................................................... 252 8.6.13. SNAT (traducción origen) ................................................................. 252 8.6.14. MASQUERADE ................................................................................ 253 8.6.15. Rastreo de conexiones ..................................................................... 253 8.6.16. Nuevo (NEW) .................................................................................... 253 8.6.17. Establecido (ESTABLISHED) ........................................................... 253 8.6.18. Relacionado (RELATED) .................................................................. 253 8.6.19. Inválido (INVALID) ............................................................................ 253 8.6.20. Redirección de puertos ..................................................................... 261 8.6.21. IPTRAF ............................................................................................. 265 8.6.22. NMAP ................................................................................................ 265 8.6.23. NETCAT ............................................................................................ 266 8.6.24. SHELL ............................................... ................................................ 266 8.7. LSBInitScripts .......................................................................................... 266 8.7.1. start .................................................................................................... 267 8.7.2. stop .................................................................................................... 267 8.7.3. status ................................................................................................. 267 8.7.4. restart ................................................................................................. 267 8.7.5. force-reload ........................................................................................ 267 8.8. Permisología de los archivos .................................................................. 269 8.8.1. El dueño (Owner) ............................................................................... 269 8.8.2. El grupo (Group) ................................................................................ 270 8.8.3. Permisos UNIX (UNIX permissions) .................................................. 270 8.8.4. Lectura (read) .................................................................................... 271 8.8.5. Escritura (write) .................................................................................. 271 8.8.6. Ejecución (execute) ........................................................................... 271 8.8.7. chmod ................................................................................................ 273 8.8.8. chown ................................................................................................ 274 8.8.9. chgrp .................................................................................................. 274 8.8.10. chattr .................................................................................................. 274 8.9. Actividades para el laboratorio ................................................................ 275 9. Instalación y configuración de juegos ......................................................... 277 9.1. OpenArena .............................................................................................. 277 9.2. Warsow ................................................................................................... 279 9.3. UrbanTerror ............................................................................................. 282 9.4. Secret Maryo Chronicles ......................................................................... 283 9.5. Teeworlds ................................................................................................ 283 9.6. Crack Attack ............................................................................................ 284 9.7. Frets On Fire ........................................................................................... 284 9.8. Typespeed............................................................................................... 285 9.9. Servidor de OpenArena........................................................................... 286 10. Recursos de ayuda ........................................................................................ 291 10.1. Documentación general .......................................................................... 291 10.2. Documentación específica de Debian GNU/Linux .................................. 292 10.3. Debian en IRC ......................................................................................... 292 10.4. Las reglas del IRC ................................................................................... 293