Book
Book
Book
Manual de FreeBSD por Proyecto de Documentacin de FreeBSD Publicado Febrero 1999 Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The FreeBSD Documentation Project Bienvenido a FreeBSD! Este manual cubre la instalacin y uso diario de FreeBSD 9.1-RELEASE y FreeBSD 8.3-RELEASE. Este manual est en constante evolucin y es el resultado del trabajo de muchas personas. Algunas secciones no estn completas y otras necesitan ser actualizadas. Si est interesado en colaborar en este proyecto enve un mensaje de correo electrnico a lista de correo del proyecto de documentacin de FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc). La ltima versin de este documento est siempre disponible en el sitio web de FreeBSD (http://www.FreeBSD.org). Tambin puede encontrarla en diferentes formatos y opciones de compresin en el servidor FTP de FreeBSD (ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/) o en las numerosas rplicas. Si preere una copia en papel de este manual puede comprarla en FreeBSD Mall (http://www.freebsdmall.com/). Tambin es posible hacer bsquedas (../../../../search/index.html) en este manual.
La redistribucin y uso en fuente (SGML DocBook) y formatos "compilados" (SGML, HTML, PDF, PostScript, RTF y cualquier otro) con o sin modicacin, esta permitida siempre y cuando se cumplan las siguientes condiciones:
1. La redistribucin del cdigo fuente (SGML DocBook) debe contener esta informacin de copyright, esta lista de condiciones y el siguiente texto como las primeras lneas del chero sin modicar. 2. La redistribucin en formatos compilados (transformado a otros DTDs, convertidos a PDF, PostScript, RTF y otros formatos) debe reproducir el siguiente texto de copyright, esta lista de condiciones y el siguiente texto en la documentacin y/u otros materiales entregados con la distribucin.
Importante: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
FreeBSD is a registered trademark of the FreeBSD Foundation. 3Com and HomeConnect are registered trademarks of 3Com Corporation. 3ware and Escalade are registered trademarks of 3ware Inc. ARM is a registered trademark of ARM Limited. Adaptec is a registered trademark of Adaptec, Inc.
Adobe, Acrobat, Acrobat Reader, and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries. Corel and WordPerfect are trademarks or registered trademarks of Corel Corporation and/or its subsidiaries in Canada, the United States and/or other countries. Sound Blaster is a trademark of Creative Technology Ltd. in the United States and/or other countries. CVSup is a registered trademark of John D. Polstra. Heidelberg, Helvetica, Palatino, and Times Roman are either registered trademarks or trademarks of Heidelberger Druckmaschinen AG in the U.S. and other countries. IBM, AIX, EtherJet, Netnity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both. IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States. Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Intuit and Quicken are registered trademarks and/or registered service marks of Intuit Inc., or one of its subsidiaries, in the United States and other countries. Linux is a registered trademark of Linus Torvalds. LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID and Mylex are trademarks or registered trademarks of LSI Logic Corp. M-Systems and DiskOnChip are trademarks or registered trademarks of M-Systems Flash Disk Pioneers, Ltd. Macromedia, Flash, and Shockwave are trademarks or registered trademarks of Macromedia, Inc. in the United States and/or other countries. Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries. GateD and NextHop are registered and unregistered trademarks of NextHop in the U.S. and other countries. Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries. Oracle is a registered trademark of Oracle Corporation. PowerQuest and PartitionMagic are registered trademarks of PowerQuest Corporation in the United States and/or other countries. RealNetworks, RealPlayer, and RealAudio are the registered trademarks of RealNetworks, Inc. Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries. SAP, R/3, and mySAP are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, Solaris, StarOfce, Sun Blade, Sun Enterprise, Sun Fire, SunOS, and Ultra are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Symantec and Ghost are registered trademarks of Symantec Corporation in the United States and other countries. MATLAB is a registered trademark of The MathWorks, Inc. SpeedTouch is a trademark of Thomson. U.S. Robotics and Sportster are registered trademarks of U.S. Robotics Corporation. VMware is a trademark of VMware, Inc. Waterloo Maple and Maple are trademarks or registered trademarks of Waterloo Maple Inc. Mathematica is a registered trademark of Wolfram Research, Inc. XFree86 is a trademark of The XFree86 Project, Inc. Ogg Vorbis and Xiph.Org are trademarks of Xiph.Org. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the or the symbol.
Tabla de contenidos
Prefacio .........................................................................................................................................................................xi I. Primeros pasos..................................................................................................................................................... xviii 1. Introduccin ......................................................................................................................................................1 1.1. Sinopsis.................................................................................................................................................1 1.2. Bienvenido a FreeBSD .........................................................................................................................1 1.3. Acerca del Proyecto FreeBSD ..............................................................................................................5 2. Instalacin de FreeBSD...................................................................................................................................10 2.1. Sinopsis...............................................................................................................................................10 2.2. Requisitos de hardware.......................................................................................................................10 2.3. Tareas anteriores a la instalacin ........................................................................................................12 2.4. Inicio de la instalacin ........................................................................................................................18 2.5. ?Qu es sysinstall?..............................................................................................................................23 2.6. Asignacin de espacio en disco ..........................................................................................................28 2.7. Eleccin de qu instalar ......................................................................................................................40 2.8. Eleccin del medio de instalacin ......................................................................................................43 2.9. El punto sin retorno ............................................................................................................................44 2.10. Despus de la instalacin..................................................................................................................46 2.11. Solucin de problemas......................................................................................................................77 2.12. Gua avanzada de instalacin............................................................................................................80 2.13. Cmo preparar su propio medio de instalacin ................................................................................81 3. Conceptos bsicos de Unix .............................................................................................................................86 3.1. Sinopsis...............................................................................................................................................86 3.2. Consolas virtuales y terminales ..........................................................................................................86 3.3. Permisos..............................................................................................................................................89 3.4. Estructura de directorios.....................................................................................................................94 3.5. Organizacin de disco.........................................................................................................................96 3.6. Montaje y desmontaje de sistemas de cheros.................................................................................102 3.7. Procesos ............................................................................................................................................105 3.8. Dmons, seales y cmo matar procesos.........................................................................................107 3.9. Shells.................................................................................................................................................109 3.10. Editores de texto .............................................................................................................................111 3.11. Dispositivos y nodos de dispositivos ..............................................................................................111 3.12. Formatos binarios ...........................................................................................................................112 3.13. Ms informacin.............................................................................................................................113 4. Instalacin de aplicaciones: packages y ports ...........................................................................................116 4.1. Sinopsis.............................................................................................................................................116 4.2. Aproximacin a la instalacin de software.......................................................................................116 4.3. Cmo encontrar aplicaciones............................................................................................................118 4.4. Uso del sistema de packages.............................................................................................................119 4.5. Uso de la coleccin de ports .............................................................................................................120 4.6. Despus de instalar un port...............................................................................................................130 4.7. Ports que no funcionan .....................................................................................................................130 5. El sistema X Window....................................................................................................................................132 5.1. Sinopsis.............................................................................................................................................132 5.2. Entender X ........................................................................................................................................132
iv
5.3. Instalar X11 ......................................................................................................................................135 5.4. Conguracin de X11.......................................................................................................................135 5.5. Uso de tipos en X11..........................................................................................................................139 5.6. El gestor de pantalla X......................................................................................................................143 5.7. Entornos de escritorio .......................................................................................................................146 II. Tareas comunes ....................................................................................................................................................151 6. Aplicaciones de escritorio .............................................................................................................................152 6.1. Sinopsis.............................................................................................................................................152 6.2. Navegadores......................................................................................................................................152 6.3. Productividad....................................................................................................................................155 6.4. Visores de documentos .....................................................................................................................158 6.5. Finanzas ............................................................................................................................................159 6.6. Resumen ...........................................................................................................................................161 7. Multimedia ....................................................................................................................................................162 7.1. Sinopsis.............................................................................................................................................162 7.2. Conguracin de la tarjeta de sonido ...............................................................................................162 7.3. Sonido MP3 ......................................................................................................................................166 7.4. Reproduccin de vdeo .....................................................................................................................169 7.5. Conguracin de tarjetas de TV .......................................................................................................176 7.6. Escneres de imgenes .....................................................................................................................178 8. Conguracin del kernel de FreeBSD...........................................................................................................183 8.1. Sinopsis.............................................................................................................................................183 8.2. ?Qu razones hay para compilar un kernel personalizado?..............................................................183 8.3. Inventario de hardware del sistema...................................................................................................184 8.4. Controladores del kernel, subsistemas y mdulos............................................................................185 8.5. Compilacin e instalacin de un kernel personalizado.....................................................................185 8.6. El chero de conguracin...............................................................................................................188 8.7. Qu hacer si algo va mal...................................................................................................................201 9. Imprimir ........................................................................................................................................................203 9.1. Sinopsis.............................................................................................................................................203 9.2. Introduccin......................................................................................................................................203 9.3. Conguracin bsica ........................................................................................................................204 9.4. Conguracin avanzada de impresoras ............................................................................................204 9.5. Cmo utilizar impresoras..................................................................................................................204 9.6. Alternativas a LPD............................................................................................................................205 9.7. Solucin de problemas......................................................................................................................205 10. Compatibilidad binaria con Linux...............................................................................................................206 10.1. Sinopsis...........................................................................................................................................206 10.2. Instalacin.......................................................................................................................................206 10.3. Instalacin de Mathematica .........................................................................................................209 10.4. Instalacin de Maple...................................................................................................................211 10.5. Instalacin de MATLAB .............................................................................................................213 10.6. Instalacin de Oracle ...................................................................................................................216 10.7. Instalacin de SAP R/3.............................................................................................................219 10.8. Temas avanzados ............................................................................................................................240
III. Administracin del sistema. ..............................................................................................................................242 11. Conguracin y Adaptacin del Sistema ....................................................................................................243 11.1. Conguracin de Tarjetas de Red...................................................................................................243 11.2. Arrancar servicios .......................................................................................................................243 11.3. Soft Updates ................................................................................................................................243 11.4. Aadir espacio swap .......................................................................................................................243 12. El proceso de arranque en FreeBSD ...........................................................................................................244 12.1. Sinopsis...........................................................................................................................................244 12.2. El problema que representa arrancar el sistema .............................................................................244 12.3. El RMA y las etapas de arranque uno, dos y tres ...........................................................................245 12.4. Interaccin con el kernel durante el arranque.................................................................................249 12.5. Device Hints ...................................................................................................................................250 12.6. Init: inicializacin del proceso de control.......................................................................................250 12.7. Secuencia de apagado.....................................................................................................................251 13. Usuarios y administracin bsica de cuentas ..............................................................................................252 13.1. Sinopsis...........................................................................................................................................252 13.2. Introduccin....................................................................................................................................252 13.3. La cuenta superusuario ...................................................................................................................254 13.4. Cuentas de sistema..........................................................................................................................254 13.5. Cuentas de usuario..........................................................................................................................254 13.6. Modicacin de cuentas .................................................................................................................254 13.7. Limitar a los usuarios......................................................................................................................259 13.8. Personalizar a los usuarios..............................................................................................................261 13.9. Grupos.............................................................................................................................................261 14. Seguridad.....................................................................................................................................................263 14.1. Sinopsis...........................................................................................................................................263 14.2. Introduccin....................................................................................................................................263 14.3. Asegurar FreeBSD..........................................................................................................................265 14.4. DES, MD5 y Crypt .........................................................................................................................272 14.5. Contraseas de un solo uso.............................................................................................................273 14.6. TCP Wrappers ................................................................................................................................278 14.7. KerberosIV ....................................................................................................................................281 14.8. Kerberos5 ......................................................................................................................................288 14.9. OpenSSL.........................................................................................................................................296 14.10. VPN sobre IPsec ...........................................................................................................................298 14.11. OpenSSH ......................................................................................................................................310 14.12. Listas de control de acceso a sistemas de cheros .......................................................................315 14.13. Monitorizacin de fallos de seguridad de aplicaciones ................................................................317 14.14. FreeBSD Security Advisories.......................................................................................................318 14.15. Contabilidad de procesos..............................................................................................................320 15. Jaulas ...........................................................................................................................................................322 15.1. Sinopsis...........................................................................................................................................322 15.2. Trminos relacionados con las jaulas .............................................................................................322 15.3. Introduccin....................................................................................................................................323 15.4. Creacin y gestin de jaulas ...........................................................................................................324 15.5. Administracin y personalizacin a fondo .....................................................................................325 15.6. Uso de las jaulas .............................................................................................................................327 16. Mandatory Access Control..........................................................................................................................333
vi
16.1. Sinopsis...........................................................................................................................................333 16.2. Trminos clave en este captulo......................................................................................................333 16.3. Explicacin de MAC ......................................................................................................................333 16.4. Las etiquetas MAC .........................................................................................................................333 16.5. Conguracin de mdulos..............................................................................................................333 16.6. El mdulo MAC ifoff......................................................................................................................333 16.7. El mdulo MAC portacl .................................................................................................................333 16.8. Polticas de etiquetas MAC.............................................................................................................333 16.9. El mdulo MAC partition ...............................................................................................................333 16.10. El mdulo de seguridad multinivel MAC .....................................................................................334 16.11. El mdulo MAC Biba ...................................................................................................................334 16.12. El mdulo MAC LOMAC ............................................................................................................334 16.13. Implementacin de un entorno seguro con MAC .........................................................................334 16.14. Otro ejemplo: Uso de MAC para restringir un servidor web .......................................................334 16.15. Depuracin de errores en MAC ....................................................................................................334 17. Auditora de eventos de seguridad ..............................................................................................................335 17.1. * ......................................................................................................................................................335 18. Almacenamiento..........................................................................................................................................336 18.1. Sinopsis...........................................................................................................................................336 18.2. Nombres de dispositivo ..................................................................................................................336 18.3. Aadir discos ..................................................................................................................................337 18.4. RAID...............................................................................................................................................339 18.5. Dispositivos de almacenamiento USB............................................................................................344 18.6. Creacin y uso de medios pticos (CD) .........................................................................................346 18.7. Crear y utilizar medios pticos (DVDs) .........................................................................................352 18.8. Creacin y uso de disquetes (oppies) ...........................................................................................356 18.9. Creacin y uso de cintas de datos ...................................................................................................358 18.10. Respaldos en disquetes .................................................................................................................361 18.11. Bases para respaldos.....................................................................................................................362 18.12. Sistemas de cheros en red, memoria y respaldados en chero...................................................369 18.13. Instantneas (snapshots) de sistemas de cheros ......................................................................373 18.14. Cuotas en sistemas de cheros .....................................................................................................374 18.15. Cifrado de particiones de disco.....................................................................................................377 19. GEOM: Marco de trabajo modular de transformacin de discos................................................................382 19.1. Sinopsis...........................................................................................................................................382 19.2. Introduccin a GEOM ....................................................................................................................382 19.3. RAID0 - Distribucin por bandas...................................................................................................382 19.4. RAID1 - Replicacin ......................................................................................................................384 20. El Gestor de Volmenes Vinum ..................................................................................................................388 20.1. Sinopsis...........................................................................................................................................388 20.2. Los Discos son Demasiado Pequeos.............................................................................................388 20.3. Cuellos de Botella en el Acceso .....................................................................................................388 20.4. Integridad de Datos.........................................................................................................................389 20.5. Objetos Vinum ................................................................................................................................389 20.6. Ejemplos .........................................................................................................................................390 20.7. Esquema de Nombres de los Objetos .............................................................................................394 20.8. Conguracin de Vinum.................................................................................................................394 20.9. Uso de Vinum en el Sistema de Ficheros Raz ...............................................................................395
vii
21. Virtualizacin ..............................................................................................................................................396 21.1. * ......................................................................................................................................................396 22. Localizacin - Uso y conguracin de I18N/L10N....................................................................................397 22.1. Sinopsis...........................................................................................................................................397 22.2. Lo bsico.........................................................................................................................................397 22.3. Uso de la localizacin.....................................................................................................................398 22.4. Compilacin de programas con soporte para I18N ........................................................................404 22.5. Localizacin de FreeBSD a idiomas especcos ............................................................................404 23. Lo ltimo de lo ltimo.................................................................................................................................408 23.1. Sinopsis...........................................................................................................................................408 23.2. FreeBSD-CURRENT vs. FreeBSD-STABLE................................................................................408 23.3. Sincronizacin de su cdigo fuente ................................................................................................408 23.4. Uso de make world ......................................................................................................................408 23.5. Redes pequeas...............................................................................................................................408 IV. Comunicaciones en red ......................................................................................................................................409 24. Comunicaciones serie..................................................................................................................................410 24.1. Sinopsis...........................................................................................................................................410 24.2. Introduccin....................................................................................................................................410 24.3. Terminales.......................................................................................................................................415 24.4. Servicio dial-in................................................................................................................................419 24.5. Servicio dial-out..............................................................................................................................427 24.6. Congurando la consola serie.........................................................................................................430 25. PPP y SLIP ..................................................................................................................................................439 25.1. Sinopsis...........................................................................................................................................439 25.2. Uso de User PPP.............................................................................................................................439 25.3. Uso de Kernel PPP..........................................................................................................................454 25.4. Uso de PPP sobre Ethernet (PPPoE)..............................................................................................461 25.5. Uso de PPP sobre ATM (PPPoA) ..................................................................................................463 25.6. Uso de SLIP....................................................................................................................................465 26. Cortafuegos .................................................................................................................................................476 26.1. * ......................................................................................................................................................476 27. Correo Electrnico ......................................................................................................................................477 27.1. Sinopsis...........................................................................................................................................477 27.2. Utilizacin del correo electrnico...................................................................................................477 27.3. Conguracin de sendmail ............................................................................................................479 27.4. Sustitucin del Agente de Transferencia de Correo .......................................................................482 27.5. Depuracin de Problemas ...............................................................................................................485 27.6. Conceptos Avanzados .....................................................................................................................489 27.7. SMTP con UUCP ...........................................................................................................................491 27.8. Conguracin para slamente enviar correo ..................................................................................493 27.9. Utilizacin del correo con una conexin mediante mdem analgico (dial-up) ............................494 27.10. Autenticacin utilizando SMTP .................................................................................................495 27.11. Agente de Correo de Usuario .......................................................................................................497 27.12. Manejo de fetchmail .....................................................................................................................503 27.13. Uso de procmail............................................................................................................................504 28. Servidores de red.........................................................................................................................................506 28.1. * ......................................................................................................................................................506
viii
29. Networking avanzado..................................................................................................................................507 29.1. Resumen .........................................................................................................................................507 29.2. Pasarelas y routers.......................................................................................................................507 29.3. Redes sin cables (wireless)..........................................................................................................514 29.4. Bluetooth.........................................................................................................................................520 29.5. Puenteado........................................................................................................................................528 29.6. NFS .................................................................................................................................................531 29.7. Ejecucin sin disco duro.................................................................................................................537 29.8. RDSI ...............................................................................................................................................546 29.9. NIS/YP............................................................................................................................................550 29.10. DHCP............................................................................................................................................567 29.11. DNS ..............................................................................................................................................571 29.12. NTP...............................................................................................................................................584 29.13. Traduccin de direcciones de red .................................................................................................587 29.14. El Superservidor inetd .............................................................................................................591 29.15. Lnea IP paralela (PLIP) ...............................................................................................................595 29.16. IPv6...............................................................................................................................................598 29.17. ATM en FreeBSD 5.X ..................................................................................................................602 V. Apndices ..............................................................................................................................................................605 30. Cmo obtener FreeBSD ..............................................................................................................................606 30.1. Servidores FTP ...............................................................................................................................606 30.2. Uso de CVSup ................................................................................................................................606 31. Bibliografa..................................................................................................................................................607 31.1. Libros y revistas especcas sobre FreeBSD..................................................................................607 31.2. Guas de usuario .............................................................................................................................607 31.3. Guas de administrador...................................................................................................................608 31.4. Guas de programadores .................................................................................................................608 31.5. El sistema operativo por dentro ......................................................................................................609 31.6. Referencia de seguridad..................................................................................................................609 31.7. Referencia de hardware ..................................................................................................................609 31.8. Historia de UNIX............................................................................................................................610 31.9. Diarios y revistas ............................................................................................................................610 A. Recursos en Internet .....................................................................................................................................611 A.1. Listas de correo................................................................................................................................611 A.2. Grupos de noticias de Usenet...........................................................................................................621 A.3. Servidores WWW ............................................................................................................................622 A.4. Direcciones de correo electrnico....................................................................................................624 A.5. Cuentas shell ....................................................................................................................................624 32. PGP keys .....................................................................................................................................................625 32.1. Responsables...................................................................................................................................625 32.2. Miembros del Core Team ...............................................................................................................626 ndice.................................................................................................................................................................634 Colofn.......................................................................................................................................................................644
ix
Lista de tablas
2-1. Ejemplo de inventario de dispositivos ...................................................................................................................12 2-2. Estructura de particiones del primer disco ............................................................................................................34 2-3. Esquema de particiones para varios discos............................................................................................................35 2-4. Nombres y funciones de las imgenes de FreeBSD 6.X and 7.X ..........................................................................82 3-1. Cdigos de dispositivos de disco.........................................................................................................................101 18-1. Convenciones para nombrar discos fsicos........................................................................................................336 29-1. Cableado de una conexin de cable paralelo para redes ...................................................................................596 29-2. Direcciones IPv6 reservadas..............................................................................................................................599
Prefacio
A quin va dirigido este texto
La primera seccin de este libro est pensada para guiar a los recin llegados a FreeBSD durante el proceso de instalacin y presentarles los conceptos y convenciones que dan entidad a UNIX. Para sacar provecho de esta seccin lo nico que el lector necesitar son ganas de explorar y habilidad para ir interiorizando nuevos conceptos a medida que le van planteando. La siguiente seccin, la segunda, mucho ms extensa, es una referencia completa de todo tipo de temas de inters para administradores de sistemas FreeBSD. Es posible que alguno de esos captulos requiera que previamente lea otros textos; si es el caso esto se anuncia en la sinopsis situada al principio de cada captulo. Hay una lista de fuentes de informacin adicionales en el Captulo 31.
Captulo 11, conguracin y adaptacin del sistema, ha sido ampliado con nuevos datos sobre el sistema de gestin de energa y recursos ACPI, la utilidad del sistema cron y ms opciones de personalizacin del kernel. Captulo 14, seguridad, ha sido ampliado con informacin sobre redes privadas virtuales (VPN), listas de control de accesos al sistema de cheros (ms conocidas por ACL) e informacin sobre avisos de seguridad. Captulo 16, Mandatory Access Control (MAC), es un captulo nuevo. En l se expone qu es MAC y de qu forma puede utilizarse en FreeBSD como complemento de la seguridad del sistema. Captulo 18, almacenamiento, se ha ampliado con informacin sobre dispositivos USB de almacenamiento, instantneas (snapshots) de sistemas de cheros, sistemas de cheros basados en cheros y en red, y particiones de disco cifradas. Captulo 20, Vinum, es un captulo nuevo. Describe el uso de Vinum, un gestor de volmenes lgicos que permite disponer de discos lgicos independientes de dispositivo, as como de RAID-0, RAID-1 y RAID-5 por software. Se ha aadido una seccin de depuracin de problemas al Captulo 25, PPP y SLIP. Captulo 27, correo electrnico, ha sido ampliado con informacin sobre el uso de MTA alternativos, autenticacin SMTP, UUCP, fetchmail, procmail as como otros temas avanzados relacionados con el correo. Captulo 28, servidores de red, es un captulo nuevo. En l se incluye informacin sobre la conguracin de Apache HTTP Server, ftpd y cmo congurar Samba para su uso con clientes Microsoft Windows. Ciertas partes de Captulo 29, networking avanzado, se han trasladado a este captulo para dar ms solidez al contenido. Captulo 29, networking avanzado, incluye en esta edicin nuevos datos sobre el uso de dispositivos Bluetooth en FreeBSD, la conguracin de redes wireless y el networking ATM (Asynchronous Transfer Mode). Se ha creado un glosario para disponer de una ubicacin centralizada donde encontrar deniciones de trminos tcnicos que se utilizan a lo largo del libro. Las tablas e imgenes que aparecen en el libro han experimentado diversas mejoras estticas.
xi
Prefacio
Se ha creado un ndice completo. Todos los esquemas ASCII han sido reemplazados por diagramas grcos. Se ha aadido una sinopsis estndar a cada captulo donde se ofrece un breve sumario del contenido del captulo y qu se espera que sepa el lector para poder sacarle provecho. Se ha reorganizado de forma lgica el contenido en tres partes: primeros pasos, administracin del sistema y apndices. El Captulo 2 (instalacin de FreeBSD) ha sido reescrito completamente e incluye gran cantidad de capturas de pantalla para facilitar su comprensin a los nuevos usuarios. El Captulo 3 (conceptos bsicos de UNIX) se ha ampliado con ms informacin sobre procesos, dmons y seales. El Captulo 4 (instalacin de aplicaciones) incluye informacin sobre la gestin de paquetes binarios. El Captulo 5, (El sistema X Window) ha sido reescrito totalmente, con especial nfasis en el uso de modernas tecnologas de escritorio como KDE y GNOME en XFree86 4.X. El Captulo 12 (El proceso de arranque de FreeBSD) ha sido ampliado. El Captulo 18 (Almacenamiento) ha sido el fruto de refundir el contenido de lo eran dos captulos sobre discos y copias de seguridad. Pensamos que estos temas eran ms fciles de entender si se trataban en un mismo captulo. Se ha aadido tambin una seccin sobre RAID (tanto hardware como software). El Captulo 24 (communicaciones serie) ha sido reorganizado y actualizado completamente con informacin sobre FreeBSD 4.X y 5.X. El Captulo 25 (PPP y SLIP) ha sido actualizado en gran parte. Se han aadido muchas secciones nuevas al Captulo 29 (Networking avanzado). El Captulo 27 (correo electrnico incluye ahora ms informacin sobre la conguracin de sendmail. El Captulo 10 (compatibilidad conLinux) se ha ampliado con informacin sobre la instalacin de Oracle y SAP R/3. En esta segunda edicin se incluyen tambin estos nuevos contenidos:
xii
Prefacio leerse en cualquier orden. Cada captulo comienza con una sinopsis sucinta en la que se describe el contenido del captulo y qu es lo que se espera que sepa el lector antes de leerlo. Esto se hace para dar ocasin al lector ocasional a que elija el captulo que ms pueda interesarle. La tercera seccin, Administracin del sistema, trata sobre diversos aspectos de la administracin del sistema. La cuarta seccin, Redes y comunicaciones, est dedicada al networking y temas relacionados con los servidores. La quinta seccin dispone de apndices con informacin de referencia. Captulo 1, Presentacin Este captulo, como su nombre indica, presenta FreeBSD al usuario. En l se cuenta la historia del Proyecto FreeBSD, sus objetivos y su modelo de desarrollo. Captulo 2, Instalacin Gua al usuario a travs de un proceso completo de instalacin. Se explican tambin algunos aspectos avanzados como la instalacin a travs de una consola serie. Captulo 3, Conceptos bsicos de UNIX Se explican los comandos ms bsicos y el funcionamiento del sistema operativo FreeBSD. Si ya se tiene experiencia con Linux u otro tipo de UNIX posiblemente sea este un captulo que no deba leerse. Captulo 4, Instalacin de aplicaciones Se explica la instalacin de software desarrollado por personas ajenas al proyecto, tanto mediante la innovadora Coleccin de Ports de FreeBSD como mediante paquetes binarios estndar (packages). Captulo 5, El sistema X Window Describe el sistema X Windows en general y su uso en FreeBSD en particular. Describe tambin entornos de escritorio de uso comn como KDE y GNOME. Captulo 6, Aplicaciones de escritorio Se enumeran algunas aplicaciones de escritorio muy comunes, como navegadores web y suites omticas, y cmo instalar estas aplicaciones en FreeBSD. Captulo 7, Multimedia Trata sobre la conguracin la reproduccin de sonido y vdeo en su sistema. Describe tambin algunas aplicaciones de sonido y vdeo. Captulo 8, Conguracin del kernel de FreeBSD Explica bajo qu circunstancias tendr que congurar un nuevo kernel y facilita instrucciones detalladas para la conguracin, compilacin e instalacin de un kernel personalizado. Captulo 9, Imprimir Describe la gestin de impresoras en FreeBSD, abarcando aspectos diversos como las pginas banner, las cuentas de impresin as como la conguracin inicial. Captulo 10, Compatibilidad binaria con Linux Describe las caractersticas de compatibilidad con Linux de FreeBSD. Incluye tambin instrucciones detalladas de instalacin de varias aplicaciones Linux muy populares, como Oracle, SAP R/3 y Mathematica.
xiii
Prefacio Captulo 11, Conguracin y adaptacin del sistema Describe los parmetros que los administradores de sistemas tienen a su alcance para hacer que FreeBSD rinda al mximo. Describe tambin los diversos cheros de conguracin que se usan en FreeBSD y dnde estn. Captulo 12, El proceso de arranque en FreeBSD Describe el proceso de arranque de FreeBSD y explica cmo controlar este proceso mediante opciones de conguracin. Captulo 13, Usuarios y administracin bsica de cuentas Describe la creacin y gestin de cuentas de usuario. Trata tambin sobre la limitacin de recursos que puede aplicarse sobre los mismos, as como otras tareas administrativas. Captulo 14, Seguridad Describe las abudantes herramientas diferentes que pueden ayudar a que su sistema FreeBSD est y permanezca seguro. Entre ellas encontrar a Kerberos, IPsec y OpenSSH. Captulo 15, Jaulas Describe el uso de jaulas en FreeBSD y el avance que este framework supone respecto al tradicional uso de chroot que se haca en FreeBSD. Captulo 16, Mandatory Access Control Explica qu es Mandatory Access Control (MAC) y cmo puede usarse este mecanismo para hacer ms seguro FreeBSD Captulo 17, Auditora de eventos de seguridad Describe qu es la auditora de eventos en FreeBSD cmo instalarla y congurarla y cmo pueden inspeccionarse y monitorizarse dichas auditoras. Captulo 18, Almacenamiento Describe cmo gestionar medios de almacenamiento y sistemas de cheros en FreeBSD, tanto discos fsicos, arreglos RAID, medios pticos o en cinta, como discos en memoria y sistemas de cheros en red. Captulo 19, GEOM Trata sobre el framework GEOM de FreeBSD y cmo congurar con l alguno de los diversos niveles de RAID que admite. Captulo 20, Vinum Describe cmo usar Vinum, un gestor de volmenes lgicos que permite tanto el uso de discos lgicos independientes de dispositivo, como RAID-0, RAID-1 y RAID-5 por software. Captulo 21, Virtualizacin Describe los sistemas de virtualizacin disponibles en FreeBSD y cmo utilizarlos. Captulo 22, Localizacin Describe el uso en FreeBSD de idiomas distintos del ingls. Trata tanto la localizacin del sistema como de las aplicaciones.
xiv
Prefacio Captulo 23, Lo ltimo de lo ltimo Explica las diferencias existentes entre FreeBSD-STABLE, FreeBSD-CURRENT y las releases de FreeBSD. Describe tambin qu tipos de usuario pueden beneciarse de seguir el desarrollo contnuo del sistema en su propia mquina y muestra el proceso a seguir. Captulo 24, Comunicaciones serie Explica cmo conectar terminales serie y mdems a su sistema FreeBSD tanto para conexiones entrantes como salientes. Captulo 25, PPP y SLIP Describe cmo usar en FreeBSD PPP, SLIP o PPP sobre Ethernet para conexiones a sistemas remotos. Captulo 27, Correo electrnico Detalla los distintos elementos que componen un servidor de correo electrnico y explica diversos aspectos sencillos de la conguracin del servidor de correo ms extendido: sendmail. Captulo 28, Servidores de red En este captulo encontrar instrucciones detalladas y cheros de conguracin de ejemplo que le permitirn congurar su sistema FreeBSD como servidor NFS, servidor de nombres, servidor NIS o de sincronizacin de hora. Captulo 26, Cortafuegos Explica la losofa que sustenta los cortafuegos por software y facilita informacin detallada sobre la conguracin de los distintos cortafuegos disponibles en FreeBSD. Captulo 29, Networking avanzado Describe diversos temas relacionados con el networking, desde compartir la conexin a Internet con otras mquinas de su LAN a diversos aspectos avanzados del encaminamiento de trco, pasando por las redes wireless, Bluetooth, ATM, IPv6 y mucho ms. Captulo 30, Cmo conseguir FreeBSD Enumera las diferentes fuentes desde la que puede conseguirse FreeBSD en CDROM o DVD, as como los numerosos sitios de Internet desde los que puede descargar e instalar FreeBSD. Captulo 31, Bibliografa Este libro toca tantos temas que es muy posible que el lector se quede a falta de una explicacin ms detallada. En la bibliografa muchos libros estupendos relacionados con el contenido de este texto. Apndice A, Recursos en Internet Describe los abundantes foros de que disponen los usuarios de FreeBSD para enviar preguntas y participar en conversaciones tcnicas sobre FreeBSD. Captulo 32, PGP Keys Lista las claves pblicas PGP de varios desarrolladores de FreeBSD.
xv
Prefacio
Convenciones tipogrcas
Cursiva Se usa un tipo de letracursiva cuando se citan nombres de chero, URL, texto en el que se quiere hacer nfasis y cuando un trmino tcnico aparece por primera vez en el texto.
Tipografa de mquina de escribir
Se usa un tipo de letra de mquina de escribir cuando se muestran mensajes de error, comandos, variables de entorno, nombres de ports, nombres de mquina, nombres de usuario o de grupo, nombres de dispositivo, variables y cuando Se usa un tipo de letra monospaced cuando se muestran mensajes de error, comandos, variables de entorno, nombres de ports, nombres de mquina, nombres de usuario o de grupo, nombres de dispositivo, variables y cuando se muestran fragmentos de cdigo. Negrita Se usa un tipo de letra negrita en el nombre de aplicaciones, comandos y cuando se muestran claves.
Ejemplos
Un comienzo como E:\> indica un ejemplo de comando de MS-DOS. A menos que se especique otra cosa, estos comandos deben ejecutarse en una terminal Command Prompt de un sistema Microsoft Windows moderno.
E:\> tools\fdimage floppies\kern.flp A:
Si hay un # indica que el comando debe ejecutarse como superusuario en FreeBSD. Puede acceder al sistema como root y ejecutar el comando o bien con su usuario habitual y utilizar su(1) para disponer de privilegios de superusuario.
# dd if=kern.flp of=/dev/fd0
xvi
Prefacio Si el ejemplo comienza con un % indica que el comando puede ejecutarse en una cuenta de usuario normal. Salvo que se indique otra cosa se usa la sintaxis de C-shell para asignar valores a variables de entorno u otros comandos.
% top
Agradecimientos
Este libro representa el esfuerzo de muchos cientos de personas del mundo entero. Tanto si fue en forma de correcin de errores de contenido como gramaticales, o bien fue un captulo entero lo que enviaron, toda contribucin ha sido muy valiosa. Varias compaas han colaborado en el desarrollo de este documento pagando a tiempo completo a varios autores, nanciando la publicacin, etc. En especial BSDi (posteriormente adquirida por Wind River Systems (http://www.windriver.com)) pagaron a varios miembros del FreeBSD Documentation Project por trabajar en la mejora lo que fue la primera edicin de este libro, que apareci en marzo de 2000 (ISBN 1-57176-241-8). Adems de esto, Wind River Systems aport el dinero para que otros autores pudieran realizar gran cantidad de mejoras en la estructura de creacin de material listo para impresin y para pudieran aadir nuevos captulos. Este trabajo culmin con la publicacin de la segunda edicin impresa en noviembre de 2001 (ISBN 1-57176-303-1). En 2003 y 2004 FreeBSD Mall, Inc (http://www.freebsdmall.com), pag a varios autores para que se dedicaran a lo que ser la tercera edicin.
xvii
I. Primeros pasos
Esta parte del manual de FreeBSD es para usuarios y administradores nuevos en FreeBSD. El cometido de estos captulos es:
Ofrecer una introduccin a FreeBSD. Guiar a travs de una instalacin de FreeBSD. Explicar conceptos bsica de Unix. Explicar cmo instalar la gran cantidad de software de terceros disponible para FreeBSD. Presentar una introduccin al manejo de X Window, el sistema de ventanas de UNIX, y detallar cmo congurar un entorno de escritorio ms productivo.
Se ha intentado minimizar el nmero de referencias a otras secciones de este documento para evitar el salto entre pginas y facilitar la lectura continuada.
Captulo 1. Introduccin
Reesctructurado, reorganizado y con algunas partes reescritas por Jim Mock.
1.1. Sinopsis
Gracias por su inters en FreeBSD. El siguiente captulo trata varios temas relativos al Proyecto FreeBSD, como su historia, objetivos, modelo de desarrollo, etc. Despus de leer este captulo sabr:
Qu relacin guarda FreeBSD con otros sistemas operativos. La historia del Proyecto FreeBSD. Los objetivos del Proyecto FreeBSD. Los fundamentos del modelo de desarrollo de cdigo abierto de FreeBSD. Y por supuesto: de dnde procede el nombre FreeBSD.
Multitarea expropiativa con prioridades dinmicamente ajustadas para asegurar que distintas aplicaciones y usuarios compartan los recursos del sistema de un modo equitativo, incluso bajo la mayor de las cargas.
Servicios multiusuario que permiten a mucha gente usar un sistema FreeBSD simultneamente para distintas cosas. sto signica, por ejemplo, que los perifricos del sistema como impresoras y dispositivos de cinta son compartidos adecuadamente por varios usuarios del sistema o la red, y que pueden establecerse lmites sobre recursos concretos para usuarios o grupos de usuarios, protegiendo los recursos crticos del sistema de un uso abusivo.
Conexin de redes TCP/IP muy robusta, con soporte para estndares industriales como SCTP, DHCP, NFS, NIS, PPP, SLIP, IPSec e IPv6. Esto quiere decir que su sistema FreeBSD puede interactuar fcilmente con otros sistemas y hacer de servidor en una empresa, proporcionando servicios clave como NFS (acceso a cheros
Captulo 1. Introduccin remotos) y servicios de correo electrnico, o proporcinando la presencia en Internet de su organizacin mediante WWW, FTP, servicios de encaminamiento y cortafuegos.
La proteccin de memoria garantiza que las aplicaciones (o los usuarios) no se estorben los unos a los otros. Un error catastrco en una aplicacin no afecta al resto.
FreeBSD es un sistema operativo de 32-bits (de 64-bits en Alpha, Itanium, AMD64, y UltraSPARC) y fue diseado como tal desde el principio.
X Window System (X11R6), estndar de la industria, dota a los usuarios una interfaz grca (GUI) por el coste de una tarjeta VGA y un monitor comunes, y viene con los fuentes completos.
Compatibilidad binaria con muchos programas nativos de Linux, SCO, SVR4, BSDI y NetBSD.
Hay en Internet miles y miles de aplicaciones listas para su uso. FreeBSD es compatible a nivel de cdigo fuente con la mayora de sistemas UNIX comerciales; por tanto la mayora de aplicaciones requieren poco o ningn cambio para compilar en FreeBSD. En Internet hay miles de aplicaciones fciles de portar. El cdigo fuente de FreeBSD es compatible con el de los sistemas UNIX comerciales ms populares y por ello la mayora de las aplicaciones tan slo necesitan pocos cambios, si es que necesitan alguno, para compilar.
El diseo de la memoria virtual con paginacin bajo demanda y de la cach unicada de VM/buffer satisface a aplicaciones que requieren grandes cantidades de memoria de forma eciente aun dando respuestas interactivas a otros usuarios.
Una coleccin completa de herramientas de desarrollo en C, C++, Fortran, y Perl. Podr encontrar muchos otros lenguajes avanzados para investigacin y desarrollo tanto en la la Coleccin de Ports como en forma de packace.
Disponer del cdigo fuente del sistema entero signica contar con el mayor nivel de control posible sobre su entorno. ?Para qu atarse a una solucin propietaria a merced de un fabricante cuando puede tener un verdadero sistema abierto?
FreeBSD est basado en la versin 4.4BSD-Lite del Computer Systems Research Group (CSRG) de la Universidad de California en Berkeley, y contina la distinguida tradicin de desarrollo de sistemas BSD. Adems del excelente trabajo del CSRG, el Proyecto FreeBSD ha invertido miles de horas en ajustar el sistema para conseguir un rendimiento y una abilidad mximas en situaciones de carga reales. Mientras que muchos de los gigantes comerciales se esfuerzan en dotar a los sistemas operativos para PC de esas caractersticas, rendimiento y abilidad, FreeBSD puede ofrecerlas ya!
Captulo 1. Introduccin Los usos que pueda darle a FreeBSD se ven limitados tan slo por su imaginacin. Desde el desarrollo de programas hasta la automatizacin de fbricas, desde control de inventarios hasta correccin de azimut de antenas de satlites remotos; Si puede hacerse con un UNIX comercial lo ms seguro es que tambin pueda llevarse a cabo con FreeBSD. FreeBSD tambin hace buen uso de las literalmente miles de aplicaciones de alta calidad que se desarrollan en centros de investigacin y universidades de todo el mundo, frecuentemente disponibles por poco o ningn coste. Tambin existen aplicaciones comerciales, cuyo nmero aumenta cada dia. Dado que el cdigo fuente de FreeBSD est disponible para todo el mundo el sistema puede personalizarse en un grado nunca visto para aplicaciones o proyectos especiales, y de maneras generalmente imposibles con los sistemas operativos de la mayora de los fabricantes comerciales. Aqu damos tan slo una muestra de aplicaciones en las que se est usando actualmente FreeBSD:
Servicios de Internet: La robusta conectividad TCP/IP integrada en FreeBSD hace de este sistema una plataforma ideal para servicios de Internet como:
Servidores FTP
USENET y BBSs
y muchos ms.
Con FreeBSD puede empezar fcilmente con un pequeo y econmico PC de tipo 386 e ir actualizando su equipo hasta un tetraprocesador Xeon con almacenamiento RAID a medida que su proyecto crezca.
Educacin: ?Es estudiante de informtica o de algn campo relacionado con la ingeniera? No hay mejor modo de estudiar sistemas operativos, arquitectura de computadores y redes que la experiencia a bajo nivel que FreeBSD puede aportar. Para aqullos cuyo principal inters en los ordenadores no es otro que el de poder realizar su trabajo existe una serie de paquetes gratuitos de CAD, matemticas y diseo grco que hacen de FreeBSD un sistema verdaderamente til. Investigacin: Encontrndose disponible el cdigo fuente del sistema entero FreeBSD es una excelente plataforma para la investigacin en sistemas operativos y otras ramas de la informtica. El hecho de que FreeBSD est disponible gratutamente hace posible que grupos remotos puedan colaborar con ideas o compartan desarrollos sin tener que preocuparse de acuerdos de licencias especiales o de limitaciones acerca de lo que puede discutirse en foros pblicos.
Redes: ?Necesita un nuevo router? ?Un servidor de nombres (DNS)? ?Un cortafuegos que haga ms segura su red interna? FreeBSD puede convertir ese PC 386 o 486 que tiene arrinconado en un router avanzado con sosticadas capacidades de ltrado de paquetes.
Captulo 1. Introduccin Estacin de trabajo X: FreeBSD es una magnca eleccin como terminal X de bajo coste gracias al servidor libre X11. A diferencia de las terminales X FreeBSD permite ejecutar muchas aplicaciones en local si as se quiere, aligerando de este modo la carga soportada por el servidor central. FreeBSD puede incluso arrancar sin disco, permitiendo que las estaciones sean an ms econmicas y fciles de administrar.
Desarrollo de software: El sistema base de FreeBSD incluye una completa coleccin de herramientas de desarrollo que incluyen el famoso compilador y depurador de C/C++ de GNU. Puede conseguir FreeBSD tanto en forma de cdigo fuente como binaria por FTP annimo o en CDROM. Por favor, consulte el Captulo 30 para ms informacin.
Yahoo! (http://www.yahoo.com/)
Apache (http://www.apache.org/)
Netcraft (http://www.netcraft.com/)
Weathernews (http://www.wni.com/)
Supervalu (http://www.supervalu.com/)
Captulo 1. Introduccin
Captulo 1. Introduccin sucientemente pulida esta distribucin fue un xito signicativo, al cual sigui el ms robusto y fcil de instalar FreeBSD 2.0.5; era junio de 1995. Sacamos FreeBSD 2.1.5 en Agosto de 1996; pareci ser sucientemente popular entre ISPs y otras comunidades comerciales como para que mereciera otra versin de la rama 2.1-STABLE. Fue FreeBSD 2.1.7.1, publicada en febrero de 1997, que marc el nal de la lnea principal de desarrollo en 2-1.STABLE. Una vez en puesta en mantenimiento, en esa rama (RELENG_2_1_0) slo se haran ya mejoras en seguridad y se corregiran errores crticos. FreeBSD se ramic desde la lnea principal de desarrollo (-CURRENT) en noviembre de 1996 como la rama RELENG_2_2, y la primera versin completa (2.2.1) sali en abril de 1997. Se hicieron ms versiones de la rama 2.2 en verano y otoo de 1997, la ltima de las cuales (2.2.8) apareci en noviembre de 1998. La primera versin 3.0 ocial sali en octubre de 1998 y marc el inicio del n de la rama 2.2. El rbol se ramic de nuevo el 20 de Enero de 1999, dando lugar a las ramas 4.0-CURRENT y 3.X-STABLE. A partir de la 3.X-STABLE sali 3.1 el 15 de febrero de 1999, 3.2 el 15 de mayo de 1999, 3.3 el 16 de septiembre de 1999, 3.4 el 20 de diciembre de 1999 y 3.5 el 24 de junio de 2000. Pocos dias despus de esta apareci una actualizacin menor, la 3.5.1, que incorporaba parches de seguridad de ltima hora para Kerberos. Esa fue la ltima versin de la rama 3.X. Hubo otra ramicacin el 13 de Marzo de 2000 que dio lugar a la rama 4.X-STABLE. Ha habido varias versiones de la misma desde entonces: 4.0-RELEASE sali en marzo de 2000 y la ltima versin de la rama, 4.11-RELEASE, apareci en enero de 2005. La largamente esperada 5.0-RELEASE se anunci el 19 de enero de 2003, culminando casi tres aos de trabajo; esta versin situ a FreeBSD en el escenario del multiproceso avanzado y el soporte de hilos para las aplicaciones, e introdujo soporte para las plataformas UltraSPARC y ia64. Sigui a esta la versin 5.1 lanzada en Junio de 2003. La ltima versin de 5.X como la rama -CURRENT fu 5.2.1-RELEASE, que sali en febrero de 2004. La rama RELENG_5, creada en agosto de 2004, desemboc en 5.3-RELEASE, que marc el inicio de la rama de versiones 5-STABLE. La versin 5.5-RELEASE ms reciente apareci en mayo de 2006. No aparecern ms versiones a partir de la rama RELENG_5. El rbol se dividi de nuevo en julio de 2005, en esta ocasin para crear RELENG_6. 6.0-RELEASE, la primera versin de la rama 6.X, apareci en noviembre de 2005. 8.3-RELEASE apareci en April 2012. Irn apareciendo ms versiones a partir de la rama RELENG_6. La rama RELENG_7
Captulo 1. Introduccin software con licencia GPL preferimos que el software que incluyamos en el rbol venga bajo la licencia BSD, menos restrictiva, siempre y cuando sea una opcin razonable.
El rbol central de cdigo de FreeBSD se ha mantenido mediante CVS (http://ximbiot.com/cvs/wiki/) (Concurrent Versions System, o sistema concurrente de versiones), una herramienta de control de cdigo totalmente libre que forma parte de FreeBSD. En junio de 2008 el Proyecto adopt SVN (http://subversion.tigris.org) (Subversion). La necesidad de un cambio como este vena de largo a medida que las limitaciones tcnicas que el uso de CVS impona se iban haciendo ms y ms obvias con la rpida expansin del rbol de cdigo y de la cantidad de historial de cambios que hay que almacenar y gestionar. Aunque el repositorio principal use SVN las aplicaciones del lado del cliente como CVSup y csup, que dependen de la infraestructura anterior basada en CVS, siguen funcionando normalmente; los cambios que se hacen en el repositorio SVN se van replicando en el repositorio CVS con este n. Actualmente (octubre 2008) solamente el rbol central de cdigo usa SVN. Los repositorios de documentacin, WWW y Ports siguen usando still using CVS. El repositorio (http://www.FreeBSD.org/cgi/cvsweb.cgi) primario est alojado en una mquina en Santa Clara (California, EEUU), que constituye el original del que todas las rplicas (a las que llamamos a veces mirrors) son copias exactas actualizadas cada muy poco tiempo. El rbol SVN, que contiene tambin los rboles -CURRENT y -STABLE, puede replicarse muy fcilmente en local en su mquina. Consulte la seccin Sincronizacin del rbol de cdigo para ms informacin. La lista de committers
Los committers son la gente que tienen permisos de escritura en el los fuentes de FreeBSD (el trmino committer viene de la orden commit de cvs(1), que sirve para hacer cambios en el repositorio CVS). La mejor manera de enviar aportaciones para que sean revisadas por los committers es usar send-pr(1). Si le parece que si pareciera que algo va mal en el sistema tambin puede enviar correo electrnico a la lista de correo para committers de FreeBSD.
El Core Team de FreeBSD sera el equivalente a una junta directiva si el Proyecto FreeBSD fuese una compaa. La tarea principal del Core Team es la de garantizar que el Proyecto como un todo tenga salud y se mueva en las direcciones adecuadas. Otra de sus funciones es invitar a desarrolladores comprometidos y responsables a que se unan a nuestro equipo, adems de reclutar nuevos miembros del Core Team cuando alguno se va. El Core Team actual fue elegido entre un conjunto de candidatos committers en julio de 2008. Se celebran elecciones cada dos aos. Algunos miembros del Core Team tienen tambin reas especcas de responsabilidad, pues se encargan de garantizar que grandes secciones del sistema funcionen segn lo previsto. Hay una lista completa de desarrolladores de FreeBSD con sus reas de responsabilidad en la lista de colaboradores (http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/article.html). .
Nota: La mayora de los miembros del Core Team trabaja de forma altrusta en el desarrollo de FreeBSD y no reciben benecio econmico del Proyecto; es por esto que compromiso no debe confundirse con soporte garantizado. La anterior analoga de la junta directiva en realidad no es del todo exacta; quiz fuera ms acertado decir que esa es la gente que dedica su vida a FreeBSD en contra de lo que les aconseja su propio sentido comn.
Contribuidores externos
Por ltimo, y no por ello menos importante, el mayor grupo de desarrolladores est formado por los mismos usuarios, quienes constantemente nos aportan comentarios y correccin de errores. La mejor manera de seguir de cerca el desarrollo (al estilo descentralizado de FreeBSD) es suscribirse a la lista de correo de discusiones tcnicas en FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers), que es donde se habla de este tipo de cosas. Consulte el Apndice A si necesita ms informacin sobre las diferentes listas de correo de FreeBSD. La lista de colaboradores es larga y no para de crecer. ?Por qu no apuntarse y hacer algo en FreeBSD hoy mismo? Aportar cdigo no es la nica manera de ayudar al proyecto; hay una lista completa de tareas pendientes en el sitio web del Proyecto FreeBSD (http://www.freebsd.org/index.html). En resumen, nuestro modelo de desarrollo est organizado como un conjunto de crculos concntricos. El modelo centralizado est diseado pensando el la comodidad de los usuarios de FreeBSD, que as tienen un modo sencillo de estar al dia con una base de cdigo central y por supuesto no para excluir a quien quiera ayudar. Nuestro afn es ofrecer un sistema operativo estable con un gran conjunto de aplicaciones coherentes que los usuarios puedan instalar y usar fcilmente (y este modelo est dando buenos resultados) Lo nico que pedimos a quienes quieran unirse a nosotros como desarrolladores de FreeBSD es la misma dedicacin que los integrantes actuales tienen.
Captulo 1. Introduccin
2.1. Sinopsis
FreeBSD dispone de un programa en modo texto muy fcil de usar llamado sysinstall. Es el programa de instalacin por omisin en FreeBSD, pero quien decida distribuir FreeBSD tiene todo el derecho de facilitar un sistema de instalacin propio si as lo desea. Este captulo trata sobre cmo usar sysinstall para instalar FreeBSD Tras leer este captulo sabr usted:
Cmo crear los discos de instalacin de FreeBSD Cmo interpreta (y subdivide) FreeBSD sus discos duros. Cmo arrancar sysinstall. Qu preguntas le har sysinstall, qu signican y cmo responderlas.
Leer la lista de hardware soportado que se suministra con la con la versin de FreeBSD que va a instalar y vericar que su hardware est en dicha lista.
Nota: En general stas instrucciones de instalacin han sido escritas para computadoras de arquitectura i386 (PC compatible). En algunos puntos concretos se darn instrucciones especcas para otras plataformas (por ejemplo Alpha). A pesar de que esta gua se intenta mantener todo lo al da que es posible puede que se encuentre con pequeas diferencias entre el programa de instalacin y lo que aqu se le muestra. Le sugerimos que use este captulo como una gua general ms que como un manual literal de instalacin.
10
Captulo 2. Instalacin de FreeBSD 2.2.1.1. FreeBSD/i386 y FreeBSD/pc98 Tanto FreeBSD/i386 como FreeBSD/pc98 necesitan un procesador 486 o superior y un mnimo de 24 MB de RAM. Necesitar tambin al menos 150 MB de espacio libre en disco, que es lo que necesita la instalacin mnima.
Nota: En sistemas muy antiguos la mayora de las veces ser de mucha ms ayuda conseguir ms RAM y espacio de disco que un procesador ms rpido.
2.2.1.2. FreeBSD/alpha Para instalar FreeBSD/alpha necesitar una plataforma que est soportada (consulte Seccin 2.2.2) y un disco duro dedicado a FreeBSD. En este momento no es posible compartir un disco con otro sistema operativo. Este disco debe estar necesariamente conectado a una controladora SCSI que est soportada por el rmware SRM, o si se trata de un disco IDE el SRM de su mquina debe permitir el arranque desde discos IDE. Necesitar el rmware de la consola SRM de su plataforma. En ciertos casos es posible pasar del rmware AlphaBIOS (o ARC) al SRM. En otros casos no habr ms remedio que descargar un nuevo rmware desde el sito web del fabricante.
Nota: A partir de FreeBSD 7.0 no hay soporte para Alpha. La serie FreeBSD 6.X es la ltima que ofrece soporte para esta arquitectura.
2.2.1.3. FreeBSD/amd64 Hay dos tipos de procesadores capaces de ejecutar FreeBSD/amd64. La primera son los procesadores AMD64, entre los que estn los AMD Athlon64, AMD Athlon64-FX, AMD Opteron y los modelos superiores. La segunda categora de procesadores que pueden usar FreeBSD/amd64 es la de los procesadores de arquitectura EM64T de Intel, por ejemplo las familias de procesadores Intel Core 2 Duo, Quad, y Extreme, y la secuencia de procesadores Intel Xeon 3000, 5000 y 7000. Si tiene una mquina basada en una nVidia nForce3 Pro-150 tendr que usar la conguracin de la BIOS para deshabilitar IO ACPI. Si no tiene la opcin de hacerlo tendr que deshabilitar ACPI. Hay errores en el chipset Pro-150 para los que no hemos encontrado an una solucin.
2.2.1.4. FreeBSD/sparc64 Para instalar FreeBSD/sparc64 necesita una plataforma que est soportada (consulte la Seccin 2.2.2). Necesitar un disco dedicado a FreeBSD/sparc64. De momento es imposible compartir un disco duro con otro sistema operativo.
11
12
13
Captulo 2. Instalacin de FreeBSD encontrar documentacin de ambas. FIPS, PResizer y PartitionMagic pueden redimensionar particiones FAT16 y FAT32, que pueden encontrarse desde MS-DOS hasta Windows ME. Tanto PartitionMagic como GParted funcionan tambin en particiones NTFS. GParted forma parte de diversas distribuciones de Live CD de Linux, como SystemRescueCD (http://www.sysresccd.org/). Hay informes de problemas redimensionando particiones de Microsoft Vista. Le recomendamos tener a mano un disco de instalacin de Vista cuando intente hacer esto. Lo dicho para cualquier otra tarea de mantenimiento de discos es vlido aqu: tenga una copia de seguridad able y reciente a mano.
AvisoEl uso incorrecto de estas herramientas puede borrar datos de su disco duro. Recuerde, asegrese de disponer de copias de seguridad recientes y utilizables antes de usarlas.
Ejemplo 2-1. Uso de una particin sin cambiar nada Supongamos que tiene una mquina con un slo disco de 4 GB que ya tiene una versin de Windows instalada y que ese disco est dividido en dos unidades, C: y D:, cada una de las cuales tiene un tamao de 2 GB. Tiene 1 GB de datos en C: y 0.5 GB de datos en D:. Esto signica que su disco duro tiene dos particiones, una por cada letra de unidad. Copie todos sus datos de D: en C:; de este modo vaciar la segunda partici y podr usarla con FreeBSD.
Ejemplo 2-2. Reducir una particin existente Suponga que tiene una mquina con un slo disco de 4 GB que contiene una versin de Windows instalada. Cuando instal Windows cre una gran particin, lo que le di como resultado una unidad C: de 4 GB. Est usando 1.5 GB de espacio y quiere que FreeBSD tenga 2 GB de espacio. Para poder instalar FreeBSD tendr que realizar una de las siguientes tareas: 1. Haga una copia de sus datos de Windows y despus reinstale Windows, eligiendo una particin de 2 GB en el momento de la instalacin. 2. Utilice alguna herramienta del estilo de PartitionMagic que se han descrito antes para reducir el tamao de su particin de Windows.
2.3.3.2. Estructura de discos en Alpha Tendr que dedicar un disco de su sistema para usar FreeBSD puesto que de momento es imposible compartir un disco con otro sistema operativo. Dependiendo de la la mquina Alpha que tenga el disco podr ser SCSI o IDE en la medida en que sea posible arrancar desde tales discos. Siguiendo las normas de los manuales de Digital / Compaq todos los datos suministrados a SRM se muestran en maysculas. SRM no distingue entre maysculas y minsculas. Use SHOW DEVICE en la consola de SRM para saber qu tipo de discos hay en su sistema:
14
TOSHIBA CD-ROM XM-57 RZ1BB-BS SEAGATE ST34501W 00-00-F8-75-6D-01 SCSI Bus ID 7 PCI EIDE PCI EIDE
5.27
Este ejemplo es de una Digital Personal Workstation 433au y muestra tres discos instalados en el sistema. El primer disco es una unidad CDROM llamada DKA0 y los otros dos reciben los nombres de DKC0 y DKC100 respectivamente. Los discos con nombres tipo DKx son discos SCSI. Por ejemplo DKA100 se reere a un disco SCSI con el target ID 1 en el primer bus SCSI (A), mientras que DKC300 es un disco SCSI con un ID 3 en el tercer bus SCSI (C). Los nombres de dispositivo PKx son para adaptadores de bus SCSI. Como hemos visto en la salida de SHOW DEVICE las unidades CDROM SCSI son consideradas iguales a otros discos duros SCSI. Los discos IDE tienen nombres similares a DQx, mientras que PQx es la controladora IDE asociada.
2.3.4.2. Conexin mediante mdem Si usted se conecta con su ISP mediante un mdem tradicional sigue pudiendo instalar FreeBSD a travs de Internet; el problema es que tardar mucho ms que por otros medios. Necesitar saber: 1. El nmero de telfono de su ISP a travs del que acceder a Internet
15
Captulo 2. Instalacin de FreeBSD 2. El COM: el puerto al que est conectado su mdem 3. Su nombre de usuario y su contrasea de acceso a Internet
Un CDROM o DVD Una particin DOS en la propia computadora Una cinta SCSI o QIC Discos oppy
Red
Un sitio FTP, saliendo a travs de un cortafuegos o usando un proxy HTTP si fuera necesario Un servidor NFS Una conexin serie o a travs de una cable paralelo
Si ha adquirido FreeBSD en CD o DVD ya tiene todo lo que necesitar, puede pasar a la siguiente seccin: (Seccin 2.3.7). Si no dispone de los cheros de instalacin de FreeBSD debera consultar la Seccin 2.13, donde se explica cmo preparar la instalacin de FreeBSD desde cualquiera de los medios listados anteriormente. Tras leer esa seccin puede volver aqu y leer la Seccin 2.3.7.
16
Captulo 2. Instalacin de FreeBSD est instalado en su disco duro pero puede tambin ser congurado para que lo haga desde un oppy arrancable. Las computadoras ms modernas pueden tambin arrancar desde un CDROM introducido en la unidad CDROM.
Sugerencia: Si tiene FreeBSD en CDROM o DVD (por haberlo comprado o haberlo preparado por usted) y su sistema puede arracar desde CDROM o DVD (suele ser una opcin de BIOS llamada Boot Order o algo similar) puede saltarse esta seccin. Las imgenes de CDROM o DVD de FreeBSD permiten arrancar desde ellas y pueden emplearse para instalar FreeBSD sin ninguna preparacin especial.
Siga estos pasos para crear las imgenes que le permitirn arrancar desde oppy: 1. Consiga las imgenes de arranque desde oppy Los discos de arranque se encuentran en el directorio floppies/ del medio de instalacin o pueden descargarse desde el directorio correspondiente de ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<version>-RELEASE/floppies/. Reemplace <arch> y <version> con la arquitectura y la versin de FreeBSD que quiera instalar. Por ejemplo, las imgenes de arranque desde oppy para FreeBSD 9.1-RELEASE para i386 estn en from ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/9.1-RELEASE/oppies/. Las imgenes de oppy tienen la extensin .flp. El directorio floppies/ contiene diferentes imgenes y las que usted necesitar dependern de la versin de FreeBSD que vaya a instalar y, en algunos casos, del hardware en el que lo va a instalar. En la mayora de de los casos solamente usar dos cheros: kern.flp y mfsroot.flp. La instalacin en algunos sistemas concretos requerir controladores de dispositivo adicionales, que se encuentran en la imagen drivers.flp. Consulte README.TXT en el propio directorio, ah encontrar la informacin ms reciente sobre las imgenes.
Importante: Su programa de FTP debe usar modo binario para descargar las imgenes. Algunos navegadores web suelen usar el modo texto ( o ASCII ). He aqu lo primero a comprobar si no puede arrancar desde los disquetes que ha creado.
2.
Preparacin de los discos oppy Tendr que preperar un disquete por cada imagen que descargue. Es imprescindible que esos discos carezcan de errores. La forma ms sencilla de asegurarlo es formatearlos usted. No confe en disquetes preformateados. La herramienta de formateo de Windows no le advertir del hallazgo de bloques defectuosos, si encuentra alguno sencillamente lo marcar como defectuoso y lo ignorar. Le recomendamos que use disquetes nuevos si decide usar este procedimiento de instalacin.
Importante: Si instenta instalar FreeBSD y el programa de instalacin falla, se queda congelado o sucede alguna otra catstrofe uno de las primeras cosas de las que sospechar son los disquetes. Vuelque los cheros de imagen en discos nuevos e intntelo de nuevo.
3.
Escriba los cheros de imagen en discos oppy ( disquetes) Los cheros .flp no son cheros normales que puedan copiarse a disco. Son imgenes del contenido completo de los discos. Esto signica que no puede simplemente copiar esos cheros de un disco a otro. Debe usar herramientas especializadas para escribir esas imgenes directamente al disco correspondiente.
17
Captulo 2. Instalacin de FreeBSD Si va a crear los disquetes de arranque en un sistema en el que se est ejecutando MS-DOS/Windows utilice la herramienta fdimage. Si las imgenes estn en el CDROM y su CDROM es la unidad E: ejecute lo siguiente:
E:\> tools\fdimage floppies\kern.flp A:
Repita el proceso con cada chero .flp reemplazando cada vez el disco y recuerde etiquetarlos con el nombre del chero que ha copiado en cada uno. Modique la lnea del comando donde sea necesario, adaptndola al lugar donde tenga usted los cheros .flp. Puede descargar fdimage desde el directorio tools (ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/) del sitio FTP de FreeBSD. Si va a crear los disquetes en un sistema UNIX (por ejemplo otro sistema FreeBSD) puede utilizar dd(1) para volcar las imgenes a los discos. En FreeBSD puede ejecutar algo como:
# dd if=kern.flp of=/dev/fd0
En FreeBSD /dev/fd0 es la primera unidad de disquetes (la unidad A:). /dev/fd1 sera la unidad B: y as sucesivamente. Otras versiones de UNIX pueden asignar nombres diferentes a las unidades de disquetes; consulte la documentacin de su sistema. Ya podemos instalar instalar FreeBSD.
Es decir:
ltima oportunidad: ?Seguro que quiere seguir adelante con la instalacin? Si est ejecutando este programa en un disco que contenga datos que quiera conservar LE RECOMENDAMOS ENCARECIDAMENTE QUE HAGA COPIAS DE SEGURIDAD FIABLES antes de proseguir! No podemos responsabilizarnos de datos perdidos!
El proceso de instalacin puede abandonarse en cualquier momento antes de la advertencia nal sin efectuar cambios en el contenido del disco duro. Si advierte que ha congurado algo de forma incorrecta basta con que apague su sistema y no estropear nada.
18
2.4.1. El arranque
2.4.1.1. El arranque en i386 1. 2. Comience con su sistema apagado. Arranque el sistema. Durante el arranque deber mostrarse la opcin para entrar en la BIOS, normalmente mediante las teclas F2, F10, Del, o Alt+S. Utilice la tecla o combinacin de las mismas que se le indique en pantalla. En algunos casos el sistema puede mostrar un grco durante el arranque. Pulsar Esc suele disminuir en esos casos el tamao del grco y le permitir ver los mensajes del arranque. Encuentre el parmetro que controla desde qu dispositivos arranca el sistema. Normalmente se llama Boot Order y suele presentarse como una lista de dispositivos, como Floppy, CDROM, First Hard Disk, etc. Si necesita disquetes de arranque asegrese de que selecciona la unidad correspondiente. Si va a arrancar desde CDROM, seleccione la unidad CDROM. En caso de duda consulte el manual que vena con su computadora y/o el de su placa base. Haga los cambios necesarios, guarde los cambios y salga. El sistema debera reiniciarse. 4. Si ha elegido arrancar desde disquete, tal y como se describe en Seccin 2.3.7, uno de ellos ser el primer disco de arranque, probablemente el que contiene kern.flp. Introduzca ese disco en su unidad de disquetes. Si va a arrancar desde CDROM tendr que arrancar el sistema e introducir el CDROM en cuanto tenga ocasin. Si su sistema arranca normalmente y carga el sistema operativo que ya est instalado puede ocurrir alguna de estas cosas: 1. Los discos no se introdujeron lo sucientemente pronto en el proceso de arranque. Djelos insertados y reinicie su sistema. 2. Los cambios que hizo en la BIOS no han funcionado. Debera repetir los pasos previos hasta que d con la opcin correcta. 3. Su BIOS en concreto no admite el arranque el arranque desde el medio que ha elegido. 5. FreeBSD comenzar a arrancar. Si est arrancando desde CDROM debera ver algo parecido a esto (se ha omitido la informacin de nmero de versin):
Verifying DMI Pool Data ........ Boot from ATAPI CD-ROM : 1. FD 2.88MB System Type-(00) Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive B: is disk1 BIOS drive C: is disk2 BIOS drive D: is disk3 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 |
3.
19
Si arranca desde oppy ver algo parecido a esto (se ha omitido la informacin de nmero de versin):
Verifying DMI Pool Data ........ BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | Please insert MFS root floppy and press enter:
Siga las instrucciones y extraiga el disco kern.flp disc, inserte el disco mfsroot.flp y pulse Intro. 6. Tanto si arranca desde disquete como CDROM el proceso de arranque llegar a este punto:
Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _
Dicho y hecho: espere diez segundos o pulse Enter. Esto lanzar el men de conguracin del kernel.
2.4.1.2. Arranque en Alpha 1. 2. 3. Comience con su sistema apagado. Encienda su computadora y espera un mensaje de arranque en el monitor. Si va a arrancar desde disquetes, tal y como se describe en la Seccin 2.3.7, uno de ellos ser el primer disco de arranque, probablemente el que contiene kern.flp. Ponga este disco en la unidad de disquetes y escriba el siguiente comando para lanzar el arranque desde el disco (corrija el nombre de su unidad de disquetes si fuera necesario):
>>>BOOT DVA0 -FLAGS -FILE
Si va a arrancar desde CDROM introduzca el CDROM en la unidad y escriba el siguiente comando para iniciar la instalacin (corrija el nombre de la unidad correcta de CDROM si fuera necesario):
>>>BOOT DKA0 -FLAGS -FILE
4.
FreeBSD comenzar a arrancar. Si est arrancando desde disquete llegado un cierto punto ver usted este mensaje:
Please insert MFS root floppy and press enter:
Siga las instrucciones del programa de instalacin y retire el disco kern.flp, inserte el disco mfsroot.flpy pulse Intro. 5. Tanto si arranc desde disquete como desde CDROM el proceso de arranque llegar a este punto:
Hit [Enter] to boot immediately, or any other key for command prompt.
20
Dicho y hecho: Espere diez segundos o pulse Enter. Esto iniciar el men de conguracin del kernel.
2.4.1.3. Arranque en Sparc64 La mayora de sistemas Sparc64 estn congurados para arrancar automticamente desde disco. Si quiere instalar FreeBSD tendr que arrancar por red o desde un CDROM, lo que requiere que acceda a la PROM (OpenFirmware). Reinicie el sistema y espere hasta que aparezca el mensaje de arranque. Depende del modelo, pero debera parecerse a este:
Sun Blade 100 (UltraSPARC-IIe), Keyboard Present Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. OpenBoot 4.2, 128 MB memory installed, Serial #51090132. Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.
Si en este punto su sistema arranca desde el disco pulse L1+A o Stop+A, o enve unBREAK desde la consola serie serial console (usando, por ejemplo, ~# en tip(1) o cu(1)) para as recuperar el prompt de PROM. Tiene este aspecto:
ok ok {0}
Este es el prompt que ver en sistemas con una sola CPU. Este prompt se usa en sistemas SMP; el dgito indica el nmero de la CPU activa.
21
22
Captulo 2. Instalacin de FreeBSD Compruebe cuidadosamente que FreeBSD haya encontrado todos los dispositivos que debe encontrar. Si no se lista algn dispositivo signica que FreeBSD no lo ha encontrado. Un kernel personalizado le permitir agregar al sistema el soporte de dispositivos que no aparecen en el kernelGENERIC, que suele ser el caso de algunas tarjetas de sonido. En FreeBSD 6.2 y versiones siguientes ver tras la prueba de dispositivos ver lo que muestra la Figura 2-2. Utilice las echas del teclado para elegir pas, regin o grupo. Cuando acabe pulse Intro, con lo que habr elegido pas y esquema de teclado. En cualquier momento puede salir de easily. It is also easy to exit the sysinstall y volver a empezar. Figura 2-2. Men de seleccin de pas
Para salir de sysinstall utilice las echas del teclado para seleccionar Exit Install en el men de la pantalla principal de instalacin. Aparecer el siguiente mensaje:
User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies/CDs/DVDs from the drives). [ Yes ] No
Si pulsa [ Yes ] y no retira el CDROM durante el reinicio el programa de instalacin comenzar de nuevo. Si est arrancando desde disquetes tendr que retirar el oppy boot.flp antes de reiniciar.
23
Captulo 2. Instalacin de FreeBSD El sistema de mens de sysinstall se controla mediante las echas del teclado, Intro,el tabulador), Espacio y otras teclas. Tiene una descripcin detallada de todas esas teclas y qu es lo que hacen en la informacin de uso de sysinstall. Si quiere consultarla seleccione Usage y asegrese de que el botn [Select] est seleccionado (como se ven en la Figura 2-4) y pulse Intro. Aparecern las instrucciones de uso del sistema de mens. Una vez revisadas pulse Enter y volver al men principal. Figura 2-4. Seleccin de Usage en el men principal de sysinstall
24
Captulo 2. Instalacin de FreeBSD Esto mostrar el men de documentacin. Figura 2-6. El men de documentacin de sysinstall
Es muy importante qeu lea la documentacin de sysinstall. Si quiere consultar un documento seleccionelo con las echas y pulse Intro. Cuando acabe pulse de nuevo Intro y volver al men de documentacin. Si desea regresar al men principal de la instalacin seleccione Exit con las echas y pulse Intro.
25
Captulo 2. Instalacin de FreeBSD La seleccin de un esquema de teclado se hace del siguiente modo: seleccione uno de la lista mediante las echas arriba/abajo y pulse Espacio. Si pulsa Espacio otra vez anular la seleccin. Una vez que tenga clara su eleccin use las echas para seleccionar [ OK ] y pulse Intro. En esta pantalla solamente se muestra una parte de la lista. Seleccione [ Cancel ] usando el tabulador si ha decido seguir usando el esquema de teclado por omisin y regresar al men principal de instalacin. Figura 2-8. Men de esquemas de teclado de sysinstall
26
Los valores por omisin deberan bastar para la mayora de usuarios. El nmero de release variar segn sea la versin que se est instalando. La descripcin del elemento seleccionado aparecer resaltada en azul en la parte baja de la pantalla. Observe que una de las opciones es Use Defaults, que devuelve todos los valores a los asignados por omisin al principio del proceso de instalacin. Si pulsa F1 podr leer la pantalla de ayuda de las diversas opciones. Si pulsa Q volver al men principal de la instalacin.
27
28
Barra lateralVeamos un instructivo ejemplo extrado de Las excepcionales aventuras de Pedro y Pablo: Pedro decide dedicar una vieja mquina Wintel para prepararle un sistema FreeBSD a Pablo. Pedro le instala una sola unidad SCSI como unidad SCSI 0 e instala FreeBSD en ella. Pablo comienza a usar el sistema pero a los pocos dias advierte que esa vieja unidad SCSI est mostrando numerosos errores lgicos, as que informa del hecho a Pedro. Dias despus Pedro decide solucionar el problema; consigue un disco idntico al que instal a Pablo. Le pasa un chequeo de supercie que da resultados satisfactorios, as que instala este disco como unidad SCSI 4 y hace una copia binaria de la unidad 0 (el primer disco) a la recin instalada unidad 4. Una vez que el nuevo disco est instalado Pedro decide que hay que empezar a usarlo, as que congura la BIOS SCSI para reorganizar las unidades de disco para que el sistema arranque desde la unidad SCSI 4. FreeBSD arranca desde dicha unidad y todo funciona perfectamente. Pablo sigue trabajando varios dias y no pasa mucho tiempo antes de que Pedro y Pablo decidan que ya es hora de meterse en una nueva aventura: actualizarse a la nueva versn de FreeBSD. Bill retira la unidad SCSI 0 de la mquina porque le parece poco de ar y la reemplaza por un disco que obtiene de su en apariencia inagotable trastero. Pedro instala la ltima versin de FreeBSD en la nueva unidad SCSI mediante los disquetes FTP mgicos que Pablo ha bajado de Internet. La instalacin se ejecuta sin problemas. Pablo utiliza la nueva versin de FreeBSD durante unos dias y comprueba que en efecto es lo bastante buena como para usarla en el departamento de ingeniera. Ha llegado, por tanto, el momento de copiar los datos que tiene en la versin anterior de FreeBSD a su nuevo alojamiento. Pablo monta la unidad SCSI 4 (la ltima que instal con la versin anterior de FreeBSD). Pablo queda consternado al comprobar que en la unidad SCSI 4 no hay ni rastro de sus preciados datos. ?Dnde estn los datos? Cuando Pedro hizo la copia binaria de la unidad SCSI 0 en la unidad SCSI 4, la unidad se convirti en el el nuevo clon. Cuando Pedro recongur la BIOS SCSI para poder arrancar desde la unidad SCSI 4 tan slo estaba engandose a s mismo puesto que FreeBSD segua arrancando desde la unidad SCSI 0. Al hacer tal cambio en la BIOS causamos que parte del cdigo de arranque y del cargador del sistema se copie de una a otra unidad pero en cuanto los controladores del kernel de FreeBSD toman el control de la situacin el esquema de nomenclatura de unidades de la BIOS es desestimado y FreeBSD recupera el esquema normal de nomenclatura. En nuestro ejemplo el sistema sigue funcionando desde la unidad SCSI 0 y ah estn todos los datos de Pablo, no en la unidad SCSI 4. El hecho de que pareciera que el sistema estaba funcionando en la unidad SCSI 4 era un producto de la imaginacin humana. Estamos encantados de decir que ni un solo byte fue herido o maltratado durante el descubrimiento de este fenmeno. La vieja unidad SCSI 0 fu recuperada del montn de discos cados en acto de servicio y fue posible devolver todo el trabajo de Pablo a su legtimo dueo. Por si fuera poco, ahora Pedro sabe con certeza que es capaz de contar hasta cero. En el ejemplo se han usado unidades SCSI pero los conceptos pueden aplicarse perfectamente a unidades IDE.
29
Es decir:
Mensaje En el siguiente men tendr que configurar un esquema de particionado estilo DOS ("fdisk") en su disco duro. Si quiere dedicar todo el espacio de disco a FreeBSD (cosa que sobreescribir cualquier cosa que contuviera el/los disco/s) use el comando (A)ll (Todo) para seleccionar el esquema de particiones por defecto y luego pulse (Q)uit (Salir). Si quiere asignar a FreeBSD slamente el espacio libre en la unidad elija una particin que figure marcada como "unused" (sin usar) y ejecute el comando (C)reate (Crear). [ OK ] [ Pulse Intro o Espacio ]
Pulse Intro tal y como se le dice. Se le mostrar una lista con todas las unidades de disco duro que el kernel ha econtrado al hacer el chequeo del sistema. La Figura 2-12 muestra un ejemplo de un sistema con dos discos IDE. Reciben los nombres de ad0 y ad2. Figura 2-12. Elija en qu unidad usar FDisk
30
Captulo 2. Instalacin de FreeBSD Quizs est preguntandose por qu ad1 no aparece por ningn lado. ?Acaso hemos pasado algo por alto? Veamos qu ocurrira si tuviera usted dos discos duros IDE, uno como maestro de la primera controladora IDE y el otro como maestro en la segunda controladora IDE. Si FreeBSD asignara nmeros de unidad en el orden en el que las encuentra en el ejemplo habramos visto ad0 y ad1 y todo funcionara sin mayor problema. Pero si tuviera usted que aadir un tercer disco, digamos como esclavo de la primera controladora IDE, tendra que llamarse ad1 y el disco que antes era ad1 pasara a llamarse ad2. Los nombres de dispositivo (como por ejemplo ad1s1a) se usan para ubicar sistemas de cheros, as que podra encontrarse con que alguno de sus sistemas de cheros no est donde debiera y tendra que modicar la conguracin de su FreeBSD. Para evitar este problema el kernel puede congurarse para asignar nombres a discos IDE basndose en dnde estn en lugar de hacerlo por el orden en el que los encuentra. Segn dicho esquema el disco maestro de la segunda contoladora IDE siempre ser ad2, incluso si no existen dispositivos ad0 o ad1. sta es la conguracin por omisin que incorpora el kernel de FreeBSD, por lo que muestra las unidades ad0 y ad2. La mquina en la que se tomaron las capturas de pantalla tiene sendos discos IDE en ambos canales maestros de las dos controladoras y carece de discos en los canales esclavos. Seleccione el disco en el que desea instalar FreeBSD y pulse [ OK ]. FDisk arrancar y le mostrar una pantalla similar a la que muestra la Figura 2-13. La pantalla de FDisk se divide en tres partes. La primera parte, que ocupa las dos primeras lneas de la pantalla, muestra los detalles del disco que seleccionemos, el nombre que FreeBSD le da, la geometra del disco y el tamao total del disco. La segunda parte muestra las slices que haya en el disco, dnde comienzan y acaban, cul es su tamao, qu nombre les da FreeBSD, su descripcin y subtipo. Este ejemplo muestra dos pequeas slices sin usar; las slices (del ingls rebanadas) son un tipo de esquema estructural de los discos de PC. Tambin muestra una gran slice FAT, que casi con total seguridad aparecer como C: en MS-DOS / Windows, y una slice extendida, que podra contener otras letras de unidad de MS-DOS / Windows. La tercera parte muestra las rdenes que pueden usarse en FDisk. Figura 2-13. Un ejemplo de particionamiento tpico con FDisk
Lo que deba hacer a partir de ahora depender mucho de la forma en la que quiera distribuir su disco.
31
Captulo 2. Instalacin de FreeBSD Si desea usar FreeBSD en el resto del disco (lo que implica borrar todos los datos que pudiera haber en el disco una vez que le conrme a sysinstall que desea seguir adelante con la instalacin) pulse A, que equivale a la opcin Use Entire Disk (Utilizar el disco ntegro). Las slices que existieran se borrarn y sern reemplazadas por un pequeo rea de disco marcado como sin usar (otro recurso de la estructura de disco de los PC) y tras l una gran slice destinada a FreeBSD. Ahora marque la particin FreeBSD que acaba de crear como arrancable: pulse S. La pantalla que ver ha de ser muy similar a la Figura 2-14. Observe la A en la columna Flags: indica que la slice es activa y se arrancar desde ella. Si desea borrar una slice para hacer ms sitio a FreeBSD seleccinela mediante las echas y pulse D. Despus pulse C y ver un mensaje en el que se le pedir el tamao de la slice que va a crear. Introduzca los datos apropiados y pulse Intro. El valor por defecto en sta pantalla es el de la slice ms grande que pueda crear en el disco, que debera ser la mayor parte del disco que queda sin usar o el tamao del disco duro completo. Si ha hecho sitio para FreeBSD (quizs con una herramienta como PartitionMagic) puede pulsar press C y crear una nueva slice. Ver de nuevo un mensaje en el que se le pedir que escriba el tamao de la slice que va a crear. Figura 2-14. Particin con FDisk usando el disco completo
Cuando acabe pulse Q. Sus cambios se guardarn en sysinstall, pero de momento no se guardarn en disco.
Tiene ms de un disco y ha instalado FreeBSD en cualquiera que no sea el primero. Ha instalado FreeBSD codo con codo con otro sistema operativo y quiere poder elegir si arrancar FreeBSD o ese otro sistema operativo cuando arranque su sistema.
Si FreeBSD va a ser el nico sistema operativo en el sistema y va a instalarlo en el primer disco duro elija el gestor estndar (que, obviamente, est en la opcin Standard). Elija None (ninguno) si va a usar algn otro gestor de arranque que sea capaz de arrancar FreeBSD. Elija y pulse Intro.
32
La pantalla de ayuda, que puede consultar en cualquier momento pulsando F1, puede serle de mucha ayuda con los problemas que puede encontrarse al intentar compartir un disco duro entre varios sistemas operativos.
33
El tabulador se usa para hacer pasar el cursor entre [ OK ], [ Cancel ]. Pulse tabulador para pasar el cursor a [ OK ] y pulse Enter para proseguir con la instalacin.
Sistema de cheros
/
Tamao 512 MB
Descripcin Este es el sistema de cheros raz. el resto de sistemas de cheros se montarn en algn punto de este sistema raz. 100 MB es un tamao razonable para l. No es el mejor sitio para almacenar muchos datos y la instalacin de FreeBSD escribir cerca de 40 MB de datos en ella. El resto del espacio es para datos temporales y por si futuras versiones de FreeBSD necesitan ms espacio en /.
34
Descripcin Esta particin es el espacio de memoria de intercambio (o swap) del sistema. La eleccin de la cantidad correcta de swap es casi un arte en s mismo. Hay una regla bsica que es asignar a la swap el doble o el triple de MB de los que haya en la memoria fsica (RAM) del sistema. Debera tener al menos 64 MB de swap as que si tiene menos de 32 MB de RAM asgnele a su swap 64 MB. Si tiene ms de un disco puede poner espacio swap en cada disco. FreeBSD usar ambas swap con el resultado de acelerar notablemente el intercambio de pginas de memoria. Calcule el total de swap que necesita (por ejemplo 128 MB) y divida esa cantidad por el nmero de discos que tenga (por ejemplo dos) y ya tiene la cantidad de espacio que debe destinar a swap en cada uno de sus discos. En nuestro ejemplo 64 MB de swap por disco. El directorio /var contiene cheros que estn en continuo cambio, como logs y otros cheros administrativos. Muchos de esos cheros son una consecuencia o son de gran ayuda para el correcto funcionamiento diario de FreeBSD. FreeBSD ubica dichos cheros en ese sistema de cheros para optimizar el acceso a los mismos sin afectar a otros cheros ni directorios que tienen similar patrn de accesos.
/var
256 MB to 1024 MB
/usr
Resto del El resto de sus cheros pueden almacenarse en /usr y sus disco(al menos subdirectorios. 2 GB)
AvisoLos valores que se han mostrado son simples ejemplos y se recomienda su uso exclusivamente a usuarios experimentados. Recomendamos a los usuarios que utilicen la opcin Auto Defaults, que elegir unas proporciones adecuadas para el espacio que encuentre disponible.
Si va a instalar FreeBSD en ms de un disco puede crear particiones el las dems slices que haya creado. La forma ms fcil de hacerlo es creando dos particiones en cada disco, una para la swap y la otra para los sistemas de cheros. Tabla 2-3. Esquema de particiones para varios discos Particin
b
Descripcin Tal y como se ha explicado puede repartir su espacio swap entre varios discos. Aunque piense que la particin a est libre la costumbre (y se dice que las costumbres son leyes dicta que el espacio swap reside en la particin b.
35
Descripcin El resto del disco puede dejarse en una sola particin. Esto podra ubicarse simplemente en la particin a en lugar de en la e. Sin embargo la costumbre dice que la particin a de una slice est reservada para el sistema de cheros que ha de albergar el sistema de cheros raz (/). No tiene por qu seguir la costumbre pero tenga en cuenta que sysinstall s que lo hace, as que si la sigue sabe que est haciendo una instalacin ms limpia. Puede montar los sistemas de cheros donde preera; este ejemplo le sugiere que los monte como directorios /discon, donde n es un nmero que cambia en cada disco. Por supuesto que puede usar el esquema que preera.
Una vez que haya elegido el esquema de particiones creelo en sysinstall. Ver este mensaje:
Message Now, you need to create BSD partitions inside of the fdisk partition(s) just created. If you have a reasonable amount of disk space (200MB or more) and dont have any special requirements, simply use the (A)uto command to allocate space automatically. If you have more specific needs or just dont care for the layout chosen by (A)uto, press F1 for more information on manual layout. [ OK ] [ Press enter or space ]
Es decir:
Message Debe crear particiones BSD dentro de las particiones fdisk que acaba de crear. Si tiene una cantidad de espacio en disco razonablemente grande (200MB o ms) y no tiene necesidades especiales puede simplemente usar el comando (A)uto para asignar el espacio automticamente. Si tiene necesidades ms concretas o simplemente no le gusta la estructura que le da (A)uto pulse F1 y obtendr ms informacin sobre la creacin manual de la estructura. [ OK ] [ Pulse Intro o Espacio ]
Al pulsar Intro arrancar el editor de particiones de FreeBSD, Disklabel. La Figura 2-17 muestra lo que ver cuando arranque Disklabel. La pantalla se divide en tres secciones. Las primeras lneas muestran el nombre del disco en el que estamos haciendo cambios y el de la slice que contiene las particiones que estamos creando (Disklabel las muestra bajo Partition name (nombre de particin) en lugar
36
Captulo 2. Instalacin de FreeBSD de hacerlo como slices). Vemos tambin ah la cantidad de espacio libre en la slice, esto es, el espacio que hay asignado a la slice pero que an no ha sido asignado a ninguna particin. En la mitad de la pantalla se muestran las particiones que se han creado, el nombre de los sistemas de cheros que contiene cada particin, sus tamaos y algunas opciones relacionadas con la creacin de sistemas de cheros. La tercera parte de la pantalla, la de ms abajo, muestra los atajos de teclado que pueden usarse en Disklabel. Figura 2-17. El editor Disklabel
Disklabel puede crear automticamente particiones y asignarles tamaos por omisin. Estos tamaos se calculan con la ayuda de un algoritmo interno de dimensionamiento de particiones que analiza el tamao del disco. Puede probarlo pulsando A. Ver una pantalla similar a la que aparece en la Figura 2-18. Dependiendo del tama~o del disco que est usando los valores por omisin pueden o no ser los apropiados. Esto no es algo de lo que deba preocuparse dado que no est obligado a aceptar esos valores por omisin.
Nota: En el esquema de particiones por omisin el directorio /tmp tiene su propia particin en lugar de formar parte de /. Esto ayuda a evitar el desbordamiento de / con cheros temporales.
37
Captulo 2. Instalacin de FreeBSD Figura 2-18. Editor Disklabel con valores por omisin
Si decide no usar los valores por defecto para las particiones y quiere reemplazar tales valores por los suyos use las echas: elija la primera particin y pulse D para borrarla. Repita el proceso para borrar todas las particiones que desee. Vamos a crear la primera particin (a, montada como / o raz). Seleccione la slice adecuada y pulse C. Aparecer un dilogo pidindole que escriba el tamao de la nueva particin (como se muestra en la in Figura 2-19). Puede introducir el tamao expresado en bloques de disco o como un nmero seguido de una M para expresarlo en megabytes, una G para usar gygabytes o una C si quiere expresarlo en cilindros. Figura 2-19. Liberar espacio para la particin raz
El tamao por omisin que se muestra crear una particin que ocupe el resto de la slice. Si va a usar los tamaos de particin que se daban en el ejemplo anterior borre el texto existente pulsando Retroceso; escriba 64M, como se puede ver en la Figura 2-20. Despus pulse [ OK ].
38
Captulo 2. Instalacin de FreeBSD Figura 2-20. Edicin del tamao de la particin raz
Una vez elegido el tamao de la particin tendr que elegir si esta particin ha de contener un sistema de cheros o espacio swap y escribir lo que corresponda en una pantalla como la que se muestra en la Figura 2-21. Esta primera particin contendr un sistema de cheros, as que seleccionamos FS y pulsamos Intro. Figura 2-21. Elegir el tipo de particin raz
Para acabar, dado que est creando un sistema de cheros, tendr que decirle a Disklabel dnde hay que montarlo. La pantalla se muestra en la Figura 2-22. El punto de montaje del sistema de cheros raz es /, as que tendr que teclear /y luego pulsar Intro.
39
Captulo 2. Instalacin de FreeBSD Figura 2-22. Elegir el punto de montaje del sistema de cheros raz
La pantalla le mostrar ahora la particin que acaba de crear. Repita el procedimiento todas las veces que necesite con las dems particiones. Cuando cree la particin swap no se le pedir el punto de montaje puesto que las particiones swap nunca se montan como tales. Cuando cree la ltima particin /usr, puede dejar el tamao que se le sugiere, esto es, usar el resto del espacio en la slice. La ltima pantalla del editor Disklabel ser muy parecida a la Figura 2-23, aunque los valores pueden ser diferentes. Pulse Q para salir del editor. Figura 2-23. Editor Disklabel
40
41
Captulo 2. Instalacin de FreeBSD de FreeBSD. Los ports son una forma fcil y cmoda de instalar software. El rbol de ports no contiene el cdigo fuente necesario para compilar software; es una gran coleccin de cheros que automatiza la descarga, la compilacin y la instalacin de paquetes de software de todo tipo. El Captulo 4 explica con detalle cmo utilizar los ports. El programa de instalacin no comprueba si tiene espacio suciente. Seleccione esta opcin si dispone de sitio en el disco. En FreeBSD 9.1 los ports ocupan cerca de 500 MB en disco. Puede asumir tranquilamente que en las nuevas versiones del sistema irn ocupando ms y ms.
User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over 24,000 ported software packages, at a cost of around 500 MB of disk space when "clean" and possibly much more than that if a lot of the distribution tarballs are loaded (unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on /cdrom, in which case this is far less of a problem). The Ports Collection is a very valuable resource and well worth having on your /usr partition, so it is advisable to say Yes to this option. For more information on the Ports Collection & the latest ports, visit: http://www.FreeBSD.org/ports [ Yes ] No
Es decir:
Peticin de confirmacin del usuario ?Quiere instalar la coleccin de ports de FreeBSD? Tendr acceso inmediato a ms de 24,000 paquetes de software listos para usarse en FreeBSD, aunque necesitar cerca de 500 MB de espacio en disco como mnimo y posiblemente mucho ms si descarga los tarballs de cdigo fuente (aunque si tiene los CD extra de una versin de FreeBSD en CD/DVD puede montarlos en /cdrom, de forma que esto dejara de ser un problema). La coleccin de ports es un recurso extremadamente valioso y es muy recomendable que la instale en su particin /usr, as que debera responder S a la siguiente pregunta. Si quiere estar al tanto de las ltimas novedades y las ltimas entradas en la coleccin de ports visite: http://www.FreeBSD.org/ports [ Yes ] No
Seleccione [ Yes ] con las echas e instale los ports o [ No ] para obviar la pregunta. Pulse Intro para seguir con la instalacin. Volvemos al men de eleccin de distribuciones.
42
Si ya ha elegido todo lo que necesita seleccione Exit con las echas, asegrese de que [ OK ] est seleccionado tambin y pulse Intro.
43
Esta opcin congura sysinstall para que use el modo Pasivo para todas las operaciones FTP. Esto permite al usuario pasar a travs de cortafuegos que no permiten conexiones entrantes a puertos TCP aleatorios. FTP via un proxy HTTP: Install from an FTP server through a http proxy, es decir Instalar desde un un servidor FTP via un proxy HTTP.
Esta opcin congura sysinstall para que use el protocolo HTTP (como si fuera un navegador web) para conectarse a un proxy en todas las operaciones FTP. El proxy traducir las peticiones del usuario de forma que pasarn a travs de un cortafuegos que no permita ningn tipo de conexiones FTP pero ofrezca un proxy HTTP. Tendr que congurar los datos del proxy adems de los del servidor FTP. Si quiere usar un servidor proxy FTP tendr que usar el nombre del servidor con el que realmente quiere conectar como nombre de usuario seguido de un signo @. Veamos un ejemplo. Quiere usted instalar desde ftp.FreeBSD.org a travs del servidor proxy FTP talycual.ejemplo.com, que escucha en el puerto 1024. Vaya al men opciones, ponga ftp@ftp.FreeBSD.org como nombre de usuario FTP, y su direccin de correo electrnico como contrasea. El medio de instalacin ser FTP (o FTP pasivo si el proxy lo permite) y la URL ftp://talycual.ejemplo.com:1234/pub/FreeBSD. Dado accede al directorio /pub/FreeBSD de ftp.FreeBSD.org a travs del proxy talycual.ejemplo.com puede usted instalar desde sta mquina, que ir descargando los cheros que necesite desde ftp.FreeBSD.org a medida que el proceso de instalacin los vaya requiriendo.
44
Seleccione [ Yes ] y pulse Intro. La instalacin tardar ms o menos tiempo segn la distribucin que haya elegido, el medio de instalacin y la velocidad del sistema. Se le irn mostrando mensajes durante el proceso para irle informando de cmo van las cosas. Cuando acabe la instalacin ver un mensaje como este:
Message Congratulations! You now have FreeBSD installed on your system. We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing: sysinstall . [ OK ] [ Press enter to continue ]
Es decir:
Mensaje Enhorabuena! Ha instalado FreeBSD en su sistema. Ahora terminaremos la configuracin del sistema. Si hay alguna opcin que no quiere configurar bastar con que elija No. Si en algn momento quiere regresar a este programa escriba sysinstall . [ OK ] [ Pulse Intro ]
Pulse Intro; pasaremos a acometer ciertas tareas posteriores a la instalacin. Si selecciona [ No ] y pulsa Intro la instalacin se detendr para evitar hacer ms modicaciones en su sistema. Ver el el siguiente mensaje.
45
Es decir:
Mensaje La instalacin ha finalizado con errores. Puede moverse por la pantalla de mensajes de depuracin de VTY1 tras pulsar la tecla de Bloqueo de Pantalla. Tambin puede elegir "No" en el prximo men y volver a los mens de instalacin y repetir cualquier operacin que haya fallado. [ OK ]
Este mensaje se ha generado porque no se ha instalado nada. Pulse Intro para volver al menn principal y salir de la instalacin.
Si quiere congurar dispositivos de red seleccione [ Yes ] y pulse Intro. Si no quiere seleccione [ No ].
46
Seleccione con las echas el interfaz de red que desea congurar y pulse Enter.
User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes [ No ]
En la red local del ejemplo el tipo de protocolo de Internet que haba (IPv4) pareca ms que suciente, as que se eligi [ No ]. Si puede conectar con alguna red IPv6 mediante un servidor RA elija [ Yes ] y pulse Intro. La bsqueda de servidores RA se har en unos instantes.
User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes [ No ]
Si no necesita DHCP seleccione [ No ] con las echas y pulse Intro. Si selecciona [ Yes ] ejecutar dhclient y, si ha funcionado, completar los datos de conguracin automticamente. Para ms informacin consulte la Seccin 29.10. La siguiente ilustracin muestra la conguracin de un dispositivo Ethernet en un sistema que cumplir las funciones de gateway en una red local.
47
Use el tabulador para ir pasando de un campo al siguiente una vez que los vaya rellenando: Host El nombre de la mquina; por ejemplo, k6-2.ejemplo.com. Dominio El nombre del dominio al que pertenece la mquina, en este caso ejemplo.com. GatewayIPv4 La direccin IP del sistema que reenvia paquetes a destinos fuera de la red local. Debe rellenar este campo si esta funcin la realiza una mquina que forme parte de la red. Djelo en blanco si el sistema es el enlace de su red con Internet. El gateway recibe tambin los nombres de puerta de enlace o ruta por omisin. Servidor de nombres Direccin IP de su servidor local de DNS. En la red del ejemplo no hay servidor DNS local as que se ha introducido la direccin IP del servidor DNS del proveedor de Internet: 208.163.10.2. Direccin IPv4 En este interfaz se usar la direccin IP 192.168.0.1 Mscara de red En esta red local se usa un bloque de redes de Clase C 192.168.0.0 - 192.168.0.255. La mscara de red es, por tanto, 255.255.255.0. Opciones adicionales de ifcong Cualquiera de las opciones que quiera agregar a su interfaz mediante ifconfig. En nuestro caso no haba ninguna. Utilice el tabulador para seleccionar [ OK ] cuando haya acabado y pulseIntro.
48
Seleccione [ Yes ] y pulse Enter si quiere conectar inmediatamente su sistema a la red mediante el o los interfaces que acaba de congurar, pero recuerde que an tendr que reiniciar la mquina.
Si el sistema har de enlace de la red local y reenviar paquetes entre otras mquinas elija [ Yes ] y pulse Intro. Si la mquina es un nodo de una red elija [ No ] y pulse Intro.
Si selecciona [ No ] varios servicios de la mquina, como telnetd y otros, no se activarn. Eso signica que los usuarios remotos no podrn acceder al sistema mediante telnet. Los usuarios locales, en cambio, podrn acceder a sistemas remotos mediante telnet. Dichos servicios pueden activarse en cualquier momento editando /etc/inetd.conf con el editor de texto que preera. Para ms informacin consulte la Seccin 29.14.1. Seleccione [ Yes ] si desea congurar estos servicios durante la instalacin. Se le mostrar el siguiente mensaje:
User Confirmation Requested The Internet Super Server (inetd) allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? [ Yes ] No
49
Es decir:
Peticin de confirmacin del usuario El Super Servidor de Internet (inetd) le permite activar diversos servicios sencillos de Internet, como finger, ftp y telnetd. Si activa tales servicios puede sobreexponer su sistema al exterior, lo que puede incrementar el riesgo de tener problemas de seguridad. Dicho esto ?desea activar inetd? [ Yes ] No
Si selecciona [ Yes ] podr aadir servicios borrando caracteres # al comienzo de las lneas correspondientes. Figura 2-29. Edicin de inetd.conf
Una vez que haya aadido los servicios que quiera en el sistema pulse Esc y ver un men en el que se le preguntar si quiere guardar los cambios.
50
Captulo 2. Instalacin de FreeBSD Si selecciona [ Yes ] activar sshd(8), el dmon de OpenSSH. De este modo ser posible el acceso remoto y seguro al sistema. Para ms informacin sobre OpenSSH visite Seccin 14.11.
2.10.5.1. Rechazar el acceso al sistema mediante FTP annimo si acepta la respuesta por omisin ([ No ]) y pulsa Intro tenga en cuenta que los usuarios que tengan cuenta en la mquina podrn seguir accediendo al sistema.
2.10.5.2. Aceptar el acceso al sistema mediante FTP annimo Si decide aceptar conexiones FTP annimas cualquiera podr conectarse al sistema. Antes de activar esta opcin debera meditar sobre las implicaciones de seguridad de esa decisin. Para ms informacin sobre la seguridad y FreeBSD consulte el Captulo 14. Si ha decidido activar el FTP annimo seleccione con las echas [ Yes ] y pulse Intro. Ver la siguiente pantalla (o una muy similar):
This screen allows you to configure the anonymous FTP user. The following configuration values are editable: UID: The user ID you wish to assign to the anonymous FTP user. All files uploaded will be owned by this ID. Which group you wish the anonymous FTP user to be in.
Group:
FTP Root Directory: Where files available for anonymous FTP will be kept. Upload subdirectory: Where files uploaded by anonymous FTP users will go.
Es decir:
En esta pantalla puede configurar el usuario de FTP annimo. Puede editar los siguientes valores de la configuracin:
51
Group:
FTP Root Directory: Dnde se guardarn contenidos para los usuarios annimos. Upload subdirectory: Dnde se guardarn los ficheros que suban los usuarios de FTP annimo.
Por omisin el directorio raz del ftp ser /var. Si no hay sitio suciente para lo que prevea que va a necesitar puede usar /usr; puede poner el Directorio Raz de FTP en /usr/ftp. Cuando haya terminado con la conguracin pulse Intro.
User Confirmation Requested Create a welcome message file for anonymous FTP users? [ Yes ] No
Si selecciona [ Yes ] y pulsa Intro arrancar automticamente un editor y podr crear un mensaje que ver los usuarios de FTP annimo al conectarse a la mquina. Figura 2-30. Edicin del mensaje de bienvenida de FTP
Vemos en accin un editor de texto llamado ee. Puede modicar el mensaje ahora mismo o hacerlo en cualquier otro momento con el editor de texto que preera. Observe el chero y su ubicacin en la parte baja de la pantalla.
52
Captulo 2. Instalacin de FreeBSD Pulse Esc, aparecer una ventana otante con la opcin por omisin de to a) leave editor (salir del editor). Pulse Intro si quiere salir y seguir con lo que estaba haciendo. Pulse Intro de nuevo para guardar los cambios que hubiera hecho.
Si no tiene necesidad de usar un servidor NFS seleccione [ No ] y pulse Intro. Si ha elegido [ Yes ] ver un mensaje emergente indicando que hay que crear el chero exports.
Message Operating as an NFS server means that you must first configure an /etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press [Enter] now to invoke an editor on /etc/exports [ OK ]
Es decir:
Mensaje Hacer funcionar un servidor NFS implica que tendr que configurar un fichero /etc/exports para indicar qu hosts estarn autorizados a acceder de qu manera a sus sistemas de ficheros locales. Pulse [Intro] para abrir /etc/exports en un editor [ OK ]
Pulse Intro para seguir adelante. Se abrir un editor de texto gracias al cual se podr editar y crear el chero exports.
53
Puede editar el chero ahora mismo o ms tarde con el editor de texto que preera. Observe que el nombre del chero y su ubicacin aparecen en la parte de abajo de de la pantalla. Pulse Escape; aparecer un mensaje emergente que por omisin le ofrecer a) leave editor (es decir, salir del editor). Pulse Intro para salir del editor y seguir adelante.
2.10.6.2. Cliente NFS El cliente NFS permite que su mquina pueda acceder a servidores NFS.
User Confirmation Requested Do you want to configure this machine as an NFS client? Yes [ No ]
Utilice las echas para elegir si quiere o no disponer de cliente NFS (respectivamente con [ Yes ] y [ No ] y pulse Intro.
54
Captulo 2. Instalacin de FreeBSD Figura 2-32. Opciones de conguracin de la consola del sistema
Una opcin que suele elegirse es el uso del salvapantallas. Elija Saver y luego pulse Intro. Figura 2-33. Opciones del salvapantallas
Desplcese arriba y abajo con las echas por la lista de salvapantallas y elija el que preera pulsando Intro sobre l. Se le mostrar de nuevo el men de conguracin de la consola. El intervalo por defecto es de 300 segundos. Si quiere cambiarlo seleccione Saver otra vez. Busque Timeout en el men de opciones del salvapantallas y pulse Intro. Aparecer un mensaje en pantalla:
55
Asigne el retardo del salvapantallas a su gusto, seleccione [ OK ] y pulse Intro para volver al men de conguracin de la consola del sistema. Figura 2-35. Salida del men de conguracin de la consola del sistema
Seleccione Exit y pulse Intro para seguir adelante con la conguracin necesaria tras la instalacin.
56
Seleccione [ Yes ] y pulse Intro. Vamos a congurar la zona horaria del sistema. Seleccione [ Yes ] y pulse Intro.
User Confirmation Requested Is this machines CMOS clock set to UTC? If it is set to local time or you dont know, please choose NO here! Yes [ No ]
Seleccione [ Yes ] o [ No ] segn est congurado el reloj del sistema y pulse Intro. Figura 2-36. Eleccin de regin
57
Elija el pas adecuado con las echas y pulse Intro. Figura 2-38. Eleccin de zona horaria
Conrme si la abreviatura de la zona horaria es la correcta. Cuando todo est correcto pulse Intro y siga adelante.
58
Si selecciona [ Yes ] y pulsa Intro podr ejecutar software Linux en FreeBSD. La instalacin aadir los paquetes necesarios para poder tener compatibilidad binaria con Linux. Si realiza la instalacin por FTP la mquina necesitar conectarse a Internet. A veces los servidores ftp no tienen todas las distribuciones, de forma que si no puede instalar la distribucin de compatibilidad con Linux no se preocupe, puede probar con otro servidor o instalarla ms tarde.
Seleccione [ Yes ] si tiene un ratn que no sea USB o por el contrario seleccione [ No ] si tiene un ratn USB. Despus pulse Intro. Figura 2-39. Elija el protocolo que usa el ratn
59
Captulo 2. Instalacin de FreeBSD Figura 2-40. Ajuste del protocolo del ratn
En el ejemplo se ha usado un ratn PS/2, as que Auto era correcto. Para cambiar el protocolo use las echas para moverse por el men y elegir otra opcin. Para salir seleccione [ OK ] y pulse Intro. Figura 2-41. Conguracin del puerto del ratn
60
Captulo 2. Instalacin de FreeBSD Figura 2-42. Conguracin del puerto del ratn
El sistema de ejemplo tiene un ratna PS/2, de forma que la conguracin por omisin basta. Si quiere modicarla utilice las echas y despus pulseIntro. Figura 2-43. Arranque del dmon del ratn
Por ltimo, utilice las echas para elegir Enabley pulse Intro; as se activa y prueba el dmon del ratn.
61
Captulo 2. Instalacin de FreeBSD Figura 2-44. Prueba del dmon del ratn
Mueva el ratn un poco por la pantalla hasta asegurarse de que el cursor responde adecuadamente. Si todo es correcto seleccione [ Yes ] y pulse Intro. Si hay algo que no funcione correctamente seleccione [ No ] e intntelo con otras opciones de conguracin. Seleccione Exit y pulse Intro para volver a la conguracin del sistema.
62
Los packages presentes en el medio de instalacin que est accesible en cada momento son los nicos que se pueden instalar. Todos los packages disponibles en el medio se mostrarn al seleccionar la categora All. Elija una categora y pulse Intro. Al seleccionar una categora aparecer un men con los paquetes disponibles existentes en la misma: Figura 2-46. Seleccin de packages
Hemos elegido la shell bash. Seleccione tantos packages como quiera instalar y pulse Espacio. Se mostrar una breve descripcin de cada package en la esquina inferior izquierda de la pantalla. Pulsando el Tabulador desplazar el cursor entre el ltimo package que haya seleccionado, [ OK ] y [ Cancel ]. Cuando haya seleccionado todos los packages que quiera instalar pulse Tabulador una sola vez para que el cursor pase a [ OK ] y pulse Intro, lo que le llevar al men de seleccin de packages.
63
Captulo 2. Instalacin de FreeBSD Las echas izquierda y derecha pueden usarse para mover el cursor entre [ OK ] y [ Cancel ]. Use esto para seleccionar [ OK ] y pulsar Intro para volver al men de seleccin de packages. Figura 2-47. Instalacin de packages
Utilice el tabulador y las echas para seleccionar [ Install ] y pulse Intro. Se le pedir que conrme que quiere instalar packages: Figura 2-48. Conrmacin previa a la instalacin de packages
Si selecciona [ OK ] y pulsa Intro comenzar la instalacin de packages. Irn apareciendo mensajes relacionados con los diversos procesos de instalacin hasta que se cumplan todos. Est atento por si aparecieran mensajes de error. Tras la instalacin de packages nos quedan unos toques nales a la conguracin. Si no ha elegido ningn package y quiere regresar al men de conguracin seleccione Install de todos modos.
64
Es decir:
Peticin de confirmacin del usuario ?Quiere aadir algn usuario al sistema? Le sugerimos que aada al menos uno para usted puesto que trabajar como "root" es peligroso (es fcil hacer algo con consecuencias en todo el sistema). [ Yes ] No
Seleccione [ Yes ] y pulse Intro para aadir un usuario. Figura 2-49. Seleccin de Aadir un usuario
65
A medida que vaya seleccionando los campos ayudndose del Tabulador se le irn mostrando las siguientes descripciones en la parte baja de la pantalla: Login ID El nombre del usuario (obligatorio). UID El ID numrico del usuario Djelo en blanco si quiere el que sistema lo asigne automticamente. Group El grupo al que pertenecer el usuario. Djelo en blanco si quiere que el sistema lo asigne automticamente. Password La contrasea del usuario. Rellene este campo con mucho cuidado. Full name El nombre completo del usuario (o un comentario descriptivo. Member groups Los grupos a los que este usuario pertenece, es decir, de los que hereda sus derechos de acceso. Home directory El directorio home del usuario; djelo en blanco si quiere que el sistema lo asigne automticamente. Login shell La shell con la que el usuario acceder al sistema. Djela en blanco si le sirve /bin/sh, la shell por omisin.
66
Captulo 2. Instalacin de FreeBSD En nuestro ejemplo no se eligi /bin/sh sino /usr/local/bin/bash, para lo cual hubo que instalar previamente la shell bash como package. No intente usar una shell que no existe o no podr acceder al sistema con ese usuario. La shell ms habitual en el mundo BSD es /bin/tcsh, la C shell. El usuario se aadi tambin al grupo wheel para que pueda convertirse en superusuario con privilegios de root. Cuando haya terminado pulse [ OK ] y volver al men de gestin de grupos y usuarios. Figura 2-51. Salir de la gestin de usuarios y grupos
Los grupos tambin pueden aadirse en este momento si fuera necesario. Tambin puede hacerse desde sysinstall una vez culminada la instalacin. Cuando haya acabado de aadir usuarios seleccione Exit con las echas y pulse Intro y siga con la instalacin.
Es decir:
Mensaje Debe asignar la contrasea del administrador del sistema. Esta es la contrasea que usar cuando acceda al sistema como "root". [ OK ] [ Pulse Intro ]
67
Captulo 2. Instalacin de FreeBSD Pulse Intro y asgnele una contrasea a root. Tendr que escribir la contrasea correctamente dos veces. No hay necesidad de decirle que es importante que recuerde esa contrasea.
New password: Retype new password :
La instalacin proseguir una vez que introduzca la contrasea correctamente dos veces.
Seleccione [ No ] con las echas y pulse Intro para volver al men principal de la instalacin. Figura 2-52. Salir de la instalacin
Seleccione [X Exit Install] con las echas y pulse Intro. Se le pedir que conrme que quiere salir de la instalacin:
User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies/CDs/DVDs from the drives). [ Yes ] No
Es decir:
68
Seleccione [ Yes ] y extraiga el disquete si ha arrancado desde oppy. La unidad CDROM est bloqueada hasta que la mquina comience a reiniciarse. La unidad CDROM se desbloquea y (actuando con agilidad felina) puede extraerse el CDROM. El sistema reiniciar. Est atento por si aparece algn mensaje de error. Seleccione [ Yes ] y extraiga el disquete si ha arrancado desde oppy. La unidad lectora de CDROM est bloqueada hasta que la mquina comience a reiniciarse. La unidad CDROM se desbloquea y (actuando con agilidad felina) puede extraerse el CDROM. Si apareciera algn error durante el arranque consulte la Seccin 2.10.16.
69
La primera opcin, Interfaces, la hemos visto en la Seccin 2.10.1, as que podemos ignorarla. Si selecciona la opcin AMD aadir al sistema la aplicacin montaje automtico de dispositivos de BSD. Suele usarse junto con el protocolo NFS protocol (ver ms adelante) para automatizar el montaje de sistemas de cheros remotos. No es necesario que congure nada. La siguiente opcin es AMD Flags. Si la selecciona ver un men emergente que le requerir parmetros especcos de AMD. El men dispone ya de un conjunto de opciones por omisin:
-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map
La opcin -a ja el punto de montaje por omisin, en este caso /.amd_mnt. La opcin -l indica el log por omisi, aunque si usa syslogd todos los datos de log se enviarn al dmon de logs del sistema. El directorio /host se usa para montar sistemas de cheros exportados desde una mquina remota, mientras que el directorio /net se usa para montar sistemas de cheros exportados desde una direccin IP. El chero /etc/amd.map dene las opciones de exportacin que AMD exporta por omisin. La opcin Anon FTP permite conexiones FTP annimas. Seleccione esta opcin si quiere utilizar la mquina como servidor servidor FTP annimo. Tenga muy en cuenta los riesgos de seguridad que conlleva esta opcin. Se le ofrecer otro men en el que se explican en profundidad los riesgos de seguridad y la conguracin. El men de conguracin Gateway preparar la mquina para que cumpla las funciones de pasarela, tal y como se ha explicado previamente. Puede utilizarlo tambin para desactivar la opcin Gateway si la seleccionn sin querer durante la instalacin. La opcin Inetd permite desactivar el dmon inetd(8). La opcin Mail se usa para congurar el MTA (de Mail Transfer Agent, agente de transferencia de correo) del sistema. Si selecciona esta opcin llegar al siguiente men:
70
Aqu se le pide que elija qu MTA quiere instalar en su sistema. Un MTA no es otra cosa que un servidor de correo que entrega correo electrnico a los usuarios del sistema o los que acceden a travs de Internet. Si selecciona Sendmail instalar el clebre sendmail, el MTA de FreeBSD por omisin. La opcin Sendmail local har que sendmail sea el MTA del sistema pero desactivar la capacidad de recibir correo entrante desde Internet. Las dems opciones, Postx y Exim son en el fonodo similares a Sendmail. Ambas aplicaciones gestionan correo aunque hay usuarios que los elegiran como su MTA antes que sendmail. Tras elegir un MTA (o si ha elegido no usar ninguno) el men de conguracin de red nos muestra la siguiente opcin:NFS client. La opcin NFS client congura el sistema para comunicarse con servidores NFS. Un servidor NFS permite que, mediante el uso del protocolo NFS, otras mquinas de la red puedan acceder a sus sistemas de cheros. Si no hay ms mquinas en su red puede dejar la opcin sin seleccionar. El sistema puede necesitar ms conguracin; consulte la Seccin 29.6 para ms informacin sobre cmo congurar el cliente y el servidor. La siguiente opcin es NFS server, que le permitir congurar su sistema como servidor NFS. Con esta opcin aadir la informacin necesaria para el arranque de RPC, los servicios de llamada de procedimientos remotos. RPC se usa para coordinar conexiones entre sistemas y programas. La siguiente opcin es Ntpdate, la sincronizacin de la hora. Al seleccionarla ver un men como este:
71
Elija en el men el servidor ms cercano al lugar donde est la mquina. De este modo la sincronozacin ser ms precisa, puesto que un servidor ms lejano puede padecer de conexiones con ms latencia. La siguiente opcin es PCNFSD. Esta opcin instalar el package net/pcnfsd desde la coleccin de Ports. Es una aplicacin muy til que da servicios de autenticacin NFS a sistemas que son incapaces de tenerlos por s mismos, como por ejemplo el sistema operativo MS-DOS de Microsoft. Si usa las echas podr ver ms opciones: Figura 2-56. Segundo nivel de conguracin de red
Las aplicaciones rpcbind(8), rpc.statd(8) y rpc.lockd(8) utilities se utilizan en las llamadas de procesos remotos (RPC). rpcbind gestiona la comunicacin entre servidores y clientes NFS; los servidores NFS lo necesitan para poder funcionar correctamente. El dmon rpc.statd se comunica con el dmon rpc.statd de otras mquinas para facilitar seguimiento de estado. La informacin de estado se deposita por omisin en /var/db/statd.status. La siguiente opcin que vemos es rpc.lockd; si se selecciona facilita servicios de bloqueo de cheros. Se suele usar
72
Captulo 2. Instalacin de FreeBSD conjuntamente con rpc.statd para monitorizar qu mquina pide bloqueos y con qu frecuencia. Si bien es cierto que estas dos timas opciones son fantsticas para depuracin, tambin lo es que no son necesarias para que clientes y servidores NFS funcionen correctamente. El siguiente elemento de la lista es Routed, un dmon de encaminamiento. routed(8) gestiona tablas de rutas, encuentra routers multicast y, bajo peticin, facilita una copia de la tabla de rutas a cualquier mquina conectada fsicamente a la red. Suele usarse principalmente en mquinas que hacen funciones de pasarela de una red local. Si la selecciona ver un men en el que se le requerir que indique la ubicacin de la aplicacin. Por omisin ya est congurada, as que basta que la conrme pulsando Intro key. Se le presentar un men ms, pidiendole esta vez parmetros que quiera proporcionarle a routed. Por omisin -q estar ya dispuesto y debera aparecer as en pantalla. La siguiente opcin que aparece es Rwhod; si la selecciona arrancar el dmon rwhod(8) durante el arranque del sistema. La aplicacin rwhod enva mensajes del sistema (en broadcast) peridicamente a travs de la red, o si est en modo consumer los va recogiendo. Tiene ms informacin en las pginas de manual de ruptime(1) y rwho(1). La siguiente opcin del men est relacionada con el dmon sshd(8). Se trata del servidor de shell segura de OpenSSH y le recomendamos encarecidamente su uso en lugar de los servidores telnet y FTP. El servidor sshd se usa para crear una conexin segura de una mquina a otra mediante conexiones cifradas. La ltima opcin es TCP Extensions, que activa las extensiones TCP denidas en las RFC 1323 y RFC 1644. En algunas mquinas puede acelerar conexiones, pero tambin puede haber conexiones que se pierdan. No se recomienda su uso en servidores, pero puede ser de utilidad en mquinas aisladas. Una vez congurados los servicios de red, vaya al principio del men ( X Exit)a o vuelva a sysinstall seleccionando dos veces X Exit y despus [X Exit Install].
73
74
75
La generacin de claves RSA y DSA puede llevar su tiempo en mquinas lentas. Esto solamente sucede en el primer arranque despus de la instalacin. Los dems arranques sern ms rpidos. Si ya hay un servidor X congurado y ha elegido un escritorio por omisin puede arrancarlo tecleando startx en la shell.
2.10.16.2. El arranque de FreeBSD/alpha Una vez acabado el proceso de instalacin podr arrancar FreeBSD tecleando algo muy parecido a esto en el prompt de SRM: Once the install procedure has nished, you will be able to start FreeBSD by typing something like this to the SRM prompt:
>>>BOOT DKC0
Esto hace que el rmware arranque desde el disco especicado. Para que FreeBSD arranque automticamente de ah en adelante utilice lo siguiente:
>>> >>> >>> >>> SET SET SET SET BOOT_OSFLAGS A BOOT_FILE BOOTDEF_DEV DKC0 AUTO_ACTION BOOT
Los mensajes de arranque sern muy similares (aunque no iguales) a los que aparecen durante el arranque de FreeBSD en i386.
Una vez que vea el mensaje de Please press any key to reboot puede apagar la mquina. Si pulsa cualquier tecla en lugar de apagar la mquina el sistema reiniciar.
76
Captulo 2. Instalacin de FreeBSD Tambin puede usar la combinacin de teclas Ctrl+Alt+Supr para reiniciar el sistema, aunque no le recomendamos que lo haga durante el funcionamiento normal del sistema.
77
El directorio /dos debe existir previamente o no funcionar. Tiene todos los detalles del formato correcto de las entradas en /etc/fstab en fstab(5). Veamos ahora un ejemplo de llamada de mount(8) a un sistema de cheros MS-DOS:
# mount_msdos /dev/ad0s1 /mnt
En el ejemplo el sistema de cheros MS-DOS est en la primera particin del primer disco duro. La situacin en su sistema puede ser diferente: compruebe la salida de dmesg y mount. Deberan darle suciente informacin como para darle una idea completa de la estructura de particiones en la que est trabajando.
Nota: FreeBSD suele numerar las las slices (que es como decir los sistemas de cheros MS-DOS) de un modo distinto al de otros sistemas operativos. Ms concretamente, las particiones extendidas de MS-DOS suelen tener un nmero mayor de slice que las particiones primarias de MS-DOS. fdisk(8) le ser de ayuda a la hora de determinar qu slices pertenecen a FreeBSD y cules a otros sistemas operativos.
Las particiones NTFS se montan de una forma muy similar gracias a mount_ntfs(8).
Tenga en cuenta que tendra que volver a hacerlo cada vez que el sistema arranque, as que aada hint.acpi.0.disabled="1" al chero /boot/loader.conf. Tiene ms informacin sobre el cargador de arranque en Seccin 12.1.
2. Cuando voy a arrancar FreeBSD por primera vez despus de la instalacin el kernel carga y prueba mi hardware, pero se detiene y muestra mensajes como este:
changing root device to ad1s1a panic: cannot mount root
?Cul es el problema? ?Qu es lo que signica este mensaje de bios_drive:interface(unit,partition)kernel_name que aparece en la ayuda del arranque?
Hay un problema que ya lleva tiempo con nosotros cuando el disco desde el que se arranca no es el primero en el sistema. La BIOS utiliza un esquema de numeracin distinto al que usa FreeBSD y a veces saber qu nmero es el
78
Captulo 2. Instalacin de FreeBSD que corresponde a qu resulta un poco complicado. Cuando el disco de arranque no sea el primer disco del sistema FreeBSD necesitar un poco de ayuda para poderlo encontrar. Puede haber dos escenarios donde suceda esto y en ambos hay que decirle a FreeBSD, dnde encontrar el sistema de cheros raz. Esto se hace especicando el nmero de disco segn la BIOS, el tipo de disco y el nmero de disco que FreeBSD le dar a ese disco. El primer caso es cuando hay dos discos IDE, ambos congurados como maestros de sus respectivos buses IDE y quiere usted arrancar desde el segundo disco. La BIOS dice que son el disco 0 y el disco 1, mientras que FreeBSD los ve como ad0 y ad2. FreeBSD est en el disco BIOS 1, de tipo ad y el nmero de disco FreeBSD es el 2, as que habr que decir lo siguiente:
1:ad(2,a)kernel
Tenga en cuenta que si tiene un disco esclavo en el bus primario esto no es necesario (de hecho es un error hacerlo). El segundo escenario es el arranque desde un disco SCSI teniendo uno o ms discos IDE en el sistema. En este caso el nmero de disco FreeBSD es ms bajo que el nmero de disco BIOS. Si tiene dos discos IDE adems del disco SCSI, el disco SCSI es el disco 2 de BIOS, del tipo da y para FreeBSD es el disco nmero disk number 0, so 0, as que tendr que usar
2:da(0,a)kernel
para decirle a FreeBSD que quiere arrancar desde el disco 2 de BIOS, que es el primer disco SCSI del sistema. Si solamente tiene un disco IDE tendr que poner 1:. Una vez que sabe con exactitud los valores que debe usar pngalos exactamente como los ha tecleado en /boot.config utilizando el editor de texto que preera. Salvo que se le diga lo contrario FreeBSD utilizar el contenido de este chero decidirel comportamiento por omisin del prompt de boot: prompt.
3. Cuando voy a arrancar desde disco duro por primera vez tras la instalacin de FreeBSD el prompt del gestor de arranque muestra F? en el men de arranque y no pasa de ah. La geometra del disco duro se congur mal cuando se utiliz el editor de particiones durante la instalacin. Ejecute el editor de particiones e introduzca la geometra del disco correctamente. Tendr que reinstalar FreeBSD completamente dado que habr cambiado la geometra del disco. Si no encuentra la manera de saber cul es la geometra correcta pruebe con esto: Cree una pequea particin DOS al principio del disco e instale FreeBSD en el espacio de disco inmediatamente contiguo. El programa de instalacin ver la particin DOS e intentar deducir la geometra correcta a partir de ah; esto suele funcionar. Le mostramos otra sugerencia que, aunque no es recomendable de seguir, se muestra para que sirva de referencia:
Si lo que est instalando es un servidor o mquina de escritorio dedicado a FreeBSD y no le preocupa que en el futuro cercano tenga que mantener la convivencia con DOS, Linux u otro sistema operativo siempre tiene la opcin de utilizar el disco entero (la opcin A en el editor de particiones). Es una opcin no estndar gracias a la cual FreeBSD ocupa todo el disco, desde el primer sector al ltimo. De este modo nos olvidamos de todos los problemas relacionados con la geometra de disco, pero le obliga a no poder instalar ningn otro sistema operativo aparte de FreeBSD en ese disco.
79
Captulo 2. Instalacin de FreeBSD 4. El sistema encuentra mi tarjeta de red ed(4) pero me dan errores de timeout. Lo ms probable es que su tarjeta est utilizando una IRQ distinta de la que debera estar usando segn lo que aparece en /boot/device.hints . El controlador ed(4) no utiliza conguracin does not use the soft por omisin (es decir, valores que se le suministren mediante EZSETUP bajo DOS) pero como casi todo en esta vida hay solucin. En este caso, de hecho, hay dos. Ponga el jumper de la tarjeta en una conguracin dura (es posible que tenga que modicar la conguracin del kernel debido a esto) o modique el valor de la IRQ con el valor -1 del siguiente modo: by setting the hint hint.ed.0.irq="-1". As le dir al kernel que utilice la conguracin suave. Hay otra posibilidad, que es cuando su tarjeta est utilizando la IRQ 9, que suele compartir funciones con la IRQ 2, circunstancia que es con frecuencia causa de problemas (sobre todo cuando entra en escena una tarjeta VGA que utiliza justamente la IRQ 2). Le recomendamos encarecidamente que haga todo lo posible para no utilizar ni la IRQ 2 ni la IRQ 9.
Aqu es donde ensearemos al disquete a arrancar en la consola serie. Debe crearse un chero llamado boot.config que contenga lo siguiente: /boot/loader -h. Con esto le pasamos cargador de arranque (el bootloader) el parmetro necesario para que intente arrancar en una consola serie.
# echo "/boot/loader -h" > boot.config
80
Y podemos extraer el disquete de la unidad. 2. Conexin del cable modem Tiene que conectar un cable mdem nulo entre dos mquinas. Un cable serie normal no funcionar, necesitar un cable mdem nulo porque tiene cruzado alguno de los hilos. 3. Arranque de la instalacin Podemos iniciar la instalacin. Introduzca el disquete kern.flp en la unidad de disquetes de la mquina en la que quiere hacer la instalacin y encienda la mquina. 4. La conexin a su mquina sin teclado ni monitor Conctese usando cu(1):
# cu -l /dev/cuaa0
?Ya est! Desde este momento ya puede controlar su mquina sin monitor ni teclado desde la sesin cu que acaba de abrir. El sistema le pedir que introduzca el disco kern1.flp y despus tendr que elegir qu tipo de terminal va a utilizar. Elija la consola en color de FreeBSD y buena suerte con la instalacin.
Es posible que tengaque crear su propio medio de instalacin de FreeBSD. Puede tratarse de un medio fsico como una cinta o una fuente para que sysinstall pueda obtener los cheros que vaya necesitando, como un sitio FTP local, o bien puede tratarse de una particin MS-DOS. Por ejemplo:
Tiene muchas mquinas conectadas a una red local y un slo disco FreeBSD. Quiere crear un sitio FTP local con el contenido del disco FreeBSD y que desde l sus mquinas obtengan los cheros en lugar de tener que conectarse a Internet. Tiene un disco FreeBSD y FreeBSD no reconoce su unidad CD/DVD pero MS-DOS/Windows s. Quiere copiar los cheros de instalacin de FreeBSD a una particin DOS en mismo sistema y luego instalar FreeBSD usando esos cheros. El sistema en el que quiere instalar FreeBSD no tiene unidad CD/DVD ni tarjeta de red pero puede conectar un cable paralelo o un cable serie Laplink a una computadora que s que tiene. Quiere crear una cinta desde la que se pueda instalar FreeBSD.
81
prxima. Sustituya arquitectura y versin por lo que corresponda. Ese directorio contendr normalmente las siguientes imgenes: Tabla 2-4. Nombres y funciones de las imgenes de FreeBSD 6.X and 7.X Nombre
versin-RELEASE-arch-bootonly.iso
Contenido Todo lo necesario para arrancar un kernel de FreeBSD y ejecutar la interfaz de instalacin. Los cheros que vayan haciendo falta tendrn que irse descargando por FTP o por algn otro medio. Todo lo necesario para instalar AFreeBSD y un live lesystem, que le ser muy til (conjuntamente con la aplicacin Repair de sysinstall. Todas las aplicaciones que puedan caber en un disco. La documentaciN de FreeBSD.
versin-RELEASE-arch-disc1.iso
versin-RELEASE-arch-disc2.iso versin-RELEASE-arch-docs.iso
Descargue la imagen ISO de arranque (si existe para su plataforma) o la imagen del disco uno. No descargue ambas, puesto que el disco uno contiene todo lo que hay en la imagen ISO de arranque. Utilice la imagen ISO de arranque si su acceso a Internet es barato. Con ella podr instalar FreeBSD e instalar todo tipo de software descargndolo como paquetes/ports (consulte el Captulo 4) cuando lo precise. Utilice la imagen del disco uno si quiere disponer en el propio disco de una seleccin bastante completa de software. Si tiene acceso de alta velocidad a Internet las dems imgenes de disco son tiles pero no esenciales. 2. Escribir los CD Si va a grabar los CD en un sistema FreeBSD consulte la Seccin 18.6 (en particular la Seccin 18.6.3 y la Seccin 18.6.4). Las imgenes se hacen en un formato ISO estndar; si va a grabarlas en cualquier otra plataforma no debera tener problemas para hacerlo cualquiera que sea la aplicacin que use para grabar CD.
Nota: Si lo que quiere hacer es crear una release personalizada de FreeBSD consulte el artculo Release Engineering (http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng).
82
2.
Cree una cuenta apta para FTP annimo en /etc/passwd editando /etc/passwd con vipw(8). Adale lo siguiente:
ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
3.
Ahora cualquier mquina capaz de conectarse a su sistema a travs de una red puede elegir como medio de instalacin FTP y escribir ftp://su mquina tras seleccionar Other en el men de sitios FTP.
AvisoAcabamos de exponer una buena solucin para usar en un sistema de su propia red y que adems est protegido por un cortafuegos. Si ofrece servicios FTP a mquinas de Internet (y no de su red local) expone su sistema a caer bajo la atencin de crackers y otras variedades de indeseable. Le recomendamos encarecidamente que siga a rajatabla polticas sensatas de seguridad.
Nota: Tendr que usar fd0.1200 y floppy5 si usa discos de 5.25" y 1.2 MB.
83
Captulo 2. Instalacin de FreeBSD Ahora puede montarlos y escribir en ellos igual que en cualquier otro sistema de cheros del sistema. Tras el formateo de los disquetes pasamos a llenarlos. Los cheros necesarios para crear la distribucin se dividen en partes de tamao regular de modo que cinco de ellas entren en otros tantos disquetes de 1.44 MB. Empaquete tantos cheros como pueda en cada uno hasta que tenga todas las distribuciones que necesita listas para pasar a los disquetes. Cada distribucin debera ir en un subdirectorio del oppy, por ejemplo a:\bin\bin.aa, a:\bin\bin.ab, etc. Una vez en el men de seleccin de medio de instalacin elija Floppy y siga las instrucciones.
Se ha asumido que C: es donde tiene espacio libre y E: es donde tiene montada su unidad CDROM. Si no tiene unidad CDROM puede descargar la distribucin desde ftp.FreeBSD.org (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/9.1-RELEASE/). Cada distribucin dispone de su propio directorio; por ejemplo, la distribucin base est en el directorio9.1/base/ (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/9.1-RELEASE/base/). La nica distribucin imprescindible es BIN. Guarde esta y todas las distribuciones que quiera instalar desde una particin MS-DOS bajo c:\freebsd.
Cuando est preparando la instalacin tenga la precaucin de dejar sitio suciente en algn directorio temporal (accesible en ese momento) para dejar todos los cheros que hubiera en la cinta de instalacin. A causa del acceso secuencial propio del diseo de las cintas este mtodo de instalacin requiere un poco de almacenamiento temporal.
Nota: Recuerde que antes de arrancar desde el disquete de arranque la cinta debe estar en la unidad . La prueba de hardware de la instalacin no encontrara la cinta.
84
85
3.1. Sinopsis
El siguiente captulo comprende la funcionalidad y rdenes bsicas del sistema operativo FreeBSD. Gran parte de este material es relevante para cualquier sistema operativo tipo UNIX. Puede saltarse este captulo si considera que ya conoce el funcionamiento de UNIX. Si no tiene experiencia previa con FreeBSD debera leer este captulo con mucha atencin. Despus de leer este captulo, usted sabr:
Cmo usar las consolas virtuales de FreeBSD. Cmo funcionan los permisos de chero UNIX en relacin con las banderas de chero en FreeBSD. La disposicin de sistemas de cheros por omisin en FreeBSD. La organizacin de disco de FreeBSD. Cmo montar y desmontar sistemas de cheros. Qu son los procesos, dmons y seales. Qu es una shell, cmo modicar sus variables de entorno por omisin. Cmo utilizar editores de texto bsicos. Qu son los dispositivos y nodos de dispositivos. Qu formato binario se usa en FreeBSD. Cmo buscar informacin en las pginas de manual.
3.2.1. La consola
Si no ha congurado FreeBSD para ejecutar automticamente un entorno grco en el arranque, el sistema le presentar un prompt de entrada despus del arranque, inmediatamente despus de que los scripts de inicio terminen de ejecutarse. Ver algo similar a esto:
Additional ABI support:. Local package initialization:. Additional TCP options:. Fri Sep 20 13:01:06 EEST 2002
86
Los mensajes pueden ser un poco diferentes en su sistema, pero ver algo similar. Las ltimas dos lneas son las que nos interesan por el momento. La penltima lnea dice:
FreeBSD/i386 (pc3.ejemplo.org) (ttyv0)
Esta lnea contiene informacin acerca del sistema que acaba de arrancar. Esta usted ante una consola FreeBSD que se ejecuta en un procesador Intel o compatible de la arquitectura x861. El nombre de esta mquina (todas las mquinas UNIX tiene un nombre) es pc3.ejemplo.org, y usted est ahora ante su consola de sistema (la terminal ttyv0). Para acabar, la ltima lnea siempre es:
login:
Este es el lugar donde se usted teclear su nombre de usuario para entrar en FreeBSD. La siguiente seccin describe cmo hacerlo.
En este ejemplo vamos a asumir que su nombre de usuario es john. Tecle john en el prompt y pulse Intro. Debera presentrsele un prompt donde introducir una contrasea:
login: john Password:
Tecle ahora la contrasea de john y pulse Enter. La contrasea no se muestra en pantalla, pero no debe preocuparse por ello. Esto se hace as por motivos de seguridad. Si ha tecleado su contrasea correctamente ya est usted en un sistema FreeBSD, listo para probar todas las rdenes disponibles. Ver el MOTD (mensaje del da) seguido por un prompt (un caracter #, $ o %). Esto conrma que ha validado con xito su usuario en FreeBSD.
87
Consulte ttys(5) si quiere una descripcin detallada de cada columna en este chero y todas las opciones que puede usar para congurar las consolas virtuales.
88
Nota: Tal y como indican los comentarios por encima de la lnea console, puede editar esta lnea y cambiar secure por insecure. Si lo hace, cuando FreeBSD arranque en modo monousuario el sistema le pedir la contrasea de root. Tenga cuidado si cambia esto a insecure. Si olvida la contrasea de root arrancar en modo monousuario ser con seguridad ms complicado. Sigue siendo posible, pero ser un poco difcil para alguien que no est familiarizado con le proceso de arranque de FreeBSD y los programas involucrados en dicho proceso.
Una vez recompilado el kernel con esas dos opciones en l determine qu modos de video admite su hardware; para ello use vidcontrol(1). Con lo siguiente le mostrar una lista de modos de video soportados:
# vidcontrol -i mode
La salida de esta orden es una lista de los modos de que admite su tarjeta. Para elegir uno de ellos tendr que ejecutar vidcontrol(1) en una consola como root:
# vidcontrol MODE_279
Si el modo de video que ha elegido le parece adecuado puede congurarlo de forma permanente haciendo que funcione desde el momento del arranque; para ello debe editar /etc/rc.conf le:
allscreens_flags="MODE_279"
89
3.3. Permisos
FreeBSD, cuya raz histrica es el UNIX BSD, se fundamenta en varios conceptos clave de UNIX. El primero y ms importante es que FreeBSD es un sistema operativo multi-usuario. El sistema puede gestionar mltiples usuarios trabajando simultneamente y en tareas que no guarden relacin entre s. El sistema se encarga de compartir y administrar peticiones de dispositivos de hardware, perifricos, memoria y tiempo de CPU de manera equitativa para cada usuario. Debido a que el sistema es capaz de soportar mltiples usuarios, todo lo que el sistema administra tiene un conjunto de permisos que usa para decidir quin puede leer, escribir y ejecutar un recurso. Estos permisos se guardan como octetos divididos en tres partes: una para el propietario del chero, otra para el grupo al que el chero pertenece, y otra para todos los dems grupos y usuarios. Veamos una representacin numrica de esto: Valor 0 1 2 3 4 5 6 7 Permiso No leer, no escribir, no ejecutar No leer, no escribir, ejecutar No leer, escribir, no ejecutar No leer, escribir, ejecutar Leer, no escribir, no ejecutar Leer, no escribir, ejecutar Leer, escribir, no ejecutar Leer, escribir, ejecutar Listado de directorio
----x -w-wx r-r-x rwrwx
Puede utilizar el parmetro de lnea de rdenes -l de ls(1) para ver un listado largo que incluya una columna con informacin acerca de los permisos de chero para el propietario, grupo y los dems. Por ejemplo, un ls -l en un directorio puede mostrar algo como esto:
% ls -l
El primer caracter (ms a la izquierda) indica si este chero es un chero regular, un directorio, un dispositivo especial de caracter, un socket o cualquier otro dispositivo especial pseudo-cheroa . En este caso, el - un chero regular. Los siguientes tres caracteres, rw- en este ejemplo, dan los permisos para el propietario del chero. Los siguientes tres caracteres, r--, dan los permisos para el grupo al que el chero pertenece. Los ltimos tres caracteres, r--, dan los permisos para el resto del mundo. Un guin indica que el permiso est desactivado. En el caso de este chero, los permisos estn asignados de tal manera que el propietario puede leer y escribir en el chero, el grupo puede leer el chero, y el resto del mundo slo puede leer el chero. De acuerdo con la tabla de arriba, los permisos para este chero seran 644, donde cada dgito representa las tres partes de los permisos del chero. Todo sto est muy bien, pero ?cmo controla el sistema los permisos de los dispositivos? FreeBSD en realidad trata la mayora de los dispositivos hardware como un chero que los programas pueden abrir, leer y en los que pueden
90
Captulo 3. Conceptos bsicos de Unix escribir datos como si de cualquier otro chero se tratara. Estos cheros especiales de dispositivo se encuentran en el directorio /dev. Los directorios tambin son tratados como cheros. Tienen permisos de lectura, escritura y ejecucin. El bit de ejecucin en un directorio tiene un signicado ligeramente distinto que para los cheros. Cuando un directorio est marcado como ejecutable signica que se puede mirar dentro, se puede hacer un cd (cambiar directorio) a l. Esto tambin signica que dentro del directorio es posible acceder a cheros cuyos nombres son conocidos (sujeto, claro est, a los permisos de los cheros mismos). En particular, para poder realizar un listado de directorio, el permiso de lectura debe ser activado en el directorio, mientras que para borrar un chero del que se conoce el nombre es necesario tener permisos de escritura y ejecucin en el directorio que contiene el chero. Existen ms permisos, pero se usan principalmente en circunstancias especiales como los binarios ejecutables de tipo setuid y los los directorios de tipo sticky. Si desea ms informacin acerca de los permisos de cheros y cmo establecerlos, consulte chmod(1).
Estos valores se aplican con chmod(1) de la misma manera que los anteriores, pero con letras. Por ejemplo, podra usar la siguiente orden para bloquear a otros usuarios el acceso a FICHERO:
% chmod go= FICHERO
Puede usarse una lista separada por comas cuando se quiera aplicar ms de un conjunto de cambios a un chero. Por ejemplo la siguiente orden eliminar los permisos de escritura de grupo y mundo a FICHERO, y aade permisos de ejecucin para todos:
% chmod go-w,a+x FILE
91
Y para dehabilitar la bandera imborrable de sistema, simplemente escriba la orden previa con no antes de sunlink. Observe:
# chflags nosunlink fichero1
Para ver las banderas de este chero, utilice ls(1) con las opciones -lo:
# ls -lo fichero1
Varias banderas solo pueden ser aadidas o retiradas de cheros por el usuario root. En otros casos, el propietario del chero puede activar estas banderas. Se recomienda que para ms informacin la persona encargada de la administracin del sistema consulte las pginas de manual chags(1) y chags(2).
92
El permiso setuid puede asignarse colocando un nmero cuatro (4) antes de los permisos. Se ve mejor con un ejemplo:
# chmod 4755 ejemplosuid.sh
Fjese atentamente en la s que ha aparecido en los permisos del chero, en la parte de los permisos del propietario; esa s est en donde estara el bit de ejecucin. Gracias a esto el funcionamiento de aplicaciones que necesitan permisos elevados, como passwd, pueden funcionar. Si quiere ver un ejemplo con sus propios ojos abra dos terminales. En una arranque un proceso (ejecute) passwd con un usuario normal. Mientras la aplicacin espera a que le de una nueva contrasea busque la informacin de usuario del proceso passwd en la tabla de procesos. En la terminal A:
Changing local password for trhodes Old Password:
En la terminal B:
# ps aux | grep passwd
trhodes root
5232 5211
0.0 0.0
0.2 0.2
3420 3620
1608 1724
0 2
R+ I+
2:10AM 2:09AM
Tal y como se ha dicho, un usuario normal puede ejecutar passwd, pero en realidad est utilizando el UID efectivo de root. El permiso setgid acta del mismo modo que el setuid, pero afecta a los permisos del grupo. Cuando una aplicacin funciona con esta conguracin lo hace con los permisos del grupo al que pertenece el chero, no los del usuario que ha arrancado el proceso. Si quiere utilizar el permiso setgid debe situar un nnmero dos (2) al principio de los permisos que vaya a asignar mediante chmod.
# chmod 2755 ejemplosuid.sh
La nueva conguracin tiene un aspecto muy similar a la que tena antes, pero observe que la s de antes est ahora en el campo de los permisos de grupo:
-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 ejemplosuid.sh
Nota: En ambos ejemplos, incluso si el script en cuestin es ejecutable, no se va a ejecutar con un EUID distinto o un ID efectivo de usuario porque los scripts de shell no pueden acceder a la llama del sistema setuid(2).
93
Captulo 3. Conceptos bsicos de Unix Los dos permisos que acabamos de mostrar los bits de permisos (setuid y setgid) pueden reducir el nivel de seguridad haciendo que se escalen los permisos. Pero hay un tercer bit especial de permisos que puede ser de mucha ayuda para reforzar la seguridad del sistema: el sticky bit. El sticky bit( que podramos traducir como bit pegajoso) aplicado a un directorio hace que solamente el propietario de un chero pueda borrarlo. Esto evita el borrado de cheros ajenos en directorios pblicos como /tmp. Si quiere usarlo coloque un uno (1) antes de los permisos. Veamos un ejemplo:
# chmod 1777 /tmp
drwxrwxrwt
10 root
wheel
Descripcin Directorio raz del sistema de cheros. Utilidades de usuario fundamentales tanto para el ambiente monousuario como para el multiusuario. Programas y cheros de conguracin necesarios durante el arranque del sistema operativo. Ficheros de conguracin por omisin del arranque; ver loader.conf(5). Nodos de dispositivo; ver intro(4). Ficheros de conguracin y scripts del sistema. Ficheros de conguracin por omisin del sistema; ver rc(8).
94
Descripcin Ficheros de conguracin para agentes de transporte de correo como sendmail(8). Ficheros de conguracin de named; ver named(8). Scripts que se ejecutan diariamente, semanalmente y mensualmente mediante cron(8); ver periodic(8). Ficheros de conguracin de ppp; ver ppp(8). Directorio vaco utilizado de forma habitual por administradores de sistemas como punto de montaje temporal. Sistema de cheros de procesos; ver procfs(5), mount_procfs(8). Programas enlazados estticamente para restauraciones de emergencia; ver rescue(8). Directorio local para la cuenta root. Programas del sistema y utilidades fundamentales de administracin para ambientes monousuario y multiusuario. Ficheros temporales. El contenido de /tmp NO suelen conservarse despus de un reinicio del sistema. Los sistemas de cheros basados en memoria suelen montarse en /tmp Puede automatizarse mediante variables de tmpmfs en rc.conf(5) (o con una entrada en /etc/fstab; ver mdmfs(8), o para FreeBSD 4.X, mfs(8)). La mayora de utilidades y aplicaciones de usuario. Aplicaciones comunes, herramientas de programacin y otras aplicaciones. Ficheros include estndar de C. Bibliotecas. Ficheros de datos con diversas funciones. Dmons del sistema y utilidades del sistema (ejecutados por otros programas). Ejecutables locales, bibliotecas, etc. tambin se usa como destino por omisin de la infraestructura de ports de FreeBSD. Dentro de /usr/local debe seguirse el esquema general denido en hier(7) para /usr. Las excepciones son el directorio man, que est directamente bajo /usr/local en lugar de debajo de /usr/local/share, y la documentacin de los ports est en share/doc/port. Arbol destino dependiente de arquitectura fruto de la compilacin del rbol /usr/src. La coleccin de Ports de FreeBSD (opcional).
/tmp/
/usr/obj/ /usr/ports
95
Descripcin Dmons del sistema y utilidades del sistema (ejecutados por usuarios del sistema). Ficheros independientes de arquitectura. Ficheros fuente BSD y/o local. Ejecutables de la distribucin X11R6, bibliotecas, etc (opcional). Ficheros multipropsito de log, temporales, en trnsito y de spool. En ocasiones se monta en /var un sistema de cheros basado en memoria. Diversos cheros de log del sistema. Ficheros de buzones de correo de usuarios. Directorios diversos del sistema de spool de impresora y correo. Ficheros temporales. Suelen conservarse tras el Estos cheros suelen conservarse tras el reinicio del sistema, a menos que /var sea un sistema de cheros basado en memoria. Mapas NIS.
/var/yp
96
Captulo 3. Conceptos bsicos de Unix En FreeBSD, en cambio, un sistema de cheros recibe el nombre de sistema de cheros raz. El directorio raz del sistema de cheros raz se representa como /. Cualquier otro sistema de cheros, por tanto, se monta bajo el sistema de cheros raz. No importa cuntos discos tenga en su sistema FreeBSD, cada directorio parecer ser parte del mismo disco. Suponga que tiene tres sistemas de cheros, denominados A, B y C. Cada sistema de cheros tiene un directorio raz, el cual contiene otros dos directorios, llamados A1, A2 (y de la misma manera B1, B2 y C1, C2). Usaremos A como sistema de cheros raz. Si usara ls para ver el contenido de este directorio vera dos subdirectorios, A1 y A2. El rbol de directorios sera como este:
Root /
A1/
A2/
Un sistema de cheros debe montarse en un directorio de otro sistema de cheros. Ahora suponga que monta el sistema de cheros B en el directorio A1. El directorio raz de B reemplaza a A1, y los directorios en B aparecen de esta manera:
Root /
A1/
A2/
B1/
B2/
Cualquier chero que est en el directorio B1 o B2 puede encontrarse con la ruta /A1/B1 o /A1/B2 segn sea necesario. Cualquier chero que est en /A1 ha desaparecido temporalmente. Aparecern de nuevo si B se desmonta de A. Si B se monta en A2 entonces el diagrama se vera as:
97
Root /
A1/
A2/
B1/
B2/
y las rutas seran /A2/B1 y /A2/B2 respectivamente. Pueden montarse sistemas de cheros uno sobre otro. Continuando con el ejemplo anterior, el sistema de cheros C podra montarse en el directorio B1 en el sistema de cheros B, lo que nos llevara a esto:
Root /
A1/
A2/
B1/
B2/
C1/
C2/
98
Root /
A1/
A2/
C1/
C2/
B1/
B2/
Si est familiarizado con MS-DOS esto es similar, aunque no idntico, a utilizar join. Esto no es algo a lo deba usted dedicar tiempo de forma habitual. Normalmente crear sistemas de cheros al instalar FreeBSD y decidir dnde montarlos; lo ms habitual es que no los cambie de sitio a menos que agregue un disco nuevo. Es perfectamente posible tener un sistema de cheros raz extenso y no necesitar crear otros. Este esquema tiene unos cuantos inconvenientes y una ventaja: Ventajas de disponer de mltiples sistemas de cheros
Si dispone de varios sistemas de cheros puede optar por usar distintas opciones de montaje. Por ejemplo, gracias a una planicacin cuidadosa, el sistema de cheros raz puede montarse como slo-lectura, haciendo imposible borrar sin querer o editar un chero crtico. Al mantener separados sistemas de cheros en los que los usuarios pueden escribir, como /home, de otros sistemas de cheros tambin le permite montar con la opcin nosuid; dicha opcin previene que los bits suid/guid en los ejecutables almacenados en el sistema de cheros tengan efecto, mejorando en cierto modo la seguridad. FreeBSD optimiza automticamente el esquema de cheros en un sistema de cheros, dependiendo de cmo el sistema de cheros est siendo utilizado. Uno que contenga muchos cheros pequeos tendr una optimizacin distinta de uno que contenga menos cheros y ms grandes. Si slo tiene un gran sistema de cheros no hay manera de aplicar esta optimizacin. Los sistemas de cheros de FreeBSD son muy robustos en caso de sufrir un cada elctrica. De todas maneras, un fallo elctrico en un momento crtico puede daar la estructura del sistema de cheros. Si reparte sus datos en mltiples sistemas de cheros har que sea ms probable que el sistema arranque despus de uno de esos fallos, hacindole adems ms fcil la tarea de restaurarlo desde un respaldo si fuera necesario.
Los sistemas de cheros son de un tamao jo. Si crea un sistema de cheros cuando instala FreeBSD y le da un tamao especco, tal vez descubra ms tarde que necesita hacer la particin ms grande. Esto no es fcil de realizar sin hacer una copia de seguridad, crear de nuevo el sistema de cheros con el nuevo tamao y entonces restaurar los datos respaldados.
99
Los sistemas de cheros estn alojados en particiones. Este es un detalle muy importante, puesto que el trmino particin no signica aqu lo mismo que en otros entornos (por ejemplo, en MS-DOS) debido a la herencia UNIX de FreeBSD. Cada particin se identica con una letra desde a hasta h. Cada particin puede contener solamente un sistema de cheros, lo que signica que los sistemas de cheros suelen denirse mediante su punto de montaje en la jerarqua del sistema de cheros o por la letra de la particin en la que estn alojados. FreeBSD tambin utiliza espacio de disco como espacio de intercambio (swap). El espacio de intercambio le brinda a FreeBSD memoria virtual. Esto permite al su sistema comportarse como si tuviera ms memoria de la que realmente tiene. Cuando a FreeBSD se le agota la memoria mueve algunos de los datos que no est utilizando en ese momento al espacio de intercambio, y los vuelve a poner donde estaban (desplazando alguna otra cosa) cuando los necesita. Algunas particiones tienen ciertas convenciones heredadas. Particin
a b c
Representacin Normalmente contiene el sistema de cheros raz Normalmente contiene el espacio de intercambio (swap) Suele tener el mismo tamao de la slice que la encierra. Esto permite a las utilidades que necesitan trabajar en toda la slice entera (por ejemplo durante una bsqueda de bloques daados) trabajar en la particin c. Normalmente no debera usted crear un sistema de cheros en esta particin. La particin d sola tuvo un signicado especial asociado pero ya no lo tiene.
Cada particin que contiene un sistema de cheros se almacena en lo que FreeBSD llama una slice. slice es en FreeBSD lo que en otros mbitos se denomina particin; es un hecho que deriva de los orgenes de FreeBSD como ya sabemos basado en UNIX. Los nmeros de slice muestran el nombre de dispositivo, al que precede una s y un nmero que puede ser un 1 u otro nmero mayor. Por lo tanto da0s1 es la primera slice en la primera unidad SCSI. Slo puede haber cuatro slice fsicas en un disco, pero puede haber slice lgicas dentro slice fsicas del tipo apropiado. Estas sliceextendidas se numeran a partir de 5, as que ad0s5 es la primera slice extendida en el primer disco IDE. Estos dispositivos se usan en sistemas de cheros que se preve que ocupen una slice. Tanto las slice y las unidades fsicas peligrosamente dedicadas, como otras unidades contienen particiones, que se designan mediante letras desde la a hasta h. Esta letra se aade al nombre del dispositivo. Se ver mucho mejor mediante ejemplos: da0a es la particin a en la primera unidad da y es una de esas a las que llamamos peligrosamente dedicada. ad1s3e es la quinta particin en la tercera slice de la segunda unidad de disco IDE. Para terminar, cada disco en el sistema tiene tambin su designacin. El nombre de disco comienza por un cdigo que indica el tipo de disco, luego un nmero, que indica qu disco es. A diferencia de las slice, la numeracin de discos comienza desde 0. Puede las numeraciones ms comunes en el Tabla 3-1. Cuando se hace referencia a una particin, FreeBSD necesita que tambin se nombre la slice y el disco que contiene la partici. Esto se hace con el nombre de disco, s, el nmero slice y por ltimo la letra de la particin. Tiene varios casos en el Ejemplo 3-1. En el Ejemplo 3-2 muestra un modelo conceptual del esquema de un disco que debera ayudarle a aclarar las cosas.
100
Captulo 3. Conceptos bsicos de Unix Antes de instalar FreeBSD tendr que congurar las slice de disco, despus crear particiones dentro de las slice que vaya a usar en FreeBSD y luego crear un sistema de cheros (o swap) en cada particin y luego decidir cul va a ser el punto de montaje del sistema de cheros. Tabla 3-1. Cdigos de dispositivos de disco Cdigo
ad da acd cd fd
Signicado Disco ATAPI (IDE) Disco de acceso directo SCSI CDROM ATAPI (IDE) CDROM SCSI Disquete (oppy)
Signicado La primera particin (a) en la primera slice (s1) en el primer disco IDE (ad0). La quinta particin (e) en la segunda slice (s2) en el segundo disco SCSI (da1).
Ejemplo 3-2. Modelo conceptual de un disco Este diagrama muestra cmo ve FreeBSD el primer disco IDE en el sistema. Se asume que el disco es de 4 GB, y contiene dos slices de 2 GB (particiones MS-DOS). La primera particin contiene un disco MS-DOS, C:, y la segunda particin contiene una instalacin de FreeBSD. Esta instalacin de ejemplo tiene tres particiones, y una particin swap. Cada una de las tres particiones tiene un sistema de cheros. La particin a se utilizar para el sistema de cheros raz, e para la jerarqua del directorio /var, y f para la jerarqua del directorio /usr.
101
DOS or Windows
Partition a, mounted as /, called ad0s2a Partition b, used as swap, called ad0s2b Partition e, mounted as /var, called ad0s2e Partition f, mounted as /usr, called ad0s2f
(not to scale)
102
Captulo 3. Conceptos bsicos de Unix del sistema de cheros raz no es nada bueno desde cualquier punto de vista, as que separar /var de de / es algo que debera hacerse siempre que sea posible. Otra razn para meter ciertos rboles de directorios en otros sistemas de cheros es si van a estar albergados en discos fsicos separados, o si son discos virtuales separados, como un montaje por NFS en el caso de unidades de CDROM.
dispositivo
El tipo de sistema de cheros es un parmetro que interpretar mount(8). El sistema de cheros por omisin de FreeBSD es ufs.
opciones
Ya sea rw para sistemas de cheros de lectura-escritura, o ro para sistemas de cheros de slo lectura, seguido de cualquier otra opcin que sea necesaria. Una opcin muy habitual es noauto, que se suele usar en sistemas de cheros que no se deben montar durante la secuencia de arranque. Tiene otras opciones en la pgina de manual de mount(8).
dumpfreq
dump(8) la usa para determinar qu sistema de cheros requieren volcado. Si el campo no est declarado se asume un valor de cero.
passno
Determina el orden en el cual los sistemas de cheros deben revisarse. Los sistemas de cheros que hayan de saltarse deben tener su passno a cero. El sistema de cheros raz (que obviamente debe ser revisado antes que cualquier otro) debe tener su passno puesto a uno, y los dems sistemas de cheros deben tener valores mayores que uno. Si ms de un sistema de cheros tiene el mismo passno fsck(8) tratar de revisarlos en paralelo en caso de ser posible. Consulte la pgina de manual de fstab(5) para mayor informacin sobre el formato del chero /etc/fstab y las opciones que contiene.
103
Existe una gran cantidad de opciones (las encontrar todas en mount(8)) pero las ms comunes son:
Opciones de montaje
-a
Montar todos los sistemas de cheros que aparezcan en /etc/fstab, excepto aquellos marcados como noauto, excluidos por el parmetro -t o aquellos que ya estn montados.
-d
Realizar todo excepto la llamada real de montaje del sistema. Esta opcin es muy til en caso de problemas si se combina con la opcin -v para determinar qu es lo que mount(8) est haciendo realmente.
-f
Forzar el montaje de un sistema de cheros inestable (por ejemplo uno que da errores tras un reinicio sbito, algo que es bastante peligroso), o forzar la revocacin de accesos de escritura cuando se cambia el estado de un sistema de cheros de lectura-escritura a solo lectura.
-r
Montar el sistema de cheros como slo lectura. Esto es idntico a utilizar el argumento ro (rdonly para versiones anteriores a FreeBSD 5.2) en la opcin -o.
-t tipo de sistema de ficheros
Montar un sistema de cheros dado con el tipo de sistema de cheros, o montar solamente sistemas de cheros del tipo dado si se proporciona la opcin -a. ufs es el sistema de cheros por omisin.
-u
Montar el sistema de cheros como lectura-escritura. La opcin -o toma una lista las siguientes opciones separada por comas: nodev No interpretar dispositivos especiales en el sistema cheros. Es una opcin de seguridad que puede ser muy til.
104
Captulo 3. Conceptos bsicos de Unix noexec No permitir la ejecucin de binarios en este sistema de cheros. Esta tambin es una opcin de seguridad til. nosuid No interpretar bits setuid o setgid en el sistema de cheros. Esta tambin es una opcin de seguridad til.
3.7. Procesos
FreeBSD es un sistema operativo multitarea. Esto signica que parece como si ms de un programa se estuviera ejecutando al mismo tiempo. Cada programa uno de esos programas que se est ejecutando en un momento dado se denomina proceso. Cada orden que ejecuta iniciar al menos un proceso nuevo, y hay muchos procesos que se estn que se estn ejecutando en todo momento, manteniendo el sistema en funcionamiento. Cada proceso tiene un identicador individual consistente en un nmero llamado ID del proceso, o PID, y al igual que sucede con los cheros, cada proceso tiene un propietario y un grupo. La informacin de propietario y grupo se usa para determinar qu cheros y dispositivos puede abrir el proceso mediante los permisos de chero explicados anteriormente. La mayora de los procesos tambin tiene un proceso padre. El proceso padre es el proceso que los inici. Por ejemplo, si est tecleando rdenes en la shell, la shell es un proceso, y cualquier orden que usted ejecute tambin lo ser. De este modo cada proceso que ejecute tendr como proceso padre a su shell. La excepcin es un proceso especial llamado init(8). init es siempre el primer proceso, as que su PID siempre es 1. El kernel arranca automticamente init en el arranque de FreeBSD. Hay dos rdenes particularmente tiles para ver los procesos en el sistema, ps(1) y top(1). ps se usa para mostrar una lista esttica de los procesos que se ejecutan en el sistema en es momento, y puede mostrar sus PID, cunta memoria est usando, la lnea de rdenes con la que fueron iniciados y muchas ms cosas. top despliega todos los procesos que se estn ejecutando y actualiza la pantalla cada pocos segundos para que pueda ver lo que est haciendo su sistema. Por omisin ps solo le muestra las rdenes que estn ejecutando y que sean propiedad de su usuario. Por ejemplo:
% ps
TT p0 p0 p0 p0 p0 p0
STAT Ss S I S IW R+
COMMAND tcsh xemacs mdoc.xsl (xemacs-21.1.14) xemacs freebsd.dsl (xemacs-21.1.14) /usr/local/lib/netscape-linux/navigator-linux-4.77.bi (dns helper) (navigator-linux-) ps
105
Como puede ver en este ejemplo la salida de ps(1) est organizada en columnas. PID es el ID de proceso anteriormente expuesto. Los PIDs se asignan a partir del 1 y hasta 99999, y vuelven a comenzar desde el 1 otra cuando se terminan los nmeros. La columna TT muestra la tty en la que el programa se est ejecutando; podemos ignorarla tranquilamente por el momento. STAT muestra el estado del programa; de momento tambin podemos ignorarlo. TIME es la cantidad de tiempo que el programa ha se ha estado ejecutando en la CPU (generalmente no es el tiempo transcurrido desde que se inici el programa, ya que la mayora de los programas pasan mucho tiempo esperando antes de que necesiten gastar tiempo en la CPU. Finalmente, COMMAND es la lnea de rdenes que se emple para ejecutar el programa. ps(1) admite muchas opciones sobre la informacin que se desea ver. Uno de los conjuntos ms tiles es auxww. a muestra informacin acerca de todos los procesos ejecutndose, no solamente los suyos. u despliega el nombre de usuario del propietario del proceso, as como el uso de memoria. x despliega informacin acerca de los procesos dmon y ww hace que ps(1) despliegue la lnea de rdenes completa, en lugar de truncarla cuando es demasiado larga para caber en la pantalla. La salida de top(1) es similar. Veamos un ejemplo:
% top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID 72257 7078 281 296 48630 175 7059 ... USERNAME PRI NICE SIZE RES STATE nik 28 0 1960K 1044K RUN nik 2 0 15280K 10960K select nik 2 0 18636K 7112K select nik 2 0 3240K 1644K select nik 2 0 29816K 9148K select root 2 0 924K 252K select nik 2 0 7260K 4644K poll TIME WCPU 0:00 14.86% 2:54 0.88% 5:36 0.73% 0:12 0.05% 3:18 0.00% 1:41 0.00% 1:38 0.00% CPU 1.42% 0.88% 0.73% 0.05% 0.00% 0.00% 0.00% COMMAND top xemacs-21.1.14 XF86_SVGA xterm navigator-linu syslogd mutt
La salida est dividida en dos secciones. La cabecera (las primeras cinco lneas) muestra el PID del ltimo proceso en ejecutarse, la carga promedio del sistema (una medida de la carga del sistema), el uptime del sistema (tiempo desde el ltimo reinicio) y la hora actual. Las otras cifras en la cabecera se relacionan con cuntos procesos hay en ejecucin en el sistema (47 en este caso), cunta memoria y espacio de intercambio (swap) est en uso, y cunto tiempo est el sistema en diferentes estados de CPU. Ms abajo hay una serie de columnas con informacin similar a la salida de ps(1). Igual que antes, puede usted ver el PID, el nombre de usuario, la cantidad de tiempo de CPU en uso y la orden que se ejecut. top(1) tambin mostrar
106
Captulo 3. Conceptos bsicos de Unix por omisin la cantidad de espacio de memoria que emplea cada proceso. Est dividido en dos columnas, una para el tamao total y otra para el tamao residente (el tamao total es cunta memoria ha necesitado la aplicacin y el tamao residente es cunta se est usando en ese momento concreto). En este ejemplo puede verse que Netscape requerido casi 30 MB de RAM, pero actualmente solo est usando 9 MB. top(1) actualiza automticamente el listado cada dos segundos, pero este lapso puede cambiarse mediante la opcin s.
107
Captulo 3. Conceptos bsicos de Unix Otras seales que puede usar: SIGHUP, SIGUSR1 y SIGUSR2. Son seales de propsito general, y aplicaciones diferentes pueden hacer cosas diferentes cuando se utilicen. Suponga que ha cambiado el chero de conguracin de su servidor web; es un buen momento para decirle al servidor web que lea y aplique la conguracin. Podra detener y reiniciar httpd, pero esto implicara un perodo breve de suspensin del servicio de su servidor web, lo cual puede no ser asumible. La mayora de los dmons fueron creados pensando en que fueran capaces de responder a la seal SIGHUP releyendo su chero de conguracin. En lugar de matar y reiniciar httpd le podra mandar la seal SIGHUP. Dado que no hay una manera estndar para responder a estas seales, diferentes dmons tendrn diferente comportamiento, as que asegrese de leer la documentacin del dmon en cuestin. Las seales se envian mediante kill(1), como puede verse en el siguiente ejemplo. Envo de una seal a un proceso Este ejemplo muestra como enviar una seal a inetd(8). El chero de conguracin de inetd es /etc/inetd.conf e inetd releer dicho chero de conguracin cuando se le enve un SIGHUP. 1. Identique el ID de proceso del proceso al que quiere enviarle la seal mediante ps(1) y grep(1). grep(1) se usa para buscar cadenas de texto de su eleccin en la salida estndar. Puede ejecutarse como un usuario normal, mientras que inetd(8) se ejecuta como root, as que debe pasarle los parmetros ax a ps(1).
% ps -ax | grep inetd
198
??
IWs
Vemos que el PID de inetd(8) es 198. En algunos casos grep inetd tambin puede aparecer en esta salida. Esto se debe a la manera en que ps(1) tiene que encontrar la lista de procesos ejecutndose. 2. Utilice kill(1) para enviar la seal. Debido a que inetd(8) est siendo ejecutado po root tendr que usar primero su(1) para volverse root.
% su Password: # /bin/kill -s HUP 198
Del mismo modo que la mayora de rdenes UNIX kill(1) no imprimir ninguna salida si ha funcionado bien. Si enva una seal a un proceso del que no es el propietario ver lo siguiente: kill: PID : Operation not permitted. Si no teclea bien el PID puede enviar la seal a un proceso equivocado, lo cual puede ser malo, o si tiene suerte, habr enviado la seal a un proceso que no est en uso y ver el sistema le dir kill: PID : No such process.
Por qu utilizar /bin/kill?: Muchas shells incorporan su propio kill; esto es, el shell mandar la seal directamente, en lugar de ejecutar /bin/kill. Esto puede ser til pero las diferentes shells tienen diferentes sintaxis para especicar el nombre de la seal que envan. En lugar de tratar de aprederse todas ellas, es ms fcil simplemente usar /bin/kill ... sea la que sea la shell que preera usar.
El envo de otras seales es muy similar; sustituya TERM o KILL en la lnea de rdenes segn sea necesario.
Importante: Matar procesos aleatorios en el sistema es una mala idea. En particular, init(8), ID de proceso 1, es muy especial. Ejecutar /bin/kill -s KILL 1 es una manera rpida de apagar su sistema. Siempre revise dos veces los argumentos con los que ejecuta kill(1) antes de pulsar Intro.
108
3.9. Shells
En FreeBSD gran parte del trabajo diario se hace en una interfaz de lnea de rdenes llamada shell. El trabajo principal de la shell es ir recibiendo rdenes mediante un canal de entrada y ejecutarlos. Muchas shells tambin tienen funciones integradas para ayudar ayudar con las tareas diarias como manipulacin de cheros, gestin de archivos con expresiones regulares, edicin en la propia lnea de rdenes, macros de rdenes y variables de entorno. FreeBSD incluye diversas shells, como sh, el shell Bourne y tcsh, el shell C mejorado. Hay muchas otras shells disponibles en la coleccin de ports de FreeBSD, como zsh y bash. ?Qu shell usar? es una cuestin de gustos. Si va a programar en C puede preferir usar una shell tipo C, como tcsh. Si viene del mundo Linux o si es nuevo en la interfaz de lnea de rdenes de UNIX puede probar con bash. Tenga en cuenta que cada shell posee unas propiedades nicas que pueden o no funcionar con su entorno de trabajo preferido y que puede usted elegir qu shell usar. Una de las propiedades comunes de las shell es que completan los nombres de chero. Una vez que ha introducido las primeras letras de una orden o del nombre de un chero, se puede hacer que la shell complete automticamente el resto de la orden o nombre de chero pulsando la tecla Tab. Veamos un ejemplo. Suponga que tiene dos cheros llamados talcual y tal.cual. Usted quiere borrar tal.cual. Lo que habra que teclear es: rm ta[tabulador].[tabulador]. La shell mostrara en pantalla rm ta[BIP].cual. El [BIP] es la campana de la consola, es decir, la shell est dicindome que no pudo completar totalmente el nombre de chero porque hay ms de una coincidencia. Tanto talcual como tal.cual comienzan por ta, pero solo se pudo completar hasta tal. Si se teclea ., y de nuevo tabulador la shell es capaz de aadir el resto del nombre de chero. Otra funcin de la shell son las variables de entorno. Las variables de entorno son parejas de valores clave almacenados en el espacio de entorno del shell. Este espacio puede ser ledo por cualquier programa invocado por la shell y por lo tanto contiene mucha conguracin de programas. Esta es una lista de las variables de entorno ms comunes y su signicado: Variable
USER PATH DISPLAY SHELL TERM TERMCAP
Descripcin Nombre de usuario en el sistema. Lista de directorios, separados por punto y coma, en los que se buscan ejecutables. Nombre de red de la pantalla X11 a la que conectarse, si est disponible. La shell actual. El nombre de la terminal del usuario. Se usa para determinar las caractersticas de la terminal. Base de datos donde encontrar los cdigos de escape necesarios para realizar diferentes funciones en la terminal. Tipo de sistema operativo. Por ejemplo, FreeBSD.
OSTYPE
109
Descripcin Arquitectura de CPU en la que se est ejecutando el sistema. El editor de texto preferido por el usuario. El paginador de texto preferido por el usuario. Lista de directorios separados por punto y coma en los que se buscan pginas de manual.
Establecer una variable de entorno diere ligeramente de shell a shell. Por ejemplo, en las shells al estilo C como tcsh y csh, se usa setenv para establecer las variables de entorno. Bajo shells Bourne como sh y bash, se usa export para establecer las variables de entorno actuales. Por ejemplo, para establecer o modicar la variable de entorno EDITOR (bajo csh o tcsh) la siguiente orden establece EDITOR como /usr/local/bin/emacs:
% setenv EDITOR /usr/local/bin/emacs
Tambin se puede hacer que la mayora de las shells muestren el contenido de una variable de entorno situando el carcter $ delante del nombre de la variable en la lnea de rdenes. Por ejemplo, echo $TERM mostrar cualquiera que sea el valor que haya establecido para $TERM, porque la shell expande el valor de $TERM y se lo pasa al programa echo. Las shells manejan muchos caracteres especiales, llamados metacaracteres, como representaciones especiales de datos. El ms comn es el caracter *, que representa cualquier nmero de caracteres en un nombre de chero. Estos metacaracteres especiales se pueden usar para la expansin de nombres de chero. Por ejemplo, teclear echo * es casi lo mismo que introducir ls porque la shell toma todos los cheros que coinciden con * y se los pone en la lnea de rdenes para que echo los vea. Para evitar que la shell interprete estos caracteres especiales pueden escamotearse anteponindoles una contrabarra (\). echo $TERM imprime el nombre de terminal que est usando. echo \$TERM imprime $TERM, literalmente.
110
111
a.out(5) El formato objeto de UNIX ms antiguo y clsico. Utiliza una cabecera corta y compacta con un nmero mgico al inicio que se usa frecuentemente para identicar el formato (vea a.out(5) para ms informacin). Contiene tres segmentos cargados: .text, .data, y .bss adems de una tabla de smbolos y una tabla de cadena (strings).
COFF El formato objeto de SVR3. La cabecera consiste en una tabla de seccin, para que pueda tener ms contenido adems de las secciones .text, .data, y .bss.
elf(5) Es el sucesor de COFF; dispone de secciones mltiples y valores posibles de 32-bits o 64-bits. Una gran desventaja: ELF fu tambin diseado asumiendo que solamente existira una ABI por cada arquitectura de sistema. Esa suposicin es en realidad bastante incorrecta y ni siquiera en el mundo comercial SYSV (el cual tiene al menos tres ABIs: SVR4, Solaris y SCO) se puede dar por buena. FreeBSD trata de solucionar este problema de alguna manera ofreciendo una herramienta para marcar un ejecutable ELF conocido con informacin acerca de la ABI con la que funciona. Si quiere ms informacin consulte la pgina de manual de brandelf(1).
FreeBSD viene del campo clsico y ha utilizado el formato a.out(5), una tecnologa usada y probada en muchas de muchas generaciones de versiones de BSD hasta el inicio de la rama 3.X. Aunque era posible compilar y ejecutar binarios nativos ELF (y kernels) en un sistema FreeBSD desde algn tiempo antes de esto, FreeBSD al principio se mantuvo contra corriente y no cambi a ELF como formato por defecto. ?Por qu? Bueno, cuando el mundo Linux efectu su dolorosa transicin a ELF no fu tanto por huir del formato a.out como por su inexible mecanismo de bibliotecas compartidas basado en tablas de saltos, que haca igual de difcil la construccin de bibliotecas compartidas tanto para los desarrolladores como para los proveedores. Ya que las herramientas ELF disponibles ofrecan una solucin al problema de las bibliotecas compartidas y eran vistas por mucha gente como la manera de avanzar, el costo de migracin fu aceptado como necesario y se realiz la transicin. El mecanismo de bibliotecas compartidas de FreeBSD est diseado de manera ms cercana al estilo del sistema de bibliotecas compartidas de SunOS de Sun y, como tal, es muy sencillo de utilizar. Entonces, ?por qu existen tantos formatos diferentes? En un tiempo muy, muy lejano, exista hardware simple. Este hardware tan simple soportaba un sistema pequeo, simple. a.out era idneo para el trabajo de representar binarios en este sistema tan simple (un PDP-11). A medida que la gente portaba UNIX desde este sistema simple, retuvieron el formato a.out debido a que era suciente para los primeros portes de UNIX a arquitecturas como 68k de Motorola, VAXen, etc. Entonces algn brillante ingeniero de hardware decidi que si poda forzar al software a hacer algunos trucos sucios podra sortear ciertos obstculos del diseo y permitir al ncleo de su CPU correr ms rpidamente. Aunque estaba hecho para trabajar con este nuevo tipo de hardware (conocido entonces como RISC), a.out no estaba bien adaptado
112
Captulo 3. Conceptos bsicos de Unix para este hardware, as que varios formatos fueron desarrollados para obtener un rendimiento mayor de este hardware que el poda extraerse del limitado y simple formato a.out. As fu cmo COFF, ECOFF y algunos otros formatos ms extraos fueron inventados y sus limitaciones exploradas hasta que se fu llegando a la eleccin de ELF. Adems, el tamao de los programas estaba volviendose gigante y los discos (y la memoria fsica) eran relativamente pequeos, as que el concepto de una biblioteca compartida naci. El sistema VM tambin se volvi ms sosticado. A pesar de que todos estos avances se hicieron utilizando el formato a.out, su utilidad se iba reduciendo paulatinamente con cada nueva opcin. Adems, la gente quera cargar cosas dinmicamente en el momento de ejecucin, o descartar partes de su programa despus de que el cdigo de inicio se ejecutara para ahorrar memoria principal y espacio de swap. Al volverse ms sosticados los lenguajes, la gente empez a ver la necesidad de introducir cdigo antes del inicio del programa de forma automtica. Se hicieron muchos hacks al formato a.out para permitir que todas estas cosas sucedieran y lo cierto es que por un tiempo funcionaron. Pero a.out no estaba para solucionar todos estos problemas sin incrementar la carga y complejidad del cdigo. Aunque ELF resolva muchos de estos problemas, en ese momento hubiera sido terrible dejar de lado un sistema que funcionaba, as que ELF tuvo que esperar hasta que fu ms doloroso permanecer con a.out que migrar a ELF. De todas maneras, con el paso del tiempo las herramientas de compilacin de las que FreeBSD deriv las suyas (en especial el ensamblador y el cargador) evolucionaron en dos rboles paralelos. El rbol FreeBSD FreeBSD aadi bibliotecas compartidas y corrigi algunos errores. La gente de GNU (que fueron quienes escribieron estos programas) los reescribi y aadieron una forma ms simple de disponer de compiladores cruzados (cross compilers), el uso de diferentes formatos, etc. Aunque mucha gente quera compiladores cruzados con FreeBSD como blanco no hubo suerte, porque los fuentes que que FreeBSD tena para as y ld no estaban listos para cumplir esa tarea. La nueva cadena de herramientas GNU (binutils) soporta compilacin cruzada, ELF, bibliotecas compartidas, extensiones C++, etc. Adems, muchos proveedores estn liberando binarios ELF y es algo muy bueno que FreeBSD los pueda ejecutar. ELF es ms expresivo que a.out y permite un sistema base ms extensible. Las herramientas ELF estn mejor mantenidas y ofrecen soporte de compilacin cruzada, muy importante para mucha gente. ELF puede ser un poco ms lento que a.out, pero tratar de medirlo puede ser difcil. Tambin existen numerosos detalles que son diferentes entre los dos en cmo gestionan pginas, cmo gestionan cdigo de inicio, etc. Ninguna es muy importante, pero las diferencias existen. Con el tiempo, el soporte para a.out ser eliminado del kernel GENERIC y es muy posible que se elimine del kernel la posibilidad de ejecutar tales binarios una vez que la necesidad de usar programas a.out haya pasado.
3.13. Ms informacin
3.13.1. Pginas de manual
La documentacin ms exhaustiva de FreeBSD est en las pginas de manual. Casi todos los programas del sistema vienen con un breve manual de referencia explicando el funcionamiento bsico y sus diferentes argumentos. Estos manuales pueden revisarse mediante man. El uso de man es simple:
% man orden
orden es el nombre de la orden sobre la que que desea saber ms. Por ejemplo, para ms informacin sobre ls
escriba:
% man ls
113
Captulo 3. Conceptos bsicos de Unix El manual en lnea est dividido en secciones numeradas: 1. Comandos de usuario. 2. Llamadas al sistema y nmeros de error. 3. Funciones en las bibliotecas de C. 4. Controladores de dispositivo. 5. Formatos de chero. 6. Juegos y dems pasatiempos. 7. Informacin sobre temas diversos. 8. Comandos relacionados con el mantenimiento del sistema y su funcionamiento. 9. Desarrolladores del Kernel. En algunos casos, el mismo tema puede aparecer en ms de una seccin del manual en lnea. Por ejemplo, existe una orden de usuario chmod y una llamada del sistema chmod(). En este caso se le puede decir a man cul desea consultar especicando la seccin:
% man 1 chmod
Esto desplegar la pgina de manual de la orden de usuario chmod. Las referencias a una seccin concreta del manual en lnea tradicionalmente suelen colocarse entre parntesis en la documentacin escrita, por lo tanto chmod(1) se reere a la orden de usuario chmod y chmod(2) se reere a la llamada de sistema. Esto est muy bien si se conoce el nombre del programa y simplemente se quiere saber como usarlo. Pero ?y si no puede recordar el nombre de la orden? Se puede usar man para que realice una bsqueda mediante palabras clave en las descripciones de programas utilizando el argumento -k:
% man -k mail
Dicha orden mostrar una lista de rdenes que contengan la palabra clave mail en sus descripciones. Esto es funcionalmente equivalente a usar apropos. As que, est viendo todos esos programas tan atractivos en /usr/bin pero no tiene ni la menor idea de lo que la mayora de ellos hace? Haga lo siguiente:
% cd /usr/bin % man -f *
o
% cd /usr/bin % whatis *
114
Captulo 3. Conceptos bsicos de Unix llamados cheros info, los cuales pueden ser visualizados con info, o si tiene instalado emacs, con el modo info de emacs. Si quiere utilizar la orden info(1) tecle:
% info
Para una breve introduccin tecle h. Cuando necesite una referencia rpida, tecle ?.
Notas
1. Esto es lo que i386 signica. Tenga en cuenta que incluso si no est ejecutando FreeBSD en una CPU Intel 386, ste va a ser i386. No es el tipo de su procesador, sino la arquitectura la que se muestra aqu. 2. Los scripts de inicio son programas que FreeBSD ejecuta automticamente cuando arranca. Su funcin principal es preparar todo lo necesario para que todo lo dems se ejecute, e iniciar cualquier servicio que tenga congurado para ejecutarse en segundo plano algo tiles. 3. Tiene una descripcin bastante tcnica y correcta de todos los detalles de la consola FreeBSD y los controladores de teclado pueden encontrarse en las pginas de manual de syscons(4), atkbd(4), vidcontrol(1) y kbdcontrol(1). No nos extenderemos en los detalles aqu, pero el lector interesado siempre puede consultar dichas pginas de manual si quiere una explicacin ms detallada y profunda de cmo funcionan estas cosas. 4. Esto no es del todo cierto (ciertas cosas no pueden ser interrumpidas. Por ejemplo, si el proceso est tratando de leer desde un chero que est en otro sistema de la red, y el otro sistema no est disponible por alguna razn (por estar apagada, o que la red tenga un fallo), tenemos un caso de lo que llamamos proceso ininterrumpible. Ms tarde, al proceso se le acabar el tiempo de espera, generalmente pasados dos minutos. Tan pronto como esto ocurra el proceso ser liquidado.
115
Cmo instalar packages binarios de software de terceros. Cmo compilar software de terceros desde la Coleccin de Ports. Cmo eliminar packages o ports instalados previamente. Cmo sobreescribir los valores por omisin que utiliza la coleccin de ports. Cmo encontrar la aplicacin adecuada. Cmo actualizar aplicaciones.
Y esto solamente si todo marcha bien. Si est instalando un software que no ha sido portado especcamente para FreeBSD, puede que sea necesario editar el cdigo para que funcione correctamente. Si lo desea puede continuar instalando software de la forma tradicional en FreeBSD, aunque FreeBSD dispone de dos tecnologas que le pueden ahorrar gran cantidad de tiempo y esfuerzo: los packages y los ports. En el momento de escribir esto existen ms de 24,000 aplicaciones de terceros.
116
Captulo 4. Instalacin de aplicaciones: packages y ports En cualquier aplicacin el paquete de FreeBSD es un solo chero que tiene que descargar. Los paquetes contienen copia de los programas binarios precompilados de la aplicacin, as como cualquier chero de conguracin o documentacin. Los paquetes descargados se pueden manipular con las herramientas de gestin de paquetes de FreeBSD: pkg_add(1), pkg_delete(1), pkg_info(1), etc. Instalar una aplicacin nueva puede realizarse con una sola orden. Un port de FreeBSD es una coleccin de cheros diseada para automatizar el proceso de compilacin desde el cdigo fuente. Recuerde que existen ciertos pasos que deber llevar a cabo para compilar un programa por usted mismo (descargar, desempaquetar, parchear, compilar e instalar). Los cheros que conforman un port permiten que el sistema se encargue de todo esto. Usted ejecuta un conjunto simple de rdenes y el cdigo fuente se descarga, desempaqueta, parchea, compila e instala. De hecho el sistema de ports tambin se puede usar para crear paquetes que posteriormente se pueden manipular con pkg_add y las dems utilidades de gestin de packages que veremos en breve. Tanto el sistema de ports como el de paquetes entienden las dependencias. Suponga que desea instalar una aplicacin que depende de que una biblioteca especca est instalada. Tanto la biblioteca como la aplicacin existen en FreeBSD como paquete o port. Si utiliza pkg_add o el sistema de ports para instalar la aplicacin ambos notarn que la biblioteca no est instalada y procedern a instalarla antes que nada. Dado que ambas tecnologs son similares quizs se pregunte por qu FreeBSD se toma la molesta de contar con ambas. Los Packages y los Ports tienen sus propias ventajas, as que cul utilizar depender de su eleccin en cada momento. Ventajas de los Paquetes
El chero tarball de un package es normalmente ms pequeo que el tarball con el cdigo fuente de la aplicacin. Los paquetes no requieren compilacin. En el caso de aplicaciones grandes, como Mozilla, KDE, o GNOME este detalle puede ser importante, especialmente si usa un equipo lento. Los paquetes no requieren que comprenda el proceso que envuelve el compilar software bajo FreeBSD.
Normalmente los paquetes se compilan con opciones conservadoras, en virtud del gran nmero de equipos donde se instalarn. Al instalar como port puede usted editar las preferencias para (por ejemplo) generar cdigo especco para un procesador Pentium IV o Athlon. Algunas aplicaciones tienen opciones sobre lo que pueden y lo que no pueden hacer. Por ejemplo Apache se puede congurar con una gran variedad de opciones. Al compilarlo desde los ports usted no tiene por que aceptar las opciones predenidas, puede seleccionar que opciones desea. En algunos casos existen varios paquetes para la misma aplicacin con diferentes opciones. Por ejemplo, Ghostscript est disponible como paquete ghostscript y como paquete ghostscript-nox11, dependiendo de si usted cuenta o no con servidor X11. En este caso decidir puede ser sencillo e incluso pueden facilitarse packages con ambas opciones, pero elegir se puede volver un problema si hay ms de una o dos opciones de compilacin.
Las condiciones de la licencia de algunas aplicaciones prohiben la distribucin de binarios. Solo permiten la distribucin del cdigo fuente. Existe gente que no confa en los binarios. Al menos puede usted (en teora) revisar el cdigo fuente y localizar problemas potenciales.
117
Si tiene parches locales necesitar el cdigo fuente para poder aplicarlos. Hay gente a la que le gusta tener el cdigo fuente para poder leerlo en ratos de ocio, modicarlo, tomar partes prestadas (cuando la licencia lo permite, claro est), etc.
Para tener constancia de los ports actualizados, suscrbase a la lista de correo sobre los ports de FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports) y a la lista de correo sobre errores en los ports de FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs).
AvisoAntes de instalar cualquier aplicacin consulte http://vuxml.freebsd.org para comprobar los posibles problemas de seguridad relacionados con ella. Tambin puede instalar security/portaudit que automticamente comprobar las vulnerabilidades conocidas de todas las aplicaciones instaladas; tambin lo comprobar antes de compilar cualquier port. Mientras tanto, puede usar portaudit -F -a despus de instalar algunos packages.
El resto de este captulo le explicar cmo usar los ports y los packages para instalar software de terceros en FreeBSD.
El sitio web de FreeBSD mantiene una lista (actualizada y que admite bsquedas) de todas las aplicaciones disponibles para FreeBSD en la direccin http://www.FreeBSD.org/ports/ (http://www.freebsd.org/ports/index.html). Esta base esta dividida en categoras, y puede buscar por nombre (si lo sabe) o bien listar las aplicaciones disponibles en cierta categora.
Dan Langille mantiene FreshPorts en http://www.FreshPorts.org/. FreshPorts verica los cambios en las aplicaciones del rbol de ports, y le permite seguir uno o ms ports, sobre los que le enviarn un correo cada vez que se actualicen.
Si no conoce el nombre de la aplicacin que desea pruebe a usar un sitio como FreshMeat (http://www.freshmeat.net/) para encontrar una aplicacin; despus consulte el sitio web de FreeBSD para ver si la aplicacin ha sido portada.
Si sabe el nombre exacto del port y solo necesita saber en qu categoria est puede usar whereis(1). Simplemente escriba whereis fichero, donde fichero es el programa que quiera instalar. Si est en su sistema, le dir dnde est:
# whereis lsof
lsof: /usr/ports/sysutils/lsof
Esto nos dice que lsof (una utilidad de sistema) est en el directorio /usr/ports/sysutils/lsof.
118
Otra forma de encontrar un port en particular es usando el mecanismo de bsqueda integrado en la coleccin de ports. Para poder usar esta opcin de bsqueda debe estar en el directorio /usr/ports. Una vez en ese directorio ejecute make search name=nombre-del-programa, donde nombre-del-programa es el nombre del programa que desea encontrar. Por ejemplo, si busca lsof:
# cd /usr/ports # make search name=lsof
lsof-4.56.4 /usr/ports/sysutils/lsof Lists information about open files (similar to fstat(1)) obrien@FreeBSD.org sysutils
Debe prestar especial atencin a la lnea Path:de la salida, porque es la que indica dnde puede encontrar el port. El resto de informacin no se necesita para instalar el port. Si quiere hacer una bsqueda ms a fondo utilice make search key=cadena donde cadena es el trmino que busca. Podr buscar nombres de ports, comentarios, descripciones y dependencias; tambin se puede usar para encontrar ports que tengan relacin con algn tema en particular si no conoce el nombre del programa que busca. En ambos casos la cadena de bsqueda no distingue entre maysculas y minsculas. Buscar LSOF dar los mismos resultados que buscar lsof.
Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230230This machine is in Vienna, VA, USA, hosted by Verio. 230Questions? E-mail freebsd@vienna.verio.net. 230230230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
119
Si no tiene una fuente local de packages (por ejemplo un CDROM de FreeBSD) probablemente la mejor opcin sea utilizar el argumento -r de pkg_add(1), que har que determine automticamente el formato del objeto correcto, para posteriormente descargarlo e instalarlo desde un FTP.
# pkg_add -r lsof
En el ejemplo anterior el package correspondiente se descargar e instalar sin intervencin del usuario. Si desea utilizar una rplica (mirror) de packages que no sea el sitio principal de FreeBSD solo tiene congurar la variable de entorno PACKAGESITE correctamente para sobreescribir el sitio predenido. pkg_add(1) utiliza fetch(1) para descargar los cheros, tomando como referencia varias variables de entorno, como FTP_PASSIVE_MODE, FTP_PROXY y FTP_PASSWORD. Quizs deba modicar alguna de estas si se encuentra detrs de un cortafuegos, o usa un proxy FTP/HTTP. Consulte fetch(3) si quiere ver una lista completa. Observe tambin que en el ejemplo anterior usamos lsof en vez de lsof-4.56.4. Cuando usamos la opcin de descarga remota no es necesario especicar la versin del paquete. pkg_add(1) descargar automticamente la ltima versin de la aplicacin.
Nota: pkg_add(1) descargar la ltima versin de su aplicacin si usa FreeBSD-CURRENT o FreeBSD-STABLE, pero si usa una versin -RELEASE, descargar la versin del package que se construy con dicha versin. Es posible congurar esto sobreescribiendo la variable de entorno PACKAGESITE.
Los packages se destribuyen en formatos .tgz y .tbz. Puede encontrarlos en ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, o en la distribucin de FreeBSD en CD-ROM. Todos los CDs en el set de 4 CDs de FreeBSD (y en el PowerPak, etc.) contienen packages en el directorio /packages. La estructura de los packages es similar a la del arbol de /usr/ports. Cada categora tiene su propio directorio, y todos los paquetes se pueden encontrar dentro del directorio All. La estructura del directorio de packageckages es idntica a la de los ports, y funcionan como un todo para conformar el sistema de paquetes/ports.
4.4.3. Miscelnea
Toda la informacin de los packages se guarda en /var/db/pkg. Ahl encontrar la lista completa de paquetes instalados y las descripciones de los mismos.
120
Asegrese de que /usr/ports est vaco antes de ejecutar csup por primera vez. Si ya tiene la Coleccin de Ports porque la ha instalado por otros medios csup no purgar los parches de ports eliminados. 1. Ejecute csup:
# csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
Cambie cvsup.FreeBSD.org por algn otro servidor CVSup que tenga cerca. Consulte Rplicas CVSup (Seccin 30.2.2), donde encontrar una lista completa de las rplicas CVSup.
Nota: Puede usar una versin de ports-supfile confeccionada a su gusto, por ejemplo para evitar tener que indicarle el nombre del servidor CVSup a mano. 1. 2. 3. 4. Haga lo siguiente: como root copie /usr/share/examples/cvsup/ports-supfile en otro sitio, por ejemplo /root o su directorio /home. Edite ports-supfile. Reemplace CHANGE_THIS.FreeBSD.org por un servidor CVSup que est cerca de donde est usted. Consulte Rplicas CVSup (Seccin 30.2.2) si necesita ver una lista completa de las mismas. Ejecute csupdel siguiente modo:
# csup -L 2 /root/ports-supfile
2.
Al ejecutar csup(1) descargar y aplicar todos los cambios recientes que haya sufrido la Coleccin de Ports, pero tenga en cuenta que no actualizar ninguno de los ports que ya tenga instalados en su sistema.
121
Captulo 4. Instalacin de aplicaciones: packages y ports Mediante portsnap Portsnap es un mtodo alternativo de distribuir la Coleccin de Ports. Se incluy por primera vez en FreeBSD 6.0. Puede instalar portsnap(8) en versiones anteriores de FreeBSD como port (ports-mgmt/portsnap) o como package:
# pkg_add -r portsnap
1.
Puede saltarse esta paso a partir de FreeBSD 6.1-RELEASE y en versiones recientes de Portsnap (port o package). /usr/ports se crear automticamente la primera vez que ejecute portsnap(8). En versiones anteriores de portsnap haba que crear un /usr/ports vaco si no exista previamente:
# mkdir /usr/ports
2.
Descargue una instantnea comprimida de la Coleccin de Ports en /var/db/portsnap. Hecho esto puede desconectar de Internet si quiere.
# portsnap fetch
3.
Si est ejecutando Portsnap por vez primera debe extraer la instantnea en /usr/ports:
# portsnap extract
Mediante Sysinstall Este mtodo implica el uso de sysinstall para instalar la Coleccin de Ports. 1. Como usuario root ejecute sysinstall (/stand/sysinstall en cualquier versin previa a FreeBSD 5.2); del siguiente modo:
# sysinstall
2. 3. 4. 5. 6. 7.
Posicinese en la opcin Congure y pulse Intro. Seleccione la opcin Distributions y pulse Intro. Seleccione la opcin ports y pulse la barra espaciadora. Seleccione el medio de instalacin deseado (CDROM, FTP, etc.) Dirjase a la opcin Exit y pulse Intro. Pulse X para salir de sysinstall.
Un Makefile. Este Makefile contiene diversas sentencias que le indican al sistema cmo compilarlo y dnde instalarlo en su sistema.
122
Un chero distinfo. Este chero contiene informacin sobre los cheros que se debe descargar para poder compilar el programa, as como el identicador checksum, que se usa para comprobar mediante md5(1) que la descarga ha sido correcta y que el la integridad del chero est garantizada. Un directorio files. Este directorio contiene los parches necesarios para compilar e instalar el programa en su sistema FreeBSD. Bsicamente los parches son pequeos cheros que especican cambios en cheros concretos. Su formato es en texto plano y suelen decir cosas como borra la lnea 10 o Cambia la lnea 26 por esto. Estos parches tambin se conocen como diffs ya que se generan con diff(1). Es posible que este directorio tambi contenga algn otro chero necesario para compilar e instalar el port.
Un chero pkg-descr. Es una descripcin ms detallada del programa. En algunas ocasiones ocupa varias lneas. Un chero pkg-plist. Es una lista de todos los cheros que instalar el port. Tambin le indica al sistema de ports qu cheros eliminar durante la desinstalacin del programa.
Algunos ports tienen otros cheros, como pkg-message. El sistema de ports los usa para gestionar situaciones especiales. Si desea conocer los detalles, incluso sobre los ports en general, consulte el libro FreeBSD Porters Handbook (http://www.FreeBSD.org/doc/en_EN.ISO8859-1/books/porters-handbook/index.html). El port incluye las instrucciones necesarias para obtener software a partir del cdigo fuente, pero no incluye el cdigo. Puede obtener el cdigo desde un CDROM o desde Internet. El cdigo se distribuye del modo que el autor estime oportuno. Normalmente es un chero tar comprimido con gzip, pero puede comprimirse con otra herramienta o incluso no estar comprimido. El cdigo del programa, venga como venga, se llama distle. A continuacin veremos los dos mtodos de instalacin de un port.
Nota: Debe ser el usuario root para instalar ports.
AvisoAntes de instalar cualquier port asegrese de tener la Coleccin de Ports actualizada y de comprobar en http://vuxml.freebsd.org/ la existencia de posibles problemas de seguridad que pudiera tener el port. Puede realizar la comprobacin de seguridad con portaudit antes de instalar cualquier aplicacin. Esta herramienta est en la Coleccin de Ports (security/portaudit). Le rogamos que al menos considere ejecutar portaudit -F antes de instalar un port nuevo para que descargue la nueva base de datos de vulnerabilidades. Durante la comprobacin diaria de seguridad actualizar la base de datos y har una auditora del sistema. Para ms informacin lea las pginas de manal de portaudit(1) y periodic(8).
La Coleccin de Ports asume que tiene usted conexin con Internet. Si no es as tendr que disponer de una copia del distle en /usr/ports/distfiles. El primer paso es ubicarse en el directorio del port que desea instalar:
# cd /usr/ports/sysutils/lsof
Una vez en el directorio lsof puede ver el esqueleto del port. El siguiente paso es compilar el port. Solamente tiene que teclear make en el prompt. Una vez hecho ver algo como esto:
# make
>> lsof_4.57D.freebsd.tar.gz doesnt seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ...
123
Una vez que acabe la compilacin se le devolver el control del prompt. El siguiente paso es instalar el port. Para ello bastar con que aada una palabra a la orden make: esa palabra es install:
# make install
===> Installing for lsof-4.57 ... [La salida de la instalacin se ha eliminado] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges.
#
Una vez que vuelva usted al prompt podr ejecutar la aplicacin que acaba de instalar. Dado que lsof es un programa que se ejecuta con privilegios altos se le ha mostrado una advertencia de seguridad. Durante la compilacin e instalacin es posible que hayan aparecido otros. Le recomendamos que borre el directorio que contiene todos los cheros temporales necesarios durante la compilacin. No solo consume valioso espacio en disco sino que puede dar problemas cuando vaya a actualizar el port a una versin ms reciente.
# make clean
===>
#
Nota: Puede ahorrarse teclear dos pasos si para instalar un port teclea make install clean en lugar de make, make install y make clean como tres pasos separados.
Nota: Algunas shells mantienen una cach de rdenes disponibles en los directorios que aparecen en la variable de entorno PATH con el n de acelerar las operaciones de bsqueda de ejecutables de esas rdenes. Si usa una de esas shells tendr que utilizar la orden rehash tras instalar un port o no podr ejecutar aplicaciones
124
Algunos DVD-ROM de terceros, como el FreeBSD Toolkit de FreeBSD Mall (http://www.freebsdmall.com/) contienen distles. Puede usarlos con la Coleccin de Ports. Monte el DVD-ROM en /cdrom. Si utiliza un punto de montaje diferente asigne a CD_MOUNTPTS el valor adecuado. Los distles se irn copiando automticamente a medida que vayan siendo necesarios.
Nota: Por favor, tenga en cuenta que la licencia de unos cuantos ports muy concretos no permite su distribucin en CD-ROM. Puede deberse a que es necesario rellenar un formulario de registro antes de descargarlo, porque la redistribucin no est permitida o por otra razn. Si quiere instalar un port que no est en el CD-ROM tendr que tener salida a Internet.
El sistema de ports utiliza fetch(1) para descargar cheros; en este proceso intervienen varias variables de entorno, como FTP_PASSIVE_MODE, FTP_PROXY, y FTP_PASSWORD. Si est detrs de un cortafuegos tendr que asignar valores a una o ms de estas variables, as como si necesita utilizar un proxy FTP/HTTP. Consulte fetch(3), donde econtrar una lista detallada. La opcin make fetch se cre para los usuarios que no disponen de conexin contnua. Ejecute esta orden en el directorio raz (/usr/ports) y se descargarn todos los cheros necesarios. Esta orden tambin funciona en directorios situados ms abajo, por ejemplo /usr/ports/net. Tenga en cuenta que si un port depende de libreras u otros ports stos distles no se descargarn, a menos que reemplace fetch por fetch-recursive, que se encargar de descargar todas las dependencias de cada port.
Nota: Si quiere compilar todos los ports de una categora y de una sola vez ejecutando la orden make en el directorio raz, de muy similar manera que lo que se acaba de ver con makefetch. Tenga en cuenta que esto es bastante peligroso porque algunos ports no pueden coexistir. Tambin se dan casos de ports que instalan instalan dos cheros diferentes con el mismo nombre.
En algunos casos (raros) el usuario tendr que descargar los tarball de un sitio que no es el que se guarda en la variable de entorno MASTER_SITES (el sitio desde el que se descargan todos los dems normalmente). Puede sobreescribir la opcin MASTER_SITES con la siguiente orden:
# cd /usr/ports/directory # make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch
125
Captulo 4. Instalacin de aplicaciones: packages y ports 4.5.2.1. Sobreescribir directorios por omisin de ports Algunas veces es til (u obligatorio) utilizar un directorio de trabajo o un target distinto al que tenemos por omisin. Las variables de entorno WRKDIRPREFIX y PREFIX pueden sobreescribirse segn nuestra conveniencia. Veamos un ejemplo:
# make WRKDIRPREFIX=/usr/home/ejemplo/ports install
combinar ambas; (ocupa demasiado para mostrarlo en una pgina, pero la idea general queda clara). Puede asignar valores a estas variables del mismo modo que a cualquier otra de su entorno. Consulte la documentacin de su shell para ms informacin.
4.5.2.2. Uso de imake Algunos ports que usan imake (un componente del Sistema X Window) no funcionan correctamente con PREFIX e insistirn en instalarse en /usr/X11R6. Del mismo modo algunos ports de Perl ignoran PREFIX y se instalan en el rbol de Perl. Hacer que estos ports respeten PREFIX es difcil y a veces imposible.
4.5.2.3. Recongurar ports Al compilar ciertos ports se le presentar un men basado en ncurses en el cual podr elegir entre ms o menos opciones de compilacin. No es raro que los usuarios quieran volver a usar ese men para aadir, quitar o cambiar opciones una vez que el port ya est compilado. Hay bastantes formas de hacerlo. Una manera es entrar al directorio que contiene el port y teclear make config, que har que se le presente de nuevo el men con las opciones que estuvieran seleccionadas previamente. Otra opcin es usar la orden make showconfig, que le mostrar todas las opciones de conguracin del port. Hay otra opcin ms, make rmconfig, que borrar todas las opciones que estuvieran seleccionadas y le permitir por tanto empezar desde cero. Todas estas opciones y muchas ms las encontrar descritas con gran detalle en ports(7).
126
4.5.4.1. /usr/ports/UPDATING Una vez actualizada la Coleccin de Ports (y antes de intentar actualizar ningn port) debe consultar
/usr/ports/UPDATING. Este chero describe todas las novedades, problemas que pueden encontrarse y pasos que
deben seguir los usuarios al actualizar un port; hay cambios de formato, cambios de ubicacin de cheros de conguracin o incompatibilidades con versiones anteriores. Si UPDATING se contradice de cualquier modo con lo que lea aqu tenga muy encuenta que lo que aparezca en UPDATING tiene prioridad absoluta.
4.5.4.2. Actualizacin de ports con portupgrade La aplicacin portupgrade se dise para actualizar fcilmente los ports instalados en un sistema. Puede instalarla desde el port ports-mgmt/portupgrade. La instalacin es como al de cualquier otro port, use la orden make install clean command:
# cd /usr/ports/ports-mgmt/portupgrade # make install clean
Compruebe la lista de ports instalados con pkgdb -F y arregle todas las inconsistencias que aparezcan. Le recomendamos que haga esta comprobacin de forma regular y siempre antes de una actualizacin. Si ejecuta portupgrade -a portupgrade intentar actualizar todos y cada uno de los ports instalados en su sistema. Utilice el parmetro -i si quiere que le pida conrmacin antes de actualizar cada uno de los ports.
# portupgrade -ai
Si solamente quiere actualizar una sola aplicacin (y no absolutamente todos los ports) utilice la orden <portupgrade nombre-de-aplicacin. Aada el modicador -R si quiere que portupgrade actualice antes todos los ports de los que depende la aplicacin en cuestin.
# portupgrade -R firefox
Si quiere usar packages en lugar de ports use el modicador -P ag. Con esta opcin portupgrade busca en los directorios locales que aparezcan en PKG_PATH o descarga los packages desde un sitio remoto si es que no los encuentra en local. Si es imposible encontrar los packages ni en local ni en remoto portupgrade utilizar ports. Si no quiere usar ports pase lo que pase utilice el modicador -PP.
# portupgrade -PP gnome2
Si quiere solamente descargar los distles (o los packages, usando -P) sin compilar ni instalar nada, use -F. Para ms informacin consulte portupgrade(1).
127
Captulo 4. Instalacin de aplicaciones: packages y ports 4.5.4.3. Actualizacin de ports con portmanager Portmanager es otra aplicacin pensada para la actualizacin sencilla de ports instalados en el sistema. Puede encontrarla en ports-mgmt/portmanager:
# cd /usr/ports/ports-mgmt/portmanager # make install clean
Puede actualizar todos los ports que tenga instalados con una sola orden:
# portmanager -u
Si usa el modicador -ui se le pedir conrmacin a cada paso que Portmanager vaya a dar. Portmanager tambin puede usarse para instalar nuevos ports. A diferencia del habitual make install clean actualizar todos los ports que dependan antes de compilar e instalar ese port que queramos instalar.
# portmanager x11/gnome2
Si aparecen problemas con las dependencias del port que quiere instalar puede usar Portmanager para recompilar todos ello en el orden correcto. Una vez que acabe el port que estaba dando problemas ser tambin recompilado.
# portmanager graphics/gimp -f
4.5.4.4. Actualizacin de ports con portmaster Portmaster es otra aplicacin para actualizar ports. Portmaster se dise para que utilizara las herramientas del sistema base (es decir, no depende de otros ports) y utiliza la informacin que se almacena en el directorio /var/db/pkg/ para determinar qu port es el que hay que actualizar. Puede encontrarlo en ports-mgmt/portmaster:
# cd /usr/ports/ports-mgmt/portmaster # make install clean
Root ports (no tienen dependencias, ningn port depende de ellos) Trunk ports (no tienen dependencias, otros ports dependen de ellos) Branch ports (tienen dependencias, otros ports dependen de ellos) Leaf ports (tienen dependencias, ningn port depende de ellos)
Puede ver una lista de los ports instalados y buscar actualizaciones para ellos usando el modicador -L :
# portmaster -L
===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports
128
Con la siguiente orden puede actualizar todos los ports del sistema:
# portmaster -a
Nota: Por omisin Portmaster guardar una copia de seguridad (un package) de cada port antes de borrarlo. Si la instalacin de la nueva versin funciona Portmaster borrar el package. Si utiliza -b le dir a Portmaster que no borre automticamente el package. Si usa el modicador -i arrancar Portmaster en modo interactivo, lo que signica que le pedir conrmacin antes de actualizar cada port.
Si se encuentra con errores durante el proceso de actualizacin puede utilizar el modicador -f para actualizar o recompilar todos los ports:
# portmaster -af
Tambin puede usar Portmaster para instalar nuevos ports en el sistema, actualizando todas sus dependencias antes de compilar e instalar el nuevo port:
# portmaster shells/bash
Rpidamente acumular gran cantidad de viejas distribuciones de cdigo en distfiles. Puede borrarlos a mano, pero tambin puede usar la siguiente orden para borrar todos los distles que no tengan relacin con ningn port:
# portsclean -D
129
Captulo 4. Instalacin de aplicaciones: packages y ports Tambin puede borrar todos los distles sin relacin con ningn port instalado en el sistema:
# portsclean -DD
No olvide borrar los ports instalados una vez que deja de necesitarlos. Hay una herramienta muy til para ayudar a automatizar esta tarea: ports-mgmt/pkg_cutleaves.
Use pkg_info(1) para ver qu cheros se instalaron y dnde. Por ejemplo, si instaln el paquete Un-Package 1.0.0, lo siguiente:
# pkg_info -L un-package-1.0.0 | less
mostrar los cheros instalados por el paquete. Preste especial atencin a los cheros en el directorio man/, que son las pginas de ayuda y los del directorio etc/, que contiene los cheros de conguracin; bajo el directorio doc/ podr encontrar informacin ms detallada. Si no est seguro de qu versin del paquete ha instalado, tecle:
# pkg_info | grep -i un-package
y ver todos los paquetes que se llaman un-package. Reemplace un-package en la lnea de rdenes que tenga que usar en su caso.
Una vez que ha identicado las pginas de manual de la aplicacin revselas mediante man(1). Revise tambin los cheros de conguracin, as como cualquier otro tipo de documentacin que venga con el software. Si la aplicacin tiene sitio web vistelo. Es muy posible que encuentre ms documentacin, listas de preguntas frecuentes (FAQ), etc. Si no sabe cul puede ser la direccin del sitio web examine la salida de la orden
# pkg_info un-package-1.0.0
a veces incluye una lnea WWW:, que contiene la direccin del sitio web de la aplicacin.
Los ports que deben arrancar con el sistema (como los servidores de Internet) normalmente instalaran un script de ejemplo en /usr/local/etc/rc.d. Debe revisar este script para comprobar que todo sea correcto, editarlo o renombrarlo si fuera necesario. Consulte Cmo arrancar servicios para ms informacin.
130
Captulo 4. Instalacin de aplicaciones: packages y ports 1. Consulte en la Base de datos de informes de error (http://www.freebsd.org/support.html#gnats) si ya se ha publicado un parche que lo solucione. Si es el caso puede aplicar aplicar el parche en su sistema. 2. Pida ayuda al responsable del mantenimiento (conocido como mantainer) del port. Tecle make maintainer o consulte el Makefile del port si no sabe cul es la direccin de correo del mantainer. Recuerde que debe incluir el nombre y la versin del port. Enve la lnea que contiene $FreeBSD: al principio del Makefile del port y salida con el error que obtiene al intentar usar la aplicacin.
Nota: Algunos ports no son responsabilidad de un individuo sino de una lista de correo. (http://www.freebsd.org/doc/en_US.ISO-8859-1/articles/mailing-list-faq/article.html) Muchas, aunque no todas, tienen un aspecto parecido a <freebsd-nombredelalista@FreeBSD.org>. Por favor, tngalo en cuenta cuando envie ese correo sobre el port que no funciona. Hay un caso especial: Los ports que tienen como mantainer <freebsd-ports@FreeBSD.org> en realidad no son responsabilidad de nadie. Los parches y el soporte, en caso de existir, vienen de la comunidad de usuarios y desarrolladores que estn suscritos a la lista. Por cierto, siempre hacen falta ms voluntarios.
Si no recibe respuesta utilice send-pr(1) para enviar un informe de errores. Consulte Cmo escribir informes de error (http://www.freebsd.org/doc/en_US.ISO8859-1/articles/problem-reports/article.html)) 1 3. Arreglarlo. El Porters Handbook incluye informacin detallada sobre la infraestructura de los ports, as que puede arreglar un port roto o incluso enviar su propio port. 4. Descargue el paquete de algn sitio FTP. El servidor principal de la coleccin de paquetes est en el directorio de paquetes (ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/) de ftp.FreeBSD.org pero asegrese de mirar antes en la rplica ms prxima. Esta es una forma de instalar aplicaciones ms fcil y ms rpida. Instale el paquete mediante pkg_add(1).
Notas
1. Hay traduccin al castellano de este artculo. Est aqu: http://www.freebsd.org/doc/es_ES.ISO8859-1/articles/problem-reports/article
131
5.1. Sinopsis
FreeBSD usa X11 para proporcionar una potente interfaz grca. X11 es una implementacin de cdigo abierto del sistema X Window que incluye Xorg y XFree86. En las versiones de FreeBSD hasta FreeBSD 4.10-RELEASE y FreeBSD 5.3-RELEASE el sistema X window que se instalar por defecto es XFree86, el servidor X11 distribuido por el proyecto XFree86. Despus de FreeBSD 5.3-RELEASE el sistema X Window pas a ser Xorg, el servidor X11 distribuido por la Fundacin X.Org. Este captulo cubre la instalacin y conguracin de X11 poniendo nfasis en Xorg. Si quiere informacin sobre la conguracin de XFree86 o versiones anteriores de Xorg consulte las versiones archivadas del Handbook de FreeBSD en http://docs.FreeBSD.org/doc/. Para mas informacin del hardware de vdeo que X11 soporta consulte la pgina web de Xorg (http://www.x.org/). Despus de leer este captulo usted sabr:
Cules son los diferentes componentes del sistema X Window y como interoperan. Cmo instalar y congurar X11. Cmo instalar y usar diferentes gestores de ventanas. Cmo usar tipos de letra TrueType en X11. Como preparar su sistema para iniciar la sesin de forma grca (XDM).
5.2. Entender X
Usar X por primera vez puede resultar chocante para alguien familiarizado con otros entornos grcos, como Microsoft Windows o Mac OS. No es necesario entender todos los detalles de los diferentes componentes de X y como interactan, pero un conocimiento bsico hace posible el sacarle ms provecho a la potencia de X.
132
5.2.1. ?Por qu X?
X no es el primer sistema de ventanas escrito para UNIX pero es el ms popular de todos ellos. El equipo original que desarroll X trabaj en otro sistema de ventanas antes de escribir X. Ese sistema se llam W (de Window que signica ventana en ingls). X era solo la siguiente letra en el alfabeto Romano. X se puede llamar X X Window System, X11 y de otras formas. Tambin puede usar el trmino X Windows para describir X11 si lo que quiere es ofender a algunas personas; si quiere saber ms sobre esto consulte X(7).
133
Captulo 5. El sistema X Window Inicio o algo similar; otros tienen diseos modicables, permitiendo un cambio completo del aspecto mediante un nuevo diseo. Estos gestores de ventanas, y muchos otros, estn en la categora x11-wm de los ports. Adems, los entornos de escritorio KDE y GNOME tienen sus propios gestores de ventanas integrados con el escritorio. Cada gestor de ventanas tiene diferentes mecanismos de conguracin; en algunos debe escribir el chero de conguracin a mano, otros tienen herramientas grcas para la mayor parte de la conguracin; y al menos uno (Sawsh) tiene un chero de conguracin escrito en un dialecto del lenguaje Lisp.
Poltica de foco: Otra responsabilidad del gestor de ventanas es la poltica de foco del ratn. Todos los sistemas de ventanas necesitan algo para elegir una ventana activa que recibir los eventos y tambin debieran indicar claramente qu ventana est activa. Una poltica muy popular es la de click to focus. Este es el modelo que utiliza Microsoft Windows, en el que una ventana se convierte en activa al recibir un clic del ratn. X no tiene ninguna poltica de foco. En lugar de eso el gestor de ventanas controla qu ventana tiene el foco en todo momento. Los diferentes gestores de ventanas tienen diferentes polticas de foco. Todos soportan la poltica clic-para-foco y la mayora de ellos tambin soportan otros mtodos. Las polticas de foco ms populares son: el-foco-sigue-al-ratn (focus-follows-mouse) La ventana que esta bajo el puntero del ratn es la ventana que tiene el foco. No es necesario que la ventana est encima de las dems ventanas. El foco se cambia al apuntar a otra ventana, aunque no es necesario hacer clic en ella. foco-descuidado sloppy-focus Esta poltica es una pequea extensin de el-foco-sigue-al-ratn. En el-foco-sigue-al-ratn si el ratn se mueve sobre la ventana raz (o fondo) ninguna ventana tiene el foco y las pulsaciones del teclado se perdern. Con la poltica foco-descuidado el foco slo cambia cuando el cursor entra en una nueva ventana y no cuando sale de la ventana actual. click-para-foco click-to-focus La ventana activa se selecciona con un clic del ratn. La ventana se puede levantar y aparecer delante de las dems ventanas. Todas las pulsaciones de teclado sern redirigidas a esa ventana aunque el cursor se mueva a otra ventana. Muchos gestores de ventanas soportan otras polticas o variaciones de estas. Consulte la documentacin del propio gestor de ventanas.
5.2.4. Widgets
La idea de X de hacer herramientas en vez de normas y se extiende a los widgets que se ven en la pantalla de cada aplicacin. Widget es un trmino que abarca todos los objetos en el interfaz de usuario que pueden pulsarse con el ratn manipularse de alguna manera: botones, check boxes, listas, etc. Microsoft Windows los llama controles.
134
Captulo 5. El sistema X Window Microsoft Windows y Mac OS de Apple tienen una poltica de widgets muy rgida. Se supone que los desarrolladores de aplicaciones comparten el aspecto. En X no se consider imponer un estilo grco o un conjunto de widgets al que adherirse. Como resultado no se puede esperar que las aplicaciones de X tengan un aspecto homogneo. Hay varios conjuntos de widgets y variaciones muy populares como el widget Athena creado en el MIT, Motif (donde los widgets de Microsoft Windows fueron modelados, con todos los bordes biselados y tres tonos de gris), OpenLook, y otros. Las aplicaciones ms modernas de X usan un conjunto de widgets con mejor aspecto, o Qt, utilizado por KDE, o GTK+, que usa el proyecto GNOME. Se intenta que el aspecto del escritorio de UNIX sea parecido, lo que hace la vida ms fcil al usuario novato.
Nota: Si quiere compilar e instalar Xorg entero, asegrese de tener como mnimo 2GB de espacio disponible.
Si lo preere puede instalar Xorg con packages. Cuando utilice la capacidad de pkg_add(1) para instalar packages que descargue remotamente recuerde que no debe escribir el nmero de versin. pkg_add(1) descargar automticamente la ltima versin de la aplicacin.. Veamos qu es lo que hay que hacer para descargar e instalar el package de Xorg:
# pkg_add -r xorg
Nota: El anterior ejemplo instala la distribucin X11 completa, es decir, servidores, clientes, tipos de letra, etc. Hay packages y ports con cada uno de esos elementos por separado.
En el resto del captulo se explica cmo congurar X11 y cmo congurar un entorno de escritorio que le resulte productivo.
135
X11 usa las especicaciones del monitor para determinar la resolucin y la frecuencia de refresco a la que funcionar. Estas especicaciones se pueden encontrar normalmente en la documentacin que viene con el monitor o en la web del fabricante. Se necesitan dos rangos de nmeros: la frecuencia de refresco horizontal y la vertical. El chipset de la tarjeta de vdeo dene qu controlador utilizar X11 para comunicarse con el hardware grco. Con la mayora de chipsets es posible detectarlo automticamente pero es til saberlo en caso de que la deteccin automtica no funcione. La memoria de la tarjeta grca determina la resolucin y la profundidad de color a la que el sistema funcionar. Es importante saberlo para que el usuario conozca las limitaciones del sistema.
Si no funciona, o si la conguracin por omisin no es aceptable, hay que congurar X11 a mano.
Nota: Ciertos entornos de escritorio como GNOME, KDE o XFce tienen herramientas que permiten al usuario congurar fcilmente parmetros de la pantalla como la resolucin. Si la conguracin por omisin no sirve y tiene idea de instalar un entorno de escritorio puede seguir adelante tranquilamente con la instalacin del entorno de escritorio y utilice la herramienta que el software que instale le facilite.
La conguracin de X11 es un proceso que consta de mltiples pasos. El primero es generar un chero inicial de conguracin. Como superusuario teclee:
# Xorg -configure
Esto generar un chero de conguracin bastante esquemtico pero completo en /root llamado xorg.conf.new (si ha utilizado su(1) o ha entrado directamente como superusuario afectar al valor que tenga la variable de directorio $HOME). X11 intentar probar el hardware grco del sistema y escribir un chero de conguracin en el que registrar los controladores de dispositivo adecuados para hacer funcionar el harware que haya detectado. El siguiente paso es probar el chero generado para vericar si Xorg puede funcionar con el hardware grco del sistema. Para ello teclee:
# Xorg -config xorg.conf.new
Si aparece una rejilla negra y gris junto con el cursor del ratn con forma de X es que la conguracin ha tenido xito. Para salir de la prueba pulse simultneamente Ctrl+Alt+Retroceso.
Nota: Si el ratn no funciona tendr que congurarlo antes de continuar. Consulte la Seccin 2.10.10 en el captulo de instalacin de FreeBSD.
136
Captulo 5. El sistema X Window Despus modique el chero xorg.conf.new a su gusto. Abra el chero con un editor de texto (como emacs(1) o ee(1)). Primero aada las frecuencias del monitor. Estas suelen estar expresadas en frecuencia de refresco horizontal y vertical. Estos valores se aaden al chero xorg.conf.new en la seccin "Monitor":
Section "Monitor" Identifier VendorName ModelName HorizSync VertRefresh EndSection
Las palabras HorizSync y VertRefresh podran no existir en el chero de conguracin. Si no existen es necesario aadirlas con la frecuencia horizontal correcta puesta despus de la palabra HorizSync y la frecuencia vertical correcta despus de la palabra VertRefresh. En el ejemplo anterior se pusieron las frecuencias del monitor. X permite usar las caractersticas DPMS (Energy Star) con los monitores que lo soportan. El programa xset(1) controla el timeout, y puede forzar los modos standby, suspendido o apagado. Si desea habilitar las caractersticas DPMS para su monitor tendr que aadir la siguiente lnea en la seccin monitor:
Option "DPMS"
Agrege a su xorg.conf.new la resolucin por omisin y la profundidad de color deseada. Esto se dene en la seccin "Screen":
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" EndSubSection EndSection
La palabra DefaultDepth describe la profundidad de color a la que arrancar por omisin. Esto puede sobrescribirse con el argumento -bpp de Xorg(1) (o XFree86(1)). La palabra Modes describe la resolucin a la que funcionar para esa profundidad de color. Observe que slo los modos estndar VESA estn soportados por el hardware grco. En el ejemplo anterior la profundidad de color es 24 bits por pixel. En esta profundidad de color la resolucin aceptada es 1024 por 768 pixels. Para acabar guarde el chero de conguracin y prubelo usando el modo de prueba descrito anteriormente
Nota: Una de las herramientas disponibles para ayudarle con el proceso de solucin de problemas es el chero de logs, que contiene informacin de cada dispositivo al que el servidor X11 se conecta. Los logs (o bitcoras) de Xorg se pueden encontrar en /var/log/Xorg.0.log El nombre exacto del chero de log puede variar entre Xorg.0.log y Xorg.8.log y as sucesivamente.
137
Captulo 5. El sistema X Window Si todo ha ido bien ha llegado el momento de ubicar el chero de conguracin donde Xorg(1) pueda encontrarlo. Puede dejarlo en /etc/X11/xorg.conf o /usr/local/etc/X11/xorg.conf.
# cp xorg.conf.new /etc/X11/xorg.conf
El proceso de conguracin de X11 ha concluido. Arranque Xorg mediante startx(1). Puede tambin arrancar el servidor X11 utilizando xdm(1).
Nota: Existe tambin una herramienta grca de conguracin en X11, xorgcfg(1). Permite denir de forma interactiva su conguraci mediante la eleccin de los controladores y las opciones adecuadas. Este programa tambin puede usarse desde consola mediante la orden xorgcfg -textmode. Para ms informacin consulte la pgina de manual de xorgcfg(1). Puede usar tambin xorgcong(1). Este programa es una herramienta orientada a consola que es bastante menos atractiva para el usuario, pero que puede funcionar en situaciones en las que otras herramientas no sirven.
5.4.3.2. Aadir una pantalla panormica a nuestro sistema A lo largo de esta seccin se asumen unos mnimos de soltura con ciertos aspectos de conguracin avanzada. Si Si las herramientas estndar de conguracin que se han descrito previamente no le ayudan a tener una conguracin funcional busque en los cheros de log, ah encontrar informacin suciente para lograrlo. Tendr que utilizar un editor de texto a lo largo de estas instrucciones. Los formatos actuales de pantalla panormica, (tambin conocidas como Widescreen, WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, etc, soportan formatos de 16:10 y 10:9 o aspectos-tasa que pueden ser problemticos. Veamos algunos ejemplos de resoluciones de pantalla en formatos 16:10:
138
Captulo 5. El sistema X Window At some point, it will be as easy as adding one of these resolutions as a possible Mode in the Section "Screen" as such:
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1680x1050" EndSubSection EndSection
Xorg se basta y se sobra para recabar la informacin de resolucin de su pantalla panormica mediante la informacin I2C/DDC, as que sabe qu frecuencias y resoluciones puede manejar el monitor. Si esas ModeLines no existen en los controladores tendr usted que ayudar un poco a Xorg. Lea atentamente el contenido de /var/log/Xorg.0.log; de l podr extraer suciente informacin como para crear un ModeLine que funcione. Todo lo que tiene que hacer es buscar informacin que se parezca a esta:
(II) (II) (II) (II) (II) MGA(0): MGA(0): MGA(0): MGA(0): MGA(0): Supported additional Video Mode: clock: 146.2 MHz Image Size: 433 x 271 mm h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0 v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0 Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz
Esta informacin se llama informacin EDID. Para crear una ModeLine a partir de estos datos solamente tiene que poner los nmeros en el orden correcto:
ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>
Como ve, con un poco de edicin hemos culminado la tarea y X debera ya poder arrancar sin problemas en su nuevo monitor panormico.
139
Proceda del mismo modo con los FreeFonts o cualesquiera otras. Para que el servidor X las detecte aada la siguiente lnea al chero de conguracin de X (/etc/X11/xorg.conf:
FontPath "/usr/X11R6/lib/X11/fonts/URW/"
Esto funcionar hasta que la sesin X se cierre a menos que lo aada a su chero de inicio (~/.xinitrc en el caso de una sesin startx normal o ~/.xsession si hace login desde un gestor grco como XDM). Una tercera forma sera usando el nuevo chero /usr/X11R6/etc/fonts/local.conf: consulte la seccin de anti-aliasing.
Ahora haga un directorio para los tipos TrueType (por ejemplo /usr/X11R6/lib/X11/fonts/TrueType) y copie todos los tipos TrueType en este directorio. Recuerde que los tipos TrueType no se pueden coger directamente de un Macintosh; tienen que estar en formato UNIX/MS-DOS/Windows para usarlas con X11. Una vez que los cheros se hayan copiado en este directorio use ttmkfdir para crear un chero fonts.dir, para que el representador de tipos de X sepa que se han instalado estos cheros nuevos. ttmkfdir forma parte de la Coleccin de Ports de FreeBSD: x11-fonts/ttmkfdir.
140
Ahora aada el directorio TrueType a la ruta de tipos. Esto es igual que lo anteriormente descrito sobre los tipos Type1. Ejecute:
% xset fp+ /usr/local/lib/X11/fonts/TrueType % xset fp rehash
o aada una lnea FontPath en su /etc/X11/xorg.conf. Esto es todo. Ahora Netscape, Gimp, StarOfce y el resto de aplicaciones X debieran reconocer los tipos TrueType instalados. Los tipos muy pequeos (como el texto en una pantalla con alta resolucin viendo una pgina web) y los tipos muy grandes (Dentro de StarOfce) se vern muchsimo mejor ahora.
Como se ha dicho antes todos los tipos en /usr/local/lib/X11/fonts/ y en ~/.fonts/ estn ya disponibles para las aplicaciones que soporten Xft. Si usted desea aadir otro directorio adems de estos dos rboles de directorios aada una lnea similar a esta en el chero /usr/local/etc/fonts/local.conf:
<dir>/ruta/de/mis/tipos</dir>
Despus de aadir los nuevos tipos, y en especial los nuevos directorios de tipos, debe ejecutar la siguiente orden para reconstruir la cach de tipos:
# fc-cache -f
141
Captulo 5. El sistema X Window Los tipos anti-aliasing hacen los bordes ligeramente borrosos, lo que hace que el texto muy pequeo sea ms legible y elimina los escalones del texto grande pero puede causar fatiga visual aplicada al texto normal. Para excluir los tipos de menos de 14 puntos del anti-aliasing incluya las siguientes lneas:
<match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any"> <double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match>
El espacio entre algunos tipos tambin podra ser inapropiado con anti-aliasing, por ejemplo en el caso de KDE. Una posible solucin para esto es forzar que el espacio entre los tipos sea 100. Aada las siguientes lneas:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match>
(Esto selecciona los otros nombres comunes para tipos xed como "mono"); aada tambin lo siguiente:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match>
142
Captulo 5. El sistema X Window Algunos tipos, como Helvetica, podran tener problemas con anti-aliasing. Normalmente esto se maniesta en tipos que parecen cortados verticalmente por la mitad. En el peor de los casos podra causar que el funcionamiento de aplicaciones como Mozilla se interrumpiese. Para evitar esto puede aadir lo siguiente a local.conf:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>
Una vez que haya terminado de editar local.conf asegrese de que el chero termina con la etiqueta </fontconfig>. Si no lo hace los cambios que haya hecho sern ignorados. Los tipos por omisin que vienen con X11 no son los ideales para anti-aliasing. Puede encontrar otros mucho mejores en el port x11-fonts/bitstream-vera. Este port instalar el chero /usr/local/etc/fonts/local.conf si aun no se ha creado. Si el chero existe el port creara el chero /usr/local/etc/fonts/local.conf-vera. Combine el contenido de este chero con /usr/local/etc/fonts/local.conf y los tipos Bitstream reemplazarn automticamente los tipos por defecto por X11 Serif, Sans Serif y Monospaced. Por si esto fuera poco los usuarios pueden aadir sus propios ajustes mediante sus cheros personales .fonts.conf. Los usuarios que deseen hacerlo debern crear un chero ~/.fonts.conf. Este chero tiene que estar tambin en formato XML. Un ltimo punto: con pantallas LCD sera deseable un muestreo de subpixel, que consiste en congurar los componentes (separados horizontalmente) rojo, verde y azul para mejorar la resolucin horizontal; los resultados pueden ser impresionantes. Para habilitarlo aada la siguiente lnea a local.conf:
<match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match>
Nota: Dependiendo del tipo de pantalla rgb podra ser bgr o vrgb o vbgr: experimente y elija cul de ellos funciona mejor.
Una vez concluido el proceso anti-aliasing se debera activar la prxima vez que arranque X, aunque los programas necesitan saber como utilizarlo. En este momento el toolkit Qt es capaz de hacerlo, as que KDE entero puede usar tipos anti-aliasing. GTK+ y GNOME tambin pueden usar tipos anti-aliasing mediante el applet Font (consulte Seccin 5.7.1.3 para ms detalle). Por omisin Mozilla 1.2 y versiones siguientes usarn automticamente tipos anti-aliasing. Para deshabilitarlos recompile Mozilla usando el parmetro -DWITHOUT_XFT.
143
5.6.1. Descripcin
El gestor de pantalla X (XDM) es una parte opcional del sistema X Window que se usa para la gestin de sesiones. Esto es til en diferentes situaciones, como Terminales X con escritorios mnimos y grandes servidores de red. Como X Window System es independiente del protocolo y de la red hay muchas conguraciones posibles para ejecutar clientes y servidores X en diferentes equipos conectados a una red. XDM dispone de un interfaz grco para elegir a qu pantalla se quiere conectar y pedir la informacin de autenticacin como el nombre de usuario y le contrasea. XDM ac6ta como proveedor de la misma funcionalidad que getty(8) (consulte Seccin 24.3.2 para ms detalles). Esto quiere decir que se encarga de las entradas al sistema en la pantalla a la que est conectado y arranca el gestor de sesiones para que lo utilice el usuario (normalmente un gestor de ventanas X). XDM espera a que el programa termine, enva la seal de que el usuario ha terminado y que se le debera desconectar de la pantalla. En este punto XDM puede mostrar las pantallas de entrada al sistema y de seleccin de pantalla para que el siguiente usuario intente acceder al sistema.
Por omisin esta entrada est deshabilitada; para habilitarla cambie el campo 5 de off a on y reinicie init(8) usando los pasos descritos en la Seccin 24.3.2.2. El primer campo es el nombre de la terminal que que gestiona el programa, ttyv8. Es decir, XDM empezar a ejecutarse en la terminal virtual nmero 9.
Descripcin Reglas de acceso para clientes. Recursos de X por omisin. Lista de pantallas locales y remotas a gestionar. script por omisin para el acceso al sistema. script para lanzar aplicaciones antes del acceso al sistema. Conguracin de todas las pantallas de este equipo.
144
Descripcin Errores generados por el programa servidor. El ID de proceso del XDM que est funcionando.
En este directorio tambin hay unos cuantos programas y scripts que se usan para arrancar el escritorio cuando XDM se est ejecutando. El objetivo de cada uno de estos cheros ser descrito brevemente. La sintaxis exacta y el uso de todos estos cheros se describe en xdm(1). La conguracin por omisin es una simple ventana rectangular de acceso al sistema con el nombre de la mquina en la parte superior en un tipo de letra grande y unos campos para que introduzcaLogin: y Password: debajo. Este es un buen punto de partida para aprender a cambiar el aspecto de las pantallas de XDM. 5.6.3.1. Xaccess El protocolo para conectar con las pantallas controladas por XDM se llama X Display Manager Connection Protocol (XDMCP). Este chero es un conjunto de reglas para controlar las conexiones XDMCP desde otros equipos. Por defecto permite a cualquier cliente conectar, pero eso no importa a menos que xdm-config se cambie para escuchar conexiones remotas. La conguracin bsica no permite conexiones desde ningn cliente.
5.6.3.2. Xresources Este es el chero de opciones por defecto para el selector de pantalla y acceso al sistema. Aqu es donde se puede modicar la apariencia del programa de login. El formato es idntico al chero de opciones por defecto descrito en la documentacin de X11.
5.6.3.3. Xservers Una lista de pantallas remotas entre las que elegir.
5.6.3.4. Xsession Este es el script de sesin que por defecto XDM arrancar despus de que el usuario acceda al sistema. Normalmente cada usuario tendr una versin personalizada del script de sesin en ~/.xsession que sobreescribe el script por defecto.
5.6.3.5. Xsetup_* Estos se arrancarn automticamente antes de que se muestre el interfaz de seleccin o de acceso al sistema. Hay un script por cada gestor de ventanas disponible llamados Xsetup_ seguido por el nmero de pantalla local (por ejemplo Xsetup_0). Normalmente estos scripts arrancan uno o dos programas en segundo plano, por ejemplo xconsole.
5.6.3.6. xdm-cong Este chero contiene las opciones por defecto aplicables a todas las pantallas que gestiona la instalacin.
145
Captulo 5. El sistema X Window 5.6.3.7. xdm-errors Este chero contiene la salida de los servidores X que XDM intente arrancar. Si alguna pantalla que XDM intente arrancar se cuelga por alguna razn este es un buen sitio para buscar los mensajes de error. Estos mensajes tambin se escriben en el chero ~/.xsession-errors del usuario en cada sesin.
y despus reinicie XDM. Recuerde que los comentarios en los cheros de opciones por defecto comienzan con el carcter! en vez del tpico #. Puede aplicar controles ms restrictivos. Consulte las opciones de ejemplo en Xaccess y la pgina de manual de xdm(1).
5.7.1. GNOME
5.7.1.1. Acerca de GNOME GNOME es un entorno de escritorio amigable que permite a los usuarios una conguracin fcil de sus sistemas. GNOME incluye un panel (para iniciar las aplicaciones y mostrar su estado), un escritorio (donde pueden colocarse los datos y las aplicaciones), un conjunto de herramientas y aplicaciones de escritorio estndar y un conjunto de convenciones para facilitar la creacin de aplicaciones que sean consistentes y colaboren unas con otras. Los usuarios de otros sistemas operativos o entornos pueden sentirse como en casa utilizando el poderoso entorno grco GNOME. Encontrar ms informacin sobre GNOME en FreeBSD en la pgina del Proyecto FreeBSD GNOME (http://www.FreeBSD.org/gnome).
146
Captulo 5. El sistema X Window 5.7.1.2. Instacin de GNOME GNOME puede instalarse fcilmente utilizando packages precompilados o desde la Coleccin de Ports: Para instalar el paquete de GNOME desde la red, simplemente teclee:
# pkg_add -r gnome2
Para compilar GNOME a partir del cdigo fuente, es decir, como port:
# cd /usr/ports/x11/gnome2 # make install clean
Una vez GNOME est instalado debe indicarle al servidor X como iniciar GNOME para convertirlo en el gestor de ventanas predeterminado. La manera ms fcil de arrancar GNOME es con GDM, el gestor de pantalla de GNOME. GDM, que se instala con el escritorio GNOME al ser parte del mismo (aunque venga desactivado por omisin) se activa aadiendo gdm_enable="YES" a /etc/rc.conf. Tras reiniciar, GNOME arrancar automticamente al acceder al sistema; no es necesario congurar nada ms. Puede arrancar GNOME tambin desde la lnea de rdenes congurando adecuadamente un chero llamado .xinitrc. Si ya tiene un .xinitrc personalizado tendr que reemplazar la lnea que arranca el gestor de ventanas anterior por otra que contenga /usr/local/bin/gnome-session. Si no ha modicado el chero previamente basta con que tecle lo siguiente:
% echo "/usr/local/bin/gnome-session" > ~/.xinitrc
% echo "#!/bin/sh" > ~/.xsession % echo "/usr/local/bin/gnome-session" >> ~/.xsession % chmod +x ~/.xsession
Otra opcin es congurar el gestor de pantalla para que permita seleccionar el gestor de ventanas durante el acceso; la seccin de detalles de KDE explica cmo hacerlo para kdm, el gestor de pantalla de KDE.
5.7.1.3. Tipos Anti-aliased en GNOME X11 soporta anti-aliasing a travs de la extensin RENDER. Gtk+ 2.0 y superiores (el toolkit utilizado por GNOME) disponen de esta funcionalidad. La conguracin del anti-aliasing se describe en la Seccin 5.5.3. Una vez congurado el software es posible utilizar anti-aliasing en el entorno de escritorio GNOME. Slamente tiene que ir a ApplicationsDesktop PreferencesFont, y seleccione entre Best shapes, Best contrast, o Subpixel smoothing (LCDs). En el caso de una aplicacin Gtk+ que no forme parte del escritorio GNOME asigne a la variable de entorno GDK_USE_XFT un valor de 1 antes de arrancar el programa.
147
5.7.2. KDE
5.7.2.1. Acerca de KDE KDE es un entorno de escritorio contemporneo y fcil de usar. Veamos alguna de las cosas que KDE brinda al usuario:
Un bello escritorio contemporneo. Un escritorio completamente transparente en red. Un sistema de ayuda integrado que facilita un acceso adecuado y consistente a la ayuda durante el uso del escritorio KDE y sus aplicaciones. Un aspecto consistente de todas las aplicaciones KDE. Mens y barras de herramientas estndares, teclas programables, esquemas de color, etc. Internacionalizacin: KDE est disponible en ms de 40 idiomas. Un dilogo de conguracin del escritorio centralizado y consistente. Un gran nmero de tiles aplicaciones KDE.
KDE incluye un navegador web llamado Konqueror, que es un slido competidor del resto de navegadores web existentes en sistemas UNIX. Puede encontrar ms informacin sobre KDE en el sitio web de KDE (http://www.kde.org/). Si quiere informacin especca y recursos sobre KDE en FreeBSD consulte el sitio web del equipo de KDE en FreeBSD (http://freebsd.kde.org/). Hay dos versiones de KDE en FreeBSD: la versin 3 lleva ya bastante tiempo en el sistema y es muy estable en todos los sentidos. La versin 4, la nueva generacin de KDE, tambin est en los ports. Si quiere puede instalar ambas versiones simultneamente.
5.7.2.2. Instalacin de KDE Igual que sucede con GNOME o cualquier otro entorno de escritorio puede instalarlo como package o desde la Coleccin de Ports: Si quiere instalar como package KDE3 (desde la red) escriba:
# pkg_add -r kde
pkg_add(1) descargar automticamente la versin ms reciente de la aplicacin. Si lo que desea es compilar KDE3 desde el cdigo fuente utilice el rbol de ports:
# cd /usr/ports/x11/kde3 # make install clean
Si lo que desea es compilar KDE4 desde el cdigo fuente utilice el rbol de ports:
# cd /usr/ports/x11/kde4 # make install clean
148
Captulo 5. El sistema X Window Una vez instalado KDE debe indicarle al servidor X cmo iniciar la aplicacin para que se convierta en el gestor de ventanas por defecto. Edite .xinitrc: Para KDE3:
% echo "exec startkde" > ~/.xinitrc
Para KDE4:
% echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc
A partir de ahora cuando se llame al sistema X Window con startx el escritorio ser KDE. Si utiliza un gestor de pantalla, como por ejemplo xdm, la conguracin es ligeramente diferente. En vez de lo antedicho edite .xsession. Las instrucciones para kdm se decribirn ms adelante en este captulo.
En el caso de KDE4:
ttyv8 "/usr/local/kde4/bin/kdm -nodaemon" xterm on secure
149
5.7.4. XFce
5.7.4.1. Acerca de XFce XFce es un entorno de escritorio basado en el toolkit GTK utilizado por GNOME pero es mucho ms ligero y est pensado para aquellos que quieran un escritorio sencillo, eciente y fcil de utlizar y congurar. Visualmente es muy parecido a CDE, que podemos encontrar en sistemas UNIX comerciales. Alguna de las caractersticas de XFce son:
Un escritorio sencillo y fcil de utilizar. Completamente congurable utilizando el ratn, con arrastrar y soltar, etc. Panel principal similar al de CDE, con mens, applets y accesos directos a las aplicaciones. Gestor de ventanas integrado, gestor de cheros, gestor de sonido, mdulo de compatibilidad con GNOME, y muchas cosas ms. Aspecto congurable (utiliza GTK). Rpido, ligero y eciente: ideal para mquinas viejas, lentas o mquinas con memoria limitada.
5.7.4.2. Instalar XFce En el momento de escribir este texto existe un paquete binario para XFce. Para instalarlo escriba:
# pkg_add -r xfce4
Para indicar al servidor X que use XFce la prxima vez que arranque simplemente escriba lo siguiente:
% echo "/usr/X11R6/bin/startxfce4" > ~/.xinitrc
La prxima vez que arranque X XFce ser el escritorio. Como antes, si se usa un gestor de pantalla como xdm cree un .xsession tal y como se ha descrito en la anterior seccin en GNOME, pero con la orden /usr/local/bin/startxfce4; puede congurar el gestor de pantalla para permitir elegir el escritorio en el momento de acceder al sistema tal y como se ha explicado en la seccin de kdm.
150
Introduccin a algunas de las aplicaciones de escritorio ms tiles y extendidas: navegadores, herramientas de productividad, visores de documentos, etc. Introduccin a algunas de las herramientas multimedia de FreeBSD. Explicacin de cmo crear un kernel personalizado en FreeBSD, lo que le permitir aadir nuevas funcionalidades al sistema. Descripcin en detalle del sistema de impresin, tanto en entornos de escritorio como en impresoras conectadas en red. Cmo ejecutar aplicaciones de Linux en FreeBSD.
Algunos de los captulos recomiendan lecturas de captulos anteriores, lo que se indica al inicio de cada captulo.
6.1. Sinopsis
FreeBSD puede ejecutar gran nmero de aplicaciones de escritorio, como navegadores y procesadores de texto. La mayora de ellas estn disponibles como packages o se pueden compilar automticamente desde la coleccin de ports. Muchos usuarios nuevos esperan encontrar este tipo de aplicaciones en su escritorio. Este captulo mostrar cmo instalar de forma fcil algunas aplicaciones populares, bien como packages o desde la coleccin de ports. Tenga en cuenta que cuando se instalan programas desde los ports se compilan desde el cdigo fuente. Esto puede tardar muchsimo tiempo, dependiendo de qu est compilando y la potencia de proceso de su mquina. Si compilar una o ms aplicaciones le requiere una cantidad de tiempo desmesurada para sus necesidades recuerde que puede instalar la mayora de programas de la Coleccin de Ports como packages precompilados. FreeBSD tiene compatibilidad binaria con Linux, as que muchas aplicaciones originariamente desarrolladas para Linux existen tambin para su escritorio. Le recomendamos encarecidamente que lea el Captulo 10 antes instalar aplicaciones Linux. Muchos de los ports que usan la compatibilidad binaria de Linux empiezan por linux-. Recurdelo cuando busque un port en particular, por ejemplo con whereis(1). En el siguiente texto se asume que ha habilitado usted la compatibilidad binaria de Linux antes de instalar aplicaciones de Linux. Estas son las categoras que cubre este captulo:
Navegadores (como Mozilla, Netscape, Opera, Firefox, Konqueror) Productividad (como KOfce, AbiWord, The GIMP, OpenOfce.org) Visores de documentos (como Acrobat Reader, gv, Xpdf, GQview) Finanzas (como GnuCash, Gnumeric, Abacus)
Saber como instalar software de terceros (Captulo 4). Saber como instalar software de Linux (Captulo 10).
Si quiere ms informacin sobre cmo conseguir un entorno un entorno multimedia en FreeBSD consulte el Captulo 7. Si quiere congurar y usar el correo electrnico consulte el Captulo 27.
6.2. Navegadores
FreeBSD no trae ningn navegador preinstalado, pero en el directorio www (http://www.FreeBSD.org/ports/www.html) de la coleccin de ports tiene muchos navegadores listos para instalar. Si no tiene tiempo para compilarlo todo (esto puede requerir muchsimo tiempo en algunos casos) muchos de ellos estn disponibles como packages. KDE y GNOME ya proporcionan navegadores HTML. Consulte la Seccin 5.7 para ms informacin sobre cmo congurar estos escritorios. Si busca navegadores ligeros tiene en la coleccin de ports www/dillo, www/links, o www/w3m.
152
Captulo 6. Aplicaciones de escritorio Esta seccin cubre estas aplicaciones: Nombre de aplicacin Mozilla Opera Recursos necesarios pesado ligero Instalacin desde los Ports pesado ligero Dependencias importantes Gtk+ Versiones para FreeBSD y Linux disponibles. La versin de Linux depende de la compatibiliad binaria de Linux y de linux-openmotif. Gtk+ KDE Librers
Firefox Konqueror
medio medio
pesado pesado
6.2.1. Mozilla
Mozilla es una navegador moderno y estable que dispone de soporte completo en FreeBSD: dispone de un motor de presentacin de HTML muy ajustado a los estndares, tiene cliente de correo electrnico, lector de noticias e incluso ofrece un editor de pginas HTML por si quiere crear pginas web. Los usuarios de Netscape encontrarn semejanzas con la suite Communicator, dado que ambos navegadores comparten parte de la base de desarrollo. En mquinas lentas, con una CPU de velocidad inferior a 233MHz o con menos de 64MB de RAM, Mozilla puede consumir demasiados recursos para poder utilizarse. Puede usar el navegador Opera, mucho ms ligero, que se describe ms adelante en este mismo captulo. Si no puede o no quiere compilar Mozilla por algn motivo, el equipo de FreeBSD GNOME ya lo ha hecho por usted. Instale el package desde la red del siguiente modo:
# pkg_add -r mozilla
Si no hay package disponible y tiene suciente tiempo y espacio en el disco puede obtener el cdigo de Mozilla, compilarlo e instalarlo en su sistema. Esto se hace con:
# cd /usr/ports/www/mozilla # make install clean
El port de Mozilla se asegura de que se inicialice adecuadamente ejecutando la conguracin del registro chrome con privilegios de root, aunque si quiere instalar algn aadido como mouse gestures (gestos del ratn) tendr que ejecutar que correr Mozilla como root para que se instale correctamente. Una vez efectuada la instalacin de Mozilla no es necesario ser root por ms tiempo. Puede arrancar Mozilla como navegador escribiendo:
% mozilla
Puede arrancarlo directamente como lector de correo y noticias del siguiente modo:
% mozilla -mail
153
6.2.2. Firefox
Firefox es un navegador de nueva generacin basado en el cdigo fuente de Mozilla. Mozilla es una suite completa de aplicaciones en la que encontrar un navegador, un cliente de correo, un cliente de chat y muchas otras. Firefox es solamente un navegador, lo que hace que sea mucho ms pequeo y ligero. Puede instalarlo como package del siguiente modo:
# pkg_add -r firefox
Si preere compilar el cdigo fuente e instalarlo desde los ports puede hacer esto otro:
# cd /usr/ports/www/firefox # make install clean
La FreeBSD Foundation disponde una licencia de Sun Microsystems que le permite distribuir binarios FreeBSD del Java Runtime Environment (JRE) y del Java Development Kit (JDK). Puede descargar packages binarios para FreeBSD desde el sitio web (http://www.freebsdfoundation.org/downloads/java.shtml)de la FreeBSD Foundation. Para aadir soporte Java a Firefox o Mozilla tiene que instalar el port the java/javavmwrapper. Despus descargue el package Diablo JRE desde http://www.freebsdfoundation.org/downloads/java.shtml e instlelo con pkg_add(1). Arranque su navegador, introduzca about:plugins en la barra de navegacin y pulse Intro. Ver una pgina con una lista de los plugins que tenga instalados; el plugin Java debera ser uno de los que aparezcan. Si no es as ejecute (como root) lo siguiente
# ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ /usr/local/lib/browser_plugins/
y reinicie su navegador.
6.2.4. Opera
Opera es un navegador muy rpido, completo y que cumple con los estndares. Hay dos versiones: la versin nativa de FreeBSD y la versin que se ejecuta bajo la emulacin de Linux. Para cada sistema operativo hay una versin gratuita que muestra publicidad y otra sin publicidad que se puede comprar en la pgina web de Opera (http://www.opera.com/). Para navegar por la web con la versin para FreeBSD de Opera tendr que instalar el package:
# pkg_add -r opera
Algunos sitios FTP no tienen todos los paquetes, pero puede instalarlo desde la Coleccin de Ports:
# cd /usr/ports/www/opera
154
Si quiere instalar la versin de Linux de Opera ponga linux-opera en lugar de opera en los atnteriores ejemplos. La versin de Linux es til en situaciones donde se necesitan plugins de los que slo hay versiones para Linux, como Adobe Acrobat Reader. En todos los dems aspectos las versiones de FreeBSD y Linux son iguales.
6.2.5. Konqueror
Konqueror forma parte de KDE pero tambin se puede instalar y usar independienmente de KDE instalando
x11/kdebase3. Konqueror es mucho ms que un navegador, tambin es gestor de cheros y visor multimedia.
Konqueror tambin trae un conjunto de plugins, disponibles en misc/konq-plugins. Konqueror tambin soporta Flash, hay un tutorial en http://freebsd.kde.org/howto.php.
6.3. Productividad
Cuando se trata de productividad, normalmente los nuevos usuarios piensan en una buena suite omtica o un procesador de textos amigable. Mientras que algunos entornos de escritorio como KDE ofrecen una suite omtica propia, no hay una aplicacin por defecto. FreeBSD permite usar todo lo que se necesite sin importar qu entorno de escritorio use. Esta seccin cubre estas aplicaciones: Nombre de la aplicacin KOfce AbiWord The Gimp OpenOfce.org Recursos necesarios ligero ligero ligero pesado Instalacin desde los ports pesado ligero pesado enorme Dependencias importantes KDE Gtk+ o GNOME Gtk+ GCC 3.1, JDK 1.3, Mozilla
6.3.1. KOfce
La comunidad de KDE ha dotado su entorno de escritorio con una suite omtica totalmente independiente de KDE. Incluye los 4 componentes estndar que se pueden encontrar en otras suites omticas. KWord es el procesador de textos, KSpread es la hoja de clculo, KPresenter se encarga de las presentaciones y Kontour le permite dibujar documentos grcos. Antes de instalar el ltimo KOfce asegrese de que tiene una versin actualizada de KDE. Para instalar KOfce como un paquete ejecute la siguiente orden:
# pkg_add -r koffice
Si el paquete no est disponible puede usar la coleccin de ports. Por ejemplo, para instalar KOfce para KDE3 haga lo siguiente:
# cd /usr/ports/editors/koffice-kde3
155
6.3.2. AbiWord
AbiWord es un procesador de textos libre con un aspecto parecido a Microsoft Word. Es til para escribir documentos, cartas, informes, notas, etc. Es muy rpido, tiene muchas opciones y es muy amigable. AbiWord puede importar o exportar muchos formatos de chero, incluyendo algunos propietarios como Microsoft .doc. AbiWord est disponible como package. Si quiere instalarlo haga lo siguiente:
# pkg_add -r AbiWord2
Si el package no est disponible por el motivo que fuere puede instalarlo desde la coleccin de Ports. La coleccin de ports debera estar ms actualizada:
# cd /usr/ports/editors/AbiWord2 # make install clean
Si su servidor FTP no tiene este package puede usar la coleccin de ports. El directorio graphics (http://www.FreeBSD.org/ports/graphics.html) de la coleccin de ports tambin contiene The Gimp Manual. Si quiere instalarlo haga lo siguiente:
# # # # cd /usr/ports/graphics/gimp make install clean cd /usr/ports/graphics/gimp-manual-pdf make install clean
Nota: El directorio graphics (http://www.FreeBSD.org/ports/graphics.html) de la coleccin de ports tiene la versin de desarrollo de GIMP en graphics/gimp-devel. Hay una versin en HTML de The Gimp Manual en graphics/gimp-manual-html.
156
6.3.4. OpenOfce.org
OpenOfce.org incluye todas las aplicacines esenciales en una completa suite omtica: un procesador de textos, una hoja de clculo, un gestor de presentaciones y un programa de dibujo. Su interfaz de usuario es muy parecida a otras suites omticas y puede importar y exportar diversos formatos muy extendidos. Est disponible en diversos idiomas; el proceso de internacionalizacin incluye interfaces, correctores ortogrcos y diccionarios. El procesador de textos de OpenOfce.org usa un chero XML nativo para aumentar la portabilidad y la eciencia. El programa de hojas de clculo tiene un lenguaje de macros y puede usarse desde bases de datos externas. OpenOfce.org es estable y hay versiones nativas para Windows, Solaris, Linux, FreeBSD, y Mac OS X. Tiene ms informacin sobre OpenOfce.org en la pgina web de OpenOfce (http://www.openofce.org/). Si quiere informacin especca para FreeBSD, o si quiere bajar directamente los packages use la pgina web de FreeBSD OpenOfce Porting Team (http://porting.openofce.org/freebsd/). Para instalar OpenOfce.org ejecute:
# pkg_add -r openoffice
Nota: Si usa una versin -RELEASE de FreeBSD todo lo antedicho funcionar. Si usa cualquier otra versin visite el sitio web del FreeBSD OpenOfce.org Porting Team, desde el cual podr descargar e instalar el package ms adecuado e instalarlo mediante pkg_add(1). En este sitio web encontrar tanto una versin current como la de desarrollo.
Una vez instalado el package escriba la siguiente orden para ejecutar OpenOfce.org:
% openoffice.org
Nota: En el primer arranque se le harn diversas preguntas se crear un directorio .openoffice.org2 en su home.
Si no hay packages de OpenOfce.org disponibles siempre tiene la opcin de compilar el port. Tenga muy en cuenta que necesitar gran cantidad de espacio en disco y que este port necesita una cantidad de tiempo monstruosa para efectuar la compilacin.
# cd /usr/ports/editors/openoffice.org-2 # make install clean
Nota: Si quiere compilar una de las muchas versiones que existen en idiomas distintos del ingls sustituya la orden anterior por la que se muestra a continuacin:
# make LOCALIZED_LANG=su_idioma install clean
Sustituya su_idioma por el cdigo ISO del idioma que quiera. Tiene una lista de cdigos de idioma disponibles dentro del directorio del port en files/Makefile.localized.
157
No hay package debido a las restricciones que impone la licencia del software.
6.4.2. gv
gv es un visor de PostScript y PDF. Tiene su origen en ghostview pero tiene un aspecto bastante mejorado gracias a la librera Xaw3d. Es rpido y tiene una interfaz limpia. gv tiene muchas opcines como orientacin, tamao del papel, escalado o antialias. Casi todas las operaciones se pueden realizar desde el teclado o desde el ratn. Para instalar gv como package ejecute:
# pkg_add -r gv
158
6.4.3. Xpdf
Si quiere un visor de PDF pequeo, Xpdf es un visor ligero y eciente. Requiere muy pocos recursos y es muy estable. Usa los tipos estndar de X y no depende de Motif ni de ningn otro toolkit de X. Para instalar el package de Xpdf use la siguiente orden:
# pkg_add -r xpdf
Una vez que la instalacin haya concluido puede lanzar Xpdf; use el botn derecho del ratn para activar el men.
6.4.4. GQview
GQview es un visor de imgenes. Puede ver un chero con un click, lanzar un editor externo, obtener imgenes de previsualizacin y muchas cosas ms. Tambin tiene un modo de presentacin y admite algunas opciones bsicas de manipulacin de cheros. Puede gestionar colecciones de imgenes y encontrar cheros duplicados con facilidad. GQview puede mostrar las imgenes a pantalla completa y est preparado para la internacionalizacin. Si quiere instalar el paquete de GQview ejecute:
# pkg_add -r gqview
6.5. Finanzas
Si por algun motivo quisiera gestionar sus nanzas personales en su escritorio FreeBSD hay algunas aplicaciones potentes y sencillas de utilizar que puede instalar. Algunas de ellas son compatibles con formatos muy extendidos como documentos de Quicken o Excel. Esta seccin cubre las siguientes aplicaciones: Nombre de aplicacin GnuCash Gnumeric Abacus KMyMoney Recursos necesarios ligero ligero ligero ligero Instalacin desde los ports pesado pesado pesado pesado Dependencias importantes GNOME GNOME Tcl/Tk KDE
159
6.5.1. GnuCash
GnuCash es parte del afn de GNOME por ofrecer aplicaciones de uso sencillo pero a la vez potentes a los usuarios. Con GnuCash, puede gestionar sus ingresos y sus gastos, sus cuentas bancarias o sus acciones. Tiene una interfaz intuitiva pero muy profesional. GnuCash dispone de un registro elegante, un sistema jerrquico de cuentas, muchos atajos de teclado y mtodos de autocompletado. Puede dividir una transaccin en varias partes ms detalladas. GnuCash puede importar y mezclar cheros QIF de Quicken. Tambin admite muchos formatos internacionales de fecha y moneda. Para instalar GnuCash en su sistema ejecute:
# pkg_add -r gnucash
6.5.2. Gnumeric
Gnumeric es una hoja de clculo que forma parte del entorno de escritorio GNOME. Implementa una prediccin automtica de la entrada del usuario de acuerdo con el formato de celda y un sistema de completado automtico para mltiples secuencias. Puede importar cheros de un gran nmero de formatos muy extendidos, como Excel, Lotus 1-2-3 o Quattro Pro. Gnumeric soporta grcas mediante el programa de grcas math/guppi. Tiene un gran nmero de funciones internas y permite todos los formatos normales de celda como nmero, moneda, fecha, hora y muchos ms. Para instalar Gnumeric como package ejecute:
# pkg_add -r gnumeric
Si el package no est disponible puede usar la coleccin de ports del siguiente modo:
# cd /usr/ports/math/gnumeric # make install clean
6.5.3. Abacus
Abacus es una hoja de clculo pequea y fcil de usar. Tiene muchas funciones tiles en varios mbitos como la estadstica, las nanzas y las matemticas. Puede importar y exportar cheros con formato Excel. Abacus puede generar cheros PostScript. Para instalar Abacus como package ejecute:
# pkg_add -r abacus
160
6.6. Resumen
FreeBSD est muy extendido en ISP por su alto rendimiento y estabilidad, pero tambin se puede usar a diario como escritorio. Hay miles de aplicaciones disponibles como packages (http://www.FreeBSD.org/where.html) o ports (http://www.FreeBSD.org/ports/index.html) con las que puede crear un escritorio que cubra todas sus necesidades. Aqui hay un resumen de todas las aplicaciones cubiertas en este cpitulo: Nombre De La Aplicacin Mozilla Opera Firefox KOfce AbiWord GIMP OpenOfce.org Acrobat Reader gv Xpdf GQview GnuCash Gnumeric Abacus KMyMoney Nombre Del Paquete
mozilla opera firefox koffice-kde3 AbiWord2 gimp openoffice acroread gv xpdf gqview gnucash gnumeric abacus kmymoney2
161
Captulo 7. Multimedia
Editado por Ross Lippert.
7.1. Sinopsis
FreeBSD admite una gran variedad de tarjetas de sonido, lo que permite disfrutar de sonido de alta delidad en su sistema. sto incluye la posibilidad de grabar y reproducir cheros de audio tanto en los formatos MPEG Audio Layer 3 (MP3), WAV y Ogg Vorbis, as como muchos otros. La Coleccin de Ports de FreeBSD contiene tambin aplicaciones que le permitirn editar audio previamente grabado, aadir efectos y controlar dispositivos MIDI. Tras unas cuantas pruebas podr reproducir cheros de video y DVD en FreeBSD. La cantidad de aplicaciones disponibles para codicar, convertir y reproducir los diversos soportes de video es ms limitada que lo que hay disponible para el sonido. Por ejemplo, en el momento de escribir este texto no hay en la Coleccin de Ports de FreeBSD una buena aplicacin que permita pasar datos de un formato a otro, el equivalente a lo que hay en el campo del sonido con audio/sox. A pesar de eso la situacin en este rea est cambiando rpidamente. Este captulo muestra los pasos necesarios para congurar una tarjeta de sonido. La conguracin e instalacin de X11 (Captulo 5) habr solucionado ya todos los problemas que hubiera podido darle su tarjeta grca, aunque quizs haya algn pequeo detalle que aadir para mejorar la reproduccin. Tras leer ste captulo sabr usted:
Cmo congurar su sistema de modo que su tarjeta de sonido sea reconocida por el mismo. Conrmar el funcionamiento de su tarjeta usando herramientas de muestreo. Cmo enfrentarse a problemas de conguracin de sonido. Cmo reproducir y crear cheros MP3 y otros. Cmo gestiona el video el servidor X. Identicar unos cuantos ports para reproducir y codicar video que le darn muy buenos resultados. Cmo reproducir DVD y cheros .mpg y .avi. Cmo convertir CD y DVD en cheros de datos. Cmo congurar una tarjeta de TV. Cmo congurar un escner de imgenes.
162
Captulo 7. Multimedia
Ambos ejemplos son para una tarjeta de sonido Creative SoundBlaster Live!. Encontrar una lista de mdulos de sonido que puede cargar del mismo modo en /boot/defaults/loader.conf. Si no est del todo seguro sobre el controlador que debe usar pruebe con el mdulo snd_driver:
# kldload snd_driver
Se trata de un metacontrolador que carga en memoria todos los controladores ms habituales. De este modo acelerar notablemente el proceso de detectar cul es el controlador perfecto para su hardware. Tambin puede cargar todos los controladores de sonido desde /boot/loader.conf. Si quiere saber qu controlador se corresponde con su tarjeta de sonido una vez cargado el metadriver snd_driver debe comprobar el contenido de /dev/sndstat mediante la orden cat /dev/sndstat. El segundo mtodo es compilar de forma esttica el soporte para su tarjeta de sonido dentro de un kernel personalizado. En la siguiente seccin encontrar la informacin necesaria para aadir a su kernel el soporte que necesita su hardware. Para ms informacin sobre la compilacin de un kernel consulte el Captulo 8. 7.2.1.1. Conguracin de un kernel personalizado con soporte de sonido Lo primero que hay que hacer es aadir el controlador del framework de sonido sound(4) al kernel; tendr que aadir la siguiente lnea a su chero de conguracin del kernel:
device sound
Una vez hecho esto tiene que aadir el soporte para su tarjeta de sonido. Evidentemente tendr que saber exactamente qu controlador es el que hace funcionar su tarjeta. Consulte la lista de dispositivos de sonido soportados que encontrar en las Hardware Notes (http://www.FreeBSD.org/releases/9.1R/hardware.html) y elija el controlador perfecto para su tarjeta. Por ejemplo una una tarjeta de sonido Creative SoundBlaster Live! usar el controlador snd_emu10k1(4). Siguiendo con el ejemplo, si queremos aadir soporte para esta tarjeta agregaremos lo siguiente:
device snd_emu10k1
163
Captulo 7. Multimedia Por favor, lea la pgina de manual del controlador si tiene dudas con la sintaxis. La sintaxis especca para la conguracin en el kernel de cada tarjeta de sonido soportada existente puede encontrarse tambin en /usr/src/sys/conf/NOTES. Las tarjetas ISA no PnP pueden requerir que se le facilite al kernel la informacin de la conguracin de la tarjeta (IRQ, puerto de E/S, etc). Esto se hace modicando el chero /boot/device.hints. Durante el proceso de arranque loader(8) leer este chero y le pasar los parmetros al kernel. Veamos un ejemplo: una vieja tarjeta Creative SoundBlaster 16 ISA no PnP utilizar el controlador snd_sbc(4) junto con snd_sb16. En el caso de esta tarjeta habr que aadir las siguientes lneas al chero de conguracin del kernel
device snd_sbc device snd_sb16
La tarjeta del ejemplo usa el puerto de E/S 0x220 I/O port y la IRQ 5. La sintaxis a utilizar en /boot/device.hints se explica en la pgina de manual de sound(4) y en la del controlador en cuestin. En el ejemplo se muestran los parmetros por omisin. En ciertos casos habr que usar otra IRQ o usar otros parmetros para hacer funcionar la tarjeta de sonido. Consulte la pgina de manual de snd_sbc(4) para ms informacin sobre esta tarjeta.
FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default)
El resultado en su sistema seguramente ser distinto. Si no aparecen dispositivos pcm revise todo el proceso a ver dnde est el error. Revise su chero de conguracin del kernel nuevamente y compruebe que eligi el controlador de dispositivo adecuado. Tiene una lista de problemas habituales en la Seccin 7.2.2.1.
164
Captulo 7. Multimedia Si todo ha ido bien ya tiene una tarjeta de sonido funcionando en su sistema. Si los pins de salida de sonido de su CD-ROM o DVD-ROM estn colocados correctamente puede poner un CD en la unidad y reproducirlo con cdcontrol(1).
% cdcontrol -f /dev/acd0 play 1
Hay muchas aplicaciones como audio/workman que le ofrecern un interfaz ms amigable. Si quiere escuchar cheros MP3 puede instalar, por ejemplo, audio/mpg123. Hay otra via an ms rpida de probar su tarjeta de sonido. Enve datos a to /dev/dsp del siguiente modo:
% cat fichero > /dev/dsp
donde fichero puede ser cualquier chero. Esta orden producir ruido, lo que conrmar que la tarjeta de sonido funciona. Puede manejar los niveles de la tarjeta de sonido con mixer(8). Tiene todos los detalles en la pgina de manual de mixer(8). 7.2.2.1. Problemas habituales Error
sb_dspwr(XX) timed out bad irq XX xxx: gus pcm not attached, out of memory xxx: cant open /dev/dsp!
Solution El puerto de E/S no ha sido congurado correctamente. No ha elegido correctamente la IRQ. Asegrese de que la IRQ que ha elegido y la IRQ del sonido son la misma. No queda memoria suciente en el sistema para poder usar el dispositivo. Compruebe si hay otra aplicacin utilizando (y por tanto ocupando) el dispositivo. Escriba fstat | grep dsp. Los sospechosos habituales son esound y el sistema de sonido de KDE.
En el ejemplo anterior se han creado cuatro canales virtuales, una cantidad muy razonable para el uso normal. hw.snd.pcm0.vchans es el nmero de canales virtuales de que dispone pcm0; puede congurarlo en cuanto el
165
Captulo 7. Multimedia dispositivo sea reconocido por el sistema. hw.snd.maxautovchans es el nmero de canales virtuales que se le asignan a un nuevo dispositivo de audio cuando se conecta al sistema mediante kldload(8). Puesto que el mdulo pcm puede cargarse independientemente de los controladores de hardware hw.snd.maxautovchans puede almacenar cuntos canales virtuales tienen asignados los dispositivos que se vayan conectando al sistema.
Nota: No es posible modicar el nmero de canales virtuales de un dispositivo que est en marcha. Cierre antes todos los programas que estn utilizando el dispositivo, como reproductores de msica o dmons de sonido.
Si no usa devfs(5) tendr que congurar sus aplicaciones para que apunten a /dev/dsp0.x , donde x es un nmero entre 0 y 3 si hw.snd.pcm.0.vchans tiene un valor de 4 como en el ejemplo anterior. Si se estuviera usando devfs(5) en el ejemplo anterior cualquier programa que pidiera /dev/dsp0 sera atendido de forma totalmente transparente.
Esto asignar al canal de volumen un valor por omisin de 50 al cargar el mdulo pcm(4).
166
Captulo 7. Multimedia
# mpg123 -a /dev/dsp1.0 ASaber-Grandesxitos.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See README for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from ASaber-Grandesxitos.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
cdda2wav soporta unidades CDROM ATAPI (IDE). En el caso de unidades IDE especique el nmero de dispositivo en el lugar correspondiente al nro de unidad SCSI. Por ejemplo, para extraer la pista 7 desde una unidad IDE:
# cdda2wav -D /dev/acd0 -t 7
La opcin -D 0,1,0 indica el dispositivo SCSI 0,1,0, que corresponde con la salida de cdrecord -scanbus. Para extraer pistas de forma selectiva use la opcin -t:
# cdda2wav -D 0,1,0 -t 7
Esta opcin extrae la sptima pista de un CDROM de sonido. Si quiere extraer un rango de pistas, por ejemplo las pistas de la uno a la siete, declare el rango del siguiente modo:
# cdda2wav -D 0,1,0 -t 1+7
La herramienta dd(1) le permite tambin extraer pistas de sonido desde unidades ATAPI; consulte la Seccin 18.6.5 para ms informacin.
167
Captulo 7. Multimedia
--tt --ta --tl --ty --tc --tg "Ttulo de copla o cantar " \ "Grupo, solista o coral sinfnica" \ "Ttulo del lbum " \ "2001" \ "Autor de la extraccin y paso a MP3" \ "Estilo" \
audio01.wav audio01.mp3
Los 128 kbits pasan por se el estndar de ratio de bits de los MP3, aunque puede que usted sea de los que preeren calidades ms altas, 160 o incluso 192. A mayor ratio de bits, ms espacio en disco necesitar, aunque la calidad tambin ser mayor. La opcin -h usa el modo ms calidad pero algo ms lento. Las opciones que empiezan por --t indican etiquetas ID3, que suelen contener informacin de la cancin que contiene el chero MP3. Tiene informacin sobre otras opciones de codicacin en la pgina de manual de lame.
XMMS genera un chero WAV, mientras que mpg123 convierte MP3 a datos de sonido raw PCM. Puede usar cdrecord con ambos formatos para crear CD de sonido. Tendr que usar burncd(8) para raw PCM. Si lo que tiene son cheros WAV escuchar un ligero clic al principio de cada pista: se trata de la cabecera del chero WAV. Puede eliminar esta cabecera mediante SoX (que puede instalar como port desde audio/sox o si lo preere como package):
% sox -t wav -r 44100 -s -w -c 2 pista.wav pista.raw
168
Captulo 7. Multimedia Consulte la Seccin 18.6 para ms informacin sobre el uso de grabadoras de CD en FreeBSD.
Tenga en cuenta que debido al diseo de devfs(5) los enlaces creados a mano no sobrevivirn a un reinicio del sistema. Para que as suceda tras cada reinicio debe aadir las siguientes lneas a /etc/devfs.conf:
link acd0 dvd link acd0 rdvd
Adems, el descifrado de DVD (una tarea que har necesario llamar a funciones especiales de los DVD-ROM) requiere permisos de escritura en unidades DVD. Le recomendamos que aumente la memoria compartida del interfaz X11, para lo cual tendr que incremente los valores asignados a varias sysctl(8):
kern.ipc.shmmax=67108864 kern.ipc.shmall=32768
169
Captulo 7. Multimedia 4. DGA: Direct Graphics Access (acceso directo a grficos. 5. SVGAlib: capa de consola de grcos a bajo nivel. 7.4.1.1. XVideo Xorg y XFree86 4.X tienen una extensin llamada XVideo (tambin conocida como Xvideo, Xv o xv) que permite reproducir vdeo en ventanas del sistema X11 a travs de un tipo de aceleracin especial. Dicha extensin ofrece una calidad de reproduccin muy alta incluso en mquinas muy cortas de recursos. Utilice xvinfo para saber qu extensin est utilizando:
% xvinfo
is 2110)
is 0)
is 128)
is 128)
is 0)
170
Captulo 7. Multimedia
guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0
Tenga en cuenta que los formatos que aparecen en el listado (YUV2, YUV12, etc) no aparecen en todas las implementaciones de de XVideo y su ausencia puede despistar a algunos reproductores. Si el resultado se parece mucho a esto
X-Video Extension version 2.2 screen #0 no adaptors present
lo ms probable es que su tarjeta no soporte XVideo. Si su tarjeta grca no soporta XVideo lo nico que signica es que para su sistema ser ms complicado alcanzar los requisitos computacionales necesarios para el procesamiento de vdeo. Dependiendo de la tarjeta grca y el procesador que tenga es posible que de todos modos pueda salvar la papeleta. Consulte la seccin sobre recursos avanzados en la Seccin 7.4.3.
7.4.1.2. Simple Directmedia Layer SDL (Simple Directmedia Layer) se cre pensando en una capa que permitiera aplicaciones fciles de portar entre las plataformas Microsoft Windows, BeOS y UNIX y que permitiera al mismo tiempo un uso eciente del sonido y el vdeo. La capa SDL ofrece abstraccin de hardware a bajo nivel, lo que a veces puee ser ms eciente que la propia interfaz X11.
171
7.4.1.3. Direct Graphics Access Direct Graphics Access es una extensin de X11 que permite que un programa sorte el servidor X y acceda directamente al framebuffer. Utiliza memoria de bajo nivel, as es imprescindible que se ejecute como root. Puede probar y analizar el rendimiento de la extensin DGA con dga(1). Al ejecutar dga la pantalla cambia de color cada vez que pulsa una tecla. Para salir de la aplicacin pulse q.
172
Captulo 7. Multimedia 7.4.2.1. MPlayer MPlayer es un reproductor de vdeo desarrollado muy recientemente y con un desarrollo rapidsimo. Los objetivos del equipo MPlayer son la velocidad y la exibilidad en Linux y otros sistemas Unix. El proyecto comenz cuando el fundador del equipo se cans de padecer el pobre rendimiento de los reproductores de vdeo que haba disponibles en ese momento. Hay quien dice que el interfaz grco fue sacricado en pos de un diseo ms ligero, aunque una vez que se acostumbre a las opciones desde la lnea de rdenes y a los atajos de teclado todo ir como la seda. 7.4.2.1.1. Compilacin de MPlayer Encontrar MPlayer en multimedia/mplayer. MPlayer ejecuta una serie de pruebas de hardware durante el proceso de compilacin, dando como resultado un binario que no tiene por qu funcionar en otros sistemas. Recuerde, por tanto, compilar la aplicacin como port y no utilice el package binario. Adems hay mltiples parmetros que puede pasarle a make, tal y como ver al comenzar la compilacin:
# cd /usr/ports/multimedia/mplayer # make
N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html
Las opciones por omisin del port deberan bastar para la mayora de los usuarios, aunque si va a necesitar el codec XviD tendr que especicar WITH_XVID en la lnea de rdenes. La unidad de DVD por defecto se puede denir con la opcin WITH_DVD_DEVICEsi la opcin por omisin, /dev/acd0, no le sirve. En el momento de escribir esto el port de MPlayer genera la documentacin en formato HTML y dos ejecutables: mplayer y mencoder, que es una herramienta para recodicar vdeo. La documentacin en HTML de MPlayer es muy informativa. Si el lector no cubre todas sus dudas sobre hardware de vdeo e interfaces con el contenido de este captulo la documentacin de MPlayer es el sitio donde debe buscar. Si quiere ms informacin sobre el soporte de vdeo en UNIX el mejor sitio para consultar es, sin duda alguna, la documentacin de MPlayer.
7.4.2.1.2. Uso de MPlayer Los usuarios de MPlayer deben crear un subdirectorio .mplayer en su home. Para crear este directorio (necesario para el funcionamiento de la aplicacin) tecle lo siguiente:
% cd /usr/ports/multimedia/mplayer % make install-user
Las opciones de mplayer para la lnea de rdenes se detallan en la pgina de manual. Si necesita todava ms detalles consulte la documentacin en HTML. En esta seccin se va a explicar solamente lo ms bsico.
173
Captulo 7. Multimedia Para reproducir el chero ficherodeprueba.avi, mediante una de las diversas interfaces de vdeo utilice la opcin
-vo:
% mplayer -vo xv ficherodeprueba.avi % mplayer -vo sdl ficherodeprueba.avi % mplayer -vo x11 ficherodeprueba.avi # mplayer -vo dga ficherodeprueba.avi # mplayer -vo sdl:dga ficherodeprueba.avi
Merece la pena que pruebe todas, puesto que el rendimiento relativo depende en gran medida de muchos factores y ser muy distinto el resultado dependiendo del hardware. Si quiere reproducir un DVD sustituya ficherodeprueba.avi por dvd://N -dvd-device DISPOSITIVO, donde N es el nmero de ttulo que quiere reproducir y DISPOSITIVO es el nodo de dispositivo del DVD-ROM. Veamos un ejemplo: para reproducir el ttulo 3 desde /dev/dvd ejecutaremos:
# mplayer -vo xv dvd://3 -dvd-device /dev/dvd
Nota: La unidad de DVD por omisin puede denirse durante la compilacin del port de MPlayer con la opcin WITH_DVD_DEVICE. Por defecto apunta a /dev/acd0. Tiene todos los detalles en el Makefile del port.
Consulte los atajos de teclado para parar la reproduccin, ponerla en pausa, etc. consulte la salida de mplayer -h o mejor an lse la pgina de manual. Hay otras opciones que le resultarn de inters para la reproduccin: -fs -zoom, para la reproduccin a pantalla completa y -framedrop, que mejora el rendimiento. Para evitar que la lnea de rdenes se haga demasiado larga puede crear un chero .mplayer/config e introducir en l las opciones que quiera usar desde el arranque de la aplicacin:
vo=xv fs=yes zoom=yes
Para terminar, puede usar mplayer para extraer un ttulo de un DVD a un chero .vob. Por ejemplo, si quiere extraer el segundo ttulo de un DVD escriba esto:
# mplayer -dumpstream -dumpfile salida.vob dvd://2 -dvd-device /dev/dvd
El chero de salida, salida.vob, un MPEG y puede manipularlo con las aplicaciones que se describen en esta seccin.
7.4.2.1.3. mencoder Antes de empezar a usar mencoder le recomendamos que se familiarice con las opciones que se detallan en la documentacin HTML. Hay tambin una pgina de manual, pero no es de mucha utilidad sin la documentacin HTML. Hay una ingente cantidad de formas de mejorar la calidad, reducir el ratio de bits y cambiar formatos; alguno
174
Captulo 7. Multimedia de esos pequeos trucos pueden marcar la diferencia entre un buen y un mal rendimiento. Le mostramos un par de ejemplos por los que puede empezar. El primero es una simple copia:
% mencoder entrada.avi -oac copy -ovc copy -o salida.avi
Ciertas combinaciones errneas de opciones en la lnea de rdenes pueden dar como fruto un chero de salida que no puede reproducir ni siquiera el propio mplayer, as que si lo que quiere es extraer datos a un chero siga usando tranquilamente la opcin -dumpfile de mplayer. Para convertir entrada.avi con codicacin MPEG4 y audio con codicacin MPEG3 (necesitar audio/lame):
% mencoder entrada.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o salida.avi
El chero de salida puede verse con mplayer y con xine. Si sustituye entrada.avi por dvd://1 -dvd-device /dev/dvd y lo ejecuta como root puede recodicar un ttulo de DVD directamente. Es posible que el resultado no sea muy satisfactorio tras los primeros intentos, as que le recomendamos que vuelque el ttulo a un chero y haga todas las pruebas que necesite sobre ese chero.
7.4.2.2. El reproductor de vdeo xine El reproductor de vdeo xine es un ambicioso proyecto que tiene como meta ofrecer no solamente una aplicacin de vdeo todo en uno, sino crear una biblioteca base reutilizable y un ejecutable modular que puede ampliarse mediante plugins. Existe como package y tambin como port: multimedia/xine. El reproductor xine est todava en mantillas, pero sus primeros pasos estn siendo muy interesantes. xine requiere o una CPU rpida o una tarjeta grca, o bien soporte para la extensin XVideo. El GUI es intuitivo, aunque un tanto pedestre. En el momento de escribir esto xine no incorpora ningn mdulo de entrada que sirva para reproducir DVD codicados con CSS. Hay versiones compiladas por terceros que tienen mdulos que lo permiten, pero ninguna de ellas est en la Coleccin de Ports de FreeBSD. Comparado con MPlayer xine deja las cosas ms hechas para el usuario, pero al mismo tiempo pone ms difcil el control exhaustivo sobre todo lo que pasa. El reproductor xine da un mejor rendimiento en interfaces XVideo. Por omisin xine arranca con un intefaz grco de usuario. Los mens pueden usarse para abrir un chero en concreto:
% xine
Tambin puede invocar la aplicacin desde la lnea de rdenes para que reproduzca un chero inmediatamente y sin utilizar el GUI:
% xine -g -p fichero.avi
7.4.2.3. Las herramientas transcode transcode no es un reproductor, sino una suite de herramientas para recodicar (tambin se podra usar la palabra transcodicar, de ah su nombre) cheros de sonido y de vdeo. Con transcode es posible fundir cheros de video y reparar cheros deteriorados desde la lnea de rdenes y en las interfaces de ujo stdin/stdout.
175
Captulo 7. Multimedia Puede congurar gran cantidad de opciones en el momento de la compilacin de multimedia/transcode; le recomendamos que use la siguiente lnea de rdenes para compilar transcode:
# make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ WITH_MJPEG=yes -DWITH_XVID=yes
La conguracin que le proponemos deber satisfacer a la mayora de los usuarios. Veamos un ejemplo ilustrativo de las posibilidades de transcode: convertir un chero DivX en un chero PAL MPEG-1 (PAL VCD):
% transcode -i input.avi -V --export_prof vcd-pal -o output_vcd % mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
Puede reproducir el chero MPEG resultante, output_vcd.mpg , con MPlayer. Si quiere tambin puede grabar el chero en un CD-R y tendr un VideoCD, aunque para eso tendr que instalar multimedia/vcdimager y sysutils/cdrdao. Consulte la pgina de manual de transcode, pero no olvide consultar tambin el wiki de transcode (http://www.transcoding.org/cgi-bin/transcode), en el que encontrar ms informacin y muchos ejemplos.
Avile (http://avile.sourceforge.net/), que encontrar en los ports:multimedia/avifile. Ogle (http://www.dtek.chalmers.se/groups/dvd/), tambin en la coleccin de ports: multimedia/ogle. Xtheater (http://xtheater.sourceforge.net/) aplicacin libre para la produccin de contenidos en DVD.
multimedia/dvdauthor, una
176
Captulo 7. Multimedia
7.5.1. Introduccin
Las tarjetas de TV le permiten ver en su sistema emisiones de TV tradicionales o incluso por cable. La mayora aceptan vdeo compuesto mediante RCA o una entrada de S-video; algunas de estas tarjetas incorporan tambin un sintonizador de radio FM. FreeBSD puede utilizar tarjetas de TV PCI que tengan el chip Brooktree Bt848/849/878/879 o el chip de captura de vdeo Conexant CN-878/Fusion 878a gracias al controlador bktr(4). Asegrese de que la tarjeta tiene un sintonizador que est soportado: consulte la lista de sintonizadores soportados que encontrar en la pgina de manual de bktr(4).
Tambin puede hacerlo compilando estticamente el soporte para la tarjeta de TV en su kernel; aada las siguientes lneas al chero de conguracin de su kernel:
device bktr device iicbus device iicbb device smbus
Es necesario incluir todas esas lineas adicionales porque los componentes de la tarjeta estn conectados entre s por un bus I2C. Hecho esto compile e instale su nuevo kernel. Una vez aadido el soporte de la tarjeta al sistema tendr que reiniciar. Durante el arranque deberan aparecer rastros de su tarjeta de TV. Veamos un ejemplo:
bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: <I2C bit-banging driver> on bti2c0 iicbus0: <Philips I2C bus> on iicbb0 master-only iicbus1: <Philips I2C bus> on iicbb0 master-only smbus0: <System Management Bus> on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner.
Es obvio que estos mensajes sern distintos segn sea el hardware del que se trate. Asegrese de que el sistema detecta correctamente el sintonizador. Se puede sobreescribir alguno de los parmetros detectados por el sistema mediante MIB sysctl(8) y opciones del chero de conguracin del kernel. Si por ejemplo quiere obligar al sintonizador para que se comporte como un Phillips SECAM aada lo siguiente al chero de conguracin de su kernel:
options OVERRIDE_TUNER=6
177
Captulo 7. Multimedia
# sysctl hw.bt848.tuner=6
7.6.1. Introduccin
El acceso a escneres de imgenes en FreeBSD funciona gracias a la API SANE (siglas de Scanner Access Now Easy, el acceso a escneres ahora es fcil), disponible en la Coleccin de Ports de FreeBSD. SANE utiliza tambin ciertos controladores de FreeBSD para acceder al hardware del escner. FreeBSD puede utilizar tanto escneres SCSI como USB. Asegrese de que el suyo funciona con SANE antes de intentar ningn tipo de conguracin. SANE tiene una lista de dispositivos soportados (http://www.sane-project.org/sane-supported-devices.html) donde encontrar informacin actualizada sobre hasta dnde funciona el escner y su estatus. La pgina de manual de uscanner(4) incluye una listas de escneres USB que funcionan con SANE.
178
Captulo 7. Multimedia 7.6.2.1. Interfaz USB El kernel GENERIC incluye por omisin los controladores de dispositivo necesarios para poder usar escneres USB. Si va a personalizar su kernel asegrese de que esto est en el chero de conguracin del mismo:
device device device device usb uhci ohci uscanner
Segn cual sea el chipset de su placa base tendr que usar device uhci o device ohci, aunque si tiene ambos no tendr problemas por eso. Si por cualquier motivo no quiere recompilar su kernel y su kernel no es el GENERIC puede cargar el mdulo controlador de dispositivo uscanner(4) con kldload(8):
# kldload uscanner
Si quiere cargar este mdulo cada vez que arranque el sistema debe aadir la siguiente lnea a /boot/loader.conf:
uscanner_load="YES"
Tras reiniciar con el kernel correcto (o una vez que el mdulo est cargado) conecte su escner USB. Debe aparecer en el buffer de mensajes del sistema (dmesg(8)) un mensaje una lnea como la siguiente:
uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
La lnea del ejemplo muestra que nuestro escner est utilizando el nodo de dispositivo/dev/uscanner0.
7.6.2.2. Interfaz SCSI Si su escner tiene un interfaz SCSI es importante saber qu controladora SCSI incorpora. El chipset SCSI que tenga inuir en la conguracin del kernel que tenga que personalizar. El kernel GENERIC tiene controladores de dispositivo para las controladoras SCSI ms comunes. Consulte el chero NOTES y aada la lnea correcta al chero de conguracin de su kernel. Tendr que aadir tambin la siguiente lnea:
device scbus device pass
Una vez compilado e instalado el kernel correctamente tiene ya que ver sus nuevos dispositivos en el buffer de mensajes del sistema:
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
Si su escner estaba apagado durante el arranque puede forzar manualmente la deteccin si ejecuta una bsqueda de buses SCSI con camcontrol(8):
# camcontrol rescan all
Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful
179
Captulo 7. Multimedia
Re-scan of bus 3 was successful
<IBM DDRS-34560 S97B> <IBM DDRS-34560 S97B> <AGFA SNAPSCAN 600 1.10> <PHILIPS CDD3610 CD-R/RW 1.00>
at at at at
5 6 2 0
0 0 0 0
Tiene todos los detalles sobre los dispositivos SCSI en las pginas de manual de scsi(4) y camcontrol(8).
En la salida de la orden anterior se le mostrar el tipo de interfaz del escner y el nodo de dispositivo a travs del cual el sistema accede a l. Es posible que no aparezcan la marca y el modelo, pero eso no tiene importancia.
Nota: Algunos escneres USB necesitan que les instale un rmware; esto se explica en la pgina de manual del backend correspondiente. Tambin debe leer las pginas de manual sane-nd-scanner(1) y sane(7).
Ahora hay que comprobar que el frontend de escaneo puede identicar el escner. Por omisin los backends de SANE incorporan una herramienta de lnea de rdenes llamada scanimage(1), que le mostrar una lista de dispositivos e incluso una captura de imagen desde la shell. La opcin -L muestra una lista de escners:
# scanimage -L
Si el software no lanza ningn mensaje, o si el mensaje indica que no se han encontrado escneres signica que scanimage(1) no puede identicar su escner. Si este es el caso tendr que editar el chero de conguracin del backendy denir en l el escner que quiera utilizar. Encontrar todos los cheros de conguracin de los backends en el directorio /usr/local/etc/sane.d/. Este problema con la identicacin del hardware es relativamente frecuente con ciertos modelos de escneres USB. Por ejemplo, con el escner que hemos usado en la Seccin 7.6.2.1 la orden sane-find-scanner nos da la siguiente informacin:
# sane-find-scanner -q
180
Captulo 7. Multimedia
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
El escner ha sido detectado sin problemas, utiliza el interfaz USB y est conectado al nodo de dispositivo /dev/uscanner0 . Ahora comprobaremos que podemos identicar correctamente el escner:
# scanimage -L
No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).
No hemos podido identicar el escner, as que hemos de editar el chero /usr/local/etc/sane.d/epson.conf. Estamos usando el modelo de escner EPSON Perfection 1650, as que ya sabemos que el escner utilizar el backend epson. Lea atentamente los comentarios que hay en los cheros de conguracin de los backends. Lo que hay que hacer es muy sencillo: basta con comentar las lneas en las que aparecen interfaces que no sean el perfecto para su escner. En nuestro caso comentaremos todas las lneas que comiencen por scsi puesto que nuestro escner tiene interfaz USB. Despus de esto hay que aadir una lna al nal del chero declarando el interfaz y el nodo de dispositivo que se van a usar. En el caso del ejemplo esto es lo que aadimos:
usb /dev/uscanner0
Por favor, lea los comentarios que encontrar en el chero de conguracin del backend y la pngina de manual de del backend si necesita ms informacin sobre la sintaxis que debe usar. Hecho esto podemos vericar si ya podemos identicar el escner:
# scanimage -L
Hemos identicado nuestro escner USB. Ni tiene importancia si la marca y modelo que hemos visto no coinciden con nuestro escner. Lo nico realmente importante es el campo epson:/dev/uscanner0, que nos da el nombre correcto del backend y el nodo de dispositivo correcto. Una vez que scanimage -L llega a ver al escner hemos terminado con la conguracin. El dispositivo est listo para escanear imngenes. scanimage(1) permite ejecutar una captura de imgen desde la lnea de rdenes, pero siempre es mejor utilizar un interfaz grco de usuario para estas tareas. SANE ofrece un interfaz grco simple pero eciente: xscanimage (graphics/sane-frontends). Otro frontend grco para escanear que se ha hecho muy popular es Xsane (graphics/xsane). Este frontend tiene caractersticas muy avanzadas como varios modos de escaneo (fotocopia, fax, etc.), correccin de color, escaneo de imgenes por lotes, etc. Ambas aplicaciones pueden utilizarse adems como plugins de GIMP.
181
Captulo 7. Multimedia
# pw groupmod operator -m joe
Para ms informacin sobre el uso de pw(8) lea su pgina de manual. Tendr tambin que congurar correctamente los permisos de escritura (0660 o 0664) en el nodo de dispositivo /dev/uscanner0; por omisin los miembros del grupo operator slo tienen acceso de lectura en este nodo de dispositivo. Aada las siguientes lneas al chero lines to the /etc/devfs.rules:
[system=5] add path uscanner0 mode 660
Para ms informacin sobre lo que acaba de leer consulte la pgina de manual de devfs(8).
Nota: Por seguridad debera pensarse dos veces el hecho mismo de aadir cualquier usuario a un grupo y muy especialmente al grupo operator.
182
8.1. Sinopsis
El kernel de FreeBSD es el corazn del sistema operativo. Es el responsable de la gestin y control de la memoria, reforzamiento de los controles de seguridad, gestin de redes, acceso a dispositivos y muchas cosas ms. FreeBSD es un sistema dinmico y congurable, pero a veces sigue siendo necesario recongurar y recompilar un kernel hecho a la medida de nuestras necesidades. Una vez leido este captulo sabr usted:
Por qu puede ser necesario que compile un kernel personalizado. Cmo crear un chero de conguracin del kernel, o bien editar un chero existente. Cmo utilizar el chero de conguracin para crear y compilar un nuevo kernel. Cmo instalar su nuevo kernel. Cmo resolver algunos problemas si algo sale mal.
Mayor rapidez en el arranque del sistema. Dado que el kernel slo tiene que probar el hardware que realmente est en el sistema el tiempo que necesitar para arrancar se reducir visiblemente.
183
Menor uso de memoria. Generalmente un kernel personalizado utiliza menos memoria que un kernel GENERIC, lo cual es importante ya que el kernel debe encontrarse siempre en memoria real. Por sta razn un kernel personalizado puede ser de gran utilidad en sistemas con una cantidad limitada de memoria RAM. Hacer funcionar hardware especco. Un kernel personalizado le permite aadir al sistema dispositivos como tarjetas de sonido, que no estn incluidas en el kernel GENERIC.
Si no hay otro sistema operativo en la mquina el administrador tendr que conseguir la informacin por su cuenta. Una forma de hacerlo es mediante dmesg(8) y man(1). La mayora de los controladores de dispositivo que hay en FreeBSD tienen una pgina de manual, que suele incluir una lista del hardware que puede hacer funcionar. En la prueba del sistema durante el arranque va apareciendo una lista del harware que hay en la mquina. Por ejemplo, las siguientes lneas indican que el controlador psm ha encontrado un ratn:
psm0: psm0: psm0: psm0: <PS/2 Mouse> irq 12 on atkbdc0 [GIANT-LOCKED] [ITHREAD] model Generic PS/2 mouse, device ID 0
Puede aadir este controlador al chero de conguracin de su kernel personalizado o cargarlo utilizando loader.conf(5). A veces los datos que muestra dmesg solamente muestran mensajes del sistema en lugar de la salida de la prueba de arranque. En esos casos puede ver la verdadera salida de dmesg en el chero /var/run/dmesg.boot. Otro mtodo para identicar el hardware del sistema es usar pciconf(8), que tiene una salida mucho ms verbosa. Veamos un ejemplo:
ath0@pci0:3:0:0: vendor = device = class = subclass = class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 Atheros Communications Inc. AR5212 Atheros AR5212 802.11abg wireless network ethernet
Este fragmento, obtenido con pciconf -lv muestra cmo el controlador ath ha encontrado un dispositivo Ethernet inalmbrico. Escriba man ath para consultar la pgina de manual de ath(4). La opcin -k de man(1) le suministrar valiosa informacin. Sigamos con el ejemplo anterior:
184
Con esto obtendremos una lista de pginas de manual que contienen esa palabra en particular:
ath(4) ath_hal(4) - Atheros IEEE 802.11 wireless network driver - Atheros Hardware Access Layer (HAL)
Una vez que tenemos nuestra amante lista de hardware del sistema el proceso de compilar un kernel personalizado debera parecer un poco menos inquietante.
Si hace lo que dice ah, es decir, aadir la lnea if_ath_load="YES" al chero /boot/loader.conf har que el mdulo se cargue dinmicamente cada vez que el sistema arranque. Hay casos, no obstante, en los que no existe el mdulo correspondiente. Esto sucede con ciertos subsistemas y con controladores muy importantes, como por ejemplo el de FFS, que necesita el kernel. Igual sucede con la posibilidad de utilizar redes (INET). Por desgracia, en estos casos la nica forma de saber si hace falta un controlador es buscar el mdulo.
AvisoEs sumamente fcil quitar un dispositivo o una opcin del kernel y encontrarse de manos a boca con un kernel que no funciona. Por ejemplo, si elimina el controlador ata(4) del chero de conguracin del kernel un sistema que utilice unidades de disco ATA no podr arrancar a menos que se aada la lnea correspondiente al chero loader.conf. Si tiene dudas busque el mdulo y deje el kernel como est.
185
Captulo 8. Conguracin del kernel de FreeBSD existe dentro de un directorio de una arquitectura en particular, es especco para dicha arquitectura; el resto del cdigo es comn para todas las plataformas en las que FreeBSD puede funcionar. Observe la organizacin lgica de la estructura de los directorios, con cada dispositivo utilizable en el sistema, sistema de cheros y opciones, cada cosa en su propio subdirectorio. A lo largo de este captulo asumiremos que est utilizando la arquitectura i386, puesto que sobre ella son los ejemplos que vamos a ir exponiendo. Si no es este su caso debe hacer los cambios adecuados a su arquitectura de hardware en las rutas que vayamos utilizando.
Nota: Si no existe el directorio /usr/src/sys en su sistema quiere decir que no estn instaladas las fuentes del kernel. La forma ms sencilla de tenerlas es mediante /stand/sysinstall. Como usuario root seleccione Configure, luego Distributions, despus src y nalmente sys. Si no le gusta mucho sysinstall y tiene acceso a un CDROM ocial de FreeBSD puede instalar las fuentes por medio de la siguiente lnea de rdenes:
# # # # mount /cdrom mkdir -p /usr/src/sys ln -s /usr/src/sys /sys cat /cdrom/sys/ssys.[a-d]* | tar -xzvf
Ahora vaya al al directorio arch/conf y copie el chero de conguracin GENERIC con el nombre que desee. Por ejemplo:
# cd /usr/src/sys/i386/conf # cp GENERIC MIKERNEL
Por tradicin el nombre se escribe con maysuculas y si tiene varias maquinas FreeBSD, con diferente hardware es recomendable darle a cada kernel el mismo nombre que la mquina en la que va a ejecutarse. En este ejemplo usaremos el nombre de MIKERNEL .
Sugerencia: Guardar su chero de conguracin directamente bajo el directorio /usr/src, puede que no sea una idea muy astuta. Si empieza a tener problemas puede ser muy tentador borrar /usr/src y comenzar desde cero. Cinco segundos despus de haber hecho esto se dar cuenta de que ha eliminado el chero de conguracin de su kernel, en el que quizs llevaba horas trabajando. Le proponemos una alternativa: guardar su chero de conguracin cualquier otro sitio y crear un enlace simblico al chero que hay en el directorio i386. Por ejemplo:
# # # # cd /usr/src/sys/i386/conf mkdir /root/kernels cp GENERIC /root/kernels/MIKERNEL ln -s /root/kernels/MIKERNEL
Ahora edite el chero de conguracin MIKERNEL con su editor de textos favorito. Si se trata de una instalacin reciente probablemente el nico editor disponible sea vi, del cual es complicado explicar su uso detallado en este documento, pero existen bastantes libros que detallan su uso; puede ver algunos en la bibliografa. FreeBSD dispone de un editor de uso muy sencillo, llamado ee; si es usted principiante le ser de mucha ayuda. Cambie los comentarios al principio del chero con algo que reeje los cambios realizados o al menos para diferenciarlo del chero GENERIC.
186
Captulo 8. Conguracin del kernel de FreeBSD Si ha compilado un kernel en SunOS o algn otro sistema operativo BSD seguramente la mayor parte de chero le ser muy familiar. Si viene usted de otros sistemas operativos como DOS, el chero GENERIC puede parecerle intimidante, as que siga las instrucciones descritas en El Fichero de Conguracin detenidamente y con sumo cuidado.
Nota: Asegrese siempre de vericar el chero /usr/src/UPDATING antes de realizar cualquier actualizacin del sistema si ha sincronizado sus fuentes para disponer de la ltima versin de los mismos. En el chero /usr/src/UPDATING est toda la informacin importante sobre las actualizaciones. Al distribuirse con FreeBSD dicha informacin deber estar ms actualizada que la que hay en este mismo texto.
Ahora es momento de llevar a cabo la compilacin del cdigo fuente del kernel. Compilacin del kernel 1. Vaya al directorio /usr/src:
# cd /usr/src
2.
Compile el kernel:
# make buildkernel KERNCONF=MIKERNEL
3.
Nota: Es imprescindible que disponga del cdigo fuente completo de FreeBSD para poder compilar el kernel.
Sugerencia: Por omisin, si compila un kernel personalizado todos los mdulos del kernel sern recompilados tambin. Si quiere que la actualizacin de su kernel sea mucho ms rpida o compilar solamente ciertos mdulos personalizados, edite kernel modules will be rebuilt as well. /etc/make.conf antes de compilar el kernel:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Esta variable crea una lista de mdulos listos para ser compilados, sin tocar los dems.
WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs
Esta variable crea una lista de mdulos que sern excluidos del proceso de compilacin. Hay otras variables que pueden resultarle tiles durante este proceso; consulte la pgina de manual de make.conf(5).
El nuevo kernel se copiar al directorio raz como /kernel y el kernel viejo tendr el nombre de /kernel.old. Ahora reinicie su sistema para poder probar su nuevo kernel. En caso de que se presente algun problema hay algunos consejos para la resolucin de problemas al nal de este captulo. Asegrese de leer la seccin que explica cmo recuperar el sistema en caso de que su kernel no quiera arrancar.
Nota: Ciertos cheros relacionados con el proceso de arranque, como loader(8)y su conguracin, se guardan en /boot. Los mdulos personalizados o de terceros se suelen guardar en /boot/kernel, aunque debe tener
187
A continuacin veremos un ejemplo de chero de conguracin de un kernel GENERIC al que se han aadido comentarios adicionales donde se ha visto que era necesario abundar un poco para mayor claridad. Este ejemplo es igual (o, en el peor de los casos, casi igual) que la copia del mismo que tiene usted en /usr/src/sys/i386/conf/GENERIC.
machine i386
Esta es la arquitectura de la mquina. Debe ser alpha, amd64, i386, ia64, pc98, powerpc o sparc64.
cpu cpu cpu I486_CPU I586_CPU I686_CPU
Las opciones anteriores denen el tipo de CPU que haya en su sistema. Puede dejar varias lneas de CPU (si, por ejemplo, no est seguro de usar I586_CPU o I686_CPU), pero si est personalizando su kernel es mucho mejor que solamente ponga la CPU que tenga. Si no est seguro de la CPU que tiene busque en los mensajes de arranque que se guardan en /var/run/dmesg.boot.
ident GENERIC
Este es el identicador del kernel. Modifquelo para que cuadre con el nombre que le haya dado a su kernel, es decir, MIKERNEL si ha seguido los ejemplos anteriores. El valor que asigne a la cadena ident ser el que se muestre cuando arranque con su kernel, as que es til darle a su kernel un nombre distintivo que permita distinguirlo fcilmente de otros, por ejemplo, si est compilando un kernel experimental.
#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices.
188
Captulo 8. Conguracin del kernel de FreeBSD device.hints(5) se usa para congurar opciones de controladores de dispositivo. La ubicacin por defecto en la que loader(8) buscar durante el arranque es /boot/device.hints. Si usa la opcin hints puede compilar el contenido de device.hints en su kernel, lo que har innecesario crear ese chero en /boot.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
El proceso normal de compilacin en FreeBSD incluye informacin de depuracin de errores si se compila un kernel con la opcin -g, que activa la informacin de depuracin de errores al pasar a gcc(1).
options SCHED_4BSD # 4BSD scheduler
Permite que hilos que estn en el kernel puedan asociarse con hilos cuya prioridad sea ms alta. Ayuda con la interactividad y permite que los hilos interrumpidos puedan ejecutarse antes en lugar de tener que esperar.
options INET # InterNETworking
Networking. Deje esto como est, incluso si no tiene en mente conectar la mquina a una red. Muchos programas necesitan al menos disponer de lo que se llama loopback networking (esto es, poder efectuar conexiones de red con su propia mquina) as que tener esto es obligatorio.
options INET6 # IPv6 communications protocols
El sistema de cheros bsico para discos duros. Debe dejarlo como est si pretende poder arrancar desde disco duro.
options SOFTUPDATES # Enable FFS Soft Updates support
Activa Soft Updates en el kernel, lo que acelerar los accesos de escritura a sus discos. Esta funcionalidad la facilita el kernel, pero debe activarse para cada disco de forma especca. Revise la salida de mount(8) y ver si Soft Updates est activado en los discos de su sistema. Si no aparece la opcin soft-updates actvela mediante tunefs(8) (para sistemas de cheros ya existentes) o newfs(8) (en el caso de sistemas de cheros nuevos).
options UFS_ACL # Support for access control lists
Esta opcin activa en el kernel las listas de control de acceso. Consiste en el uso de atributos extendidos y UFS2 junto con las caractersticas que se describen detalladamente en la Seccin 14.12. Las ACL por omisin estn activadas, y no deben desactivarse del kernel una vez que hayan sido usadas en un sistema de cheros puesto que eliminar las listas de control de acceso y el modo en el que se protegen esos cheros de un modo totalmente fuera de control.
options UFS_DIRHASH # Improve performance on big directories
This option includes functionality to speed up disk operations on large directories, at the expense of using additional memory. You would normally keep this for a large server, or interactive workstation, and remove it if you are using FreeBSD on a smaller system where memory is at a premium and disk access speed is less important, such as a rewall.
189
Esta opcin permite que la particin raz est en un disco virtual basado en memoria.
options options options NFSCLIENT NFSSERVER NFS_ROOT # Network Filesystem Client # Network Filesystem Server # NFS usable as /, requires NFSCLIENT
NFS, el sistema de cheros en red. Salvo que tenga intencin de montar particiones de sistemas de cheros UNIX de un servidor a travs de TCP/IP puede comentar estas opciones.
options MSDOSFS # MSDOS Filesystem
El sistema de cheros MS-DOS. Salvo que tenga en mente montar particiones de disco duro con formato DOS durante el arranque puede comentar esta opcin. En caso de necesidad esta funcionalidad se cargar automticamente. Tambin tiene a su emulators/mtools, que le permitir acceder a disquetes DOS sin tener que montarlos y desmontarlos (y ni siquiera requiere MSDOSFS).
options CD9660 # ISO 9660 Filesystem
El sistema de cheros ISO 9660 para CDROM. Comntelo si no tiene unidad CDROM o solamente monta CD muy de vez en cuando; cuando lo necesite el sistema lo cargar dinmicamente. Los CD de sonido no utilizan este sistema de cheros.
options PROCFS # Process filesystem (requires PSEUDOFS)
El sistema de cheros de procesos. Es un sistema de cheros simulado que se monta en /proc y permite a programas como ps(1) suministrar ms informacin sobre qu procesos estn ejecutndose. En la mayoara de los casos no es necesario usar PROCFS, puesto que la mayora de las herramientas de monitorizacin y depuracin han sido adaptadas para que funcionen sin PROCFS. De hecho aunque lo instale el sistema no lo montar por omisin.
options PSEUDOFS # Pseudo-filesystem framework
Con esta opcin se puede tener una gran cantidad de particiones en un nico disco.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
Compatibilidad con 4.3BSD. Djelo como est; ciertos programas pueden comportarse de formas muy extraas si comenta esta opcin.
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
FreeBSD 5.X en sistemas i386 y Alpha necesita esta opcin para poder usar aplicaciones compiladas en versiones antiguas de FreeBSD que utilizan, por tanto, llamadas al sistema ms antiguas. Esta opcin no es necesaria en plataformas en las que funciona FreeBSD desde 5.X, como ia64 y Sparc64.
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
190
Captulo 8. Conguracin del kernel de FreeBSD Esta opcin hace falta en sistemas FreeBSD 6.X y versiones posteriores para poder ejecutar aplicaciones compiladas en FreeBSD 5.X, que usan interfaces de llamada al sistema FreeBSD 5.X.
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
Hace que el kernel haga una pausa de 5 segundos antes de probar los dispositivos SCSI del sistema. Si solamente tiene discos IDE puede ignorar esta opcin, o tambin puede asignarle un valor menos para evitar el retardo en el arranque. Si lo hace y FreeBSD tiene problemas para reconocer dispositivos SCSI en el sistema es obvio que tendr que incrementar el valor.
options KTRACE # ktrace(1) support
Activa las trazas en el kernel, algo muy til para la depuracin de errores.
options SYSVSHM # SYSV-style shared memory
Facilita memoria compartida System V. El uso ms habitual es la extensin XSHM de X, que utiliza la mayora de programas que hacen uso intensivo de los grcos para incrementar la velocidad. Si usa X es casi seguro que le vendr bien esta opcin.
options SYSVMSG # SYSV-style message queues
Mensajes System V. Esta opcin aade solamente unos cuantos bytes al kernel.
options SYSVSEM # SYSV-style semaphores
Semforos System V. No es demasiado frecuente que se utilicen, pero solamente aaden unos cuantos cientos de bytes al kernel.
Nota: La opcin -p de ipcs(1) le mostrar una lista de procesos que estn utilizando caractersticas System V.
options
Extensiones en tiempo real aadidas en 1993 POSIX. Ciertas aplicaciones de la Coleccin de Ports las utilizan, por ejemplo StarOfce.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
This option is required to allow the creation of keyboard device nodes in /dev.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
Giant es un mecanismo de exclusin mutua (sleep mutex) que protege un gran conjunto de recursos del kernel. Hoy en dia no es asumible tener un cuello de botella as por el impacto que tiene en el rendimiento, as que est siendo reemplazado por bloqueos que protegen los recursos de manera individual. ADAPTIVE_GIANT hace que Giant sea incluido en un conjunto de mutextes que va rotando Esto es, cuando un hilo quiere bloquear el Giant mutex (pero ya est bloqueado por un hilo de otra CPU) el primer hilo seguir ejecutndose a la espera de que se libere el bloqueo. Generalmente el hilo volver al estado de reposo y esperar hasta que aparezca otra oportunidad de ejecutarse. Si no est seguro de lo que est haciendo es mejor que deje esta opcin tal y como est.
191
device
apic
# I/O APIC
El dispositivo apic activa la E/S APIC en la entrega de interrupciones. El dispositivo apic puede usarse tanto en kernels para un procesador (UP) como para sistemas multiprocesador (SMP). Si aada options SMP funcionar en sistemas multiprocesador.
Nota: El dispositivo apic existe solamente en la arquitectura i386, de modo que no debe usarse esta lnea en otras arquitecturas.
device
eisa
Use esta opcin si tiene una placa base EISA. Activa la deteccin automtica y permite la conguracin de todos los dispositivos que estn en el bus EISA.
device pci
Use esta opcin si tiene una placa PCI. Permite la deteccin automtica de tarjetas PCI y permite la conguracin entre el bus ISA y el PCI.
# Floppy drives device fdc
Este controlador permite utilizar dispositivos ATA y ATAPI. Si aade al kernel one device ata ste detectar cualquier dispositivo ATA/ATAPI PCI que conecte a una mquina moderna.
device atadisk # ATA disk drives
Si usa device ata tendr que aadir tambin esto para poder usar unidades de disco ATA.
device ataraid # ATA RAID drives
Si usa device ata tendr que aadir tambin esto para poder usar unidades de disco ATA RAID.
device atapicd # ATAPI CDROM drives
Si usa device ata tendr que aadir tambin esto para poder usar unidades ATAPI CDROM.
device atapifd # ATAPI floppy drives
Si usa device ata tendr que aadir tambin esto para poder usar unidades de disquete ATAPI.
device atapist # ATAPI tape drives
192
Captulo 8. Conguracin del kernel de FreeBSD Si usa device ata tendr que aadir tambin esto para poder usar unidades de cinta ATAPI.
options ATA_STATIC_ID # Static device numbering
Con esta opcin hace que el nmero de controladores sea esttico; si no se usa los nmeros de dispositivo se asignan dinmicamente.
# SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of ncr) device trm # Tekram DC395U/UW/F DC315U adapters device device device device device device device device adv adw aha aic bt ncv nsp stg # # # # # Advansys SCSI adapters Advansys wide SCSI adapters Adaptec 154x SCSI adapters Adaptec 15[012]x SCSI adapters, AIC-6[23]60. Buslogic/Mylex MultiMaster SCSI adapters
Controladoras SCSI. Comntelas si no las tiene en su sistema. Si en su sistema tiene solamente unidades IDE puede borrarlas todas. Las lneas *_REG_PRETTY_PRINT son opciones de depuracin de errores de sus respectivos controladores de dispositivo.
# SCSI peripherals device scbus device ch device da device sa device cd device pass device ses
# # # # # # #
SCSI bus (required for SCSI) SCSI media changers Direct Access (disks) Sequential Access (tape etc) CD Passthrough device (direct SCSI access) SCSI Environmental Services (and SAF-TE)
Perifricos SCSI. Estos tambin puede borrarlos sin problemas si no los tiene en su sistema o si solamente tiene hardware IDE.
Nota: El controlador USB umass(4) (y unos cuantos controladores ms) utilizan el subsistema SCSI aunque no sean dispositivos SCSI reales. No elimine el subsistema SCSI del kernel si va a utilizar cualquiera de estos controladores.
193
# RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac device aacp device ida device mfi device mlx device pst device twe
# # # # # # #
Adaptec FSA RAID SCSI passthrough for aac (requires CAM) Compaq Smart RAID LSI MegaRAID SAS Mylex DAC960 family Promise Supertrak SX6000 3ware ATA RAID
Controladoras RAID que pueden utilizarse en FreeBSD. Si no las tiene en su sistema puede borrarlas.
# atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller
El controlador de teclado (atkbdc) ofrece servicios de E/S con teclados AT y ratones PS/2. El controlador de teclado (atkbd) y el controlador de ratn PS/2 (psm) necesitan este dispositivo.
device atkbd # AT keyboard
El controlador atkbd, junto con el controlador atkbdc, permiten utilizar el teclado AT 84 u otros tipos de teclados AT mejorados que se conecten mediante el controlador de teclado AT.
device psm # PS/2 mouse
Funcionalidad bsica para mltiples teclados. Si no tiene en mente usar ms de un teclado en el sistema puede borrar esta lnea sin mayor problema.
device vga # VGA video card driver
194
muchos programas de pantalla completa acceden a la consola a travs de la biblioteca de bases de datos de terminal termcap no tiene demasiada importancia si usa vt, el controlador de consola compatible VT220. Cuando acceda al sistema asigne a su variable TERM el valor scoansisi los programas a pantalla completa tienen algn problema para acceder a la consola.
# Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor
El controlador de dispositivo VT220-compatible; es compatible con VT100/102, anterior a l. Funciona bien en ciertos sistemas porttiles que adolecen de incompatibilidad de harware con sc. Asigne a su variable de entorno TERM el valor vt100 o vt220 cuando acceda al sistema. Este controlador le puede ser de utilidad si tiene que acceder a gran cantidad de mquinas a travs de una red, una situacin en la que suele suceder que termcap o terminfo no estn ah para que las use sc. vt100, por el contrario, debera aparecer en prticamente cualquier plataforma.
device agp
Utilice esta opcin si tiene en el sistema una tarjeta AGP. Activar AGP y tambin AGP GART si su tarjeta puede usarla.
# Power management support (see NOTES for more options) #device apm
Gestin avanzada de la energa. Muy til en sistemas porttiles. Viene desactivada por omisin en el kernel GENERIC .
# Add suspend/resume support for the i8254. device pmtimer
Controlador del reloj para eventos de gestin de la energa, como APM y ACPI.
# PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus
Estos son los puertos serie a los que se conoce como puertos COM en entornos MS-DOS/Windows.
Nota: Si tiene un mdem interno en COM4 un puerto serie en COM2 tendr que asignar a la IRQ del mdem el 2 (por razones tcnicas ignotas IRQ2 = IRQ 9) para que pueda acceder al dispositivo desde FreeBSD. Si tiene una tarjeta serie multipuerto consulte la pgina de manual de sio(4) si quiere ms detalles sobre los valores que debe aadir a /boot/device.hints. Algunas tarjetas grcas (sobre todo las que usan chips S3) utilizan direcciones
195
device
plip
La E/S de propsito general (conocida tambin como puerto geek) + E/S IEEE1284.
#device vpo # Requires scbus and da
Este dispositivo se usa con unidades Iomega Zip. Necesita scbus y da . El mejor rendimiento se alcanza con el uso de los puertos en modo EPP 1.9.
#device puc
Puede utilizar este dispositivo si tiene una tarjeta PCI tonta (por puerto serie o paralelo) que funcione mediante el controlador puc(4).
# PCI Ethernet NICs. device de device em device ixgb device txp device vx
# # # # #
DEC/Intel DC21x4x (Tulip) Intel PRO/1000 adapter Gigabit Ethernet Card Intel PRO/10GbE Ethernet Card 3Com 3cR990 (Typhoon) 3Com 3c590, 3c595 (Vortex)
Diversos controladores para tarjetas de red PCI. Puede borrar todas las que no estn en su sistema.
# PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the device miibus line in order to use these NICs! device miibus # MII bus support
196
Captulo 8. Conguracin del kernel de FreeBSD El poder utilizar bus MII es necesario para ciertas tarjetas Ethernet PCI 10/100, ms concretamente las que usan transceptores compatibles con MII o implementan interfaces de control de transceptores que funcionan como si fueran MII. Si incluye device miibus al kernel dispondr de la API miibus genrica y todos los controladores PHY, incluyendo uno que har funcionar hardware que, siendo del tipo PHY, no est bajo ninguno de los controladores PHY especcos.
device device device device device device device device device device device device device device device device device device device device device device device device bce bfe bge dc fxp lge msk nge nve pcn re rl sf sis sk ste stge ti tl tx vge vr wb xl # # # # # # # # # # # # # # # # # # # # # # # # Broadcom BCM5706/BCM5708 Gigabit Ethernet Broadcom BCM440x 10/100 Ethernet Broadcom BCM570xx Gigabit Ethernet DEC/Intel 21143 and various workalikes Intel EtherExpress PRO/100B (82557, 82558) Level 1 LXT1001 gigabit ethernet Marvell/SysKonnect Yukon II Gigabit Ethernet NatSemi DP83820 gigabit ethernet nVidia nForce MCP on-board Ethernet Networking AMD Am79C97x PCI 10/100 (precedence over lnc) RealTek 8139C+/8169/8169S/8110S RealTek 8129/8139 Adaptec AIC-6915 (Starfire) Silicon Integrated Systems SiS 900/SiS 7016 SysKonnect SK-984x & SK-982x gigabit Ethernet Sundance ST201 (D-Link DFE-550TX) Sundance/Tamarack TC9021 gigabit Ethernet Alteon Networks Tigon I/II gigabit Ethernet Texas Instruments ThunderLAN SMC EtherPower II (83c170 EPIC) VIA VT612x gigabit ethernet VIA Rhine, Rhine II Winbond W89C840F 3Com 3c90x (Boomerang, Cyclone)
Controladores Ethernet ISA. Consulte /usr/src/sys/i386/conf/NOTES para ms detalles sobre qu tarjetas hace funcionar qu controlador.
# Wireless NIC cards device wlan
# 802.11 support
197
Captulo 8. Conguracin del kernel de FreeBSD 802.11 genrico. Necesitar esta lnea si va a usar redes inalmbricas.
device device device wlan_wep wlan_ccmp wlan_tkip # 802.11 WEP support # 802.11 CCMP support # 802.11 TKIP support
Criptografa en dispositivos 802.11. Necesita estas lneas si quiere utilizar criptografa y protocolos de seguridad 802.11.
device device device device device device device #device an # Aironet 4500/4800 802.11 wireless NICs. ath # Atheros pci/cardbus NICs ath_hal # Atheros HAL (Hardware Access Layer) ath_rate_sample # SampleRate tx rate control for ath awi # BayStack 660 and others ral # Ralink Technology RT2500 wireless NICs. wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. wl # Older non 802.11 Wavelan wireless NIC.
# Network loopback
El dispositivo de loopback para TCP/IP. Si accede por telnet o FTP or FTP to localhost tambin conocido como 127.0.0.1) lo har a travs de este dispositivo. Es imprescindible tenerlo en el sistema.
device random # Entropy device
ether solo es necesario si tiene alguna tarjeta Ethernet. Incluye cdigo genrico del protocolo Ethernet. device sl # Kernel SLIP
sl permite utilizar SLIP. Ha sido sustituido casi totalmente por PPP, que es ms fcil de usar, est mejor capacitado
Este dispositivo incluye en el kernel la capacidad de gestionar conexiones de llamada entrante dial-up. Hay tambin una versin de PPP implementada como aplicacin de usuario; utiliza tun y ofrece ms exibilidad y caractersticas como la llamada bajo peticin.
device tun # Packet tunnel.
Este dispositivo lo usa el software PPP de usuario. Consulte la seccin sobre PPP de este mismo libro.
device pty # Pseudo-ttys (telnet etc)
Este dispositivo es una pseudoterminal, o un puerto de entrada al sistema simulado. Se usa en sesiones entrantes de telnet y rlogin; tambin lo usan xterm y otras aplicaciones, entre las que encontramos a Emacs.
198
Este dispositivo implementa tneles de IPv6 sobre IPv4, IPv4 sobre IPv6, IPv4 sobre IPv4 e IPv6 sobre IPv6. El dispositivo gif se puede clonar a s mismo, as que los nodos de dispositivo se van creando a medida que van haciendo falta.
device faith # IPv6-to-IPv4 relaying (translation)
Este pseudodispositivo captura paquetes que se le hayan enviado y los dirige hacia el dmon de traduccin IPv4/IPv6.
# The bpf device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that bpf is required for DHCP. device bpf # Berkeley packet filter
El ltro de paquetes de Berkeley. Este pseudodispositivo permite poner interfaces de red en modo promscuo, lo que signica que capturan todos los paquetes que circulen por una red broadcast (por ejemplo una Ethernet). Dichos paquetes pueden guardarse en disco para su posterior examen mediante tcpdump(1) (el anlisis con tcpdump(1) no puede hacerse directamente tambin).
Nota: El dispositivo bpf(4) tambin lo usa dhclient(8) para obtener direcciones IP del encaminador (gateway) por omisin. Si usa DHCP deje esta opcin como est.
# USB support device device device device #device device device device device device device device device device # USB Ethernet, device device device device device device
uhci ohci ehci usb udbp ugen uhid ukbd ulpt umass ums ural urio uscanner requires mii aue axe cdce cue kue rue
# # # # # # # # # # # # # # # # # # # #
UHCI PCI->USB interface OHCI PCI->USB interface EHCI PCI->USB interface (USB 2.0) USB Bus (required) USB Double Bulk Pipe devices Generic Human Interface Devices Keyboard Printer Disks/Mass storage - Requires scbus and da Mouse Ralink Technology RT2500USB wireless NICs Diamond Rio 500 MP3 player Scanners ADMtek USB Ethernet ASIX Electronics USB Ethernet Generic USB over Ethernet CATC USB Ethernet Kawasaki LSI USB Ethernet RealTek RTL8150 USB Ethernet
199
# FireWire bus code # SCSI over FireWire (Requires scbus and da) # Ethernet over FireWire (non-standard!)
Diversos dispositivos Firewire. Tiene ms informacin y una lista con ms dispositivos que funcionan en FreeBSD consulte /usr/src/sys/i386/conf/NOTES.
Nota: En FreeBSD PAE solamente existe en procesadores Intel IA-32. Hemos de advertirle de que PAE no ha sido probado todo lo necesario, as que debe considerarse de calidad beta, sobre todo si se le compara con otras caractersticas de FreeBSD.
Un solo proceso no puede acceder a ms de 4 gigabytes de espacio VM. No puede cargar mdulos KLD en un kernel que tenga PAE activado debido a las diferencias existentes entre el framework de compilacin del mdulo y el del kernel mismo. Los controladores de dispositivo que utilizan el interfaz bus_dma(9) pueden provocar corrupcin de datos en un kernel con PAE activado, una excelente razn para no utilizarlos. Esta es la razn de que FreeBSD incorpore un chero de conguracin de un kernel PAE del que se han extrado todos los mdulos que se sabe que no funcionan en un kernel con PAE activado. Algunos system tunables determinan el uso de recursos de memoria basndose en la memoria fsica disponible. Estos tunables pueden asignar ms memoria de la que realmente debieran debido a que el sistema PAE est ntimamente ligado a cantidades bastante importantes de memoria. Un ejemplo de esto es la sysctl kern.maxvnodes, que controla el nmero mximo de vnodes permitidos en el kernel. Le recomendamos que ajuste este y otros tunables dentro valores razonables.
200
Es posible que tenga que aumentar el espacio virtual de direcciones del kernel (el KVA) o reducir la cantidad de recursos exclusivos del kernel que se utilicen exhaustivamente (ver ms arriba) para evitar que KVA literalmente se ahogue. La opcin del kernel KVA_PAGES permite incrementar el espacio KVA.
Si quiere saber ms sobre la estabilidad del sistema consulte la pgina de manual de tuning(7). La pgina de manual de pae(4) contiene informacin actualizada sobre PAE y FreeBSD.
Si ve algo as asegrese de que ha tecleado la palabra clave que hay en esa lna. Compare la de su chero de conguracin del kernel con la de GENERIC. Fallo de make: If the make command fails, it usually signals an error in your kernel description which is not severe enough for cong(8) to catch. Again, look over your conguration, and if you still cannot resolve the problem, send mail to the lista de correo para preguntas generales sobre FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) with your kernel conguration, and it should be diagnosed quickly. El kernel no arranca: Si su nuevo kernel no arranca o no reconoce sus dispositivos de hardware no desespere. FreeBSD dispone de excelentes mecanismos de recuperacin ante kernels defectuosos. Elija el kernel con el que quiere arrancar en el gestor de arranque de FreeBSD. Puede acceder al gestor de arranque en el momento en el que aparece el men de arranque. Elija la opcin nmero seis, Escape to a loader prompt option, Escriba en el prompt unload kernel y despus escriba boot /boot/kernel.old /kernel, o el nombre de cualquier otro kernel que tenga en el sistema y del que sepa que puede arse. Si va a recongurar un kernel es una buensima idea guardar un kernel que sepa que funciona. Tras arrancar con un kernel de ar verique el chero de conguracin e intente de nuevo una compilacin. El chero /var/log/messages es una fuente de informacin muy valiosa puesto que registra, entre otras cosas, todos los mensajes que deja el kernel cada vez que hay un arranque satisfactorio. dmesg(8) le mostrar los mensajes que el kernel ha generado durante el ltimo arranque.
Nota: Si tiene problemas compilando un kernel recuerde que es de vital importancia que guarde una copia de un kernel GENERIC u otro del que pueda arse y que (esto es muy importante) tenga un nombre distinto de kernel.old para evitar que el sistema lo borre una vez que termine una nueva compilacin. No puede conar en su kernel kernel.old porque al instalar un nuevo kernel (que an no sabe si ser el que funcione tal y como espera de l) el kernel kernel.old se sobreescribe con el kernel que instale. Otra cosa
201
El kernel funciona, pero ps(1) no: Si el kernel que tiene instalado es de una versin de FreeBSD y las utilidades del sistema son de otra, por ejemplo un kernel -CURRENT en una -RELEASE, hay muchas herramientas de monitorizacin del sistema como ps(1) y vmstat(8) no funcionarn. Ejecute un make buildworld y un make install world con la misma versin de cdigo fuente con la que ha compilado su kernel. Esta es una de las razones por las que no es una idea demasiado buena utilizar versiones diferentes de kernel y de sistema operativo.
202
Captulo 9. Imprimir
Escrito por Sean Kelly. Reestructurado y actualizado por Jim Mock.
9.1. Sinopsis
FreeBSD puede utilizarse para imprimir en una gran variedad de impresoras, desde las antiguas impresoras de matriciales hasta las ms modernas impresoras laser y todo lo que existe entre unas y otras, con lo que podr imprimir con una calidad muy alta desde cualquier aplicacin. FreeBSD puede usarse tambin como servidor de impresin en red; FreeBSD puede recibir peticiones de impresin de una gran cantidad de sistemas, bien sean FreeBSD, Windows y Mac OS. FreeBSD se encarga de los trabajos se vayan imprimiendo uno tras otro y puede mantener estadsticas sobre qu usuarios y qu mquinas estn imprimiendo ms, generar pginas de encabezado para colocarlas antes de cada trabajo y distinguir as de quin es la impresin, etc. Tras leer el presente captulo sabr usted:
Cmo congurar la cola de impresin en FreeBSD. Cmo instalar ltros de impresin para gestionar diversos trabajos especiales como la conversin de documentos a formatos aptos para su impresora. Cmo habilitar encabezados en sus impresiones. Cmo imprimir en impresoras conectadas a otras mquinas. Cmo imprimir en impresoras conectadas directamente a la red. Cmo controlar restricciones de impresin, como por ejemplo limitaciones del tamao de trabajos o evitar que ciertos usuarios puedan imprimir. Cmo mantener estadsticas de impresin y cuentas de usuario de impresin. Cmo solucionar los problemas de impresin ms comunes.
9.2. Introduccin
Si quiere utilizar impresoras con FreeBSD debe congurarlas de forma que funcionen con el sistema de cola de impresin de Berkeley, tambin conocido como sistema de cola LPD. Es el sistema de control de impresin estndar en FreeBSD. Este captulo trata sobre el sistema LPD, al que en adelante nos referiremos simplemente como LPD, y le introducir en la conguracin del mismo. Si est familiarizado con el sistema de cola de impresin LPD, o bien con algn otro sistema de impresin, puede pasar a la seccin Conguracin del sistema de cola de impresin. LPD se encarga de controlar todo lo relacionado con la impresin, lo que en consecuencia implica encargarse de lo siguiente:
203
Captulo 9. Imprimir
Controlar el acceso a las impresoras conectadas directamente al sistema y a impresoras conectadas a otras mquinas de la red.
Permitir que ciertos usuarios puedan enviar cheros para su impresin; estos envos reciben el nombre de trabajos (jobs).
Evita que usuarios diferentes accedan a la impresora al mismo tiempo manteniendo un orden estricto en la cola de impresin de cada impresora. Imprimir encabezados de forma que los usuarios puedan distinguir fcilmente los trabajos que han impreso. Se ocupa de los parmetros para impresoras conectadas a puertos serie. Enviar trabajos de impresin a travs de una red a la cola LPD de una mquina remota. Ejecutar ltros especiales para formatear trabajos que requieren la gestin de lenguajes de impresin o impresoras de diferentes caractersticas. Mantener un registro del uso de la impresora.
Gracias al chero de conguracin (/etc/printcap) y mediante programas especiales de ltrado puede hacerse que el sistema LPD cumpla todas las tareas citadas o si lo preere solo unas cuantas; adems puede hacerlo en una gran variedad de impresoras.
El sistema LPD ejecuta los trabajos en segundo plano, esto es, no tiene que esperar a que la impresora procese los datos para seguir trabajando.
LPD puede procesar un trabajo de forma que pase por ltros, aadir cabeceras de fecha y hora o convertir un chero de formato especial (por ejemplo TEX DVI) a un formato que la impresora entienda y que no tenga usted que ocuparse de ello manualmente.
Muchos programas, tanto libres como comerciales, desde los que se puede imprimir estn hechos pensando en que haya disponible un sistema de impresin. Una vez que congure un sistema de colas podr utilizar software que ya tiene instalado y preparar el campo para el que instale en el futuro.
204
Captulo 9. Imprimir
205
10.1. Sinopsis
FreeBSD proporciona compatibilidad de binarios con muchos otros sistemas operativos tipo UNIX, incluyendo Linux. Puede estarse preguntando ?por qu necesita FreeBSD ejecutar binarios de Linux? La respuesta a esa pregunta es muy simple. Muchos desarrolladores y compaas desarrollan slo para Linux, ya que ltimamente es el blanco de todas las miradas dentro del mundo de las tecnologs de la informacin. Esto hace que la comunidad FreeBSD tenga que exigir a esas compaas y desarrolladores que produzcan versiones nativas de sus aplicaciones para FreeBSD. El problema es que la mayora de esas compaas no suelen saber realmente cunta gente utilizara su producto si existieran esas versiones para FreeBSD, y la mayora contina desarrollando nicamente para Linux. Vista la situacin ?que puede hacer un usuario de FreeBSD? Aqu es donde entra en juego la compatibilidad binaria con Linux. Para expresarlo en pocas palabras, dicha compabitilidad permite a los usuarios de FreeBSD cerca del 90% de las aplicaciones de Linux sin tener que modicarlas en absoluto. Entre estas est StarOfce, la versin Linux de Netscape, Adobe Acrobat, RealPlayer, VMware, Oracle, WordPerfect, Doom, Quake y muchas ms. En determinados casos los binarios Linux rinden mejor en FreeBSD que en Linux. Existen, por desgracia, ciertas caractersticas especcas de Linux que no funcionan en FreeBSD. Los binarios Linux no funcionarn en FreeBSD si recurren a llamadas especcas de i386 como la activacin del modo virtual 8086. Tras leer este captulo sabr usted:
cmo activar la compatibilidad binaria con Linux en su sistema. cmo instalar bibliotecas compartidas de Linux que pueda necesitar. cmo instalar aplicaciones de Linux en su sistema FreeBSD. cules son los detalles de la implementacin de compatibilidad binaria con Linux en FreeBSD.
10.2. Instalacin
La compatibilidad binaria con Linux no viene activada por omisin. La forma ms sencilla de habilitarla es cargar el KLD (objeto cargable en el kernel) linux. Como usuario root proceda del siguiente modo:
# kldload linux
Si quiere que la compatibilidad con Linux est siempre activada tendr que aadir la siguiente lnea en /etc/rc.conf:
linux_enable="YES"
206
Si por alguna razn no desea o no puede cargar el KLD, entonces puede enlazar estticamente la compatibilidad de binarios Linux en el kernel agregando options COMPAT_LINUX a su chero de conguracin del kernel. Luego instale su nuevo kernel como se describe en Captulo 8.
Hecho esto debera disponer de compatibilidad binaria con Linux. Algunos programas pueden quejarse por la presencia de versiones antiguas de algunas bibliotecas del sistema. Generalmente esto no suele ser un problema muy grave.
Nota: Pueden coexistir mltiples versiones del port emulators/linux_base disponibles correspondientes a distintas versiones de diversas distribuciones de Linux. Tendr que instalar el port que ms se ajuste a las necesidades de las aplicaciones de Linux que quiera instalar.
10.2.1.2. Instalacin manual de bibliotecas Si, por el motivo que fuese, no tiene instalada la coleccin de ports puede instalar las bibliotecas que necesite de forma manual. Necesitar las bibliotecas compartidas Linux de las que depende el programa y el enlazador en tiempo de ejecucin (runtime linker). Necesitar tambin crear un directorio /compat/linux donde alojar las bibliotecas Linux en su sistema FreeBSD Cualquier biblioteca compartida a la que haya recurrido un programa de Linux ejecutado en FreeBSD buscar en primer lugar en dicho directorio. Por lo tanto, si se carga un programa Linux, por ejemplo /lib/libc.so, FreeBSD intentar en primer lugar abrir /compat/linux/lib/libc.so y, si no existe, lo intentar con /lib/libc.so. Las bibliotecas compartidas deben instalarse en /compat/linux/lib en lugar de las rutas que el ld.so de Linux proporcione. En general, necesitar buscar las bibliotecas compartidas de las que los binarios Linux dependen slamente las primeras veces que instale un programa Linux en su FreeBSD. Ms adelante tendr un conjunto suciente de bibliotecas compartidas Linux en su sistema para poder ejecutar binarios Linux sin que tenga que hacer nada ms.
207
Captulo 10. Compatibilidad binaria con Linux 10.2.1.3. Cmo instalar bibliotecas compartidas adicionales ?Que pasara si instalara el port linux_base y su aplicacin todava tuviera problemas debido a bibliotecas compartidas que no encuentra en el sistema? ?Cmo saber qu bibliotecas compartidas necesitan los binarios Linux? Bsicamente hay dos posibilidades (para poder ejecutar las siguientes instrucciones necesitar estar como root Si tiene acceso a un sistema Linux busque en l qu bibliotecas necesita la aplicacin, y cpielas a su sistema FreeBSD. Veamos unos ejemplos: Asumiremos que utiliz FTP para conseguir los binarios Linux de Doom y los puso en un sistema Linux. Para ver qu bibliotecas compartidas necesitar ejecute ldd linuxdoom:
% ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29
Necesitara todos los cheros de la segunda columna, y tendr que ponerlos en /compat/linux con los nombres de la primera columna como enlaces simblicos apuntando hacia ellos. De este modo tendra en su sistema FreeBSD los siguientes cheros:
/compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Nota: Recuerde que si ya tiene una biblioteca compartida Linux con un nmero de versin mayor que coincida con la primera columna de la salida de ldd no necesitar copiar el chero que aparece en la ltima columna; el que tiene debera funcionar, aunque se aconseja copiar la biblioteca compartida de todas maneras si es una nueva versin. Puede eliminar la vieja siempre que haga que el enlace simblico apunte a la nueva. Si tiene estas bibliotecas en su sistema:
/compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27
y un binario requiere una versin ms reciente (como indica la siguiente salida de ldd):
libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29
si solo ve una o dos versiones desfasadas en los ltimos dgitos no se preocupe de copiar /lib/libc.so.4.6.29, el programa debera funcionar bien con una versin ligeramente antigua. De todas formas, si as lo preere, puede actualizar libc.so; el resultado sera este:
/compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Nota: El mecanismo de enlazado simblico slamente es necesario con binarios Linux. El enlazador en tiempo de ejecucin de FreeBSD se encarga de buscar l mismo las versiones correctas, as que no tendr que preocuparse usted de hacerlo.
208
Para ayudar al kernel de FreeBSD a distinguir entre un binario ELF de FreeBSD y uno de Linux utilice brandelf(1).
% brandelf -t Linux mi-binario-elf-de-linux
Las herramientas GNU se encargan de ubicar automticamente la marca apropiada en los binarios ELF, por lo tanto este paso ser innecesario en un futuro prximo.
Signica que /etc/hosts seranalizado en primer lugar y despus se usar DNS. Si /compat/linux/etc/host.conf no est instalado, las aplicaciones Linux usan el /etc/host.conf de FreeBSD y chocan con la sintaxis (incompatible) de FreeBSD. Borre bind de su /etc/resolv.conf si no tiene congurado un servidor de nombres.
209
Captulo 10. Compatibilidad binaria con Linux Hecho esto FreeBSD asumir que cualquier binario sin marca que encuentre utiliza la ABI Linux; de este modo podr ejecutar el binario directamente desde el CDROM. Copie el chero MathInstaller en su disco duro
# mount /cdrom # cp /cdrom/Unix/Installers/Linux/MathInstaller /directoriolocal/
Edite este chero y sustituya la primera lnea, /bin/sh, por /compat/linux/bin/sh para asegurarnos de que lo que ejecute el instalador sea la verin de sh(1) de Linux. El siguiente paso es sustituir todos los Linux) por FreeBSD) con un editor de texto on con el script que encontrar en la siguiente seccin. Esto se hace para ayudar al instalador de Mathematica, el cual en un cierto momento invoca a uname -s para determinar el sistema operativo, a tratar a FreeBSD como si fuera un sistema operativo muy similar a Linux. Hecho todo esto, cuando ejecute MathInstaller podr instalar Mathematica.
210
Captulo 10. Compatibilidad binaria con Linux La primera es copiarlos en uno de los directorios de tipos que hay en /usr/X11R6/lib/X11/fonts, antes de lo cual tendr que aadir a fonts.dir los nombres de los tipos; tendr tambin que cambiar el nmero de tipos en la primera lnea. Por otra parte, todo esto puede hacerse ejecutando mkfontdir(1) en el directorio donde haya copiado los tipos. La segunda forma de utilizar estos tipos es copiarlos bajo /usr/X11R6/lib/X11/fonts:
# # # # # # # # # # cd /usr/X11R6/lib/X11/fonts mkdir X mkdir MathType1 cd /cdrom/Unix/Files/SystemFiles/Fonts cp X/* /usr/X11R6/lib/X11/fonts/X cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 cd /usr/X11R6/lib/X11/fonts/X mkfontdir cd ../MathType1 mkfontdir
Si usa el servidor Xorg puede cargar los tipos automticamente aadindolos al chero xorg.conf.
Nota: En servidores XFree86 el chero de conguracin es XF86Config.
Si no tiene ya en su sistema un directorio /usr/X11R6/lib/X11/fonts/Type1 puede cambiarle el nombre al directorio MathType1 del ejemplo anterior por Type1.
211
Tenga muy presente que despus de "FreeBSD"|\ no debe haber ningn espacio en blanco. Este parche le dice a Maple que interprete FreeBSD como un tipo de sistema Linux. El script de shell bin/maple llama al script de shell bin/maple.system.type, que a su vez recurre a uname -a para dictaminar el nombre del sistema operativo. Dependiendo de cul sea sabr qu binarios utilizar. 5. Inicio del servidor de licencias. El siguiente script, sito en /usr/local/etc/rc.d/lmgrd.sh, le permitir arrancar lmgrd:
----- snip -----------#! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH LICENSE_FILE=/usr/local/maple/license/license.dat LOG=/var/log/lmgrd.log case "$1" in start) lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) echo "Usage: basename $0 {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- snip ------------
6.
212
Captulo 10. Compatibilidad binaria con Linux Todo debera funcionar perfectamente. Si es as an le queda un ltimo paso: escribir a Maplesoft y decirles que sera genial una versin nativa para FreeBSD.
El gestor de licencias FLEXlm puede ser un tanto difcil de usar. En caso de necesitarla tiene ms informacin en http://www.globetrotter.com/. tiene una reconocida fama de ser muy meticuloso en todo lo relacionado con el chero de licencia; suele generar volcados de memoria si se encuentra con algn problema. Un chero de licencia correcto tiene que parecerse mucho a este:
# ======================================================= # License File for UNIX Installations ("Pointer File") # ======================================================= SERVER chillig ANY #USE_SERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ SN=XXXXXXXXX Nota: El nmero de serie y la clave han sido sobreescritos con X. chillig es el nombre de un equipo.
lmgrd
Puede editar el chero de licencia siempre que no toque la lnea FEATURE (que est protegida por la clave de la licencia).
213
Sugerencia: El instalador es grco. Si obtiene errores acerca de no ser capaz de abrir un display tecle setenv HOME ~USUARIO, donde USUARIO es el nombre del usuario con el que hizo su(1).
2.
3.
Edite el chero de licencia tal y como consta en las instrucciones de la licencia de MATLAB.
Sugerencia: Puede tenerlo ya editado y copiado a $MATLAB/license.dat desde antes de que el instalador se lo pida.
4.
La instalacin MATLAB ha nalizado. Los siguientes pasos aplicarn el pegamento necesario para conectarlo a su sistema FreeBSD.
2.
Cre un chero de inicio en /usr/local/etc/rc.d/flexlm.sh. El siguiente ejemplo es una versin modicada de $MATLAB/etc/rc.lm.glnx86 que viene con la distribucin de MATLAB. Los cambios que se han hecho en l obedecen a la ubicacin de los cheros y el arranque del administrador de licencias bajo emulacin de Linux.
#!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u nombre-de-usuario && echo MATLA fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1
214
Tendr que reemplazar la entrada nombre-de-usuario de nuestro ejemplo por un nombre de usuario vlido en su sistema (que no sea root).
3.
2.
215
Captulo 10. Compatibilidad binaria con Linux 1. Cre un chero llamado $MATLAB/toolbox/local/finish.m y ponga en l una sola lnea con este texto:
! $MATLAB/bin/finish.sh Nota: $MATLAB debe escribirse tal cual.
Sugerencia: En el mismo directorio encontrar los cheros finishsav.m y finishdlg.m, que le permiten guardar su trabajo antes de salir de la aplicacin. Si quiere usar alguno de ellos, inserte la lnea de arriba inmediatamente despus de save.
2.
3.
10.6.1. Prefacio
Este texto describe el proceso de instalacin de Oracle 8.0.5 y Oracle 8.0.5.1 Enterprise Edition para Linux en una mquina FreeBSD.
216
Congure estas opciones para que se ajusten al uso que pretenda darle a Oracle. Asegrese tambin de que las siguientes opciones estn en el chero de conguracin de su kernel:
options SYSVSHM #SysV shared memory options SYSVSEM #SysV semaphores options SYSVMSG #SysV interprocess communication
10.6.3.2. Cuenta Oracle Cre una cuenta oracle segn el procedimiento habitual de creacin de usuarios. La cuenta oracle, empero, tiene algo especial puesto que debe teer una shell de Linux. Aada /compat/linux/bin/bash a /etc/shells y asigne a la cuenta oracle /compat/linux/bin/bash como shell por omisin.
10.6.3.3. Entorno Adems de las variables normales para Oracle, como ORACLE_HOME y ORACLE_SID, debe congurar las siguientes variables de entorno: Variable
LD_LIBRARY_PATH CLASSPATH PATH
Valor
$ORACLE_HOME/lib $ORACLE_HOME/jdbc/lib/classes111.zip /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin
Le aconsejamos congurar todas las variables de entorno en .profile. Veamos un ejemplo completo:
ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib
217
No se olvide de ejecutar root.sh de nuevo. 10.6.4.1. Cmo parchear root.sh Durante la instalacin de Oracle algunas acciones que requieren ser ejecutadas como root deben almacenarse en un script de shell llamado root.sh. Dicho script est en el directorio orainst. Aplique el siguiente parche a root.sh para que utilice la ruta correcta de chown o ejecute el script bajo una shell nativa de Linux.
*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---# This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h
218
Si no est instalando Oracle desde un CD puede parchear las fuentes de root.sh. Se llama rthd.sh y est en el directorio orainst del rbol de fuentes.
10.6.4.2. Cmo parchear genclntsh El script genclntsh se usa para crear una biblioteca de cliente compartida y para construir los demos. Al aplicar el siguiente parche comentar la denicin de PATH:
*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that were using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---# # Explicit path to ensure that were using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst
10.7.1. Introduccin
Este texto expone una forma de instalar un SAP R/3 System con una Oracle Database para Linux en una mquina FreeBSD, incluyendo la instalacin de FreeBSD y Oracle. Se muestran dos conguraciones diferentes:
219
SAP R/3 4.6B (IDES) con Oracle 8.0.5 en FreeBSD 4.3-STABLE SAP R/3 4.6C con Oracle 8.1.7 en FreeBSD 4.5-STABLE
Aunque este documento trate de describir todos los pasos importantes con detalle no ha sido escrito como sustituto de las guas de instalacin de Oracle y SAP R/3. Por favor, consulte la documentacin de SAP R/3 que se incluye en la edicin para Linux de SAP y las preguntas especcas sobre Oracle, as como los recursos que estn a su disposicin sobre Oracle y SAP OSS.
10.7.2. Software
Durante la instalacin de SAP se han utilizado los siguientes CD-ROM: 10.7.2.1. SAP R/3 4.6B, Oracle 8.0.5 Nombre KERNEL RDBMS EXPORT1 EXPORT2 EXPORT3 EXPORT4 EXPORT5 EXPORT6 Nmero 51009113 51007558 51010208 51010209 51010210 51010211 51010212 51010213 Descripcin SAP Kernel Oracle / Installation / AIX, Linux, Solaris Oracle / RDBMS 8.0.5.X / Linux IDES / DB-Export / Disco 1 de 6 IDES / DB-Export / Disco 2 de 6 IDES / DB-Export / Disco 3 de 6 IDES / DB-Export / Disco 4 de 6 IDES / DB-Export / Disco 5 de 6 IDES / DB-Export / Disco 6 de 6
Tambin utilizamos el CD de Oracle 8 Server (versin pre-produccin 8.0.5 para Linux, versin de kernel 2.0.33), que no es realmente necesario y FreeBSD 4.3-STABLE (a unos cuantos das de la liberacin de 4.3-RELEASE).
10.7.2.2. SAP R/3 4.6C SR2, Oracle 8.1.7 Nombre KERNEL RDBMS EXPORT1 EXPORT1 EXPORT1 EXPORT1 Nmero 51014004 51012930 51013953 51013953 51013953 51013953 Descripcin SAP Kernel Oracle / SAP Kernel Version 4.6D / DEC, Linux Oracle 8.1.7/ RDBMS / Linux Release 4.6C SR2 / Export / Disco 1 de 4 Release 4.6C SR2 / Export / Disco 2 de 4 Release 4.6C SR2 / Export / Disco 3 de 4 Release 4.6C SR2 / Export / Disco 4 de 4
220
Captulo 10. Compatibilidad binaria con Linux Nombre LANG1 Nmero 51013954 Descripcin Release 4.6C SR2 / Language / DE, EN, FR / Disco 1 de 3
Segn los idiomas que quiera usar es posible que necesite otros CD de idiomas. Slo hemos utilizado DE y EN, as que nos bast con el primer CD. Para su informacin, los nmeros de los cuatro CD EXPORT son idnticos. Los tres CD de idiomas tambin tienen el mismo nmero, aunque esto es distinto en los CD de la versin 4.6B IDES. Al escribir este texto (20.03.2002) ejecutamos la instalacin en FreeBSD 4.5-STABLE (20.03.2002).
10.7.3.2. SAP R/3 4.6C, Oracle 8.1.7 Nmero 0015023 0045619 0171356 0195603 0212876 0300900 0377187 0387074 0387077 0387078 Ttulo Initializing table TCPDB (RSXP0004) (EBCDIC) R/3 with several languages or typefaces SAP Software on Linux: Essential Comments RedHat 6.1 Enterprise version: Known problems The new archiving tool SAPCAR Linux: Released DELL Hardware RedHat 6.2: important remarks INST: R/3 4.6C SR2 Installation on UNIX INST: R/3 4.6C SR2 Inst. on UNIX - Oracle SAP Software on UNIX: OS Dependencies 4.6C SR2
221
Para su uso en produccin le recomendamos procesadores Xeon con una cach grande, discos de alta velocidad (SCSI, controlador de RAID por hardware), USV y ECC-RAM. Un espacio en disco tan grande se debe al sistema IDES precongurado, que crea cheros de bases de datos de 27 GB durante la instalacin. Este espacio tambin es suciente para sistemas de produccin iniciales y datos de aplicacin. 10.7.4.1. SAP R/3 4.6B, Oracle 8.0.5 Este es el hardware que utilizamos al escribir este texto: placa base dual con 2 procesadores Pentium III a 800 MHz, adaptador SCSI Adaptec 29160 Ultra160 (para acceder a una unidad de cinta 40/80 GB DLT y CDROM), Mylex AcceleRAID (2 canales, rmware 6.00-1-00 con 32 MB RAM). La controladora Mylex RAID tiene conectados dos discos duros de 17 GB (replicados) y cuatro discos duros de 36 GB (RAID nivel 5).
10.7.4.2. SAP R/3 4.6C, Oracle 8.1.7 Para esta instalacin se us un Dell PowerEdge 2500: placa base dual con 2 procesadores Pentium III a 1000 MHz (256 kB de Cach), 2 GB PC133 ECC SDRAM, controladora RAID PERC/3 DC PCI con 128 MB y una unidad EIDE DVD-ROM. La controladora RAID tiene conectados dos discos duros 18 GB (replicados) y cuatro discos duros de 36 GB (RAID nivel 5).
Tamao (GB) 1 6
Montado en
/
swap
222
Tamao (GB) 2 8 45 2 2
Montado en
/var /usr /compat/linux/oracle /compat/linux/sapmnt /compat/linux/usr/sap
Congure e inicialice antes que nada las dos unidades lgicas con el software Mylex o PERC/3 RAID. El software puede iniciarse durante la fase de arranque de BIOS. Por favor, tenga en cuenta que el esquema de disco que utilizamos diere ligeramente de las recomendaciones de SAP, ya que SAP sugiere montar los subdirectorios Oracle (y algunos otros) por separado. Decidimos crearlos como subdirectorios reales para simplicar.
10.7.5.2. make world y un nuevo kernel Descargue las fuentes -STABLE ms recientes. Ejecute make world y compile su kernel personalizado. Recuerde incluir en l tanto los parmetros del kernel requeridos por SAP R/3 como los que necesita Oracle.
10.7.6.2. Instalacin del entorno de desarrollo Linux El entorno de desarrollo Linux es imprescindible si quiere instalar Oracle en FreeBSD segn se explica en la Seccin 10.6:
# cd /usr/ports/devel/linux_devtools # make install distclean
El entorno de desarrollo Linux solo ha de instalarse si sigue el proceso para instalar SAP R/3 46B IDES. No es necesario si Oracle DB no est reenlazado (relinked) con el sistema FreeBSD. Este sera su caso si est usa el chero comprimido tar de Oracle de un sistema Linux.
10.7.6.3. Instalacin de los RPM necesarios Necesitar soporte PAM para iniciar el programa R3SETUP. Durante la primera instalacin de SAP en FreeBSD 4.3-STABLE intentamos instalar PAM con todas las dependencias y nalmente forzamos la instalacin del paquete
223
Captulo 10. Compatibilidad binaria con Linux PAM, y funcion. En SAP R/3 4.6C SR2 forzamos la instalacin del RPM PAM, que tambin funcion, as que parece que las dependencias no lo son tanto:
# rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ pam-0.68-7.i386.rpm
Para que Oracle 8.0.5 pueda lanzar el agente inteligente tambin tendremos que instalar el paquete Tcl de RedHat tcl-8.0.5-30.i386.rpm (si no, cuando lo reenlace durante la instalacin de Oracle no funcionar). Existen otros aspectos relacionados con el reenlazado de Oracle a tener en cuenta durante la instalacin, pero ataen a la versin para Linux de Oracle y no son especcos de FreeBSD.
10.7.6.4. Sugerencias Le recomendamos aadir linprocfs a /etc/fstab. Consulte linprocfs(5) para ms informacin. Otro parmetro que debera congurar es kern.fallback_elf_brand=3 en /etc/sysctl.conf.
tamao en GB 45 GB 2 GB 2 GB
Tambin es necesario crear algunos enlaces. Si no, el instalador SAP tendr problemas ya que buscar los siguientes enlaces:
# ln -s /compat/linux/oracle /oracle # ln -s /compat/linux/sapmnt /sapmnt # ln -s /compat/linux/usr/sap /usr/sap
Veamos unos cuantos errores que se le pueden presentar durante la instalacin (en este caso con el sistema PRD y la instalacin de SAP R/3 4.6C SR2):
INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200 Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to /sapmnt/PRD/exe. Creating if it does not exist... WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400 Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The program cannot go on as long as this link exists at this location. Move the link to another location. ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
224
10.7.7.2. Creacin de usuarios y directorios SAP R/3 necesita dos usuarios y tres grupos. Los nombres de usuario dependen del SAP system ID (SID), y consisten en tres letras. Algunos de estos SID estn reservados por SAP (por ejemplo SAP y NIX. Tiene una lista completa de ellos en la documentacin de SAP). Para la instalacin de IDES usamos IDS y para la instalacin de 4.6C SR2 PRD, dado que ese sistema est pensado para un uso de produccin. Tenemos por lo tanto los siguientes grupos (Los ID de grupo pueden ser diferentes, estos son solamente los valores que utilizamos en nuestra instalacin): ID de grupo 100 101 102 nombre de grupo dba sapsys oper descripcin Administrador de base de datos Sistema SAP Operador de base de datos
En una instalacin por omisin de Oracle solo se usa el grupo dba. Puede usar el grupo oper como grupo dba (consulte la documentacin de Oracle y SAP para ms informacin). Tambin necesitaremos los siguientes usuarios: ID de usuario 1000 1002 nombre de usuario idsadm/prdadm oraids/oraprd nombre genrico
sid adm
orasid
Al aadir dichos usuarios mediante adduser(8) tenga en cuenta que debe incluir las siguientes entradas (observe la shell y el directorio home) al crear el administrador SAP:
Name: sid adm Password: ****** Fullname: SAP Administrator SID Uid: 1000 Gid: 101 (sapsys) Class: Groups: sapsys dba HOME: /home/sid adm Shell: bash (/compat/linux/bin/bash)
225
Esto tambin incluye al grupo oper en caso de que est usando el grupo dba y el grupo oper.
10.7.7.3. Creacin de directorios Estos directorios se crean como sistemas de cheros independientes. Esto depende totalmente de sus necesidades. Nosotros decidimos crearlos como directorios ya que todos estn en el mismo RAID 5: Primero vamos a congurar los propietarios y los derechos de algunos directorios (como root):
# # # # # chmod chmod chown chown chmod 775 /oracle 777 /sapmnt root:dba /oracle sid adm:sapsys /compat/linux/usr/sap 775 /compat/linux/usr/sap
Luego vamos a crear directorios como el usuario orasid . Estos sern todos subdirectorios de /oracle/SID :
# # # # # # su - orasid cd /oracle/SID mkdir mirrlogA mirrlogB origlogA origlogB mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 mkdir saparch sapreorg exit
Para la instalacin de Oracle 8.1.7 tendr que crear unos cuantos directorios ms:
# # # # # # # # su - orasid cd /oracle mkdir 805_32 mkdir client stage mkdir client/80x_32 mkdir stage/817_32 cd /oracle/SID mkdir 817_32
Nota: El directorio client/80x_32 tiene que tener exactamente este nombre. No sustituya la x por un nmero ni por ninguna otra cosa.
226
Captulo 10. Compatibilidad binaria con Linux 10.7.7.4. Entradas en /etc/services SAP R/3 requiere algunas entradas en /etc/services que es posible que no estn correctamente activadas durante la instalalacin. Aada las siguientes entradas (necesita al menos las entradas correspondientes al nmero de instancia, en este caso, 00. No har ningn dao aadir todas las entradas de 00 hasta 99 para dp, gw, sp y ms). Si va a utilizar un SAProuter o necesita acceder a SAP OSS, tambin necesitar 99, ya que el puerto 3299 se usa generalmente para el proceso SAProuter en el sistema destino:
sapdp00 sapgw00 sapsp00 sapms00 sapmsSID sapgw00s 3200/tcp 3300/tcp # 3400/tcp # 3500/tcp # 3600/tcp # 4800/tcp 3200 3300 + 3400 + 3500 + SAP Message Server. 3600 + # SAP Secure Gateway 4800 # SAP Dispatcher. SAP Gateway. + Instance-Number Instance-Number Instance-Number Instance-Number Instance-Number + Instance-Number
10.7.7.5. Locales necesarios SAP requiere al menos dos locales que no forman parte de la instalacin por defecto de RedHat. SAP dispone de los paquetes RPMs que pueda necesitar; puede descargalos desde su FTP, aunque tenga en cuenta que solo pueden acceder al mismo los clientes con acceso OSS). Consulte la nota 0171356, que contiene una lista de los RPM que necesitar. Tambin puede crear enlaces (por ejemplo desde de_DE y en_US ), pero no se lo recomendamos si pretende congurar un sistema de produccin (no obstante, hemos de reconocer que a nosotros nos ha funcionado con el sistema IDES sin ningn problema). Necesitar al menos los siguientes locales:
de_DE.ISO-8859-1 en_US.ISO-8859-1
Si no estn habr algunos problemas durante la instalacin. Si se ignoran (es decir, si congura el STATUS de los pasos relacionados con esos locales a OK en el chero CENTRDB.R3S) ser imposible entrar al sistema SAP sin tener que recurrir a ciertas triquiuelas.
10.7.7.6. Personalizacin del kernel Los sistemas SAP R/3 necesitan muchos recursos, por eso hemos aadido los siguientes parmetros al chero de conguracin de su kernel:
# Set these for memory pigs (SAP and Oracle): options MAXDSIZ="(1024*1024*1024)" options DFLDSIZ="(1024*1024*1024)" # System V options needed. options SYSVSHM #SYSV-style shared memory options SHMMAXPGS=262144 #max amount of shared mem. pages #options SHMMAXPGS=393216 #use this for the 46C inst.parameters
227
Puede consultar los valores mnimos en la documentacin de SAP. Como no hay detalles sobre Linux, consulte para mayor informacin la seccin de HP-UX (32-bit). El sistema de instalacin 4.6C SR2 tiene ms memoria principal, asn que los segmentos compartidos pueden ser ms extensos tanto para SAP como para Oracle; elija, por tanto, un nmero mayor de pginas de memoria compartida.
Nota: En la instalacin por omisin de FreeBSD 4.5 en i386, congure MAXDSIZ y DFLDSIZ como mximo a 1 GB. Si no lo hace podran aparecer errores extraos como ORA-27102: out of memory y Linux Error: 12: Cannot allocate memory.
Donde nombre-cd era KERNEL, RDBMS, EXPORT1, EXPORT2, EXPORT3, EXPORT4, EXPORT5 y EXPORT6 para la instalacin 4.6B/IDES, y KERNEL, RDBMS, DISK1, DISK2, DISK3, DISK4 y LANG para la instalacin 4.6C SR2. Todos los nombres de chero en los CDs montados deben estar en maysculas; si no es as use la opcin -g al montar. Utilice lo siguiente:
# mount_cd9660 -g /dev/cd0a /mnt # cp -R /mnt/* /oracle/SID /sapreorg/nombre-cd # umount /mnt
10.7.8.2. Ejecucin del script de instalacin Primero tendr que preparar un directorio install:
# cd /oracle/SID /sapreorg # mkdir install # cd install
228
Captulo 10. Compatibilidad binaria con Linux Una vez arrancado el script de instalacin copiar casi todos los cheros relevantes en el directorio install:
# /oracle/SID /sapreorg/KERNEL/UNIX/INSTTOOL.SH
La instalacin IDES (4.6B) incluye un sistema de demostracin SAP R/3 totalmente personalizado, as que hay seis CD EXPORT en lugar de solo tres. La plantilla de instalacin CENTRDB.R3S est pensada para una instancia central estndar (R/3 y base de datos), no la instancia central IDES, as que hay que copiar el CENTRDB.R3S correspondiente del directorio EXPORT1. Si no lo hace R3SETUP solo pedir tres CD EXPORT. La nueva versin de SAP 4.6C SR2 incluye cuatro CDs EXPORT. El chero de parmetros que controla los pasos de la instalacin es CENTRAL.R3S. A diferencia de versiones versiones anteriores, no existen patrones de instalacin por separado para una instancia central con o sin base de datos. SAP utiliza un patrn separado para la instalacin de la base de datos. Para reiniciar la instalacin despus es suciente reiniciarla con el chero original. Durante y despus de la instalacin, SAP necesita que hostname devuelva slamente el nombre del sistema, no el nombre cualicado de dominio. Congure el nombre del equipo de ese modo, o active un alias mediante alias hostname=hostname -s para orasid y para sid adm (y para root al menos durante los pasos de la instalacin realizados como root). Tambin puede congurar los cheros .profile y .login de los usuarios que se crean durante la instalacin SAP.
10.7.8.3. Inicio de R3SETUP 4.6B Asegrese de que LD_LIBRARY_PATH est congurada correctamente:
# export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib
El script le preguntar algunas cosas; le mostramos aqu entre corchetes la respuesta por defecto, y despus la respuesta que nosotros introdujimos: Pregunta Enter SAP System ID Enter SAP Instance Number Enter SAPMOUNT Directory Enter name of SAP central host Enter name of SAP db host Select character set Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 Extract Oracle Client archive Enter path to KERNEL CD Enter path to RDBMS CD Enter path to EXPORT1 CD Por omisin [C11] [00] [/sapmnt] [troubadix.domain.de] [troubadix] [1] (WE8DEC) Entrada IDSIntro Intro Intro Intro Intro Intro 1Intro
229
Captulo 10. Compatibilidad binaria con Linux Pregunta Directory to copy EXPORT1 CD Enter path to EXPORT2 CD Directory to copy EXPORT2 CD Enter path to EXPORT3 CD Directory to copy EXPORT3 CD Enter path to EXPORT4 CD Directory to copy EXPORT4 CD Enter path to EXPORT5 CD Directory to copy EXPORT5 CD Enter path to EXPORT6 CD Por omisin [/oracle/IDS/sapreorg/CD4_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD5_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD6_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD7_DIR] [/sapcd] [/oracle/IDS/sapreorg/CD8_DIR] [/sapcd] Entrada Intro /oracle/IDS/sapreorg/EXPORT2 Intro /oracle/IDS/sapreorg/EXPORT3 Intro /oracle/IDS/sapreorg/EXPORT4 Intro /oracle/IDS/sapreorg/EXPORT5 Intro /oracle/IDS/sapreorg/EXPORT6 Intro 850Intro (en Megabytes) Intro Intro Intro Intro Intro Intro Intro
Directory to copy EXPORT6 CD [/oracle/IDS/sapreorg/CD9_DIR] Enter amount of RAM for SAP + DB Service Entry Message Server Enter Group-ID of sapsys Enter Group-ID of oper Enter Group-ID of dba Enter User-ID of sid adm Enter User-ID of orasid Number of parallel procs [3600] [101] [102] [100] [1000] [1002] [2]
Si no ha copiado los CD a su disco duro el instalador SAP no podr encontrar el CD que necesite (identica los contenidos mediante chero LABEL.ASC de cada CD) y por lo tanto le pedir que introduzca y monte el CD, o que conrme o introduzca la ruta de montaje.
CENTRDB.R3S puede contener algn error. En nuestro caso, solicit el CD EXPORT4 ms de una vez, pero se le
indic la clave correcta (6_LOCATION, luego 7_LOCATION, etc), as que pudimos continuar introduciendo los valores correctos. Aparte de algunos problemas que se detallan ms adelante deberamos ir llegando a la instalacin del software de base de datos Oracle.
10.7.8.4. Iniciar R3SETUP 4.6C SR2 Asegrese de que LD_LIBRARY_PATH est correctamente congurada. Tenga en cuenta de que es un valor diferente de la instalacin 4.6B con Oracle 8.0.5:
# export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib
El script le preguntar algunas cosas. Le presentamos la respuesta por omisin entre corchetes y despus la respuesta que dimos nosotros):
230
Captulo 10. Compatibilidad binaria con Linux Pregunta Enter SAP System ID Enter SAP Instance Number Enter SAPMOUNT Directory Enter name of SAP central host Enter Database System ID Enter name of SAP db host Select character set Enter Oracle server version (2) Oracle 8.1.7 Extract Oracle Client archive Por omisin [C11] [00] [/sapmnt] [majestix] [PRD] [majestix] [1] (WE8DEC) Entrada PRDIntro Intro Intro Intro PRDIntro Intro Intro 2Intro [1] (Yes, extract) Intro /oracle/PRD/sapreorg/KERNEL 1800Intro (in Megabytes) Intro Intro Intro Intro Intro Intro 3Intro (no support) Intro Intro
Enter path to KERNEL CD [/sapcd] Enter amount of RAM for SAP + DB 2044 Service Entry Message Server Enter Group-ID of sapsys Enter Group-ID of oper Enter Group-ID of dba Enter User-ID of oraprd Enter User-ID of prdadm LDAP support Installation step completed Choose installation service [3600] [100] [101] [102] [1002] [1000] [1] (continue) [1] (DB inst,le)
La creacin de usuarios da un error durante la instalacin en las fases OSUSERDBSID_IND_ORA (al crear al usuario orasid ) y OSUSERSIDADM_IND_ORA (al crear el usuario sid adm). Ms adelante hablaremos de cierto problemas que an tenemos pendientes, pero ha llegado el momento de instalar el software de base de datos Oracle.
231
Para ms informacin consulte las notas correspondientes de SAP o los Readme de Oracle. Si no es posible (durante la instalacin no tuvimos tiempo suciente para ello), se podran utilizar los binarios originales, o los binarios reenlazados de un sistema original RedHat. Instale el paquete Tcl de RedHat para compilar el agente inteligente. Si no puede conseguir tcl-8.0.3-20.i386.rpm debera funcionar una versin ms reciente, por ejemplo tcl-8.0.5-30.i386.rpm para RedHat. Aparte del reenlazado, la instalacin es muy sencilla:
# # # # # # su - oraids export TERM=xterm export ORACLE_TERM=xterm export ORACLE_HOME=/oracle/IDS cd $ORACLE_HOME/orainst_sap ./orainst
Conrme todas las pantallas con Intro hasta que el software est instalado; todas excepto en la que debe quitar la marca de instalacin al visualizador de textos Oracle en lnea, ya que no existe para Linux. Oracle intentar, gracias a esto, reenlazar con i386-glibc20-linux-gcc en lugar de gcc, egcs o i386-redhat-linux-gcc. Debido a la falta de tiempo decidimos usar los binarios de una versin Oracle 8.0.5 PreProduction, despus de que nuestro primer intento de que funcionara la versin del CD RDBMS fallara y viendo que encontrar y utilizar los RPM correctos hubiera sido una pesadilla.
10.7.9.2. Instalacin de Oracle 8.0.5 Pre-production Release para Linux (Kernel 2.0.33) La instalacin es bastante fcil. Monte el CD e inicie el instalador. Le preguntar por la ubicacin del directorio home de Oracle, y copiar en l todos los binarios. (Nosotros no eliminamos los restos de una instalacin RDBMS anterior que no termin de lleg a terminar). Tras esto la base de datos Oracle puede arrancar.
232
Captulo 10. Compatibilidad binaria con Linux 10.7.11.1. Carga de la base de datos Hecho esto puede rearrancar R3SETUP o volver a arrancar la instalacin (dependiendo si eligi salir o no). R3SETUP crea las tablas y carga los datos (en 46B IDES, desde EXPORT1 a EXPORT6, en 46C desde DISK1 a DISK4) mediante R3load. Cuando se termina la carga de la base de datos (que puede llevar un par de horas) se le pedirn algunas contraseas. En una instalacin de prueba puede usar unas contraseas de compromiso. (use una contrasea de verdad si le preocupa siquiera ligeramente la seguridad ): Pregunta Enter Password for sapr3 Conrum Password for sapr3 Enter Password for sys Conrm Password for sys Enter Password for system Conrm Password for system Entrada sapIntro sapIntro change_on_installEnter change_on_installEnter managerIntro managerIntro
10.7.11.2. Las escuchas Arranque las escuchas de Oracle con el usuario orasid de la siguiente manera:
% umask 0; lsnrctl start
Si no lo hace as ver un error ORA-12546, ya que los sockets no tendrn los permisos correctos. Consulte la nota 072984 de SAP.
10.7.11.3. Actualizacin de tablas MNLS Si tiene previsto importar idiomas que no sean Latin-1 en SAP tiene que actualizar las tablas Multi National Language Support. Tiene ms informacin sobre esto en las notas de SAP OSS 15023 y 45619. Si no es su caso puede saltarse esta parte de la instalacin de SAP.
Nota: Aunque no necesite soporte MNLS sigue siendo necesario que revise la tabla TCPDB y que la inicialice si no lo ha hecho ya. Consulte las notas 0015023 y 0045619 de SAP para ms informacin.
233
Si ejecuta saplicense sin parmetros ver una lista de opciones. Una vez que tenga la licencia en su poder la podr instalar del siguiente modo:
# /sapmnt/IDS/exe/saplicense -install
10.7.12.2. Crear usuarios Cree un usuario dentro del cliente 000 (es necesario para algunas tareas que requieren hacerse dentro del cliente 000, pero con un usuario que no sea ni sap* ni ddic). Nosotros solemos elegir para este usuario el nombre de wartung (o service, ambos servicio en castellano). Los perles son sap_new y sap_all. Para mayor seguridad las contraseas para usuarios por defecto dentro de todos los clientes deben cambiarse (incluidos los usuarios sap* y ddic).
10.7.12.3. Congurar sistema de transporte, perl, modos de operacin, etc. Dentro del cliente 000 y con un usuario que no sea ddic ni sap*, haga al menos lo siguiente: Tarea Congurar sistema de transporte, por ejemplo como Stand-Alone Transport Domain Entity Crear / editar perl para el sistema Mantener modos de operacin e instancias Transaccin STMS RZ10 RZ04
Todos estos (y muchos ms) pasos para ejecutar despus de la instalacin se explican de forma detallada en las guas de instalacin de SAP.
10.7.12.4. Editar initsid .sap (initIDS.sap) El chero /oracle/IDS/dbs/initIDS.sap contiene la copia de seguridad del perl de de SAP. Aqu es donde debe denir el tamao de la cinta a utilizar, tipo de conpresin, etc. Las siguientes modicaciones nos permitiran ejecutar sapdba / brbackup:
compress = hardware archive_function = copy_delete_save cpio_flags = "-ov --format=newc --block-size=128 --quiet" cpio_in_flags = "-iuv --block-size=128 --quiet" tape_size = 38000M tape_address = /dev/nsa0
234
Explicacin:
compress: La cinta que usamos es una HP DLT1 que tiene compresin por hardware. archive_function: Dene el comportamiento por omisin del almacenaje de los logs de Oracle: los nuevos
cheros de log se guardan en cinta, los cheros de log que ya han sido guardados se guardan de nuevo y luego se borran. As se evitan muchos problemas si necesita recuperar la base de datos y una de las cintas est daada.
cpio_flags: por omisin se usa -B, que asigna un tamao de bloque de 5120 Bytes. HP recomienda un tamao de bloque de 32 K como mnimo; usamos --block-size=128 para que sea de 64 K. Necesitaremos usar --format=newc porque tenemos nmeros de inodo mayores a 65535. La ltima opcin (--quiet) se necesita ya que brbackup se queja en cuanto cpio imprime los nmeros de bloque guardados. cpio_in_flags: Parmetros necesarios para cargar datos desde la cinta. El formato es reconocido
automticamente.
tape_size: La capacidad de almacenaje de la cinta. Por razones de seguridad (nosotros usamos compresin por
10.7.12.5. Aspectos de la conguracin una vez concluida la instalacin Los siguientes parmetros SAP deben personalizarse una vez concluda la instalacin (los ejemplos son para IDES 46B, 1 GB de memoria): Nombre ztta/roll_extension abap/heap_area_dia abap/heap_area_nondia em/initial_size_MB em/blocksize_kB ipc/shm_psize_40 SAP Note 0013026: Nombre ztta/dynpro_area SAP Note 0157246: Nombre rdisp/ROLL_MAXFS rdisp/PG_MAXFS Valor 16000 30000 Valor 2500000 Valor 250000000 300000000 400000000 256 1024 70000000
Nota: En un sistema con 1 GB de memoria y los parmetros arriba expuestos puede esperarse encontrar un
235
10.7.13.2. OSUSERSIDADM_IND_ORA durante R3SETUP Si R3SETUP se queja en este etapa edite la plantilla R3SETUP que est usando en ese momento (CENTRDB.R3S (en 4.6B) o CENTRAL.R3S o DATABASE.R3S (en 4.6C)). Ubique [OSUSERSIDADM_IND_ORA] o busque la nica entrada STATUS=ERROR y edite los siguientes valores:
HOME=/home/sid adm (was empty) STATUS=OK (had status ERROR)
10.7.13.3. OSUSERDBSID_IND_ORA durante R3SETUP Es posible que R3SETUP se queje tambin en esta etapa. El error aqu es similar al de la fase OSUSERSIDADM_IND_ORA. Edite la plantilla R3SETUP que est usando (CENTRDB.R3S (en 4.6B) o
236
10.7.13.4. oraview.vrf FILE NOT FOUND durante la instalacin de Oracle No ha dejado sin seleccionar la opcin de instalar el visualizador de texto en lnea de Oracle antes de iniciar la instalacin. Est seleccionado para ser instalado, aunque la aplicacin no existe para Linux. Deje sin seleccionar el producto en el men de instalacin de Oracle y reinicie la instalacin.
10.7.13.5. TEXTENV_INVALID durante R3SETUP, o inicio de RFC o SAPgui Si se encuentra con este error signica que falta el locale correcto. La nota 0171356 de SAP contiene una lista de RPM que deben instalarse (p.ej. saplocales-1.0-3, saposcheck-1.0-1 para RedHat 6.1). En caso de que ignore todos los errores relacionados y congure los STATUS correspondientes de ERROR a OK (en CENTRDB.R3S) cada vez que R3SETUP se queje y simplemente reinicie R3SETUP; el sistema SAP no estar congurado correctamente y no podr conectarse al sistema con SAPgui, aunque el sistema pueda arrancar. Si intenta conectar con el antiguo SAPgui de Linux recibir los siguientes mensajes:
Sat May 5 14:23:14 2001 *** ERROR => no valid userarea given [trgmsgo. 0401] Sat May 5 14:23:22 2001 *** ERROR => ERROR NR 24 occured [trgmsgi. 0410] *** ERROR => Error when generating text environment. [trgmsgi. 0435] *** ERROR => function failed [trgmsgi. 0447] *** ERROR => no socket operation allowed [trxio.c 3363] Speicherzugriffsfehler
Este comportamiento se debe a que SAP R/3 es incapaz de asignar correctamente un locale y tampoco puede congurarse a s mismo correctamente (faltan entradas en algunas tablas de la base de datos). Aada las siguientes entradas al chero DEFAULT.PFL y podr conectarse a SAP (vea la nota 0043288):
abap/set_etct_env_at_new_mode = 0 install/collate/active = 0 rscp/TCP0B = TCP0B
Reinicie el sistema SAP. Puede conectar al sistema, aunque la conguracin de idioma o de pas puede que no funcione como se espera de ella. Una vez corregidas las conguraciones de pas (y proporcionados los locales adecuados) puede eliminar estas entradas de DEFAULT.PFL y el sistema SAP puede reiniciarse.
10.7.13.6. ORA-00001 Este error solo aparece con Oracle 8.1.7 en FreeBSD 4.5. Se debe a que la base de datos Oracle no puede inicializarse correctamente y se viene abajo, dejando semforos y memoria compartida en el sistema. El siguiente intento de iniciar la base de datos produce el error ORA-00001. Encuntrelos con ipcs -a y elimnelos con ipcrm.
237
Captulo 10. Compatibilidad binaria con Linux 10.7.13.7. ORA-00445 (Brackground Process PMON Did Not Start) Este error tuvo lugar con Oracle 8.1.7. Aparece si se arranca la base de datos con el script startsap (por ejemplo startsap_majestix_00) con el usuario prdadm. Una solucin (entre otras) es iniciar la base de datos con el usuario oraprd en lugar de hacerlo con svrmgrl:
% svrmgrl SVRMGR> connect internal; SVRMGR> startup; SVRMGR> exit
10.7.13.8. ORA-12546 (Start Listener with Correct Permissions) Inicie la escucha de Oracle como usuario oraids con la siguiente orden:
# umask 0; lsnrctl start
De no ser as puede encontrarse con el error ORA-12546, ya que los sockets no tendrn los permisos adecuados. Consulte la nota de SAP 0072984.
10.7.13.9. ORA-27102 (Out of Memory) Este error ocurre al tratar de usar valores mayores a 1 GB (1024x1024x1024) en MAXDSIZ y DFLDSIZ. Recibiremos, adems, este otro error: Linux Error 12: Cannot allocate memory.
10.7.13.10. [DIPGNTAB_IND_IND] during R3SETUP Consulte la nota de SAP 0130581 de (R3SETUP step (DIPGNTAB terminates). Por alguna razn durante la instalacin especca IDES el proceso de instalacin no usaba el nombre de sistema correcto SAP IDS sino la cadena vaca "". Esto provocaba algunos errores menores en el acceso a directorios, ya que las rutas se generan dinmicamente en base a dicho SID (en este caso IDS). En lugar de ejecutar los accesos del siguiente modo :
/usr/sap/IDS/SYS/... /usr/sap/IDS/DVMGS00
/compat/linux/usr/sap
# ls -l
3 5 1 2
5 11:20 D00 5 11:35 IDS 11:35 SYS -> IDS/SYS 5 13:00 tmp
238
Encontramos una descripcin de este comportamiento en las notas de SAP. (0029227 y 0008401). En la instalacin de SAP 4.6C no tuvimos estos problemas.
10.7.13.11. [RFCRSWBOINI_IND_IND] during R3SETUP Durante la instalacin de SAP 4.6C nos encontramos con este error, cuyo origen est en un error que tuvo lugar anteriormente durante la propia instalacin. Busque en sus cheros de log y corrija el problema. Si despues de buscar en los logs el error resulta ser el correcto (revise las notas de SAP), puede poner el STATUS del paso donde se produce el error de ERROR a OK (en el chero CENTRDB.R3S) y reiniciar R3SETUP. Una vez nalizada la instalacin, tiene que ejecutar el informe RSWBOINS de la transaccin SE38. Consulte la nota SAP 0162266 para ms informacin sobre las fases RFCRSWBOINI y RFCRADDBDIF.
10.7.13.12. [RFCRADDBDIF_IND_IND] during R3SETUP Aqu sucede lo mismo de antes, asegrese, revisando los logs, de que la causa de este error no est en algn problema previo. Si en la nota de SAP 0162266 est la solucin ponga el STATUS del paso donde se produce el error de ERROR a OK (en el chero CENTRDB.R3S) y reinicie R3SETUP. Una vez nalizada la instalacin ejecute el informe RADDBDIF desde la transaccin SE38.
10.7.13.13. sigaction sig31: File size limit exceeded Este error ocurri durante el inicio del proceso SAP disp+work. Si inicia SAP con el script startsap se inician los subprocesos que se separan y hacen el trabajo sucio de iniciar el resto de procesos de SAP, pero es importante saber que el propio script no notar si algo ha ido mal. Puede revisar si los procesos SAP se iniciaron correctamente con ps ax | grep SID , que le proporcionar una lista de todos los procesos de Oracle y de SAP. Si parece que algunos procesos no estn, o si no puede conectarse al sistema SAP revise los logs que encontrar en /usr/sap/SID /DVEBMGSnr/work/. Los cheros que debe revisar son dev_ms y dev_disp. La seal 31 aparece si la cantidad de memoria compartida asignada a Oracle y SAP supera la denida dentro del chero de conguracin del kernel y puede resolverse usando un valor mayor:
# larger value for 46C production systems: options SHMMAXPGS=393216 # smaller value sufficient for 46B: #options SHMMAXPGS=262144
10.7.13.14. Start of saposcol Failed Hay algunos problemas con el programa saposcol (version 4.6D). El sistema SAP utiliza saposcol para recoger datos del rendimiento del sistema. Este programa no es necesario para usar el sistema SAP, as que el problema puede considerarse como poco importante. La versin ms antigua (4.6B) funciona, pero no recoge todos los datos (muchas llamadas devolvern un 0, por ejemplo el uso de CPU).
239
Hecho esto el cargador ELF ver la marca Linux en el chero. Cuando el cargador ELF ve la marca Linux sustituye un puntero en la estructura proc. Todas las llamadas del sistema se indexan a travs de este puntero (en un sistema UNIX tradicional sera el array de estructura sysent[] que contiene las llamadas del sistema). Adems, el proceso se marca con unos indicadores (ags) para que el vector trampa del cdigo de envo seales lo maneje de una forma determinada, as como otros arreglos (menores) que sern utilizados por el mdulo Linux del kernel. El vector de llamada del sistema Linux contiene, entre otras cosas, una lista de entradas sysent[] cuyas direcciones residen en el mdulo del kernel. Cuando el binario Linux realiza una llamada al sistema, el cdigo trampa extrae el puntero a la funcin de la llamada del sistema de la estructura proc, y as obtiene los puntos de entrada a las llamadas del sistema Linux, no las de FreeBSD.
240
Captulo 10. Compatibilidad binaria con Linux Adems, el modo Linux cambia la raz de las bsquedas de una forma dinmica. En efecto, esto es lo que hace la opcin union cuando se monta un sistema de cheros (y que no es lo mismo que el sistema de cheros unionfs!). Primero se hace un intento de buscar el chero en el directorio /compat/linux/ruta-original y solo despus, si lo anterior falla, se repite la bsqueda en el directorio /ruta-original. Esto permite que se puedan ejecutar binarios que necesitan de otros binarios (por ejemplo las herramientas de programacin (toolchain) de Linux pueden ejecutarse en su totalidad bajo la ABI de Linux). Esto signica tambin que los binarios Linux pueden cargar y ejecutar binarios FreeBSD si los binarios Linux equivalentes no se hallan presentes y que se puede poner una orden uname(1) en el rbol de directorios /compat/linux para poder estar seguros de que los binarios Linux no puedan decir que no estaban ejecutndose en Linux. En efecto, hay un kernel Linux en el kernel FreeBSD; las distintas funciones subyacentes que implementan todos los servicios proporcionados por el kernel son idnticas en ambas, las tablas de entradas de llamadas del sistema en FreeBSD y en Linux: operaciones del sistema de cheros, operaciones de memoria virtual, envo de seales IPC System V, etc. La nica diferencia es que los binarios FreeBSD reciben sus funciones de conexin (glue) y los binarios Linux las suyas (la mayora de los sistemas operativos ms antiguos solo tienen sus propias funciones de conexin: direcciones de funciones en un array de estructura sysent[] esttica y global, en lugar de direcciones de funciones que se extraen a partir de un puntero inicializado dinmicamente en la estructura proc del proceso que hace la llamada). ?Cul es entonces la ABI nativa de FreeBSD? No importa. Bsicamente, la nica diferencia es (ahora mismo; esto podra cambiar y probablemente lo har en una release futura) que las funciones de conexin de FreeBSD estn enlazadas estticamente en el kernel mientras que las de Linux pueden estarlo tambin estticamente o se puede acceder a ellas por medio de un mdulo del kernel. Bien, pero ?de verdad es esto una emulacin? No. Es una implementacin ABI, no una emulacin. No hay un emulador involucrado (ni un simulador, para adelantarnos a la siguiente pregunta). Entonces ?por qu a veces se le llama emulacin Linux? Para hacer ms difcil el vender FreeBSD! En serio, se debe a que la primera implementacin se hizo en un momento en que realmente no haba ninguna palabra distinta a esa para describir lo que se estaba haciendo; decir que FreeBSD ejecutaba binarios Linux no era cierto si no se compilaba el cdigo o se cargaba un mdulo; haca falta una forma de describir todo esto y acabamos usando emulador Linux.
241
243
Cuales son los componentes del mecanismo de arranque de FreeBSD, y como es que interactuan entre s. Las opciones que puede manejar con los componentes del mecanismo de arranque de FreeBSD, para controlar el proceso de inicio del sistema.
Slo x86: El presente captulo describe nicamente el proceso de inicio, para sistemas FreeBSD que corren en plataformas Intel x86.
244
Captulo 12. El proceso de arranque en FreeBSD Si usted slo cuenta con un sistema operativo instalado en su disco duro, el RMA estndar ser suciente. Este RMA buscar la primer particin del disco que pueda arrancar, y posteriormente ejecutar el cdigo restante de dicha particin, para efecto de completar la carga del sistema operativo. Si usted cuenta con varios sistemas operativos instalados en su disco, entonces puede hacer uso de un RMA diferente, uno que despliegue una lista de los diferentes sistemas operativos, y le permita escoger cual de ellos desea que se cargue. FreeBSD cuenta con un RMA de este tipo que puede ser instalado, as como otros distribuidores de sistemas operativos cuentan con RMAs alternativos. En el caso de FreeBSD, el resto del mecanismo de arranque, est dividido en tres etapas. La primer etapa es ejecutada por al RMA, que sabe lo suciente como para poner a la computadora en un estado especco y ejecutar la segunda etapa. La segunda etapa puede hacer un poco ms que esto, antes de ejecutar la tercer etapa. La tercer etapa naliza el trabajo de carga del sistema operativo. El trabajo es dividido en tres etapas, debido a las limitantes que tiene una PC, en cuanto al tamao de los programas a ejecutar, durante las etapas uno y dos. El encadenar estas tareas, le permiten a FreeBSD contar con un arrancador ms exible. Posteriormente el kernel es inicializado y comienza con la comprobacin de dispositivos, y prepararlos para su uso. Una vez que el proceso de arranque del kernel ha nalizado, el kernel transere el control al proceso de usuario init(8), quien se asegura de que los discos se encuentren en buen estado para su uso. Posteriormente init(8) inicia la conguracin fuente a nivel de usuario, que monta los sistemas de cheros, congura las tarjetas de red para que pueden comunicarse en la red, y comunmente inicia todos los procesos que normalmente son ejecutados en un sistema FreeBSD al arrancar el mismo.
Default: F2
Es sabido que otros sistemas, en particular Windows 95, sobreescriben el RMA con el suyo. Si esto le sucede, o bien desea reemplazar su RMA actual con el RMA de FreeBSD, entonces puede utilizar las siguientes rdenes.
# fdisk -B -b /boot/boot0 dispositivo
245
Captulo 12. El proceso de arranque en FreeBSD Donde dispositivo es aquel, desde el cual usted pretende arrancar el sistema, tal como ad0 para el disco conectado al primer IDE, ad2 para el disco maestro conectado al IDE secundario, da0 para el primer disco SCSI, y as sucesivamente. Por otro lado, si usted es un usuario de Linux, y preere que la aplicacin LILO controle el proceso de arranque, puede editar el chero /etc/lilo.conf para incluir a FreeBSD, o bien seleccionar la opcin Leave The Master Boot Record Untouched durante el proceso de instalacin. Si ha instalado el gestor de arranque de FreeBSD, puede arrancar Linux y modicar el chero de conguracin de LILO, /etc/lilo.conf, aadiendo la siguiente opcin:
other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD
lo que permitir el arranque de FreeBSD y Linux, por medio de LILO. En nuestro ejemplo hemos utilizado XY para especicar el disco utilizado y su particin. Si usted utiliza un sistema SCSI, deber cambiar /dev/hdXY por algo similar a /dev/sdXY , que nuevamente utiliza la sintxis XY . La opcin loader=/boot/chain.b puede omitirse si usted cuenta con ambos sistemas operativos en el mismo disco. Una vez que esto se ha completado, puede ejecutar /sbin/lilo -v para que se actualicen los cambios en el sistema, lo cual deber vericarse con los mensajes que aparezcan en pantalla.
Nota: N de T: La opcin mencionada como; Leave The Master Boot Record Untouched, se mostrar tal cual aparece en este documento, una vez que ha terminado la fase de particin del disco duro.
246
Si alguna vez requiere reemplazar los cheros boot1 y boot2 instalados, utilice disklabel(8).
# disklabel -B particin
Donde particin es el disco y particin del cual pretende arrancar el sistema, tal como ad0s1 para la primer particin del disco MastroPrimario.
Modo peligrosamente dedicadoSi slo utiliza el nombre del disco, tal como ad0, al usar disklabel(8) crear un disco peligrosamente dedicado, sin particin alguna. Seguramente esto no es lo que desea hacer, as que asegurese dos veces antes de presionar la tecla Return cuando utilice disklabel(8).
12.3.3.2. rdenes internas del cargador A continuacin se presentan las rdenes ms comunes del cargador. Para ver una descripcin detallada de los mismos, por favor consulte la pgina de manual de loader(8) autoboot segundos Procede a iniciar el arranque del sistema, si es que no es interrumpido el periodo dado, en segundos. Despliega una cuenta regresiva, y el tiempo dado es de 10 segundos.
247
Captulo 12. El proceso de arranque en FreeBSD boot [-opciones] [nombre_del_kernel] Procede a iniciar el kernel de manera inmediata, con las opciones dadas, si es que fuera el caso y el kernel especicado, si es que se especica alguno. boot-conf Rehace la conguracin automtica de modulos en funcin a las variables denidas, como sucede al arrancar. Esta opcin slo tiene sentido utilizarla, si en primer lugar hemos usado unload, y hemos modicado alguna variable, siendo lo ms comn el kernel. help [tema] Muestra la ayuda de un tema especco, que lee del chero /boot/loader.help. Si el tema que se indica es index, entonces se mostrar una lista de todos los temas disponibles. include fichero . . . Procesa el chero que se ha especicado. El chero se lee e interpreta lnea por lnea. Cualquier error detendr inmediatamente a include. load [-t tipo] fichero Carga el kernel, modulo del kernel, o el chero del tipo dado, en base al chero especicado. Cualquier argumento que se aada, ser pasado al chero. ls [-l] [ruta] Despliega un listado de todos los cheros que se localizan en la ruta especicada, o en el directorio raz, si es que no se le especica ruta alguna. Si se utiliza la opcin -l, tambin se mostrara el tamao de los cheros. lsdev [-v] Nos muestra una lista de todos los dispositivos desde los cuales puede ser posible cargar modulos. Si se incluye la opcin -v, el listado que se obtiene cuenta con ms detalle. lsmod [-v] Despliega los mdulos cargados. Si se utiliza la opcin -v, se mostraran ms detalles. more fichero Despliega el contenido del chero especicado, haciendo una pausa a cada numero determinado de LINEAS mostradas. reboot Reinicia el sistema de forma inmediata. set variable set variable=valor Especica los valores de las variables de entorno del cargador. unload Remueve todos los mdulos cargados.
248
Captulo 12. El proceso de arranque en FreeBSD 12.3.3.3. Ejemplos de uso del cargador He aqui unos ejemplos prcticos sobre el uso correcto del cargador.
Para arrancar simplemente su kernel usual, pero en modo mono-usuario, deber hacer lo siguiente:
boot -s
Para descargar su kernel usual y sus mdulos correspondientes, y posteriormente cargar su kernel anterior (o cualquier otro):
unload load kernel.old
Puede utilizar kernel.GENERIC para referirse al kernel generico actual que viene con la instalacin, o bien puede utilizar kernel.old para hacer referencia al kernel anterior (por ejemplo, cuando ha actualizado su sistema o ha recompilado su propio kernel).
Nota: Utilice lo siguiente para cargar sus mdulos actuales con otro kernel:
unload set kernel="kernel.old " boot-conf
Para cargar un escrito de conguracin (script que de forma automtica har todo lo que normalmente hace usted de forma manual al momento de ejecutarse el congurador de arranque):
load -t escrito_de_configuracin /boot/kernel.conf
durante la inicializacin del kernel, pregunta por los dispositivos a utilizar, para montar el sistema de cheros raz.
-C
249
250
Captulo 12. El proceso de arranque en FreeBSD Ejemplo 12-3. Una consola insegura en /etc/ttys
# name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off insecure
Nota: Una consola insegura signica que usted considera como insegura fsicamente su consola, por lo que desea asegurarse de que slo quien conoce la contrasea del superusuario puede ingresar al sistema en modo mono-usuario, y no que desea ejecutar la consola inseguramente. Esto es, si desea contar con seguridad escoja la opcin insecure, y no secure.
251
13.1. Sinopsis
FreeBSD permite que varios usuarios usen el mismo ordenador. Obviamente, slo uno de estos usuarios puede sentarse frente al monitor y al teclado en un momento dado 1 , pero cualquier nmero de usuarios puede entrar por la red para hacer su trabajo. Para usar el sistema cada usuario ha de tener una cuenta. Despus de leer este captulo sabrs:
Cules son las diferencias entre las distintas cuentas de usuario en sistemas FreeBSD. Cmo aadir cuentas. Cmo eliminar cuentas. Cmo cambiar detalles de las cuentas, como el nombre completo del usuario, o su shell preferida. Cmo establecer lmites por cuenta, para controlar los recursos como memoria o tiempo de CPU que las cuentas y grupos de cuentas pueden emplear. Cmo usar grupos para facilitar la administracin de cuentas.
13.2. Introduccin
Todos los accesos al sistema se consiguen va cuentas, y todos los procesos son ejecutados por usuarios, por ello la administracin de usuarios y cuentas es de una gran importancia en sistemas FreeBSD. Cada cuenta en un sistema FreeBSD tiene cierta informacin asociada que la identica. Nombre de usuario El nombre de usuario como se le entrara al prompt login:. Los nombres de usuario han de ser nicos en la computadora; no puede haber dos usuarios con el mismo nombre de usuario. Existen algunas reglas para la creacin de nombres de usuario vlidos documentadas en passwd(5); tpicamente se usaran nombres de usuario de a lo sumo ocho caracteres, todos ellos en minscula. Contrasea Cada cuenta tiene una contrasea asociada. La contrasea puede ser vaca, en cuyo caso no se requerir ninguna para acceder al sistema. Esto normalmente es una mala idea; cada cuenta debera tener una constrasea no vaca.
252
Captulo 13. Usuarios y administracin bsica de cuentas Identicador de usuario (UID) El UID es un numero entre 0 y 65536 que sirve para identicar unvocamente al usuario en el sistema. Internamente, FreeBSD usa el UID para identicar usuarios y cualquier comando de FreeBSD que permita especicar un nombre de usuario convertir ste al UID antes de trabajar con l. Esto signica que puedes tener varias cuentas con nombres de usuario distintos pero con el mismo UID. En lo que a FreeBSD respecta, tales cuentas son un solo usuario. Es improbable que alguna vez tengas que hacer algo as. Identicador de grupo (GID) El GID es un nmero entre 0 y 65536 que sirve para identicar unvocamente el grupo principal al cual pertenece un usuario. Los grupos son un mecanismo para controlar el acceso a recursos del sistema en base al GID, en vez del UID. Esto puede reducir signicativamente el tamao de algunos cheros de conguracin. Un usuario puede pertencer a ms de un grupo. Clase de login Las clases de login son una extensin al mecanismo de grupos que ofrecen una mayor exibilidad a la hora de adaptar el sistema a distintos usuarios. Tiempo de cambio de contrasea Por defecto FreeBSD no obliga a los usuarios a cambiar su contrasea peridicamente. Se puede requerir esto a determinados usuarios, haciendo que algunos o todos deban cambiar sus contraseas al cabo de cierto periodo de tiempo. Tiempo de expiracin de cuentas Por defecto las cuentas en FreeBSD no expiran. Si ests creando cuentas que sabes que van a tener un tiempo limitado de vida, por ejemplo, las cuentas de los estudiantes de una escuela, entonces puedes especicar cundo expiran. Una vez vencido su tiempo de expiracin una cuenta no puede ser usada para entrar en el sistema, si bien sus directorios y archivos sern conservados. Nombre completo de usuario El nombre de usuario identica unvocamente a una cuenta para FreeBSD, pero no reeja su verdadero nombre necesariamente. Esta informacin puede ser asociada a la cuenta. Directorio home El directorio home es el camino completo de un directorio en el sistema en el que el usuario se hallar cuando entre. Una convencin usual consiste en poner todos los directorios home en /home/nombre_de_usuario o en /usr/home/nombre_de_usuario. Los usuarios guardaran sus archivos personales en sus directorios home, y en cualquier directorio que creasen all. Shell de usuario La shell provee el entorno por defecto mediante el cual los usuarios interactan con el sistema. Existen varios tipos de shell y los usuarios experimentados tendrn sus propias preferencias, que pueden expresarse en la conguracin de su cuenta. Existen principalmente tres tipos de cuentas; la cuenta de superusuario, las cuentas de usuarios del sistema, y las de usuarios. La cuenta de superusuario, normalmente llamada root, se usa para administrar el sistema sin limitaciones en los privilegios. Los usuarios del sistema utilizan servicios del mismo. Finalmente, las cuentas de usuarios son usadas por gente real, aquellos que entran, leen correo, etctera.
253
privilegiado ser.
254
Resumen La aplicacin de lnea de comandos recomendada para aadir nuevos usuarios. La aplicacin de lnea de comandos recomendada para eliminar usuarios. Una herramienta exible para modicar la base de datos de usuarios. Una herramienta de lnea de comandos simple para cambiar contraseas de usuario. Una herramienta potente y exible para modicar cualquier aspecto de las cuentas de usuario.
13.6.1. adduser
adduser es un programa simple para aadir usuarios. Crea entradas en los archivos de sistema passwd y group.
Tambin crea un directorio home para el nuevo usuario, copia all cheros de conguracin por defecto (dotles) de /usr/share/skel, y opcionalmente puede enviar al usuario un mensaje de bienvenida. Para crear el chero inicial de conguracin usa adduser -s -config_create. 2 A continuacin conguramos valores por defecto para adduser y creamos nuestra primera cuenta de usuario, dado que utilizar root para uso normal del sistema es pernicioso y peligroso. Ejemplo 13-1. Conguracin de adduser
# adduser -v
Use option -silent if you dont want to see all warnings and questions. Check /etc/shells Check /etc/master.passwd Check /etc/group Enter your default shell: csh date no sh tcsh zsh [sh]: zsh Your default shell is: zsh -> /usr/local/bin/zsh Enter your default HOME partition: [/home]: Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: Send message from file: /etc/adduser.message no [/etc/adduser.message]: no Do not send message Use passwords (y/n) [y]: y Write your changes to /etc/adduser.conf? (y/n) [n]: y Ok, lets go. Dont worry about mistakes. I will give you the chance later to correct any input. Enter username [a-z0-9_-]: jru Enter full name []: J. Random User Enter shell csh date no sh tcsh zsh [zsh]: Enter home directory (full path) [/home/jru]: Uid [1001]: Enter login class: default []: Login group jru [jru]: Login group is jru. Invite jru into other groups: guest no
255
En resumen, cambiamos la shell por defecto a zsh (una shell alternativa incluida en la coleccin de ports), y deshabilitamos el envo de un mensaje de bienvenida a nuevos usuarios. Luego grabamos la conguracin, creamos una cuenta para jru, y nos aseguramos de que jru est en el grupo wheel (de modo que puede asumir el papel de root va el comando su).
Nota: La contrasea que escribes no se muestra, tampoco se muestran asteriscos. Asegrate de no entrar dos veces una contrasea equivocada.
Nota: Usa adduser sin argumentos en adelante, no necesitars cambiar las opciones por defecto. Si el programa te pide modicarlas sal y prueba con la opcin -s.
13.6.2. rmuser
Puedes usar rmuser para eliminar completamente del sistema a un usuario. rmuser efecta los siguientes pasos: 1. 2. 3. 4. 5. 6. 7. 8. Elimina la entrada del usuario en crontab(1) (si tiene alguna). Elimina las tareas at(1) pertenecientes al usuario. Mata todos los procesos pertenecientes al usuario. Elimina al usuario del chero local de contraseas del sistema. Borra el directorio home del usuario (si le pertenece). Elimina los archivos de correo entrante del usuario de /var/mail. Borra todos los cheros del usuario de reas en las que se guardan archivos temporales como /tmp. Finalmente, elimina el nombre de usuario de todos aquellos grupos a los que pertenece en /etc/group.
256
rmuser no puede ser usado para eliminar cuentas de superusuario, dado que algo as es casi siempre seal de masiva
destruccin. Por defecto existe un modo interactivo que intenta asegurar que uno sabe lo que hace. Ejemplo 13-2. Eliminacin interactiva de cuenta con rmuser
# rmuser jru
Matching password entry: jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh Is this the entry you wish to remove? y Remove users home directory (/home/jru)? y Updating password file, updating databases, done. Updating group file: trusted (removing group jru -- personal group is empty) done. Removing users incoming mail file /var/mail/jru: done. Removing files belonging to jru from /tmp: done. Removing files belonging to jru from /var/tmp: done. Removing files belonging to jru from /var/tmp/vi.recover: done.
#
13.6.3. chpass
chpass cambia informacin de los usuarios en base de datos como contraseas, shells y datos personales.
Los administradores del sistema, como el superusuario, son los nicos que pueden modicar la informacin y contraseas de otros usuarios con chpass. Cuando no le pasamos ms opciones, salvo un nombre de usuario opcional, chpass muestra un editor con informacin de usuario. Cuando se sale del editor la base de datos de usuarios se actualiza con la nueva informacin. Ejemplo 13-3. chpass interactivo ejecutado por el superusuario
#Changing user database information for jru. Login: jru Password: * Uid [#]: 1000 Gid [# or name]: 1000 Change [month day year]: Expire [month day year]: Class: Home directory: /home/jru Shell: /usr/local/bin/tcsh Full Name: J. Random User Office Location: Office Phone:
257
Un usuario normal puede modicar un pequeo subconjunto de esta informacin, y slo para s mismo. Ejemplo 13-4. chpass interactivo ejecutado por un usuario normal
#Changing user database information for jru. Shell: /usr/local/bin/tcsh Full Name: J. Random User Office Location: Office Phone: Home Phone: Other information:
Nota: chfn y chsh son enlaces a chpass, como tambin lo son ypchpass, ypchfn, e ypchsh. El soporte para NIS es automtico, por lo que no es necesario especicar el yp antes del comando. Si esto te resulta algo confuso no te preocupes, NIS ser tratado en el Captulo 29.
13.6.4. passwd
passwd es el comando que se usa normalmente para cambiar tu propia contrasea como usuario o, como
Changing local password for jru. Old password: New password: Retype new password: passwd: updating the database... passwd: done
Changing local password for jru. New password: Retype new password: passwd: updating the database... passwd: done
258
13.6.5. pw
pw(8) es una utilidad de lnea de comandos para crear, eliminar, modicar, y mostrar usuarios y grupos. Hace de interfaz a los archivos del sistema de usuarios y grupos. pw tiene un conjunto de opciones de lnea de comandos bastante potente que lo hacen adecuado para su uso en scripts de shell, aunque los nuevos usuarios puede que lo encuentren algo ms complicado que el resto de comandos que presentamos aqu.
El tamao de un chero core generado por un programa est, por razones obvias, subordinado a otros lmites sobre uso de disco (p. ej., filesize, o cuotas de disco). Aun y as, se usa frecuentemente como un mtodo menos severo de controlar consumo de espacio de disco, dado que los usuarios no generan cheros core por ellos mismos, y a menudo no los borran, activar este lmite puede evitar que agoten el espacio de disco de que disponen si algn programa grande (p. ej., emacs) deja de funcionar abruptamente.
259
sta es la mxima cantidad de tiempo de CPU que los procesos de un usuario pueden consumir.
Nota: ste es un lmite sobre el tiempo de CPU consumido, no el porcentaje de uso de CPU que se muestra en algunos campos de top(1) y ps(1). Un lmite de ese tipo no es posible a da de hoy, y sera bastante intil: un compilador probablemente una tarea legtima puede usar prcticamente el 100% de la CPU durante algn tiempo con facilidad.
filesize
ste es el tamao mximo que puede llegar a tener un chero del usuario. A diferencia de las cuotas de disco, este lmite se especica para cheros individuales, no para el conjunto de todos los archivos que posee.
maxproc
ste es el mximo nmero de procesos que un usuario puede ejecutar a la vez, incluidos tanto los procesos en primer plano como los procesos en segundo plano. Por razones obvias, este lmite no puede ser mayor que el lmite de sistema especicado por kern.maxproc sysctl. Obsrvese tambin que si asignamos un valor demasiado bajo a este lmite podemos mermar la productividad de un usuario: frecuentemente es til entrar mltiples veces en el sistema o ejecutar pipelines. Algunas tareas, como compilar largos programas, lanzan mltiples procesos (p. ej., make(1), cc(1), y dems preprocesadores intermedios).
memorylocked
sta es la mxima cantidad de memoria que un proceso puede haber solicitado tener bloqueada en memoria principal (p. ej., ver mlock(2)). Algunos programas crticos para el sistema, como amd(8), se quedan bloqueados en la memoria principal de manera que en caso de ser llevados a swap no contribuyan a la basura del sistema si hay algn problema.
memoryuse
sta es la mayor cantidad de memoria que un proceso puede consumir en todo momento. Incluye tanto memoria normal como uso de swap. No se trata de un lmite para restringir el consumo de memoria en general, pero es un buen comienzo.
openfiles
sta es la mxima cantidad de archivos que un proceso puede tener abiertos. En FreeBSD, los archivos se usan tambien para representar sockets y canales IPC; as, cuida de no poner este lmite demasiado bajo. A nivel de sistema, el lmite para esto lo dene kern.maxfiles sysctl.
260
ste es el lmite de cantidad de memoria de red, y por lo tanto mbufs, que un usuario puede consumir. Se origin como respuesta a un viejo ataque DoS que creaba muchos sockets, pero puede ser usado en general para limitar las comunicaciones por red.
stacksize
ste es el tamao mximo que puede alcanzar la pila de un proceso. Por s solo no es suciente para limitar la cantidad de memoria que puede usar un programa; en consecuencia, debera ser usado junto con otros lmites. Hay unas pocas cosas ms a recordar cuando establecemos lmites de recursos. A continuacin vienen algunas recomendaciones, sugerencias, y comentarios varios.
Los procesos que se ponen en marcha cuando arranca el sistema por /etc/rc estn asignados a la clase de login daemon. Aunque el /etc/login.conf que viene con el sistema tiene valores razonables para la mayora de los lmites, slo t, el administrador, puedes saber lo que es apropiado para tu sistema. A los usuarios del X Window System (X11) probablemente se les debera conceder ms recursos que al resto. X11 de por s consume muchos recursos, pero adems contribuye a que los usuarios ejecuten ms programas simultneamente. Recuerda que hay muchos lmites que aplican a procesos individuales, no al usuario en general. Por ejemplo, poner openfiles a 50 signica que cada uno de los procesos que ejecute un usuario puede abrir a lo mximo 50 cheros. As, la cantidad de cheros que un usuario puede abrir es el valor de openfiles multiplicado por el valor de maxproc. Esto tambin aplica al uso de memoria.
Para ms informacin acerca de lmites de recursos y clases y capacidades de login en general, consulta las pginas de manual relevantes: cap_mkdb(1), getrlimit(2), login.conf(5).
13.9. Grupos
Un grupo es simplemente una lista de usuarios. Los grupos se identican por su nombre de grupo y gid (ID de grupo). En FreeBSD (y en la mayora de sistemas Unix), los dos factores que tiene en cuenta el ncleo para decidir si un proceso puede hacer algo es su ID de usuario y la lista de grupos a los que pertenece. A diferencia del ID de usuario, un proceso tiene una lista de grupos asociados. En ocasiones encontrars menciones al "ID de grupo" de un usuario o de un proceso; la mayora de las veces referirn simplemente al primero de los grupos de la lista. La correspondencia entre nombres e IDs de grupo est en /etc/group. Se trata de un chero de texto plano con cuatro campos separados por el signo dos puntos. El primer campo es el nombre de grupo, el segundo la contrasea encriptada, el tercero el ID de grupo, y el cuarto la lista de miembros separados por comas. Puede ser editado a mano
261
Captulo 13. Usuarios y administracin bsica de cuentas sin peligro (suponiendo, por supuesto, que no se cometan errores de sintaxis!). Para una descripcin ms completa de la sintaxis, ver la pgina de manual group(5). Si no quieres editar /etc/group manualmente, puedes usar el comando pw(8) para aadir y modicar grupos. Por ejemplo, para aadir un grupo llamado teamtwo y luego conrmar que existe puedes usar: Ejemplo 13-7. Aadir un grupo usando pw(8)
# pw groupadd teamtwo # pw groupshow teamtwo
teamtwo:*:1100:
El nmero 1100 en el ejemplo anterior es el ID de grupo del grupo teamtwo. Ahora mismo teamtwo no tiene miembros, y es por tanto bastante intil. Cambiemos eso invitando a jru a formar parte del grupo teamtwo. Ejemplo 13-8. Aadir a alguien a un grupo usando pw(8)
# pw groupmod teamtwo -M jru # pw groupshow teamtwo
teamtwo:*:1100:jru
El argumento de la opcin -M es una lista con los usuarios que son miembros del grupo separados por comas. Sabemos de secciones anteriores que el chero de contraseas tambin contiene un grupo para cada usuario. El usuario es automticamente aadido a la lista de grupos por el sistema; no constar como miembro cuando usemos el comando groupshow con pw(8), pero s cuando la informacin se consulte con id(1) u otra herramienta similar. En otras palabras, pw(8) slo manipula el chero /etc/group; nunca tratar de leer datos adicionales de /etc/passwd. Ejemplo 13-9. Determinar pertenencia a grupos con id(1)
% id jru
Como puedes ver, jru es miembro de los grupos jru y teamtwo. Para ms informacin acerca de pw(8), consulta su pgina de manual, y para ms informacin acerca del formato de /etc/group, consulta la pgina de manual de group(5).
Notas
1. Bueno, a menos que conectes mltiples terminales, pero dejaremos ese tema para el Captulo 24. 2. La -s hace que adduser sea silencioso por defecto. Ms tarde usamos -v cuando queremos cambiar valores por defecto.
262
14.1. Sinopsis
Este captulo contiene una introduccin bsica a los conceptos de seguridad del sistema, unas cuantas normas bsicas de uso y algunos avanzados del tema en FreeBSD. Muchos de los temas expuestos se aplican a la seguridad del sistema y de Internet en general. Internet ya no es aqul lugar amistoso en el que todo el mundo se comportaba como un buen ciudadano. Si quiere proteger sus datos, su propiedad intelectual, su tiempo y muchas ms cosas de manos malintencionadas debe hacer que su sistema sea seguro. FreeBSD proporciona un variado arsenal de utilidades y mecanismos para asegurar la integridad y la seguridad de su sistema y red. Despus de leer este captulo:
conocer conceptos bsicos de la seguridad relacionados con FreeBSD. Tendr informacin sobre los diversos mecanismos de cifrado disponibles en FreeBSD, entre los cuales estn DES y MD5. Sabr cmo congurar la autenticacin de contraseas de un solo uso. Sabr cmo congurar TCP Wrappers y usarlos con inetd. Sabr cmo instalar KerberosIV en versiones de FreeBSD anteriores a 5.0. Sabr cmo instalar Kerberos5 en versiones de FreeBSD posteriores a 5.0. Podr congurar IPsec y crear una VPN entre mquinas FreeBSD/Windows. Sabr cmo congurar y utilizar OpenSSH, la implementacin de SSH en FreeBSD. Sabr en qu consisten las ACL del sistema de cheros y cmo utilizarlas. Sabr cmo usar Portaudit, con la que podr auditar el software que instale desde la desde la coleccin de ports. Sabr cmo sacar partido de los avisos de seguridad que publica FreeBSD. Podr hacerse una idea clara de en qu consiste la contabilidad de procesos y de cmo activarla en FreeBSD.
En otras secciones de este manual se cubren aspectos adicionales sobre seguridad. Por ejemplo, MAC (controles de acceso obligatorio) se explica en el Captulo 16 y los cortafuegos en el Captulo 26.
14.2. Introduccin
La seguridad es un trabajo que que comienza y termina en el administrador de sistema. Aunque que los sistemas multiusuario BSD UNIX posean una seguridad inherente, el trabajo de construir y mantener mecanismos de seguridad adicionales para que los usuarios sean an ms honestos es probablemente una de las mayores tareas de
263
Captulo 14. Seguridad la administracin de sistemas. Los sistemas son tan seguros como uno los haga, y no hay que olvidar que los problemas de seguridad compiten con la comodidad a la que tendemos los humanos. Los sistemas UNIX son capaces de ejecutar una gran cantidad de procesos simultneamente, muchos de los cuales son servidores, lo que signica que las entidades externas pueden conectarse y hablar con ellos. Del mismo modo que las minicomputadoras de ayer se convirtieron en los sistemas de escritorio de hoy en da, la seguridad se va convirtiendo en un problemas ms y ms acuciante. La seguridad bien entendida se implementa en capas, a la manera de una cebolla. Bsicamente lo que se hace es crear la mayor cantidad posible de capas de seguridad, para ms tarde monitorizar el sistema en busca de intrusos. No es conveniente exagerar la seguridad, ya que interferira con la deteccin, y la deteccin es uno de los aspectos ms importantes de cualquier mecanismo de seguridad. Por ejemplo, no tiene mucho sentido activar la bandera schg (consulte chags(1)) en cada binario del sistema, ya que aunque protegera en cierto modo los binarios, hara que cualquier cambio que pudiera realizar un atacante una vez dentro del sistema fuera ms difcil de detectar o incluso hacerlo del todo imposible. La seguridad del sistema depende tambin de estar preparados para distintos tipos de ataque, incluyendo intentos de tirar la mquina o dejarla en un estado inutilizable, pero que no impliquen intentos de comprometer el usuario root Los problemas de seguridad pueden dividirse en diferentes categoras: 1. Ataques de denegacin de servicio (DoS). 2. Comprometer cuentas de usuarios. 3. Comprometer root a travs de servidores accesibles. 4. Comprometer root desde cuentas de usuario. 5. Creacin de puertas traseras (Backdoors). Un ataque de denegacin de servicio es una accin que priva al sistema de los recursos requeridos para su funcionamiento normal. Generalmente, los ataques DoS son mecanismos de fuerza bruta que intentan tumbar el sistema o hacerlo inutilizable sobrecargando la capacidad de sus servidores o de la pila de red. Algunos ataques DoS intentan aprovechar errores en la pila de red para tumbar el sistema con un solo paquete. Estos ltimos nicamente pueden solucionarse aplicando al kernel una actualizacin que subsane el error. Los ataques a servidores muchas veces pueden solucionarse congurando las opciones apropiadas para limitar la carga del sistema en condiciones adversas. Los ataques de fuerza bruta a redes son ms complicados. Los ataques con paquetes enmascarados, por ejemplo, son casi imposibles de detener, a menos que desconecte el sistema de Internet. Puede ser que no tiren el sistema, pero saturarn la conexin a Internet. Comprometer una cuenta de usuario es mucho ms comn que un ataque DoS. Muchos administradores de sistemas todava ejecutan servidores estndar telnetd, rlogind, rshd y ftpd en sus mquinas. Estos servidores, por defecto no operan a travs de conexiones cifradas. El resultado es que se si se tiene una base de usuarios de tamao medio, tarde o temprando la contrasea de uno (o ms) de sus usuarios ser descubierta durante sus accesos al sistema desde ubicaciones remotas.(que es, por otra parte, la forma ms comn y ms cmoda de acceder a un sistema). El administrador de sistemas atento analizar sus logs de acceso remoto en busca de direcciones origen spspechosas, incluso entre los accesos al sistema. Se debe asumir siempre que, una vez que el atacante tiene acceso a una cuenta de usuario, el atacante puede comprometer la cuenta root. En realidad en un sistema bien mantenido y asegurado el acceso a una cuenta de usuario no necesariamente da al atacante acceso a root. Esta precisin es importante porque sin acceso a root el atacante difcilmente podr esconder sus huellas; podr, como mucho, hacer poco ms que sembrar el caos en los cheros del usuario o tirar la mquina. Comprometer cuentas de usuario es muy comn porque los usuarios tienden a no tomar las precauciones que toma el administrador.
264
Captulo 14. Seguridad Los administradores de sistemas deben tener presente que existen muchas formas potenciales de comprometer la cuenta root de una mquina. El atacante puede conocer la contrasea de root, el atacante puede encontrar un error en un servidor que se ejecuta como root y ser capaz de comprometer root a travs de una conexin de red a ese servidor; puede ser que el atacante sepa de la existencia de un error en un programa suid-root que le permita comprometer root una vez dentro de una cuenta de usuario. Si un atacante encuentra la manera de comprometer la cuenta root de una mquina puede que no necesite instalar una puerta trasera. Muchos de los agujeros root encontrados y cerrados hasta la fecha implican una cantidad considerable de trabajo para el atacante limpiando todo despus del ataque, as que la mayora de los atacantes instalan puertas traseras. Una puerta trasera facilita al atacante una forma sencilla de recuperar el acceso de root al sistema, pero tambin proporciona al administrador de sistemas inteligente una forma de detectar la intrusin. Si hace imposible a un atacante la instalacin de una puerta trasera puede estar actuando en detrimento de su seguridad, porque no cerrar el agujero que el atacante encontr para accder al sistema la primera vez que lo hizo. Las medidas de seguridad se implementan en un modelo multicapa (tipo cebolla), que puede categorizarse del siguiente modo: 1. Asegurar root y cuentas administrativas. 2. Asegurar los servidores que se ejecuten como root los binarios suid/sgid. 3. Asegurar cuentas de usuario. 4. Asegurar el chero de contraseas. 5. Asegurar el ncleo del kernel, los dispositivos en bruto y el sistema de cheros. 6. Deteccin rpida de cambios hechos al sistema. 7. Paranoia. La siguiente seccin de este captulo tratar los puntos de arriba con mayor profundidad.
Las siguientes secciones cubren los mtodos a seguir para asegurar su sistema FreeBSD que se mencionados en la seccin anterior de este captulo.
265
Captulo 14. Seguridad deshabilitados. Para ello edite su /etc/ssh/sshd_config y asegrese de que PermitRootLogin est puesto a NO. Estudie cada mtodo de acceso: hay servicios como FTP que frecuentemente son origen de grietas en la estructura del sistema. El acceso directo como usuario root slamente debe permitirse a travs de la consola. Es evidente que, como administrador del sistema, debe usted tener la posibilidad de acceder a root, as que tendr que abrir algunos agujeros, pero debe asegurarse de que estos agujeros necesiten contraseas adicionales para vericar su correcto uso. Puede hacer que root sea accesible aadiendo cuentas administrativas al grupo wheel (en /etc/group). El personal que administra los sistemas que aparezcan en el grupo en el grupo wheel pueden hacer su a root. Nunca debe de proporcionar al personal administrativo el acceso nativo a wheel ponindolos en el grupo wheel en su entrada de contrasea. Las cuentas administrativas deben colocarse en un grupo staff, y agregarse despus al grupo wheel en /etc/group. Slo aquellos administradores que realmente necesiten acceder a root deben pertenecer al grupo wheel. Tambin es posible, mediante un mtodo de autenticacin como Kerberos, usar el chero .k5login en la cuenta root para permitir un ksu(1) a root sin tener que colocar a nadie en el grupo wheel. Puede ser una mejor solucin, ya que el mecanismo wheel an permite a un atacante comprometer root si el intruso ha conseguido el chero de contraseas y puede comprometer una cuenta de administracin. Recurrir al mecanismo wheel es mejor que no tener nada, pero no es necesariamente la opcin ms segura. Una manera indirecta de asegurar las cuentas de staff y el acceso a root es utilizar un mtodo de acceso alternativo: es lo que se conoce como estrellar las contraseas cifradas de las cuentas administrativas. Use vipw(8) para reemplazar cada contrasea cifrada por un slo caracter asterisco (*). Esto actualizar /etc/master.passwd y la base de datos de usuario/contrasea y deshabilitar los accesos al sistema validados mediante contraseas. Veamos una cuenta administrativa tpica:
foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh
Este cambio evitar que se efecten logins normales, ya que la contrasea cifrada nunca se corresponder con *. Hecho esto, el personal de administracin tendr que usar otro mecanismo de validacin como kerberos(1) o ssh(1) que use un par de llave pblica/privada. Si decide usar algo como Kerberos tendr que asegurar la mquina que ejecuta los servidores Kerberos y su estacin de trabajo. Si usa un par de llave pblica/privada con ssh, debe asegurar la mquina desde desde la que se hace el login (normalmente nuestra estacin de trabajo). Puede aadir una capa adicional de proteccin al par de llaves protegindolas con contrasea al crearlo con ssh-keygen(1). El estrellado de las contraseas administrativas tambin garantiza que dicho personal slo pueda entrar a travs de mtodos de acceso que haya usted congurado. As obligar al personal administrativo a usar conexiones seguras, cifradas, en todas sus sesiones, lo que cierra un importante agujero de seguridad al que recurren muchos intrusos: usar un sniffer (olfateador) de red desde una mquina que le permita hacer tal cosa. Los mecanismos de seguridad ms indirectos tambin asumen que est validando su identidad desde un servidor ms restrictivo un servidor menos restrictivo. Por ejemplo, si su mquina principal ejecuta toda clase de servidores su estacin de trabajo no debe ejecutar ninguno. Para que su estacin de trabajo sea razonablemente segura debe ejecutar los mnimos servidores posibles, si es posible ninguno, y debe usar un salvapantallas protegido por contrasea. Es evidente que un atancante con acceso fsico al sistema puede romper cualquier barrera de seguridad que se disponga. Es un problema a tener en cuenta, pero la mayora de las intrusiones tienen lugar de forma remota, a travs de la red, por parte de gente que no tiene acceso fsico a su estacin de trabajo ni a sus servidores. Usar Kerberos le ofrece tambin el poder de deshabilitar o cambiar la contrasea para una cuenta administrativa en un lugar, y que tenga un efecto inmediato en todas las mquinas en las cuales ese administrador pueda tener una cuenta. Si una de esas cuentas se ve comprometida la posibilidad para cambiar instantneamente su contrasea en
266
Captulo 14. Seguridad todas las mquinas no debe ser desestimada. Con contraseas distintas, el cambio de una contrasea en N mquinas puede ser un problema. Tambin puede imponer restricciones de re-contraseas con Kerberos: no slo se puede hacer un ticket de Kerberos que expire despus de un tiempo, sino que el sistema Kerberos puede requerir al usuario que escoja una nueva contrasea despus de cierto tiempo (digamos una vez al mes).
267
268
Captulo 14. Seguridad la cebolla es alentar al atacante, en lugar de detenerlo, para darle a la parte de la ecuacin de deteccin una oportunidad de atraparlo con las manos en la masa. La mejor manera de detectar una intrusin es buscar cheros modicados, perdidos, o cuya presencia o estado sea inesperado. La mejor forma de buscar cheros modicados es desde otro sistema (que muchas veces es centralizado) con acceso restringido. Escribir sus scripts de seguridad en un sistema extraseguro y con acceso restringido los hace casi invisibles a posibles atacantes, y esto es algo muy importante. potenciales, y esto es importante. Para poderle sacar el mximo partido debe proporcionar a esa mquina con acceso restringido un acceso preferente al contenido de las otras mquinas de su entorno; suele hacerse mediante la importacin va NFS de slo lectura de las dems mquinas, o congurando pares de llaves ssh para acceder a las otras mquinas desde la que tiene el acceso restringido. Si exceptuamos el trco de red, NFS es el mtodo menos visible y le permite monitorizar los sistemas de cheros de cada mquina cliente de forma prcticamente indetectable. Si su servidor de acceso restringido est conectado a las mquinas clientes a travs de un concentrador o a travs de varias capas de encaminamiento el mtodo NFS puede ser muy inseguro, por lo que ssh puede ser la mejor opcin, incluso con las huellas de auditora que ssh va dejando. Una vez que le da a una mquina de acceso restringido (al menos) acceso de lectura a los sistemas cliente que va a monitorizar, tendr que escribir scripts para efectuar la monitorizacin. Si va a usar un montaje NFS puede escribir scripts utilizando simples herramientas del sistema como nd(1) y md5(1). Es aconsejable ejecutar MD5 fsicamente en los cheros de las mquinas cliente al menos una vez al da, y comprobar los cheros de control (los que hay en /etc y /usr/local/etc) con una frecuencia incluso mayor. Si aparecen discrepancias al compararlos con la informacin basada en MD5 que la mquina de acceso restringido usa como base debe hacer una comprobacin inmediata y profunda. Un buen script tambin debe buscar binarios que sean suid sin razn aparente, y cheros nuevos o borrados en particiones del sistema como / y /usr. Si usa ssh en lugar de NFS ser mucho ms complicado escribir el script de seguridad. En esencia, tiene que pasar por scp los scripts a la mquina cliente para poder ejecutarlos, hacindolos visibles; por seguridad, tambin tendr que pasar va scp los binarios (por ejemplo nd) que utilizan dichos scripts. El cliente ssh de la mquina cliente puede estar ya bajo el control del intruso. Con todo y con eso, puede ser necesario usar ssh si trabaja sobre enlaces inseguros, tambin es mucho ms difcil de manejar. Un buen script de seguridad buscar tambin cambios en la conguracin de los cheros de acceso de usuarios y miembros del personal de administracin: .rhosts, .shosts, .ssh/authorized_keys, etc; en resumen, cheros fuera del rango de revisin MD5. Si tiene que vrselas con una cantidad enorme de espacio en disco para usuarios le llevar mucho tiempo recorrer cada chero de cada particin. En su caso sera una buena idea congurar mediante opciones de montaje la deshabilitacin de binarios y dispositivos suid en esas particiones. Revise las opciones nodev y nosuid de mount(8). Debera comprobarlos de todas maneras al menos una vez por semana, ya que el objeto de esta capa es detectar intrusiones, efectivas o no. La contabilidad de procesos (vea accton(8)) es una opcin con una carga relativamente ligera para el sistema operativo, y puede ayudarle como mecanismo de evaluacin tras una intrusin. Es especialmente til para rastrear cmo consiguin realmente acceder el intruso al sistema (asumiendo que el chero est intacto despus de la intrusin). Los scripts de seguridad deben procesar los logs, y los propios logs deben generarse de la forma ms segura posible: un syslog remoto puede ser muy til. Un intruso trata de cubrir sus huellas, los logs son un recurso crtico cuando el administrador de sistemas intenta determinar la hora y el mtodo de la intrusin inicial. La ejecucin de la consola del sistema en un puerto serie y recolectar la informacin de forma peridica en una mquina segura de monitorizacin de consolas es una forma de cumplir esta tarea.
269
14.3.7. Paranoia
Un poco de paranoia nunca est de ms. Como norma, un administrador de sistemas puede aadir cualquier tipo de mecanismo de seguridad siempre y cuando no afecte a la comodidad, y puede aadir mecanismos de seguridad que s afecten a la comodidad si tiene una buena razn para hacerlo. Ms an, un administrador de seguridad debe mezclar un poco de ambas cosas: si sigue al pie de la letra las recomendaciones que se dan en este documento tambin est sirviendo en bandeja de plata al posible atancante su metodologa. Ese posible atacante tambin tiene acceso a este documento.
270
Captulo 14. Seguridad nuevo servicio interno y olvide actualizar el cortafuegos. Puede incluso abrir el rango de nmeros de puerto altos en el cortafuegos para permitir operaciones de tipo permisivo sin comprometer sus puertos bajos. Recuerde tambin que FreeBSD le permite controlar el rango de nmeros de puerto utilizados para asignacin dinmica a travs de las numerosas net.inet.ip.portrange de sysctl (sysctl -a | fgrep portrange), lo cual tambin facilita la complejidad de la conguracin de su cortafuegos. Por ejemplo, puede utilizar un rango normal primero/ltimo de 4000 5000, y un rango de puerto alto de 49152 a 65535; bloque todo por debajo de 4000 (excepto para ciertos puertos especcos accesibles desde Internet, por supuesto). Otro ataque DoS comn es llamado ataque springboard: atacar un servidor de forma que genere respuestas que lo sobrecarguen, sobrecarguen la red local o alguna otra mquina. Los ataques ms comunes de este tipo son los ataques ICMP ping broadcast. El atacante falsica paquetes ping enviados a la direccin broadcast de su LAN simulando que la direccin IP origen es la de la mquina que desean atacar. Si sus routers de frontera no estn congurados para lidiar con pings a direcciones de broadcast su LAN termina generando sucientes respuestas a la direccin origen falsicada como para saturar a la vctima, especialmente cuando el atacante utiliza el mismo truco en varias docenas de direcciones broadcast en varias docenas de redes diferentes a la vez. Se han medido ataques de broadcast de ms de ciento veinte megabits. Un segundo tipo de ataque springboard bastante comn se da contra el sistema de informe de error de ICMP. Un atacante puede saturar la conexin entrante de red de un servidor mediante la construccin de paquetes que generen respuestas de error ICMP, provocando que el servidor sature su conexin saliente de red con respuestas ICMP. Este tipo de ataque tambin puede tumbar el servidor agotando sus mbufs, especialmente si el servidor no puede drenar lo sucientemente rpido las respuestas ICMP que genera. El kernel de FreeBSD tiene una opcin de compilacin llamada ICMP_BANDLIM, que limita la efectividad de este tipo de ataques. La ltima gran categora de ataques springboard est relacionada con ciertos servicios de inetd, como el servicio de eco udp. El atacante simplemente imita un paquete UDP con el puerdo de eco del servidor A como direccin de origen, y el puerto eco del servidor B como direccin de destino, estando ambos servidores en la misma LAN. Un atacante puede sobrecargar ambos servidores y la propia LAN inyectando simplemente un par de paquetes. Existen problemas similares con el puerto chargen. Un administrador de sistemas competente apagar todos estos servicios internos de vericacin de inetd. Los ataques con paquetes falsicados pueden utilizarse tambin para sobrecargar la cach de rutas del kernel. Consulte los parmetros de sysctl net.inet.ip.rtexpire, rtminexpire, y rtmaxcache. Un ataque de paquetes falsicados que utiliza una direccin IP origen aleatoria provocar que el kernel genere una ruta temporal en cach en su tabla de rutas, visible con netstat -rna | fgrep W3. Estas rutas suelen expiran en 1600 segundos ms o menos. Si el kernel detecta que la tabla de rutas en cach es ya demasiado grande reducir dinmicamente rtexpire, pero nunca la reducir a un valor que sea menor que rtminexpire. Esto nos presenta dos problemas: 1. El kernel no reacciona con suciente rapidez cuando un servidor ligeramente cargado es atacado. 2. El rtminexpire no es lo sucientemente bajo para que el kernel sobreviva a un ataque sostenido. Si sus servidores estn conectados a Internet mediante mediante una lnea T3 o superior puede ser prudente corregir manualmente rtexpire y rtminexpire por medio de sysctl(8). Nunca ponga ambos parmetros a cero (a menos que dese estrellar la mquina). Congurar ambos parmetros a 2 segundos debera bastar para proteger de ataques la tabla de rutas.
271
Captulo 14. Seguridad las hacen inapropiadas para gestionar ujos binarios. Adem Kerberos no cifra por defecto una sesin a menos que utilice la opcin -x. ssh cifra todo por defecto. ssh funciona bastante bien en todos los casos, con la sola salvedad de que por defecto reenva llaves de cifrado. Esto signica que si usted tiene una estacin de trabajo segura, que contiene llaves que le dan acceso al resto del sistema, y hace ssh a una mquina insegura, sus llaves se pueden utilizar. Las llaves en s no se exponen, pero ssh crea un puerto de reenvo durante el login, y si un atacante ha comprometido el root de la mquina insegura, puede utilizar ese puerto para usar sus llaves y obtener acceso a cualquier otra mquina que sus llaves abran. Le recomendamos que, siempre que sea posible, use ssh combinado con Kerberos en los login de su personal de administracin. para logins de staff. Puede compilar ssh con soporte de Kerberos. Esto reducir su dependencia de llaves ssh expuestas, al mismo tiempo que protege las contraseas va Kerberos. Las llaves ssh deben usarse slamente para tareas automticas desde mquinas seguras (algo que Kerberos no hace por incompatibilidad). Recomendamos tambin que desactive el reenvo de llaves en la conguracin de ssh, o que use la opcin from=IP/DOMAIN que ssh incluye en authorized_keys; as la llave slo podr ser utilizada por entidades que se validen desde mquinas especcas.
272
Captulo 14. Seguridad DES, y tambin comienzan por los caracteres $1$. Las contraseas que comienzan por $2a$ estn cifradas con la funcin hash de Blowsh. Las contraseas DES no tienen ninguna caracterstica particular, pero son ms cortas que las contraseas MD5, y estn codicadas en un alfabeto de 64 caracteres que no incluye el caracter $; es por esto que una cadena relativamente corta que comience con un signo de dlar es muy probablemente una contrasea DES. El formato de contrasea a usar en nuevas contraseas se dene en /etc/login.conf mediante passwd_format, pudiendo tener los valores des, md5 o blf. Consulte la pgina de manual login.conf(5) para ms informacin.
273
Captulo 14. Seguridad Explicaremos cuatro tipos de operaciones diferentes. La primera es usar keyinit o opiepasswd a travs de una conexin segura para congurar contraseas de un solo uso por primera vez, o para cambiar su contrasea o semilla. La segunda operacin es utilizar keyinit o opiepasswd a travs de una conexin insegura, adems de usar key u opiekey sobre una conexin segura para hacer lo mismo. La tercera es usar key/opiekey para conectarse a travs de una conexin insegura. La cuarta es usar opiekey o key para generar numerosas llaves, que pueden ser escritas para llevarlas con usted al ir a algn lugar desde el que no se puedan hacer conexiones seguras a ningn sitio.
Adding unfurl: Reminder - Only use this method if you are directly connected. If you are using telnet or rlogin exit with no password and use keyinit -s. Enter secret password: Again secret password: ID unfurl s/key is 99 to17757 DEFY CLUB PRO NASH LACE SOFT
[grimreaper] ~ $ opiepasswd -f -c Adding unfurl: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 MOS MALL GOAT ARM AVID COED
En Enter new secret pass phrase: o Enter secret password:, debe introducir una contrasea o frase. Recuerde que no es la contrasea que utilizar para entrar, se usar para generar sus llaves de un solo uso. La lnea ID da los parmetros de su instancia en particular: su nombre de login, la cuenta iterativa y semilla. En el momento del login el sistema recordar estos parmetros y los presentar de nuevo para que no tenga que recordarlos. La ltima lnea proporciona las contraseas de un solo uso que corresponden a esos parmetros y su contrasea secreta; si fuera a hacer login de manera inmediata, debera usar esta contrasea de una sola vez.
274
Updating unfurl: Old key: to17758 Reminder you need the 6 English words from the key command. Enter sequence count from 1 to 9999: 100 Enter new key [default to17759]: s/key 100 to 17759 s/key access password: s/key access password:CURE MIKE BANE HIM RACY GORE
Updating unfurl: You need the response from Old secret pass phrase: otp-md5 498 to4268 Response: GAME GAG New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP
ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY
Para aceptar la semilla por defecto (la que el programa keyinit llama key, llave, para terminar de complicar las cosas), pulse Enter. Antes de introducir una una contrasea de acceso cambie a su conexin o accesorio de escritorio S/Key y dele el mismo parmetro:
% key 100 to17759
Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: <secret password> CURE MIKE BANE HIM RACY GORE
O para OPIE:
% opiekey 498 to4268
Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT
Vuelva a la conexin insegura y copie la contrasea de un solo uso generada al programa que quiera usar.
275
O, en el caso de OPIE:
% telnet ejemplo.com
Trying 10.0.0.1... Connected to ejemplo.com Escape character is ^]. FreeBSD/i386 (ejemplo.com) (ttypa) login: <nombre_de_usuario> otp-md5 498 gr4269 ext Password:
Como una nota aparte, el prompt de S/Key y OPIE cuenta con una opcin til (que no se muestra aqu): si pulsa Enter en el prompt de contrasea el prompt activar el eco para que pueda ver en pantalla lo que teclea. Esto puede ser extremadamente til si est tecleando una contrasea a a mano o desde un la lista impresa. Ahora necesitar generar su contrasea de un slo uso para responder a este prompt de login. Debe hacerlo en un sistema digno de conanza y en el que pueda ejecutar key u opiekey. Existen versiones DOS, Windows y tambin para Mac OS. Ambos usarn la cuenta iterativa y la semilla como opciones de lnea de rdenes. Puede cortarlas y pegarlas desde el prompt de login de la mquina en la que se est identicando. En el sistema de conanza:
% key 97 fw13894
Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: WELD LIP ACTS ENDS ME HAAG
Con OPIE:
% opiekey 498 to4268
Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT
Ahora que tiene su contrasea de un solo uso puede proceder con el login:
login: <nombre_de_usuario> s/key 97 fw13894 Password: <Enter para activar el eco> s/key 97 fw13894 Password [echo on]: WELD LIP ACTS ENDS ME HAAG Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ...
276
Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: <secret password> 26: SODA RUDE LEA LIND BUDD SILT 27: JILT SPY DUTY GLOW COWL ROT 28: THEM OW COLA RUNT BONG SCOT 29: COT MASH BARR BRIM NAN FLAG 30: CAN KNEE CAST NAME FOLK BILK
O para OPIE:
% opiekey -n 5 30 zz99999
Using the MD5 algorithm to compute response. Reminder: Dont use opiekey from telnet or dial-in sessions. Enter secret pass phrase: <secret password> 26: JOAN BORE FOSS DES NAY QUIT 27: LATE BIAS SLAY FOLK MUCH TRIG 28: SALT TIN ANTI LOON NEAL USE 29: RIO ODIN GO BYE FURY TIC 30: GREW JIVE SAN GIRD BOIL PHI
El -n 5 pide cinco llaves en secuencia, la opcin 30 especica que ese debe ser el ltimo nmero de iteracin. Observe que se imprimen en el orden inverso de uso. Si es realmente paranoico escriba los resultados a mano; si no, puede enviar la salida a lpr. Observe que cada lnea muestra la cuenta iterativa y la contrasea de un solo uso; puede ir tachando las contraseas segn las vaya utilizando.
277
Captulo 14. Seguridad La primera lnea (permit internet) permite a usuarios cuyas direcciones IP origen (las cuales son vulnerables a una falsicacin) concuerden con los valores y mscara especicados utilizar contraseas UNIX. Esto no debe usarse como mecanismo de seguridad, sino como medio de recordarle a los usuarios autorizados que estn usando una red insegura y necesitan utilizar S/Key para la validacin. La segunda lnea (permit user) permite al nombre de usuario especicado, en este caso fnord, utilizar contraseas UNIX en cualquier momento. Hablando en general, esto solo debe ser usado por gente que no puede usar el programa key, como aquellos con terminales tontas o refractarios al aprendizaje. La tercera lnea (permit port) permite a todos los usuarios validados en la lnea de terminal especicada utilizar contraseas UNIX; esto puede usarse para usuarios que se conectan mediante dial-ups. OPIE puede restringir el uso de contraseas UNIX basndose en la direccin IP de una sesin de login igual que lo hara S/Key. El chero que gestiona esto es /etc/opieaccess, que est includo por defecto en sistemas FreeBSD 5.0 o posteriores. Revise opieaccess(5) para ms informacin sobre este chero y qu consideraciones de seguridad debe tener presentes a la hora de usarlo. Veamos un ejemplo de opieaccess:
permit 192.168.0.0 255.255.0.0
Esta lnea permite a usuarios cuya direccin IP de origen (vulnerable a falsicacin) concuerde con los valores y mscara especicados, utilizar contraseas UNIX en cualquier momento. Si no concuerda ninguna regla en opieaccess se niegan por defecto los logins no-OPIE.
278
En la conguracin ms simple las polticas de conexin de dmons estn conguradas ya sea a permitir o bloquear, dependiendo de las opciones en /etc/hosts.allow. La conguracin por defecto en FreeBSD consiste en permitir una conexin a cada dmon iniciado por inetd. Es posible modicar esta conguracin, pero explicaremos cmo hacerlo despus de exponer la conguracin bsica. La conguracin bsica tiene la estructura dmon : direccin : accin, donde dmon es el nombre de dmon que inicia inetd. La direccin puede ser un nombre de equipo vlido, una direccin IP o IPv6 encerrada en corchetes ([ ]). El campo accin puede ser permitir o denegar para el dar el acceso apropiado. Tenga presente que la conguracin funciona en base a la primera regla cuya semntica concuerde; esto signica que el chero de conguracin se lee en orden ascendente hasta que concuerde una regla. Cuando se encuentra una concordancia se aplica la regla y el proceso se detendr. Existen muchas otras opciones pero estas se explican en una seccin posterior. Una lnea de conguracin simple puede generarse mediante datos as de simples. Por ejemplo, para permitir conexiones POP3 mediante el dmon mail/qpopper, aada las siguientes lneas a hosts.allow:
# This line is required for POP3 connections: qpopper : ALL : allow
Despues de aadir esta lnea tendr que reiniciar inetd. Use kill(1) o use el parmetro restart de
/etc/rc.d/inetd.
279
Este ejemplo muestra que el mensaje, No se permite utilizar dmon desde nombre de equipo. se enviar en el caso de cualquier dmon no congurado previamente en el chero de acceso. Esto es extremadamente til para enviar una respuesta al creador de la conexin justo despus de que la conexin establecida es rechazada. Observe que cualquier mensaje que se desee enviar debe ir entre comillas "; esta regla no tiene excepciones.
AvisoEs posible lanzar un ataque de denegacin de servicio al servidor si un atacante o grupo de atacantes pueden llegar a sobrecargar estos dmons con peticiones de conexin.
Otra posibilidad en estos casos es usar la opcin spawn. Igual que twist, spawn niega implcitamente la conexin, y puede usarse para ejecutar rdenes de shell externos o scripts. A diferencia de twist, spawn no enviar una respuesta al origen de la conexin. Veamos un ejemplo; observe la siguiente lnea de conguracin:
# No permitimos conexiones desde ejemplo.com: ALL : .ejemplo.com \ : spawn (/bin/echo %a desde %h intento acceder a %d >> \ /var/log/connections.log) \ : deny
Esto denegar todos los intentos de conexin desde el dominio *.ejemplo.com; simultneamente crear una entrada con el nombre del equipo, direccin IP y el dmon al que intent conectarse al chero /var/log/connections.log. Adems de la sustitucin de caracteres ya expuesta ms arriba (por ejemplo %a) existen unas cuantas ms. Si quiere ver la lista completa consulte la pgina de manual hosts_access(5).
14.6.2.2. Opciones comodn Hasta ahora se ha usado ALL en todos los ejemplos, pero hay otras opciones interesantes para extender un poco ms la funcionalidad. Por ejemplo, ALL puede usarse para concordar con cualquier instancia ya sea un dmon, dominio o direccin IP. Otro comodn es PARANOID, que puede utilizarse para concordar con cualquier equipo que presente una direccin IP que pueda estar falsicada. En otras palabras, paranoid puede usarse para denir una accin a tomar siempre que tenga lugar una conexin desde una direccin IP que diera de su nombre de equipo. Quizs todo se vea ms claro con el siguiente ejemplo:
# Bloquear peticiones posiblemente falsificadas a sendmail: sendmail : PARANOID : deny
En ese ejemplo todas las peticiones de conexin a sendmail que tengan una direccin IP que vare de su nombre de equipo sern denegadas.
AtencinUtilizando PARANOID puede bloquear el acceso a servidores si el cliente o el servidor tiene una conguracin de DNS incorrecta. Recomendamos al administrador la mxima cautela en su uso.
280
Captulo 14. Seguridad Consulte hosts_access(5) si quiere saber ms sobre los comodines y sus posibilidades de uso. Si quiere que cualquiera de los ejemplos citados funcione debe comentar la primera lnea de hosts.allow (tal y como se dijo al principio de la seccin.
14.7. KerberosIV
Escrito por Mark Murray. Basado en un texto de Mark Dapoz. Kerberos es un sistema/protocolo de red agregado que permite a los usuarios identicarse a travs de los servicios de un servidor seguro. Los servicios como login remoto, copia remota, copias de cheros de un sistema a otro y otras tantas tareas arriesgadas pasan a ser considerablemente seguras y ms controlables. Las siguientes instrucciones pueden usarse como una gua para congurar Kerberos tal y como se distribuye con FreeBSD. De todas maneras, debe consultar diversas pginas de manual para conocer todos los detalles.
README
krb.conf
krb.realms
Si existe cualquier otro chero (como principal.* o master_key) utilice kdb_destroy para destruir la base de datos antigua de Kerberos. Si Kerberos no est funcionando simplemente borre los cheros sobrantes. Edite krb.conf y krb.realms para denir su dominio Kerberos. En nuestro ejemplo el dominio ser EJEMPLO.COM y el servidor es grunt.ejemplo.com. Editamos o creamos krb.conf:
# cat krb.conf
EJEMPLO.COM EJEMPLO.COM grunt.ejemplo.com admin server CS.BERKELEY.EDU okeeffe.berkeley.edu ATHENA.MIT.EDU kerberos.mit.edu ATHENA.MIT.EDU kerberos-1.mit.edu ATHENA.MIT.EDU kerberos-2.mit.edu
281
Los dems dominios no deben estar forzosamente en la conguracin. Los hemos incluido como ejemplo de cmo puede hacerse que una mquina trabaje con mltiples dominios. Si quiere mantener todo simple puede abstenerse de incluirlos. La primera lnea es el dominio en el que el sistema funcionar. Las dems lneas contienen entradas dominio/equipo. El primer componente de cada lnea es un dominio y el segundo es un equipo de ese dominio, que acta como centro de distribucin de llaves. Las palabras admin server que siguen al nombre de equipo signican que ese equipo tambin ofrece un servidor de base da datos administrativo. Si quiere consultar una explicacin ms completa de estos trminos consulte las pginas de manual de de Kerberos. Ahora aadiremos grunt.ejemplo.com al dominio EJEMPLO.COM y tambin una entrada para poner todos los equipos en el dominio .ejemplo.com Kerberos EJEMPLO.COM. Puede actualizar su krb.realms del siguiente modo:
# cat krb.realms
grunt.ejemplo.com EJEMPLO.COM .ejemplo.com EJEMPLO.COM .berkeley.edu CS.BERKELEY.EDU .MIT.EDU ATHENA.MIT.EDU .mit.edu ATHENA.MIT.EDU
Igual que en caso previo, no tiene por qu incluir los dems dominios. Se han incluido para mostrar cmo puede usar una mquina en mltiples dominios. Puede eliminarlos y simplicar la conguracin. La primera lnea pone al sistema especco en el dominio nombrado. El resto de las lneas muestran cmo asignar por defecto sistemas de un subdominio a un dominio Kerberos. Ya podemos crear la base de datos. Solo se ejecuta en el servidor Kerberos (o centro de distribucin de llaves). Ejecute kdb_init:
# kdb_init Realm name [default
ATHENA.MIT.EDU ]: EJEMPLO.COM
You will be prompted for the database Master Password. It is important that you NOT FORGET this password.
Enter Kerberos master key:
Ahora tendremos que guardar la llave para que los servidores en la mquina local puedan recogerla. Utilice kstash:
# kstash Enter Kerberos master key:
282
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value.
Principal name: passwd Instance: grunt
<Not found>, Create [y] ? y Principal: passwd, Instance: grunt, kdc_key_ver: 1 New Password: <---- tecleo aleatorio Verifying password
New Password: <---- tecleo aleatorio Random password [y] ? y
Edit O.K.
Principal name: rcmd Instance: grunt
<Not found>, Create [y] ? Principal: rcmd, Instance: grunt, kdc_key_ver: 1 New Password: <---- tecleo aleatorio Verifying password
New Password: Random password [y] ?
283
Edit O.K.
Principal name:
Current Kerberos master key version is 1. Master key entered. BEWARE! Generating grunt-new-srvtab....
Esta orden solo genera un chero temporal al que tendr que cambiar el nombre a srvtab para que todos los servidores puedan recogerlo. Utilice mv(1) para moverlo al lugar correcto en el sistema original:
# mv grunt-new-srvtab srvtab
Si el chero es para un sistema cliente y la red no puede considerarse segura copie el cliente-new-srvtab en un medio extrable y transprtelo por medios fsicos seguros. Asegrese de cambiar su nombre a srvtab en el directorio /etc/kerberosIV del cliente, y asegrese tambin de que tiene modo 600:
# mv grumble-new-srvtab srvtab # chmod 600 srvtab
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value.
Principal name: jane
284
<Not found>, Create [y] ? y Principal: jane, Instance: , kdc_key_ver: 1 New Password: <---- introduzca una constrasea segura Verifying password <---- introduzca de nuevo la contrasea Principals new key version = 1
New Password: Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ?
Edit O.K.
Principal name:
Kerberos server starting Sleep forever on error Log file is /var/log/kerberos.log Current Kerberos master key version is 1. Master key entered. BEWARE! Current Kerberos master key version is 1 Local realm: EJEMPLO.COM
# kadmind -n &
KADM Server KADM0.0A initializing Please do not use kill -9 to kill this job, use a regular kill instead Current Kerberos master key version is 1. Master key entered. BEWARE!
Ahora podemos probar a usar kinit para obtener un ticket para el ID jane que creamos antes:
% kinit jane
Pruebe a listar los tokens con klist para ver si realmente estn:
% klist
Ticket file:
/tmp/tkt245
285
Ahora trate de cambiar la contrasea usando passwd(1) para comprobar si el dmon kpasswd est autorizado a acceder a la base de datos Kerberos:
% passwd
realm EJEMPLO.COM
Old password for jane: New Password for jane:
Verifying password
New Password for jane:
Password changed.
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value.
Principal name: jane Instance: root
<Not found>, Create [y] ? y Principal: jane, Instance: root, kdc_key_ver: 1 New Password: <---- introduzca una contrasea SEGURA Verifying password
New Password:
Edit O.K.
Principal name:
286
Captulo 14. Seguridad Ahora trate de obtener los tokens para comprobar que todo funciona:
# kinit jane.root
jane.root@EJEMPLO.COM
jane.root@EJEMPLO.COM
jane@EJEMPLO.COM jack@EJEMPLO.COM
signica que cualquier usuario del dominio EJEMPLO.COM que se identique como jane o como jack (va kinit, ver ms arriba) podr acceder a la cuenta de jane o a los cheros de este sistema (grunt) va rlogin(1), rsh(1) o rcp(1). Veamos por ejemplo cmo jane se se identica en otro sistema mediante Kerberos:
% kinit
287
Aqu jack se identica con la cuenta de jane en la misma mquina (jane tiene congurado su chero .klogin como se ha mostrado antes, y la persona encargada de la administracin de Kerberos ha congurado un usuario principal jack con una instancia nula):
% kinit % rlogin grunt -l jane
Last login: Mon May 1 21:16:55 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995
14.8. Kerberos5
Texto de Tillman Hodgson. Basado en un texto de Mark Murray. Cada versin de FreeBSD posterior a FreeBSD-5.1 incluye soporte solamente para Kerberos5. Por esta razn Kerberos5 es la nica versin incluida. Su conguracin es similar en muchos aspectos a la de KerberosIV. La siguiente informacin solo atae a Kerberos5 en versiones de FreeBSD-5.0 o posteriores. Los usuarios que desen utilizar KerberosIV pueden instalar el port security/krb4. Kerberos es un sistema/protocolo agregado para red que permite a los usuarios validar su identidad a travs de los servicios de un servidor seguro. Los servicios como login remoto, copia remota, copias de chero de un sistema a otro y otras tareas generalmente consideradas poco seguras pasan a ser considerablemente seguras y ms controlables. Kerberos puede describirse como un sistema proxy identicador/vericador. Tambin puede describirse como un sistema conable de autenticacin de terceros. Kerberos solamente ofrece una funcin: la validacin segura de usuarios a travs de una red. No proporciona funciones de autorizacin (es decir, lo que los usuarios tienen permitido hacer) o funciones de auditora (lo que esos usuarios hicieron). Despus de que un servidor y un cliente han usado Kerberos para demostrar su identidad pueden tambin cifrar todas sus sus comunicaciones, asegurando de este modo su intimidad y la integridad de sus datos durante su uso del sistema. Es, por tanto, altamente recomendable que se use Kerberos adems de otros mtodos de seguridad que ofrezcan servicios de autorizacin y auditora. Puede usar las siguientes instrucciones como una gua para congurar Kerberos tal y como se distribuye en FreeBSD. De todas maneras, debera consultar las pginas de manual adecuadas para tener toda la informacin. Vamos a mostrar una instalacin Kerberos, para lo cual usaremos los siguientes espacios de nombres:
El dominio DNS (zona) ser ejemplo.org. El dominio Kerberos (realm) ser EJEMPLO.ORG.
288
14.8.1. Historia
Kerberos fu creado en el Massachusetts Institute of Technology (MIT) como una solucin a los problemas de seguridad de la red. El protocolo Kerberos utiliza criptografa fuerte para que un cliente pueda demostrar su identidad en un servidor (y viceversa) a travs de una conexin de red insegura. Kerberos es el nombre de un protocolo de autenticacin va red y un adjetivo para describir programas que implementan el programa (Kerberos telnet, por ejemplo, conocido tambin como el telnet kerberizado). La versin actual del protocolo es la 5, descrita en RFC 1510. Existen diversas implementaciones libres de este protocolo, cubriendo un amplio rango de sistemas operativos. El MIT, donde Kerberos fu desarrollado, contina desarrollando su propio paquete Kerberos. Suele usarse en los EEUU como producto criptogrco y como tal ha sufrido las regulaciones de exportacin de los EEUU. El Kerberos del MIT existe como un port en (security/krb5). Heimdal Kerberos es otra implementacin de la versin 5, y fu desarrollada de forma intencionada fuera de los EEUU para sortear las regulaciones de exportacin (y por eso puede incluirse en versiones no comerciales de UNIX). La distribucin Heimdal Kerberos est en el port (security/heimdal), y se incluye una instalacin mnima en el sistema base de FreeBSD. Para alcanzar la mayor audiencia estas instrucciones asumen el uso de la distribucin Heimdal includa en FreeBSD.
289
Tenga en cuenta que este /etc/krb5.conf implica que su KDC tendr el nombre de equipo completo calicado de kerberos.ejemplo.org. Necesitar aadir una entrada CNAME (alias) a su chero de zona si su KDC tiene un nombre de equipo diferente.
Nota: En grandes redes con un servidor DNS BIND bien congurado, el ejemplo de arriba puede quedar del siguiente modo:
[libdefaults] default_realm = EJEMPLO.ORG
Nota: Para que los clientes sean capaces de encontrar los servicios Kerberos debe tener ya sea un /etc/krb5.conf congurado o un /etc/krb5.conf congurado de forma mnima y un servidor DNS congurado correctamente.
A continuacin crearemos la base de datos Kerberos. Esta base de datos contiene las llaves de todos los principales cifradas con una contrasea maestra. No es necesario que recuerde esta contrasea, pues se almacenar en /var/heimdal/m-key. Para crear la llave maestra ejecute kstash e introduzca una contrasea. Una vez que se ha creado la llave maestra puede inicializar la base de datos usando el programa kadmin con la opcin -l (que signica local). Esta opcin le dice a kadmin que modique los cheros de la base de datos directamente en lugar de ir a travs del servicio de red kadmind. Esto gestiona el problema del huevo y la gallina de tratar de conectar a la base de datos antes de que sta exista. Una vez que tiene el prompt de kadmin, utilice init para crear su base de datos de dominios iniciales. Para terminar, mientras est todava en kadmin puede crear su primer principal mediante add. Utilice las opciones por defecto por ahora, ms tarde puede cambiarlas mediante modify. Recuerde que puede usar ? en cualquier prompt para consultar las opciones disponibles. Veamos un ejemplo de sesin de creacin de una base de datos:
# kstash
290
Ahora puede arrancar los servicios KDC. Ejecute /etc/rc.d/kerberos start y /etc/rc.d/kadmind start para levantar dichos servicios. Recuerde que no tendr ningn dmon kerberizado ejecutndose pero debe poder conrmar que KDC funciona por el procedimiento de obtener y listar un boleto del principal (usuario) que acaba de crear en la lnea de rdenes de KDC:
% k5init tillman
tillman@EJEMPLO.ORGs Password:
% k5list
Credentials cache: FILE:/tmp/krb5cc_500 Principal: tillman@EJEMPLO.ORG Issued Aug 27 15:37:58 Expires Aug 28 01:37:58 Principal krbtgt/EJEMPLO.ORG@EJEMPLO.ORG
kadmin> add --random-key host/myserver.ejemplo.org Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []:
291
Tenga en cuenta que ext (contraccin de extract) almacena la llave extrada por defecto en en /etc/krb5.keytab. Si no tiene kadmind ejecutndose en KDC (posiblemente por razones de seguridad) y por lo tanto carece de acceso remoto a kadmin puede aadir el principal de equipo (host/miservidor.EJEMPLO.ORG) directamente en el KDC y entonces extraerlo a un chero temporal (para evitar sobreescribir /etc/krb5.keytab en el KDC) mediante algo parecido a esto:
# kadmin
Puede entonces copiar de forma segura el keytab al servidor (usando scp o un diquete). Asegrese de usar un nombre de keytab diferente para evitar sobreescribir el keytab en el KDC. Su servidor puede comunicarse con el KDC (gracias a su chero krb5.conf) y puede probar su propia identidad (gracias al chero krb5.keytab). Ahora est listo para que usted habilite algunos servicios Kerberos. En este ejemplo habilitaremos el servicio telnet poniendo una lnea como esta en su /etc/inetd.conf y reiniciando el servicio inetd(8) con /etc/rc.d/inetd restart:
telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user
La parte crtica es -a, de autenticacin de usuario. Consulte la pgina de manual telnetd(8) para ms informacin.
292
en el directorio home del usuario local webdevelopers ambos principales listados tendran acceso a esa cuenta sin requerir una contrasea compartida. Le recomendamos encarecidamente la lectura de las pginas de manual de estas rdenes. Recuerde que la pgina de manual de ksu abarca .k5users.
Tanto si utiliza el port de Heimdal o el Kerberos del MIT asegrese de que su variable de entorno PATH liste las versiones de Kerberos de las aplicaciones cliente antes que las versiones del sistema. ?Todas las computadoras de su dominio Kerberos tienen la hora sincronizada? Si no, la autenticacin puede fallar. Seccin 29.12 describe como sincronizar los relojes utilizando NTP. MIT y Heimdal conviven bien, con la excepcin de kadmin, protocolo no est estandarizado. Si cambia su nombre de equipo debe cambiar tambin el apellido de su principal y actualizar su keytab. Esto tambin se aplica a entradas especiales en keytab como el principal www/ que usa el www/mod_auth_kerb de Apache. Todos los equipos en su dominio Kerberos deben poder resolverse (tanto en la forma normal normal como en la inversa) en el DNS (o en /etc/hosts como mnimo). Los CNAME funcionarn, pero los registros A y PTR deben ser correctos y estar en su sitio. El mensaje de error que recibir de no hacerlo as no es muy intuitivo:
Kerberos5 refuses authentication because Read req failed: Key table entry not found.
Algunos sistemas operativos que puede usar como clientes de su KDC no activan los permisos para ksu como setuid root. Esto har que ksu no funcione, lo cual es muy seguro pero un tanto molesto. Tenga en cuenta que no se debe a un error de KDC. Si desea permitir que un principal tenga un ticket con una validez ms larga que el valor por defecto de diez horas en Kerberos del MIT debe usar modify_principal en kadmin para cambiar maxlife tanto del principal en cuestin como del krbtgt del principal. Hecho esto, el principal puede utilizar la opcin -l con kinit para solicitar un boleto con ms tiempo de vida.
293
Si desea utilizar tickets con un tiempo largo de vida (una semana, por ejemplo) y est utilizando OpenSSH para conectarse a la mquina donde se almacena su boleto asgrese de que Kerberos TicketCleanup est congurado a no en su sshd_config o de lo contrario sus tickets sern eliminados cuando termine la sesin. Recuerde que los principales de equipos tambin pueden tener tener un tiempo de vida ms largo. Si su principal de usuario tiene un tiempo de vida de una semana pero el equipo al que se conecta tiene un tiempo de vida de nueve horas, tendr un principal de equipo expirado en su cach, y la cach de ticket no funcionar como esperaba. Cuando est congurando un chero krb5.dict pensando especcamente en prevenir el uso de contraseas defectuosas (la pgina de manual de de kadmind trata el tema brevemente), recuerde que solamente se aplica a principales que tienen una poltica de contraseas asignada. El formato de los cheros krb5.dict es simple: una cadena de texto por lnea. Puede serle til crear un enlace simblico a /usr/share/dict/words.
294
14.8.8.2. Kerberos est pensado para estaciones de trabajo monousuario En un entorno multiusuario Kerberos es menos seguro. Esto se debe a que almacena los tickets en el directorio /tmp, que puede ser ledo por todos los usuarios. Si un usuario est compartiendo una computadora con varias personas (esto es, si utiliza un sistema multiusuario) es posible que los tickets sean robados (copiados) por otro usuario. Esto puede solventarse con la opcin de lnea de rdenes -c nombre-de-chero o (mejor an) la variable de entorno KRB5CCNAME, pero raramente se hace. Si almacena los tickets en el directorio home de los usuarios y utiliza sin mucha complicacin los permisos de chero puede mitigar este problema.
14.8.8.3. El KDC es el punto crtico de fallo Por motivos de diseo el KDC es tan seguro como la base de datos principal de contraseas que contiene. El KDC no debe ejecutar ningn otro servicio ejecutndose en l y debe ser fsicamente seguro. El peligro es grande debido a que Kerberos almacena todas las contraseas cifradas con la misma llave (la llave maestra, que a su vez se guarda como un chero en el KDC). De todos modos una llave maestra comprometida no es algo tan terrible como parece a primera vista. La llave maestra solo se usa para cifrar la base de datos Kerberos y como semilla para el generador de nmeros aleatorios. Mientras sea seguro el acceso a su KDC un atancante no puede hacer demasiado con la llave maestra. Adems, si el KDC no est disponible (quizs debido a un ataque de denegacin de servicio o problemas de red) no se podrn utilizar los servicios de red ya que no se puede efectuar la validacin, lo que hace que esta sea una buena forma de lanzar un ataque de denegacin de servicio. Este problema puede aliviarse con mltiples KDCs (un maestro y uno o ms esclavos) y con una implementacin cautelosa de secundarios o autenticacin de respaldo (para esto PAM es excelente).
14.8.8.4. Limitaciones de Kerberos Kerberos le permite a usuarios, equipos y servicios validarse entre s, pero no dispone de ningn mecanismo para autenticar el KDC a los usuarios, equipos o servicios. Esto signica que una versin (por ejemplo) troyanizada kinit puede grabar todos los usuarios y sus contraseas. Puede usar security/tripwire o alguna otra herramienta de revisin de integridad de sistemas de cheros para intentar evitar problemas como este.
295
Designing an Authentication System: a Dialog in Four Scenes (http://web.mit.edu/Kerberos/www/dialogue.html) RFC 1510, The Kerberos Network Authentication Service (V5) (http://www.ietf.org/rfc/rfc1510.txt?number=1510) Pgina web de Kerberos del MIT (http://web.mit.edu/Kerberos/www/) Pgina web de Kerberos Heimdal (http://www.pdc.kth.se/heimdal/)
14.9. OpenSSL
Escrito por: Tom Rhodes. El conjunto de herramientas OpenSSL es una caracterstica de FreeBSD que muchos usuarios pasan por alto. OpenSSL ofrece una capa de cifrada de transporte sobre la capa normal de comunicacin, permitiendo la combinacin con con muchas aplicaciones y servicios de red. Algunos usos de OpenSSL son la validacin cifrada de clientes de correo, las transacciones basadas en web como pagos con tarjetas de crdito, etc. Muchos ports, como www/apache13-ssl y mail/sylpheed-claws ofrecen soporte de compilacin para OpenSSL.
Nota: En la mayora de los casos la coleccin de ports tratar de compilar el port security/openssl a menos que la variable de make WITH_OPENSSL_BASE sea puesta explcitamente a yes.
La versin de OpenSSL incluida en FreeBSD soporta los protocolos de seguridad de red Secure Sockets Layer v2/v3 (SSLv2/SSLv3) y Transport Layer Security v1 (TLSv1) y puede utilizarse como biblioteca criptogrca general.
Nota: OpenSSL soporta el algoritmo IDEA pero esta deshabilitado por defecto debido a patentes en vigor en los Estados Unidos. Si quiere usarlo debe revisar la licencia, y si las restricciones le parecen aceptables active la variable MAKE_IDEA en make.conf.
Uno de los usos ms comunes de OpenSSL es ofrecer certicados para usar con aplicaciones de software. Estos certicados aseguran que las credenciales de la compaia o individuo son vlidos y no son fraudulentos. Si el certicado en cuestin no ha sido vericado por uno de las diversas autoridades certicadoras o CA, suele generarse una advertencia al respecto. Una autoridad de certicados es una compaia, como VeriSign (http://www.verisign.com), que rma certicados para validar credenciales de individuos o compaias. Este proceso tiene un costo asociado y no es un requisito imprescindible para usar certicados, aunque puede darle un poco de tranquilidad a los usuarios ms paranicos.
296
Tenga en cuenta que la respuesta directamente despus de prompt Common Name muestra un nombre de dominio. Este prompt requiere que se introduzca un nombre de servidor para usarlo en la vericacin; si escribe cualquier otra cosa producir un certicado invlido. Otras opciones, por ejemplo el tiempo de expiracin, alternan algoritmos de cifrado, etc. Puede ver una lista completa en la pgina de manual de openssl(1). Debera tener dos cheros en el directorio donde ha ejecutado la orden anterior. La peticin de certicado, req.pem, es lo que debe enviar a una autoridad certicadora para que valide las credenciales que introdujo; rmar la peticin y le devolver el certicado. El segundo chero es cert.pem y es la llave privada para el certicado, que debe proteger a toda costa; si cae en malas manos podr usarse para suplantarle a usted o a sus servidores. Si no necesita la rma de una CA puede crear y rmar usted mismo su certicado. Primero, genere la llave RSA:
# openssl dsaparam -rand -genkey -out myRSA.key 1024
Debern aparecer dos nuevos cheros en su directorio: un chero de rma de autoridad de certicados (myca.key) y el certicado en s, new.crt. Deben ubicarse en un directorio, que se recomienda que sea /etc, que es legible solo para root. Para terminar, es recomendable asignar permisos 0700 para el chero con chmod.
297
Si todo fu bien no habr mensajes de error en el chero /var/log/maillog y Sendmail aparecer en la lista de procesos. Puede probarlo todo de una forma muy sencilla; conctese al servidor de correo mediante telnet(1):
# telnet ejemplo.com 25
Trying 192.0.34.166... Connected to ejemplo.com. Escape character is ^]. 220 ejemplo.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
ehlo ejemplo.com
250-ejemplo.com Hello ejemplo.com [192.0.34.166], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP
quit
298
14.10.1. Qu es IPsec
Escrito por Hiten M. Pandya. Esta seccin le guiar a travs del proceso de conguracin de IPsec, y de su uso en un entorno consistente en mquinas FreeBSD y Microsoft Windows 2000/XP, para hacer que se comuniquen de manera segura. Para congurar IPsec es necesario que est familiarizado con los conceptos de construccin de un kernel personalizado (consulte el Captulo 8). IPsec es un protocolo que est sobre la capa del protocolo de Internet (IP). Le permite a dos o ms equipos comunicarse de forma segura (de ah el nombre). La pila de red IPsec de FreeBSD se basa en la implementacin KAME (http://www.kame.net/), que incluye soporte para las dos familias de protocolos, IPv4 e IPv6.
Nota: FreeBSD 5.X contiene una pila IPsec acelerada por hardware, conocida como Fast IPsec, que fu obtenida de OpenBSD. Emplea hardware criptogrco (cuando es posible) a travs del subsistema crypto(4) para optimizar el rendimiento de IPsec. Este subsistema es nuevo, y no soporta todas las opciones disponibles en la versin KAME de IPsec. Para poder habilitar IPsec acelerado por hardware debe aadir las siguientes opciones al chero de conguracin de su kernel:
options FAST_IPSEC # new IPsec (cannot define w/ IPSEC)
Tenga en cuenta que no es posible utilizar el subsistema Fast IPsec y la implementacin KAME de IPsec en la misma computadora. Consulte la pgina de manual fast_ipsec(4) para ms informacin.
Encapsulated Security Payload (ESP), que protege los datos del paquete IP de interferencias de terceros, cifrando el contenido utilizando algoritmos de criptografa simtrica (como Blowsh, 3DES). Authentication Header (AH), que protege la cabecera del paquete IP de interferencias de terceros as como contra la falsicacin (spoong), calculando una suma de comprobacin criptogrca y aplicando a los campos de cabecera IP una funcin hash segura. Detrs de todo esto va una cabecera adicional que contiene el hash para permitir la validacin de la informacin que contiene el paquete.
ESP y AH pueden utilizarse conjunta o separadamente, dependiendo del entorno. IPsec puede utilizarse para cifrar directamente el trco entre dos equipos (conocido como modo de transporte) o para construir tneles virtuales entre dos subredes, que pueden usarse para comunicacin segura entre dos redes corporativas (conocido como modo de tnel). Este ltimo es muy conocido como una red privada virtual (Virtual Private Network, o VPN). ipsec(4) contiene informacin detallada sobre el subsistema IPsec de FreeBSD. Si quiere adir soporte IPsec a su kernel debe incluir las siguientes opciones al chero de conguracin de su kernel:
options options IPSEC IPSEC_ESP #IP security #IP security (crypto; define w/ IPSEC)
299
14.10.2. El Problema
No existe un estndar para lo que constituye una VPN. Las VPN pueden implementarse utilizando numerosas tecnologas diferentes, cada una de las cuales tiene sus pros y sus contras. Esta seccin presenta un escenario, y las estrategias usadas para implementar una VPN para este escenario.
14.10.3. El escenario: dos redes, conectadas por Internet, que queremos que se comporten como una sola
Este es el punto de partida:
Usted tiene al menos dos sitios Ambos sitios utilizan IP internamente Ambos sitios estn conectados a Internet, a travs de una puerta de enlace FreeBSD. La puerta de enlace de cada red tiene al menos una direccin IP pblica. Las direcciones internas de las dos redes pueden ser direcciones IP pblicas o privadas, no importa. Puede ejecutar NAT en la mquina que hace de puerta de enlace si es necesario. Las direcciones IP internas de las dos redes no colisionan. Aunque espero que sea tericamente posible utilizar una combinacin de tecnologa VPN y NAT para hacer funcionar todo esto sospecho que congurarlo sera una pesadilla.
Si lo que intenta es conectar dos redes y ambas usan el mismo rango de direcciones IP privadas (por ejemplo las dos usan 192.168.1.x)debera renumerar una de las dos redes. La topologa de red se parecera a esto:
300
Network #1
Internet
Network #2
Observe las dos direcciones IP pblicas. Usar letras para referirme a ellas en el resto de este artculo. El cualquier lugar que vea esas letras en este artculo reemplcelas con su propia direccin IP pblica. Observe tambin que internamente las dos mquinas que hacen de puerta de enlace tienen la direccin IP .1, y que las dos redes tienen direcciones IP privadas diferentes (192.168.1.x y 192.168.2.x respectivamente). Todas las mquinas de las redes privadas estn conguradas para utilizar la mquina .1 como su puerta de enlace por defecto. La intencin es que, desde el punto de vista de la red, cada red debe ver las mquinas en la otra red como si estuvieran directamente conectadas al mismo router (aunque aunque sea un router ligeramente lento con una tendencia ocasional a tirar paquetes). Esto signica que (por ejemplo), la mquina 192.168.1.20 debe ser capaz de ejecutar
ping 192.168.2.34
y recibir de forma transparente una respuesta. Las mquinas Windows deben ser capaces de ver las mquinas de la otra red, acceder a sus cheros compartidos, etc, exactamente igual que cuando acceden a las mquinas de la red local. Y todo debe hacerse de forma segura. Esto signica que el trco entre las dos redes tiene que ser cifrado. La creacin de una VPN entre estas dos redes es un proceso que requiere varios pasos. Las etapas son estas: 1. Crear un enlace de red virtual entre las dos redes, a travs de Internet. Probarlo usando herramientas como ping(8) para asegurarse de que funcione.
301
Captulo 14. Seguridad 2. Aplicar polticas de seguridad para asegurarse de que el trco entre las dos redes sea cifrado y descifrado de forma transparente. Comprobarlo mediante herramientas como tcpdump(1) para asegurarse de que el trco est siendo efectivamente cifrado. 3. Congurar software adicional en las puertas de enlace FreeBSD para permitir a las mquinas Windows verse entre ellas a travs de la VPN. 14.10.3.1. Paso 1: Creacin y prueba de un enlace de red virtual Suponga que est en la puerta de enlace de la red red #1 (con direccin IP pblica A.B.C.D, direccin IP privada 192.168.1.1), y ejecuta ping 192.168.2.1, que es la direccin privada de la mquina con direccin IP W.X.Y.Z. ?Qu hace falta para esto? 1. La puerta de enlace necesita saber cmo alcanzar a 192.168.2.1. En otras palabras, necesita tener una ruta hasta 192.168.2.1. 2. Las direcciones IP privadas, como las que estn en el rango 192.168.x no deberan aparecer en Internet. Por eso, cada paquete que mande a 192.168.2.1 necesitar encerrarse dentro de otro paquete. Este paquete debe tener todas las caractersticas de haber sido enviado desde A.B.C.D, y tendr que ser enviado a W.X.Y.Z. Este proceso recibe el nombre de encapsulado. 3. Una vez que este paquete llega a W.X.Y.Z necesitar ser desencapsulado, y entregado a 192.168.2.1. Puede verlo como si necesitara un tnel entre las dos redes. Las dos bocas del tnel son las direcciones IP A.B.C.D y W.X.Y.Z, y debe hacer que el tnel sepa cules sern las direcciones IP privadas que tendrn permitido el paso a travs de l. El tnel se usa para transferir trco con direcciones IP privadas a travs de la Internet pblica. Este tnel se crea mediante la interfaz genrica, o dispositivo gif en FreeBSD. Como puede imaginarse la interfaz gif de cada puerta de enlace debe congurarse con cuatro direcciones IP: dos para las direcciones IP pblicas, y dos para las direcciones IP privadas. El soporte para el dispositivo gif debe compilarse en el kernel de FreeBSD en ambas mquinas aadiendo la lnea
device gif
a los cheros de conguracin del kernel de ambas mquinas, compilarlo, instalarlo y reiniciar. La conguracin del tnel es un proceso que consta de dos partes. Primero se le debe decir al tnel cules son las direcciones IP exteriores (o pblicas) mediante gifcong(8). Despus congure las direcciones IP con ifcong(8).
Nota: En FreeBSD 5.X las funciones de gifcong(8) se han incluido en ifcong(8).
En la puerta de enlace de la red #1 debe ejecutar las siguientes dos rdenes para congurar el tnel.
gifconfig gif0 A.B.C.D W.X.Y.Z ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff
En la otra puerta de enlace ejecute las mismas rdenes, pero con el orden las direcciones IP invertido.
gifconfig gif0 W.X.Y.Z A.B.C.D ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff
302
y podr ver la conguracin. Por ejemplo, en la puerta de enlace de la red #1 vera algo parecido a esto:
# gifconfig gif0
gif0: flags=8011<UP,POINTTOPOINT,MULTICAST> mtu 1280 inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff physical address inet A.B.C.D --> W.X.Y.Z
Como puede ver se ha creado un tnel entre las direcciones fsicas A.B.C.D y W.X.Y.Z, y el trco que puede pasar a travs del tnel es entre 192.168.1.1 y 192.168.2.1. Esto tambin habr agregado una entrada en la tabla de rutas de ambas mquinas, que puede examinar con netstat -rn. Esta salida es de la puerta de enlace de la red #1.
# netstat -rn
Gateway 192.168.1.1
Flags UH
Refs 0
Use 0
Netif gif0
Expire
Como el valor de Flags lo indica, esta es una ruta de equipo, lo que signica que cada puerta de enlace sabe como alcanzar la otra puerta de enlace, pero no saben cmo llegar al resto de sus respectivas redes. Ese problema se solucionar en breve. Es posible que disponga de un cortafuegos en ambas mquinas, por lo que tendr que buscar la forma de que el trco de la VPN pueda entrar y salir limpiamente. Puede permitir todo el trco de ambas redes, o puede que quiera incluir reglas en el cortafuegos para que protejan ambos extremos de la VPN uno del otro. Las pruebas se simplican enormemente si congura el cortafuegos para permitir todo el trco a travs de la VPN. Siempre puede ajustar las cosas despus. Si utiliza ipfw(8) en las puertas de enlace una orden similar a
ipfw add 1 allow ip from any to any via gif0
permitir todo el trco entre los dos extremos de la VPN, sin afectar al resto de reglas del cortafuegos. Obviamente tendr que ejecutar esta orden en ambas puertas de enlace. Esto es suciente para permitir a cada puerta de enlace hacer un ping entre ellas. En 192.168.1.1 deber poder ejecutar
ping 192.168.2.1
y obtener una respuesta; es obvio que debera poder hacer los mismo en la otra puerte de enlace. An no podr acceder a las mquinas internas de las redes. El problema est en el encaminamiento: aunque las puertas de enlace saben cmo alcanzarse mtuamente no saben cmo llegar a la red que hay detrs de la otra.
303
Captulo 14. Seguridad Para resolver este problema debe aadir una ruta esttica en cada puerta de enlace. La orden en la primera puerta de enlace podra ser:
route add 192.168.2.0 192.168.2.1 netmask 0xffffff00
Esto signica Para alcanzar los equipos en la red 192.168.2.0, enva los paquetes al equipo 192.168.2.1. Necesitar ejecutar una orden similar en la otra puerta de enlace, pero obviamente con las direcciones 192.168.1.x. El trco IP de equipos en una red no ser capaz de alcanzar equipos en la otra red. Ya tiene dos tercios de una VPN, puesto que ya es virtual y es una red. Todava no es privada. Puede comprobarlo con ping(8) y tcpdump(1). Abra una sesin en la puerta de enlace y ejecute
tcpdump dst host 192.168.2.1
Como puede ver los mensajes ICMP van y vienen sin cifrar. Si usa el parmetro -s en tcpdump(1) para tomar ms bytes de datos de estos paquetes ver ms informacin. Obviamente esto es inaceptable. La siguiente seccin explicar cmo asegurar el enlace entre las dos redes para que todo el trco se cifre automticamente. Sumario:
Congure ambos kernel con pseudo-device gif. Edite /etc/rc.conf en la puerta de enlace #1 y aada las siguientes lneas (reemplazando las direcciones IP segn sea necesario).
gifconfig_gif0="A.B.C.D W.X.Y.Z" ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff" static_routes="vpn" route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"
Haga los cambios oportunos en el /etc/rc.conf de la puerta de enlace #2, invirtiendo el orden de las direcciones IP.
304
Captulo 14. Seguridad 14.10.3.2. Paso 2: Asegurar el enlace Para asegurar el enlace usaremos IPsec. IPsec ofrece un mecanismo para que dos equipos coincidan en una llave de cifrado, y usar esta llave para cifrar los datos entre los dos equipos. Existen dos reas de conguracin a tener en cuenta: 1. Debe existir un mecanismo para que los dos equipos se pongan de acuerdo en el mecanismo de cifrado que van a utilizar. Una vez que los dos equipos se han puesto de acuerdo dice que existe una asociacin de seguridad entre ellos. 2. Debe existir un mecanismo para especicar que trco debe ser cifrado. Obviamente, usted no querr cifrar todo su trco saliente: solo querr cifrar el trco que es parte de la VPN. Las reglas con las que determinar qu trco ser cifrado se llaman polticas de seguridad. Tanto las asociaciones de seguridad como las polticas de seguridad son responsabilidad del kernel, pero pueden ser modicadas desde el espacio de usuario. Antes de poder hacerlo, tendr que congurar el kernel para que incluya IPsec y el protocolo ESP (Encapsulated Security Payload). Incluya en el chero de conguracin de su kernel lo siguiente:
options IPSEC options IPSEC_ESP
Recompile y resintale su kernel y reinicie. Como se dijo anteriormente, tendr que hacer lo mismo en el kernel de las dos puertas de enlace. Tiene dos opciones cuando se trata de congurar asociaciones de seguridad. Puede congurarlas a mano en los dos equipos, lo que signica elegir el algoritmo de cifrado, las llaves de cifrado, etc, o puede utilizar alguno de los dmons que implementan el protocolo de intercambio de llaves de Internet (IKE, Internet Key Exchange). Le recomiendo la segunda opcin. Aparte de otras consideraciones es ms fcil de congurar. La edicin y despliegue se efecta con setkey(8). Todo esto se entiende mejor con una analoga. setkey es a las tablas de polticas de seguridad del kernel lo que route(8) es a las tablas de rutas del kernel. Tambin puede usar setkey ver las asociaciones de seguridad en vigor, siguiendo con la analoga, igual que puede usar netstat -r. Existen numerosos dmons que pueden encargarse de la gestin de asociaciones de seguridad en FreeBSD. En este texto se muestra cmo usar uno de ellos, racoon (que puede instalar desde security/racoon en la coleccin de ports de FreeBSD. El software security/racoon debe ejecutarse en las dos puertas de enlace. En cada equipo debe congurar la direccin IP del otro extremo de la VPN y una llave secreta (que usted puede y debe elegir, y debe ser la misma en ambas puertas de enlace). Los dos dmons entran en contacto uno con otro, y conrman que son quienes dicen ser (utilizando la llave secreta que usted congur). Los dmons generan una nueva llave secreta, y la utilizan para cifrar el trco que discurre a travs de la VPN. Peridicamente cambian esta llave, para que incluso si un atacante comprometiera una de las llaves (lo cual es tericamente cercano a imposible) no le serviria de mucho: para cuando el atacante haya crackeado la llave los dmons ya habrn escogido una nueva. El chero de conguracin de racoon est en ${PREFIX}/etc/racoon. No debera tener que hacer demasiados cambios a ese chero. El otro componente de la conguracin de racoon (que s tendr que modicar) es la llave pre-compartida.
305
Captulo 14. Seguridad La conguracin por defecto de racoon espera encontrarla en ${PREFIX}/etc/racoon/psk.txt. Es importante saber que la llave precompartida no es la llave que se utilizar para cifrar el trco a travs del enlace VPN; solamente es una muestra que permite a los dmons que administran las llaves conar el uno en el otro.
psk.txt contiene una lnea por cada sitio remoto con el que est tratando. En nuestro ejemplo, donde existen dos sitios, cada chero psk.txt contendr una lnea (porque cada extremo de la VPN solo est tratando con un sitio en
Esto es, la direccin IP pblica del extremo remoto, un espacio en blanco, y una cadena de texto que es el secreto en s. en el extremo remoto, espacio en blanco, y un texto de cadena que proporcina el secreto. Obviamente, no debe utilizar secret como su llave; aplique aqu las reglas y recomendaciones habituales para la eleccin de contraseas. En la puerta de enlace #2 la lnea se parecera a esta
A.B.C.D secreto
Esto es, la direccin IP pblica del extremo remoto, y la misma llave secreta. psk.txt debe tener modo 0600 (es decir, modo de solo lectura/escritura para root) antes de que ejecute racoon. Debe ejecutar racoon en ambas puertas de enlace. Tambin tendr que aadir algunas reglas a su cortafuegos para permitir el trco IKE, que se transporta sobre UDP al puerto ISAKMP (Internet Security Association Key Management Protocol). Esto debe estar al principio de las reglas de su cortafuegos.
ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
Una vez que ejecute racoon puede tratar de hacer un ping a una puerta de enlace desde la otra. La conexin todava no est cifrada porque an no se han creado las asociaciones de seguridad entre los dos equipos: esto puede llevar un poco de tiempo; es posible que advierta un pequeo retraso antes de los ping empiecen responder. Una vez creadas las asociaciones de seguridad puede verlas utilizando setkey(8). Ejecute
setkey -D
en cualquiera de los equipos para comprobar la informacin de la asociacin de seguridad. Ya est resuelta la mitad del problema. La otra mitad es congurar sus polticas de seguridad. Queremos crear una poltica de seguridad sensata, as que vamos a revisar lo que tenemos congurado hasta el momento. Esta revisin abarca ambos extremos del enlace. Cada paquete IP que usted manda tiene una cabecera que contiene datos acerca del paquete. La cabecera incluye la direccin IP de destino y del origen. Como ya sabemos, las direcciones IP privadas como el rango 192.168.x.y no deberan aparezcan en Internet. Dado que es a travs de Internet por donde los queremos transmitir los debemos encapsular dentro de otro paquete. Este paquete debe contener tanto la direccin IP de destino y origen pblicas sustituidas por las direcciones privadas. As que si su paquete saliente empez pareciendose a este:
306
Src: A.B.C.D Dst: W.X.Y.Z <other header info> Src: 192.168.1.1 Dst: 192.168.2.1 <other header info> <packet data>
El dispositivo gif se encarga del encapsulado. Como puede ver el paquete tiene una direccin IP real en el exterior, y nuestro paquete original ha sido envuelto como dato dentro del paquete que enviaremos a travs de Internet. Obviamente, queremos que todo el trco entre las VPN vaya cifrado. Pongamos esto ltimo en palabras para comprenderlo mejor: Si un paquete sale desde A.B.C.D, y tiene como destino W.X.Y.Z, cfralo utilizando las asociaciones de seguridad necesarias. Si un paquete llega desde W.X.Y.Z, y tiene como destino A.B.C.D, descfralo utilizando las asociaciones de seguridad necesarias. Este planteamiento se aproxima bastante, pero no es exactamente lo que queremos hacer. Si lo hiciera as todo el trco desde y hacia W.X.Y.Z, incluso el trco que no forma parte de la VPN, ser cifrado; esto no es lo que queremos. La poltica correcta es la siguiente: Si un paquete sale desde A.B.C.D, y est encapsulando a otro paquete, y tiene como destino W.X.Y.Z, cfralo utilizando las asociaciones de seguridad necesarias. Si un paquete llega desde W.X.Y.Z, y est encapsulando a otro paquete, y tiene como destino A.B.C.D, descfralo utilizando las asociaciones de seguridad necesarias. Un cambio sutil, pero necesario. Las polticas de seguridad tambin se imponen utilizando setkey(8). setkey(8) proporciona un lenguaje de conguracin para denir la poltica. Puede introducir las instrucciones de conguracin a travs de la entrada estndar (stdin), o puede usar la opcin -f para especicar un chero que contenga las instrucciones de conguracin. La conguracin en la puerta de enlace #1 (que tiene la direccin IP pblica A.B.C.D) para forzar que todo el trco saliente hacia W.X.Y.Z vaya cifrado es:
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
307
spdadd le dice a setkey(8) que queremos aadir una regla a la base de datos de polticas de seguridad. El resto de la lnea especica qu paquetes se ajustarn a esta poltica. A.B.C.D/32 y W.X.Y.Z/32 son las direcciones IP y
mscaras de red que identican la red o equipos a los que se aplicar esta poltica. En nuestro caso queremos aplicarla al trco entre estos dos equipos. -P out dice que esta poltica se aplica a paquetes salientes, e ipsec hace que el paquete sea asegurado. La segunda lnea especica cmo ser cifrado este paquete. esp es el protocolo que se utilizar, mientras que tunnel indica que el paquete ser despus encapsulado en un paquete IPsec. El uso repetido de A.B.C.D y W.X.Y.Z se utiliza para seleccionar la asociacin de seguridad a usar, y por ltimo require exige que los paquetes deben cifrarse si concuerdan con esta regla. Esta regla solo concuerda con paquetes salientes. Necesitar una regla similar para los paquetes entrantes.
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
Observe el in en lugar del out en este caso, y la inversin necesaria de las direcciones IP. La otra puerta de enlace (que tiene la direccin IP pblica W.X.Y.Z) necesitar reglas similares.
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
Finalmente, necesita aadir reglas a su cortafuegos para permitir la circulacin de paquetes ESP e IPENCAP de ida y vuelta. Tendr que aadir reglas como estas a ambos equipos.
ipfw ipfw ipfw ipfw add add add add 1 1 1 1 allow allow allow allow esp from A.B.C.D to W.X.Y.Z esp from W.X.Y.Z to A.B.C.D ipencap from A.B.C.D to W.X.Y.Z ipencap from W.X.Y.Z to A.B.C.D
Debido a que las reglas son simtricas puede utilizar las mismas reglas en ambas puertas de enlace. Los paquetes salientes tendrn ahora este aspecto:
Src: A.B.C.D Dst: W.X.Y.Z <other header info> Src: A.B.C.D Dst: W.X.Y.Z <other header info> Src: 192.168.1.1 Dst: 192.168.2.1 <other header info> <packet data> Encapsuled packet, with real IP addr
Encrypted packet. Contents are completely secure from third party snooping
308
Captulo 14. Seguridad Cuando los paquetes llegan al otro extremo de la VPN sern descifrados (utilizando las asociaciones de seguridad que han sido negociadas por racoon). Despus entrarn al interfaz gif, que desenvuelve la segunda capa, hasta que nos quedamos con paquete m interno, que puede entonces viajar a la red interna. Puede revisar la seguridad utilizando la misma prueba de ping(8) anterior. Primero, inicie una sesin en la puerta de enlace A.B.C.D, y ejecute:
tcpdump dst host 192.168.2.1
ahora, como puede ver, tcpdump(1) muestra los paquetes ESP. Si trata de examinarlos con la opcin -s ver basura (aparentemente), debido al cifrado. Felicidades. Acaba de congurar una VPN entre dos sitios remotos. Sumario
Instale security/racoon. Edite ${PREFIX}/etc/racoon/psk.txt en ambas puertas de enlace aadiendo una entrada para la direccin IP del equipo remoto y una llave secreta que ambos conozcan. Asegrese de que este chero est en modo 0600. Aada las siguientes lneas a /etc/rc.conf en ambos equipos:
ipsec_enable="YES" ipsec_file="/etc/ipsec.conf"
Cre en ambos equipos un /etc/ipsec.conf que contenga las lneas spdadd necesarias. En la puerta de enlace #1 sera:
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
Aada a su(s) cortafuegos las reglas necesarias para que permita(n) el paso de trco IKE, ESP e IPENCAP en ambos equipos:
ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
309
Los dos pasos previos deben bastar para levantar la VPN. Las mquinas en cada red sen capaces de dirigirse una a otra utilizando direcciones IP, y todo el trco a travs del enlace ser cifrado de forma automtica y segura.
14.11. OpenSSH
Escrito por Chern Lee. OpenSSH es un conjunto de herramientas de conectividad que se usan para acceder a sistemas remotos de forma segura. Puede usarse como sustituto directo de rlogin, rsh, rcp y telnet. Adems cualquier otra conexin TCP/IP puede reenviarse o enviarse a travs de un tnel a travs de SSH. OpenSSH cifra todo el trco para eliminar de forma efectiva el espionaje, el secuestro de conexiones, y otros ataques en la capa de red. OpenSSH est a cargo del proyecto OpenBSD, y est basado en SSH v1.2.12, con todos los errores recientes corregidos y todas las actualizaciones correspondientes. Es compatible con los protocolos SSH 1 y 2. OpenSSH forma parte del sistema base desde FreeBSD 4.0.
Esta lnea cargar sshd(8), el programa dmon de OpenSSH, en el arranque de su sistema. Puede ejecutar el dmon sshd tecleando sshd en la lnea de rdenes.
Host key not found from the list of known hosts. Are you sure you want to continue connecting (yes/no)? yes
310
El login continuar como lo hara si fuera una sesin de rlogin o telnet. SSH utiliza un sistema de huellas de llaves para vericar la autenticidad del servidor cuando el cliente se conecta. Se le pide al usuario que introduzca yes solamente la primera vez que se conecta. Todos los intentos futuros de login se verican contra la huella de la llave guardada la primera vez. El cliente SSH le alertar si la huella guardada diere de la huella recibida en futuros intentos de acceso al sistema. Las huellas se guardan en ~/.ssh/known_hosts, y en ~/.ssh/known_hosts2 las huellas SSH v2. Por defecto las versiones recientes de los servidores OpenSSH solamente aceptan conexiones SSH v2. El cliente utilizar la versin 2 si es posible y pasar como respaldo a la versin 1. El cliente puede tambin ser obligado a utilizar una u otra pasndole -1 o -2, respectivamente para la versin 1 y la versin 2. Se mantiene la compatibilidad del cliente con la versin 1 para mantener la compatibilidad con versiones antiguas.
4735
Ya que la huella se guard en este equipo durante el ejemplo anterior se verica ahora al utilizar scp(1). Los argumentos de scp(1) son similares a cp(1), con el chero o cheros como primer argumento, y el destino como segundo. Ya que el chero se transere a travs de la red, a travs de SSH, uno o ms argumentos tienen la estructura user@host:<ruta_al_fichero_remoto>.
14.11.5. Conguracin
Los cheros de conguracin del sistema tanto para el dmon OpenSSH como para el cliente estn en /etc/ssh.
ssh_config contiene las opciones del cliente, mientras que sshd_config congura el dmon.
Adems las opciones sshd_program (/usr/sbin/sshd por defecto), y sshd_flags de rc.conf ofrecer ms niveles de conguracin.
14.11.6. ssh-keygen
ssh-keygen(1) le permite validar a un usuario sin pedirle la contrasea:<
% ssh-keygen -t dsa
Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Created directory /home/user/.ssh. Enter passphrase (empty for no passphrase): Enter same passphrase again:
311
ssh-keygen(1) crear un par de llaves pblica y privada para usar en la validacin. La llave privada se guarda en ~/.ssh/id_dsa o en ~/.ssh/id_rsa, mientras que la llave pblica se guarda en ~/.ssh/id_dsa.pub o en ~/.ssh/id_rsa.pub, respectivamente para llaves DSA y RSA. La llave pblica debe guardarse en el ~/.ssh/authorized_keys de la mquina remota para que la conguracin funcione. Las llaves RSA versin 1 deben guardarse en ~/.ssh/authorized_keys. De este modo permitir conexiones a la mquina remota mediante llaves SSH en lugar de contraseas. Si usa una contrasea al ejecutar ssh-keygen(1), se le pedir al usuario una contrasea cada vez que quiera utilizar la llave privada. ssh-agent(1) puede evitar la molestia de introducir repetidamente frases largas. esto se explica m adelante, en la Seccin 14.11.7.
AvisoLas opciones y cheros pueden ser diferentes segn la versin de OpenSSH que tenga en su sistema; para evitar problemas consulte la pgina de manual ssh-keygen(1).
Para utilizar ssh-agent(1) en X11 tendr que incluir una llamada a ssh-agent(1) en ~/.xinitrc. De este modo ofrecer los servicios de ssh-agent(1) a todos los programas lanzados en X11. Veamos un ejemplo de ~/.xinitrc:
exec ssh-agent startxfce4
Esto lanzara ssh-agent(1), que a su vez lanzara XFCE cada vez que inicie X11. Hecho esto y una vez reiniciado X11 para aplicar los cambios puede ejecutar ssh-add(1) para cargar todas sus llaves SSH.
312
Obliga a ssh a utilizar la versin 2 del protocolo. (No la use si est trabajando con servidores SSH antiguos)
-N
Indica que no se ejecutar una orden remota, o solamente tnel. Si se omite, ssh iniciara una sesin normal.
-f
El servidor SSH remoto. Un tnel SSH crea un socket que escucha en localhost en el puerto especicado. Luego reenva cualquier conexin recibida en el puerto/equipo local va la conexin SSH al puerto o equipo remoto especicado. En el ejemplo el puerto 5023 en localhost se reenva al puerto 23 del localhost de la mquina remota. Ya que 23 es telnet, esto creara una sesin telnet segura a travs de un tnel SSH. Puede usar esto para encapsular cualquier otro protocolo TCP inseguro como SMTP, POP3, FTP, etc. Ejemplo 14-1. Uso de SSH para crear un tnel seguro para SMTP
% ssh -2 -N -f -L 5025:localhost:25 usuario@correo.ejemplo.com
Trying 127.0.0.1... Connected to localhost. Escape character is ^]. 220 correo.ejemplo.com ESMTP
Puede usar esta tcnica junto con ssh-keygen(1) y cuentas adicionales de usuario para crear un entorno ms transparente, esto es, ms cmodo. Puede usar llaves en lugar de teclear contraseas y puede ejecutar los tneles de varios usuarios.
313
Captulo 14. Seguridad 14.11.8.1. Ejemplos prcticos de tneles SSH 14.11.8.1.1. Acceso seguro a un servidor POP3 En el trabajo hay un servidor SSH que acepta conexiones desde el exterior. En la misma red de la ocina reside un servidor de correo que ejecuta un servidor POP3. La red, o ruta de red entre su casa y ocina puede o no ser completamente de ar. Debido a esto necesita revisar su correo electrnico de forma segura. La solucin es crear una conexin SSH al servidor SSH de su ocina y llegar por un tnel al servidor de correo.
% ssh -2 -N -f -L 2110:correo.ejemplo.com:110 usuario@servidor-ssh.ejemplo.com
cuando el tnel est funcionando haga que su cliente de correo enve peticiones POP3 a localhost en el puerto 2110. La conexin ser reenviada de forma totalmente segura a traves del tnel a correo.ejemplo.com.
14.11.8.1.2. Saltarse un cortafuegos draconiano Algunos administradores de red imponen reglas de cortafuegos extremadamente draconianas, ltrando no solo las conexiones entrantes, sino tambin las salientes. Tal vez solo se le otorgue acceso a mquinas remotas a travs de los puertos 22 y 80 para ssh y navegar en web. Tal vez quiera acceder a otros servicios (que tal vez ni siquiera estn relacionados con el trabajo), como un servidor Ogg Vorbis para escuchar msica. Si ese servidor Ogg Vorbis transmite en un puerto que no sea el 22 o el 80 no podr tener acceso a l. La solucin es crear una conexin SSH fuera del cortafuegos de su red y utilizarla para hacer un tnel al servidor Ogg Vorbis.
% ssh -2 -N -f -L 8888:musica.ejemplo.com:8000 usuario@sistema-no-filtrado.ejemplo.org
Haga que el programa con el que suele escuchar msica haga peticiones a localhost puerto 8888, que ser reenviado a musica.ejemplo.com puerto 8000, evadiendo con xito el cortafuegos.
Para permitir al usuario admin la entrada desde cualquier lugar, solamente introduzca el nombre de usuario:
AllowUsers admin
314
Despus de hacer los cambios a b /etc/ssh/sshd_config debe decirle a sshd(8) que cargue de nuevo sus cheros de conguracin ejecutando:
# /etc/rc.d/sshd reload
debe ser compilada en el kernel. Si esta opcin no ha sido compilada, se mostrar un mensaje de advertencia si se intenta montar un sistema de cheros que soporte ACL. Esta opcin viene incluida en el kernel GENERIC. Las ACL dependen de los atributos extendidos habilitados en el sistema de cheros. Los atributos extendidos estn incluidos por defecto en la nueva generacin de sistemas de cheros UNIX UFS2.
Nota: Los atributos extendidos pueden usarse tambin en UFS1 pero requieren una carga de trabajo mucho ms elevada que en UFS2. El rendimiento de los atributos extendidos es, tambin, notablemente mayor en UFS2. Por todo esto si quiere usar ACL le recomendamos encarecidamente que use UFS2.
LasACL se habilitadan mediante una bandera administrativa durante el montaje, acls, en el chero /etc/fstab. La bandera de montaje puede tambin activarse de forma permanente mediante tunefs(8) para modicar una bandera de superbloque ACLs en la cabecera del sistema de cheros. En general es preferible usar la bandera de superbloque por varios motivos:
La bandera de montaje ACL no puede cambiarse por un remontaje (mount(8) -u), sino con un completo umount(8) y un mount(8). Esto signica que no se pueden habilitar las ACL en el sistema de cheros raz despus
315
Captulo 14. Seguridad del arranque. Tambin signica que no se puede cambiar la disposicin de un de cheros una vez que se ha comenzado a usar.
Activar la bandera de superbloque provocar que el sistema de cheros se monte siempre con las ACL habilitadas incluso si no existe una entrada en fstab o si los dispositivos se reordenan. Esto es as para prevenir un montaje accidental del sistema de cheros sin tener las ACL habilitadas, que podra resultar en que se impongan de forma inadecuada las ACL, y en consecuencia problema de seguridad.
Nota: Podemos cambiar el comportamiento de las ACL para permitirle a la bandera ser habilitada sin un mount(8) completo, pero puede salirle el tiro por la culata si activa las ACL, luego las desactiva, y despus las vuelve a activar sin congurar desde cero las atributos extendidos. En general, una vez que se han deshabilitado las ACL en un sistema de cheros no deben dehabilitarse, ya que la proteccin de cheros resultante puede no ser compatible las que esperan los usuarios del sistema, y al volver a activar las ACL volver a asignar las ACL a cheros cuyos permisos hubieran sido cambiados, lo que puede desenbocar en un escenario impredecible.
Los sistemas de cheros con ACL habilitadas tienen un signo + (ms) al visualizar sus conguraciones de permisos. Por ejemplo:
drwx-----drwxrwx---+ drwxrwx---+ drwxrwx---+ drwxr-xr-x 2 2 2 2 2 robert robert robert robert robert robert robert robert robert robert 512 512 512 512 512 Dec Dec Dec Dec Nov 27 23 22 27 10 11:54 10:57 10:20 11:57 11:54 private directorio1 directorio2 directorio3 public_html
Aqu vemos que los directorios directorio1, directorio2, y directorio3 estn usando ACL. El directorio public_html no.
Para cambiar las conguraciones de las ACL en este chero use setfacl(1). Observe:
% setfacl -k test
La bandera -k eliminar todas las ACLs denidas para un chero o sistema cheros. El mtodo preferible sera utilizar -b, ya que deja los campos bsicos imprescindibles para que las ACL sigan funcionando.
% setfacl -m u:trhodes:rwx,group:web:r--,o::--- test
La opcin -m se usa para modicar las entradas por defecto de las ACL. Debido a que no haba entradas predenidas puesto que fueron eliminadas por la orden anterior, restauraremos las opciones por defecto y asignar las opciones
316
Captulo 14. Seguridad listadas. Tenga en cuenta que si aade un nuevo usuario o grupo aparecer el error Invalid argument en la salida estndar stdout.
Durante el proceso de instalacin los cheros de conguracin de periodic(8) se actualizan haciendo que Portaudit aparezca en el mensaje sobre la seguridad del sistema que diariamente Recuerde que ese correo (que se envia a la cuenta root es muy importante y debera leerlo. No hay ninguna conguracin que deba modicar o crear. Despus de la instalacin un administrador debe actualizar la base de datos alojada en local en /var/db/portaudit mediante:
# portaudit -F
Nota: La base de datos ser actualizada automticamente durante la ejecucin de periodic(8); as que la orden anterior es totalmente opcional. Solo se necesita para los siguientes ejemplos.
Si quiere comproblar si entre las aplicaciones que haya instalado desde el rbol de ports en su sistema hay problemas de seguridad slo tiene que ejecutar lo siguiente:
# portaudit -a
317
Captulo 14. Seguridad El administrador del sistema obtendr mucha ms informacin sobre el problema de seguridad dirigiendo su navegador web a la URL que aparece en el mensaje. Esto incluye versiones afectadas (por versin de port de FreeBSD), junto con otros sitios web que contengan advertencias de seguridad. En pocas palabras, Portaudit es un programa muy poderoso y extremadamente til cuando se combina con el port Portupgrade.
FreeBSD only:
For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit http://www.FreeBSD.org/security/. I. Background
318
II.
Problem Description(10)
III. Impact(11)
IV.
Workaround(12)
V.
Solution(13)
VI.
Correction details(14)
VII. References(15)
El campo Topic indica cul es exactamente el problema. Bsicamente es la introduccin de la advertencia de seguridad actual e indica el uso malintencionado que puede darse a la vulnerabilidad.
Category se reere a la parte afectada del sistema, que puede ser core, contrib o ports. La categora core
signica que la vulnerabilidad afecta a un componente central del sistema operativo FreeBSD. La categora contrib signica que la vulnerabilidad afecta a software que no ha sido desarrollado por el proyecto FreeBSD, como sendmail. La categora ports indica que la vulnerabilidad afecta a software incluido en la coleccin de ports. El campo Module se reere a la ubicacin del componente, por ejemplo sys. En este ejemplo vemos que est afectado el mdulo sys; por lo tanto esta vulnerabilidad afecta a componentes utilizados dentro del kernel. El campo Announced reeja la fecha de publicacin de la advertencia de seguridad fu publicada o anunciada al mundo. Esto signica que el equipo de seguridad ha vericado que el que el problema existe y que se ha incluido un parche que soluciona el problema en el repositorio de cdigo fuente de FreeBSD. El campo Credits le da el crdito al individuo u organizacin que descubri y report la vulnerabilidad. El campo Affects explica a qu versiones de FreeBSD afecta esta vulnerabilidad. En el caso del kernel una rpida revisin de la salida de ident en los cheros afectados ayudar a determinar la versin. En el caso de de los ports el nmero de versin aparece despus del nombre del port en /var/db/pkg. Si el sistema no se sincroniza con el repositorio CVS de FreeBSD y se reconstruye diariamente, existe la posibilidad de que est afectado por el problema de seguridad. El campo Corrected indica la fecha, hora, zona horaria y versin de FreeBSD en que fu corregido. El campo FreeBSD only indica si la vulnerabilidad afecta solamente a FreeBSD o si afecta tambin a otros sistemas operativos. El campo Background informa acerca de qu es exactamente la aplicacin afectada. La mayor parte de las veces se reere a por qu la aplicacin existe en FreeBSD, para qu se usa y un poco de informacin de cmo lleg lleg a ocupar el lugar que ocupa en el sistema o el rbol de ports.
(10) El campo Problem Description explica el problema de seguridad en profundidad. Puede incluir informacin del cdigo errneo, o incluso cmo puede usarse maliciosamente el error para abrir un agujero de seguridad.
319
Captulo 14. Seguridad (11) El campo Impact describe el tipo de impacto que el problema pueda tener en un sistema. Por ejemplo, esto puede ser desde un ataque de denegacin de servicio, hasta una escalada de privilegios de usuario, o incluso ofrecer al atacante acceso de superusuario. (12) El campo Workaround ofrece una solucin temoral posible para los administradores de sistemas que tal vez no puedan actualizar el sistema. Esto puede deberse a la falta de tiempo, disponibilidad de de red, o a muchas otras razones. A pesar de todo la la seguridad no se debe tomar a la ligera y un sistema afectado debe parchearse al menos aplicar una solucin temporal para el agujero de seguridad. (13) El campo Solution ofrece instrucciones para parchear el sistema afectado. Este es un mtodo paso a paso, probado y vericado para parchear un sistema y que trabaje seguro. (14) El campo Correction Details despliega la rama del CVS o el nombre de la versin con los puntos cambiados a guiones bajos. Tambin muestra el nmero de revisin de los cheros afectados dentro de cada rama. (15) El campo References suele ofrecer fuentes adicionales de informacin: URL, libros, listas de correo y grupos de noticias.
Una vez habilitada, la contabilidad de procesos empezar a seguir el rastro de estadsticas de la CPU, rdenes, etc. Todos los logs de contabilidad estn en un formato ilegible para humanos, pero accesibles para sa(8). Si se ejecuta sin opciones, sa imprimir informacin sobre el nmero de llamadas por usuario, el tiempo total transcurrido expresado en minutos, el tiempo total de CPU y de usuario en minutos, el nmero medio de operaciones de E/S, etc. Para ver informacin acerca de las rdenes que se estn ejecutados puede usar la lastcomm(1). lastcomm imprime rdenes ejecutadas por los usuarios en ttys(5) especcas. Veamos un ejemplo:
# lastcomm ls
320
Imprimira todas las veces (conocidas) que el usuario trhodes ha usado ls en la terminal ttyp1. Hay muchas ms opciones que pueden serle muy tiles. Si quiere conocerlas consulte las pginas de manual lastcomm(1), acct(5) y sa(8).
Notas
1. En FreeBSD la contrasea del login estndar puede ser de hasta 128 caracteres de longitud.
321
15.1. Sinopsis
En este captulo se explica qu son las jaulas en FreeBSD y cmo usarlas. Las jaulas, citadas con frecuencia como la nueva generacin de entornos chroot, son una herramienta muy poderosa que se ha puesto al servicio de los administradores de sistemas, aunque su uso ms bsico puede ser tambin de suma utilidad para usuarios avanzados. Tras leer este captulo sabr usted:
Qu es una jaula y para qu puede usarse en sistemas FreeBSD. Cmo generar, arrancar y parar una jaula. Cmo manejarse con los rudimentos de la administracin de las jaulas, tanto desde dentro como desde fuera de la jaula.
La pgina de manual jail(8). Es la referencia completa de jail, la herramienta administrativa de FreeBSD con la que se arrancan, paran y controlan las jaulas. Las listas de correo y sus respectivos archivos. Los archivos de la lista de correo para preguntas generales sobre FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions), entre otras listas de correo alojadas en el servidor de listas de FreeBSD (http://lists.FreeBSD.org/mailman/listinfo) contienen una enorme cantidad de informacin sobre jaulas. La ayuda que est buscando puede obtenerla, por tanto, de una bsqueda en los archivos de las listas o de enviar una pregunta que nadie haya hecho en la lista de correo freebsd-questions (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions).
322
Captulo 15. Jaulas servidor (sistema, proceso, usuario, etc) El sistema que controla una jaula. El servidor tiene acceso a todos los recursos de hardware y puede controlar procesos tanto dentro como fuera de la jaula. Una de las diferencias importantes entre el sistema que aloja la jaula y la jaula propiamente dicha: las limitaciones que afectan a los procesos que se ejecutan con privilegios de superusuario dentro de la jaula no dependen de los procesos del servidor que la aloja. enjaulado (sistema, proceso, usuario, etc.) Un proceso, usuario u otra entidad, cuyo acceso a los recursos est restringido por una jaula de FreeBSD.
15.3. Introduccin
Dado lo dicil y desconcertante de la tarea de administrar sistemas se han ido desarrollando poderosas herramientas con el n de hacer la vida del administrador ms sencilla. Dichas herramientas suelen facilitar cierto tipo de mejoras en la instalacin, conguracin o mantenimiento de los sistemas. Una de las tareas que se espera que cumpla un administrador de sistemas es la conguracin adecuada de la seguridad, de modo que pueda dar el servicio para el que se ha destinado sin que pueda verse comprometido. Una de las herramientas disponibles para mejorar los niveles de seguridad de un sistema FreeBSD es el uso de jaulas. Las jaulas fueron introducidas en FreeBSD 4.X por Poul-Henning Kamp <phk@FreeBSD.org>, pero en FreeBSD 5.X sus capacidades fueron aumentadas hasta hacer de ellas un subsistema poderoso y exible. Su desarrollo sigue avanzando, aumentando as su utilidad, rendimiento, abilidad y seguridad.
323
Un subrbol de directorios: el punto desde el que se entra a una jaula. Una vez dentro de la jaula un proceso no puede escapar de dicho subrbol. Los tpicos problemas de seguridad que aparecn una y otra vez en el diseo del chroot(2) original no afectan a las jaulas de FreeBSD. Un nombre de mquina (hostname), que denir a la jaula. Las jaulas se usan principalmente para albergar servicios de red, por lo que disponer de un nombre de mquina descriptivo ayuda enormemente al administrador de sistemas. Una direccin IP: debe asignarse a la jaula y no cambiarse durante el ciclo de vida de la jaula. La direccin IP de una jaula suele ser un alias de un interfaz de red, aunque no es imprescindible que as sea. Un comando: La ruta de un ejecutable ubicado dentro de la jaula. La ruta es relativa al directorio raiz de la jaula, por lo que puede ser muy diferentes segn el entorno.
Adems, las jaulas pueden tener sus propios usuarios e incluso su propio root. Es obvio que este usuario root tiene su poder para hacer circunscrito a la jaula y, desde el punto de vista del servidor, el usuario root de la jaula no es omnipotente. El usuario root de la jaula no puede ejecutar tareas crticas fuera de la jaula (jail(8)) a la que pertenece. Ms adelante, en la Seccin 15.5, se dar ms informacin sobre las restricciones del usuario root.
El mejor punto de partida es la eleccin del punto del sistema de cheros del servidor donde estar fsicamente ubicada la jaula. /usr/jail/nombredelajaula es un buen sitio. nombredelajaula es el nombre de mquina que identica a la jaula. El sistema de cheros /usr/ suele tener espacio suciente para albergar el sistema de cheros de la jaula que, cuando se trata de jaulas completas, es esencialmente lo necesario para alojar todos y cada uno de los sistemas de cheros en una instalacin del sistema base por omisin de FreeBSD. Este comando crear el contenido necesario (binarios, bibliotecas, pginas de manual, etc.) y lo copiar al subrbol elegido como ubicacin fsica de la jaula. Todo se hace al tpico estilo FreeBSD: se compila todo y luego se instala en la ruta de destino. Al pasar el target distribution a make se instalan todos los cheros de conguracin necesarios. En pocas palabras, instala cada chero instalable que haya en /usr/src/etc/ en el directorio /etc de la jaula, es decir, en $D/etc/. No es imprescindible montar el sistema de cheros devfs(8) dentro de la jaula aunque por otra parte (casi) todas las aplicaciones necesitan acceso al menos a un dispositivo, dependiendo esto del propsito de la aplicacin. Es
324
Captulo 15. Jaulas muy importante el control del acceso a dispositivos desde la jaula, puesto que una conguracin descuidada puede permitir que un atacante haga de las suyas. El control sobre devfs(8) se gestiona mediante reglas que se detallan en las pginas de manual devfs(8) y devfs.conf(5). Una vez instalada la jaula puede arrancarla mediante jail(8). jail(8) usa los cuatro argumentos que se detallan en la Seccin 15.3.1. Puede pasarle otros argumentos adems de estos, por ejemplo para ejecutar procesos enjaulados bajo los permisos de un usuario especco. El argumento comando depende del tipo de jaula; si se trata de un virtual system /etc/rc es una buena eleccin, puesto que ejecutar la secuencia de arranque de un sistema FreeBSD real. Si se trata de una jaula de servicio depende del servicio o aplicacin que se quiera ejecutar mediante la jaula. Con frecuencia las jaulas se arrancan durante el arranque del servidor que las aloja; el sistema rc de FreeBSD permite hacerlo de un modo muy sencillo. 1. Puede crear una lista de jaulas que quiera arrancar en el inicio del sistema en el chero rc.conf(5):
jail_enable="YES" jail_list="www " # Ponga NO si quiere desactivar el arranque de jaulas # Lista de nombres de jaulas separados por espacios
2.
Tendr que aadir parmetros especcos para cada jaula al chero rc.conf(5):
jail_www _rootdir="/usr/jail/www" # directorio raiz de la jaula jail_www _hostname="www .example.org" # nombre de mquina de la jaula jail_www _ip="192.168.0.10" # direccin IP de la jaula jail_www _devfs_enable="YES" # montar devfs en la jaula jail_www _devfs_ruleset="www_ruleset" # reglas a aplicar a devfs dentro de la jaula
El arranque de jaulas por omisin que se congure en rc.conf(5) ejecutar el script /etc/rc de la jaula y asumir que es un sistema virtual completo. Si se trata de una jaula de servicio el comando de arranque por omisin tendr que cambiarse congurando la opcin jail_nombredejaula_exec_start segn convenga.
Nota: Si quiere consultar la lista completa de opciones consulte la pgina de manual rc.conf(5).
Puede arrancar o parar a mano una jaula mediante el script /etc/rc.d/jail siempre y cuando la jaula aparezca en rc.conf:
# /etc/rc.d/jail start www # /etc/rc.d/jail stop www
De momento no hay una forma limpia de apagar una jaula (jail(8)) debido a que los comandos que se usan normalmente para producir un apagado limpio del sistema no pueden usarse dentro de una jaula. La mejor forma de parar una jaula es ejecutar el siguiente comando desde dentro de la propia jaula o bien mediante jexec(8) desde fuera:
# sh /etc/rc.shutdown
325
Algunas de las opciones disponibles para personalizar el comportamiento y las restricciones de seguridad que pueden aplicarse en una jaula. Algunas de las aplicaciones de alto nivel creadas para la administracin de jaulas. Estas aplicaciones estn en la coleccin de ports y pueden utilizarse en conjunto para implementar productos basados en jaulas.
El administrador del servidor puede usar estas variables para aadir o quitar limitaciones impuestas por omisin al usuario root. Tenga en cuenta que hay ciertas limitaciones que no pueden quitarse. El usuario root no puede montar o desmontar sistemas de cheros desde su jaula. El usuario root no puede cargar o descargar reglas de devfs(8), congurar reglas de cortafuegos ni ejecutar muchas otras tareas administrativas que requieran modicaciones o acceso a datos internos del kernel, como cambiar el nivel de seguridad securelevel del kernel. El sistema base de FreeBSD contiene un conjunto bsico de herramientas que permiten el acceso a informacin sobre jaulas activas en el sistema, as como la conexin a una jaula para ejecutar comandos administrativos. jls(8) y jexec(8) forman parte del sistema base de FreeBSD y permiten ejecutar las siguientes tareas:
Mostrar una lista de jaulas activas y sus correspondientes identicadores de jaula (JID), direccin IP, nombre de mquina y ruta. Conectarse a una jaula en ejecuci desde el servidor y ejecutar un comando dentro de la jaula o realizar tareas administrativas dentro de dicha jaula. Esto es muy til cuando el usuario root quiere apagar la jaula de forma limpia. La herramienta jexec(8) permite tambin arrancar una shell dentro de la jaula para realizar tareas administrativas. Veamos un ejemplo:
# jexec 1 tcsh
326
El origen de esta idea es resolver los problemas antes descritos compartiendo el mximo posible entre distintas jaulas, de un modo seguro (utilizando montajes using read-only mount_nullfs(8) mounts) para que la actualizacin sea ms sencilla y el ubicar servicios aislados en jaulas sea ms interesante. Adems, se presenta una forma sencilla de aadir o borrar jaulas as como una forma de actualizarlas.
Nota: Los ejemplos de servicios en este contexto son: un servidor HTTP,un servidor DNS, un servidor SMTP, etc.
Crear una estructura de jaulas simple y fcil de entender. Esto implica no tener que ejecutar un installworld completo en todas y cada una de las jaulas.
327
Facilitar la creacin de nuevas jaulas o el borrado de jaulas previamente existentes. Facilitar la actualizacin de jaulas ya existentes. Hacer posible el uso de una rama de FreeBSD personalizada. Ser paranoico en cuanto a seguridad, reduciendo todo lo posible la posibilidad de que los sistemas se vean comprometidos. Ahorrar todo el espacio e inodos que sea posible.
Como ya se ha dicho, este diseo se basa en gran medida en el disponer de una nica plantilla en modo de slo lectura (a la que llamaremos nullfs) montada en cada jaula y un dispositivo en modo lectura-escritura por cada jaula. El dispositivo puede ser otro disco fsico adicional, una particin o un dispositivo md(4) basado en un vnode. En este ejemplo utilizaremos montajes nullfs en modo lectura-escritura. La estructura del sistema de cheros se detalla en la siguiente lista:
Cada jaula se montar bajo /home/j. la plantilla para cada jaula y la particin de slo lectura para todas las jaulas.
/home/j/mroot ser
Se crear un directorio vaco para cada jaula bajo el directorio /home/j. Cada jaula tendr un directorio /s que estar enlazado con la parte de lectura-escritura del sistema. Cada jaula tendr su propio sistema en modo lectura-escritura basado en /home/j/skel. Cada parte de lectura-escritura correspondiente a cada jaula se crear en /home/js.
Nota: Se asume que las jaulas se instalarn bajo la particin /home. Por supuesto esto no es en absoluto obligatorio, pero hay que tener en cuenta que debe hacerse el mismo cambio en cada uno de los ejemplos que se muestran ms adelante.
15.6.1.2. Creacin de la plantilla En esta seccin se describen los pasos necesarios para crear la plantilla maestra que conformar la parte de slo lectura que usarn las jaulas. Siempre es recomendable actualizar el sistema FreeBSD a la ltima rama -RELEASE. Consulte el captulo (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html) correspondiente de este libro si necesita ms informacin. En caso de que la actualizacin no sea posible tendr que usar buidworld para poder seguir adelante. Tambin necesitar el paquete sysutils/cpdup. Usaremos portsnap(8) para descargar la Coleccin de Ports de FreeBSD. El captulo sobre Portsnap (http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/portsnap.html) es siempre una lectura muy recomendable para quienes no tengan experiencia con su funcionamiento. 1. Lo primero que haremos ser crear una estructura de directorios para el sistema de cheros de slo lectura que contendr los binarios de nuestras jaulas, luego iremos al directorio que contiene el rbol de cdigo de FreeBSD e instalaremos el sistema de cheros de slo lectura en la plantilla de las jaulas:
# mkdir /home/j /home/j/mroot # cd /usr/src # make installworld DESTDIR=/home/j/mroot
328
Captulo 15. Jaulas 2. Una vez hecho esto, prepararemos la Coleccin de Ports de FreeBSD para nuestras jaulas as como un rbol de cdigo FreeBSD, necesario para usar mergemaster:
# # # # cd /home/j/mroot mkdir usr/ports portsnap -p /home/j/mroot/usr/ports fetch extract cpdup /usr/src /home/j/mroot/usr/src
3.
4.
Usamos mergemaster para instalar los cheros de conguracin que falten. Despus nos libramos de los directorios adicionales que haya creado mergemaster:
# mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i # cd /home/j/skel # rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev
5.
Ahora enlazamos simblicamente el sistema de cheros de lectura-escritura con el sistema de cheros de slo lectura. Por favor, asegrese de que los enlaces simblicos se crean en las ubicaciones correctas: s/. Si se usan directorios reales o directorios errneos la instalacin no funcionar.
# # # # # # # # # # cd /home/j/mroot mkdir s ln -s s/etc etc ln -s s/home home ln -s s/root root ln -s ../s/usr-local usr/local ln -s ../s/usr-X11R6 usr/X11R6 ln -s ../../s/distfiles usr/ports/distfiles ln -s s/tmp tmp ln -s s/var var
6.
El tener WRKDIRPREFIX congurado de este modo har posible compilar ports de FreeBSD dentro de cada jaula. Recuerde que el el directorio de los ports es de slo lectura. La ruta personalizada por WRKDIRPREFIX permite ejecutar compilaciones en la parte de slo lectura de cada jaula.
15.6.1.3. Creacin de las jaulas Ya tenemos una plantilla de jaulas de FreeBSD completa, as que podemos congurar nuestras jaulas en /etc/rc.conf. En este ejemplo crearemos 3 jaulas: NS, MAIL y WWW. 1. Introduzca las siguientes lineas en el chero /etc/fstab; con esto cada jaula tendr acceso a la plantilla de slo lectura y al espacio de lectura-escritura:
/home/j/mroot /home/j/ns nullfs ro 0 0
329
Nota: Las particiones que tienen un 0 en la columna pass no sern revisadas por fsck(8) durante el arranque y las que tienen un 0 en la columna dump no sern copiadas por dump(8). No nos interesa que fsck compruebe la integridad de montajes nullfs ni que dump haga copias de seguridad de montajes nullfs de slo lectura de las jaulas. Por esta razn el ejemplo de fstab tiene en las dos ltimas columnas 0 0.
2.
3.
Creamos los puntos de montaje de sistemas de cheros de slo lectura correspondientes a cada jaula:
# mkdir /home/j/ns /home/j/mail /home/j/www
4.
Instalamos la plantilla de lectura-escritura dentro de cada jaula. Observe que utilizamos sysutils/cpdup para asegurarnos de que se hace una copia exacta de cada directorio:
# # # # mkdir cpdup cpdup cpdup /home/js /home/j/skel /home/js/ns /home/j/skel /home/js/mail /home/j/skel /home/js/www
5.
Llegados a este punto las jaulas estn conguradas y listas para arrancar. Monte los sistemas de cheros de cada jaula y luego arrnquelas con el script /etc/rc.d/jail:
# mount -a # /etc/rc.d/jail start
330
Captulo 15. Jaulas Las jaulas deberan haber arrancado. Asegrese de ello con jls(8). La salida que ver debe parecerse a esta:
# jls
JID 3 2 1
En este punto debera ser posible entrar a cada una de las jaulas, aadir nuevos usuarios o congurar dmons. La columna JID indica el nmero de identicacin de cada jaula que est funcionando en el sistema. Con el siguiente comando puede ejecutar tareas administrativas en la jaula cuyo JID sea 3:
# jexec 3 tcsh
15.6.1.4. Actualizacin Llegar el momento en el que sea necesario actualizar el sistema, bien por seguridad o porque sea til para las jaulas disponer de alguna nueva caracterstica del sistema. El diseo de esta conguracin facilita una forma fcil de actualizar sus jaulas. Adems, minimiza la prdida de servicio, puesto que las jaulas deben apagarse slamente al nal de todo el proceso. Se ofrece tambin la posibilidad de volver a la versin anterior en caso de que algo salga mal. 1. El primer paso es actualizar el servidor que aloja las jaulas de la forma habitual. Despus creamos una plantilla de slo lectura temporal en /home/j/mroot2.
# # # # # # mkdir /home/j/mroot2 cd /usr/src make installworld DESTDIR=/home/j/mroot2 cd /home/j/mroot2 cpdup /usr/src usr/src mkdir s
La ejecucin de installworld crea unos cuantos directorios innecesarios que debemos borrar:
# chflags -R 0 var # rm -R etc var root usr/local tmp
2.
Creamos de nuevo los enlaces simblicos de lectura-escritura del sistema de cheros principal:
# # # # # # # ln ln ln ln ln ln ln -s -s -s -s -s -s -s s/etc etc s/root root s/home home ../s/usr-local usr/local ../s/usr-X11R6 usr/X11R6 s/tmp tmp s/var var
3.
4.
331
Nota: Los sistemas de cheros de lectura-escritura cuelgan del sistema de slo lectura /s y por tanto deben desmontarse antes.
5.
Movemos el sistema de cheros de slo lectura viejo y lo reemplazamos por el nuevo. Nos servir de copia de seguridad y como archivo en caso de que haya problemas. Para darle un nombre usamos la fecha en la que se creado una nueva copia del sistema de cheros de slo lectura. Movemos tambin la Coleccin de Ports de FreeBSD al sistema de cheros nuevo para ahorrar un poco ms de espacio e inodos:
# # # # cd mv mv mv /home/j mroot mroot.20060601 mroot2 mroot mroot.20060601/usr/ports mroot/usr
6.
Una vez llegados a este punto la nueva plantilla de slo lectura est lista, de manera que lo nico que nos queda por hacer es montar los sistemas de cheros y arrancar las jaulas:
# mount -a # /etc/rc.d/jail start
Compruebe con jls(8) si las jaulas han arrancado sin contratiempos. No olvide ejecutar mergemaster en cada jaula. Tendr que actualizar tanto los cheros de conguracin como los scripts rc.d.
Notas
1. Este paso no es necesario en FreeBSD 6.0 y versiones posteriores.
332
16.1. Sinopsis
Pendiente de Traduccin
333
334
17.1. *
Pendiente de traduccin.
335
Conocer la terminologa que se usa en FreeBSD para describir la organizacin de datos en un disco fsico (particiones y porciones). Sabr cmo aadir discos duros a su sistema. Sabr cmo congurar FreeBSD para utilizar dispositivos de almacenamiento USB. Sabr cmo congurar sistemas virtuales de cheros, como los discos de memoria. Sabr cmo usar cuotas para limitar el uso del espacio en disco. Sabr cmo cifrar discos para hacerlos ms seguros ante un atacante. Sabr cmo se crean y graban los CD y DVD en FreeBSD. Conocer diversas opciones de almacenamiento de copias de seguridad. Sabr cmo usar diversos programas de respaldo que pueden utilizarse en FreeBSD. Sabr cmo hacer copias de seguridad utilizando disquetes (oppy). Sabr en qu consiste una instantnea (snapshot) y cmo utilizarla de forma eciente.
Debe saber cmo congurar e instalar un nuevo kernel en FreeBSD (Captulo 8).
336
Captulo 18. Almacenamiento Tipo de unidad Unidades de disquete (oppy) Unidades de cinta SCSI Unidades de cinta IDE Unidades Flash Unidades RAID Nombre de dispositivo de la unidad
fd sa ast fla para dispositivos DiskOnChip aacd para Adaptec AdvancedRAID, mlxd y mlyd para Mylex, amrd para AMI MegaRAID, idad para Compaq Smart RAID, twed para 3ware RAID.
Notas de tabla: a. El controlador matcd(4) ha sido eliminado de la rama FreeBSD 4.X el 5 de octubre de 2002 y no existe en FreeBSD 5.0 y versiones posteriores.
337
338
Si tiene un disco IDE, sustituya ad por da. En sistemas anteriores a 4.X utilice wd.
18.3.2.2. Dedicado Si no va a compartir el nuevo disco con otro sistema operativo puede utilizar el modo dedicado. Recuerde que este modo puede confundir a los sistemas operativos de Microsoft, aunque no podrn daar por ello el disco o su contenido. Tenga en cuenta que FreeBSD (de IBM) se apropiar de cualquier particin que encuentre y no entienda.
# # # # # # # dd if=/dev/zero of=/dev/da1 bs=1k count=1 disklabel -Brw da1 auto disklabel -e da1 newfs -d0 /dev/da1e mkdir -p /1 vi /etc/fstab mount /1
# crear particin e
Nota: A partir de FreeBSD 5.1-RELEASE, la utilidad bsdlabel(8) reemplaz al antiguo programa disklabel(8). En bsdlabel(8) se han eliminado muchos parmetros y opciones obsoletas; en los ejemplos de arriba la opcin -r debe eliminarse si se usa bsdlabel(8). Para ms informacin dirjase al manual de bsdlabel(8).
339
18.4. RAID
18.4.1. Software RAID
18.4.1.1. Conguracin de controlador de disco concatenado (CCD) Texto original de Christopher Shumway. Revisado por Jim Brown. Al escoger una solucin de almacenamiento masivo los factores ms importantes a considerar son velocidad, abilidad y coste. Es raro tener los tres por igual; normalmente un dispositivo de almacenamiento masivo veloz y able es caro, y para recortar los costes suele sacricarse la velocidad o la abilidad. Al disear el sistema descrito ms adelante se eligi el coste como el factor ms importante, seguido de la velocidad, y luego la abilidad. La velocidad de transferencia de datos para este sistema est, en ltima instancia, limitada por la red. Y mientras que la conabilidad es muy importante, el controlador CCD descrito ms adelante sirve datos que estn respaldados en CD-R y pueden ser reemplazados sin dicultad. Al escoger una solucin de almacenamiento masivo el primer paso es denir sus necesidades. Si preere velocidad o abilidad por encima del coste, el resultado ser distinto del que vamos a describir en esta seccin. 18.4.1.1.1. Instalacin del hardware Adems del disco IDE, el ncleo del disco CCD est compuesto por tres discos IDE discos IDE Western Digital de 30GB y 5400 RPM, que ofrecen aproximadamente 90GB de almacenamiento. Lo ideal sera que cada disco IDE tuviera su propio cable y controlador, pero para minimizar costes no se utilizaron controladores IDE adicionales. En lugar de eso se conguraron los discos con jumpers para que cada controlador IDE tuviera un maestro y un esclavo. Despues de reiniciar la BIOS se congur para que detectara automticamente los discos conectados. FreeBSD los detect al reiniciar:
ad0: ad1: ad2: ad3: 19574MB 29333MB 29333MB 29333MB <WDC <WDC <WDC <WDC WD205BA> WD307AA> WD307AA> WD307AA> [39770/16/63] [59598/16/63] [59598/16/63] [59598/16/63] at at at at ata0-master UDMA33 ata0-slave UDMA33 ata1-master UDMA33 ata1-slave UDMA33
Nota: Si FreeBSD no detecta todos los discos asegrese de que ha colocado correctamente los jumpers. La mayora de los discos IDE tienen un jumper Cable Select. Este no es el jumper que dene la relacin maestro/esclavo. Consulte la documentacin del disco para identicar el jumper correcto.
El siguiente paso es estudiar cmo conectarlos para que formen parte del sistema de cheros. Investigue Debe investigar vinum(8) (Captulo 20) y ccd(4). Nosotros elegimos ccd(4) para nuestra conguracin.
18.4.1.1.2. Conguracin de CCD El controlador ccd(4) le permite tomar varios discos idnticos y concatenarlos en un solo sistema lgico de cheros. Para poder usar ccd(4) necesita un kernel compilado con soporte de ccd(4). Aada esta lnea al chero de conguracin de su kernel, recompile y reinstale su kernel:
pseudo-device ccd 4
340
Nota: En FreeBSD 5.X no es necesario especicar un nmero de dispositivos ccd(4), ya que el controlador de dispositivo ccd(4) es capaz de clonarse a s mismo (se crearn nuevas instancias de dispositivo automticamente segn vayan haciendo falta).
El soporte de ccd(4) tambin puede cargarse como mdulo en FreeBSD 3.0 y posteriores. Para congurar ccd(4) tendr que usar disklabel(8) para etiquetar los discos:
disklabel -r -w ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto
Esto crea una etiqueta de disco para ad1c, ad2c y ad3c que abarcan el disco completo.
Nota: A partir de FreeBSD 5.1-RELEASE bsdlabel(8) reemplaz al antiguo programa disklabel(8). En bsdlabel(8) se eliminaron muchas opciones y parmetros obsoletos; en los ejemplos de arriba la opcin -r deben obviarse. Para ms informacin consulte bsdlabel(8).
El siguiente paso es cambiar el tipo de etiqueta de disco. Edite los discos con disklabel(8):
disklabel -e ad1 disklabel -e ad2 disklabel -e ad3
Esto abre la etiqueta de disco de cada disco con el editor declarado en la variable de entorno EDITOR, por defecto vi(1). Esta es una etiqueta de disco sin modicar:
8 partitions: # size c: 60074784
offset 0
fstype unused
0 - 59597)
ccd(4) necesita que aada una nueva particin e. Puede copiarla desde la particin c, pero el tipo de sistema de cheros (la opcin fstype) debe ser 4.2BSD. La etiqueta del disco debera tener este aspecto:
8 partitions: # size c: 60074784 e: 60074784
offset 0 0
0 - 59597) 0 - 59597)
341
Captulo 18. Almacenamiento 18.4.1.1.3. Contruccin del sistema de cheros Puede que todava no exista el nodo de dispositivo para ccd0c. Si es as, ejecute lo siguiente:
cd /dev sh MAKEDEV ccd0
Nota: En FreeBSD 5.0 devfs(5) administrar automticamente los nodos de dispositivos en /dev, as que no tendr que usar MAKEDEV.
Una vez etiquetados todos los discos construya el ccd(4). Utilice ccdcong(8) con opciones similares a las siguientes:
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e
El uso y el signicado de cada una de las opciones se muestra ms abajo: El primer argumento es el dispositivo a congurar, en este caso /dev/ccd0c. La parte /dev/ es opcional. El intervalo para el sistema de cheros. El intervalo dene el tamao de una banda en bloques de disco, normalmente 512 bytes. Por lo tanto, un intervalo de 32 equivaldra 16.384 bytes. Banderas para ccdcong(8). Si desea disponer sus discos en espejo use aqu una bandera. Esta conguracin no necesita discos en espejo, por lo que est dispuesta a 0 (cero). Los ltimos argumentos de ccdcong(8) son los dispositivos a colocar en el array. Utilice la ruta completa para cada dispositivo.
Despues de ejecutar ccdcong(8) el ccd(4) estar congurado y podr instalar un sistema de cheros. Consulte las opciones de newfs(8) y ejecute:
newfs /dev/ccd0c
18.4.1.1.4. Automatizacin Seguramente querr que ccd(4) est dispuesto tras cada reinicio. Para ello, debe congurarlo. Guarde su conguracin en /etc/ccd.conf mediante lo siguiente:
ccdconfig -g > /etc/ccd.conf
Durante el reinicio, el script /etc/rc ejecuta ccdconfig -C si encuentra el chero /etc/ccd.conf. De este modo ccd(4) queda congurado automticamente para que pueda montarse.
Nota: Si ha arrancando en modo mono usuario necesita ejecutar el siguiente comando antes de que pueda montar el ccd(4) para congurar el array:
ccdconfig -C
Para montar automaticamente el ccd(4) coloque una entrada para ccd(4) en /etc/fstab para que se monte durante el arranque:
342
18.4.1.2. El administrador de volmenes Vinum El administrador de volmenes Vinum es un controlador de dispositivos de bloque que implementa unidades de disco virtuales. Asla los discos hardware de la interfaz de dispositivos de bloque y mapea datos de modo que revierta en un incremento de exibilidad, rendimiento y abilidad comparados con el sistema de slices de almacenamiento de disco tradicional. vinum(8) implementa los modelos RAID-0, RAID-1 y RAID-5, individualmente o combinados. Consulte el Captulo 20 para mayor informacin sobre vinum(8).
ATA channel 0: Master: Slave: ATA channel 1: Master: Slave: ATA channel 2: Master:
343
1.
Primero debe desconectar el disco del array para que pueda retirarlo con seguridad:
# atacontrol detach 3
2. 3.
Master: Slave:
4.
Reconstruya el array:
# atacontrol rebuild ar0
5.
El comando de reconstruccin no responder hasta que termine la tarea. Puede abrir otra terminal (mediante Alt+Fn) y revisar el progreso ejecutando lo siguiente:
# dmesg | tail -10
[texto eliminado] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare
# atacontrol status ar0
6.
18.5.1. Conguracin
El controlador de dispositivos de almacenamiento masivo USB, umass(4), ofrece soporte para dispositivos de almacenamiento USB. Si usa el kernel GENERIC no necesita cambiar nada en su conguracin. Si utiliza un kernel personalizado asegrese de que su chero de conguracin del kernel contiene las siguientes lneas:
device scbus
344
El controlador umass(4) usa el subsistema SCSI para acceder a los dispositivos de almacenamiento USB y su dispositivo USB aparecer en el sistema como dispositivo SCSI. Dependiendo del chipset USB de su placa base slamente necesitar device uhci o device ohci; en cualquier caso tener los dos en el chero de conguracin del kernel no provocar ningn dao. No olvide compilar e instalar el nuevo kernel si hizo alguna modicacin.
Nota: Si su dispositivo USB es una grabadora CD-R o DVD el controlador SCSI CD-ROM, cd(4), debe ser aadirse al kernel mediante la siguiente lnea:
device cd
Dado que la grabadora aparece como una unidad SCSI no tiene que usar el controlador atapicam(4) en la conguracin del kernel.
En FreeBSD 5.X y en la rama 4.X desde FreeBSD 4.10-RELEASE el soporte para controladores USB 2.0 se incorpora al sistema del siguiente modo:
device ehci
Tenga en cuenta que uhci(4) y ohci(4) siguen siendo necesarios si quiere disponer de soporte para USB 1.X.
Nota: En FreeBSD 4.X, El dmon USB (usbd(8)) debe ejecutarse para poder ver ciertos tipos de dispositivo USB. Para habilitarlo, aada usbd_enable="YES" en /etc/rc.conf y reinicie la mquina.
Obviamente la marca, el nodo de dispositivo (da0) y otros detalles pueden diferir dependiendo de su hardware. Ya que el dispositivo USB aparece como uno SCSI, puede usar camcontrol para ver una lista de dispositivos USB conectados al sistema:
# camcontrol devlist
345
Captulo 18. Almacenamiento Si la unidad tiene un sistema de cheros puede montarla. La Seccin 18.3 contiene informacin que le resultar muy til para formatear y crear particiones en el disco USB en caso de necesitarlo. Si desconecta el dispositivo (el disco debe desmontarse previamente), debera ver en el bfer de mensajes del sistema algo parecido a esto:
umass0: at uhub0 port 1 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached
18.6.1. Introduccin
Los CD tienen muchas opciones que los hacen distintos de los discos convencionales. Al principio los usuarios no podan escribirlos. Su diseo permite que leamos en ellos sin el retardo del movimiento de una cabeza lectora de una pista a otra. Tambin son mucho ms fciles de transportar de un sistema a otro que muchos otros soportes de informacin. Los CD tienen pistas, pero son una seccin de los que permiten lectura contnua, no una propiedad fsica del disco. Para crear un CD en FreeBSD debe preparar los cheros de datos que van a constituir las pistas del CD y luego escribir las pistas al CD. El sistema de cheros ISO 9660 se dise para gestionar estas diferencias. Por desgracia implementa lmites de sistema de cheros que eran comunes en la poca en que se dise. Por suerte tambin proporciona un mecanismo de extensiones que permite que CD escritos excediendo dichos lmites funcionen en sistemas que no soportan esas extensiones. El port sysutils/cdrtools incluye mkisofs(8), un programa que le permitir crear un chero de datos que contenga un sistema de cheros ISO 9660. Incorpora opciones que soportan varias extensiones. Se describe ms adelante. Qu herramienta usar para grabar el CD depende de si su grabadora es ATAPI o no. Las grabadoras de CD ATAPI usan el programa burncd, que forma parte del sistema base. Las grabadoras SCSI y USB usan cdrecord, del port sysutils/cdrtools.
burncd no soporta cualquier unidad de grabacin. Para saber si una unidad est soportada consulte la siguiente lista
346
Si quiere usar un interfaz grco con su software de grabacin de CD quizs le guste X-CD-Roast o K3b. Puede instalar estas herramientas como paquetes o desde los ports sysutils/xcdroast y sysutils/k3b, respectivamente. X-CD-Roast y K3b requieren el mdulo ATAPI/CAM si usa hardware ATAPI.
18.6.2. mkisofs
El programa mkisofs(8) (que forma parte del port sysutils/cdrtools) genera un sistema de cheros ISO 9660 que es una imagen de un rbol de directorios en el espacio de nombres del sistema de cheros UNIX. Esta es la forma ms simple de usarlo:
# mkisofs -o ficherodeimagen.iso /ruta/del/rbol
Este comando crear un ficherodeimagen.iso que contenga un sistema de cheros ISO 9660 que es una copia del rbol ubicado en /ruta/al/rbol. En el proceso, mapear los nombres de chero a nombres que se ajusten a las limitaciones del estndar del sistema de cheros ISO 9660, y excluir cheros que posean nombres no caractersticos de sistemas de cheros ISO. Existe gran cantidad de opciones que permiten superar esas restricciones. En particular, -R habilita las extensiones Rock Ridge comunes para sistemas UNIX, -J habilita las extensiones Joliet usadas por sistemas Microsoft y -hfs puede usarse para crear sistemas de cheros utilizados por Mac OS. Puede utilizar -U para deshabilitar todas las restricciones de nombres de chero si quiere crear un CD que se vaya a usar exclusivamente en sistemas FreeBSD. Cuando se usa con -R produce una imagen de sistema de cheros que es idntica al rbol FreeBSD origen, aunque puede violar el estndar ISO 9660 de mltiples formas. La ltima opcin de uso general es -b. Se usa para congurar la ubicacin de la imagen de arranque que se usar al crear un CD arrancable El Torito. Esta opcin usa como argumento la ruta a la imagen de arranque desde la raz del rbol de directorios que se va a escribir en el CD. Por defecto mkisofs(8) crea una imagen ISO en un modo llamado de emulacin de disquete (oppy), y por lo tanto espera que la imagen de arranque sea exactamente de 1.200, 1.440 o 2880 KB de tamao. Algunos cargadores de arranque, como el que se usa en los discos de la distribucin FreeBSD, no utilizan modo de emulacin: se usa la opcin -no-emul-boot. Por tanto, si /tmp/miarranque tiene un sistema FreeBSD arrancable con la imagen de arranque en /tmp/miarranque/boot/cdboot podra crear la imagen en un sistema de cheros ISO 9660 en /tmp/arrancable.iso de la siguiente manera:
# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/arrancable.iso /tmp/miarranque
Hecho esto, si tiene vn (FreeBSD 4.X), o md (FreeBSD 5.X) congurado en su kernel, puede montar el sistema de cheros del siguiente modo:
# vnconfig -e vn0c /tmp/arrancable.iso # mount -t cd9660 /dev/vn0c /mnt
347
Captulo 18. Almacenamiento Ahora puede vericar que /mnt y /tmp/miarranque sean idnticos. Existen muchas otras opciones que puede usar para depurar el comportamiento de mkisofs(8), sobre todo en lo que se reere al esquema ISO 9660 y la creacin de discos Joliet y HFS. Consulte el manual de mkisofs(8).
18.6.3. burncd
Si tiene una grabadora ATAPI puede usar burncd para grabar una imagen ISO en un CD. burncd forma parte del sistema base, y est en /usr/sbin/burncd. Su uso es muy sencillo, ya que tiene pocas opciones:
# burncd -f unidaddecd data ficheroimagen.iso fixate
Esto grabar una copia de ficheroimagen.iso en unidadcd . El dispositivo por defecto es /dev/acd0 (o /dev/acd0c en FreeBSD 4.X). Consulte burncd(8) para ver las opciones de conguracin de velocidad de escritura, expulsin de CD una vez grabado, y escritura de datos de audio.
18.6.4. cdrecord
Si no dispone de una grabadora ATAPI de CD, tendr que usar cdrecord para grabar sus CD. cdrecord no forma parte del sistema base; instlelo desde el port sysutils/cdrtools o como paquete. Los cambios en el sistema base pueden hacer que las versiones binarias del programa fallen. Tendr que actualizar el port cuando actualice su sistema o, si est siguiendo la rama -STABLE, actualizar el port cuando haya una nueva versin disponible. Aunque cdrecord tiene muchas opciones, el uso bsico es incluso ms simple que el de burncd. As se graba una imagen ISO 9660:
# cdrecord dev=dispositivo ficheroimagen.iso
La parte complicada de utilizar cdrecord es encontrar qu dev usar. Utilice la bandera -scanbus para dar con la conguracin apropiada. La salida ser parecida a la siguiente:
# cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jrg Using libscg version schily-0.1 scsibus0: 0,0,0 0) SEAGATE ST39236LW 0004 Disk 0,1,0 1) SEAGATE ST39173W 5958 Disk 0,2,0 2) * 0,3,0 3) iomega jaz 1GB J.86 Removable 0,4,0 4) NEC CD-ROM DRIVE:466 1.26 Removable 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) YAMAHA CRW4260 1.0q Removable 1,6,0 106) ARTEC AM12S 1.06 Scanner
Schilling
Disk CD-ROM
CD-ROM
348
Esta lista muestra los valores dev apropiados para los dispositivos de la lista. Localice su grabadora de CD y utilice los tres nmeros separados por comas como valor para dev. En este caso, el dispositivo CDW es 1,5,0 y por tanto la entrada apropiada sera dev=1,5,0. Hay modos ms fciles de especicar este valor; consulte cdrecord(1) para ms detalles. Tambin es el lugar donde buscar informacin sobre la escritura de pistas de audio, controlar la velocidad de escritura y muchas ms cosas.
2.
Asegrese de que 2,0 este congurado apropiadamente, como se describe en la Seccin 18.6.4. Unidades ATAPI 1. El controlador de CD ATAPI hace que cada pista sea accesible como /dev/acdd tnn, donde d es el nmero de unidad y nn es el nmero de pista expresado con dos dgitos decimales, precedido por un cero si es necesario. La primera pista del primer disco es /dev/acd0t01, la segunda es /dev/acd0t02, la tercera es /dev/acd0t03 y as sucesivamente. Asegrese de que existen los cheros apropiados en /dev.
# cd /dev # sh MAKEDEV acd0t99
Nota: En FreeBSD 5.0 devfs(5) crear y gestionar automticamente las entradas necesarias en /dev, as que no ser necesario usar MAKEDEV.
2.
Extraer cada pista con dd(1). Tambin deber declarar un tamao especco de bloque al extraer los cheros.
# dd if=/dev/acd0t01 of=pista1.cdr bs=2352 # dd if=/dev/acd0t02 of=pista2.cdr bs=2352
...
3.
Grabar los cheros extrados a disco con burncd. Debe declarar que son cheros de audio y que burncd debe cerrar (xate) el disco al terminar la grabacin.
# burncd -f /dev/acd0 audio pista1.cdr pista2.cdr ... fixate
349
recibir un error como este: Incorrect super block y no se montar. Un CDROM no es un sistema de cheros UFS as que los intentos de montarlo como tal fallarn. Tendr que decirle a mount(8) que el sistema de cheros es de tipo ISO9660 y funcionar. Puede hacerlo mediante la opcin -t cd9660. Por ejemplo, si quiere montar el dispositivo CDROM /dev/cd0 en /mnt ejecute:
# mount -t cd9660 /dev/cd0 /mnt
Tenga en cuenta que el nombre de su dispositivo (/dev/cd0 en este ejemplo) puede ser diferente, dependiendo de la interfaz que su CDROM utilice. Adems la opcin -t cd9660 slo ejecuta mount_cd9660(8). El ejemplo de arriba puede resumirse del siguiente modo:
# mount_cd9660 /dev/cd0 /mnt
En general puede usar CDROM de datos de cualquier fabricante, aunque los discos con ciertas extensiones ISO 9660 pueden mostrar un comportamiento extrao. Por ejemplo, los discos Joliet almacenan todos los nombres de chero en caracteres unicode de dos-bytes. El kernel de FreeBSD no comprende unicode (todava) as que los caracteres que no estn en ingls aparecen como signos de interrogacin. (Si utiliza FreeBSD 4.3 o alguna versin posterior, el controlador CD9660 incluye unas estructuras llamadas ganchos, que le permitirn cargar una tabla de conversin unicode apropiada cuando haga falta. Hay mdulos para algunas de las codicaciones ms comunes en el port sysutils/cd9660_unicode.) Es posible que reciba un error Device not configured al tratar de montar un CDROM. Generalmente esto signica que la unidad de CDROM piensa que no hay disco en la bandeja, o que la unidad no es visible en el bus. Puede llevar un par de segundos el que una unidad de CDROM se d cuenta de que ha sido alimentada, por lo tanto sea paciente. Algunas veces un CDROM SCSI puede perdido debido a que no tuvo tiempo suciente para responder al reset del bus. Si tiene un CDROM SCSI aada la siguiente opcin a su chero de conguracin del kernel y recompile su kernel.
options SCSI_DELAY=15000
350
Captulo 18. Almacenamiento Esto le indica a su bus SCSI que haga una pausa de 15 segundos durante el arranque para darle ocasin a su unidad de CDROM de responder al reset del bus.
Para recuperar los datos guardardados de este modo en un CD, debe leer los datos desde el nodo de dispositivo crudo:
# tar xzvf /dev/acd1
No puede montar este disco como lo hara con un CDROM normal. Estos CDROM no pueden leerse en ningn sistema operativo que no sea FreeBSD. Si quiere montar el CD o compartir los datos con otro sistema operativo debe utilizar mkisofs(8) como se describi previamente.
Es posible que necesite tambin las siguientes lneas en el chero de conguracin de su kernel:
device device device device ata scbus cd pass
(que, por otra parte, ya debern estar presentes). Recompile, instale su nuevo kernel y reinicie su mquina. Durante el proceso de arranque su grabadora debe ser detectada; veamos un ejemplo:
acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Puede acceder a la unidad a travs del del nombre de dispositivo /dev/cd0; por ejemplo, para montar un CDROM en /mnt, tecle lo siguiente:
# mount -t cd9660 /dev/cd0 /mnt
351
Captulo 18. Almacenamiento Como root, puede ejecutar el siguiente comando para obtener las direcciones SCSI del dispositivo:
# camcontrol devlist
Segn esto, 1,0,0 ser la direccin SCSI a utilizar con cdrecord(1) y otras aplicaciones SCSI. Para mayor informacin sobre sistemas ATAPI/CAM y SCSI, dirjase a las pginas de manual atapicam(4) y cam(4).
18.7.1. Introduccin
Comparado con el CD, el DVD es la nueva generacin de tecnologa de almacenamiento en medios pticos. El DVD puede almacenar ms datos que cualquier CD y hoy da es el estndar para publicacin de vdeo. Se pueden denir cinco formatos de grabacin para lo que llamamos un DVD grabable:
DVD-R: Este fu el primer formato de grabacin de DVD. El DVD-R estndar fu denido por el DVD Forum (http://www.dvdforum.com/forum.shtml). Este formato es de una sola escritura. DVD-RW: Esta es la versin reescribible del DVD-R estndar. Un DVD-RW puede reescribirse unas 1.000 veces. DVD-RAM: Este es tambin un formato reescribible soportado por el DVD Forum. Un DVD-RAM puede verse como un disco duro extrable. Este medio no es compatible con la mayora de las unidades DVD-ROM y reproductores de video DVD; hay muy pocas grabadoras de DVD que soporten el formato DVD-RAM. DVD+RW: Este es un formato reescribible denido por la DVD+RW Alliance (http://www.dvdrw.com/). Un DVD+RW puede reescribirse unas 1000 veces. DVD+R: Este un formato es la versin de una sola escritura del formato DVD+RW.
Un DVD grabable de una capa puede almacenar hasta 4.700.000.000 bytes, es decir, 438 GB o 4485 MB (1 kilobyte son 1.024 bytes).
Nota: Debemos hacer una distincin entre medio fsico y aplicacin. Un DVD de vdeo es una estructura de chero especca que puede escribirse en cualquier medio fsico consistente en un DVD grabable: DVD-R, DVD+R, DVD-RW, etc. Antes de elegir el tipo de medio, debe asegurarse que la grabadora y el reproductor de DVD de vdeo (un reproductor independiente o una unidad DVD-ROM en una computadora) son compatibles con el medio que pretende utilizar.
18.7.2. Conguracin
Utilice growisofs(1) para grabar el DVD. Forma parte de las herramientas dvd+rw-tools (sysutils/dvd+rw-tools). Las dvd+rw-tools permiten usar todos los tipos de DVD.
352
Captulo 18. Almacenamiento Estas herramientas utilizan el subsistema SCSI para acceder a los dispositivos, por lo tanto el soporte ATAPI/CAM debe estar presente en su kernel. Si su grabadora usa el interfaz USB no tendr que hacerlo, pero tendr que leer la Seccin 18.5 para ms informacin sobre la conguracin de dispositivos USB. Tambin debe que habilitar el acceso DMA para dispositivos ATAPI. Para ello aada la siguiente lnea a /boot/loader.conf:
hw.ata.atapi_dma="1"
Antes de intentar utilizar dvd+rw-tools debe consultar las notas de compatibilidad de hardware de dvd+rw-tools (http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html) por si apareciera cualquier informacin relacionada con su grabadora de DVD.
Nota: Si desea un interfaz grco debera echar un vistazo a K3b (sysutils/k3b), que ofrece un interfaz de usuario amigable para growisofs(1) y muchas otras herramientas de grabacin.
Las opciones -J -R se suministran a mkisofs(8) para la creacin del sistema de cheros (en este caso: un sistema de cheros ISO 9660 con extensiones Joliet y Rock Ridge). Consulte la pgina de manual mkisofs(8) para ms detalles. La opcin -Z se usa la sesin inicial de grabacin en todos los casos, sesiones mltiples o no. El dispositivo DVD del ejemplo, /dev/cd0, debe ajustarse de acuerdo a la conguracin de su sistema. El parmero -dvd-compat cerrar el disco (no se podr aadir nada a la grabacin). Por contra, esto le brindar una mejor compatibilidad del medio con unidades DVD-ROM. Tambin es posible grabar una imagen pre-masterizada, por ejemplo para guardar la imagen ficheroimagen.iso:
# growisofs -dvd-compat -Z /dev/cd0=ficheroimagen.iso
La velocidad de escritura se detecta y congura automticamente segn el medio y la unidad que se est utilizando. Si quiere forzar la velocidad de escritura utilice el parmetro -speed=. Para ms informacin consulte la pgina de manual growisofs(1).
353
Captulo 18. Almacenamiento Si ya tiene una imagen de un sistema de cheros de DVD de vdeo grbelo de la misma manera que cualquier otra imagen; consulte la seccin previa para ver un ejemplo. Si ha creado el DVD y el resultado est en, por ejemplo, el directorio /ruta/al/vdeo, use el siguiente comando para grabar el DVD de vdeo:
# growisofs -Z /dev/cd0 -dvd-video /ruta/al/vdeo
La opcin -dvd-video de mkisofs(8) har posible la creacin de una estructura de sistema de cheros de DVD de vdeo. Adems, la opcin -dvd-video implica la opcin -dvd-compat de growisofs(1).
Necesita ejecutar esta operacin solamente una vez, recuerde que slo los DVD+RW vrgenes necesitan ser formateados. Hecho eso ya puede usar el DVD+RW de la forma expuesta en las secciones previas. Si desea guardar nuevos datos (grabar un sistema de cheros totalmente nuevo, no aadir ms datos) en un DVD+RW no necesita borrarlo, slo tiene que escribir sobre la grabacin anterior (realizando una nueva sesin inicial):
# growisofs -Z /dev/cd0 -J -R /ruta/alos/datosnuevos
El formato DVD+RW ofrece la posibilidad de aadir datos fcilmente a una grabacin previa. La operacin consiste en fusionar una nueva sesin a la existente, no es escritura multisesin; growisofs(1) har crecer el sistema de cheros ISO 9660 presente en el medio. Si, por ejemplo, aadir datos al DVD+RW del ejemplo anterior tenemos que usar lo siguiente:
# growisofs -M /dev/cd0 -J -R /ruta/alos/datosnuevos
Las mismas opciones de mkisofs(8) que utilizamos para quemar la sesin inicial pueden usarse en ulteriores escritura.
Nota: Puede usar la opcin -dvd-compat si desea mejor la compatibilidad de medios con unidades DVD-ROM. Si la usa en un DVD+RW no evitar que pueda aadir ms datos.
Si por alguna razn desea borrar el contenido del medio, haga lo siguiente:
# growisofs -Z /dev/cd0=/dev/zero
354
Captulo 18. Almacenamiento Un DVD-RW virgen puede utilizarse directamente sin necesidad de formateo, sin embargo un DVD-RW no virgen en formato secuencial necesita ser borrado antes de poder guardar una nueva sesin inicial. Para borrar un DVD-RW en modo secuencial, ejecute:
# dvd+rw-format -blank=full /dev/cd0
Nota: Un borrado total (-blank=full) tardar aproximadamente una hora en un medio 1x. Un borrado rpido puede realizarse con la opcin -blank si el DVD-RW fu grabado en modo Disk-At-Once (DAO). Para grabar el DVD-RW en modo DAO use el comando:
# growisofs -use-the-force-luke=dao -Z /dev/cd0=ficheroimagen.iso
La opcin -use-the-force-luke=dao no es imprescindible, ya que growisofs(1) trata de detectar el medio (borrado rpido) y entrar en escritura DAO. Debera usarse el modo de reescritura restringida en los DVD-RW, pues este formato es ms exible que el formato de incremento secuencial, el formato por defecto.
Para escribir datos en un DVD-RW secuencial proceda del mismo modo que con los dems formatos de DVD:
# growisofs -Z /dev/cd0 -J -R /ruta/alos/datos
Si desea aadir datos a una grabacin previa tendr que usar la opcin -M de growisofs(1). si aade datos a un DVD-RW en modo incremental secuencial se crear en el disco una nueva sesin y el resultado ser un disco multisesin. Un DVD-RW en formato de sobreescritura restringido no necesita ser borrado antes de una nueva sesin inicial, slo tiene que sobreescribir el disco con la opcin -Z. esto es similar al caso DVD+RW. Tambin es posible ampliar un sistema de cheros ISO 9660 ya existente y escrito en el disco del mismo modo que para un DVD+RW con la opcin -M. El resultado ser un DVD de una sesin. Para poner un DVD-RW en el formato de sobreescritura restringido haga lo siguiente:
# dvd+rw-format /dev/cd0
18.7.7. Multisesin
Muy pocas unidades DVD-ROM soportan DVDs multisesin. La mayora de las veces (y si tiene suerte) solamente leern la primera sesin. Los DVD+R, DVD-R y DVD-RW en formato secuencial pueden aceptar multisesiones. El concepto de multisesin no existe en los formatos de sobreescritura restringida de DVD+RW y DVD-RW. Usando el siguiente comando despues de una sesin inicial (no-cerrada) en un DVD+R, DVD-R o DVD-RW en formato secuencial aadir una nueva sesin al disco:
# growisofs -M /dev/cd0 -J -R /ruta/alos/nuevosdatos
355
Captulo 18. Almacenamiento Usando este comando con un DVD+RW o un DVD-RW en modo de sobreescritura restringida, agregar datos fusionando la nueva sesin a la ya existente. El resultado ser un disco de una sola sesin. Este es el procedimiento habitual para aadir datos tras la escritura inicial.
Nota: Una cierta cantidad de espacio en el medio se usa en cada sesin al nalizar e iniciar sesiones; por tanto, se deben aadir sesiones con grandes cantidades de datos para optimizar el espacio del DVD. El nmero de sesiones est limitado a 154 para un DVD+R, aproximadamente 2.000 para un DVD-R y 127 para un DVD+R de doble capa.
356
Captulo 18. Almacenamiento 18.8.1.1.1. El tamao de disco en versiones 4.X y anteriores Tambin existen dispositivos /dev/fdN .tamao, donde tamao es el tamao del disquete en kilobytes. Estas entradas se usan durante el formateo a bajo nivel para determinar el tamao del disco. En los siguientes ejemplos se usar el tamao de 1440kB. Algunas veces las entradas bajo /dev tendrn que ser (re)creadas. Para ello, ejecute:
# cd /dev && ./MAKEDEV "fd*"
18.8.1.1.2. El tamao de disco en versiones 5.0 y posteriores En 5.0, devfs(5) administrar automticamente los nodos de dispositivo en /dev, as que el uso de MAKEDEV no es necesario. El tamao de disco deseado se pasa a fdformat(1) mediante la bandera -f. Los tamaos soportados aparecen en fdcontrol(8), pero tenga muy en cuenta que 1440kB es el que funciona mejor.
18.8.1.2. Formatear Un disquete necesita ser formateado a bajo nivel antes de poder usarse. Esto suele hacerlo el fabricante, pero el formateo es una buena manera de revisar la integridad del medio. Aunque es posible forzar tamaos de disco ms grandes (o pequeos), 1440kB es para lo que la mayora de los disquetes estn diseados. Para formatear un disquete a bajo nivel debe usar fdformat(1). Esta utilidad espera el nombre del dispositivo como argumento. Tome nota de cualquier mensaje de error, ya que stos pueden ayudarle a determinar si el disco est bien o mal. 18.8.1.2.1. Formateo en versiones 4.X y anteriores Use el dispositivo /dev/fdN .tamao para formatear el disquete. Inserte un disco de 35 pulgadas en su unidad y ejecute:
# /usr/sbin/fdformat /dev/fd0.1440
18.8.1.2.2. Formateo en versiones 5.0 y posteriores Use el dispositivo /dev/fdN para formatear el disquete. Inserte un disco de 35 pulgadas en su unidad y ejecute:
# /usr/sbin/fdformat -f 1440 /dev/fd0
357
Captulo 18. Almacenamiento La nueva etiqueta de disco ocupar todo el disco, y contendr toda la informacin apropiada sobre la geometra del disquete. Los valores de geometra para la etiqueta de disco estn en /etc/disktab. Ejecute disklabel(8) as:
# /sbin/disklabel -B -r -w /dev/fd0 fd1440
Nota: Desde FreeBSD 5.1-RELEASE bsdlabel(8) reemplaz al viejo programa disklabel(8). En bsdlabel(8) se eliminaron muchas opciones y parmetros obsoletos; en el ejemplo de arriba la opcin -r no debe usarse. Para mayor informacin consulte la pgina de manual de bsdlabel(8).
358
Captulo 18. Almacenamiento aproximadamente la capacidad. Existen unidades de biblioteca de cinta multi-unidad con 6 unidades en un solo armario y cambio de cinta automtico. Las capacidades de estas bibliotecas alcanzan los 240 GB. El estndar DDS-3 soporta capacidades de cinta de hasta 12 GB (o 24 GB con compresin). Las unidades de 4mm, igual que las unidades de 8mm, utilizan escaneo en espiral. Tanto unas como otras tienen las mismas ventajas y desventajas. Las cintas deben renovarse por otras despus de 2,000 pasadas 100 respaldos completos.
18.9.3. QIC
Las cintas y unidades QIC-150 son, quizs, las unidades y medios de cinta ms comunes. Las unidades de cinta QIC son las unidades de respaldo serias menos caras. La desventaja es el coste del medio. Las cintas QIC son caras comparadas con las cintas de 8mm o de 4mm, hasta 5 veces el precio de almacenamiento de datos por GB. No obstante, si sus necesidades pueden satisfacerse con media docena de cintas, QIC tal vez sea la decisin correcta. QIC es la unidad de cinta ms comn. Casi en todas partes tienen una unidad QIC de una u otra densidad. Y ese es el problema, QIC ofrece un enorme nmero de densidades en cintas fsicamente similares (algunas veces idnticas). Las unidades QIC son cualquier cosa menos silenciosas. Hacen bastante ruido antes de iniciar la grabacin de datos y son claramente audibles siempre que leen, escriben o hacen una bsqueda. Las cintas QIC miden 6 x 4 x 0.7 pulgadas; 152 x 102 x 17 mm. El ancho de datos vara de aprox. 150 kB/s a aprox. 500 kB/s. La capacidad de datos vara de 40 MB a 15 GB. La compresin por hardware existe en muchas de las nuevas unidades QIC. Las unidades QIC se ven con menos frecuencia y adems estn siendo suplantadas por unidades DAT. Los datos se graban en la cinta en pistas. Las pistas discurren a lo largo del extenso eje de la cinta de un extremo al otro. El nmero de pistas, y por lo tanto el ancho de una pista vara segn la capacidad de la cinta. La mayora, si no todas las unidades nuevas, ofrecen compatibilidad con modelos anteriores al menos para lectura (y tambin en
359
Captulo 18. Almacenamiento muchos casos de escritura). QIC tiene buena reputacin en cuanto a seguridad de los datos (las piezas mecnicas son ms simples y ms robustas que en las unidades de bsqueda en espiral). Las cintas deben ser sustituirse por otras despus de 5,000 respaldos.
18.9.4. DLT
DLT tiene la tasa de transferencia de datos ms rpida de todos los tipos de unidades mostradas aqu. La cinta de 1/2" (125mm) est alojada en un cartucho de un solo cilindro (4 x 4 x 1 pulgadas; 100 x 100 x 25 mm). El cartucho tiene una puerta giratoria a lo largo de todo un lado del cartucho. El mecanismo de la unidad abre esta puerta para extraer el lder. El lider de la cinta tiene un agujero oval que la unidad utiliza para enganchar la cinta. El cilindro de levantamiento est dentro de la unidad de cinta. Los dems cartuchos descritos en este texto (los cartuchos de 9 pistas son la nica excepcin) tienen el cilindro proveedor alojados dentro del propio cartucho de cinta. El ancho de datos es aproximadamente de 15 MB/s, tres veces el ancho de unidades de cinta de 4mm, de 8mm o QIC. Las capacidades de datos varan entre 10 GB y 20 GB en una sola unidad. Hay unidades multicinta y con cargadores multi-cinta, y bibliotecas multiunidad que pueden albergar de 5 a 900 cintas con una a 20 unidades, con lo que pueden alcanzar desde 50 GB hasta 9 TB de almacenamiento. Con compresin, el formato DLT Type IV soporta hasta 70 GB de capacidad. Los datos se almacenan en cinta en pistas paralelas a la direccin del movimiento de la cinta (como en las cintas QIC). Se escriben dos pistas al mismo tiempo. El tiempo de vida de lectura/escritura es relativamente largo. Una vez que la cinta no hay movimiento relativo entre las cabezas y la cinta.
18.9.5. AIT
AIT es un nuevo formato de Sony, y puede almacenar hasta 50 GB (con compresin) por cinta. Las cintas contienen chips de memoria que retienen un ndice de los contenidos de la cinta. Este ndice puede ser leido rpidamente para determinar la posicin de los cheros en la cinta, en lugar de los varios minutos que requerira el proceso con otras cintas. SAMS:Alexandria puede gestionar ms de 40 bibliotecas de cinta AIT, comunicndose directamente con el chip de memoria de la cinta para desplegar el contenido en pantalla, determinar qu cheros fueron respaldados a qu cinta, ubicar la cinta correcta, cargarla y restaurar los datos desde la cinta. Las bibliotecas como sta cuestan alrededor de 20.000 dlares, lo que las aleja bastante del alcance de los acionados.
La cinta no contiene un bloque identicador (bloque nmero 0). Todas las unidades de cinta QIC desde la adopcin del estndar QIC-525 escriben un bloque identicador en la cinta. Existen dos soluciones:
mt fsf 1
360
Use el botn del panel frontal para expulsar la cinta. Inserte nuevamente la cinta y haga un dump de datos a la cinta.
dump devolver DUMP: End of tape detected y la consola mostrar HARDWARE FAILURE info:280 asc:80,96.
Rebobine la cinta usando: mt rewind. A partir de ese momento podr utilizar la cinta.
El medio no es able, especialmente despus de largos periodos de tiempo. El respaldo y la restauracin es muy lento. Tienen una capacidad muy limitada (los ds de respaldar un disco duro entero en una docena de disquetes pasaron hace mucho).
De todas maneras, si no tiene otro mtodo para respaldar sus datos los disquetes son una mejor solucin que no tener ningn respaldo. Si tiene que utilizar disquetes asegrese de usar discos de buena calidad. Los disquetes que han estado almacenados en la ocina durante un par de aos son una mala eleccin. Lo mejor sera que utilizara discos nuevos de un fabricante respetado.
Cuando el primer disquete est lleno tar(1) le solicitar que inserte el siguiente volumen (debido a que tar(1) es independiente del medio se reere a volmenes; en ste contexto se reere a disquetes).
Prepare volume #2 for /dev/fd0 and hit return:
Esto se repite (con el nmero de volumen incrementando) hasta que todos los cheros especicados hayan sido archivados.
361
Hay dos maneras que puede usar para restaurar cheros especcos. La primera, puede comenzar por el primer disco exible y usar:
# tar Mxvf /dev/fd0 nombredefichero
La utilidad tar(1) le pedir que inserte el resto de disquetes hasta que encuentre el chero requerido. La segunda manera es: si sabe en qu disco se encuentra el chero puede insertar ese disco y usar el comando expuesto arriba. Tenga en cuenta que si el primer chero en el disquete es la continuacin del anterior tar(1) le advertir que no puede restaurarlo incluso si no se lo ha solicitado
dump tiene peculiaridades que se mantienen desde sus primeros das en la Version 6 de AT&T UNIX (alrededor de
1975). Los parmetros por defecto son los adecuados para cintas de 9 pistas (6250 bpi), pero no para los medios de alta densidad disponibles hoy en da (hasta 62,182 ftpi). Estos valores por defecto deben obviarse en la lnea de comandos para aprovechar la capacidad de las unidades de cinta actuales. Tambin es posible respaldar datos a travs de la red a una unidad de cinta conectada a otra computadora con rdump y rrestore. Ambos programas dependen de rcmd(3) y ruserok(3) para acceder a la unidad de cinta remota. Por consiguiente, el usuario que realiza el respaldo debe estar listado en el chero .rhosts de la computadora remota.
362
Captulo 18. Almacenamiento Los argumentos para rdump y rrestore deben ser adecuados para usarse en la computadora remota. Cuando realice un rdump desde FreeBSD a una unidad de cinta Exabyte conectada a una Sun llamada komodo, use:
# /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1
Advertencia: existen implicaciones de seguridad al permitir autenticacin mediante .rhosts. Le recomendamos que evale la situacin cuidadosamente. Tambin es posible usar dump y restore de una forma ms segura a travs de ssh. Ejemplo 18-1. Utilizando dump a travs de ssh
# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ usuario@maquinaobjetivo.ejemplo.com dd of=/misficherosgrandes/dump-usr-l0.gz
Uso del mtodo integrado de dump, congurando la variable de ambiente RSH: Ejemplo 18-2. Uso de dump a travs de ssh con RSH congurada
# RSH=/usr/bin/ssh /sbin/dump -0uan -f usuario@maquinaobjetivo.ejemplo.com:/dev/sa0 /usr
18.11.2. tar
tar(1) tambin es de la poca de la Version 6 de AT&T UNIX (alrededor de 1975). tar trabaja en cooperacin con el sistema de cheros; escribe cheros y directorios a cinta. tar no soporta el rango completo de opciones que ofrece cpio(1), pero no requiere el inusual comando de pipeline que utiliza cpio. En FreeBSD 5.3 y posteriores, tiene a su disposicin GNU tar y el comando por defecto bsdtar. La versin GNU puede ser invocada mediante gtar. Soporta dispositivos remotos mediante la misma sintaxis que rdump. Para hacer un tar a una unidad de cinta conectada a una Sun llamada komodo, use:
# /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1
Puede hacer lo mismo con o con bsdtar usando un pipe y rsh para mandar los datos a una unidad de cinta remota.
# tar cf - . | rsh nombredemaquina dd of=dispositivo-de-cinta obs=20b
Si le preocupa la seguridad del proceso de hacer un respaldo a travs de una red debe usar ssh en lugar de rsh.
18.11.3. cpio
cpio(1) es el programa de intercambio de archivos de cinta para medios magnticos. cpio tiene opciones (entre muchas otras) para realizar intercambio de bytes, escribir un nmero diferente de formatos de archivo y hacer pipe de datos hacia otros programas. Esta ltima opcin hace de cpio una eleccin excelente para medios de instalacin. cpio no sabe cmo recorrer el rbol de directorios, as que debe facilitarle una lista de directorios a travs de stdin.
cpio no permite respaldos a travs de la red. Puede usar un pipe y rsh para mandar los datos a una unidad de cinta remota.
# for f in lista_directorios; do
363
Donde lista_directorios es la lista de directorios que desea respaldar, usuario@mquina es la combinacin usuario/nombre de equipo que realizar el respaldo y dispositivo_de_respaldo es donde el respaldo se escribir efectivamente (por ejemplo /dev/nsa0).
18.11.4. pax
pax(1) es la respuesta IEEE/POSIX a tar y cpio. A travs de los aos las diversas versiones de tar y cpio se han vuelto ligeramente incompatibles, as que en lugar de pelear por hacerlo completamente estndar, POSIX cre una nueva utilidad de archivado. pax trata de leer y escribir muchos de los diversos formatos de cpio y tar, adems de nuevos formatos propios. Su conjunto de comandos se parece ms a cpio que a tar.
18.11.5. Amanda
Amanda (Advanced Maryland Network Disk Archiver) es un sistema de respaldos cliente/servidor, en lugar de un solo programa. Un servidor Amanda respaldar a una sola unidad de cinta cualquier cantidad de computadoras que tengan clientes Amanda y una conexin de red al servidor Amanda. Un problema comn en sitios con gran cantidad de discos grandes es que la cantidad de tiempo requerida para respaldar los datos directamente a cinta excede la cantidad de tiempo disponible para la tarea. Amanda resuelve este problema. Amanda puede usar un disco intermedio para respaldar varios sistemas de cheros al mismo tiempo. Amanda crea conjuntos de archivo, esto es, un grupo de cintas usadas durante un periodo de tiempo para crear respaldos completos de todos los sistemas de cheros listados en el chero de conguracin de Amanda. El conjunto de archivo tambin contiene respaldos incrementales nocturnos (o diferenciales) de todos los sistemas de cheros. Para restaurar un sistema de cheros daado hace falta el respaldo completo ms reciente y los respaldos incrementales. El chero de conguracin ofrece un control exhaustivo de los respaldos y del trco de red que Amanda genera. Amanda usar cualquiera de los programas de respaldo mencionados arriba para escribir los datos a cinta. Puede instalar Amanda como paquete y como port. No forma parte del sistema base.
364
365
# # populate the directories # if [ ! -x /sys/compile/MINI/kernel ] then cat << EOM The MINI kernel does not exist, please create one. Here is an example config file: # # MINI -- A kernel to get FreeBSD onto a disk. # machine "i386" cpu "I486_CPU" ident MINI maxusers 5 options INET # needed for _tcp _icmpstat _ipstat # _udpstat _tcpstat _udb
366
kernel root on da0 swap on da0 and da1 dumps on da0 isa0 pci0 fdc0 fd0 ncr0 scbus0 sc0 npx0 da0 da1 da2 sa0 loop gzip # required by INET # Exec gzipped a.outs at isa? port "IO_KBD" tty irq 1 vector scintr at isa? port "IO_NPX" irq 13 vector npxintr at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr at fdc0 drive 0
cp -f /sys/compile/MINI/kernel /mnt gzip gzip gzip gzip gzip -c -c -c -c -c -best -best -best -best -best /sbin/init > /mnt/sbin/init /sbin/fsck > /mnt/sbin/fsck /sbin/mount > /mnt/sbin/mount /sbin/halt > /mnt/sbin/halt /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync cp /root/.profile /mnt/root cp -f /dev/MAKEDEV /mnt/dev chmod 755 /mnt/dev/MAKEDEV chmod chmod chmod chmod 500 /mnt/sbin/init 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt 555 /mnt/bin/sh /mnt/bin/sync 6555 /mnt/sbin/restore
367
# # create the devices nodes # cd /mnt/dev ./MAKEDEV std ./MAKEDEV da0 ./MAKEDEV da1 ./MAKEDEV da2 ./MAKEDEV sa0 ./MAKEDEV pty0 cd / # # create minimum file system table # cat > /mnt/etc/fstab <<EOM /dev/fd0a / ufs rw 1 1 EOM # # create minimum passwd file # cat > /mnt/etc/passwd <<EOM root:*:0:0:Charlie &:/root:/bin/sh EOM cat > /mnt/etc/master.passwd <<EOM root::0:0::0:0:Charlie &:/root:/bin/sh EOM chmod 600 /mnt/etc/master.passwd chmod 644 /mnt/etc/passwd /usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd # # umount the floppy and inform the user # /sbin/umount /mnt echo "The floppy has been unmounted and is now ready."
18.11.8.2. Despus del desastre La pregunta clave es: ?sobrevivi su hardware? Ha estado haciendo respaldos regularmente, as que no hay necesidad de preocuparse por el software. Si el hardware ha sufrido daos los componentes deben reemplazarse antes de intentar de usar su sistema. Si su hardware est bien revise sus discos de arranque. Si usa disquetes de arranque personalizados arranque en modo monousuario (tecle -s en el en el prompt de arranque boot:). Sltese el siguiente prrafo. Si utiliza usando los discos boot.flp y fixit.flp, siga leyendo. Inserte el disco boot.flp en la primera unidad de disquete y arranque la mquina. El men de instalacin original se desplegar en pantalla. Seleccione la opcin
368
FreeBSD anteriores a 5.2). Recupere cada sistema de cheros por separado. Trate de montar (por ejemplo mount /dev/da0a /mnt) la particin raz de su primer disco. Si la etiqueta del disco ha sufrido daos use disklabel para reparticionar y etiquetar el disco de forma que coincida con la etiqueta que imprimi y guard previamente. Use newfs para crear de nuevo sus sistemas de cheros. Monte de nuevo la particin raz del disquete en modo lectura/escritura (mount -u -o rw /mnt). Ejecute su programa de respaldo y utilice las cintas de respaldo para restaurar sus datos en este sistema de cheros (restore vrf /dev/sa0). Desmonte el sistema de cheros (umount /mnt). Repita el proceso con cada sistema de cheros que sufri daos. Una vez que su sistema est en marcha respalde sus datos en cintas nuevas. Cualquiera que haya sido la causa de la cada o prdida de datos puede suceder de nuevo. Una hora ms que gaste ahora puede ahorrarle mucho sufrimiento ms adelante.
369
Captulo 18. Almacenamiento Ejemplo 18-4. Uso de vncong para montar una imagen de un sistema de cheros bajo FreeBSD 4.X
# vnconfig vn0 imagendedisco # mount /dev/vn0c /mnt
Para crear una nueva imagen de un sistema de cheros con vncong(8): Ejemplo 18-5. Creacin de una imagen nueva de un sistema de cheros respaldado en un archivo con
vnconfig
# dd if=/dev/zero of=nuevaimagen bs=1k count=5k
Warning: 2048 sector(s) in last cylinder unallocated /dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) super-block backups (for fsck -b #) at: 32
# mount /dev/vn0c /mnt # df /mnt
Filesystem /dev/vn0c
1K-blocks 4927
Used 1
Mounted on /mnt
mdcong(8) soporta tres tipos de discos virtuales en memoria: discos de memoria asignados mediante malloc(9), discos de memoria usando un chero o espacio de swap como respaldo. Un uso posible es montar imgenes de disquetes o CD archivadas. Para montar una imagen de un sistema de cheros: Ejemplo 18-6. Uso de mdconfig para montar una imagen de un sistema de cheros en FreeBSD 5.X
# mdconfig -a -t vnode -f imagendedisco -u 0 # mount /dev/md0 /mnt
370
Captulo 18. Almacenamiento Ejemplo 18-7. Creacin de un disco respaldado en chero con mdconfig
# dd if=/dev/zero of=nuevaimagen bs=1k count=5k
/dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808
# mount /dev/md0c /mnt # df /mnt
Filesystem /dev/md0c
1K-blocks 4846
Used 2
Mounted on /mnt
Si no especica el nmero de unidad con la opcin -u mdcong(8) usar la designacin automtica de md(4) para seleccionar un dispositivo sin usar. El nombre de la unidad designada se enviar a la salida esndar como md4. Para ms informacin sobre mdcong(8) consulte su pgina de manual.
Nota: A partir de FreeBSD 5.1-RELEASE bsdlabel(8) reemplaz a disklabel(8). En bsdlabel(8) se eliminaron muchas opciones y parmetros obsoletos. En el ejemplo de arriba ignore la opcin -r. Para ms informacin consulte la pgina de manual de bsdlabel(8).
mdcong(8) es muy til, aunque requiere muchas lneas de comando para crear un sistema de cheros basado en un chero. FreeBSD 5.0 incorpora mdmfs(8), que congura un disco md(4) utilizando mdcong(8), pone un sistema de cheros UFS en l mediante newfs(8) y lo monta usando mount(8). Por ejemplo, si desea crear y montar la misma imagen de sistema de cheros de arriba, simplemente tecle lo siguiente: Ejemplo 18-8. Congurar y montar un disco basado en un chero con mdmfs
# dd if=/dev/zero of=nuevaimagen bs=1k count=5k
Mounted on /mnt
Si utiliza la opcin md sin nmero de unidad, mdmfs(8) usar la opcin de auto unidad de md(4) para selecionar automticamente un dispositivo sin usar. Para ms informacin sobre mdmfs(8) dirjase a la pgina de manual.
371
Filesystem /dev/md0c
1K-blocks 4927
Used 1
Mounted on /mnt
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. with soft updates super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808
# mount /dev/md1 /mnt # df /mnt
Mounted on /mnt
Mounted on /mnt
En lugar de usar un sistema de cheros respaldado en malloc(9), es posible utilizar swap; lo nico que debe hacer es sustituir malloc por swap en la lnea de comando de mdcong(8). mdmfs(8) por defecto (sin -M) crea un disco basado en swap). Para ms informacin, consulte las pginas de manual de mdcong(8) y de mdmfs(8).
372
Es posible listar informacin sobre dispositivos md(4) congurados en el sistema mediante mdconfig -l. En FreeBSD 4.X se usa vncong(8) para desconectar el dispositivo. Por ejemplo, para desconectar y liberar todos los recursos usados por /dev/vn4:
# vnconfig -u vn4
Si busca cheros de instantnea en un sistema de de cheros (por ejemplo /var) puede usar nd(1):
# find /var -flags snapshot
Algunos administradores usan un chero de instantnea como respaldo, puesto que la instantnea puede guardarse en CD o cinta. Integridad de cheros; fsck(8) puede ejecutarse en una instantnea. Asumiendo que el sistema de cheros estuviera limpio cuando se mont se debe obtener un resultado limpio (e intacto). En esencia el proceso fsck(8) hace esto mismo en segundo plano. Ejecucin de dump(8) en la instantnea. Se obtendr un dump consistente con el sistema de cheros y los sellos de hora de la instantnea. dump(8) tambin puede leer una instantnea, crear una imagen dump y eliminar la instantnea en un comando usando la opcin -L.
373
Ejecutar un mount(8) contra la instantnea como una imagen congelada del sistema de cheros. Para montar la instantnea /var/snapshot/snap ejecute:
# mdconfig -a -t vnode -f /var/snapshot/snap -u 4 # mount -r /dev/md4 /mnt
Podr recorrer la jerarqua de su sistema de cheros /var congelado montado en /mnt. Todo estar en el mismo estado en el que estaba cuando cre la instantnea. La nica excepcin es que cualquier instantnea anterior aparecer como un chero de longitud cero. Cuando haya acabado de usar una instantnea puede desmontarla con:
# umount /mnt # mdconfig -d -u 4
Para ms informacin sobre softupdates e instantneas de sistemas cheros, incluyendo textos tcnicos, visite el sitio web de Marshall Kirk McKusick: http://www.mckusick.com/.
El kernel GENERIC no lo tiene activado por defecto, as que tendr que congurar, compilar e instalar un kernel personalizado para poder usar cuotas de disco. Por favor, consulte el Captulo 8 para ms informacin sobre la conguracin del kernel. A continuacin tendr que habilitar las cuotas de disco en /etc/rc.conf. Aadale la siguiente lnea:
enable_quotas="YES"
Hay una variable que le permitir efectuar un control ms exhaustivo sobre el arranque de cuotas. Normalmente se revisa la integridad de cuotas de cada sistema de cheros en el arranque; el responsable es quotacheck(8). quotacheck(8) se asegura de que los datos que hay en su base de datos de cuotas reejen realmente los datos del sistema de cheros. Es un proceso que lleva mucho tiempo y que afectar signicativamente al tiempo que tardar su sistema en arrancar. Si desea saltarse ese paso puede usar una variable al efecto en /etc/rc.conf:
check_quotas="NO"
Para concluir tendr que editar /etc/fstab para habilitar las cuotas de disco para cada sistema de cheros. Es aqu donde podr habilitar cuotas por usuario, por grupo, o ambos en todos sus sistemas de cheros.
374
Captulo 18. Almacenamiento Para habilitar cuotas por usuario en un sistema de cheros aada la opcin userquota al campo de opciones en la entrada de /etc/fstab que corresponda al sistema de cheros en el que quiere habilitar las cuotas. Veamos un ejemplo:
/dev/da1s2g /home ufs rw,userquota 1 2
En el caso de las cuotas de grupo es muy similar. Use la opcin groupquota en lugar de userquota. Para habilitar cuotas por usuario y por grupo modique la entrada de este modo:
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2
Por defecto los cheros de cuota se guardan en el directorio raz del sistema de cheros con los nombres quota.user y quota.group para cuotas de usuario y grupo respectivamente. Consulte fstab(5) para ms informacin. Aunque la pgina de manual de fstab(5) diga que puede especicar otra ubicacin para los cheros de cuota, no se recomienda hacerlo debido a que las diversas herramientas de gesti cuotas no parecen sobrellevar esto adecuadamente. Hecho todo esto puede reiniciar su sistema con el nuevo kernel. /etc/rc ejecutar automticamente los comandos apropiados para crear los cheros de cuota iniciales que requieran todas las entradas en en /etc/fstab, as que no hay necesidad de crear cheros de cuota de longitud cero. En el curso normal de operaciones no se le debera pedir que ejecute quotacheck(8), quotaon(8) o quotaoff(8) manualmente. Sin embargo, tal vez quiera leer sus pginas de manual para familiarizarse con su funcionamiento.
Debe ver un resumen de una sola lnea de uso del disco y los lmites de cuota actuales para cada sistema de cheros donde estn habilitadas las cuotas. Ahora puede iniciar la asignacin de lmites de cuota con edquota(8). Tiene varias opciones para imponer lmites en el espacio de disco que un usuario o grupo puede ocupar, y cuntos cheros pueden crear. Puede limitar el uso de disco basndose en el espacio en disco (cuotas de bloque) o en el nmero de cheros (cuotas de inodo) o una combinacin de ambas. Cada uno de estos lmites a su vez se divide en dos categoras: lmites duros y suaves. Un lmite duro no puede ser excedido. Una vez que un usuario alcanza su lmite duro no puede realizar ms ubicaciones en el sistema de cheros en cuestin. Por ejemplo, si el usuario tiene un lmite duro de 500 kbytes en un sistema de cheros y est utilizando 490 kbytes, el usuario solo puede ocupar otros 10 kbytes. Un intento de ocupar 11 kbytes ms fallar. Los lmites suaves pueden excederse por un periodo Este periodo de tiempo recibe el nombre de periodo de gracia, que por defecto es una semana. Si un usuario sobrepasa su periodo de gracia el lmite suave se convertir en un lmite duro y no se permitirn usos de disco adicionales. Cuando el usuario devuelve su cuota de uso de recursos a un punto por debajo de su lmite suave el periodo de gracia se reinicia.
375
Captulo 18. Almacenamiento Veamos un ejemplo de uso de edquota(8). Si se usa edquota(8) se entra en el el editor declarado en la variable de entorno EDITOR, o en el editor vi si no ha modicado el valor por defecto de la variable EDITOR, para que pueda editar los lmites de cuota.
# edquota -u test
Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60)
Debera ver dos lneas por cada sistema de cheros que tenga habilitadas las cuotas. Una lnea para los lmites de bloque y una lnea para lmites de inodo. Por ejemplo, para elevar los lmites de este usuario de un lmite suave de 50 y un lmite duro de 75 a un lmite suave de 500 y un lmite duro de 600, cambie:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
por:
/usr: kbytes in use: 65, limits (soft = 500, hard = 600)
Los nuevos lmites de cuota se aplicarn en cuanto salga del editor. Algunas veces se quieren activar lmites de cuota en un rango de UIDs. Esto puede realizarse con la opcin -p de edquota(8). Primero asigne el lmite de cuota deseado a un usuario y luego ejecute edquota -p protouser startuid-enduid. Por ejemplo, si el usuario test tiene el lmite de cuota deseado, el siguiente comando puede usarse para duplicar esos lmites de cuota para los UIDs de 10,000 hasta 19,999:
# edquota -p test 10000-19999
grace 5days
files 7 0
quota 50 50
limit 60 60
grace
En el sistema de cheros /usr del ejemplo este usuario est actualmente 15 kbytes sobre su lmite suave de 50 kbytes y le quedan 5 das de su periodo de gracia. Observe el asterisco, * que indica que el usuario est actualmente por encima de su lmite de cuota.
376
Captulo 18. Almacenamiento Normalmente los sistemas de cheros en los que el usuario no est utilizando espacio en disco no se mostrarn en la salida del comando quota(1), incluso si tiene un lmite de cuota asignado para esos sistemas de chero. La opcin -v desplegar esos sistemas de cheros, en nuestro ejemplo el sistema de cheros /usr/var.
Y reinicie inetd:
# kill -HUP cat /var/run/inetd.pid
Password:
2.
Verique la versin del sistema operativo gbde(4) requiere FreeBSD 5.0 o posterior.
# uname -r
5.0-RELEASE
377
Captulo 18. Almacenamiento 3. Aada soporte de gbde(4) al chero de conguracin de su kernel Aada la siguiente lnea al chero de conguracin de su kernel con el editor que preera:
options GEOM_BDE
Congure, recompile e instale el kernel de FreeBSD. Este proceso se detalla en el Captulo 8. Reinicie con el nuevo kernel.
/dev/ad4s1 /dev/ad4s1c
2.
Los cheros lock de gbde contienen informacin que gbde requiere para acceder a las particiones cifradas. Sin el acceso a los cheros lock gbde no podr descifrar los datos alojados en la particin cifrada sin una cantidad signicativa de trabajo, tarea para la que adems no le resultar de ayuda este software. Cada particin cifrada utiliza un chero lock separado. 3. Inicialice la particin gbde Una particin gbde debe inicializarse antes de que pueda utilizarse. Esta inicializacin slo debe hacerse una vez:
# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c
gbde(8) abrir su editor para que pueda congurar las opciones de conguracin que se le presentarn en una plantilla. Para utilizar UFS1 o UFS2, ponga el sector_size a 2048:
$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ # # El tamao de sector (sector size) es la unidad de datos ms # pequea que podr leer o escribir. Si la elige demasiado # pequea reducir el rendimiento y la cantidad de espacio # til. Si la elige demasiado grande puede hacer que los sistemas # de ficheros no funcionen. 512 es el tamao mnimo y # siempre funciona. Si va a usar UFS utilice # sector_size = 2048 [...]
378
Captulo 18. Almacenamiento gbde(8) le pedir dos veces que escriba la contrasea que debe usarse para asegurar los datos. La contrasea debe ser la misma las dos veces. La capacidad de gbde de proteger sus datos depende ntegramente de la calidad de la contrasea que elija. 2 El chero gbde init crea un chero lock para su particin gbde, que en nuestro ejemplo est en /etc/gbde/ad4s1c.
AtencinEs imprescindible que los cheros lock de gbde deben respaldarse junto con el contenido de cualquier particin cifrada. Aunque la sola acci de borrar un chero lock no puede evitar que un atacante motivado descifre una particin gbde sin el chero lock, el propietario legtimo no podr acceder a los datos en la particin cifrada sin una cantidad notable de trabajo, que es necesario sealar que no entra dentro de las funciones de gbde(8) ni de su diseador.
4.
Se le pedir la contrasea que eliji al inicializar la particin cifrada. El nuevo dispositivo cifrado aparecer en /dev como /dev/nombre_de_dispositivo.bde:
# ls /dev/ad*
5.
Cre un sistema de cheros en el dispositivo cifrado Una vez el dispositivo cifrado est conectado al kernel puede crear un sistema de cheros en el dispositivo con newfs(8). Dado que es ms rpido inicializar un sistema de cheros del nuevo UFS2 que un sistema de cheros del tradicional UFS1, le recomendamos encarecidamente usar newfs(8) con la opcin -O2.
Nota: La opcin -O2 es el valor por defecto en FreeBSD 5.1-RELEASE y siguientes.
*.bde
Nota: newfs(8) debe ejecutarse en una particin gbde conectada, que podr identicar por la extensin del nombre del dispositivo.
6.
Montar la particin cifrada Cre un punto de montaje para el sistema cifrado de cheros.
# mkdir /private
7.
Vericar que el sistema cifrado de cheros est disponible el sistema cifrado de cheros debera ser visible para df(1) y estar listo para su uso.
% df -H
Filesystem
Size
Used
Avail Capacity
Mounted on
379
Se le pedir la contrasea que eliji en la inicializacin de la particin cifrada gbde. 2. Revisin de errores en el sistema de cheros Como que los sistemas cifrados de cheros no pueden aparecer en /etc/fstab (lo que hara que fueran montados automticamente), los sistemas de cheros deben revisarse manualmente mediante fsck(8) antes de montarlos.
# fsck -p -t ffs /dev/ad4s1c.bde
3.
El sistema cifrado de cheros est listo para su uso. 18.15.3.1. Montar automticamente particiones cifradas Es posible usar un script para automatizar la conexin, revisin y el montaje de una particin cifrada, pero por razones de seguridad el script no debe contener la contrasea de gbde(8). Se recomienda ejecutar esos scripts se ejecuten de forma manual proporcionando la contrasea va consola o ssh(1).
380
Tenga en cuenta tambin que, como vinum(4) no utiliza el subsistema geom(4), no es posible usar gbde en volmenes vinum.
Notas
1. Mantener el disco accesible a sistemas operativos que pudieran necesitar acceder al mismo en algn momento. 2. Si quiere ayuda para seleccionar una contrasea segura que adems sea fcil de recordar visite el sitio web Diceware Passphrase (http://world.std.com/~reinhold/diceware.html).
381
19.1. Sinopsis
Este captulo explica el uso de discos bajo el marco de trabajo GEOM en FreeBSD. Esto incluye las principales utilidades de control de RAID que usan el marco de trabajo para su conguracin. Este captulo no se adentrar en un examen en profundidad de como GEOM maneja o controla la E/S, el subsistema subyacente, o el cdigo. Esta informacin se proporciona en la pgina de manual geom(4) y sus diversas referencias VEA TAMBIN. Este captulo tampoco es una gua denitiva de conguraciones RAID. Slo se examinan las clasicaciones de RAID que puede usar GEOM. Tras leer este captulo, sabr:
Que tipo de soporte para RAID est disponible a travs de GEOM. Como utilizar las utilidades base para congurar, mantener, y manipular los diversos niveles de RAID. Como replicar, unir, cifrar, y conectar remotamente dispositivos de disco por medio de GEOM. Como solucionar problemas con los discos adscritos al marco de trabajo GEOM.
Entender como trata FreeBSD a los dispositivos de disco (Captulo 18). Saber como congurar e instalar un nuevo ncleo de FreeBSD (Captulo 8).
382
Captulo 19. GEOM: Marco de trabajo modular de transformacin de discos simultneamente 64 kB en cada uno de los cuatro discos, ofreciendo un superior rendimiento de E/S. Este rendimiento se puede mejorar an ms usando varias controladoras de disco. Cada uno de los discos de una banda RAID0 debe ser del mismo tamao, pues las peticiones de E/S estn intercaladas para leer o escribir en varios discos en paralelo.
64k 256k would be written in four 64k simultaneous writes to each of the four disks 64k 64k 64k
disk 1
disk 2
disk 3
disk 4
Creacin de una banda de discos ATA sin formatear 1. Cargue el mdulo geom_stripe:
# kldload geom_stripe.ko
2.
Asegrese de que existe un punto de montaje adecuado. Si este volumen se convertir en una particin raz, utilice temporalmente otro punto de montaje, como /mnt.
# mkdir /mnt
3.
Determine los nombres de dispositivo de los discos que sern congurados en bandas, y cree el nuevo dispositivo de banda. Por ejemplo, podra utilizar la siguiente orden para congurar en bandas dos discos ATA sin usar ni particionar: /dev/ad2 y /dev/ad3.
# gstripe label -v st0 /dev/ad2 /dev/ad3
4.
Si se va a usar este volumen como dispositivo raz para arrancar el sistema, debe ejecutar la siguiente orden antes de crear el sistema de cheros:
# fdisk -vBI /dev/stripe/st0
5.
Se debe crear una tabla de particiones en el nuevo volumen con la siguiente orden:
# bsdlabel -wB /dev/stripe/st0
383
Captulo 19. GEOM: Marco de trabajo modular de transformacin de discos 6. Aadems del dispositivo st0, este proceso debera haber creado otros dos dispositivos en el directorio /dev/stripe, incluyendo st0a y st0c. Ahora se debe crear un sistema de cheros en el dispositivo st0a usando la siguiente orden newfs:
# newfs -U /dev/stripe/st0a
Por la pantalla se deslizarn muchos nmeros, y al cabo de unos pocos segundos, el proceso habr nalizado. El volumen ha sido creado y est preparado para ser montado: Se puede usar la siguiente orden para montar manualmente una banda de discos recin creada:
# mount /dev/stripe/st0a /mnt
Para montar automticamente este sistema de cheros distribuido por bandas durante el proceso de arranque, ponga la informacin del volumen en el chero /etc/fstab:
# echo "/dev/stripe/st0a /mnt ufs rw 2 2" \ >> /etc/fstab
Tambin se debe cargar automticamente durante la inicializacin del sistema el mdulo geom, aadiendo una lnea a /boot/loader.conf:
# echo geom_stripe_load="YES" >> /boot/loader.conf
384
Captulo 19. GEOM: Marco de trabajo modular de transformacin de discos Inicialice GEOM, esto cargar el mdulo del ncleo /boot/kernel/geom_mirror.ko:
# gmirror load
Nota: Esta orden debera haber creado en el directorio /dev/mirror los nodos de dispositivo gm0, gm0s1,
gm0s1a, y gm0s1c.
Instale una etiqueta genrica fdisk y el cdigo de arranque en el recin creado dispositivo gm0:
# fdisk -vBI /dev/mirror/gm0
Nota: Si hay varias slices (rodajas) y particiones, necesitar modicar las opciones de las dos rdenes anteriores. Deben coincidir con la slice y tamao de particin del otro disco.
Utilice la utilidad newfs(8) para crear un sistema de cheros predenido en nodo de dispositivo gm0s1a:
# newfs -U /dev/mirror/gm0s1a
Esto debera haber hecho que el sistema mostrara alguna informacin y un puado de nmeros. Esto es bueno. Examine la pantalla por si hay algn mensaje de error y monte el dispositivo en el punto de montaje /mnt:
# mount /dev/mirror/gm0s1a /mnt
Ahora mueva todos los datos del disco de arranque a este nuevo sistema de cheros. Este ejemplo usa las rdenes dump(8) y restore(8); aunque, dd(1) tambin debera funcionar en este escenario. Evitamos utilizar tar(1) porque no copiar el cdigo de arranque. De ese modo, el fallo estara garantizado.
# dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)
Se debe hacer esto para cada sistema de cheros. Simplemente ponga el sistema de cheros adecuado en la ubicacin correcta al ejecutar la orden mencionada. Ahora edite el chero replicado /mnt/etc/fstab y elimine o comente el chero swap 1. Cambie la informacin del otro sistema de cheros para que utilice el nuevo disco. Vea el siguiente ejemplo:
# Device #/dev/da0s2b /dev/mirror/gm0s1a Mountpoint none / FStype swap ufs Options sw rw Dump 0 1 Pass# 0 1
Ahora cree un chero boot.conf tanto en la particin actual como en la nueva particin raz. Este chero ayudar al BIOS del sistema a arrancar la unidad correcta:
# echo "1:da(1,a)/boot/loader" > /boot.config # echo "1:da(1,a)/boot/loader" > /mnt/boot.config
385
Esto le dice a la utilidad loader(8) que cargue el geom_mirror.ko durante la inicializacin del sistema. Reinicie el sistema:
# shutdown -r now
Si todo ha ido bien, el sistema debera haber arrancado desde el dispositivo gm0s1a, y un prompt login debera estar a la espera. Si algo fue mal, consulte la seccin posterior de resolucin de problemas. Ahora agregue el disco da0 al dispositivo gm0:
# gmirror configure -a gm0 # gmirror insert gm0 /dev/da0
La opcin -a le dice a gmirror(8) que use sincronizacin automtica; por ejemplo, que replique las escrituras en disco automticamente. La pgina de manual explica como reconstruir y reemplazar discos, aunque utiliza data en vez de gm0.
Reinicie la mquina utilizando el botn de encendido o el de reset. En el men de arranque, seleccione la opcin seis (6). Esto llevar al sistema a un prompt de loader(8). Cargue el mdulo del ncleo manualmente:
OK? load geom_mirror.ko OK? boot
Si esto funciona, es que por alguna razn el mdulo no se cargaba correctamente. Ponga:
options GEOM_MIRROR
en el chero de conguracin del ncleo, recompile y reinstale. Esto debera solucionar el problema.
386
Notas
1. Debe advertirse que comentar la entrada del chero swap en fstab probablemente le obligar a reestablecer una manera diferente de habilitar el espacio de intercambio. Consulte Seccin 11.4 para ms informacin.
387
Disk 1 0 1 2 3 4 5
Disk 2 6 7 8 9
Disk 3 10 11
Disk 4 12 13 14 15 16 17
388
Captulo 20. El Gestor de Volmenes Vinum Figura 20-2. Organizacin con Striping
Disk 1 0 4 8 12 16 20
Disk 2 1 5 9 13 17 21
Disk 3 2 6 10 14 18 22
Disk 4 3 7 11 15 19 23
Disk 1 0 3 6 Parity 12 15
Disk 2 1 4 Parity 9 13 16
389
20.6. Ejemplos
20.6.1. El Fichero de Conguracin
390
Captulo 20. El Gestor de Volmenes Vinum Figura 20-4. Un Volumen Vinum Sencillo
0 MB
Subdisk
myvol.p0.s0
512 MB
Plex 1
myvol.p0
391
0 MB
Subdisk 1
mirror.p0.s0
Subdisk 2
mirror.p1.s0
512 MB
Plex 1
mirror.p0
Plex 2
mirror.p1
392
striped.p0.s2
striped.p0.s3 512 MB
Plex 1
striped.p0
393
Captulo 20. El Gestor de Volmenes Vinum Figura 20-7. Un Volumen Vinum Replicado y en Striping
.p0.s0
.p1.s0
.p0.s1
.p1.s1
.p0.s2
.p1.s2
.p0.s3
.p1.s3
.p0.s4
.p1.s4
Plex 1
striped.p0
Plex 2
striped.p1
The control devices /dev/vinum/control and /dev/vinum/controld, which are used by vinum(8) and the Vinum daemon respectively.
394
20.8.1. Arranque
20.8.1.1. Arranque Automtico
395
21.1. *
Pendiente de traduccin.
396
22.1. Sinopsis
FreeBSD es un proyecto muy distribuido, que cuenta con usuarios y contribuidores por todo el mundo. Este captulo examina las funcionalidades de internacionalizacin y localizacin de FreeBSD que permiten llevar a cabo su trabajo a los usuarios no angloparlantes. Hay muchos aspectos en la implementacin de la i18n, tanto en los niveles de sistema como de aplicacin, as que cuando sea conveniente dirigiremos al lector a fuentes de documentacin ms especcas. Tras leer este captulo, sabr:
Cmo se codican los distintos idiomas y locales en los sistemas operativos modernos. Cmo congurar las locales para su intrprete de rdenes. Cmo congurar la consola para idiomas distintos al ingls. Cmo emplear ezcamente el sistema de ventanas X en distintos idiomas. Dnde encontrar ms informacin sobre como escribir aplicaciones que sigan la i18n.
22.2. Lo bsico
22.2.1. ?Qu es I18N/L10N?
Los desarrolladores acortaron la palabra internacionalizacin al trmino I18N, contando el nmero de letras entre la primera y la ltima letra. L10N sigue el mismo esquema, y procede de localizacin. Combinados, los mtodos, protocolos y aplicaciones de I18N/L10N permiten a los usuarios usar el idioma de su eleccin. Las aplicaciones I18N se programan usando herramientas de I18N de bibliotecas. stas permiten a los desarrolladores escribir un chero sencillo y traducir los mens y textos contenidos a cada idioma. Animamos fervientemente a los programadores a que sigan esta convencin.
397
22.3.2. Codicaciones
Algunos idiomas usan codicaciones distintas al ASCII que son de 8 bits, caracteres anchos o multibyte; consulte multibyte(3) para conocer ms detalles. Algunas aplicaciones ms antiguas no los reconocen y los confunden con caracteres de control. Las aplicaciones modernas normalmente reconocen los caracteres de 8 bits. Dependiendo de la implementacin, los usuarios pueden necesitar compilar una aplicacin con soporte para caracteres anchos o multibyte, o congurarlo correctamente. Para poder introducir y procesar caracteres anchos o multibyte, la Coleccin de Ports de FreeBSD proporciona diferentes programas a cada idioma. Dirjase a la documentacin de I18N del port de FreeBSD correspondiente. Especcamente, los usuarios necesitan mirar la documentacin de la aplicacin para decidir como congurarla correctamente o pasar valores correctos al congure/Makele/compilador. Algunas cosas a tener presentes son:
Los juegos de caracteres de tipo char de C especcos para el idioma (consulte multibyte(3)), v.g. ISO-8859-1, ISO-8859-15, KOI8-R, CP437.
398
Esto comprende la conguracin del intrprete de rdenes del usuario, la conguracin especca de la aplicacin y la conguracin de X11. 22.3.4.1. Mtodos de conguracin de las locales Hay dos mtodos para congurar las locales, que se describen aqu abajo. El primero (que es el recomendado) es asignar las variables de entorno en una clase de sesin, y el segundo es aadir las asignaciones de las variables de entorno al chero de inicio del intrprete de rdenes del sistema. 22.3.4.1.1. Mtodo de las clases de sesin Este mtodo permite asignar las variables de entorno necesarias para el nombre de las locales y el juego de caracteres MIME de una sola vez para todos los posibles intrpretes de rdenes, en vez de aadir asignaciones especcas en los cheros de inicio de cada uno de los intrpretes de rdenes. La conguracin a nivel de usuario la puede realizar el propio usuario, mientras que la conguracin a nivel de administrador precisa de permisos de superusuario.
399
Captulo 22. Localizacin - Uso y conguracin de I18N/L10N 22.3.4.1.1.1. Conguracin a nivel de usuario Esto es un ejemplo minimalista de un chero .login_conf de la carpeta de inicio de un usuario, que contiene las dos variables conguradas para la codicacin Latin-1:
me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:
Esto es un ejemplo de un .login_conf que congura las variables para el chino tradicional en la codicacin BIG-5. Observe que se conguran muchas ms variables porque algunos programas no respetan correctamente las variables de las locales para el chino, el japons y el coreano.
#Users who do not wish to use monetary units or time formats #of Taiwan can manually change each variable me:\ :lang=zh_TW.Big5:\ :lc_all=zh_TW.Big:\ :lc_collate=zh_TW.Big5:\ :lc_ctype=zh_TW.Big5:\ :lc_messages=zh_TW.Big5:\ :lc_monetary=zh_TW.Big5:\ :lc_numeric=zh_TW.Big5:\ :lc_time=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=xcin": #Setting the XIM Input Server
22.3.4.1.1.2. Conguracin a nivel de administrador Compruebe que la clase de sesin en /etc/login.conf establece el idioma adecuado. Asegrese de que estas opciones aparecen en /etc/login.conf :
nombre_del_idioma:ttulo_cuentas:\ :charset=juego_de_caracteres_MIME :\ :lang=nombre de la locale:\
:tc=default:
As que, si seguimos con nuestro ejemplo anterior que usaba Latin-1, tendra este aspecto:
german:German Users Accounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default:
Modicacin de las clases de sesin con vipw(8) Utilice vipw para aadir nuevos usuarios, y haga que la entrada tenga este aspecto:
usuario:contrasea:1111:11:idioma:0:0:Nombre de usuario:/home/usuario:/bin/sh
400
Captulo 22. Localizacin - Uso y conguracin de I18N/L10N Modicacin de las clases de sesin con with adduser (8) Utilice adduser para aadir nuevos usuarios, y haga lo siguiente:
Establezca defaultclass = idioma en /etc/adduser.conf. Recuerde que en este caso debe introducir una clase default (por omisin) para todos los usuarios de otros idiomas. Una variante alternativa es contestar el idioma indicado cada vez que adduser(8) muestre
Enter login class: default []:
Otra alternativa es utilizar lo siguiente para cada usuario de un idioma diferente al que desee aadir:
# adduser -class
idioma
Modicacin de las clases de sesin con pw(8) Si utiliza pw(8) para aadir nuevos usuarios, llmelo de esta manera:
# pw useradd
nombre_usuario -L idioma
Para aadir el nombre de la locale y el juego de caracteres MIME, simplemente establezca las dos variables de entorno mostradas abajo en los cheros de inicio del intrprete de rdenes /etc/profile y/o /etc/csh.login. Aqu abajo usaremos el idioma alemn como ejemplo: En /etc/profile:
LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET
O en /etc/csh.login:
setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1
Como alternativa, puede aadir las instrucciones anteriores a /usr/share/skel/ dot.profile (similar a lo que se utiliz antes en /etc/profile ), o /usr/share/skel/dot.login (similar a lo que se utiliz antes en /etc/csh.login). Para X11: En $HOME/.xinitrc:
401
O:
setenv LANG de_DE.ISO8859-1
Aqu, el nombre_del_tipo_de_letra se toma del directorio /usr/share/ syscons/fonts, sin el sujo .fnt . Asegrese tambin de congurar los mapas de teclado y pantalla correctos para su juego de caracteres C por medio de sysinstall (/stand/sysinstall en versiones de FreeBSD anteriores a la 5.2). Una vez dentro de sysinstall , seleccione Congure , y despus Console . Como alternativa, puede aadir lo siguiente en /etc/rc.conf:
scrnmap=nombre_del_mapa_de_pantalla keymap=nombre_del_mapa_de_teclado keychange="secuencia nmero_tecla_de_funcin"
Aqu, el nombre_del_mapa_de_pantalla se toma del directorio /usr/share/ syscons/scrnmaps, sin el sujo .scm . Normalmente es necesario un mapa de pantalla (screenmap) con un tipo de letra correspondiente para poder extender de 8 a 9 bits la matriz de caracteres de una tarjeta VGA en un rea pseudogrca, es decir, desplazar las letras fuera de ese rea si el tipo de letra de pantalla usa una columna de 8 bits. Si tiene habilitado el dmon moused por congurar esto en su /etc/ rc.conf:
moused_enable="YES"
entonces estudie la informacin sobre el cursor del ratn del siguiente prrafo. Por omisin, el cursor del ratn del controlador syscons(4) ocupa el intervalo 0xd0-0xd3 del juego de caracteres. Si su idioma usa este intervalo, necesita desplazar el intervalo del cursor fuera de l. En versiones de FreeBSD anteriores a la 5.0, introduzca la siguiente lnea en la conguracin del ncleo:
options SC_MOUSE_CHAR=0x03
402
Captulo 22. Localizacin - Uso y conguracin de I18N/L10N Aqu, el nombre_del_mapa_de_teclado se toma del directorio /usr/share/ syscons/keymaps, sin el sujo .kbd . Si no est seguro de cual mapa de teclado usar, puede usar kbdmap(1) para probar los mapas de teclado sin reiniciar. Normalmente se necesita el keychange para programar las teclas de funcin para que coincidan con el tipo de terminal seleccionado, porque las secuencias de las teclas de funcin no se pueden denir en el mapa de teclado. Asegrese tambin de congurar el tipo de terminal consola correcto en /etc/ttys para todas las entradas ttyv*. Las correspondencias predenidas actualmente son: Juego de caracteres ISO-8859-1 o ISO-8859-15 ISO-8859-2 ISO-8859-7 KOI8-R KOI8-U CP437 (predeterminada en VGA) US-ASCII Tipo de terminal
cons25l1 cons25l2 cons25l7 cons25r cons25u cons25 cons25w
Para los idiomas en caracteres anchos o multibyte, utilice el port correcto de FreeBSD en su directorio /usr/ports/idioma. Algunos ports aparecen como consola mientras que el sistema los ve como una vtty serie, por lo tanto debe reservar sucientes vtty tanto para X11 como la consola pseudoserie. Aqu tiene una lista parcial de aplicaciones para usar otros idiomas en la consola: Idioma Chino tradicional (BIG-5) Japons Coreano Ubicacin
chinese/big5con japanese/kon2-16dot o japanese/mule-freewnn korean/han
22.3.6.2. Introduccin de caracteres no ingleses El protocolo Mtodo de Introduccin X11 (XIM) es un nuevo estndar para todos los clientes X11. Todas las aplicaciones X11 deberan estar escritas como clientes XIM que reciben entradas de servidores XIM. Hay varios
403
Captulo 22. Localizacin - Uso y conguracin de I18N/L10N servidores XIM disponibles para distintos idiomas.
404
En versiones de FreeBSD anteriores a la 5.0, aada la liguiente lnea en el chero de conguracin del ncleo:
options SC_MOUSE_CHAR=0x03
Para cada entrada ttyv* en /etc/ttys, utilice cons25r como el tipo de terminal.
22.5.1.3. Conguracin de la impresora Dado que la mayora de las impresoras con caracteres rusos tienen un cdigo de pgina CP866 en hardware, es necesario un ltro de salida especial para convertir de KOI8-R a CP866. Tal ltro es instalado por omisin como /usr/libexec/lpr/ru/koi2alt. Una entrada de impresora rusa /etc/printcap debera tener este aspecto:
lp|Russian local line printer:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
22.5.1.4. Sistema de cheros MS-DOS y nombres de cheros en ruso La siguiente entrada fstab(5) de ejemplo habilita el soporte para nombres de chero en ruso en los sistemas de cheros MS-DOS montados:
/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0
La opcin -L selecciona el nombre de la locale usada, y -W establece la tabla de conversin de caracteres. Para usar la opcin -W , asegrese de montar /usr antes que la particin MS-DOS, porque las tablas de conversin se ubican en /usr/libdata/msdosfs. Para ms informacin, vea la pgina de manual mount_msdos(8).
405
Captulo 22. Localizacin - Uso y conguracin de I18N/L10N 22.5.1.5. Conguracin de X11 1. Antes haga la conguracin de las locales para la consola como se ha explicado.
Nota: La locale rusa KOI8-R puede no funcionar con versiones antiguas (anteriores a la 3.3) de XFree86. Xorg es ahora la versin predenida del sistema de ventanas X en FreeBSD. Esto no debera ser un problema salvo que est usando una versin antigua de FreeBSD.
2. Si utiliza Xorg, instale el paquete x11-fonts/xorg-fonts-cyrillic. Compruebe la seccin "Files" de su chero /etc/X11/xorg.conf. Se deben aadir las siguientes lneas antes de ninguna otra entrada FontPath :
FontPath FontPath FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
Si utiliza un modo de vdeo de alta resolucin, intercambie las lneas 75 dpi y 100 dpi. 3. Para activar un teclado ruso, aada lo siguiente a la seccin "Keyboard" de su chero XF86Config. Para XFree86 3.X:
XkbLayout "ru" XkbOptions "grp:caps_toggle"
Asegrese tambin de que XkbDisable est desactivado (comentado) all. Para grp:caps_toggle la tecla para pasar entre la codicacin rusa y la latina ser BloqMays . La antigua funcin de BloqMays todava est disponible a travs de May+BloqMays (slamente en modo latino). Para grp:toggle la tecla para pasar entre la codicacin rusa y la latina ser Alt derecha. grp:caps_toggle no funciona en Xorg por alguna razn desconocida. Si en su teclado dispone de teclas Windows , y observa que algunas teclas no alfanumricas estn mapeadas incorrectamente en el modo ruso, aada la siguiente lnea en su chero XF86Config. Para XFree86 3.X:
XkbVariant "winkeys"
406
Vea KOI8-R para X Window (http://koi8.pp.ru/xwin.html) para ms instrucciones sobre la localizacin de aplicaciones X11.
22.5.3. Localizacin al idioma alemn (para todos los idiomas ISO 8859-1)
Slaven Rezic <eserte@cs.tu-berlin.de> ha escrito un tutorial de como usar las diresis en una mquina FreeBSD. El tutorial est disponible en http://www.de.FreeBSD.org/de/umlaute/.
407
23.1. Sinopsis
Pendiente de Traduccin
23.2.2. Stable
Pendiente de Traduccin
408
Comunicaciones serie PPP y PPP sobre Ethernet Correo electrnico Servidores de red Otros aspectos avanzados de red
Estos captulos estn diseados para leerse segn van haciendo falta. No tienen por qu leerse en un determinado orden, ni tiene por qu leerlos todos antes de poder usar FreeBSD en un entorno de red.
Como conectar terminales a su sistema FreeBSD. Como utilizar un modem para marcar a equipos remotos. Como permitir a usuarios remotos entrar a su sistema con un modem. Como arrancar su sistema desde una consola serie.
Saber como congurar e instalar un nuevo kernel (Captulo 8). Entender procesos y permisos UNIX (Captulo 3). Tener acceso al manual tcnico para el hardware serie (modem o tarjeta multipuerto) que le gustara utilizar con FreeBSD.
24.2. Introduccin
24.2.1. Terminologa
bps
Bits por segundo la tasa a la cual los datos son transmitidos DTE
Data Terminal Equipment (Equipo terminal de datos) por ejemplo, su computadora DCE
410
Estndar EIA para hardware de comunicacin serie Cuando se habla de tasa de comunicacin de datos, sta seccin no usa el trmino baud. Baud se reere al nmero de estados de transicin elctricos que pueden realizarse en un periodo de tiempo, mientras que bps (bits por segundo) es el trmino correcto a usar (al menos parece no molestar demasiado a los ms aferrados).
Nota: Conectar Data Set Ready (DSR) y Data Carrier Detect (DCD) intrnamente en la capucha del conector, y entonces a Data Terminal Ready (DTR) en la capucha remota.
24.2.2.1.2. Cables estndard RS-232C Un cable serie estndar pasa todas las seales RS-232C normalmente. Esto es, el pin envo de datos en un extremo va al pin envo de datos en el otro extremo. Este es el tipo de cable a utilizar para conectar un modem a su sistema
411
Captulo 24. Comunicaciones serie FreeBSD, y tambin es apropiado para algunas terminales.
24.2.2.2. Puertos Puertos serie son los dispositivos a travs de los cuales los datos son transferidos entre una computadora FreeBSD y la terminal. Esta seccin describe los tipos de puertos que existen y como son referidos en FreeBSD. 24.2.2.2.1. Tipos de puertos Existen varios tipos de puertos serie. antes de comprar o construir un cable, necesita asegurarse que coincida con los puertos en su terminal y en su sistema FreeBSD. La mayora de las terminales tienen puertos DB25. Computadoras personales, incluyendo PCs corriendo FreeBSD, tienen puertos DB25 o DB9. Si tiene una tarjeta multipuertos serie para su PC, tal vez tenga puertos RJ-12 o RJ-45. Vea la documentacin que acompaa su hardware para las especicaciones sobre el tipo de puerto en uso. Una inspeccin visual del puerto tambin funciona en la mayora de los casos.
24.2.2.2.2. Nombres de puerto En FreeBSD, se accesa cada puerto serie a travs de una entrada en el directorio /dev. Existen dos tipos de entradas:
Puertos de llamada-entrante son llamados /dev/ttydN donde N es el nmero de puerto, iniciando desde cero. Generalmente, los puertos de llamada-entrante se utilizan para terminales. Los puertos de llamada-entrante requieren que la lnea serie especique la seal data carrier detect (DCD) para funcionar correctamente. Puertos de llamada-saliente son llamados /dev/cuaaN . Usualmente no se utilizan los puertos de llamada-saliente para terminales, solo para modems. Puede utilizar el puerto de llamada-saliente si el cable serie o la terminal no soporta la seal de carrier detect.
Si tiene conectada una terminal al primer puerto serie (COM1 en MS-DOS), entonces usar /dev/ttyd0 para referirse a la terminal. Si la terminal est en el segundo puerto serie (tambin conocido como COM2), utilice /dev/ttyd1, y as sucesivamente.
412
Por ejemplo, en un sistema con cuatro puertos serie, stos son los mensajes de arranque del kernel especcos de puerto serie:
sio0 at 0x3f8-0x3ff sio0: type 16550A sio1 at 0x2f8-0x2ff sio1: type 16550A sio2 at 0x3e8-0x3ef sio2: type 16550A sio3 at 0x2e8-0x2ef sio3: type 16550A irq 4 on isa irq 3 on isa irq 5 on isa irq 9 on isa
Si su kernel no reconoce todos sus puertos serie, probablemente necesitar congurar un kernel FreeBSD personalizado para su sistema. Para informacin detallada sobre congurar su kernel, por favor vea Captulo 8. Las lneas de dispositivo relevantes para su chero de conguracin del kernel podrn verse de esta manera, para FreeBSD 4.X:
device device device device sio0 sio1 sio2 sio3 at isa? port IO_COM1 irq 4 at isa? port IO_COM2 irq 3 at isa? port IO_COM3 irq 5 at isa? port IO_COM4 irq 9
Puede comentar o remover completamente lneas de dispositivos que no tenga en el caso de FreeBSD 4.X; para FreeBSD 5.X tiene que editar su chero /boot/device.hints para congurar sus puertos serie. Por favor dirjase a la pgina de manual sio(4) para mayor informacin sobre puertos serie y conguracin de tarjetas multipuertos. Tenga cuidado si est utilizando un chero de conguracin que fu usado anteriomente para una versin diferente de FreeBSD porque las banderas de dispositivo y la sintaxis han cambiado entre versiones.
Nota: port IO_COM1 es una substitucin para port 0x3f8, IO_COM2 es 0x2f8, IO_COM3 es 0x3e8, y IO_COM4 es 0x2e8, las cuales son direcciones de puerto comunes para sus respectivos puertos serie; interrupciones 4,3,5 y 9 son peticiones comunes de lneas de interrupcin. Note tambin que puertos serie regulares no pueden compartir interrupciones en PCs con bus ISA (las tarjetas multipuerto tienen electrnicos que les permiten a los 16550As compartir una o dos lneas de peticiones de interrupcin).
413
Captulo 24. Comunicaciones serie utilizados para bloquear banderas en puertos y prevenir que usuarios o programas cambien ciertos parmetros; vea las pginas de manual termios(4), sio(4), y stty(1) para informacin de las propiedades de terminales, bloqueo e inicializacin de dispositivos y aplicacin de opciones de terminal, respectivamente. 24.2.4.1. Creando cheros de dispositivo especiales
Nota: FreeBSD 5.0 incluye el sistema de cheros devfs(5) el cual crea automticamente nodos de dispositivos segn se necesiten. si est corriendo una versin de FreeBSD con devfs habilitado entonces puede saltarse esta seccin.
Un script de shell llamado MAKEDEV en el directorio /dev administra los cheros especiales de dispositivo. Para utilizar MAKEDEV para crear un chero especial de dispositivo dial-up para COM1 (port 0), cd a /dev y ejecute el comando MAKEDEV ttyd0. De la misma manera, para crear cheros especiales de dispositivo para COM2 (port 1), utilice MAKEDEV ttyd1.
MAKEDEV no crea solamente el chero especial de dispositivo /dev/ttydN tambin crea los nodos /dev/cuaaN , /dev/cuaiaN , /dev/cualaN , /dev/ttyldN , y /dev/ttyidN .
Despues de crear cheros especiales de dispositivo nuevos, asegrese de revisar los permisos en los cheros (especialmente los cheros /dev/cua*) para asegurarse que solamente los usuarios que deben tener acceso a esos cheros especiales de dispositivo puedan leer y escribir en ellos probablemente no desee permitir al usuario promedio utilizar sus modems para marcar al exterior. Los permisos por omisin en los cheros /dev/cua* deberan ser sucientes:
crw-rw---crw-rw---crw-rw---1 uucp 1 uucp 1 uucp dialer dialer dialer 28, 129 Feb 15 14:38 /dev/cuaa1 28, 161 Feb 15 14:38 /dev/cuaia1 28, 193 Feb 15 14:38 /dev/cuala1
Estos permisos permiten al usuario uucp y usuarios en el grupo dialer utilizar dispositivos call-out.
Cuando cambia las propiedades de este dispositivo, las propiedades son efectivas hasta que el dispositivo es cerrado. Cuando es reabierto regresa a las propiedades por omisin. Para realizar cambios al conjunto por omisin, usted puede abrir y ajustar las propiedades del dispositivo de estado inicial . Por ejemplo, para activar el modo CLOCAL, comunicacin de 8 bits y control de ujo XON/XOFF por omisin para ttyd5, tecle:
# stty -f /dev/ttyid5 clocal cs8 ixon ixoff
La inicializacin para todo el sistema de los dispositivos serie es controlada en /etc/rc.serial. Este chero afecta las propiedades por omisin de dispositivos serie.
414
Captulo 24. Comunicaciones serie Para prevenir que ciertas propiedades sean cambiadas por una aplicacin, haga ajustes al dispositivo bloquear estado. Por ejemplo, para connar la velocidad en ttyd5 a 57600 bps, tecle:
# stty -f /dev/ttyld5 57600
Ahora, una aplicacin que abra ttyd5 y trate de cambiar la velocidad del puerto se mantendr con 57600 bps. Naturalmente, debera crear los dispositivos de estado inicial y bloqueo de estado escribible nicamente para la cuenta root .
24.3. Terminales
Contribuido porSean Kelly. Las terminales proveen una manera conveniente y de bajo coste de accesar su sistema FreeBSD cuando no se encuentra en la consola de la computadora o en una red conectada. Esta seccin describe como utilizar terminales con FreeBSD.
Las subsecciones siguientes describen cada tipo. 24.3.1.1. Terminales tontas Terminales tontas son piezas de hardware especializadas que le permiten conectar a computadoras a travs de lneas serie. Son llamadas tontas porque solo tienen poder computacional suciente para desplegar, enviar y recibir texto. No puede ejecutar ningn programa en ellas. Es la computadora a la cual se conectan la que tiene todo el poder para correr editores de texto, compiladores, correo electrnico, juegos, y dems.
415
Captulo 24. Comunicaciones serie Existen cientos de tipos de terminales tontas hechas por muchos fabricantes, incluyendo VT-100 de Digital Equipment Corporation y WY-75 de Wyse. Cualquier tipo funcionar con FreeBSD. Algunas terminales superiores pueden incluso desplegar grcos, pero solo ciertos paquetes de software pueden tomar ventaja de estas funciones avanzadas. Las terminales tontas son populares en ambientes de trabajo donde los trabajadores no necesitan acceso a aplicaciones grcas como las que provee el sistema X Window.
24.3.1.2. PCs actuando como terminales Si una terminal tonta tiene apenas la habilidad para desplegar, enviar y recibir texto, entonces ciertamente cualquier computadora personal de reserva puede ser una terminal tonta. Todo lo que necesita es el cable apropiado y algn software de emulacin de terminal para correr en la computadora. Tal conguracin es popular en hogares. Por ejemplo, si su consorte se encuentra ocupado trabajando en la consola de su sistema FreeBSD, usted puede realizar algn trabajo en modo texto al mismo tiempo desde una computadora personal menos poderosa conectada como una terminal al sistema FreeBSD.
24.3.1.3. Terminales X Las terminales X son el tipo ms sosticado de terminal disponible. En lugar de conectar a un puerto serie, usualmente se conectan a una red como Ethernet. En lugar de ser relegadas a aplicaciones de modo texto pueden desplegar aplicaciones X. Hemos introducido terminales X solo por complementar. Sin embargo, este captulo no cubre instalacin, conguracin o uso de terminales X.
24.3.2. Conguracin
Esta seccin describe lo que necesita para congurar en su sistema FreeBSD y permitirle habilitar sesiones de entrada en una terminal. Asume que ya tiene congurado su kernel para soportar el puerto serie al cual la terminal est conectaday que la tiene conectada. Recuerde del Captulo 12 que el proceso init es responsable del control e inicializacin de todos los procesos al inicio del sistema. Una de las tareas ejecutadas por init es leer el chero /etc/ttys e iniciar un proceso getty en las terminales disponibles. El proceso getty es responsable de leer un nombre de entrada e iniciar el programa login . As, para congurar terminales para su sistema FreeBSD los siguientes pasos deben hacerse como root: 1. 2. 3. 4. 5. Agregue una lnea a /etc/ttys para la entrada en el directorio /dev para el puerto serie si todava no se encuentra ah. Especique que /usr/libexec/getty sea ejecutado en el puerto, y especique el tipo apropiado de getty desde el chero /etc/gettytab . Especique el tipo de terminal por omisin. Ponga el puerto a on. Especique si el puerto debe ser o no seguro.
416
Como un paso opcional, tal vez desee crear un tipo getty personalizado para utilizar en el paso 2 mediante una entrada en /etc/gettytab. Este captulo no explica como realizarlo; por lo que se le exhorta a leer las pginas de manual gettytab(5) y getty(8) para mayor informacin. 24.3.2.1. Agregando una entrada a /etc/ttys El chero /etc/ttys lista todos los puertos en su sistema FreeBSD donde quiere permitir logins. Por ejemplo, la primera consola virtual ttyv0 tiene una entrada en este chero. Puede rmarse en la consola utilizando esta entrada. Este chero tambin contiene entradas para las otras consolas virtuales, puertos serie y pseudo-ttys. Para una terminal conectada por cable, solo liste la entrada /dev del puerto serie sin la parte de /dev (por ejemplo, /dev/ttyv0 debera estar listado como ttyv0). Una instalacin por omisin de FreeBSD incluye un chero /etc/ttys con soporte para los primeros cuatro puertos serie: ttyd0 hasta ttyd3. Si est conectando una terminal a uno de esos puertos, no necesita agregar otra entrada. Ejemplo 24-1. Agregando entradas de terminal a /etc/ttys Suponga que quisiramos conectar dos terminales al sistema: una Wyse-50 y una vieja IBM PC 286 corriendo el software de terminal Procomm emulando una terminal VT-100. Conectamos la Wyse al segundo puerto serie y la 286 al sexto puerto serie (un puerto en una tarjeta multipuerto serie). Las entradas correspondiente en el chero /etc/ttys se veran como esto:
ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
El primer campo normalmente especica el nombre de chero especial de la terminal como es hallado en /dev. El segundo campo es el comando a ejecutar por esta lnea, el cual es usualmente getty(8). getty inicializa y abre la lnea, establece la velocidad, pregunta por un nombre de usuario y entonces ejecuta el programa login(1) . El programa getty acepta un parmetro (opcional) en su lnea de comando, el tipo getty . Un tipo getty congura caractersticas en la lnea de terminal, como tasa de bps y paridad. El programa getty lee estas caractersticas desde el chero /etc/gettytab. El chero /etc/gettytab contiene muchas entradas para lneas de terminal viejas y nuevas. En la mayora de los casos, las entradas que empiezan con el texto std funcionarn para terminales conectadas fsicamente. Estas entradas ignoran la paridad. Existe una entrada std por cada tasa de bps de 110 a 115200. Por supuesto puede agregar sus propias entradas a este chero. La pgina de manual gettytab(5) provee mayor informacin. Al establecer el tipo getty en el chero /etc/ttys, asegrese que las propiedades de comunicaciones en la terminal concuerden. Para nuestro ejemplo, la Wyse-50 no usa paridad y conecta a 38400 bps. La 286 PC no usa paridad y conecta a 19200 bps.
El tercer campo es el tipo de terminal usualmente conectado a esa lnea tty. Para puertos dial-up, unknown o dialup son usados tpicamente en este campo puesto que los usuarios pueden marcar prcticamente con cualquier tipo de terminal o de software. Para terminales conectadas fsicamente, el tipo de terminal no cambia, as que puede poner un tipo de terminal real del chero de base de datos termcap(5) en este campo. Para nuestro ejemplo, la Wyse-50 utiliza el tipo de terminal real mientras que la PC 286 corriendo Procomm ser puesta a emular una VT-100.
417
Captulo 24. Comunicaciones serie El cuarto campo especica si el puerto debe habilitarse. Poniendo on aqu provocar que el proceso init inicie el programa en el segundo campo, getty. Si pone off en este campo, no habr getty, y por consecuencia ningun login en el puerto. El ltimo campo es utilizado para especicar si el puerto es seguro. Marcar un puerto como seguro signica que se confa en l lo suciente para permitir que la cuenta root (o cualquier cuenta con un ID de usuario 0) se rme desde ese puerto. Los puertos inseguros no permiten entradas de root. En un puerto inseguro, los usuarios deben rmarse desde cuentas sin privilegios y entonces utilizar su(1) o un mecanismo similar para acceder a privilegios de superusuario. Es altamente recomendable que utilize insecure incluso para terminales que se encuentran detrs de puertas con llave. Es muy sencillo entrar y usar su si necesita privilegios de superusuario.
24.3.2.2. Forzar init a que relea /etc/ttys Despues de realizar los cambios necesarios al chero /etc/ttys debera mandar una seal SIGHUP (hangup) al proceso init para forzarlo a releer su chero de conguracin. Por ejemplo:
# kill -HUP 1
Nota: init siempre es el primer proceso que corre en un sistema, por lo tanto siempre tendr el PID 1.
Si todo est puesto correctamente, todos los cables en su lugar, y las terminales estn encendidas, entonces un proceso getty debe estar corriendo en cada terminal y debera ver prompts de entrada en sus terminales en este punto.
418
Captulo 24. Comunicaciones serie Debera ver una entrada para la terminal. Por ejemplo, el siguiente desplegado muestra que un getty est corriendo en el segundo puerto serie ttyd1 y est utilizando la entrada std.38400 en /etc/gettytab:
22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1
Si no hay un proceso getty corriendo, asegrese que tiene habilitado el puerto en /etc/ttys. Recuerde tambin ejecutar kill -HUP 1 despues de modicar el chero ttys. Si el proceso getty est corriendo pero la terminal todava no despliega un prompt de login, o si despliega un prompt pero no le permite escribir, su terminal o cable tal vez no soporte inicializacin por hardware. Trate cambiar la entrada en /etc/ttys de std.38400 a 3wire.38400 recuerde correr kill -HUP 1 despues de modicar /etc/ttys. La entrada 3wire es similar a std, pero ignora la inicializacin por harware. Tal vez necesite reducir la tasa de baudios o habilitar control de ujo por software cuando utilice 3wire para prevenir desbordamientos de buffer.
24.3.3.2. Si aparece basura en lugar de un prompt de login Asegrese que la terminal y FreeBSD concuerdan en la tasa de bps y propiedades de paridad. Revise los procesos getty para asegurarse que el tipo correcto de getty est en uso. Si no es as, edite /etc/ttys y ejecute kill -HUP 1.
24.3.3.3. Los caracteres aparecen doble; las contraseas aparecen cuando se escriben Cambie la terminal (o el software de emulacin de terminal) de half duplex o local echo a full duplex.
419
Captulo 24. Comunicaciones serie 24.4.1.1. Modems y cables Si se encuentra utilizando un modem externo, entonces necesitar por supuesto un cable adecuado. Un cable serie estndar RS-232C debe ser suciente mientras todas las seales normales sean cableadas:
Transmitted Data (TD) Received Data (RD) Request to Send (RTS) Clear to Send (CTS) Data Set Ready (DSR) Data Terminal Ready (DTR) Carrier Detect (CD) Signal Ground (SG)
FreeBSD necesita las seales RTS y CTS para control de ujo a velocidades mayores a 2400 bps, la seal CD para detectar cuando una llamada ha sido respondida o la lnea ha sido colgada, y la seal DTR para reiniciar el modem despues de completar una sesin. Algunos cables son hechos sin incluir todas las seales necesarias, as que si tiene problemas, como cuando una sesin no naliza cuando la lnea es colgada, tal vez el problema se deba al cable. Como otros sistemas operativos tipo UNIX, FreeBSD utiliza las seales de hardware para saber cuando una llamada ha sido contestada o una lnea ha sido colgada y poder colgar y reiniciar el modem despues de una llamada. FreeBSD evita enviar comandos al modem o esperar por reportes de estado del modem. Si est familiarizado con la conexin de modems una PC funcionando como BBS, tal ves esto parezca extrao.
Cuando un usuario marca la lnea del modem y el modem conecta, la lnea CD (Carrier Detect) es reportada por el modem. El kernel nota que se ha detectado una portadora y completa la apertura de getty del puerto. getty manda un prompt login: a la velocidad inicial de lnea especicada. getty observa si se reciben caracteres vlidos, y, en una conguracin tpica, si encuentra basura (probablemente debido a que la velocidad de conexin del modem es
420
Captulo 24. Comunicaciones serie diferente a la velocidad de getty), getty trata de ajustar la velocidad de la lnea hasta que recibe caracteres razonables. Despues que el usuario entra su nombre de login, getty ejecuta /usr/bin/login, que completa la entrada preguntando por la contrasea del usuario y entonces inicia el shell del usuario.
24.4.4.1.1. Conguracin de velocidad ja Si est jando la tasa de comunicacin de datos de su modem a una velocidad particular, probablemente no necesitar ningn cambio a /etc/gettytab.
24.4.4.1.2. Conguracin de velocidad concordante Necesitar crear una entrada en /etc/gettytab para darle informacin a getty acerca de las velocidades que desea usar para su modem. Si tiene un modem 2400 bps, puede probablemente utilizar la entrada existente D2400.
421
Si tiene un modem de mayor velocidad, probablemente necesite agregar una entrada en /etc/gettytab; aqu est una entrada que puede utilizar para un modem 14.4 Kbps con una velociad de interfaz mxima de 19.2 Kbps:
# # Additions for a V.32bis Modem # um|V300|High Speed Modem at 300,8-bit:\ :nx=V19200:tc=std.300: un|V1200|High Speed Modem at 1200,8-bit:\ :nx=V300:tc=std.1200: uo|V2400|High Speed Modem at 2400,8-bit:\ :nx=V1200:tc=std.2400: up|V9600|High Speed Modem at 9600,8-bit:\ :nx=V2400:tc=std.9600: uq|V19200|High Speed Modem at 19200,8-bit:\ :nx=V9600:tc=std.19200:
esto resultar en una conexin de 8 bits, sin paridad. El ejemplo de arriba inicia la tasa de comunicaciones a 19.2 Kbps (para conexiones V.32bis), entonces cicla a travs de 9600 bps (para V.32), 2400 bps, 1200 bps, 300 bps, y de vuelta a 19.2 Kbps. El ciclado de la tasa de comunicaciones es implementado con la capacidad nx= (siguiente tabla). Cada una de las lneas usa una entrada tc= (continuacin de tabla) para recoger el resto de las propiedades estndar para una tasa de datos en particular. Si tiene un modem 28.8 Kbps y/o quiere tomar ventaja de la compresin en un modem 14.4 Kbps, necesita utilizar una tasa de comunicaciones mayor a 19.2 Kbps. Aqu hay un ejemplo de una entrada gettytab iniciando a 57.6 Kbps:
# # Additions for a V.32bis or V.34 Modem # Starting at 57.6 Kbps # vm|VH300|Very High Speed Modem at 300,8-bit:\ :nx=VH57600:tc=std.300: vn|VH1200|Very High Speed Modem at 1200,8-bit:\ :nx=VH300:tc=std.1200: vo|VH2400|Very High Speed Modem at 2400,8-bit:\ :nx=VH1200:tc=std.2400: vp|VH9600|Very High Speed Modem at 9600,8-bit:\ :nx=VH2400:tc=std.9600: vq|VH57600|Very High Speed Modem at 57600,8-bit:\ :nx=VH9600:tc=std.57600:
422
Captulo 24. Comunicaciones serie Si tiene un CPU lento o un sistema muy cargado y no tiene puertos serie basados en 16550A, tal vez reciba errores en sio silo a 57.6 Kbps.
24.4.4.2. /etc/ttys La conguracin del chero /etc/ttys fu cubierto en Ejemplo 24-1. La conguracin para modems es similar pero debemos pasar un argumento diferente a getty y especicar un tipo diferente de terminal. El formato general tanto para conguracin de velocidad ja y velocidad concordante es:
ttyd0 "/usr/libexec/getty xxx " dialup on
El primer componente de la lnea de arriba es el chero de dispositivo especial para esta entrada ttyd0 signica que /dev/ttyd0 es el chero que getty estar vigilando. El segundo componente "/usr/libexec/getty xxx " (xxx ser reemplazado por la capacidad inicial de gettytab) es el proceso que init ejecutar en el dispositivo. El tercer componente, dialup, es el tipo de terminal por omisin. El cuarto parmetro, on, le indica a init que la lnea es operacional. Puede existir un quinto parmetro, secure, pero solo debera ser utilizado para terminales que estn fsicamente seguras (como la consola del sistema). El tipo de terminal por omisin (dialup en el ejemplo de arriba) puede depender de preferencias locales. dialup es el tipo de terminal tradicional por omisin en lneas dial-up para que los usuarios puedan personalizar sus scripts de login para reconocer cuando la terminal es dialup y ajustar sus tipos de terminal automticamente. De toda maneras, el autor encuentra ms sencillo especicar en su sitio vt102 como el tipo de terminal por omisin, puesto que los usuarios solo utilizan emulacin VT102 en sus sistemas remotos. Despues de realizar los cambios a /etc/ttys, puede enviar al proceso init una seal HUP para que relea el chero. Puede utilizar el comando
# kill -HUP 1
para mandar la seal. Si esta es su primera vez instalando el sistema, tal vez quiera esperar hasta que su(s) modem(s) estn congurados y conectados correctamente antes de sealizar a init. 24.4.4.2.1. Conguracin de velocidad ja Para una conguracin de velocidad ja, su entrada ttys necesita tener una entrada de velocidad ja provista en getty. Para un modem cuya velocidad de puerto est jada en 19.2 Kbps, la entrada ttys podra verse as:
ttyd0 "/usr/libexec/getty std.19200" dialup on
Si su modem est jado a un velocidad de datos diferente, sustituya el valor apropiado por std.velocidad en lugar de std.19200. Asegrese de usar un tipo vlido listado en /etc/gettytab.
24.4.4.2.2. Conguracin de velocidad concordante En una conguracin de velocidad concordante su entrada ttys necesita referenciar el inicio de la entrada auto-baud (sic) en /etc/gettytab. Por ejemplo, si agreg la entrada sugerida arriba para un modem con velocidad concordante que inicia a 19.2 Kbps (la entrada gettytab conteniendo el punto de inicio V19200), su entrada ttys podra verse como esta:
ttyd0 "/usr/libexec/getty V19200" dialup on
423
Captulo 24. Comunicaciones serie 24.4.4.3. /etc/rc.serial Modems de alta velocidad, como V.32, V.32bis, y V.34, necesitan usar control de ujo por hardware (RTS/CTS). Puede agregar comandos stty a /etc/rc.serial para activar la bandera de control de ujo por hardware en el kernel de FreeBSD para los puertos del modem. Por ejemplo para activar la bandera termios crtscts de dispositivos de inicializacin dial-in y dial-out en el puerto serie #1 (COM2), las siguientes lneas pueden agregarse a /etc/rc.serial:
# Serial port initial configuration stty -f /dev/ttyid1 crtscts stty -f /dev/cuaia1 crtscts
CD activado cuando est conectado DTR activado para operacin; tirar DTR cuelga la lnea y reinicia el modem CTS control de ujo de datos transmitidos Deshabilitar control de ujo XON/XOFF RTS control de ujo de datos recibidos Modo silencioso (sin cdigos resultantes) Sin eco de comandos
Por favor lea la documentacin de su modem para saber que comandos y/o switches DIP necesita proporcionarle. Pro ejemplo, para activar los parmetros de arriba en un modem U.S. Robotics Sportster 14,400 externo, uno podra dar estos comandos al modem:
ATZ AT&C1&D2&H1&I0&R2&W
Tal vez quiera tambin tomar esta oportunidad para ajustar otras propiedades en el modem, como si utilizar compresin V.42bis y/o MNP5. El modem U.S. Robotics Sportster 14,400 externo tambin posee switches DIP que necesitan activarse; para otros modems, tal vez pueda utilizar estas propiedades como un ejemplo:
Switch 1: ARRIBA DTR Normal Switch 2: N/A (Cdigos resultantes verbales/Cdigos resultantes numricos) Switch 3: ARRIBA Suprimir cdigos resultantes Switch 4: ABAJO No eco, comandos ofine
424
Switch 5: ARRIBA Auto respuesta Switch 6: ARRIBA Deteccin de seal Normal Switch 7: ARRIBA Cargar valores NVRAM por omisin Switch 8: N/A (Modo inteligente/Modo tonto)
Cdigos resultantes deberan ser deshabilitados o suprimidos para modems dial-up para evitar problemas que pueden ocurrir si getty erroneamente ofrece un prompt login: a un modem que se encuentra en modo de comandos y el modem hace eco del comando o regresa un cdigo resultante. Esta secuencia puede resultar en una conversacin larga y tonta entre getty y el modem. 24.4.5.1. Conguracin de velocidad ja Para una conguracin de velocidad ja necesitar congurar el modem para mantener una tasa de datos constante modem-a-computadora independiente de la tasa de comunicaciones. En un modem U.S. Robotics Sportster 14,400 externo estos comandos jarn la tasa de datos modem-a-computadora a la velocidad utilizada para pasar los comandos:
ATZ AT&B1&W
24.4.5.2. Conguracin de velocidad concordante Para una conguracin de velocidad variable necesitar congurar su modem para ajustar la tasa de datos de su puerto serie para que coincida con la tasa de llamada entrante. En un modem U.S. Robotics Sportster 14,400 externo estos comandos jarn la tasa de correccin de errores de datos a la velocidad usada para pasar los comandos, pero le permite a la tasa del puerto serie variar para conexiones que no corrigen errores:
ATZ AT&B2&W
24.4.5.3. Revisando la conguracin del modem La mayora de los modems de alta velocidad brindan comandos para ver los parmetros actuales de operacin del modem en un modo entendible para humanos. En el modem U.S. Robotics Sportster 14,400 externo, el comando ATI5 despliega los parmetros que estn almacenados en la RAM no volatil. Para ver los parmetros reales de operacin del modem (inuenciado por los parmetros de los switches DIP del modem), utilice el comando ATZ y entonces ATI4. Si tiene una marca diferente de modem, revise el manual de su modem para ver como checar doblemente los parmetros de conguracin de su modem.
425
Captulo 24. Comunicaciones serie 24.4.6.1. Revisando el sistema FreeBSD Conecte su modem a su sistema FreeBSD, arranque el sistema, y, si su modem tiene luces de indicacin de estado, mire si el indicador DTR del modem enciende cuando el prompt login: aparece en la consola del sistema si enciende, eso debera signicar que FreeBSD ha iniciado un proceso getty en el puerto de comunicaciones apropiado y est esperando a que el modem acepte la llamada. Si el indicador DTR no enciende, entre al sistema FreeBSD a travs de la consola y ponga un ps ax para ver si FreeBSD est tratando de correr un proceso getty en el puerto correcto. Debera ver lneas como estas entre los procesos desplegados:
114 ?? 115 ?? I I 0:00.10 /usr/libexec/getty V19200 ttyd0 0:00.10 /usr/libexec/getty V19200 ttyd1
y el modem no ha aceptado una llamada todava, esto signica que getty ha completado su apertura en el puerto de comunicaciones. Esto puede indicar un problema con el cableado o un modem mal congurado, debido a que getty no podra abrir el puerto de comunicaciones hasta que un CD (deteccin de seal) sea armado por el modem. si no ve ningn proceso getty esperando para abrir el puerto ttydN deseado, revise de nuevo sus entradas en /etc/ttys para ver si existe algn error ah. Tambin revise el chero de log /var/log/messages para ver si existe algn mensaje de init o de getty relacionados a cualquier problema. Si existe cualquier mensaje, revise nuevamente los cheros de conguracin /etc/ttys y /etc/gettytab, as como los cheros especiales de dispositivo /dev/ttydN, por cualquier error, entradas faltantes, o cheros especiales de dispositivo faltantes.
24.4.6.2. Trate de llamar Trate de llamar al sistema; asegrese de usar 8 bits, sin paridad, y 1 bit de parada en el sistema remoto. Si no obtiene un prompt inmediatamente, o recibe basura, trate presionando Enter una vez por segundo. Si continua sin ver un prompt de login: despues de un tiempo, trate enviando un BREAK. Si est usando un modem de alta velocidad para realizar la marcacin, trate marcando de nuevo despues de jar la velociad de interfaz del modem (por medio de AT&B1 en un modem U.S. Robotics Sportster, por ejemplo). Si todava no puede obtener un prompt de login:, revise /etc/gettytab de nuevo y revise nuevamente que
El nombre de capacidad inicial especicado en /etc/ttys para la lnea coincida con un nombre de una capacidad en /etc/gettytab Cada entrada nx= coincida con otro nombre de capacidad de gettytab Cada entrada tc= coincida con otro nombre de capacidad de gettytab
Si marca pero el modem en el sistema FreeBSD no contesta, asegrese que el modem est congurado para contestar el telfono cuando DTR sea detectado. Si el modem parece estar congurado correctamente, verique que DTR sea detectado revisando las luces indicadoras del modem (si tiene alguna). Si ha revisado todo varias veces y todava no funciona, tome un descanso y regrese a eso depues. Si todava continua sin funcionar, tal vez puede mandar un correo electrnico a lista de correo para preguntas generales sobre FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) describiendo su modem y su problema, y las buenas personas en la lista tratarn de ayudarle.
426
Utilice la tasa ms alta de bps que su modem soporte en la capacidad br. Entonces, escriba tip cuaa0 y estar conectado a su modem. Si no existe un chero /dev/cuaa0 en su sistema, haga esto:
# cd /dev # sh MAKEDEV cuaa0
line es el puerto serie (ejem./dev/cuaa0) y speed es la velocidad (ejem.57600). Cuando termine de meter los
427
y escriba:
# cu 5551234 -s 115200
24.5.5. Tengo que teclear la tasa de bps cada vez que haga eso?
Ponga una entrada para tip1200 o cu1200, pero utilice cualquier tasa bps que sea apropiada con la capacidad br. tip piensa que una buena opcin por omisin es 1200 bps es por eso que busca una entrada tip1200. Aunque no tiene que usar 1200 bps.
Le permitir teclear tip pain o tip muffin para conectar a los equipos pain o mufn, y tip deep13 para accesar al servidor de terminales.
428
tip tratar cada uno en el orden listado, entonces se rendir. Si quiere seguir tratando, ejecute tip en un ciclo while.
24.5.8. Porqu tengo que presionar Ctrl+P dos veces para mandar un Ctrl+P ?
Ctrl+P es el caracter de forzado por omisin, usado para decirle a tip que el siguiente caracter es un dato literal. Puede establecer el caracter de forzado a cualquier otro caracter con el escape ~s, el cual signica establecer una variable. Escriba ~sforce=single-char seguido por una nueva lnea. single-char es cualquier caracter. Si no especica single-char , entonces el caracter de forzado es el caracter nulo, el cual puede obtener tecleando Ctrl+2 o Ctrl+Espacio. Un bun valor para single-char es Shift+Ctrl+6, es cual solamente es usado en algunos servidores de terminales. Puede hacer que el caracter de forzado sea cualquiera que usted quiera especicando lo siguiente en su chero $HOME/.tiprc:
force=<single-char>
El ^^ es Shift+Ctrl+6.
429
~t chero-remoto [chero-local]
No existe revisin de errores, as que probablemente debera usar otro protocolo, como zmodem.
24.6.1. Introduccin
FreeBSD tiene la habilidad de arrancar en un sistema con solo una terminal tonta como consola. Tal conguracin podra ser til para dos clases de gente: administradores de sistema que quieran instalar FreeBSD en mquinas que no tienen teclado o monitor conectado, y desarrolladores que quieran corregir errores en el kernel o controladores de dispositivos. Como se describe en Captulo 12, FreeBSD emplea un sistema de arranque de tres estados. Los primeros dos estados se encuentran en el cdigo del bloque de arranque el cual es almacenado al principio del slice en el disco de arranque. El bloque de arranque entonces cargar y ejecutar el cargador de arranque (/boot/loader) como la tercera etapa de cdigo. Para poder congurar la consola serie debe congurar el cdigo del bloque de arranque, el cdigo del cargador de arranque y el kernel.
430
3. 4.
Edite /etc/ttys y cambie dialup a vt100 para la entrada ttyd0. De otra manera una contrasea no ser requerida para conectar por medio de la consola serie, resultando en un agujero de seguridad potencial. Reinicie el sistema para ver si los cambios tuvieron efecto.
Si una conguracin diferente es requerida, una explicacin mas detallada existe en Seccin 24.6.3.
Nota: Si su sistema tiene un ratn PS/2 es muy probable que tambin tenga que desconectar su ratn junto con el teclado. Esto se debe a que los ratones PS/2 comparten algn hardware con el teclado y dejandolo conectado puede ocasionar que el sistema piense que el teclado sigue conectado. Se dice que un sistema Gateway 2000 Pentium 90 MHz con un AMI BIOS se comporta de esta manera. En general, esto no representa un problema puesto que el ratn no es muy til sin el teclado de todas maneras.
3.
Conecte una terminal tonta a COM1 (sio0). Si no tiene una terminal tonta, puede utilizar una PC/XT vieja con un programa de modem, o el puerto serie en otro equipo UNIX. Si no tiene un COM1 (sio0), consiga uno. En este momento, no existe manera de seleccionar un puerto diferente a COM1 para los bloques de arranque sin recompilar los bloques de arranque. Si ya est utilizando COM1 para otro dispositivo, necesitar remover temporalmente ese dispositivo e instalar un nuevo bloque de arranque y kernel una vez que tenga a FreeBSD arriba y funcionando. (Se asume que COM1 estar disponible en un chero/computadora/servidor de terminales de todas maneras; si realmente necesita COM1 para
431
Captulo 24. Comunicaciones serie algo ms (y no puede cambiar ese algo a COM2 (sio1)), entonces probablemente no debera de molestarse con todo esto en primer lugar.) 4. Asegrese de que el chero de conguracin de su kernel tenga las banderas apropiadas activadas para COM1 (sio0). Las banderas relevantes son:
0x10
Habilita el soporte de consola para esta unidad. Las otras banderas de consola son ignoradas a menos que sta est activada. Actualmente, al menos una unidad puede tener soporte de consola; la primera (en orden de conguracin) con esta bandera activada es preferida. Esta opcin por si sola no har del puerto serie una consola. Active la siguiente bandera o utilice la opcin -h descrita abajo, junto con esta bandera.
0x20
Obliga a esta unidad a ser la consola (a menos que exista otra consola de mayor prioridad), sin importar la opcin -h discutida abajo. Esta bandera reemplaza la opcin COMCONSOLE en las versiones 2.X de FreeBSD. La bandera 0x20 debe ser utilizada junto con la bandera 0x10.
0x40
Reserva esta unidad (en conjunto con 0x10) y hace esta unidad no disponible para acceso normal. No debera activar esta bandera en la unidad de puerto serie la cual desee utilizar como la consola serie. El nico uso de esta bandera es designar la unidad para coreccin de errore remota del kernel. Revise El manual del desarrollador para mayor informacin sobre correccin de errores remotamente.
Nota: En FreeBSD 4.0 o posterior la semntica de la bandera 0x40 es ligeramente diferente y existe otra bandera para especicar un puerto serie para correccin de errores remotamente.
Ejemplo:
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
Vea la pgina de manual sio(4) para ms detalles. Si las banderas no fueron activadas, necesita correr UserCong (en una consola diferente) o recompilar el kernel. 5. Cree boot.config en el directorio raz de la particin a del disco de arranque. Este chero instruir al cdigo del bloque de arranque como le gustara arrancar el sistema. Para activar la consola serie, necesita una o ms de las siguientes opciones si quiere opciones mltiples inclyalas todas en la misma lnea:
-h
Cambia entre consola interna y serie. Puede usar esto para cambiar los dispositivos de consola. Por ejemplo, si arranca desde la consola interna (video), puede utilizar -h para dirigir el cargador de arranque y el kernel a que usen el puerto serie como su dispositivo de consola. Alternativamente, si arranca desde el puerto serie, puede utilizar -h para decirle al cargador de arranque y al kernel que usen el video como consola.
432
Cambia entre conguracin de consola simple y dual. En la conguracin simple la consola ser ya sea la consola interna (video) o el puerto serie, dependiendo del estado de la opcin -h de arriba. En la conguracin de consola dual, el video y el puerto serie se convertirn en la consola al mismo tiempo, sin importar del estado de la opcin -h. De todas maneras, note que la conguracin de consola dual toma efecto solamente mientras el bloque de arranca est corriendo. Una vez que el cargador de arranque toma el control, la consola especicada por la opcin -h se convierte en la nica consola.
-P
Hace que el bloque de arranque busque el teclado. Si no se encuentra un teclado, la opcin -D y -h son activadas automtivamente.
Nota: Debido a problemas de espacio en la versin actual del bloque de arranque, la opcin -P es capaz de detectar unicamente teclados extendidos. Teclados con menos de 101 teclas (y carentes de teclas F11 y F12) no pueden ser detectados. Algunos teclados en laptops puede que no sean correctamente encontrados debido a esta limitacin. Si este es el caso con su sistema, debe abandonar el uso de la opcin -P. Desafortundamente no hay una solucin para este problema.
Utilice ya sea la opcin -P para seleccionar la consola automticamente, o la opcin -h para activar la consola serie. Puede incluir otras opciones descritas en boot(8) tambin. Las opciones, excepto por -P, sern pasadas al cargador de arranque (/boot/loader). El cargador de arranque determinar si el video interno o el puerto serie debera convertirse en la consola examinando el estado de la opcin -h solamente. Esto signica que si especica la opcin -D pero no la opcin -h en /boot.config, puede utilizar el puerto serie como consola solamente durante el bloque de arranque; el cargador de arranque usar el video interno como consola. 6. Arranque la mquina. Cuando inicia su equipo FreeBSD, los bloques de arranque mostrarn los contenidos de /boot.config a la consola. Por ejemplo:
/boot.config: -P Keyboard: no
La segunda lnea aparece solamente si pone -P en /boot.config e indica la presencia/ausencia del teclado. Estos mensajes van a la consola serie o a la interna, o a ambas, dependiendo de la opcin en /boot.config. Opciones ninguna
-h -D -Dh -P, teclado presente -P, teclado ausente
Mensaje va a consola interna consola serie consola serie e interna consola serie e interna consola interna consola serie
433
Captulo 24. Comunicaciones serie Despues de los mensajes de arriba, existir una pausa pequea antes que los bloques de arranque continuen cargando el cargador de arranque y antes de que cualquier mensaje posterior sea impreso en la consola. Bajo ciertas circunstancias, no necesita interrumpir los bloques de arranque, pero tal vez quiera hacerlo para asegurarse que las cosas estn conguradas corrctamente. Presione cualquier tecla, diferente a Enter, en la consola para interrumpir el proceso de arranque. Los bloques de arranque entonces esperarn una entrada para determinar como continuar. Debe ver algo como esto:
>> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot:
Verique que el mensaje de arriba aparece en la consola serie o en la interna o en ambas, de acuerdo a las opciones que puso en /boot.config. Si el mensaje aparece en la consola correcta, presione Enter para continuar el proceso de arranque. Si quiere usar la consola serie pero no ve el prompt en la terminal serie, algo est mal con su conguracin. Mientras tanto, entre -h y presione Enter/Return (si es posible) para decirle al bloque de arranque (y entonces al cargador de arranque y al kernel) que elija el puerto serie como consola. Una vez que el sistema arranque, regrese y revise que fu lo que estuvo mal. Despues que el cargador de arranque ha cargado y usted se encuentra en la tercera etapa del proceso de arranque todava puede cambiar entre la consola interna y la consola serie activando las variables de entorno apropiadas en el cargador de arranque. Vea Seccin 24.6.6.
24.6.4. Resumen
aqu est el resumen de varias conguraciones discutidas en esta seccin y la consola seleccionada eventualmente. 24.6.4.1. Caso 1: Activ las banderas a 0x10 para sio0
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
Consola durante bloques de arranque interna serie serie e interna serie e interna interna serie e interna
Consola durante cargador de arranque interna serie interna serie interna serie
434
Consola durante bloques de arranque interna serie serie e interna serie e interna interna serie e interna
Consola durante cargador de arranque interna serie interna serie interna serie
Vea Seccin 24.6.5.2 para instrucciones detalladas sonre construir e instalar nuevos bloques de arranque. Si la consola serie est congurada de alguna otra manera que arrancando con -h, o si la consola serie usada por el kernel es diferente de la usada por los bloques de arranque, entonces tambin debe agregar la siguiente opcin al chero de conguracin del kernel y compilar un nuevo kernel:
options CONSPEED=19200
24.6.5.2. Usando puertos serie para consola diferentes a sio0 Utilizar un puerto serie diferente a sio0 como consola requiere cierta recompilacin. Si quiere usar otro puerto serie por la razn que sea, recompile los bloques de arranque, el cargador de arranque y el kernel como sigue. 1. 2. Consiga las fuentes del kernel. (Vea Captulo 23) Edite /etc/make.conf y ponga BOOT_COMCONSOLE_PORT a la direccin del puerto que quiera usar (0x3F8, 0x2F8, 0x3E8 o 0x2E8). Solamente de sio0 hasta sio3 (COM1 hasta COM4) pueden usarse; tarjetas multipuertos serie no funcionarn. No se necesita especicar interrupcin. Cree un chero personalizado de conguracin de kernel y agrege las banderas apropiadas para el puerto serie que desee utilizar. Por ejemplo, si desea hacer de sio1 (COM2) la consola:
device sio1 at isa? port IO_COM2 flags 0x10 irq 3
3.
o
device sio1 at isa? port IO_COM2 flags 0x30 irq 3
Las banderas de consola para otros puertos serie no deben activarse. 4. Recompile e instale los bloques de arranque y el cargador de arranque:
435
5. 6.
Reconstruya e instale el kernel. Escriba los bloques de arranque al disco de arranque con disklabel(8) y arranque desde el nuevo kernel.
24.6.5.3. Accesando DDB Debugger desde la lnea serie Si desea entrar al modo kernel debugger desde una consola serie (til para diagnsticos remotos, !pero tambin peligroso si genera un BREAK ilegtimo en el puerto serie!) entonces debe compilar con las siguientes opciones:
options BREAK_TO_DEBUGGER options DDB
24.6.5.4. Obteniendo un prompt de login en la consola serie Aunque esto no es requerido, tal vez quiera obtener un prompt de login a travs de una lnea serie, ahora que puede ver los mensajes de arranque y puede entrar a una sesin en modo kernel debug a travs de la consola serie. Aqu est como hacerlo. Abra el chero /etc/ttys con un editor y localice las lneas:
ttyd0 ttyd1 ttyd2 ttyd3 "/usr/libexec/getty "/usr/libexec/getty "/usr/libexec/getty "/usr/libexec/getty std.9600" std.9600" std.9600" std.9600" unknown unknown unknown unknown off off off off secure secure secure secure
ttyd0 hasta ttyd3 corresponde a COM1 hasta COM4. Cambie off a on para el puerto deseado. Si ha cambiado la velocidad del puerto serie, necesita cambiar std.9600 para que concuerde con los parmetros actuales, ej. std.19200.
Tal vez tambien desee cambiar el tipo de terminal de unknown al tipo actual de su terminal serie. Despues de editar el chero, debe hacer un kill -HUP 1 para que este cambio surta efecto.
436
Esto tendr efecto sin importar las opciones del bloque de arranque discutidas en la seccin previa. Es mejor que ponga la lnea de arriba como la primera lnea en /boot/loader.rc para ver los mensajes de arranque en la consola serie tan pronto como sea posible. De igual manera, puede especicar la consola interna como:
set console="vidconsole"
Si no activa la variable de entorno console, el cargador de arranque, y por consecuencia el kernel, utilizarn cualquier consola que est indicada por la opcin -h en el bloque de arranque. En versiones 3.2 o posteriores, puede especicar la consola en /boot/loader.conf.local o /boot/loader.conf, en lugar de /boot/loader.rc. En este mtodo su /boot/loader.rc debe verse como:
include /boot/loader.4th start
o
console=vidconsole
24.6.6.2. Utilizando un puerto serie para la consola diferente a sio0 Necesita recompilar el cargador de arranque para usar un puerto serie diferente a sio0 para la consola serie. Siga el procedimiento descrito en Seccin 24.6.5.2.
24.6.7. Advertencias
La idea aqu es permitir a las personas congurar servidores dedicados que no requieran hardware de grcos o teclados conectados. Desafortundamente, mientras la mayora de los sistemas le permitirn arrancar sin un teclado, existen bastantes que no le permitirn arrancar sin un adaptador de grcos. Mquinas con BIOS AMI pueden congurarse para arrancar sin adaptadores de grcos instalados cambiando simplemente la opcin graphics adapter en la conguracin del CMOS a Not installed. De cualquier manera, muchas mquinas no soportan esta opcin y se negarn a arrancar si no tiene algn hardware de grcos instalado en el sistema. Con estas mquinas, debe dejar algn tipo de tarjeta grca instalada, (incluso si
437
Captulo 24. Comunicaciones serie solamente es una tarjeta mono barata) aunque no tendr que conectarle un monitor. Tambin puede tratar instalando un BIOS AMI.
438
25.1. Sinopsis
FreeBSD cuenta con un gran numero de formas para conectar una computadora a otra. Para establecer una red o una coneccin a Internet por medio de un mdem, o bien, permitir a otras computadoras conectarse por medio de este, se requiere del uso de PPP o SLIP. Este captulo describe en detalle como congurar los servicios de comunicacin para llevar esto a cabo. Una vez que haya leido este captulo, usted sabr:
Como congurar User PPP. Como congurar Kernel PPP. Como congurar PPPoE (PPP over Ethernet*). Como congurar PPPoA (PPP over ATM*). Como instalar y congurar un cliente y servidor SLIP.
N. de T.: En estricto sentido esto se reere a contar con la conexin por medio de un dispositivo Ethernet, o bien ATM, pero debido a que usted encontrar estos metodos en su sistema, como PPPoE o bien PPPoA, se han dejado los conceptos literales del documento original. Espero que no sea un problema. Antes de leer este captulo, usted debiese:
Estar familiarizado con la terminologa bsica de redes. Comprender lo bsico y el propsito de una coneccin por mdem SLIP y/o PPP.
Puede ser que usted se pregunte cual es la principal diferencia entre User PPP y kernel PPP. La respuesta es sencilla; el mtodo User PPP procesa la entrada y salida de datos en userland (ver nota siguiente) en lugar de hacerlo en el kernel. Esto es algo desgastante, en trminos del manejo de datos entre userland y el kernel, pero permite, por mucho, un mejor desempeo e implementacin de PPP. User PPP utiliza el dispositivo tun para comunicarse con el mundo exterior, mientras que kernelppp, utiliza el dispositivo ppp. En el desarrollo de este captulo, se har referencia a User PPP, simplemente como ppp, a menos de que sea necesaria hacer una distincin entre este y otro software de PPP, como es el caso de pppd. As mismo, si en el desarrollo del captulo no se seala lo contrario, todos los comandos explicados, debern ser ejecutados como root. N. de T. : Cuando se habla de "userland" se hace referencia a todo aquello que *no* forma parte del kernel y que en el caso de cdigo de programa, se ejecuta en modo usuario, ya que el cdigo del kernel se ejecuta en modo kernel, supervisor, o bien en modo privilegiado de ejecucin. En lo sucesivo este trmino ser utilizado tal cual.
439
Una cuenta activa con un Proveedor del Servicio de Internet (ISPpor sus siglas en ingles), que usted utliza para conectarse.
Adicionalmente, un mdem o algn otro dispositivo, conectado a su sistema, y congurado correctamente, que le permite realizar la conexin con su ISP. El nmero telefnico de su proveedor.
Su nombre de usuario y contrasea. (Ya sea un nombre de usuario y/o contrasea estilo UNIX, o bien para uso por medio de PAP o CHAP)
La direccin IP de uno o ms servidores de nombres (DNS). Normalmente, estos sern provistos por su proveedor de Internet. Si su proveedor no le ha dado esta informacin, puede utilizar la opcin enable dns en su chero ppp.conf, para indicarle a ppp que congure el DNS por usted. Esta caracterstica depende del sistema de negociacin de DNS que mantenga su proveedor de Internet. La siguiente informacin puede ser que haya sido provista por su proveedor de servicios de internet, pero no es completamente necesaria:
La direccin IP del gateway (pasarela de salida) de su PSI. El gateway es la mquina a la cual usted se conectar y ser la ruta por default. Si usted no cuenta con esta informacin, puede inventar uno y al intentar conectarse, el servidor de su PSI, este nos indicar cual es el valor correcto. Esta direccin IP, es referida por ppp como HISADDR.
La mascara de red (netmask) que debe utilizar. Si su PSI no le ha provisto de una, puede utilizar sin problema 255.255.255.255.
Si su PSI, le ha provisto de una direccin de IP esttica y un nombre de host, puede capturarla. De otra forma podemos dejar que el servidor asigne cualquier IP que corresponda. Si usted no cuenta con alguna de la informacin que hemos comentado, le recomendamos contactar con su PSI para requerirla.
Nota: En el transcurso de la presente seccin, algunos ejemplos muestran el contenido de archivos de conguracin los cuales presentan una numeracin. Estos nmeros sirven como ayuda y referencia a cada
440
25.2.1.2. Preparando el Kernel Como se comento anteriormente, la aplicacin ppp utiliza el dispositivo tun. Si este dispositivo no ha sido compilado dentro del kernel, ppp lo cargar como mdulo cuando sea requerido. El dispositivo tun es dinmico, de tal forma que se generara de acuerdo a la demanda que tenga (usted no esta limitado por el kernel).
Nota: Vale la pena hacer notar que el controlador tun, crea los dispositivos de acuerdo a sus necesidades, por lo que el comando ifconfig -a, no necesariamente mostrar los dispositivos tun.
25.2.1.3. Vericando el dispositivo tun Bajo circunstancias normales, la mayora de los usuarios slo utilizaran un dispositivo tun (/dev/tun0). En lo sucesivo podemos hacer referencia a tun0 con la expresin tunN donde N es el nmero que corresponde en su sistema. Para instalaciones de FreeBSD que no tienen el habilitado el DEVFS la existencia de tun0 debe ser vericada (esto no es necesario si se cuenta habilitada la opcin DEVFS ya que los nodos de dispositivos sen creados en funcin a las necesidades). La forma ms sencilla de vericar si el dispositivo tun0 se encuentra congurado correctamente, es la de rehacer el dispositivo. Para hacer esto simplemente siga los siguientes pasos:
# cd /dev # sh MAKEDEV tun0
Si usted necesita 16 dispositivos tun en su kernel, deber crearlos. Esto puede hacerse de la siguiente manera:
# cd /dev # sh MAKEDEV tun15
25.2.1.4. Conguracin de la Resolucin de Nombres La resolucin es la parte del sistema que busca una direccin IP en los nombres de servidores (host) y viceversa. Puede ser congurado para que busque en "mapas" que describen la IP del servidor en uno de dos lugares, el primero es un archivo llamado /etc/hosts. Lea hosts(5) para ms informacin al respecto. El segundo es el Servicio de Nombres de Dominio de Internet (DNS-Internet Domain Name Service), el cual es una base de datos de distribucin. Para mayor informacin con respecto a los DNS, referirse a dns. La resolucin de nombres es un sistema que por medio de llamadas, realiza el mapeo de nombres, pero es necesario inidicarle donde debe buscar la informacin. Para versiones de FreeBSD anteriores a la 5.0, esto es hecho al editar el archivo /etc/host.conf. La versin 5.0 de FreeBSD utiliza el archivo /etc/nsswitch.conf.
441
Captulo 25. PPP y SLIP 25.2.1.4.1. Edicin del archivo /etc/host.conf Para versiones de FreeBSD anteriores a la 5.0, este archivo debe contener las siguientes dos lneas (en este orden):
hosts bind
Esto le indica a la resolucin que busque en primer trmino en el archivo /etc/hosts, y posteriormente en el DNS, si el nombre no fu localizado
25.2.1.4.2. Editando el archivo /etc/nsswitch.conf Para versiones de FreeBSD 5.0 y posteriores, este archivo debe contener, al menos, la siguiente lnea:
hosts: files, dns
Esto le indica a la resolucin de nombres, que busque en primer lugar en el archivo /etc/hosts, y en caso de que el nombre no haya sido localizado, busque en el DNS.
25.2.1.4.3. Editando el archivo /etc/hosts Este archivo puede contener direcciones IP, as como el nombre de las mquinas de su red local. Como mnimo debe contar con la informacin de la mquina que correr ppp. Asumiendo que su ordenador se llama foo.bar.com con la direccin IP 10.0.0.1, el archivo /etc/hosts debiese contener:
127.0.0.1 localhost.bar.com localhost ::1 localhost.bar.com localhost 10.0.0.1 foo.bar.com foo
Las primeras dos lneas denen el alias del localhost, como sinnimo de la maquina actual. Independientemente de su propia direccin IP, la direccin IP en estas lneas siempre debe ser 127.0.0.1 y ::1. La ltima lnea especica el nombre foo.bar.com (asi como foo para acortarlo), para la direccin 10.0.0.1.
Nota: La direccin 127.0.0.1 y el nombre localhost son conocidos como direcciones "loopback" las cuales hacen un "loopback" (salto de regreso) a la maquina local.
Si su proveedor de Internet, le asigna una direccin IP ja, asn como un nombre, y usted no lo utiliza como nombre del host, aada esto tambin al archivo /etc/hosts.
25.2.1.4.4. Editando el archivo /etc/resolv.conf El archivo /etc/resolv.conf, le indica a la resolucin de nombres, como comportarse. Normalmente deber de incluir la(s) siguiente(s) lnea(s):
domain ejemplo.com nameserver x.x.x.x nameserver y.y.y.y
442
Captulo 25. PPP y SLIP Donde x.x.x.x y y.y.y.y deben reemplazarse con las direcciones IP de los servidores DNS, de su ISP. Puede ser que esta informacin se la hayan entregado al suscribirse o no, pero una rpida llamada a su ISP debe resolver esto. Tambi puede congurar su sistema, de tal forma que syslog(3) provee de un login para su coneccin por PPP. Slo aada:
!ppp *.*
/var/log/ppp.log
25.2.1.5. Conguracin Automtica de PPP Ambos, ppp as como pppd (la implementacin del kernel para PPP), utilizan la conguracin de los archivos localizados en el directorio /etc/ppp. Ejemplos para ppp, pueden encontrarse en: /usr/share/examples/ppp/. Para efecto de congurar correctamente ppp, es necesario editar varios cheros, dependiendo de sus necesidades. La manera en que edite dichos archivos, depende en la forma que utilice su PSI (Proveedor de Servicios de Internet) para brindarle conexin, ya sea por medio de una direccin IP esttica o bien una IP dinmica (ya sea que cada vez que se conecta obtiene una nueva direccin). 25.2.1.5.1. PPP y direcciones de IP estticas (jas) Ser necesario editar el archivo de conguracin; /etc/ppp/ppp.conf. Y deber quedar de una manera similar al ejemplo que se describe a continuacin.
Nota: Las lneas que terminan con :, deben comenzar en la primer columna del archivo el resto de las lneas debern utilizar sangra como se muestra, utilizando espacios o bien el tabulador. La mayor parte de la informacin que requiere ingresar aqui, se mostro en el marcado manual anterior.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
default: set log Phase Chat LCP IPCP CCP tun command ident user-ppp VERSION (built COMPILATIONDATE) set device /dev/cuaa0 set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" set timeout 180 enable dns provider: set phone "(123) 456 7890" set authname foo set authkey bar set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp" set timeout 300 set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0 add default HISADDR
443
Captulo 25. PPP y SLIP Lnea 1: Identica la entrada por omisin a utilizar. Los comandos descritos en esta parte, sern ejecutados de manera automtica cuando se ejecute ppp. Lnea 2: Habilita los parmetros de acceso. Cuando la conguracin trabaja sin problemas, esta lnea deber quedar de la siguiente forma:
set log phase tun
para efecto de evitar avisos masivos del sistema (logs). Lnea 3: Esta lnea le indica a PPP como identicarse ante el puerto. PPP se identica, si tiene algun problema para efecto de establecer la conexin, en esta identicacin, PPP provee de cierta informacin que puede resultar util para detectar el probelma. Lnea 4: Le indica a PPP cual es el dispositivo a utilizar para realizar la conexin, o bien al que esta conectado el mdem. El dispositivo COM1 es /dev/cuaa0 y COM2 es /dev/cuaa1. Lnea 5: Establece la velocidad a utilizar en la conexin. Si la velocidad de 115200 no trabaja correctamente (la cual deberia con cualquier mdem normal), intente con una velocidad inferior, como puede ser 38400. Lneas 6 y 7:
La cadena de inicializacin. El modo User PPP, utiliza y espera enviar-recibir, la informacin utilizando una sintaxis similar a la descrita en el programa chat(8). Favor de consultar la pgina de ayuda para conocer las opciones de este lenguaje. Nota: Este comando continua en la siguiente lnea, para facilitar su lectura. Cualquier comando en el archivo ppp.conf puede utilizar este formato, siempre y cuando el ltimo caracter de la lnea sea una diagonal invertida "\". Lnea 8: Establece el tiempo de espera que debe tratar de realizar la conexin. Por omisin se establecen 180 segundos, por lo que esta lnea se deja por pura esttica. Lnea 9: Esta lnea le indica a PPP, que solicite conrmacin al puerto, sobre la conguracin de la resolucin local. Si usted esta corriendo un servidor local de nombres, deber comentar o eliminar esta lnea. Lnea 10: Una lnea en blanco, para facilitar la lectura. Las lneas en blanco son ignoradas por PPP.
444
Captulo 25. PPP y SLIP Lnea 11: Identica el incio de datos para un proveedor determinado, de servicios de internet. Este podr ser cambiado por el nombre de su ISP, de tal forma que en lo sucesivo utilice la opcin load ISP, para iniciar una sesin. Lnea 12: Indica el numero telefnico del proveedor. Pueden indicarse varios numeros a utilizar, utilizando el signo de dos puntos (:) o bien la barra (|) como separador. La diferencia entre estos dos separadores, es detallada en el ppp(8). Pero en resumen, se puede decir que si se desean utilizar varios numeros de manera aleatoria se debe utilizar los dos puntos, pero si se desea siempre utilizar el primer numero y en caso de falla el siguiente y as sucesivamente, se debe utilizar la barra. Es importante que todo lo que se reere a numeros telefonicos, este entre comillas como se muestra. Es importante que si piensa usar espacios en los numeros, haga uso de estas comillas ("). La falta de estas pueden ocasionar un simple error. Lneas 13 y 14: Identica el nombre de usuario y su contrasea. Cuando uno se conecta utilizando un login de tipo Unix, estos valores hacen referencia al comando set login, utilizando las variables \U y \P. Cuando la conexin es utilizando algn metodo como PAP o CHAP, estos valores, son utilizados al momento de la autenticacin. Lnea 15:
Si usted esta utilizando el metodo PAP o CHAP, no habr un login en este punto, y esta lnea deber ser comentada (utilizando el smbolo # al principio de la lnea) o bien eliminada por completo. Vea la parte Autenticacin con PAP y CHAP para ms detalles. La cadena de acceso (login), utiliza la misma sintxis que se utiliza en la cadena de marcado. En este ejemplo, la cadena sirve para un servicio, en el cual el inicio de sesin se ve algo as como lo siguiente:
Proveedor de servicios X login: foo password: bar protocol: ppp
Es recomendable editar el script, para que se ajuste a sus propias necesidades. Cuando cree este script por primera vez, asegurese de haber habilitado la parte que se reere a al acceso por medio de chat, para efecto de poder dar seguimiento al curso de la conexin y la resolucin de la misma. Lnea 16:
Establece el tiempo por defecto en el que se perder la conexin (en segundos). En este caso la conexin ser cortada de forma automtica, despus de 300 segundos de inactividad. Si no desea habilitar esta funcin establezca este valor en cero o bien utilice el comando en lnea -ddial. Lnea 17:
Indica la direccin de la interfaz. La cadena que aparece como x.x.x.x., debe se cambiada por la direccin asignada por su PSI. La lnea que aparece como y.y.y.y., debe se substituida por la direcci IP especicada por su PSI, como servidor de salida o pasarela (gateway)(la maquina a la cual se va a conectar). Si su PSI no le ha indicado una direccin de este tipo, puede utilizar 10.0.0.2/0. Si usted necesita utilizar una direccin
445
Captulo 25. PPP y SLIP aleatoria, asegurese de crear el chero /etc/ppp/ppp.linkup, siguiendo las instrucciones de PPP y las direcciones de IP Dinmicas, para su llenado. Si esta lnea es omitida, ppp, no podr ejecutarse en el modo -auto. Lnea 18: Aade una ruta por omisin al servidor de salida de su PSI. La palabra especial HISADDR se reemplaza con la direccin del gateway indicado por su PSI, que esta en la lnea 9, de otra forma HISADDR no ser inicializado. Si no desea ejecutar ppp en modo -auto, esta lnea deber pasar al archivo ppp.linkup. No hay necesidad de editar el archivo ppp.linkup si usted cuenta con una direccin IP esttica y se esta ejecutando ppp en modo -auto, en virtud de que para efecto de realizar la conexin sus mapas de ruteo debe estar correctas. De cualquier forma puede ser que usted desee ejecutar algun programa/comando, posterior a la conexin. Este es explicado con ms detalle posteriormente, cuando se vea el ejemplo de sendmail. Ejemplo de los archivos de conguracin, se pueden encontrar en el directorio; /usr/share/examples/ppp.
25.2.1.5.2. PPP y direcciones de IP Dinmicas (Variables) Si su proveedor de servicios, no le asigna una direccin de IP ja, ser necesario congurar a ppp, de tal forma que al momento de realizar la conexin, negocie tanto la direccin local, como la remota. Esto se lleva a cabo al adivinar una direccin IP y permitiendo a ppp que la establezca correctamente, usando el Protocolo de Conguracin de IP (IPCP), una vez que se ha conectado. La conguracin que debe tener el archivo ppp.conf, es la misma que la utilizada en PPP y direcciones de IP jas, salvo el siguiente cambio:
17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255
Una vez ms, no debe incluir el numero de lnea, este slo es una referencia. As mismo deber existir sangrado, de cuando menos 1 espacio. Lnea 17: El numero siguiente a la diagonal (/), es el numero de bits de la direccin en la cual ppp insistir en conectarse. Puede ser que usted desee utilizar numeros de IP que sean ms apropiados, para ajustar a sus necesiadades, pero el ejemplo descrito anteriormente siempre podr utilizarse. El ltimo argumento (0.0.0.0), le indica a PPP, que inicie las negociaciones, utilizando como direccin 0.0.0.0, en lugar de que utilice 10.0.0.1, lo cual es necesario con algunos proveedores. No utilice la direccin 0.0.0.0 como el primer argumento, para el comando set ifaddr, ya que impide que PPP congure de forma correcta el sistema, cuando se utiliza en modo -auto. Si usted no esta ejecutando PPP en modo -auto, deber editar su archivo /etc/ppp/ppp.linkup. El archivo ppp.linkup, es utilizado una vez que se ha realizado la conexin. En este punto, ppp habr negociado una direccin de interfaz, y ser posible ahora, aadir las entradas para la las tablas de ruteo:
1 2 provider: add default HISADDR
Lnea 1: Al establecer (ppp) una conexin, buscar en ppp.linkup una entrada, de acuerdo a las siguientes reglas. Primero, tratar de encontrar una entrada que sea igual a la utilizada en el archivo ppp.conf. Si esto falla,
446
Captulo 25. PPP y SLIP buscar una IP con la direccin de nuestro gateway. Esta entrada es una etiqueta de tipo IP, de cuatro-octetos. Si aun despus de esto no se ha detectado la entrada correcta, buscar la entrada MYADDR. Lnea 2: Esta lnea le indica a ppp que aada una ruta por omisin, que este dirigida hacia HISADDR. HISADDR ser reemplazada, con la IP del gateway, como se negocio por IPCP. Para ver un detalle ms preciso de esto, puede consultar la entrada de pmdemand en los archivos de ejemplo /usr/share/examples/ppp/ppp.conf.sample as como /usr/share/examples/ppp/ppp.linkup.sample.
25.2.1.5.3. Recibiendo Llamadas Externas Cuando se congure ppp, para recibir llamadas externas, en una maquina conectada a un LAN (Red de Area Local), debe decidir si se va a permitir el envo de paquetes a la LAN. Si es as, debe asignar un numero de IP de su red local y utilizar el comando enable proxy en el archivo de conguracion /etc/ppp/ppp.conf. Tambin deber asegurarse que en su archivo /etc/rc.conf cuente con la lnea:
gateway_enable="YES"
25.2.1.5.3.1. ?Qu getty utilizar? El enlace Congurando FreeBSD para Servicios de Marcado provee de una buena descripci, sobre la conguracin de estos servicios, basado en getty(8). Una alternativa para el comando getty es mgetty (http://www.leo.org/~doering/mgetty/index.html), el cual es una versin ms inteligente de getty diseada para servicios de marcado telefonico. Una de las principales ventajas de mgetty es que, de hecho platica con los modems, esto es, signicativo, ya que si el puerto esta desactivado en su /etc/ttys el modem no responder el llamado. Las ltimas versiones de mgetty (de la 0.99beta y sucesivas), tambin cuentan con soporte para la deteccin automtica de llamados de PPP, permitiendo el acceso a servidores de una manera ms sencilla (sin uso de tanto scripts). Puede referirse a Mgetty y AutoPPP para ms informacin con respecto al comando mgetty.
25.2.1.5.3.2. Permisos de PPP El comando ppp normalmente debe ser ejecutado por root (superusuario). Si de cualquier forma, usted desea permitir que ppp pueda ser ejecutado en modo servidor, por un usuario regular, como se describe a continuacin, deber otorgar los permisos necesarios a ese usuario al aadirlo al grupo network, en el chero /etc/groups. Tambin ser necesario darle acceso a una o ms partes del archivo de conguracin, haciendo uso del comando allow, como se ve a continuacin:
allow users fred mary
Si el comando es utilizado en la seccin default, esto le dar a el(los) usuario(s) especicado(s), acceso a todo.
447
Captulo 25. PPP y SLIP 25.2.1.5.3.3. Shells de PPP para Usuarios de IP Dinmica Cree un chero llamado: /etc/ppp/ppp-shell y que contenga lo siguiente:
#!/bin/sh IDENT=echo $0 | sed -e s/^.*-\(.*\)$/\1/ CALLEDAS="$IDENT" TTY=tty if [ x$IDENT = xdialup ]; then IDENT=basename $TTY fi echo "PPP for $CALLEDAS on $TTY" echo "Starting PPP for $IDENT" exec /usr/sbin/ppp -direct $IDENT
Este script deber ser ejecutable. Ahora cree un enlce simblico llamado ppp-dialup a este script, utilizando los siguientes comandos:
# ln -s ppp-shell /etc/ppp/ppp-dialup
Deber utilizar este script como shell para todos los usuarios que realicen conexin. Este es un ejemplo del chero /etc/password para un usuario con acceso a PPP, con nombre de usuario pchilds (recuerde no editar directamente el chero password, utilice vipw).
pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup
Cree un directorio llamado /home/ppp que contenga los siguentes archivos de 0 bytes:
-r--r--r--r--r--r-1 root 1 root wheel wheel 0 May 27 02:23 .hushlogin 0 May 27 02:22 .rhosts
25.2.1.5.3.4. Shells de PPP para Usuarios de IP Esttica Cree el chero ppp-shell al igual que el mencionado con anterioridad, y por cada cuenta donde se tenga asignada una IP esttica, cree un enlace simblico al chero ppp-shell. Por ejemplo, si usted cuenta con tres usuarios que utilicen este servicio; fred, sam y mary, los cuales redirecciona a una red de clase C, habria que hacer lo siguiente:
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary
Cada uno de los usuarios sealados, debern de contar con el enlace a su shell-script como se indic (por ejemplo, el usuario mary, debe contar con su enlace al chero /etc/ppp/ppp-mary).
448
Captulo 25. PPP y SLIP 25.2.1.5.3.5. Congurando ppp.conf para Usuarios de IP-Dinmica El archivo /etc/ppp/ppp.conf deber contener algo similar a lo siguiente:
default: set debug phase lcp chat set timeout 0 ttyd0: set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 enable proxy ttyd1: set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 enable proxy
La seccin default: es cargada para cada sesin. Para cada lnea que exista y habilite el marcado, en el chero /etc/ttys, se deber crear una entrada similar a la lnea ttyd0: mencionada arriba. Cada lnea debera contar con su propia direccin IP, de sus direcciones IP disponibles para asignar dinmicamente.
25.2.1.5.3.6. Congurando ppp.conf para Usuarios de IP Esttica Junto con el contenido del chero de ejemplo /usr/share/examples/ppp/ppp.conf mencionado anteriormente, deber agregar una seccin para cada usuario asignado estticamente. Continuaremos con nuestro ejemplo con los usuarios fred, sam y mary.
fred: set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 sam: set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 mary: set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255
El archivo /etc/ppp/ppp.linkup deber de contener tambin informacin del ruteo, para cada IP esttica, si es necesario. Las lneas a continuacin aadirn una ruta a la direccin 203.14.101.0 de clase C, por medio del ppp link del cliente.
fred: add 203.14.101.0 netmask 255.255.255.0 HISADDR sam: add 203.14.102.0 netmask 255.255.255.0 HISADDR mary: add 203.14.103.0 netmask 255.255.255.0 HISADDR
449
Captulo 25. PPP y SLIP 25.2.1.5.4. Algo ms de mgetty , AutoPPP, y Extensiones MS 25.2.1.5.4.1. mgetty y AutoPPP Congurando y compilando mgetty con la opcin AUTO_PPP habilitada, permite a mgetty detectar la fase LCP de conexiones PPP y automticamente enviarlo a un shel de ppp. Aun con esto, y debido a que no se ingresa el nombre de usuario y contrasea, es necesario autnticarse por medio de PAP o CHAP. Esta seccin asume que el usuaio ha congurado, compilado e instalado correctamente una versin de mgetty, con la opcin Auto_PPP (v0.99beta o posterior). Asegurese de que su chero /usr/local/etc/mgetty+sendfax/login.conf contiene la siguiente lnea en l:
/AutoPPP/ /etc/ppp/ppp-pap-dialup
Esto le indicar a mgetty que ejecute el script ppp-pap-dialup, para efecto de detectar conexiones de tipo PPP. Cree un chero llamado /etc/ppp/ppp-pap-dialup que contenga las siguientes lneas (el chero deber ser ejecutable):
#!/bin/sh exec /usr/sbin/ppp -direct pap$IDENT
Para cada lnea de marcado habilitada en /etc/ttys, cree la entrada correspondiente en /etc/ppp/ppp.conf. Esto co-existir paccamente con las deniciaones que se hayan hecho, de acuerdo a lo mostrado en la parte de arriba.
pap: enable pap set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 enable proxy
Cada usuario que ingrese al sistema utilizando este metodo, deber de contar con su clave de usuario, as como su contrasea, en el archivo /etc/ppp/ppp.secret, o bien agrege la siguiente opcin, para efecto de que se pueda realizar la autenticacin por medio de PAP, directamente del chero /etc/password.
enable passwdauth
Si desea asignar una direccin IP ja a algunos usuarios, puede especicar el nmero como un tercer argumento en el chero /etc/ppp/ppp.secrets. Vea el archivo /usr/share/examples/ppp/ppp.secret.sample para obtener ejemplos ms detallados de esto.
25.2.1.5.4.2. Extensiones de MS Es posible congurar PPP, para efecto de que brinde a DNS y a NetBIOS, direcciones de servidores de nombres de forma automtica. Para efecto de habilitar estas extensiones con PPP versin 1.x, las siguientes lneas debern aadirse a la seccin relevante de /etc/ppp/ppp.conf.
enable msext set ns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5
450
Esto le indicar a los clientes, las direcciones del servidor primario y secundario y el servidor-host para NetBIOS. Si la lnea set dns, es omitida en versiones 2 y posteriores, PPP utilizar los valores que encuentre en /etc/resolv.conf.
25.2.1.5.5. Autenticacin por medio de PAP y CHAP Algunos proveedores de internet tienen su sistema congurado para que cada usuario al conecatrse sean autenticados por medio de PAP o CHAP. Si este es el caso, al momento de realizar la conexion, no aparecer un login:, sino que comenzar a comunicarse PPP inmediatamente. El metodo PAP es menos seguro que CHAP, pero la seguridad normalmente no se toma mucho en cuenta en este tipo de conexiones, en funcion de que al enviarse la informacin de contrasea en texto plano, por medio de una lnea serial, no deja mucho espacio para que los crackers husmeen. Haciendo referencia a lo que vimos de PPP y Direcciones de IP Fijas o bien PPP y Direcciones de IP Dinmicas, habra que aplicar los siguientes cambios:
7 ... 12 13 set login set authname MiNombreDeUsuario set authkey MiContrasea
Lnea 7: Su PSI normalmente requerir que usted ingrese al sistema, cuando se utiliza PAP o CHAP. Por esta razn debemos deshabilitar la lnea que corresponde a set login. Lnea 12: Esta lnea especifca a PAP/CHAP su nombre de usuario. Usted deber cambiar el valor a quedar el nombre correcto en el campo; MiNombreDeUsuario. Lnea 13:
Esta lnea especifca su contrasea de PAP/CHAP. Es necesario que usted cambie el valor a quedar el dato correcto, en el campo; MiContrasea. Quizs sea recomendable que aada una lnea a quedar:
15 accept PAP
o
15 accept CHAP
la intencin de esto es para hacerlo obvio, aunque en realidad PAP y CHAP son aceptadas por omisin.
451
Captulo 25. PPP y SLIP 25.2.1.5.6. Cambiando la conguracin de ppp sobre la marcha (al vuelo) Es posible hablar con el programa ppp mientras se esta ejecutando en segundo plano, pero slo si se ha habilitado un puerto de diagnstico. Para hacer esto, aada lo siguiente a su conguracin:
set server /var/run/ppp-tun%d DiagnosticPassword 0177
Esto le indicar a PPP que preste atencin al socket del dominio-Unix, solicitando a los usuarios su contrasea, antes de permitir el acceso. La variable %d deber ser reemplazada por el numero de dispositivo tun que este utilizando (ej. tun0). Una vez que se a congurado el socket, se puede utilizar pppctl(8) en scripts que deseen manipular el programa.
25.2.1.6. Conguracin Final del Sistema Ahora usted cuenta con un ppp congurado, pero es necesario hacer algunas cosas, antes de que este disponible para trabajar. Todas ellas giran entorno a la edicin del chero /etc/rc.conf. En primer lugar es importante que se asegure que ha asignado un nombre a su maquina. Esto se hace asignandolo en la lnea de hostname=, por ejemplo:
hostname="foo.ejemplo.com"
Si su Proveedor de Servicios de Internet (PSI), le ha provisto de una direccin ja y un nombre de host, es recomendable que utilice este como su hostname. Localice la lnea que se reera a sus dispositivos de red, la cual es network_interfaces. Si desea congurar su sistema para marcar a su PSI a peticin, asegurese de que el dispositivo tun0 este en la lista, de otra forma eliminelo.
network_interfaces="lo0 tun0" ifconfig_tun0=
Nota: La variable ifconfig_tun0 debe permanecer en blanco (vacia), y deber crearse un chero llamado /etc/start_if.tun0 que contenga la siguiente lnea:
ppp -auto MiSistema
Este script se ejecuta cuando se esta congurando la red, inicializando el demonio de ppp de modo automtico. Si usted cuenta con una LAN (red de rea local), de la cual esta maquina sea la pasarela (gateway), es tambien recomendable que utilice la opcin -alias. Referirse a la pgina de ayuda (man) para mayores detalles.
Es importante que el demonio routed no se inicialice por default, en virtud de que routed tiende a eliminar las variables creadas por ppp. Probablemente valga la pena asegurarse de que la lnea sendmail_flags, no incluya la opcin -q, ya que de ser as sendmail intentar localizar los parmetros de la red de vex en cuando, ocasionando que realice llamados al exterior. Puede intentar esto:
sendmail_flags="-bd"
452
Captulo 25. PPP y SLIP La parte negativa de esta conifguracin es que tiene que forzar a sendmail a re-examinar los llamados del servidor de correo, cada vez que ppp realiza una conexin, con el siguiente comando:
# /usr/sbin/sendmail -q
Puede utilizar el comando !bg en el chero ppp.linkup para hacer esto de manera automtica:
1 2 3 4 provider: delete ALL add 0 0 HISADDR !bg sendmail -bd -q30m
Si usted no desea hacer esto, es posible establecer un dlter (ltro), para bloquear el trco al servidor de salida de correo (SMTP). Favor de referirse a los archivos de ejemplos para mayor detalle al respecto. Ahora lo nico que queda pendiente de hacerse es reiniciar el equipo. Una vez reiniciado el equipo, puede teclear:
# ppp
y posteriormente dial proveedor para iniciar la sesin, o bien si desea que ppp inicie la sesin automticamente, cuando haya una peticin de salida (y no haya creado el chero start_if.tun0), puede teclear:
# ppp -auto proveedor
25.2.1.7. Summario A manera de recapitulacin, podemos decir que para congurar ppp por primera ocasin, debemos: Por parte del Cliente: 1. 2. 3. 4. 5. 6. Asegurese de que existe el dispositivo tun dentro de su kernel. Asegurses de que el dispositivo tunX , se encuentra disponible, bajo el directorio /dev. Cree una entrada en su chero /etc/ppp/ppp.conf. Con el chero de ejemplo pmdemand debe ser suciente para la mayoria de proveedores. Si cuenta con una direccin de IP dinmica, cree una entrada en el chero /etc/ppp/ppp.linkup . Actualice su chero /etc/rc.conf. Cree un archivo script llamado start_if.tun0 si requiere servicio de conexin a solicitud.
Por parte del Servidor: 1. 2. 3. 4. 5. 6. Asegurese de que dentro de su kernel exista el dispositivo tun. Asegurses de que el dispositivo tunX , se encuentra disponible, bajo el directorio /dev. Cree una entrada en el chero /etc/passwd (usando el programa vipw(8)). Cree un perl en el directorio home de este usuario, que ejecute ppp -direct direct-server o algo similar. Cree una entrada en el chero /etc/ppp/ppp.conf. El chero de ejemplo direct-server debe ser suciente para darse una idea. Cree una entrada en el chero /etc/ppp/ppp.linkup.
453
1. Como un cliente cuando desea conectar su maquina al mundo exterior utilizando PPP, por medio de una conexin serial o bien una lnea de modem. 2. como un servidor cuando su maquina esta conectada a una red y es utilizada para que otras maquinas se conecten utilizando ppp. En ambos casos, ser necesario congurar un chero de opciones (/etc/ppp/options o bien ~/.ppprc si se cuenta con ms de un usuario que utilizar ppp en la misma maquina. Tambin deber de contar con un software para hacer la conexin por medio de mdem (de preferencia kermit), de manera que pueda hacer la conexin con un host remoto.
defaultroute
454
Captulo 25. PPP y SLIP Para conectarse: 1. 2. 3. Realice el llamado al host remoto, utilizando kermit (o cualquier otra aplicacin de este tipo), ingrese su nombre de usuario y contrasea (o cualquier info que sea necesaria para habilitar PPP en el host remoto). Salga de kermit (sin colgar la lnea). Ingrese lo siguiente:
# /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200
Asegurese de utilizar el dispositivo y la velocidad adecuados. Ahora su computadora esta conectada por medio de PPP. Si la conexin falla, puede aadir la opcin debug en el chero /etc/ppp/options de tal forma que pueda vericar la que esta ocurriendo y pueda resolver el problema. El siguiente script; /etc/ppp/pppup realizar los 3 pasos de forma automtica:
#!/bin/sh ps ax |grep pppd |grep -v grep pid=ps ax |grep pppd |grep -v grep|awk {print $1;} if [ "X${pid}" != "X" ] ; then echo killing pppd, PID= ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=ps ax |grep kermit |grep -v grep|awk {print $1;} if [ "X${pid}" != "X" ] ; then echo killing kermit, PID= ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.dial pppd /dev/tty01 19200
El chero /etc/ppp/kermit.dial es un script de kermit, uqe realiza el marcado y negocia la autorizacin necesaria con el host remoto (un ejemplo de este script se encuentra al nal de este documento). Utilice el siguiente script, llamado /etc/ppp/pppdown para desconectar la lnea PPP:
#!/bin/sh pid=ps ax |grep pppd |grep -v grep|awk {print $1;} if [ X${pid} != "X" ] ; then echo killing pppd, PID= ${pid} kill -TERM ${pid} fi ps ax |grep kermit |grep -v grep pid=ps ax |grep kermit |grep -v grep|awk {print $1;} if [ "X${pid}" != "X" ] ; then echo killing kermit, PID= ${pid} kill -9 ${pid}
455
Verique que su PPP aun se esta ejecutando, por medio de /usr/etc/ppp/ppptest, que deber verse algo similar a esto:
#!/bin/sh pid=ps ax| grep pppd |grep -v grep|awk {print $1;} if [ X${pid} != "X" ] ; then echo pppd running: PID= ${pid-NONE} else echo No pppd running. fi set -x netstat -n -I ppp0 ifconfig ppp0
He aqui un metodo alterno, donde se utiliza chat en lugar de utilizar kermit. Los siguientes dos cheros deben ser suciente, para realizar una conexin por medio de pppd.
/dev/cuaa1 115200 crtscts # habilita el control de flujo por medio de hardware modem # lnea de control del mdem connect "/usr/bin/chat -f /etc/ppp/login.chat.script" noipdefault # el servidor remoto debe asignar la direccin IP. # si el servidor no asigna una IP durante la negociacin # IPCP , remueva esta lnea y espere por los
456
defaultroute
ABORT BUSY ABORT NO CARRIER "" AT OK ATDT<numero.de.telefono> CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <nombre.usuario> TIMEOUT 5 sword: <contrasea>
Una vez que estos cheros han sido modicados correctamente e instalados, todo lo que necesita es ejecutar el comando pppd, algo como:
# pppd
El siguiengte script, llamado /etc/ppp/pppserv habilitar pppd, para que actue como servidor:
#!/bin/sh ps ax |grep pppd |grep -v grep pid=ps ax |grep pppd |grep -v grep|awk {print $1;} if [ "X${pid}" != "X" ] ; then echo killing pppd, PID= ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=ps ax |grep kermit |grep -v grep|awk {print $1;}
457
El siguiente script de kermit (/etc/ppp/kermit.ans) habilita/deshabilita el modo de autorespuesta en su mdem. Y debe verse algo similar a lo siguiente:
set set set set set set set set set set set line /dev/tty01 speed 19200 file type binary file names literal win 8 rec pack 1024 send pack 1024 block 3 term bytesize 8 command bytesize 8 flow none
458
Un script llamado /etc/ppp/kermit.dial es utilizado para llamar y autenticarse en un host remoto. Es necesario que edite este chero, de acuerdo a sus necesidades. Escriba su nombre de usuario (login) y contrasea (password) en este chero, tambin ser necesario cambiar su metodo de conexin, de acuerdo a lo que se ajuste a sus necesidades.
; ; ingrese el dispositivo que esta ; set line /dev/tty01 ; ; escriba la velocidad del mdem: ; set speed 19200 set file type binary ; set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none set modem hayes set dial hangup off set carrier auto ; set dial display on ; set input echo on set input timeout proceed set input case ignore def \%x 0 goto slhup
apuntando a su mdem:
:slcmd ; cambio a modo de comando echo Put the modem in command mode. clear ; Limpieza del buffer de entrada pause 1 output +++ input 1 OK\13\10 ; esperar para OK if success goto slhup output \13 pause 1 output at\13 input 1 OK\13\10 if fail goto slcmd ; si el modem no responde Ok, intentar de nuevo
459
:slhup clear pause 1 echo Hanging up the phone. output ath0\13 input 2 OK\13\10 if fail goto slcmd :sldial pause 1 echo Dialing. output atdt9,550311\13\10 assign \%x 0 :look clear increment \%x input 1 {CONNECT } if success goto sllogin reinput 1 {NO CARRIER\13\10} if success goto sldial reinput 1 {NO DIALTONE\13\10} if success goto slnodial reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 60 goto look else goto slhup :sllogin assign \%x 0 pause 1 echo Looking for login prompt.
; si no hay un OK como respuesta, poner el modem en modo de comand ; marcar el numero telefonico
:slloop increment \%x ; Conteo de segundos clear ; Limpieza del buffer de entrada output \13 ; ; escriba su login prompt aqui: ; input 1 {Username: } if success goto sluid reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 10 goto slloop ; intentar 10 veces para obtener un login else goto slhup ; colgar y empezar de nuevo si a la decima falla :sluid
460
local variables: mode: csh comment-start: "; " comment-start-skip: "; " end:
461
No olvide cambiar x11 por el dispositivo Ethernet que este utilizando. No olvide cambiar ISP por el nombre del perl que le fu descrito anteriormente (por lo general el nombre de su Proveedor de Servicio de Internet). Para informacin adicional consulte:
462
o bien pude hacerse desde la lnea de comandos, para un efecto inmediato, por medio del comando sysctl -w net.graph.nonstandard_pppoe=1. Desafortunadamente y dado que esto implica una conguracin general del sistema, por lo que no es posible comunicarnos con un dispositivo cliente servidor que utilice PPPoE y con un mdem casero 3Com ADSL, al mismo tiempo.
463
set ipcp no vjcomp set ipcp ranges 0.0.0.0/0 0.0.0.0/0 set set set set iface iface iface iface route default disable on-demand enable proxy-arp idle 0
open
El nombre de usuario para autenticar con su proveedor. La contrasea para autenticar con su proveedor.
El chero mpd.links contiene informacin a cerca de la, o las conecciones, que desee establecer. Un ejemplo de mpd.links y que sea acompaante del ejemplo anterior, se muestra a continuacin.
adsl: set set set set set
type pptp mode active enable originate incoming outcall self 10.0.0.140 peer 10.0.0.138
Usar mpd es la forma recomendada para conectarse con servicios ADSL con FreeBSD.
464
Captulo 25. PPP y SLIP muestra a continuacin. Para mayor informacin sobre las opciones de ppp.conf, consulte la pgina de ayuda de ppp; ppp(8).
adsl: set log phase chat lcp ipcp ccp tun command set timeout 0 enable dns set authname usuario set authkey contrasea set ifaddr 0 0 add default HISADDR
Esto abrir una sesion por medio de PPP con su ruteador DSL. Los mdems Ethernet DSL cuentan con una direccin IP de LAN precongurada a la cual se puede conectar. En el caso del Alcatel Speedtouch, esta direccin es 10.0.0.138. La documentacin de su equipo debe indicarle que direccin utiliza. Para abrir el tunel e iniciar la sesin ppp, ejecute el siguiente comando.
# pptp direccin proveedor
Sugerencia: Puede aadir un smbolo de ampersand (&) al nal de este comando, ya que pptp no retorna al shell por default.
Un dispositivo virtual tun ser creado, para interactuar con los procesos de pptp y ppp. Una vez que regrese al shell puede examinar la conexin por medio del siguiente comando.
% ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 Opened by PID 918
Si no le es posible conectarse, verique la conguracin de su ruteador, que normalmente es accesible por medio de telnet o de su navegador web. Si aun no puede conectarse examine la salida que da el comando pptp y el contenido del chero de registro (log) de ppp; /var/log/ppp.log.
465
Esta opcin esta incluida en el archivo del kernel GENERIC, as que no debe haber problema, claro esta, a menos que lo haya borrado intencionalmente. 25.6.1.1. Cosas Que Tiene Que Hacer Solo Una Vez 1. Aada el nombre de su maquina, gateway, servidores de nombre a su chero /etc/hosts. Este es un ejemplo de mi chero:
127.0.0.1 136.152.64.181 136.152.64.1 128.32.136.9 128.32.136.12 localhost loghost water.CS.Example.EDU water.CS water inr-3.CS.Example.EDU inr-3 slip-gateway ns1.Example.EDU ns1 ns2.Example.EDU ns2
2. 3.
Asegurese de que cuenta con la opcin hosts antes de la opcin bind, en su chero /etc/host.conf. De lo contrario pueden ocurrir cosas graciosas en su sistema. Edite el chero /etc/rc.conf. 1. Especique su nombre host al editar la lnea que dice:
hostname=minombre.mi.dominio
El nombre completo de su sistema para internet, debe ser escrito en este punto. 2. Aada el dispositivo sl0 a la lista de dispositivos de red, al cambiar la lnea que dice:
network_interfaces="lo0"
a quedar:
network_interfaces=lo0 sl0
466
Captulo 25. PPP y SLIP 3. Aada los parmetros de inicializacin del dispositivo sl0, al aadir la lnea:
ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"
a quedar:
defaultrouter=slip-gateway
4.
Edite su chero /etc/resolv.conf (si no existe debe crearlo), a que contenga lo siguiente:
domain CS.Ejemplo.EDU nameserver 128.32.136.9 nameserver 128.32.136.12
Como puede ver, lo anterior dene el nombre de host, de su servidor de nombres. Claro esta, el nombre de dominio y las direcciones IP, dependen de su sistema especco. 5. 6. Establezca la contrasea del superusuario root y de su smil toor (y de cualquier otro usuario que aun no cuente con la misma). Reinicie su sistema y asegurese que cuenta con el nombre de host (hostname) correcto.
25.6.1.2. Haciendo una Conexin con SLIP 1. Marque el nmero, teclee en el signo de comando slip, ingrese el nombre y la contrasea. Lo que se requiere ingresar, depende de su sistema. Si utiliza kermit, puede utilizar un script similar al siguiente:
# kermit setup set modem hayes set line /dev/modem set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary # El siguiente macro se encarga de llamar e ingresar al sistema define slip dial 643-9600, input 10 =>, if failure stop, output slip\x0d, input 10 Username:, if failure stop, output silvia\x0d, input 10 Password:, if failure stop, output ***\x0d, echo \x0aCONNECTED\x0a
Claro esta, que debe cambiar el nombre y contrase a quedar de acuerdo a sus necesidades. Despus de hacer esto, puede simplemente teclear slip en el smbolo de sistema (prompt) de kermit, para realizar la conexin.
Nota: El dejar su contrasea en texto plano, en cualquier parte del sistema, generalmente es una mala idea. Hgalo bajo su propio riesgo.
2.
Dej a kermit en ese punto trabajando (puede suspenderlo tecleando Ctrl-z) y como root, teclee:
# slattach -h -c -s 115200 /dev/modem
467
Captulo 25. PPP y SLIP Si puede hacer ping a cualquier host que se encuentre del otro lado del ruteador, usted esta conectado!. Si esto no funciona, puede intentar como argumento del comando slattach, la opcin -a en lugar de utilizar la optcin -c.
esto terminara slattach. Recuerde que para hacer esto, usted debe estar rmado como superusuario (root). Posteriormente dirijase a kermit (puede hacer esto con fg si lo envio a segundo plano) y salga (tecleando q). La pgina de ayuda de slattach indica que debe utilizar el comando ifconfig sl0 down, para marcar como terminado el uso del dispositivo, pero tal parece que esto no hace una gran diferencia para mi. (ifconfig sl0 da el mismo resultado.) En algunas ocasiones, puede que su mdem se niegue a cortar la comunicacin (el mio lo hace a veces). Si ese es el caso, simplemente inicie de nuevo kermit y vuelva a salir. Normalmente en el segundo intento hay exito.
25.6.1.4. Problemas Comunes Si esto no funciona, sientase libre de preguntarme. Lo siguiente es una recapitulacin de los problemas que ms comunmente se presentan:
El no utilizar la opcin -c o -a con el comando slattach (Esto debiera se fatal, pero algunos usuarios han reportado que esto ha solucionado sus problemas. Usar la opcin s10 en vez de usar la opcin sl0 (puede ser difcil ver la diferencia con algunos tipos de letras). Intente ifconfig sl0 para visualizar el estatus de sus dispositivos de red. Por ejemplo, puede ser que obtenga algo similiar a lo siguiente:
# ifconfig sl0
Tambin el comando netstat -r le mostrar la tabla de ruteo, en caso de que obtenga el mensaje no route to te host, al hacer ping. Un ejemplo de esto se muestra a continuacin:
# netstat -r
Gateway
Flags
Refs
Use
IfaceMTU
Rtt
Netmasks:
Route Tree for Protocol Family inet: (root node) => default inr-3.Example.EDU UG localhost.Exampl localhost.Example. UH inr-3.Example.ED water.CS.Example.E UH water.CS.Example localhost.Example. UGH
0.438 0.438
468
Esto es despus de que el sistema ha estado conectado por un tiempo. Los numeros pueden variar en su sistema.
25.6.2.2. Echemos un Vistazo En su conguracin tpica, el desarrollo de FreeBSD como un servidor SLIP, funciona de la siguiente manera: un Usuario SLIP, se conecta del Servidor SLIP FreeBSD e ingresa al sistema con una identicacin especial, que utiliza /usr/sbin/sliplogin como shell del usuario. El programa sliplogin busca en el chero /etc/sliphome/slip.hosts la lnea que haya sido creada especialmente para el usuario, conecta la lnea serial a una interfaz SLIP disponible y posteriormente ejecuta el script /etc/sliphome/slip.login, para congurar la interfaz SLIP. 25.6.2.2.1. Un Ejemplo de Acceso al Servidor SLIP Por ejemplo si la clave de acceso de un usuario SLIP fuese Shelmerg, la entrada del usuario Shelmerg, en el chero /etc/master.passwd se vera algo similar a lo siguiente:
Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin
Cuando Shelmerg accese al sistema, el comando sliplogin, buscar en el chero /etc/sliphome/slip.hosts, una lnea, en la cual el ID (identicacin) del usuario coincida, por ejemplo, puede ser que en el chero /etc/sliphome/slip.hosts exista una lnea simliar a la siguiente:
469
El comando sliplogin encontrar la lnea que coincida, enganchar la lnea serial a cualquier interfaz SLIP disponible y posteriormente ejecutar /etc/sliphome/slip.login de manera similar a:
/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
Si todo marcha bien, /etc/sliphome/slip.login crear una conguracin, por medio de ifconfig, para la interfaz SLIP, a la cual sliplogin se ha adjuntado (la interfaz slip 0, que era el primer parmetro dado en la lista de slip.login), para establecer la direccin local IP (dc-slip), la interfaz de la direcin IP Remota (sl-helmer), la submascara de red para la interfaz SLIP (0xfffffc00) y cualquier otra opcin adicional (autocomp). Si algo no va del todo bien, normalmente sliplogin guarda bastante informacin para depurar, por medio del demonio (daemon) syslog, que usualmente guarda dicha infomracin en /var/log/messages (vea la pgina de ayuda syslogd(8) as como syslog.conf(5) y quizas el chero /etc/syslog.conf, para ver que es lo que syslogd esta almacenando y donde es que lo almacena. OK, basta de ejemplos entremos de lleno en la conguracin del sistema.
25.6.2.3. Conguracin del Kernel El kernel de FreeBSD, por omisin, cuenta con 2 dispositivos SLIP denidos (sl0 y sl1); usted puede utilizar netstat -i, para vericar si estos dispositivos se encuentran en el kernel de su sistema. Un ejemplo del resultado de netstat -i:
Name ed0 ed0 lo0 lo0 sl0* sl1* Mtu 1500 1500 65535 65535 296 296 Network Address <Link>0.0.c0.2c.5f.4a 138.247.224 ivory <Link> loop localhost <Link> <Link> Ipkts Ierrs 291311 0 291311 0 79 0 79 0 0 0 0 0 Opkts Oerrs 174209 0 174209 0 79 0 79 0 0 0 0 0 Coll 133 133 0 0 0 0
En este ejemplo vemos que existen dos dispositivos SLIP en el kernel, que son; sl0 y sl1 (el asterisco que aparece despus de sl0 y sl1 indica que los dispositivos no estan trabajando.) Aun cuando el kernel cuente con los dispositivos, por omisin el kernel de FreeBSD, no viene congurado para enviar paquetes (de hecho su sistema FreeBSD no trabajara como ruteador, por default) esto en base a los requerimientos para Internet, establecidos por los RFCs ( vea 1009 [Requerimentos para Pasarelas (Gateway) en Internet], 1122 [Requerimientos para hosts de Internet Capas de comunicacin] y quizs 1127 [RFC sobre Una Perspectiva de los Requerimientos de Hosts]). Si usted desea que su servidor SLIP sobre FreeBSD, opere como un ruteador, ser necesario que edite el chero /etc/rc.conf y cambie la opcin gateway_enable, a quedar YES, esto habilitar esta funcin. Ser necesario que reinicie su sistema, para efecto de que estos cambios surtan efecto. Al vericar su chero de conguracin del kernel (/sys/i386/conf/GENERIC), podr notar que cerca del nal, hay una lnea como la siguiente:
pseudo-device sl 2
470
Captulo 25. PPP y SLIP Esta lnea es la que dene el numero de dispositivos SLIP disponibles en el kernel; el numero al nal de la lnea es el numero mximo de conecciones SLIP que puede manejar el servidor simultaneamente. Para ayuda con relacin a la conguracin y compilacin del kernel en su sistema FreeBSD, por favor reerase Captulo 8 al apartado correspondiente.
25.6.2.4. Conguracin de Sliplogin Como se menciono anteriormente, existen tres cheros en el directorio /etc/sliphome, que son parte de la conguracin de /usr/sbin/sliplogin (vea la pagina de ayuda sliplogin(8) de para ver la ayuda del comando sliplogin): slip.hosts, que es el chero que dene a los usuarios SLIP, as como sus direcciones IP correspondientes; slip.login, que normalmente es utilizado para congurar la interfaz de SLIP; y (opcionalmente) slip.logout, que hace lo opuesto a slip.login, cuando la conexin serial ha terminado. 25.6.2.4.1. Conguraci de slip.hosts El chero /etc/sliphome/slip.hosts contiene lneas, que al menos cuentan con cuatro partes, separadas por espacios en blanco:
Identicador (nombre) del usuario SLIP Direccin Local (local para el servidor SLIP) de la liga a SLIP Direccin Remota de la liga a SLIP Mascara de red
Las direcciones local y remota, pueden ser nombres del host (la resolucin de los mismos, es llevada a cabo, por medio de /etc/hosts o por el servidor de nombres de dominio (DNS), dependiendo de lo que haya especicado en el chero /etc/host.conf), y la mascara de red puede ser un nombre, que puede ser resuelto revisando /etc/networks. En un sistema de ejemplo, el chero /etc/sliphome/slip.hosts, puede verse as:
# # login local-addr # # Shelmerg dc-slip
remote-addr
mask
sl-helmerg
0xfffffc00
sin compresin de los encabezados. compresin de los encabezados. compresin automtica, si el host remoto lo permite.
deshabilitar los paquetes ICMP (de tal forma que cualquier paquete enviado por ping sera rechazado, en lugar de ocupar de su ancho de banda).
La eleccin sobre la direccin local y remota depende si usted va a utilizar una conexin TCP/IP dedicada o bien si va a utilizar una conexin por medio de proxy ARP en su servidor SLIP (no es correcto proxy ARP, pero es la terminologa utilizada en esta seccin para describirlo). Si usted no esta seguro que metodo manejar o como asignar la direccin IP, por favor reerase a alguno de los libros sobre TCP/IP, que se mencionan en los Prerequisitos de SLIP (Seccin 25.6.2.1) y/o consulte al administrador de IP de su red.
471
Captulo 25. PPP y SLIP Si usted piensa subnetear para los diferentes clientes SLIP, ser necesario que la direccin de la subred (subnet), salga de la direccin IP que tenga asignada su red, y el numero de cada cliente, del numero que asigne a su subred. Posteriormente puede que sea necesario, o bien congurar una ruta esttica a la subred SLIP, por medio de su servidor SLIP en su ruteador ms cercano por IP. De otra forma, si usted piensa utilizar un metodo proxy ARP, ser necesario que a sus clientes SLIP, se les asigne una direccin IP, que se encuentre dentro del rango que este utilizando para su subred Ethernet, y tambi ser necesario que haga algunos ajustes en los cheros script /etc/sliphome/slip.login y en /etc/sliphome/slip.logout, para que usen arp(8), para que maneje la tabla ARP del servidor SLIP y llamados del proxy-ARP.
# # generic login file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 inet $4 $5 netmask $6
This slip.login le merely runs ifconfig for the appropriate SLIP interface with the local and remote addresses and network mask of the SLIP interface. If you have decided to use the proxy ARP method (instead of using a separate subnet for your SLIP clients), your /etc/sliphome/slip.login le will need to look something like this:
#!/bin/sh # # @(#)slip.login
# # generic login file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 # Answer ARP requests for the SLIP client with our Ethernet addr /usr/sbin/arp -s $5 00:11:22:33:44:55 pub
La lnea adicional, arp -s $5 00:11:22:33:44:55 pub del script slip.login, crea una entrada ARP en la tabla del servidor SLIP. Esta entrada le indica al servidor SLIP que debe responder con la direccin MAC de su dispositivo Ethernet, cuando cualquier otro nodo IP en la red, solicite informacin a la IP del cliente SLIP. Al tomar en cuenta el ejemplo anterior, es importante que sustituya la direccin Ethernet MAC (00:11:22:33:44:55), con la direccin que corresponde a su tarjeta de red, o denitivamente su proxy ARP no
472
Captulo 25. PPP y SLIP va a funcionar!. Para efecto de conocer cual es la direccin MAC del dispositivo Ethernet (tarjeta de red), de su servidor SLIP, puede ejecutar el comando netstat -i, el cual tendr como resultado algo similar a lo siguiente:
ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116
Esto indica que la direccin MAC de su dispositivo Ethernet, en este sistema es 00:02:c1:28:5f:4a los puntos que aparecen en la salida del comando netstat -i deben cambiarse por dos puntos, as mismo deber de anteponerse un cero, a cada dgito hexadecimal que aparezca slo (no en pares), de tal forma que convirtamos la direccin en lo que arp(8) requiere para trabajar; vea la pgina de ayuda arp(8), para ver informacin completa sobre su uso.
Nota: Recuerde que cuando cree los cheros /etc/sliphome/slip.login y /etc/sliphome/slip.logout, deben contar con permisos de ejecucin (chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout), de otra forma estos scripts no podrn llevar a cabo su funcin.
25.6.2.4.3. Conguracin de slip.logout El chero /etc/sliphome/slip.logout no es indispensable (a menos que vaya a utilizar proxy ARP), pero si aun as decide crearlo, el siguiente es un ejemplo bsico del script slip.logout :
#!/bin/sh # # slip.logout # # logout file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down
Si usted esta utilizando proxy ARP, es recomendable que le indique a /etc/sliphome/slip.logout, que desea eliminar la entrada ARP, para el cliente SLIP:
#!/bin/sh # # @(#)slip.logout # # logout file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down # Dejar de solicitar respuesta ARP al cliente SLIP /usr/sbin/arp -d $5
473
Captulo 25. PPP y SLIP El comando arp -d $5, elimina la entrada ARP, que slip.login de proxy ARP aadi al cliente SLIP al ingresar al sistema. Para esta ms seguros: asegurese de que el chero /etc/sliphome/slip.logout cuenta con los permisos adecuados para su ejecucin, una vez que lo ha creado (ej. chmod 755 /etc/sliphome/slip.logout) .
25.6.2.5. Consideraciones sobre el Enrutamiento Si usted no esta utilizando el metodo proxy ARP, para efecto de rutear los paquetes entre sus clientes SLIP y el resto de la red (y quizs Internet), deber de hacer una de las siguientes dos acciones, o bien aadir direcciones estticas, a su(s) ruteador(es) ms cercanos, para que se reenvien los paquetes de la subred de sus clientes SLIP, por medio de su servidor SLIP, o bien tendr que instalar y congurar gated en su servidor SLIP (que corre FreeBSD!), de tal forma que le indique a su(s) ruteador(es), por medio del protocolo correcto, a cerca de su subred SLIP. 25.6.2.5.1. Direcciones de Enrutamiento Estticas Aadir direcciones estticas de enrutamiento puede ser un problema (o imposible si usted no cuenta con la autoridad para hacerlo...). Si usted cuenta con una red de ruteo-mltiple en su organizacin, algunos ruteadores, tales como los fabricados por Cisco y Proteon, puede ser que no sea suciente con el hecho de congurar las rutas estticas de su subred SLIP, sino que sea necesario indicar que rutas utilizar para informar a cerca de otras rutas, as que algo de experiencia as como determinacin para la resolucin de problemas sern necesarias para poner la ruta basada-enruteo-esttico a trabajar.
25.6.2.5.2. Ejecutando gated Una alternativa para los dolores de cabeza que pueden dar las redes con ruteo esttico, es intalar gated en su servidor SLIP bajo FreeBSD y congurarlo, para que utilice los protocolos de ruteo apropiados (RIP/OSPF/BGP/EGP) para informar a otros ruteadores, a cerca de su subred SLIP. Una vez que lo ha compilado e instalado, deber crear el chero /etc/gated.conf, que congurar a gated; aqui hay un ejemplo, similar al que el autor utiliz en un servidor SLIP FreeBSD:
Nota: gated es un software propietario y su cdigo fuente no estar disponible al pblico ms (ms informacin en el sitio gated (http://www.gated.org/)). Esta seccin solo existe para asegurarse de la compatibilidad con aquellos que usan la versi antigua.
# # gated configuration file for dc.dsu.edu; for gated version 3.5alpha5 # Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface # # # tracing options # traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ; rip yes { interface sl noripout noripin ; interface ed ripin ripout version 1 ; traceoptions route ;
474
En el ejemplo anterior, el chero de conguracin gated.conf transmite informacin sobre la subred SLIP xxx.xxx.yy , por medio de RIP al dispositivo Ethernet; si usted esta utilizando un dispositivo de red, diferente de ed, ser necesario que modique el parmetro ed por el correspondiente. En este ejemplo, el chero tambin realiza una busqueda por el chero /var/tmp/gated.output, que es un chero que nos sirve para depurar cualquier error que se presente en la actividad de gated; usted puede desactivar la opcin de depuracin (debug), si es que gated esta funcionando correctamente. Ser necesario que modique xxx.xxx.yy., a quedar con la direccin correcta de su subred SLIP (asegurese de modicar tambin la mscara de red, en la clusula proto direct tambin). Una vez que ha instalado y congurado gated en su sistema, necesitar indicarle a FreeBSD que al iniciar el sistema, ejecute el script para gated, en lugar de ejecutar routed. La forma ms fcil de hacer esto, es editar las variables de route y router_flags, en el chero /etc/rc.conf. Por favor vea la pgina de ayuda de gated, para ver informacin sobre los parmetros de la lneadecomandos.
475
26.1. *
Pendiente de traduccin
476
27.1. Sinopsis
El Correo Electrnico, o email, es una de las formas de comunicacin ms usadas hoy en dia. Este captulo es una introduccin bsica de cmo poner en marcha un servidor de correo en FreeBSD, aunque no es una gua completa y se han omitido muchos conceptos importantes. Si se necesita informacin exhaustiva sobre el tema puede recurrirse a los libros listados en Captulo 31. Despus de leer este captulo usted sabr:
Qu software est involucrado en el envo y recepcin de correo electrnico. Dnde se encuentran en FreeBSD los cheros bsicos de conguracin de sendmail. Cmo bloquear a los spammers y evitar el uso no autorizado de su servidor de correo. Cmo instalar y congurar agentes de transferencia de correo (MTA) en su sistema, para reemplazar sendmail. Cmo resolver problemas comunes en servidores de correo. Cmo usar SMTP con UUCP. Cmo usar correo con una conexin dialup. Cmo congurar SMTP con autenticacin para ms seguridad.
Congurar apropiadamente su conexin de red (Captulo 29). Congurar apropiadamente la informacin de DNS de su servidor de correo (Captulo 29). Saber como instalar software adicional (Captulo 4).
477
El agente de transporte de correo normalmente posee dos funcionalidades, por un lado se responsabiliza de la recepcin y por otro se encarga de entregar el correo de salida. No es responsable de la recoleccin automtica de correo mediante la utilizacin de protocolos como POP o IMAP, ni se utiliza para que el usuario pueda acceder a las carpetas de correo locales. Para realizar estas otras tareas, se necesitan dmons adicionales.
AvisoVersiones antiguas de sendmail poseen varios problemas de seguridad que pueden facilitar a un atacante el acceso local o remoto a la mquina que ejecuta sendmail. Para evitar dichos problemas de seguridad se recomienda utilizar una versin actualizada de sendmail. Tiene ms opciones a la hora de elegir MTA en los Ports de FreeBSD.
478
Captulo 27. Correo Electrnico 27.2.4.1. Acceso a carpetas de correo remotas mediante POP e IMAP Para poder acceder a carpetas de correo de forma remota se necesita tener acceso a un servidor de POP o IMAP. stos protocolos permiten a los usuarios conectarse a sus carpetas de correo desde ubicaciones remotas de una forma sencilla. Aunque ambos, POP y IMAP, permiten este acceso remoto IMAP ofrece algunas ventajas aadidas, algunas de las cuales son:
El acceso mediante IMAP permite almacenar los correos en el servidor remoto sin necesidad de extraerlos y tener que almacenarlos en local. IMAP soporta actualizaciones concurrentes. IMAP resulta ser extremadamente til bajo enlaces de baja velocidad puesto que permite a los usuarios recuperar la estructura de los mensajes sin necesidad de bajarse todo el contenido. Adems puede realizar tareas tales como bsquedas directas en el servidor con el n de minimizar la utilizacin de la red.
Para instalar un servidor de POP o de IMAP se deben dar los siguientes pasos: 1. Seleccionar el servidor IMAP o POP que mejor cumpla a sus necesidades. Los siguientes servidores POP e IMAP son bien conocidos y son rmes candidatos para ello:
2. 3.
Instalar el dmon POP o IMAP de su eleccin desde el rbol de ports. Modique donde sea necesario /etc/inetd.conf para que el servidor POP o IMAP se ejecute automticamente.
AvisoTenga en cuenta que tanto POP como IMAP transmiten informacin, en especial el usuario y la contrasea, en texto plano. Eso signica que si se desea seguridad en la transmisin de la informacin a travs de la red se deben considerar mecanismos adicionales como por ejemplo el encapsulado de la sesin mediante ssh(1). El encapsulado de sesiones se explica en Seccin 14.11.8.
27.2.4.2. Acceso a carpetas de correo locales Las carpetas de correo pueden abrirse de forma local utilizando un agente de correo de usuario (MUA) en el servidor donde reside la carpeta. Se suelen usar los programas mutt or mail(1).
479
Function Base de datos de accesos de sendmail Carpeta de alias Listados de mquinas para las que sendmailacepta correo Conguracin del programa de correo Tabla de entregas de correo Archivo de conguracin principal de sendmail Usuarios virtuales y tablas de dominio
27.3.1. /etc/mail/access
La base de datos de accesos dene qu mquinas o direcciones IP pueden acceder al servidor de correo y que clase de acceso tienen permitido. Las mquinas se listan junto con las opciones OK, REJECT, RELAY o simplemente junto con un mensaje de error que se entrega a la rutina de gestin de excepciones de sendmail. Las mquinas que se listan junto con la opcin OK, que es el valor por defecto, tienen permiso para enviar correo a la mquina servidora siempre y cuando la direccin de correo de destino sea la mquina servidora de correo. Las mquinas listadas junto con la opcin REJECT tienen el acceso prohibido a conexiones de correo electrnico con el servidor. Por ltimo las mquinas que poseen la etiqueta RELAY para sus nombres tienen permitido enviar correo para cualquier destino a travs de la mquina servidora de correo. Ejemplo 27-1. Conguracin de la base de datos de acceso de sendmail
cyberspammer.com 550 We dont accept mail from spammers FUENTE.DE.CORREO.INDISCRIMINADO@ 550 We dont accept mail from spammers otra.fuente.de.spam REJECT okay.cyberspammer.com OK 128.32 RELAY
En el ejemplo se pueden observar cinco entradas. Los generadores de correo que coinciden con la parte izquierda de la tabla se ven afectados por la parte accin especicada en la parte derecha. Los primeros dos ejemplos emiten un cdigo de error para la rutina de excepciones de sendmail. El mensaje de error se transmite a la mquina remota cuando se recibe un correo que coincide con la parte izquierda de la tabla. La siguiente entrada rechaza correo de una determinada mquina de internet, otra.fuente.de.spam. La siguiente entrada acepta conexiones de correo de la mquina okay.cyberspammer.com, lo cual es ms exacto que la lnea de arriba de cyberspammer.com. Las coincidencias ms completas tienen precedencia sobre las menos especcas. La ltima entrada permite actuar como
480
Captulo 27. Correo Electrnico relay o pasarela de correo electrnico para aquellas mquinas que posean una direccin IP que comience por 128.32. stas mquinas podran enviar correo destinado a otros servidores de correo utilizando el nuestro. Cuando se actualiza este chero se debe ejecutar make dentro de /etc/mail/ para que se actualice la base de datos.
27.3.2. /etc/mail/aliases
La base de datos de alias contiene una lista de directorios virtuales que son traducidas a otros usuarios, cheros, programas o incluso otros alias. A continuacin se muestran unos pocos ejemplos de la sintxis que se puede utilizar dentro del chero /etc/mail/aliases: Ejemplo 27-2. Mail Aliases
root: usuariolocal ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"
El formato del chero es sencillo; el nombre de la carpeta de correo que aparece a la izquierda de los dos puntos se traduce al/los destinos de la derecha. El primer ejemplo simplemente traduce la carpeta root a la carpeta usuariolocal, la cual se examina de nuevo utilizando la misma base de datos de alias, y si no existe ninguna otra coincidencia el mensaje se entrega al usuario local usuariolocal. En el ejemplo siguiente se muestra una lista de correo. Todo correo que se enva a la carpeta ftp-bugs se traduce en un envo para tres carpetas locales diferentes: joe, eric y paul. Es importante sealar que tambin se pueden especicar carpetas remotas mediante la forma usuario@ejemplo.com. El siguiente ejemplo muestra la escritura del correo a un chero, en este caso en /dev/null. El ltimo ejemplo muestra el envi de correo a un programa; en este caso el mensaje de correo se escribe en la entrada estndar del programa /usr/local/bin/procmail utilizando una tubera (o pipe) de UNIX. Cuando se actualiza este chero se debe ejecutar make dentro de /etc/mail/ para actualizar la base de datos.
27.3.3. /etc/mail/local-host-names
Este archivo es una lista de nombres de mquinas que sendmail(8) acepta como nombres locales. Se suele utilizar para escribir aquellos dominios o mquinas de los cuales sendmail va a recibir correo. Por ejemplo, si nuestro servidor de correo va a aceptar correo proveniente del dominio ejemplo.com y tambin de la mquina mail.ejemplo.com nuestro local-host-names debera ser algo as:
ejemplo.com mail.ejemplo.com
Cuando se actualiza este chero sendmail(8) necesita ser reiniciado para que tenga en cuenta los cambios.
27.3.4. /etc/mail/sendmail.cf
Archivo de conguracin principal de sendmail, controla el comportamiento global de sendmail, incluyendo cualquier tarea desde la reescritura de direcciones de correo electrnico hasta la devolucin de mensajes de error a los servidores de correo remotos. Es evidente que con un abanico tan diverso el chero de conguracin acaba por
481
Captulo 27. Correo Electrnico ser bastante complejo y sus detalles quedan fuera de los objetivos de esta seccin. Afortunadamente este chero raras veces necesita ser modicado, al menos en lo que respecta a servidores de correo estndar. El chero de conguracin principal de sendmail se puede construir a partir de m4(1), es decir, macros que se utilizan para denir caractersticas y comportamientos especcos de sendmail. Se ruega al lector consultar /usr/src/contrib/sendmail/cf/README para obtener ms detalles acerca de las distintas macros que se pueden utilizar. Cuando se realizan cambios a este chero sendmail debe ser reiniciado para que los cambios surtan efecto.
27.3.5. /etc/mail/virtusertable
El chero virtusertable asocia direcciones de correo pertenecientes a dominios y carpetas virtuales con carpetas reales. Estas carpetas pueden ser locales, remotas, alias denidos en /etc/mail/aliases o incluso cheros. Ejemplo 27-3. Ejemplo de asociacin de correo de dominio virtual
root@ejemplo.com postmaster@ejemplo.com @ejemplo.com root postmaster@noc.ejemplo.net joe
En el ejemplo superior se observa una asociacin para el dominio ejemplo.com. Este chero se procesa de arriba a abajo buscando la primera coincidencia. La primera entrada asocia root@ejemplo.com con la carpeta de correo local denominada root. La siguiente entrada asocia postmaster@ejemplo.com con la carpeta postmaster situada en la mquina noc.ejemplo.net. Por ltimo, si no se ha encontrado ninguna coincidencia para ejemplo.com se le asigna la ltima asociacin, la cual asocia cualquier mensaje de correo proveniente de ejemplo.com con la carpeta de correo local denominada joe.
482
Captulo 27. Correo Electrnico por ejemplo /usr/bin/sendmail. En cualquier caso el nuevo software de correo suele entrar en funcionamiento con una conguracin por defecto. Por favor, recuerde que se recomienda leer la documentacin del MTA seleccionado para obtener ms informacin.
dentro de /etc/rc.conf. Esta variable desactiva el servicio de recepcin de correo de sendmail, pero salvo que se modique (ver ms adelante) el chero /etc/mail/mailer.conf sendmail todava ser la aplicacin elegida para enviar correo electrnico.
27.4.2.2. FreeBSD 4.5-STABLE desde de 2002/4/4 (Incluyendo 4.6-RELEASE y posteriores) Para poder desactivar completamente sendmail haga lo siguiente:
sendmail_enable="NONE"
Si slo se quiere desactivar el servicio de correo de entrada de sendmail, basta con establecer la variable:
sendmail_enable="NO"
dentro de /etc/rc.conf. En rc.sendmail(8) tiene ms informacin sobre las opciones de arranque de sendmail.
483
La misma orden se puede utilizar tambin para ejecutar el servidor de forma manual. Cuando el sistema se est reiniciando los scripts del sistema ejecutan los cheros ubicados en /usr/local/etc/rc.d/ utilizando la opcin stop, en nuestro caso:
/usr/local/etc/rc.d/supermailer.sh stop
Dicho comando tamben se puede utilizar para detener el servidor de correo de forma manual cuando el sistema FreeBSD se ejecuta con normalidad.
27.4.3.2. FreeBSD 4.5-STABLE despus de 2002/4/11 (Incluyendo 4.6-RELEASE y posteriores) Con las ltimas versiones de FreeBSD se puede utilizar el mtodo anterior pero tambin se puede especicar
mta_start_script="nombre_de_fichero"
dentro de /etc/rc.conf, donde nombre_de_fichero es el nombre de algn script que se ejecuta en tiempo de arranque para inicializar el nuevo MTA.
484
Esto signica que cuando cualquiera de estos comandos (por ejemplo sendmail msmamente) se ejecutan el sistema ejecutar en su lugar una copia del el sistema ejecuta en su lugar una copia del mailwrapper denominada sendmail que chequea el chero mailer.conf y ejecuta /usr/libexec/sendmail/sendmail. Este sistema permite cambiar de una forma sencilla los binarios que se ejecutan realmente cuando se invocan las funciones de sendmail. Si se quiere que ejecutar /usr/local/supermailer/bin/sendmail-compat en lugar de sendmail se puede cambiar el chero /etc/mail/mailer.conf para que contenga lo siguiente:
sendmail send-mail mailq newaliases hoststat purgestat /usr/local/supermailer/bin/sendmail-compat /usr/local/supermailer/bin/sendmail-compat /usr/local/supermailer/bin/mailq-compat /usr/local/supermailer/bin/newaliases-compat /usr/local/supermailer/bin/hoststat-compat /usr/local/supermailer/bin/purgestat-compat
en lugar de
485
dentro del chero /etc/resolv.conf. No obstante se debe asegurar de que el orden de bsqueda no se expande ms all del lmite entre la administracin local y la administracin pblica, tal y como se le denomina en la RFC 1535.
2. sendmail dice mail loops back to myself (el correo vuelve a mis manos)
Las FAQ de sendmail se pueden encontrar en http://www.sendmail.org/faq/ y son de lectura obligada si se quiere depurar el comportamiento y la conguracin de sendmail.
3. ?Cmo puedo ejecutar un servidor de correo utilizando una mquina que se conecta a internet mediante modem analgico (dial-up) ?
Se quiere conectar una mquina FreeBSD dentro de una LAN a Internet. La mquina FreeBSD ser una pasarela de correo para dicha LAN. La conexin mediante PPP no es dedicada. Existen al menos dos formas distintas de hacerlo. Una de ellas consiste en utilizar UUCP. Otra forma consiste en hacerse con un servidor de internet a tiempo completo para proporcionar servicios de agente de transporte secundario para nuestro dominio. Si por ejemplo el dominio de nuestra compaa es ejemplo.com, nuestro proveedor de acceso a internet puede instalar lo siguiente en el DNS:
486
Ntese que el agente de correo primario es nuestro dominio, ejemplo.com, y adems se encuentra congurado un agente de transporte secundario en la mquina ejemplo.net. En este caso slamente se debe especicar una mquina como receptor nal de correo (aadiendo Cw ejemplo.com) al chero /etc/mail/sendmail.cf de la mquina example.com) Cuando el sendmail que est enviando el correo trata de entregar dicho correo primero intentar conectarse con nosotros (ejemplo.com) utilizando el enlace de modem. Lo ms probable es que la operacin termine despus de un tiempo de espera debido a que el enlace modem est cado. La aplicacin sendmail automticamente entregar el correo al servidor especicado como agente de transporte de correo secundario (segundo registro MX), es decir, entregar el correo a nuestro proveedor de servicios de internet (ejemplo.net). El sitio MX secundario tratar de conectarse con nuestra mquina de una forma peridica con el objeto de entregar el correo a la mquina que acta como agente servidor de correo primario (ejemplo.com). Puede ser de mucha utilidad un script de login como el que se muestra a continuacin:
#!/bin/sh # Ponme en /usr/local/bin/pppmiconexion ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmiconexion
Si vamos a crear un script de login separado para un usuario determinado se puede utilizar sendmail -qRejemplo.com en lugar del script anterior. Esto obliga a que se procesen de forma inmediata todos los correos que se encuentren en la cola de ejemplo.com. Vamos a dar una vuelta ms de tuerca a la situacin: Mensaje robado a la lista de correo de Proveedores de Servicios de Internet en FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isp).
> > > > > > > > > > > > > > Nosotros proporcionamos servicio de MX secundario a un cliente nuestro. El cliente se conecta a nuestro servidor varias veces al da de forma automtica para recoger sus correos para almacenarlos en su servidor MX primario (nosotros no llamamos a su organizacin justo cuando nos llega un correo suyo). Nuestro sendmail enva la cola de correos cada 30 minutos. En estos momentos nuestro cliente tiene que estar al menos 30 minutos conectado para asegurarnos de que todo su correo ha sido enviado al servidor MX primario. ?Existe algn comando que permita indicar a sendmail que enve todos los correos de la cola cuando quiera el cliente? El cliente no tiene permisos de superusuario en la mquina que alberga nuestro agente de transporte, por supuesto.
En la seccin de privacy flags del fichero sendmail.cf existe una definicin como sta: Opgoaway,restrictqrun Basta con eliminar restrictqrun para permitir que usuarios sin permisos de superusuario arranquen el procesamiento de la cola. Sera conveniente adems que reordenaran los registros MX.
487
4. ?Por qu me siguen saliendo mensajes de error del tipo Relaying Denied cuando se trata de enviar correo proveniente de otras mquinas? En las instalaciones del sistema FreeBSD por defecto sendmail se congura para enviar correo slamente desde la mquina en la cual se est ejecutando. Por ejemplo si un servidor POP est disponible los usuarios sern capaces de consultar su correo desde la universidad, el trabajo u otras localizaciones remotas, pero dichos usuarios podrn enviar correo desde dichas ubicaciones. Es habitual que unos instantes despus del envo del correo dichos usuarios reciban un mensaje proveniente del MAILER-DAEMON con un error como 5.7 Relaying Denied. Existen varias formas de solventar este problema. La ms sencilla consiste en escribir la direccin IP de su proveedor de servicios dentro del chero /etc/mail/relay-domains. Una forma rpida de hacerlo sera:
# echo "un.isp.ficticio.com" > /etc/mail/relay-domains
Despus de crear o editar dicho chero se debe reiniciar sendmail. Esto funciona perfectamente si usted es el administrador del servidor y no desea enviar correo localmente o si preere utilizar un cliente de correo o cualquier otro sistema en otra mquina distinta a la que alberga el servidor de correo. Es muy til sobre todo cuando slamente se tienen una o dos direcciones de correo eletrnico. Si hay en liza un gran nmero de direcciones de correo, edite el chero anterior con su editor de texto favorito y aada uno a uno los correspondientes dominios.
un.isp.ficticio.com otro.isp.ficticio.net y.otro.isp.ficticio.org www.ejemplo.org
Ahora, cualquier correo enviado a travs de su sistema por cualquier mquina que se encuentre en este chero (siempre y cuando el usuario tenga una cuenta en nuestro sistema) podr ser enviado con xito. Es una manera
488
Captulo 27. Correo Electrnico elegante de permitir a los usuarios enviar correo eletrnico desde nuestro servidor de correo sin permitir al resto del mundo que haga lo mismo (lo que se conoce como SPAM).
Ejecutar nuestro propio servidor de nombres y comprar nuestro propio dominio. Por ejemplo FreeBSD.org Conseguir la entrega de correo directa hacia nuestra mquina. Esto se logra entregando el correo a la direccin IP que se asocia al nombre de DNS de nuestra mquina. Por ejemplo ejemplo.FreeBSD.org.
Independientemente de la opcin elegida para tener entrega directa en nuestra mquina debemos poseer una direccin IP esttica (a diferencia de las direcciones dinmicas, que son utilizadas en conguraciones donde se utiliza el protocolo PPP). Si nos encontramos detrs de un cortafuegos se debe permitir el trco SMTP (puerto 25) hacia nuestra mquina. Si adems queremos recibir correo directamente en nuestra mquina se deben cumplir los siguientes requisitos:
Asegurar que el registro MX de menor numeracin de nuestro DNS apunta a la direccin IP de nuestra mquina. Asegurar que no existe ninguna entrada MX en nuestro DNS para nuestra mquina. Es decir, mientras que el registro MX del punto anterior hace referencia al dominio administrativo que gestionamos con nuestro servidor de nombres, en este apartado se quiere destacar que no debe existir ningn registro MX especco para el nombre concreto de nuestra mquina.
Cumpliendo las dos puntualizaciones anteriores podemos recibir correo electrnico mediante entrega directa en nuestra mquina. Por ejemplo:
# hostname
ejemplo.FreeBSD.org
# host ejemplo.FreeBSD.org
Si se observa esta conguracin la entrega directa de correo para <su_login@ejemplo.FreeBSD.org> debera funcionar sin problemas (suponiendo que sendmail se est ejecutando correctamente en ejemplo.FreeBSD.org). Si en lugar de lo anterior ve algo como esto:
# host ejemplo.FreeBSD.org
489
Todos los correos enviados a nuestro host (ejemplo.FreeBSD.org) sern recogidos por hub bajo el mismo nombre de usuario en lugar de ser enviados directamente a nuestra mquina. La informacin anterior se gestiona utilizando el servidor de DNS. El registro de DNS que transporta la informacin de encaminamiento de correo eletrnico es el registro M ail eX change. Si no existe ningn registro MX el correo se entregar a la direccin IP que se obtenga de resolver el nombre de dominio que se encuentre a continuacin del nombre de usuario en la direccin de correo de destino (esto es, (despus de la @). En un cierto momento la entrada MX para freefall.FreeBSD.org tena este aspecto:
freefall freefall freefall freefall MX MX MX MX 30 40 10 20 mail.crl.net agora.rdrop.com freefall.FreeBSD.org who.cdrom.com
Como se puede observar, freefall tena varias entradas MX. El nmero de MX ms bajo es la mquina que recibe correo directamente si se encuentra disponible; si dicha mquina no est accesible por algn motivo las otras mquinas (llamadas tambin MXs de backup) aceptarn los mensajes temporalmente, y los transmitirn de nuevo cuando alguna mquina perteneciente a alguna entrada MX de numeracin ms baja se encuentre disponible y el proceso se repetir hasta que se alcance la mquina que tenga el registro MX ms bajo. Las organizaciones donde residen los servidores (MX) de backup deberan poseer acceso a internet de una forma independiente para minimizar el riesgo de prdida de conectividad. Nuestro ISP o cualquier otra organizacin independiente debera poder proporcionarnos este servicio sin problemas.
Esta conguracin redirigir el correo para cualquier estacin de trabajo hacia nuestro servidor de correo sin que tengan importancia las direcciones IP asignadas mediante el registro de tipo A. Recordemos que el correo siempre se encamina utilizando primero los registros de tipo MX. Normalmente no podremos realizar esta conguracin salvo que estemos ejecutando nuestro propio servidor de DNS para nuestro dominio. Si no es el caso y no es posible ejecutar nuestro propio servidor de DNS debemos comunicarnos con nuestro proveedor de servicios o con quien pueda proporcionarnos servicio de DNS y solicitarle una modicacin como la anterior.
490
Captulo 27. Correo Electrnico Si adems ofrecemos servicios de alojamiento virtual de correo la siguiente informacin puede resultar til. Asumiremos que tenemos un cliente con su propio dominio, por ejemplo cliente1.org y queremos que todo el correo enviado a cliente1.org sea redirigido hasta nuestro servidor de correo, mail.nuestroservidor.com. La entrada necesaria en el DNS debera ser la siguiente:
cliente1.org MX 10 mail.nuestroservidor.com
No necesitamos ningn registro de tipo A para cliente1.org si slamente queremos gestionar el correo para ese dominio.
Nota: Tenga en cuenta que un ping a cliente1.org no funcionar a menos que exista un registro de tipo A para dicha mquina.
La ltima cosa que debemos realizar en nuestro servidor de correo es comunicar a sendmail para qu dominios y/o mquinas debe aceptar correo. Existen varias formas en las que se puede realizar esta tarea. Cualquiera de las siguiente funcionar:
Aadir las mquinas deseadas al chero /etc/mail/local-host-names si se est utlizando la macro FEATURE(use_cw_file). Si se est utilizando una versin de sendmail anterior a la 8.10 el chero que se debe utilizar es /etc/sendmail.cw. Aadir la lnea Cwsu.servidor.com al chero /etc/sendmail.cf o /etc/mail/sendmail.cf si se est utilizando una versin de sendmail posterior a la versin 8.10.
Este comando extrae slamente unos pocos cientos de kilobytes. El chero README que hay en el directorio cf puede servirle como una introduccin bsica a la conguracin mediante m4(1). La mejor forma de soportar la entrega de correo mediante UUCP es utilizando la caracterstica mailertable. Esta caracterstica crea una base de datos que sendmail utiliza para tomar decisiones de encaminamiento.
491
Captulo 27. Correo Electrnico En primer lugar creamon el chero .mc. El directorio /usr/src/usr.sbin/sendmail/cf/cf alberga varios ejemplos del mismo. Suponiendo que nuestro chero conguracin se llama foo.mc para convertir dicho archivo en un chero sendmail.cf vlido basta con ejecutar lo siguiente:
# cd /usr/src/usr.sbin/sendmail/cf/cf # make foo.cf # cp foo.cf /etc/mail/sendmail.cf
Las lneas que contienen accept_unresolvable_domains, nocanonify, y confDONT_PROBE_INTERFACES prohben la utilizacin del DNS durante la entrega de correo. La clusula UUCP_RELAY es necesaria para soportar entrega mediante UUCP. Lo nico que hay que hacer es escribir un nombre de mquina en ese punto. Dicha mquina debe ser capaz de gestionar las direcciones del pseudo-dominio .UUCP; en la mayora de los casos se escribe en este punto el nombre de la mquina perteneciente al proveedor de servicios que hace de relay. Una vez que tenemos esto congurado se necesita un chero /etc/mail/mailertable. Si solamente tenemos un enlace con el exterior, que usamos para todos nuestro correos, basta una conguracin como la que se muestra a continuacin:
# # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable . uucp-dom:su.relay.uucp
492
Captulo 27. Correo Electrnico Las primeras tres lneas se encargan de manejar casos especiales en los que el correo dirigido directamente al dominio no se enva a la ruta por defecto sino a algn vecino UUCP para acortar el nmero de saltos involucrados en la entrega de dichos correos. La siguiente lnea gestiona el correo para el dominio ethernet local, el cual puede ser entregado utilizando SMTP. Finalmente los vecinos UUCP se mencionan en la notacin de pseudo-dominio .UUCP para permitir que un vecino UUCP receptor de correo pueda sobreescribir las reglas por defecto. La ltima lnea siempre es un punto; se asocia con cualquier otra cosa que no ha sido tratada en reglas anteriores y donde se realiza entrega UUCP a un vecino UUCP que sirve como pasarela de correo universal para todo el mundo. Todos los nombres de mquinas bajo la clave uucp-dom: deben ser vecinos UUCP vlidos, lo cual se puede vericar utilizando el comando uuname. Recuerde que este chero debe convertirse en una base de datos DBM antes de que usarse. El comando que se utiliza para realizar esta tarea se suele especicar como un comentario al principio del chero mailertable. Cada vez que se modique el chero mailertable se debe ejecutar dicho comando. Un consejo nal: si dudamos sobre una determinada ruta de encaminamiento de correo se puede ejecutar sendmail con el parmetro -bt. Este parmetro ejecuta sendmail en modo prueba de direcciones; simplemente basta con escribir 3,0 seguido por la direccin de correo de la que queremos comprobar su correcto encaminamiento. La ltima lnea nos dice el agente de correo interno que se utiliza, la mquina de destino con que el agente ser invocado y la direccin (posiblemente traducida) de correo. Se puede abandonar este modo de funcionamiento escribiendo Ctrl+D.
% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address>
> 3,0 prueba@ejemplo.com
input: foo @ example . com returns: $# uucp-dom $@ su.relay.uucp $: prueba < @ ejemplo . com . >
Nuestra computadora es una mquina de escritorio, pero queremos ser capaces de utilizar programas como send-pr(1). Para ello se debera utilizar el relay de nuestro ISP. Nuestra computadora es un servidor que no gestiona correo de forma local, si no que necesita pasar todos los correos recibidos una pasarela que se encarga de su procesamiento y entrega nal.
Casi cualquier MTA es capaz de actuar como pasarela o relay. Por desgracia congurar un MTA para que slo gestione correo saliente puede ser muy complicado. Programas del estilo de sendmail y postx son demasiado pesados para realizar slamente esta tarea. Si adems estamos utilizando un servicio de acceso a internet tpico nuestro contrato puede prohibir explcitamente la ejecucin de un servidor de correo (o los puertos pueden estar ltrados).
493
Captulo 27. Correo Electrnico La forma ms sencilla de utilizar un servicio de pasarela es mediante la instalacin del port mail/ssmtp. Basta con ejecutar el siguiente comando como root:
# cd /usr/ports/mail/ssmtp # make install replace clean
Una vez que ha sido instalado mail/ssmtp podemos congurarlo mediante un chero de slo cuatro lneas ubicado en /usr/local/etc/ssmtp/ssmtp.conf:
root=sudireccionrealdecorreo@ejemplo.com mailhub=mail.ejemplo.com rewriteDomain=ejemplo.com hostname=_HOSTNAME_
Debemos asegurarnos de que se utiliza una direccin de correo real para root. Se debe introducir nuestra pasarela de correo en lugar de mail.ejemplo.com (algunos ISP llaman a la pasarela servidor de correo saliente o simplemente servidor SMTP). Debemos asegurarnos de que se desactiva sendmail mediante sendmail_enable="NONE" en /etc/rc.conf.
mail/ssmtp acepta algunas otras opciones. Consulte el chero de ejemplo que encontrar en /usr/local/etc/ssmtp; consulte tambin la pgina de manual de ssmtp, en la que hay ms ejemplos e
informacin al respecto. Ejecutar ssmtp de esta forma permite que cualquier software de nuestra computadora que necesite enviar correo funcione sin problemas y a la vez poder cumplir con las normas estipuladas en el contrato con nuestro ISP. Al mismo tiempo evitamos el uso de nuestro servidor de correo por parte de spammers.
27.9. Utilizacin del correo con una conexin mediante mdem analgico (dial-up)
Si se dispone de una direccin IP privada no es necesario realizar ningn ajuste a partir de la conguracin por defecto. Basta con asignar como nombre de nuestra mquina el nombre que tenemos registrado en el DNS y sendmail se encargar del resto. Por otra parte si utilizamos una conexin temporal a internet mediante PPP y se nos asigna una direccin IP de forma dinmica, lo ms normal es tener nuestras carpetas de correo alojadas en el servidor de correo de nuestro proveedor de servicios. Supongamos que el dominio de nuestro ISP es ejemplo.net y que nuestro nombre de usuario es usuario; adems hemos llamado a nuestra user, adems, hemos llamado a nuestra mquina bsd.home, y nuestro ISP nos ha comunicado que debemos utilizar como pasarela la mquina relay.ejemplo.net. Para recuperar correo de nuestra carpeta de correo se debe instalar un agente de recuperacin automtica de correo. fetchmail es una buena eleccin puesto que permite utilizar varios protocolos. Este programa est disponible como un paquete y tambin desde la coleccin de ports (mail/fetchmail). Normalmente nuestro ISP proporciona POP POP. Si utilizamos ppp a nivel de usuario se puede recuperar automticamente el correo cuando se establece la conexin ppp utilizando el chero /etc/ppp/ppp.linkup:
MYADDR: !bg su user -c fetchmail
Si utilizamos sendmail (como se muestra ms adelante) para entregar correo a cuentas remotas probablemente queramos que sendmail procese nuestras colas de correo tan pronto como nuestra conexin de internet se establezca.
494
Captulo 27. Correo Electrnico Para ello escriba el siguiente comando tras el comando de fetchmail que hemos escrito antes en el chero /etc/ppp/ppp.linkup:
!bg su user -c "sendmail -q"
Asumiendo que tenemos una cuenta para el usuario usuario en bsd.home. En el directorio home del usuario usuario en la mquina bsd.home debemos crear un chero .fetchmailrc con el siguiente contenido:
poll ejemplo.net protocol pop3 fetchall pass Secr3To
Este chero debe tener permisos de lectura slo para el propio dueo ya que contiene la contrasea de acceso a nuestra cuenta de POP en nuestro ISP ( Secr3To). Para poder enviar correo con la cabecera from: correcta, debemos decir a sendmail que utilice usuario@ejemplo.net en vez de usuario@bsd.home. Siguiendo con nuestro ejemplo es necesario decirle a sendmail que enve todo el correo a travs de la pasarela relay.ejemplo.net. El siguiente chero de conguracin .mc debe ser suciente para cumplir con las anteriores tareas:
VERSIONID(bsd.home.mc version 1.0) OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(ejemplo.net)dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(SMART_HOST, relay.ejemplo.net) Dmbsd.home define(confDOMAIN_NAME,bsd.home)dnl define(confDELIVERY_MODE,deferred)dnl
En la seccin anterior se explica cmo convertir este chero .mc en un chero de conguracin para sendmail, sendmail.cf. No debemos olvidar reiniciar sendmail despus de modicar el chero sendmail.cf.
495
Captulo 27. Correo Electrnico 2. Despus de instalar security/cyrus-sasl, edite /usr/local/lib/sasl/Sendmail.conf (o crelo si no existe) y aada la siguiente lnea:
pwcheck_method: passwd
Este mtodo activa la autenticacin de sendmail contra nuestra base de datos de FreeBSD, passwd. Esto nos evita el problema de tener que crear un nuevo conjunto de usuarios y contraseas para cada usuario que necesite validarse mediante SMTP y adems nos permite mantener el mismo login y contrasea que los usuarios utilizan para acceder a sus cuentas para el acceso al correo electrnico. 3. Editar/etc/make.conf y aadir las siguientes lneas:
SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl
Estas lneas proporcionan a sendmail las opciones de conguracin necesarias para enlazar con cyrus-sasl en tiempo de compilacin. Debemos asegurarnos de que cyrus-sasl ha sido instalado correctamente recompilar sendmail. 4. Recompile sendmail utilizando el siguiente comando:
# # # # # cd /usr/src/usr.sbin/sendmail make cleandir make obj make make install
La compilacin de sendmail no debera dar problemas siempre y cuando /usr/src no haya cambiado sustancialmente y siempre y cuando las bibliotecas compartidas necesarias se encuentren disponibles. 5. Una vez que sendmail se ha compilado y reinstalado con correctamente debemos editar el chero
/etc/mail/freebsd.mc (o el chero que se utilice como .mc de referencia. Hay administradores que escogen utilizar la salida de hostname(1) como el nombre del chero .mc que se utiliza para la conguracin de
sendmail por motivos de uniformidad ). Aada las siguientes lneas a dicho chero:
dnl set SASL options TRUST_AUTH_MECH(GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN)dnl define(confAUTH_MECHANISMS, GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN)dnl define(confDEF_AUTH_INFO, /etc/mail/auth-info)dnl
Estas opciones conguran los distintos mtodos de que dispone sendmail para validar a los usuarios de correo. Si se desea utilizar otro mtodo distinto a pwcheck por favor consulte la documentacin. 6. Para terminar ejecutamos make(1) mientras nos encontramos dentro de /etc/mail. Este comando trata el chero .mc y crea el chero .cf correspondiente (con el mismo nombre que el anterior pero terminado en .cf). A continuacin se utiliza el comando make install restart, el cual copia el chero .cf recin generado al chero sendmail.cf y a continuacin reinicia sendmail. Para ms informacin sobre este proceso puede consultarse el contenido de /etc/mail/Makefile.
Si todo lo anteriormente comentado ha funcionado correctamente deberamos ser capaces de introducir la informacin de nuestro login en nuestro cliente de correo y enviar un mensaje de prueba. Para investigar ms a fondo estos temas se puede habilitar la opcin LogLevel de sendmail al valor 13 y observar detenidamente el archivo /var/log/maillog en busca de posibles mensajes de error. Puede ser necesario aadir las siguientes lneas al chero /etc/rc.conf de modo que el servicio explicado en esta seccin se encuentre disponible automticamente desde el arranque:
496
Esto permite que la inicializacin de SMTP_AUTH se produzca durante el arranque del sistema. Para ms informacin por favor visite la pgina autenticacin SMTP (http://www.sendmail.org/~ca/email/auth.html) de sendmail
27.11.1. mail
mail(1) es el agente de correo de usuario (MUA) que viene por defecto con FreeBSD. Es un MUA de consola que ofrece toda la funcionalidad bsica necesaria para enviar y recibir correos, aunque resulta limitado limitado en su capacidad para manejar adjuntos y slamente soporta carpetas de correo locales. Aunque mail no soporta de forma nativa la interaccin con servidores de correo mediante POP o IMAP estas carpetas de correo remotas pueden descargarse a un chero mbox local utilizando una aplicacin de descarga como fetchmail, que se describe en este mismo captulo en (Seccin 27.12). Para enviar y recibir correo eletrnico basta con ejecutar el comando mail. Veamos un ejemplo:
% mail
El contenido de la carpeta de usuario en el directorio /var/mail se leen automticamente. Si la carpeta se encuentra vaca la aplicacin termina su ejecucin con un mensaje que indica que no ha podido encontrar correo. Una vez que la carpeta ha sido leda la interfaz de la aplicacin entra en funcionamiento y se muestra por pantalla un listado de los mensajes recuperados. Los mensajes se numeran automticamente y pueden leerse como se observa en el siguiente ejemplo:
Mail version 8.1 6/6/93. Type ? for "/var/mail/marcs": 3 messages 3 new >N 1 root@localhost Mon Mar N 2 root@localhost Mon Mar N 3 root@localhost Mon Mar help. 8 14:05 8 14:05 8 14:05 14/510 14/509 14/509 "test" "user account" "sample"
Los mensajes se pueden leer utilizando el comando t de mail escribiendo a continuacin el nmero del mensaje que queremos leer. En este ejemplo vamos a leer el primer correo:
& t 1 Message 1: From root@localhost
Mon Mar
8 14:05:52 2004
497
Como podemos observar en el ejemplo anterior el comando t muestra el contenido del correo eletrnico con todas sus cabeceras. Para mostrar el listado con todos los correos de nuevo, se debe utilizar la tecla h. Si el correo eletrnico requiere una contestacin se puede utilizar la aplicacin mail para responder utilizando la tecla R o r. La tecla R indica a mail que conteste slo al origen (remitente) del correo, mientras que la tecla r tanto al remitente a los otros usuarios receptores del mensaje original. Adems ambos comandos se pueden ejecutar escribiendo a continuacin el nmero que identica al mensaje que se quiere responder. Tras esto la respuesta puede redactarse , y se debe indicar el nal del mensaje mediante un punto (.) a continuacin de un salto de lnea. Veamos un ejemplo:
& R 1 To: root@localhost Subject: Re: test
Thank you, I did get your email. .
EOT
Para enviar nuevos correos eletrnicos se debe utilizar la tecla m seguida de la direccin de de correo del destinatario. Se pueden especicar varios destinatarios de correo separando cada direccin de correo con una coma ( , ). El asunto del mensaje de correo se puede escribir a continuacin seguido por el cuerpo del mensaje. El nal del mensaje se especica como en el caso anterior, utilizando un . tras un saldo de lnea y pulsando la tecla enter.
& mail root@localhost Subject: I mastered mail
Now I can send and receive email using mail ... :) .
EOT
Mientras nos encontremos dentro de la mail el comando ? puede utilizarse para mostrar la ayuda en lnea aunque la principal fuente de informacin detallda sobre esta aplicacin es la pgina man mail(1).
Nota: Tal y como se ha dicho ya la aplicacin mail(1) no fue diseada originalmente para gestionar adjuntos, por lo que su forma de gestionarlos resulta ser extremadamente mala. MUA ms modernos como mutt gestionan los adjuntos de correo de una forma mucho ms inteligente. Si se desea utilizar el comando mail el port converters/mpack le puede resultar bastante til.
498
27.11.2. mutt
mutt es un agente de correo de usuario pequeo pero muy potente, funcional y con excelentes caractersticas; veamos algunas:
La habilidad de agrupar mensajes en hilos. Soporte de PGP para cifradon y rma digital de correos eletrnicos. Soporte de tipos MIME. Soporte de gestin de correo en formato Maildir. Altamente congurable por el usuario.
Toda estas caractersticas hacen de mutt uno de los agentes de correo ms avanzados del momento. Consulte http://www.mutt.org para ms informacin sobre mutt. La versin estable de mutt se puede instalar usando el port mail/mutt mientras que la versin de desarrollo est en mail/mutt-devel. Una vez que se ha instalado el port, mutt puede ejecutarse mediante el siguiente comando:
% mutt
mutt lee automticamente el contenido de la carpeta de correo del usuario dentro del directorio /var/mail y muestra por pantalla su contenido. Si el directorio est vaco mutt quedar a la espera de los comandos que pueda pasarle el usuario. En el ejemplo que se muestra a continuacin puede verse cmo mutt facilita la lista de mensajes al usuario:
Para leer un correo basta con seleccionarlo usando las teclas de cursor, y presionando la tecla Enter. Veamos cmo muestra mutt un correo electrnico:
499
Al igual que ocurre con mail(1) mutt permite que los usuarios contesten al remitente de cualquier mensaje as como a los dems receptores. Para responder slo al remitente se puede utilizar la tecla r. Para responder a un grupo, es decir a todos los receptores y al remitente del correo eletrnico pulse g.
Nota: mutt tiene vi(1) como editor por defecto para crear y responder a los mensajes de correo eletrnico. Si preere emplear otro editor modique el valor de la variable editor en .muttrc.
Para escribir un mensaje de correo presione la tecla m. Despus de escribir el asunto mutt ejecuta vi(1) y el cuerpo del mensaje puede escribirse. Una vez escrito el correo salga de vi y mutt se ejecutar de nuevo mostrando por pantalla un resumen del correo que est a punto de ser enviado. Para enviar ese correo hay que pulsar y. Este es un ejemplo de uno de esos resmenes:
mutt tambin contiene una amplia ayuda a la que se accede desde la mayora de los mens pulsando la tecla ?. La primera lna de la pantalla tambin muestra las teclas de mtodo abreviado cuando es posible utilizarlas.
500
27.11.3. pine
pine es una aplicacin de correo enfocada a los usuarios principiantes o inexpertos pero tambin incluye algunas caractersticas avanzadas.
AvisoSe han descubierto en pine varias vulnerabilidades que pueden explotarse de forma remota. Esas vulnerabilidades permiten que atacantes remotos puedan ejecutar cdigo como si fueran usuarios locales del sistema mediante el envo de correos con un formato determinado. Todos los problemas conocidos se han resuelto pero el cdigo de pine est escrito de una forma insegura y el Security Ofcer de FreeBSD opina que es probable que existan todava vulnerabilidades sin descubrir. Si decide instalar pine debe asumir los riesgos que ello puede implicar.
La versin actual de pine se puede instalar utilizando el port mail/pine4. Una vez que se ha instalado pine se puede ejecutar mediante el siguiente comando:
% pine
La primera vez que se ejecuta pine se muestra un mensaje de bienvenida con una pequea introduccin a la herramienta junto con una peticin del equipo de desarrollo de pine en la que se solicita que se enve un correo de forma annima un correo de forma annima para que puedan hacerse una idea s de cuntos usuarios estn utilizando la herramienta. Para enviar dicho correo hay que presionar la tecla Enter, o bien puede pulsar la tecla E para salir de la ventana de bienvenida sin enviar dicho correo. A continuacin se muestra un ejemplo de la pgina de bienvenida:
Los usuarios disponen de un men principal, que puede navegarse utilizando las echas. Este men proporciona atajos para la composicin de nuevos correos, para navegar a travs de las carpetas de correo, e incluso para la administracin de la libreta de direcciones. Justo debajo del men principal, se muestran las teclas de mtodo abreviado (atajos) que pueden utilizarse en cada momento. El directorio por defecto que pine intenta abrir es inbox. Para ver el ndice de todos los mensajes recibidos pulse la tecla I o seleccione la opcin de men denominada MESSAGE INDEX como se muestra a continuacin:
501
El ndice muestra los mensajes en el directorio actual y puede navegarse en l utilizando las teclas del cursor. El mensaje seleccionado se puede leer presionando la tecla Enter.
En la captura de pantalla que se muestra a continuacin se muestra un mensaje de ejemplo. Las teclas de atajo se muestran como referencia en la parte baja de la pantalla. Un ejemplo de dichas teclas de mtodo abreviado es la tecla r que permite responder al mensaje que se muestra en dicho momento.
502
La contestacin a un mensaje de correo eletrnico en pine se realiza mediante el editor pico, que se instala por defecto junto con pine. pico permite navegar de forma sencilla por los distintos mensajes de correo y es ligeramente ms sencilla de manejar que vi(1), sobre todo para los usuarios noveles. Una vez que se ha escrito la rplica al correo se enva pulsando la tecla Ctrl+X. pine pedir conrmacin antes de enviarlo.
pine puede congurarse utilizando la entrada SETUP del men principal. Se ruega consultar http://www.washington.edu/pine/ para obtener ms informacin.
503
Suporte de POP3, APOP, KPOP, IMAP, ETRN y ODMR. Puede reenviar correo utilizando SMTP lo que permite que las reglas de ltrado, reenvo y aliasing funcionen correctamente. Se puede ejecutar en modo dmon comprobar peridicamente el correo entrante. Puede recuperar correo de mltiples carpetas y reenviarlos, en funcin de la conguracin establecida, a varios usuarios locales.
Queda fuera del objetivo de este documento explicar todas las caractersticas de fetchmail pero algunas de ellas se exponen a ontinuacin. fetchmail usa un chero de conguracin denominado .fetchmailrc. Este chero incluye informacin sobre el servidor de correo remoto y los datos necesarios para poder hacer login en l. Debido a la naturaleza sensible de la informacin que se almacena en dicho chero se recomienda modicar los permisos para que sea de slo sea legible por su propietario. Lo conseguir mediante el siguiente comando:
% chmod 600 .fetchmailrc
El siguiente ejemplo muestra un chero de conguracin .fetchmailrc. Este ejemplo sirve para automatizar la descarga del correo de un determinado usuario mediante POP. El chero de conguracin hace que fetchmail se conecte a ejemplo.com utilizando como nombre de usuario joesoap y como contrasea XXX. En el ejemplo se asume que el usuario joesoap tambin es un usuario vlido en el sistema local.
poll ejemplo.com protocol pop3 username "joesoap" password "XXX"
El siguiente ejemplo permite a fetchmail conectarse a mltiples servidores POP e IMAP y redirige los correos a diferentes usuarios locales en funcin de la conguracin establecida:
poll user user poll user ejemplo.com proto pop3: "joesoap", with password "XXX", is "jsoap" here; "andrea", with password "XXXX"; ejemplo.net proto imap: "john", with password "XXXXX", is "myth" here;
fetchmail se puede ejecutar en modo dmon mediante el parmetro -d seguido seguido por un intervalo de tiempo (expresado en segundos) que indica cada cunto tiempo debe fetchmail interrogar a los distintos servidores listados en .fetchmailrc. El siguiente ejemplo hace que fetchmail interroge cada 60 segundos:
% fetchmail -d 60
504
Captulo 27. Correo Electrnico MTA que preera de una forma sencilla aadiendo la siguiente lnea al chero .forward dentro del directorio home del usuario que dese usar procmail:
"|exec /usr/local/bin/procmail || exit 75"
La siguiente seccin muestra algunas reglas bsicas de procmail, junto con una breve descripcin de las acciones que realizan. Estas reglas, y muchas otras se deben insertar dentro del chero .procmailrc ubicado en el directorio home del usuario. En la pgina man de procmailex se explica la mayora de estas reglas. Reenvo de todo el correo proveniente de usuario@ejemplo.com hacia la direccin externa correodefiar@ejemplo.com:
:0 * ^From.*usuario@ejemplo.com ! correodefiar@ejemplo.com
Reenvo de todos los correos que ocupen menos de 1000 bytes a la direccin corredefiar@ejemplo2.com:
:0 * < 1000 ! correodefiar@ejemplo2.com
Envo de todos los correos dirigidos a opcional@ejemplo.com hacia una carpeta de correo llamada opcional:
:0 * ^TOopcional@ejemplo.com opcional
Envo de todos los correos con un asunto que contenga la palabra Spam al dispositivo /dev/null:
:0 ^Subject:.*Spam /dev/null
Una til receta para examinar mensajes de correo provenientes de listas de distribucin de FreeBSD.org y poner cada mensaje en el directorio apropiado en funcin del origen del mensaje:
:0 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^@]+ FreeBSD-${MATCH} }
505
28.1. *
Pendiente de traduccin. Este captulo incluye tambin parte del contenido del Captulo 29, networking avanzado.
506
29.1. Resumen
Este captulo cubre algunos de los servicios de red que se usan con ms frecuencia en sistemas UNIX. Para ser ms concretos este captulo explica cmo denir, ejecutar, probar y mantener todos los servicios de red que utiliza FreeBSD. Se muestran adems ejemplos de cheros de conguracin que podr utilizar para sus propios quehaceres. Despus de leer este captulo habremos aprendido:
Los conceptos bsicos de pasarelas y routers. Cmo poner en funcionamiento dispositivos IEEE 802.11 y Bluetooth. Cmo congurar FreeBSD para que acte como un bridge. Cmo poner en funcionamiento un sistema de cheros en red con NFS. Cmo realizar un arranque del sistema por red en mquinas sin disco duro. Cmo ejecutar un servidor de informacin en red para compartir cuentas de usuario mediante NIS. Cmo especicar parmetros de conguracin automtica de red utilizando DHCP. Cmo ejecutar un servidor de nombres de dominio. Cmo sincronizar la hora y la fecha y ejecutar un servidor horario utilizando el protocolo NTP. Cmo ejecutar un servicio de traduccin de direcciones de red. Cmo gestionar el dmon inetd. Cmo conectar dos computadoras a travs de PLIP. Cmo habilitar IPv6 en una mquina FreeBSD. Cmo congurar ATM sobre FreeBSD 5.X.
Intentar comprender los conceptos bsicos de los scripts de /etc/rc. Familiarizarse con la terminologa bsica de redes.
507
Captulo 29. Networking avanzado aplicar ninguna de las otras rutas existentes. El tema de las rutas por defecto se tratar ms adelante con ms detalle. Tambin existen tres tipos de pasarelas distintas: mquinas individuales, interfaces (tambin llamados enlaces) y direcciones hardware de ethernet (direcciones MAC).
29.2.1. Ejemplo
Para ilustrar diferentes aspectos del sistema de encaminamiento veamos el siguiente ejemplo obtenido mediante netstat.
% netstat -r
Routing tables Destination Gateway Flags UGSc UH UHLW UHLW UC UHLW UHLW UC UC Refs 37 0 5 1 0 3 0 0 0 Use 418 181 63288 2421 0 4601 5 0 0 Netif Expire ppp0 lo0 ed0
default outside-gw localhost localhost test0 0:e0:b5:36:cf:4f 10.20.30.255 link#1 ejemplo.com link#1 host1 0:e0:a8:37:8:1e host2 0:e0:a8:37:8:1e host2.ejemplo.com link#1 224 link#1
77
Las primeras dos lneas especican la ruta por defecto (la cual se comenta en la siguiente seccin) y la ruta de mquina local. La interfaz (columna Netif) que especica esta tabla de rutas para el destino localhost se denomina lo0, y tambin se conoce como el dispositivo de loopback a de bucle de retorno. Esto viene a decir que el trco no debe entregarse a la red puesto que dicho trco va destinado a la misma mquina que lo origin. Lo siguiente que podemos observar son las direcciones que comienzan por 0:e0:. Son direcciones hardware de Ethernet, llamadas tambin se direcciones MAC. FreeBSD identica automticamente cualquier mquina (test0 en el ejemplo anterior) que se encuentre en la red local y crea una ruta del estilo que estamos comentando, para entregar el trco directamente a travs del correspondiente interfaz Ethernet, en este caso ed0. Existe tambin un contador (Expire) asociado con este tipo de rutas que se usa para borrarlas cuando dicho contador expira. Las rutas para las mquinas de nuestra propia red de de rea local se crean dinmicamente utilizando el protocolo ARP (Address Resolution Protocol o Protocolo de Resolucin de Direcciones), que se encarga de averiguar la direccin MAC que se corresponde con la direccin IP de la mquina destino. FreeBSD tamben utiliza rutas de subred para direccionar la subred local (10.20.30.255 es la direccin de broadcast para la subred 10.20.30, y ejemplo.com es el nombre de dominio asociado con dicha subred.) La notacin link#1 se reere a la primera tarjeta Ethernet de la mquina. En este tipo de redes no se especica ningn interfaz en el campo de Netif. Las rutas de subredes aparecen cuando se asigna una direccin IP a una interfaz, utilizando una mscara de red. Tambin se pueden aprender dinmicamente utilizando demonios de encaminamiento, como routed. Por ltimo estas rutas pueden crearse manualmente de forma explcita; es lo que se conoce con el nombre de rutas estticas. La lnea de host1 se reere a nuestra mquina, que el sistema identica por la correspondiente direccin Ethernet de la tarjeta de red. FreeBSD sabe que debe utilizar la interfaz de loopback (lo0) en vez de enviar los paquetes a a travs de red.
508
Captulo 29. Networking avanzado Las dos lneas que comienzan por host2 son ejemplos del uso de alias de ifcong(8) alias (consultar la seccin sobre Ethernet para averiguar por qu nos podra interesar hacer esto.) El smbolo => despus de la interfaz lo0 especica que no slo estamos utilizando la interfaz de loopback, si no que adems especica que se trata de un alias. Estas rutas slo aparecen en las mquinas que implementan el alias, el resto de las mquinas de la subred local solamente poseern una lnea link#1 para dichas rutas. La ltima lnea (destino de subred 224) trata sobre encaminamiento multicast, que cubriremos en otra seccin. Finalmente, se pueden observar varios atributos relacionados con las rutas en la columna de Flags. A continuacin se muestra una pequea tabla con el signicado de algunos de esos de los atributos o ags. U H G Up: La ruta est activa. Host: El destino de la ruta es una nica mquina. Gateway: Enva cualquier cosa para ste destino a travs de la pasarela especicada, la cual decidir cmo encaminar el paquete hasta que eventualmente se alcance el destino. Static: Esta ruta se congur manualmente, y no se ha generado de forma automtica por el sistema. Clone: Genera una nueva ruta para la mquina a la que nos queremos conectar basndose en la ruta actual. Este tipo de ruta se utiliza normalmente en redes locales. WasCloned: Indica una ruta que se auto-congur basndose en una ruta de red de rea local con etiqueta Clone. Link: Esta ruta pose referencias a hardware de Ethernet.
S C
Local2
Ethernet
Local1
PPP
ISP-Serv
Ethernet
T1-GW
509
Captulo 29. Networking avanzado Las mquinas Local1 y Local2 se encuentran en nuestro sitio u organizacin. Local1 se conecta con un ISP a travs de una conexin de modem PPP. El servidor PPP del ISP se conecta a travs de una red de rea local a otra pasarela utilizando una interfaz externa. Las rutas por defecto para cada una de las mquinas son las siguientes: Host Local2 Local1 Default Gateway Local1 T1-GW Interface Ethernet PPP
Una pregunta bastante frecuente es ?Por qu (o cmo) hacer que la mquina T1-GW sea el router por defecto para
Local1 en vez de que sea el servidor del ISP al cual se est conectando?.
Recordemos que, como la interfaz PPP est utilizando una direccin de la red local del ISP en nuestro lado de la las rutas para cualquier otra mquina en la red local del proveedor se generarn de forma automtica. De este ya sabemos el modo de alcanzar la mquina T1-GW, de tal forma que no se necesita un paso intermedio para enviar trco al servidor del ISP. Es frecuente utilizar la direccin X.X.X.1 como la direccin de la pasarela en la red local. Siguiendo con el ejemplo anterior, si nuestro espacio de direccionamiento local fuera la clase C 10.20.30 y nuestro ISP estuviera utilizando 10.9.9 las rutas por defecto seran: Host Local2 (10.20.30.2) Local1 (10.20.30.1, 10.9.9.30) Default Route Local1 (10.20.30.1) T1-GW (10.9.9.1)
Se puede especicar fcilmente la entrada de la ruta por defecto utilizando el chero /etc/rc.conf. En nuestro ejemplo en la mquina Local2, se aadi la siguiente lnea en dicho chero:
defaultrouter="10.20.30.1"
Para obtener ms informacin sobre la manipulacin de tablas de rutas se ruega consultar la pgina de manual route(8).
510
Captulo 29. Networking avanzado En cualquier caso la tabla de rutas se construye de tal forma que cada subred sepa que la mquina es la pasarela denida denida (inbound route) para la otra subred. sta conguracin en la que la mquina acta como router entre las dos subredes se usa a menudo cuando queremos implementar ltrado de paquetes o cortafuegos seguridad en un sentido o en ambos. Si queremos que dicha mquina encamine paquetes entre las dos interfaces es necesario decirle a FreeBSD que active dicha funcionalidad. En la siguiente seccin se explica cmo hacerlo.
Esta opcin modicar la variable de sysctl(8) net.inet.ip.forwarding al valor 1. Si en algn momento se necesita detener el router de forma temporal basta con asignar a dicha variable el valor 0. Consulte sysctl(8) para ms detalles. Nuestro recin activado router necesita rutas para saber a dnde debe enviar el trco recibido. Si nuestra red es a se pueden denir rutas estticas. FreeBSD incluye por defecto el dmon de encaminamiento BSD, routed(8), que admite RIP (versin 1 y versin 2) e IRDP. El paquete net/zebra le permitir usar otros protocolos de encaminamiento dinmico como BGP v4, OSPF v2 y muchos otros. En caso de necesitar caractersticas avanzadas de gestin puede usted recurrir a productos comerciales como GateD. Incluso cuando FreeBSD se congura del modo descrito no se cumple completamente con los estndares de Internet respecto a los routers. Bastar no obstante para poder usarse.
511
En este escenario RouterA es nuestra mquina FreeBSD que acta como pasarela para acceder al resto de internet. Tiene una ruta por defecto que apunta a 10.0.0.1 que le permite conectarse con el mundo exterior. Vamos a suponer tambin que RouterB se encuentra congurado de forma adecuada que sabe cmo llegar a cualquier sitio que necesite. Esto es sencillo viendo nuestra topologa de red, basta con aadir una ruta por defecto en la mquina RouterB utilizando 192.168.1.1 como router. Si observamos la tabla de rutas de RouterA veremos algo como lo siguiente:
% netstat -nr
Flags UGS UH UC UC
Refs 0 0 0 0
Use 49378 6 0 0
Expire
Con la tabla de rutas actual RouterA no es capaz de alcanzar la red interna 2. Esto es as porque no posee ninguna ruta para la red 192.168.2.0/24. Una forma de mitigar esto es aadir de forma manual la ruta que falta. La siguiente orden aade la red interna 2 a la tabla de rutas de la mquina RouterA utilizando 192.168.1.2 como siguiente salto:
# route add -net 192.168.2.0/24 192.168.1.2
29.2.5.2. Cmo hacer la conguracin persistente El ejemplo anterior es perfecto en tanto que resuelve el problema de encaminamiento entre redes pero existe un problema. La informacin de encaminamiento desaparecer si se reinicia la mquina. La forma de evitarlo es aadir las rutas estticas a /etc/rc.conf:
# Aade la red interna 2 como una ruta esttica static_routes="redinterna2" route_internalnet2="-net 192.168.2.0/24 192.168.1.2"
La variable de conguracin static_routes es una lista de cadenas separadas por espacios. Cada cadena identica un nombre para la ruta que se desea denir. En el ejemplo anterior slamente se dispone de una cadena dentro de la variable static_routes. Esta cadena es redinterna2. A continuacin se aade otra variable de conguracin denominada route_redinterna2 donde se escriben todos los parmetros de conguracin que normalmente
512
Captulo 29. Networking avanzado utilizaramos normalmente utilizaramos con route(8). En el ejemplo que estamos comentando se utilizara la siguiente orden:
# route add -net 192.168.2.0/24 192.168.1.2
De tal forma que la variable debera contener "-net 192.168.2.0/24 192.168.1.2". Como ya se ha comentado anteriormente podemos especicar ms de una cadena en la variable static_routes. Esto nos permite crear varias rutas estticas. Las siguientes lnas muestran un ejemplo donde se aaden rutas estticas para las redes 192.168.0.0/24 y 192.168.1.0/24 en un routerimaginario:
static_routes="red1 red2" route_red1="-net 192.168.0.0/24 192.168.0.1" route_red2="-net 192.168.1.0/24 192.168.1.1"
513
Captulo 29. Networking avanzado traceroute(8) se ejecuta pasandole como parmetro el nombre de la mquina remota a la que nos queremos conectar. Esta orden muestra por pantalla ls mquinas que actan de pasarela a lo largo del camino. El proceso termina bien porque se alcanza el destino o bien porque algn router intermedio no puede conectarse con el siguiente salto, o lo desconoce. Si quiere saber ms sobre esto consulte la pgina man de traceroute(8).
Se debe congurar adems el dmon de encaminamiento multicast, mrouted(8), para establecer tneles y ejecutar DVMRP utilizando /etc/mrouted.conf. Se pueden encontrar ms detalles sobre cmo realizar una conguracin de multicast en mrouted(8).
29.3.1. Introduccin
Puede resultar muy til el ser capaz de utilizar una computadora sin la molestia de tener un cable de red colgando de la mquina en todo momento. FreeBSD puede utilizarse como un cliente de wireless e incluso como un punto de acceso.
514
Captulo 29. Networking avanzado 29.3.2.2. Modo IBSS El modo IBSS, tambin conocido como modo ad-hoc, se ha diseado para facilitar las conexiones punto a punto. En realidad existen dos tipos distintos de modos ad-hoc. Uno es el modo IBSS, tambin conocido como modo ad-hoc o modo ad-hoc del IEEE. Este modo se encuentra especicado en el estndar IEEE 802.11. El segundo tipo se denomina modo ad-hoc de demostracin o modo ad-hoc de Lucent (y algunas veces, tambin se le llama simplemente modo ad-hoc, lo cual es bastante confuso). Este es el modo de funcionamiento antguo, anterior al estndar 802.11, del modo ad-hoc debera utilizarse slo en instalaciones propietarias. No profundizaremos ms sobre estos modos de funcionamiento.
29.3.3.2. Construccin de un punto de acceso basado en FreeBSD 29.3.3.2.1. Requisitos Para crear nuestro propio punto de acceso con FreeBSD debemos utilizar un determinado tipo de tarjeta wireless. Por el momento, slo las tarjetas con el chip Prism nos permiten hacer un punto de acceso. Tambin vamos a necesitar una tarjeta para red cableada que sea soportada por el sistema (esto no es muy complicado dada la ingente cantidad de dispositivos de este tipo que funcionan en FreeBSD). Para este ejemplo vamos a suponer que queremos puentear (bridge(4)) todo el trco entre la red cableada y la red inalmbrica. El uso como punto de acceso wireless (tambin denominado hostap) funciona mejor con determinadas versiones del rmware. Las tarjetas con chip Prism2 deben disponer de la versin 1.3.4 (o superior) del rmware. Los chips Prism2.5 y Prism3 deben disponer de la versin 1.4.9 o superior del rmware. Las versiones ms antguas de estos rmwares pueden no funcionar correctamente. A da de hoy la nica forma de actualizar el rmware de las tarjetas es usando las herramientas que proporciona el fabricante para Windows.
29.3.3.2.2. Puesta en marcha del sistema Primero debemos asegurarnos de que el sistema reconoce la tarjeta wireless:
# ifconfig -a
515
No se preocupe si no entiende algo de la conguracin anterior, lo importante es asegurarse de que el sistema muestra algo parecido, lo cual nosindicar que la tarjeta wireless ha sido correctamente reconocida por FreeBSD. Si el interfaz inalmbrico no es reconocido correctamente y se est utilizando una tarjeta PC Card consulte pccardc(8) y pccardd(8), en las que tiene mucha informacin al respecto. A continuacin, para que podamos disponer de un bridge deber cargar el mdulo del kernel bridge(4) por el sencillo procedimiento de ejecutar la siguiente orden:
# kldload bridge
No debera aparecer mensaje de error alguno al ejecutar dicha orden. Si apareciera alguno quizs deba compilar el kernel del sistema con bridge(4) includo. La seccin Bridging de ste manual incluye informacin abundante para llevar a buen puerto esa tarea. Una vez que tenemos el soporte de bridging cargado debemos indicar a FreeBSD qu interfaces se desean puentear. Para ello emplearemos sysctl(8):
# sysctl net.link.ether.bridge=1 # sysctl net.link.ether.bridge_cfg="wi0,xl0" # sysctl net.inet.ip.forwarding=1
En FreeBSD 5.2-RELEASE y posteriores se deben emplear las siguientes opciones en lugar de las anteriormente expuestas:
# sysctl net.link.ether.bridge.enable=1 # sysctl net.link.ether.bridge.config="wi0,xl0" # sysctl net.inet.ip.forwarding=1
Ahora es el momento de congurar la tarjeta de red inalmbrica. La siguiente orden convierte la tarjeta en un punto de acceso:
# ifconfig wi0 ssid mi_red channel 11 media DS/11Mbps mediaopt hostap up stationname "PA FreeBSD "
La lnea de ifcong(8) levanta el interfaz wi0, congura el SSID con el valor de mi_red y tambin el nombre de la estacin como FreeBSD . La opcin media DS/11Mbps congura la tarjeta a 11Mbps. sto es necesario para que cualquier valor que se necesite asignar a mediaopt surta efecto. La opcin mediaopt hostap sita el interfaz en modo punto de acceso. La opcin channel 11 congura la tarjeta para que use el canal de radio nmero 11. En wicontrol(8) encontrara rangos de canales vlidos para varios dominios regulatorios. Por favor, tenga en cuenta que no todos los canales son legales en todos los pases. Despues de esto deberamos disponer de un punto de acceso completamente funcional y en ejecucin. Le animamos a consultar wicontrol(8), ifcong(8) y wi(4) para mss informacin.
516
Captulo 29. Networking avanzado Tambin le recomemdamos leer la seccin sobre cifrado que econtrar ms adelante.
29.3.3.2.3. Informacin de estado Una vez que el punto de acceso estcongurado resulta interesante poder obtener informacin acerca de los clientes que estn asociados. La persona encargada de la administracin del punto de acceso puede ejecutar cuando estime oportuno lo siguiente:
# wicontrol -l
1 station: 00:09:b7:7b:9d:16
Lo que aqu se muestra indica que hay una nica estacin asociada y nos suministra sus parmetros. Los valores de seal que se muestran se deben tomar slo como indicaciones aproximadas de la fuerza de dicha seal. Su traduccin a dBm u otras unidades vara segn la versin del rmware de la tarjeta que se use.
29.3.3.3. Clientes Un cliente wireless es un sistema que se comunica con un punto de acceso o directamente con otro cliente wireless. Generalmente los clientes wireless slo poseen un dispositivo de red: la tarjeta de red inalmbrica. Existen varias formas de congurar un cliente wireless basadas en los distintos modos inalmbricos, normalmente reducidos a BSS (o modo infraestructura, que requiere de un punto de acceso) y el modo IBSS (modo ad-hoc, o modo punto a punto). En nuestro ejemplo usaremos el ms famoso de ambos, el BSS, para comunicarnos con un punto de acceso. 29.3.3.3.1. Requisitos Slamente existe un requisito real para congurar un sistema FreeBSD como cliente inalmbrico: usar una tarjeta de red inalmbrica soportada por el sistema.
29.3.3.3.2. Ejecucin de un cliente inalmbrico FreeBSD Para utilizar una red inalmbrica se necesitan conocer algunos conceptos bsicos de redes de redes wireless. En nuestro ejemplo queremos conectarnos a la red inalmbrica mi_red y queremos hacerlo con el soporte de cifrado desactivado.
Nota: En este ejemplo no se utiliza cifrado, lo cual resulta ser bastante peligroso. En la prxima seccin aprenderemos cmo activar el sistema de cifrado comn el los dispositivos inalmbricos, por qu resulta importante hacerlo y por qu algunas tecnologas de cifrado no son sucientes para protegernos completamente.
517
Sustituya 192.168.0.20 y 255.255.255.0 con una direccin IP y mscara de red que se adecen con el espacio de direccionamiento de la red cableada. Recordemos que nuestro punto de acceso est puenteando la red inalmbrica y la red de cable, de modo que para el resto de dispositivos de la red el cliente inalbrico se muestra como un elemento ms de la red cableada. Llegados a este punto deberamos poder hacer ping a las mquinas de la red cableada como si estuviramos compartiendo el mismo enlace fsico cableado. Si se presentan problemas con la conexin inalmbrica se puede comprobar si la tarjeta wireless se encuentra correctamente asociada (conectada) con el punto de acceso:
# ifconfig wi0
ebera devolver algn tipo de informacin entre la que deberamos observar la siguiente lnea:
status: associated
Si no aparece la palabra associated puede ser que nos encontremos fuera de la cobertura proporcionada por el punto de acceso o puede ser que necesitemos activar el cifrado, aunque stos no son los nicos problemas con los que nos podemos encontrar.
29.3.3.4. Cifrado El cifrado, tambin llamado codicacin, de una red inalmbrica es un proceso importante porque, a diferencia de lo que ocurre con las redes cableadas convencionales, las redes inalmbricas no se pueden restringir a un espacio fsico determinado. Los datos que viajan a travs de ondas de radio se difunden a travs de las paredes y alcanzan a los vecinos ms cercanos. Aqu es donde entra en en juego el sistema de cifrado. El cifrado se emplea para evitar que cualquiera pueda examinar los datos enviados a travs del aire. Los dos mtodos ms comunes para realizar el cifrado de datos entre el cliente y el punto de acceso son WEP e ipsec(4). 29.3.3.4.1. WEP WEP son las siglas de Wired Equivalency Protocol. WEP es un un intento de crear redes inalmbricas al menos tan seguras omo las redes cableadas o al menos de seguridad equivalente a dichas redes. Por desgracia el sistema WEP
518
Captulo 29. Networking avanzado es dbil y resulta bastante sencillo de romper. Esto signica que cuando se transmite informacin de carcter crtico no se debe conar nicamente en este sistema de cifrado. No obstante es mejor que no utilizar nada; puede activar WEP en el sistema que hace de punto de acceso mediante:
# ifconfig wi0 inet up ssid mi_red wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap
Por favor, tenga un poco de sentido comn y reemplace la clave 0x1234567890 por otra clave menos obvia.
29.3.3.4.2. IPsec ipsec(4) es una herramienta ms robusta y potente para cifrar datos que se mueven a travs de una red. Es el mecanismo ms conveniente para asegurar los datos de una red inalmbrica. Tiene ms informacin sobre el protocolo ipsec(4) y cmo utilizarlo en la seccin IPsec de este manual.
29.3.3.5. Herramientas No hay muchas herramientas disponibles si se quiere depurar y monitorizar redes inalmbricas pero en el siguiente apartado mostraremos cmo utilizar algunas de ellas. 29.3.3.5.1. El paquete bsd-airtools El paquete bsd-airtools es un conjunto muy completo de herramientas wireless que se pueden utilizar para multitud de tareas, entre las cuales podemos citar citar el desciframiento de claves WEP, deteccin de puntos de de acceso, monitorizacin de la seal de radio, etc. El paquete bsd-airtools se puede instalar como port desde net/bsd-airtools. La informacin relacionada con los ports puede encontrarse en la seccin Captulo 4 de este manual. El programa dstumbler es una herramienta que permite descubrir puntos de acceso y entre otras cosas muestra de forma grca la relacin seal / ruido del enlace. Si se experimentan problemas para acceder a un determinado punto de acceso dstumbler puede ser muy til. Para probar la seguridad de la red inalmbrica se puede usar dweputils, concretamente las rdenes dwepcrack, dwepdump y dwepkeygen. Estas rdenes permiten determinar hasta qu punto la seguridad que ofrece WEP es suciente para nuestras necesidades.
29.3.3.5.2. Las utilidades wicontrol, ancontrol y raycontrol Mediante estas herramientas se puede controlar el comportamiento de la tarjeta de red inalmbrica. En los ejemplos anteriores se ha utilizado wicontrol(8) debido a que la tarjeta de red del ejemplo utiliza el interfaz wi0. Si se pose una tarjeta wireless de Cisco dicha tarjeta se mostrar en el sistema mediante el interfaz an0 y por lo tanto la orden equivalente que se debe usar ser ancontrol(8).
519
Captulo 29. Networking avanzado 29.3.3.5.3. ifconfig Con ifcong(8) se puede utilizar unas cuantas de las opciones que se pueden usar con wicontrol(8), pero no obstante no pose todas las funcionalidades que proporciona wicontrol(8). Se recomienda leer ifcong(8) para conocer los detalles de los parmetros y opciones que admite.
29.3.3.6. Tarjetas de Red inalmbricas soportadas 29.3.3.6.1. Puntos de acceso Las nicas tarjetas que soportan el modo de funcionamiento funcionamiento BSS (pueden funcionar como puntos de acceso) son los dispositivos basados en el chip Prism 2, 2.5 3. Consulte wi(4) para ver una lista completa de ellos.
29.3.3.6.2. Clientes FreeBSD soporta casi todas las tarjetas inalmbricas 802.11b 802.11b que se encuentran actualmente en el mercado. La mayora de las tarjetas basadas en los chips Prism, Spectrum24, Spectrum24, Hermes, Aironet y Raylink tamben funcionan en modo IBSS (modos ad-hoc, punto a punto y BSS).
29.4. Bluetooth
Escrito por Pav Lucistnik.
29.4.1. Introduccin
Bluetooth es una tecnologa inalmbrica que opera en banda de 2.4 GHz (donde no se necesita licencia). Se trata de una tecnologa pensada para la creacin de redes de mbito personal (de cobertura reducida, normalmente de unos 10 metros). Las redes se suelen construir en modo ad-hoc utilizando dispositivos heterogneos como telfonos mviles, dispositivos manuales (handhelds) y computadoras porttiles. A diferencia de otras tecnologas inalmbricas como Wi-Fi, Bluetooth ofrece perles de servicio ms detallados; por ejemplo un perl para actuar como un servidor de cheros basado en FTP, para la difusin de cheros (le pushing), para el transporte de voz, para la emulacin de lnea serie y muchos ms. La pila de Bluetooth en FreeBSD se implementa utilizando el entorno de Netgraph (vase netgraph(4)). La mayora de los dispositivos USB Bluetooth se pueden utilizar mediante el controlador ng_ubt(4). Los dispositivos Bluetooth basados en el chip Broadcom BCM2033 estn soportados mediante los controladores ubtbcmfw(4) y ng_bt3c(4). Los dispositivos Bluetooth basados en la interfaz serie o de Rayos Infrarrojos (UART) se controlan mediante sio(4), ng_h4(4) y hcseriald(8). Este captulo describe el uso de dispositivos Bluetooth USB. El soporte para Bluetooth se encuentra en las versiones de FreeBSD 5.0 y posteriores.
520
Si el dispositivo Bluetooth se encuentra conectado cuando el sistema arranca se debe cargar el mdulo modicando a tal efecto el chero /boot/loader.conf.
ng_ubt_load="YES"
Se debe copiar /usr/share/examples/netgraph/bluetooth/rc.bluetooth a algn lugar ms conveniente, por ejemplo /etc/rc.bluetooth. Este script se usa para ejecutar y detener la pila Bluetooth del sistema. Se suele recomendar quitar la pila antes de desenchufar el dispositivo pero si no se hace no debera producirse ningn desastre. Cuando se arranca la pila aparece un mensaje similar a este:
# /etc/rc.bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a Features: 0xff 0xff 0xf 00 00 00 00 00 <3-Slot> <5-Slot> <Encryption> <Slot offset> <Timing accuracy> <Switch> <Hold mode> <Sniff mode> <Park mode> <RSSI> <Channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <Paging scheme> <Power control> <Transparent SCO data> Max. ACL packet size: 192 bytes Number of ACL packets: 8 Max. SCO packet size: 64 bytes Number of SCO packets: 8
521
Captulo 29. Networking avanzado Una de las tareas ms importantes que se deben realizar es el descubrimiento automtico de otros dispositivos Bluetooth que se encuentren dentro del radio de cobertura. Esta operacin se denomina en ingls inquiry (consulta). Esta operacin o otras operaciones HCI relacionadas se realizan mediante la utilidad hccontrol(8). El siguiente ejemplo muestra cmo descubrir dispositivos en pocos segundos. Tenga siempre presente que un dispositivo remoto slo contesta a la consulta si se encuentra congurado en modo descubrimiento (discoverable mode).
% hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1 Inquiry result #0 BD_ADDR: 00:80:37:29:19:a4 Page Scan Rep. Mode: 0x1 Page Scan Period Mode: 00 Page Scan Mode: 00 Class: 52:02:04 Clock offset: 0x78ef Inquiry complete. Status: No error [00] BD_ADDR es la direccin identicativa nica del dispositivo Bluetooth, similar a las direcciones MAC de las tarjetas
Ethernet. Esta direccin se necesita para transmitir otro tipo de informacin a otros dispositivos. Se puede asignar un nombre ms signicativo para los humanos en la variable BD_ADDR. El chero /etc/bluetooth/hosts contiene informacin relativa a los dispositivos Bluetooth conocidos. El siguiente ejemplo muestra cmo obtener un nombre signicativo para los humanos que fu asignado a un dispositivo remoto:
% hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
Si se realiza una consulta (inquiry) sobre el dispositivo Bluetooth remoto, dicho dispositivo identicar nuestro computador como nombre.de.su.sistema (ubt0). El nombre asignado al dispositivo local se puede modicar en cualquier momento. El sistema Bluetooth proporciona una conexin punto a punto (con slo dos unidades Bluetooth involucradas) o tambin una conexin punto multipunto. En el ltimo caso, la conexin se comparte entre varios dispositivos Bluetooth. El siguiente ejemplo muestra como obtener una lista de las conexiones de banda base activas en el dispositivo local:
% hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State 00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN
Resulta til disponer de un manejador de la conexin cuando se necesita terminar la conexin de banda base. Es importante recalcar que normalmente no es necesario realizar esta terminacin de forma manual. La pila Bluetooth puede conclur automticamente las conexiones de banda base que se encuentren inactivas.
# hccontrol -n ubt0hci disconnect 41
Se ruega consultar la salida de la orden hccontrol help para obtener un listado completo de las rdenes HCI disponibles. La mayora de estas rdenes no requiren privilegios de superusuario.
522
0 0 0 0
ms ms ms ms
La herramienta l2control(8) se utiliza para realizar varias operaciones sobre los nodos L2CAP. Este ejemplo muestra cmo obtener la lista de conexiones lgicas (canales) y la lista de conexiones de banda base (fsica) que mantiene el dispositivo local:
% l2control -a 00:02:72:00:d4:1a read_channel_list
PSM 3
L2CAP connections: Remote BD_ADDR Handle Flags Pending State 00:07:e0:00:0b:ca 41 O 0 OPEN
Otra herramienta de diagnstico interesante es btsockstat(1). Realiza un trabajo similar a la orden netstat(1), pero en este caso para las estructuras de datos relacionadas con el sistema Bluetooth. A continuacin se muestra la informacin relativa a la misma conexin lgica del ejemplo anterior.
% btsockstat
Active L2CAP sockets PCB Recv-Q Send-Q c2afe900 0 0 Active RFCOMM sessions L2PCB PCB Flag c2afe900 c2b53380 1 Active RFCOMM sockets PCB Recv-Q Send-Q c2e8bc80 0 250
Local address/PSM 00:02:72:00:d4:1a/3 MTU 127 Out-Q DLCs State 0 Yes OPEN
State OPEN
Local address Foreign address Chan DLCI State 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN
523
No existe ninguna limitacin en los cdigos PIN a excepcin de su longitud. Algunos dispositivos (por ejemplo los dispositivos de mano Bluetooth) pueden obligar a escribir un nmero predeterminado de caracteres para el cdigo PIN. La opcin -d fuerza al dmon hcsecd(8) a permanecer ejecutdose en primer plano, de tal forma que se puede observar fcilmente lo que ocurre. Si se congura el dispositivo Bluetooth remoto para aceptar el procedimiento de emparejamiento y se inicia la conexin con dicho dispositivo, el dispositivo remoto debera decir que el procedimiento de emparejamiento se ha aceptado y debera solicitar el cdigo PIN. Si se introduce el mismo cdigo PIN que se escribi en su momento en el chero hcsecd.conf el procedimiento de emparejamiento y de generacin de la clave de enlace debera terminar satisfactoriamente. Por otra parte el procedimiento de emparejamiento se puede iniciar en el dispositivo remoto. A continuacin se muestra un ejemplo de la salida del dmon hcsecd.
524
Got Link_Key_Request event from ubt0hci, remote bdaddr 0:80:37:29:19:a4 Found matching entry, remote bdaddr 0:80:37:29:19:a4, name Pavs T39, link key do Sending Link_Key_Negative_Reply to ubt0hci for remote bdaddr 0:80:37:29:19:a4 Got PIN_Code_Request event from ubt0hci, remote bdaddr 0:80:37:29:19:a4 Found matching entry, remote bdaddr 0:80:37:29:19:a4, name Pavs T39, PIN code ex Sending PIN_Code_Reply to ubt0hci for remote bdaddr 0:80:37:29:19:a4
Record Handle: 00000000 Service Class ID List: Service Discovery Server (0x1000) Protocol Descriptor List: L2CAP (0x0100) Protocol specific parameter #1: u/int/uuid16 1 Protocol specific parameter #2: u/int/uuid16 1 Record Handle: 0x00000001 Service Class ID List: Browse Group Descriptor (0x1001) Record Handle: 0x00000002 Service Class ID List: LAN Access Using PPP (0x1102) Protocol Descriptor List: L2CAP (0x0100) RFCOMM (0x0003) Protocol specific parameter #1: u/int8/bool 1
525
... y as sucesivamente. Resulta importante resaltar una vez ms que cada servicio posee una lista de atributos (por ejemplo en el canal RFCOMM). Dependiendo de los servicios que se quieran utilizar puede resultar necesario anotar algunos de los atributos. Algunas implementaciones de Bluetooth no soportan navegacin de servicios y pueden devolver una lista vaca. En este caso se puede intentar buscar algn servicio determinado. El ejemplo siguiente muestra cmo buscar el servicio OBEX Object Push (OPUSH):
% sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH
La aplicacin local servidora que quiere proporcionar servicio Bluetooth a los clientes remotos puede registrar su servicio con el dmon SDP local. Un ejemplo de dicha aplicacin Un ejemplo de dicha aplicacin lo constituye el dmon rfcomm_pppd(8). Una vez ejecutado el dmon registra un servicio LAN de Bluetooth en el dmon SDP local. Se puede obtener la lista de servicios registrados con el servidor SDP local lanzando una consulta de navegacin SDP utilizando el canal de control local.
# sdpcontrol -l browse
29.4.8. Acceso telefnico a redes (DUN) y acceso a redes mediante perles PPP (LAN)
El perl de Acceso Telefnico a Redes (Dial-Up Networking o DUN) se utiliza mayoritariamente con modems y telfonos celulares. Los escenarios cubiertos por este perl se describen a continuacin:
Utilizacin de un telfono celular o un modem por una computadora para simular un modem sin cables que se conecte a un servidor de acceso telefnico a redes o para otros servicios de acceso telefnico relacionados; Utilizacin de un telfono celular o un modem por un computador para recibir llamadas de datos.
El Acceso a Redes con perles PPP (LAN) se puede utilizar en las siguientes situaciones:
Acceso LAN para un nico dispositivo Bluetooth; Acceso LAN para mltiples dispositivos Bluetooth; Conexin de PC a PC (utilizando emulacin de PPP sobre una lnea serie).
En FreeBSD ambos perles se implementan bajo las rdenes ppp(8) y rfcomm_pppd(8), un encapsulador que convierte la conexin RFCOMM de Bluetooth en algo que puede ser utilizado por PPP. Antes de que se puedan utilizar los perles se debe denir una nueva etiqueta PPP en el chero de conguracin /etc/ppp/ppp.conf. Consulte rfcomm_pppd(8) para ver algunos ejemplos. En el siguiente ejemplo se va a utilizar rfcomm_pppd(8) para abrir una conexin RFCOMM con un dispositivo remoto con BD_ADDR 00:80:37:29:19:a4 sobre un canal RFCOMM basado en DUN (Dial-Up Networking). El nmero de canal RFCOMM se obtiene a partir del dispositivo remoto a travs de SDP. Es posible especicar el canal
526
Captulo 29. Networking avanzado RFCOMM a mano, en cuyo caso rfcomm_pppd(8) no realizar ninguna consulta SDP. Se puede utilizar la orden sdpcontrol(8) para descubrir el canal RFCOMM utilizado en el dispositivo remoto.
# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup
Para proporcionar el servicio de Acceso a Redes a travs de PPP (LAN) se debe ejecutar el servidor sdpd(8). Se debe crear una nueva entrada en /etc/ppp/ppp.conf. Le rogamos que consulte rfcomm_pppd(8) y observe los ejemplos que se facilitan. Por ltimo se debe ejecutar el servidor PPP RFCOMM sobre un nmero de canal RFCOMM adecuado. El servidor PPP RFCOMM registrar automticamente el servicio LAN de Bluetooth con el servidor SDP local. El ejemplo que se muestra a continuacin describe cmo ejecutar el servidor PPP RFCOMM.
# rfcomm_pppd -s -C 7 -l rfcomm-server
obex> get get: remote file> telecom/devinfo.txt get: local file> devinfo-t39.txt Success, response: OK, Success (0x20) obex> put put: local file> new.vcf put: remote file> new.vcf Success, response: OK, Success (0x20) obex> di Success, response: OK, Success (0x20)
Para proporcionar servicio de OBEX el servidor sdpd(8) debe estar en funcionamiento. Adems se debe crear un directorio raz donde todos los objetos van a ser almacenados. La ruta por defecto para el directorio raz es /var/spool/obex. Por ltimo se debe ejecutar el servidor OBEX en un nmero de canal RFCOMM vlido. El servidor OBEX registra automticamente el servicio de Object Push con el dmon SDP local. El ejemplo que se muestra a local. El ejemplo que se muestra a continuacin continuacin describe cmo ejecutar el servidor OBEX.
# obexapp -s -C 10
527
Una vez conectado el pseudo tty se puede utilizar como un puerto serie.
# cu -l ttyp6
29.4.11.2. Algo va mal ?puedo ver exactamente qu est ocurriendo? S, se puede. Utilice el paquete hcidump-1.5, que se puede descargar de aqu (http://www.geocities.com/m_evmenkin/). La herramienta hcidump es similar a la herramienta tcpdump(1). Se puede utilizar para mostrar el contenido de los paquetes Bluetooth sobre el terminal y para volcar los paquetes Bluetooth a un chero.
29.5. Puenteado
Escrito por Steve Peterson.
29.5.1. Introduccin
Algunas veces resulta til dividir una red fsica (como por ejemplo un segmento Ethernet) en dos segmentos de red separados, sin tener que crear subredes IP y sin utilizar una pasarela para comunicar ambos segmentos. El dispositivo
528
Captulo 29. Networking avanzado que realiza esta funcin se denomina bridge. Un sistema FreeBSD con dos interfaces de red puede actuar como un bridge o puente entre ambas. El bridge funciona de tal forma que aprende las direcciones de la capa MAC (direcciones Ethernet) de los nodos que se encuentran conectados a cada interfaz de red de tal forma que slo se reenva trco entre los segmentos de red cuando las direcciones fuente y destino se encuentran separadas en segmentos distintos. En varios aspectos se puede comparar un bridge con un switch de pocos puertos.
29.5.2.2. Cortafuegos de ltrado/conformacin de trco La segunda situacin tpica se produce cuando se necesita un cortafuegos pero no la Traduccin de Direcciones de Red (NAT). A continuacin se muestra un ejemplo. Una pequea compaa se comunica con su ISP utilizando DSL o ISDN. Dicha compaa posee 13 13 direcciones IP globalmente accesibles delegadas por su ISP y tiene 10 ordenadores en funcionamiento. En esta situacin un un cortafuegos basado en un router resulta difcil debido a la distribucin del espacio de direccionamiento disponible (subnetting). Un cortafuegos implementado sobre un bridge se puede utilizar en el camino de bajado desde el ISP hasta las ocinas de la compaa sin necesidad de tener en cuenta ningn aspecto relacionado con la distribucin de las direcciones IP.
529
Captulo 29. Networking avanzado Por favor, instale y pruebe las dos tarjetas de red antes de continuar.
29.5.3.2. Cambios en la conguracin del ncleo Para activar el soporte de bridging en el ncleo aada
options BRIDGE
29.5.3.3. Soporte de cortafuegos Si se desea utilizar el bridge como un cortafuegos, se debe aadir adems la opcin IPFIREWALL. Lea el caplo de rewalls para obtener informacin general sobre cmo congurar el bridge para que acte adems como cortafuegos. Si adems queremos que los paquetes que no sean IP (por ejemplo paquetes ARP) puedan atravesar el bridge deberemos aadir la opcin IPFIREWALL_DEFAULT_TO_ACCEPT. Tenga en cuenta opcin modica el comportamiento del cortafuegos de tal forma que por defecto aceptar cualquier paquete. Hay que tener cuidado para asegurarse de que el comportamiento esperado del cortafuegos, que reside en el conjunto de reglas que se hayan denido, no se vea afectado por este cambio.
29.5.3.4. Soporte de conformado de trco Si se quiere utilizar el bridge como un conformador de trco, es decir, como un elemento capaz de adaptar los distintos ujos segn determinados patrones, se debe aadir la opcin DUMMYNET a la conguracin del ncleo. Se ruega consultar dummynet(4) para obtener ms informacin al respecto.
Para activar el bridging en las interfaces especicadas (sustituya if1 y if2 con los nombres de sus interfaces de red). Si deseamos ltrar los paquetes puenteados utilizando ipfw(8), debemos aadir tambin:
net.link.ether.bridge_ipfw=1
En FreeBSD 5.2-RELEASE y posteriores, se debe utilizar las siguientes lneas en lugar de las anteriores:
net.link.ether.bridge.enable=1 net.link.ether.bridge.config=if1,if2 net.link.ether.bridge.ipfw=1
530
29.6. NFS
Reorganizado y ampliado por Tom Rhodes. Escrito por Bill Swingle. FreeBSD soporta diversos sistemas de cheros, uno de los cuales es el Sistema de Ficheros en Red, tamben conocido por su acrnimo en ingls NFS. NFS permite compartir directorios y cheros a travs de la red. Los usuarios del sistema NFS pueden acceder a cheros que se encuentran fsicamente en mquinas remotas de una forma transparente, como si se tratara de cheros locales. He aqu algunos los benecios ms destacados que NFS proporciona:
Las estaciones de trabajo locales utilizan menos espacio de disco debido a que los datos se encuentran centralizados en un nico lugar pero pueden ser accedidos y modicados por varios usuarios, de tal forma que no es necesario replicar la informacin. Los usuarios no necesitan disponer de un directorio home en cada una de las mquinas de la organizacin. Los directorios home pueden crearse en el servidor de NFS para posteriormente poder acceder a ellos desde cualquier mquina a travs de la infraestrutura de red. Tambin se pueden compartir a travs de la red dispositivos de almacenamiento como disqueteras, CDROM y unidades ZIP. Esto puede reducir la inversin en dichos dispositivos y mejorar el aprovechamiento del hardware existente en la organizacin.
531
Captulo 29. Networking avanzado Dmon nfsd mountd portmap Descripcin El dmonNFS, que atiende peticiones de clientes NFS. El dmon de montaje de NFS, que transporta las peticiones que nfsd(8) realiza. El dmon portmapper permite que los clientes NFS puedan descubrir qu puerto est utilizando el servidor de NFS.
El cliente tambin puede ejecutar un dmon conocido , como nfsiod. El dmon nfsiod atiende las peticiones provinientes del servidor NFS. Este dmon es opcional y sirve para mejorar el rendimiento pero no es necesario para el funcionamiento correcto del sistema. Se recomienda consultar nfsiod(8) para obtener ms informacin.
mountd se ejecuta automticamente cuando se activa el servidor NFS. En el cliente debemos asegurarnos de que se encuentra activada la activada la siguiente opcin dentro de /etc/rc.conf:
nfs_client_enable="YES"
El archivo /etc/exports especica los directorios o sistemas de cheros que NFS exporta al exterior. Cada lnea dentro de /etc/exports/ especia un sistema de cheros y qu mquinas tienen derechos de acceso sobre dicho sistema. Adems de los derechos de acceso se pueden denir otras opciones de acceso, tales como solo lectura o lectura y escritura. Existen multitud de opciones que pueden denirse sobre un directorio exportable pero en este manual slo se van a comentar unas pocas. Consulte exports(5) para obtener una descripcin ms detallada. Aqu se muestran algunos ejemplos de entradas para /etc/exports: El siguiente ejemplo proporciona una idea de cmo exportar sistemas de cheros, aunque los parmetros pueden diferir dependiendo de su entorno y su conguracin de red. En dicho ejemplo, se exporta el directorio /cdromm a tres mquinas que se encuentran en el mismo dominio que el servidor (de ah que no se especique ningn nombre de dominio para cada mquina) o que pueden estar dadas de alta en /etc/hosts. En cualquier caso la opcin -ro congura el sistema de cheros de red como slo lectura (read-only). Con esta opcin los sistemas remotos no sern capaces de realizar cambios sobre el sistema de cheros exportados.
/cdrom -ro host1 host2 host3
La siguiente lnea exporta el directorio /home a tres mquinas utilizando direcciones IP. Esto resulta til cuando disponemos de una red privada pero no disponemos de ningn servidor de DNS congurado. Tambin se podra congurar /etc/hosts para que resolviera nombres de mquinas internos; consulte hosts(5) para obtener ms informacin al respecto. La opcin -alldirs permite que los subdirectorios del directorio /home tamben se
532
Captulo 29. Networking avanzado puedan utilizar como puntos de montaje. En otras palabras, esto permite que los clientes puedan trabajar sobre los subdirectorios en los que estn realmente interesados.
/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4
La siguiente lnea exporta el directorio /a de tal forma que puedan acceder a dicho directorio dos mquinas situadas en distintos dominios. La opcin -maproot=root permite que el usuario root de la mquina cliente modique los datos del sistema de cheros en red como si fuera el usuario root del servidor. Si no se especica la opcin -maproot=root el usuario root del cliente puede no poseer los permisos necesarios para realizar modicaciones en el sistema de cheros.
/a -maproot=root host.example.com box.example.org
Para que un cliente pueda acceder al sistema de cheros exportado debe poseer permisos para ello. Debemos asegurarnos de que el cliente se encuentra listado en /etc/exports. Dentro de /etc/exports cada lnea representa informacin de exportacin de un sistema de cheros para un determinado conjunto de mquinas. Una mquina slo puede aparecer una vez dentro de un sistema de cheros exportable y el archivo slo puede tener una nica entrada por defecto. Por ejemplo, si suponemos que /usr es un nico sistema de cheros la siguiente conguracin de /etc/exports sera incorrecta:
/usr/src client /usr/ports client
Existe un sistema de cheros, concretamente /usr, que posee dos lneas con reglas de exportacin para la misma mquina, client. El formato correcto para esta situacin sera el siguiente:
/usr/src /usr/ports client
Las propiedades de un sistemas de cheros que se exporta al exterior deben aparecer agrupadas bajo la misma lnea. Lneas que no poseen ningn cliente se tratan como si tuvieran una nica mquina. Esto limita la forma en que pueden congurarse la exportaciones de sistemas de cheros pero para la mayora de la gente no suele ser un problema. El ejemplo que se muestra a continuacin es una muestra de una lista de exportacin correcta, donde /usr y
/exports son sistemas de cheros locales: # Exportar src y ports a cliente01 y cliente02, pero # solo el cliente01 tiene acceso root /usr/src /usr/ports -maproot=root cliente01 /usr/src /usr/ports cliente02 # Las maquinas cliente tienen acceso root y pueden montar todo lo que aparezca # en /exports. Cualquier sistema puede montar /exports/obj en modo # solo lectura /exports -alldirs -maproot=root cliente01 cliente02 /exports/obj -ro
Se debe reiniciar el dmon mountd siempre que se modique el contenido del archivo /etc/exports para que los cambios surtan efecto. Esto se realiza enviando la seal HUP al proceso mountd:
# kill -HUP cat /var/run/mountd.pid
533
Captulo 29. Networking avanzado Tambin se puede reiniciar FreeBSD para que se cargue la nueva conguracin pero este mecanismo no resulta necesario si se ejecutan las rdenes como root, que ponen el servidor de NFS de nuevo en funcionamiento. En el servidor de NFS:
# portmap # nfsd -u -t -n 4 # mountd -r
En el cliente de NFS:
# nfsiod -n 4
En este punto todo debera estar preparado para poder anclar el sistema de cheros remoto en la mquina cliente. En los siguientes ejemplos el nombre del servidor es server y el punto de montaje temporal utilizado por el cliente es client. Si se desea montar el sistema de cheros de forma temporal o simplemente comprobar que la conguracin funciona sin problemas se puede ejecutar una orden como la que se muestra a continuacin con permisos de root en la mquina cliente:
# mount server:/home /mnt
Esta orden ancla el directorio /home del servidor en el directorio /mnt del cliente. Si todo funciona correctamente debera poder entrar en el directorio /mnt del cliente y ver todos los cheros que se encuentran en el directorio /home del servidor. Si queremos anclar automticamente un sistema de cheros remoto cuando la mquina est arrancando se puede aadir una lnea como la siguiente dentro de /etc/fstab:
servidor:/home /mnt nfs rw 0 0
Comparticin de la unidad de CDROM entre varias mquinas. Esto resulta ser ms barato y una forma ms conveniente para instalar software en varias mquinas. En grandes redes puede ser ms adecuado congurar un servidor central de NFS en el cual se almacenen todos los homes de los distintos usuarios. Estos directorios se pueden exportar a travs de la red de tal forma que los usuarios pueden trabajar con el mismo directorio independientemente de la mquina que utilicen. Varias mquinas pueden poseer el directorio /usr/ports/distfiles compartido. De este modo cuando necesitemos instalar un port en varias mquinas, se puede acceder rpidamente a las fuentes sin necesidad de bajarlas una vez para cada mquina.
534
10.10.10.0 10.10.10.0
Como se observa en el ejemplo, showmount muestra el directorio /usr como una exportacin. Cuando se cambia el directorio actual al directorio /host/foobar/usr el dmon amd intenta resolver el nombre foobar y automticamente ancla el sistema de cheros remoto. El dmon amd se puede ejecutar a partir de los scripts de inicio, utilizando la siguiente lnea del archivo de conguracin /etc/rc.conf:
amd_enable="YES"
Adems, amd soporta opciones adicionales que pueden denirse mediante la variable amd_flags. Por defecto, la variable amd_flags posee las siguientes opciones:
amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"
El archivo /etc/amd.map dene las opciones por defecto con las cuales se anclan los sistemas de cheros remotos. El archivo /etc/amd.conf dene algunas caractersticas avanzadas para el dmon amd. Se ruega consultar las pginas del manual de amd(8) y de amd.conf(5) para obtener ms informacin.
535
Ejemplos de conguracin para el sistema FreeBSD que acta como servidor. Conguracin de /etc/fstab de fastws:
freebox:/sfcompartido /projecto nfs rw,-w=1024 0 0
536
Captulo 29. Networking avanzado Casi cualquier adaptador Ethernet de 16 bits permite operar sin operar sin las restricciones anteriores sobre el tamao de lectura o escritura especicado por defecto. Por si alguien estuviera interesado a continuacin se muestra el error que aparece en estos casos, lo cual explica por qu decimos que el error resulta irrecuperable. NFS trabaja tpicamente con un tamao de bloque de 8 K (aunque se pueden producir fragmentos de menor tamao). Debido a que el mximo tamao de los paquetes Ethernet se encuentra alrededor de los 1500 bytes el bloque de NFS se trocea en varios paquetes Ethernet aunque desde el punto de vista del protocolo NFS se trata como si fuese un nico paquete. Los trozos deben reensamblarse en el destino y se debe enviar una conrmacin para el bloque recibido. Las estaciones de trabajo de altas prestaciones pueden soltar paquetes NFS de forma contnua uno despus de otro, lo ms juntos posible. Por otro lado en las tarjetas de red ms pequeas y de menor capacidad puede ocurrir que un paquete recien llegado a la tarjeta sobreescriba informacin perteneciente a un paquete anterior antes de que llegue a ser transmitido completamente, de tal forma que al recibirse el bloque NFS no puede ser ni reconstruido ni ni reconocido. Como resultado de este proceso la mquina tratar de enviar el mismo paquete transcurridos unos instantes de espera, pero se tratarn de enviar de nuevo los 8 K que constituyen un bloque NFS, y de esta forma se repetir el el proceso, as hasta el innito. Si se mantiene el tamao del bloque por debajo del tamao de paquete mximo de Ethernet, podemos asegurar que cualquier paquete Ethernet transporta un bloque NFS, el cual puede asentirse individualmente, evitando as la explosin de paquetes y el eventual bloqueo del sistema. Desbordamientos circulares del buffer ( overruns) pueden producirse si nos encontramos con una estacin de trabajo de altas prestaciones que enva contnuamente mucho trco a un sistema convencional, pero con tarjetas Ethernet de buena calidad, estos desbordamientos resultan altamente improbables para el caso de los tamaos de bloque por defecto generados por el sistema NFS. Cuando se produce un desbordamiento, las unidades afectadas se retransmiten, y existe una gran probabilidad de que se reciban, se reensamblen y se conrmen.
Existen al menos dos formas de cargar el ncleo del sistema operativo a travs de la red:
PXE: El sistema de Intel conocido como Preboot Execution Environment. Se trata de una especie de arranque inteligente a partir de una memoria de slo lectura (ROM) que se encuentra en algunas placas bases y tarjetas de red. Se puede obtener ms informacin en pxeboot(8). El port etherboot (net/etherboot) genera cdigo de slo lectura (cdigo ROM) que se puede utilizar para arrancar mquinas a travs de la red. Dicho cdigo se puede instalar en una memoria de arranque tipo PROM en algunas tarjetas de red o se puede cargar en una disquetera (o disco duro), y tambin en un sistema de cheros MS-DOS que est en ejecucin. Varias tarjetas de red soportan este mecanismo.
Existe un script de ejemplo (/usr/share/examples/diskless/clone_root) que facilita la creacin y el mantenimiento del sistema de cheros raz de la estacin de trabajo en el servidor. La conguracin de este script se debe retocar ligeramente pero sirve como punto de partida para comenzar rpidamente.
537
Existen cheros estndar de arranque bajo /etc que dan soporte al arranque de mquinas sin disco. El swapping, en caso de ser necesario, se puede realizar usando NFS y tamben usando un disco duro local.
Existen varias formas de ejecutar una estacin de trabajo sin discos. En el proceso se involucran distintos elementos y la mayora se pueden adaptar a las necesidades del usuario. A continuacin se describen variaciones sobre la conguracin de un sistema sin discos, haciendo incapi en la simplicidad y compatibilidad con los scripts de arranque de FreeBSD. El sistema que vamos a describir tiene las siguientes caractersticas.
Las estaciones de trabajo sin disco utilizan un sistema de cheros raz de slo lectura y un sistema de cheros compartido, tambin de slo lectura, bajo /usr. El sistema de cheros raz es una copia del sistema raz estandar de FreeBSD (normalmente del sistema raz del servidor), donde se sobreescriben algunos archivos de conguracin necesarios para la ejecucin sin discos y para la conguracin local especca de la mquina objetivo. Las partes del sistema de cheros raz que tiene que tener permisos de lectura y escritura se superponen con los sistemas de cheros mfs(8) (FreeBSD 4.X) o md(4). Cualquier cambio que se produzca en dichas partes se perder cuando se reinicie el sistema.
El ncleo se transmite y se carga utilizando etherboot o bien PXE, dependiendo del hardware y los mecanismos que se soporten.
AtencinComo se ha comentado con anterioridad estos sistemas son inseguros. Se debe connar dentro de una red protegida y el resto de las mquinas por defecto no deben conar en estos mtodos.
Toda la informacin que se presenta en esta seccin se ha probado utilizando FreeBSD 4.9-RELEASE y 5.2.1-RELEASE. El texto se encuentra estructurado principalmente para utilizacin en sistemas 4.X. Se insertan notas para indicar cambios producidos en las versiones 5.X.
Diferentes opciones de tiempo de compilacin pueden determinar comportamientos distintos en tiempo de ejecucin. Los mensajes de error a menudo resultan crpticos o incluso no existen.
Se se quieren resolver los posibles problemas que puedan surgir resulta muy til conocer el funcionamiento conceptual del mecanismo. Para que el arranque se produzca exitosamente se deben realizar varias operaciones:
La mquina necesita obtener algunos parmetros iniciales, tales como su direccin IP, el chero ejecutable, el nombre del servidor y la ruta raz. Esto se realiza utilizando los protocolos DHCP o BOOTP. DHCP es una extensin compatible del protocolo BOOTP y utiliza los mismos nmeros de puertos y los mismos formatos de paquete bsicos.
538
Captulo 29. Networking avanzado Es posible congurar un sistema de tal forma que utilice slamente BOOTP. En el sistema base de FreeBSD se incluye el programa servidor bootpd(8). No obstante DHCP posee varias ventajas sobre BOOTP (archivos de conguracin ms limpios, posibilidad de ejecutar PXE, junto con otras caractersticas que no se relacionan directamente con el tema que estamos tratando tratando) por lo que principalmente se va a describir la conguracin de DHCP, proporcionando ejemplos equivalentes en bootpd(8) siempre que sea posible. La conguracin de ejemplo se basa en el paquete software de ISC DHCP (en el servidor de prueba se instal la versin 3.0.1.r12).
La mquina sin disco necesita transferir uno o varios programas a la memoria local. Para ello se usa TFTP o bien NFS. La eleccin entre ambos se produce mediante la conguracin de la compilacin que se produce en varios lugares. Una fuente de error tpica aparece cuando se especican cheros con el protocolo incorrecto: TFTP normalmente transere todos los cheros desde un nico directorio del servidor, de modo que espera nombres de cheros relativos a dicho directorio. Por otro lado NFS necesita recibir rutas de chero absolutas. El kernel y los programas de arranque intermedios deben ser inicializados y ejecutados. Existen diferencias importantes en este rea:
PXE carga pxeboot(8), una versin modicada de la tercera fase del cargador de arranque de FreeBSD. loader(8) obtiene la mayora de los parmetros necesarios para arrancar el sistema y los deposita en variables de entorno del kernel antes de tranferir el control. En este caso es posible utilizar un un ncleo GENERIC . etherboot carga directamente el directamente el ncleo con menos trabajo previo que el mtodo anterior. Para ello se debe compilar un ncleo con ciertas opciones.
PXE y etherboot funcionan muy bien en los sistemas 4.X. Dado que los ncleos de los sistemas 5.X permiten que el loader(8) realice ms tareas, se preere usar PXE. Si su BIOS y su tarjeta de red soportan PXE lo normal es utilizarlo. No obstante se puede arrancar un sistema 5.X utilizando etherboot.
Para acabar la tarea la mquina necesita acceder al sistema de cheros. En todos los casos se utiliza NFS.
539
Esta opcin indica a dhcpd que enve el valor que se encuentra en las declaraciones de host como el nombre de mquina para la mquina sin disco. Otra forma de hacer esto sera aadiendo una opcin option host-name margaux dentro de las declaraciones de mquina. La directiva next-server selecciona el servidor de TFTP o de NFS que se debe utilizar para cargar el ncleo o el chero cargador del ncleo (por defecto se utiliza la misma mquina que acta como servidor de DHCP). La directiva filename dene el archivo que etherboot o PXE cargar en el siguiente paso de ejecucin. Debe especicarse de acuerdo con el mtodo de transferencia seleccionado. Etherboot se puede compilar para que use NFS o TFTP. El sistema FreeBSD se congura por defecto para NFS. PXE utiliza TFTP por lo que se utiliza una ruta relativa para especicar el nombre del chero (esto puede depender de la conguracin del servidor de TFTP pero suele ser lo normal). Adems PXE no carga el ncleo, lo hace pxeboot. Existen otras posibilidades interesantes, como cargar pxeboot desde el directorio /boot de una unidad de CD-ROM de FreeBSD (ya que pxeboot(8) puede cargar un ncleo GENERIC surge la posibilidad de utilizar PXE para arrancar desde una unidad de CD-ROM remota). La opcin root-path dene la ruta para el sistema de cheros raz utilizando la notacin tpica de NFS. Cuando se utiliza PXE, es posible dejar la direccin IP siempre y cuando no se active la opcin del ncleo de BOOTP. El servidor NFS ser en este caso el mismo que el servidor de TFTP.
29.7.2.2. Conguracin utilizando BOOTP A continuacin se muestra la conguracin equivalente utilizando bootpd (reducida a un nico cliente). Esta conguracin se debe situar en /etc/bootptab.
540
Captulo 29. Networking avanzado Por favor, recuerde que etherboot se debe compilar con la opcin especca de NO_DHCP_SUPPORT para que pueda utilizar BOOTP y que PXE requiere DHCP. La nica ventaja obvia de bootpd es que se encuentra disponible en el sistema base.
.def100:\ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ :sm=255.255.255.0:\ :ds=192.168.4.1:\ :gw=192.168.4.1:\ :hd="/tftpboot":\ :bf="/kernel.diskless":\ :rp="192.168.4.4:/data/misc/diskless": margaux:ha=0123456789ab:tc=.def100
29.7.2.3. Preparacin de un programa de arranque con Etherboot La pgina web de Etherboot (http://etherboot.sourceforge.net) contiene una amplia documentacin (http://etherboot.sourceforge.net/doc/html/userman/t1.html) enfocada principalmente a los sistemas Linux pero en cualquier caso contiene informacin que puede resultar til. En los siguientes prrafos se describe brevemente como se puede utilizar etherboot en un sistema FreeBSD. Lo primero es instalar el port o paquete net/etherboot. El port de etherboot est en /usr/ports/net/etherboot. Si el rbol de ports est instalado en el sistema basta con ejecutar make en dicho directorio. Por favor, lea Captulo 4 para saber ms sobre los ports y los paquetes. Se puede modicar la conguracin de etherboot (por ejemplo, para que use TFTP en lugar de NFS) editando el chero Config que se encuentra en el directorio fuente de etherboot. Para nuestros propsitos se utilizar un disquete de arranque. Para utilizar otros mtodos (PROM o un programa MS-DOS) por favor consulte la documentacin de etherboot. Para crear un disco de arranque se debe insertar un disco en la unidad de disquetes de la mquina donde se ha instalado etherboot, cambiar al directorio src dentro del rbol de directorios de etherboot y teclear:
# gmake bin32/tipo_de_dispositivo.fd0
tipo_de_dispositivo depende del tipo de tarjeta Ethernet que se encuentre instalada en la estacin de trabajo sin disco. Consulte el chero NIC en el mismo directorio para determinar cal es el tipo_de_dispositivo que debe
usted usar.
29.7.2.4. Arranque con PXE Por defecto el cargador pxeboot(8) carga, valga la redundancia, el kernel va NFS. El El cargador se puede compilar para que utilice TFTP en lugar de NFS especicando la opcin LOADER_TFTP_SUPPORT dentro de /etc/make.conf. Observe los comentarios de /etc/defaults/make.conf (o de /usr/share/examples/etc/make.conf para sistemas 5.X) para saber ms detalles.
541
Captulo 29. Networking avanzado Existen otras dos opciones de make.conf no documentadas que pueden ser tiles para arrancar una mquina sin disco a travs del puerto serie: BOOT_PXELDR_PROBE_KEYBOARD y BOOT_PXELDR_ALWAYS_SERIAL (esta ltima slo existe en FreeBSD 5.X). Para utilizar PXE cuando arranca la mquina normalmente el usuario tiene que seleccionar la opcin Boot from network dentro del men de opciones de la BIOS o pulsar un tecla de funcin cuando la mquina se est inicializando.
29.7.2.5. Conguracin de servidores de TFTP y de NFS Si PXE o etherboot se encuentran congurados para utilizar TFTP se necesita activar tftpd en el servidor de cheros: 1. 2. Crear un directorio desde el cual el dmon tftpd servir los cheros, por ejemplo /tftpboot. Aadir la siguiente lnea a /etc/inetd.conf:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Nota: Parece que al menos algunas versiones de PXE utilizan la versin TCP de TFTP. En este caso se puede aadir una segunda lnea, donde se reemplace dgram udp por stream tcp.
3.
Se puede situar el directorio tftpboot en cualquier parte del servidor. Debe asegurarse de que la localizacin se encuentra correctamente congurada tanto en inetd.conf como en dhcpd.conf. En todos los casos tambin resulta necesario activar el sistema de NFS y exportar los sistemas de cheros adecuados, todo ello en el servidor de NFS. 1. Aadir lo siguiente a /etc/rc.conf:
nfs_server_enable="YES"
2.
Exportar el sistema de cheros donde el directorio raz sin disco se encuentra localizado aadiendo lo siguiente a /etc/exports (ajuste el punto de montaje de la unidad y sustituya margaux corbieres por el nombre de las estaciones de trabajo sin disco, segn corresponda):
/data/misc -alldirs -ro margaux corbieres
3.
Indicar a mountd que vuelva a leer su archivo de conguracin. Si en un primer paso se ha congurado la activacin automtica del sistema de NFS en /etc/rc.conf lo mejor es reiniciar para que los cambios surtan efecto.
# kill -HUP cat /var/run/mountd.pid
542
Captulo 29. Networking avanzado 29.7.2.6. Construccin de un kernel sin disco Si se utiliza etherboot, se necesita crear un archivo de conguracin para el kernel de la mquina sin disco que posea las siguientes opciones (adems de las opciones del ncleo habituales):
options options BOOTP BOOTP_NFSROOT # Use BOOTP to obtain IP address/hostname # NFS mount root filesystem using BOOTP info
Puede resultar interesante utilizar adems BOOTP_NFSV3, BOOT_COMPAT y BOOTP_WIRED_TO (consultar LINT en 4.X o NOTES en sistemas 5.X). Los nombres de estas opciones son nombres histricos y ligeramente confusos ya que permiten un uso indistinto tanto de DHCP como de BOOTP dentro del ncleo (tambin resulta posible forzar la utilizacin nica de o bien BOOTP o bien de DHCP). Contruir el ncleo (vea Captulo 8) y copiarlo al lugar especicado en el archivo dhcpd.conf.
Nota: Cuando se utiliza PXE, la construccin del ncleo con las opciones anteriores no resulta ser algo estrictamente necesario (aunque se recomienda). Activar dichas opciones provoca un mayor trco de peticiones de DHCP durante el arranque del ncleo, lo que puede dar lugar a pequeas inconsistencias entre los nuevos valores y los los valores recuperados por pxeboot(8) en casos muy especcos. La ventaja de utilizarlas consiste en que como un efecto colateral se congurar el nombre de la mquina. De otro modo tendramos que congurar dicho nombre mediante otro mtodo por ejemplo mediante la conguracin especca de la mquina cliente a travs del archivo rc.conf.
Nota: Para que el ncleo se pueda cargar sin problemas con etherboot en sistemas 5.X dicho ncleo tiene que tener compilado el soporte para device hints. Para ello normalmente se especica la siguiente opcin dentro del chero de conguracin del ncleo (consulte los comentarios del chero NOTES):
hints "GENERIC.hints"
29.7.2.7. Preparacin del sistema de cheros raz Se debe crear un sistema de cheros raz en las estaciones de trabajo sin disco, concretamente en la localizacin especicada por root-path dentro de dhcpd.conf. Las siguientes secciones describen dos formas de hacer esto. 29.7.2.7.1. Utilizacin del script clone_root Este es el modo ms rpido de crear un sistema de cheros raz, pero actulamente slo se encuentra soportado en FreeBSD 4.X. El script de shell se encuentra en /usr/share/examples/diskless/clone_root y debe ser congurado al menos para ajustar el lugar donde se construir el sistema de cheros (concretamente la variable DEST). Consulte los comentarios que se encuentran al comienzo del script para conocer cuales son las instrucciones que debe seguir. All se explica cmo se construye el sistema de cheros base y como determinados cheros se pueden sobreescribir de manera selectiva por versiones especcas para funcionar sin discos, para toda una subred o para una
543
Captulo 29. Networking avanzado mquina individual. Tambin all se muestran ejemplos de los cheros /etc/fstab y /etc/rc.conf para mquinas sin disco. Los archivos README que se encuentran dentro de /usr/share/examples/diskless contienen mucha informacin de base, que junto con el resto de ejemplos dentro del directorio diskless sirven para documentar un mtodo de conguracin distinto del que se utiliza en clone_root y en los scripts del sistema de /etc, que resultan ser un tanto confusos. No obstante se pueden utilizar a modo de referencia, excepto si se preere utilizar el mtodo que se describe en ellos, en cuyo caso se necesitar modicar y adaptar los scripts de forma adecuada.
29.7.2.7.2. Utilizacin del procedimiento estndar de make world Este mtodo se puede utilizar tanto en FreeBSD 4.X o 5.X y se instalar un sistema completamente nuevo (no slo el sistema de cheros raz) dentro de DESTDIR. Basta con ejecutar el siguiente script:
#!/bin/sh export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} cd /usr/src; make world && make kernel cd /usr/src/etc; make distribution
Una vez ejecutado puede ser necesario ajustar los cheros /etc/rc.conf y /etc/fstab que se encuentran en DESTDIR de acuerdo con nuestras necesidades.
29.7.2.8. Conguracin de la particin de intercambio En caso de ser necesario se puede acceder a un chero de intercambio (swap) a travs del sistema NFS. Uno de los mtodos tpicamente utilizados para realizar esta tarea ha sido retirado de la distribucin 5.X. 29.7.2.8.1. NFS swap en sistemas FreeBSD 4.X La ubicacin del chero de intercambio y su tamao se puede especicar con las opciones FreeBSD-specic 128 y 129 de BOOTP/DHCP. A continuacin se muestran varios ejemplos de cheros de de conguracin para ISC DHCP 3.0 o bootpd: 1. Aadir las siguientes lneas al chero dhcpd.conf:
# Global section option swap-path code 128 = string; option swap-size code 129 = integer 32; host margaux { ... # Standard lines, see above option swap-path "192.168.4.4:/netswapvolume/netswap"; option swap-size 64000; } swap-path es la ruta al directorio donde se instalarn los archivos de intercambio. Cada Cada chero se denomina swap.direccion-ip-del-cliente.
544
Captulo 29. Networking avanzado Versiones ms antiguas de dhcpd usaban una sintxis del estilo de option option-128 "..., lo cual ya no est soportado.
/etc/bootptab normalmente utiliza la siguiente sintaxis: T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00 Nota: El tamao del chero dedicado a intercambio se debe expresar en /etc/bootptab en formato hexadecimal.
2.
En el servidor de cheros NFS donde va a residir el chero de swap se debe(n) crear dicho(s) chero(s)
# # # # mkdir /volumenintercambiored/intercambiored cd /volumenintercambiored/intercambiored dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6 chmod 0600 swap.192.168.4.6
3.
A continuacin indicar a mountd que vuelva a leer el chero /etc/exports como se ha indicado anteriormente.
29.7.2.8.2. NFS swap en FreeBSD 5.X El ncleo no soporta la activacin del intercambio a travs de NFS en tiempo de arranque. De esta forma la swap se debe activar mediante los scripts montando un sistema de cheros de lectura-escritura y creando y activando el chero de intercambio. Para crear un chero de intercambio de un determinado tamao se puede ejecutar lo siguiente:
# dd if=/dev/zero of=/ruta/al/fichero/de/intercambio bs=1k count=1 oseek=100000
Para activar el intercambio se tiene que aadir la siguiente lnea al chero de conguracin rc.conf:
swapfile=/ruta/al/fichero/de/intercambio
29.7.2.9. Varios 29.7.2.9.1. Ejecucin con un /usr de slo lectura Si la estacin de trabajo sin disco se congura para utilizar el sistema X-Window se tiene que ajustar el chero de conguracin de xdm debido a que dicho chero sita por defecto el chero de logs de errores en el directorio /usr.
545
Captulo 29. Networking avanzado 29.7.2.9.2. Uso de un servidor no-FreeBSD Cuando el servidor del sistema de cheros raz no ejecuta FreeBSD se tiene que crear un sistema de cheros raz sobre una mquina FreeBSD para despus copiarlo al servidor original mediante las rdenes tar o cpio. En esta situacin algunas veces surgen varios problemas relacionados con los dispositivos especiales que se encuentran en el directorio /dev debido a los diferentes tamaos de los enteros mayor/menor. Una solucin para este problema consiste en exportar un directorio del servidor no-FreeBSD, montar este directorio en la mquina FreeBSD anterior y ejecutar MAKEDEV en dicha mquina para crear las entradas de dispositivo correctas (FreeBSD 5.0 y posteriores utilizan devfs(5) para ubicar nodos de dispositivos de forma transparente para el usuario de tal modo que la ejecucin de MAKEDEV en estos sistemas no sirve para nada).
29.8. RDSI
la pgina de RDSI de Dan Kegel (http://www.alumni.caltech.edu/~dank/isdn/) constituye un recurso de informacin bastante bueno sobre la tecnologa RDSI (ISDN en ingls) y sobre el hardware relacionado. A continuacin se comenta un esquema rpido sobre RDSI:
Si usted vive en Europa le puede resultar til leer la seccin sobre tarjetas RDSI. Si se prevee utilizar RDSI principalmente para conectarse a Internet a travs de un Proveedor de Servicios utilizando un mecanismo de marcacin automtica no dedicado (dial-up), se puede echar un vistazo a los Adaptadores de Terminal. Dichos adaptadores proporciona la mayor exibilidad y garantiza los mnimos problemas en caso de cambio de cambio de proveedor. Si estamos conectados a dos LAN o conectando a Internet con una conexin RDSI dedicada puede ser interesante considerar la opcin de usar un router/bridge nico.
El coste es un factor importante a la hora de determinar qu solucin se debe escoger. Las siguientes opciones se encuentran ordenadas desde las ms baratas hasta las ms caras.
546
Captulo 29. Networking avanzado Las tarjetas RDSI pasivas soportadas en FreeBSD son principalmente las que poseen el chip Inneon (antiguamente Siemens) ISAC/HSCX/IPAC. Tambin las tarjetas RDSI con los chips de Cologne (en bus ISA exclusivamente), tarjetas PCI con el chip Winbond W6692, algunas tarjetas con combinaciones de los chips Tiger 300/320/ISAC y tambin algunas tarjetas basadas en chips propietarios como las AVM Fritz! PCI V.1.0 y AVM Fritz! PnP. Actualmente las tarjetas RDSI activas soportadas son las AVM B1 (ISA y PCI) BRI, y las AVM T1 PCI PRI. Se puede consultar /usr/share/examples/isdn/ para obtener documentacin sobre isdn4bsd y tambin en la pgina principal de isdn4bsd (http://www.freebsd-support.de/i4b/), donde hay enlaces de ayuda, erratas y mucha ms informacin til, como por ejemplo el manual de isdn4bsd (http://people.FreeBSD.org/~hm/). Si se quiere aadir soporte para un protoclo RDSI distinto para una tarjeta RDSI que no se encuentra soportada o para mejorar isdn4bsd en algn aspecto por favor pngase en contacto con Hellmuth Michaelis <hm@FreeBSD.org>. Para realizar consultas referentes a la instalacin, conguracin y depuracin de problemas relacionados con isdn4bsd le recomendamos recurrir a la lista de correo freebsd-isdn (http://lists.FreeBSD.org/mailman/listinfo/freebsd-isdn).
La mayora de los dems TAs probablemente tambin funcionen puesto que los fabricantes siempre tratan de que sus productos puedan aceptar la mayora de las rdenes AT. El problema que existe con los TAs es que, como sucede con los modems, se necesita tener una buena tarjeta serie instalada en el sistema.
547
Captulo 29. Networking avanzado Se recomienda consultar el tutorial FreeBSD Serial Hardware (../../articles/serial-uart/index.html) para obtener una comprensin detallada del funcionamiento de los dispositivos serie en FreeBSD y para comprender las diferencias entre puertos serie sncronos y asncronos. Un TA que se ejecuta a travs de un puerto serie (asncrono) est limitado a 115.2 Kbs, aunque la conexin RDSI sea de 128 Kbs. Para utilizar completamente el ancho de banda que RDSI proporciona, se debe conectar el TA a una tarjeta serie sncrona. No se engae creyendo que comprando un TA interno har desaparecer los problemas sncronos/asncronos. Los TA internos simplemente disponen de un chip de puerto serie instalado de fbrica. Lo nico que se consigue con estos dispositivos es no tener que enchufarlos a la red eltrica ahorrando as un enchufe y no tener que comprar un cable serie, pero los problemas dichos anteriormente permanecen. Una tarjeta asncrona con un TA resulta ser al menos tan rpida como un router standalone y si FreeBSD controla dicha tarjeta se puede adaptar ms fcilmente. La eleccin de una tarjeta sncrona/TA versus un router standalone se trata en la mayora de los casos de una cuestin cuasi-religiosa. Han existido diversas discusiones sobre este tema en varias listas de correo. Nosotros recomendamos que busque informacin en los histricos (http://www.freebsd.org/search/index.html) para para poder sopesar los pros y los contras que se han esgrimido en tales discusiones.
548
The Internet
Windows 95
Sun Workstation
Si nuestra sucursal o red hogar est compuesta nicamente por una computadora se puede utilizar un cable cruzado de par trenzado para conectar con el router standalone de forma directa.
Ejemplo 29-3. Ocina central u otra LAN La red utiliza una topologa en estrella basada en Ethernet de 10 base T (Par Trenzado).
Hub
The Internet
Sun Workstation
Novell Server
Windows 95
Una gran ventaja que poseen la mayora de los routers/bridges es que pueden gestionar al mismo tiempo dos conexiones PPP independientes destinadas a dos organizaciones distintas. Esta funcionalidad no se proporciona en la mayora de los TAs, excepto para determinados modelos (normalmente ms caros) que se fabrican con dos puertos serie. No confunda esto con la agrupacin de canales, MPP, etc. Esta caracterstica puede resultar muy til si, por ejemplo, se dispone de una conexin RDSI dedicada con la ocina y queremos introducirnos en ella pero no queremos utilizar otra lnea RDSI en el trabajo. Un router situado en las
549
Captulo 29. Networking avanzado instalaciones de la ocina puede gestionar una conexin de canal B dedicada (64 Kpbs) hacia internet y utilizar el otro canal B como una conexin de datos independiente. El segundo canal B se puede utilizar para marcacin remota (dial-in y dial-out) o para agrupacin dinmica de canales (MPP, etc) en conjuncin con el primer canal B con el objetivo de obtener un mayor ancho de banda. Un bridge Ethernet permite transmitir ms trco aparte del trco IP. Se puede transmitir IPX/SPX o cualquier otro protocolo que se est utilizando.
29.9. NIS/YP
Escrito por Bill Swingle. Ampliado por Eric Ogren y Udo Erdelhoff.
550
Captulo 29. Networking avanzado Term portmap Description Debe ejecutarse para que se activen las llamadas a procedimientos remotos (Remote Procedure Call o RPC) que son utilizadas por NIS. Si portmap no se est ejecutando no se podr ejecutar ni clientes ni servidores de NIS. Asocia un cliente con un servidor NIS. Primeramente se lee el nombre de dominio NIS del sistema y utilizando RPC se conecta con el servidor. ypbind es la parte central de la comunicacin cliente servidor del sistema NIS; si ypbind muere en una mquina cliente, dicha mquina no podr acceder al servidor NIS. Debe ejecutarse slamente en los servidores NIS; se trata del proceso servidor de NIS. Si ypserv(8) muere, el servidor no ser capaz de responder a peticiones NIS (no obstante, si se denen servidores NIS esclavos la situacin puede recuperarse). Existen algunas implementaciones de NIS (no es el caso de FreeBSD) que no intentan conectarse con otro servidor si el servidor con otro servidor si el servidor que se estaba que se estaba utilizando muere. A menudo lo nico que se puede hacer en estos casos es reiniciar el servidor (el proceso o la propia mquina) o el proceso ypbind del cliente. Otro proceso que slo debe ejecutarse en el servidor maestro de NIS; se trata de un dmon que permite a los clientes de NIS modicar las contraseas de los usuarios. Si no se ejecuta este dmon los usuarios tendrn que entrar en el servidor maestro de NIS para cambiar sus contraseas all.
ypbind
ypserv
rpc.yppasswdd
551
Servidor de NIS maestro. Este servidor, semejante a un controlador de dominio primario de Windows NT mantiene todos los archivos que utilizan los clientes. Los cheros passwd, group y algunos otros se encuentran ubicados en el servidor maestro.
Nota: Resulta posible congurar una mquina para que acte como servidor NIS maestro para ms de un dominio NIS. No obstante esta conguracin no se va a tratar en esta introduccin, en la cual asumimos un entorno NIS de tamao relativamente pequeo.
Servidores de NIS esclavos. Semejantes a los controladores de backup de Windows NT, los servidores NIS esclavos se utilizan para proporcionar redundancia en entornos de trabajo donde la disponibilidad del servicio resulta muy importante. Adems se utilizan para distribuir la carga que normalmente soporta un servidor maestro: los clientes de NIS siempre se asocian con el servidor de NIS que posee mejor tiempo de respuesta, y esto y esto tambin incluye a los servidores de NIS esclavos.
Clientes NIS. Los clientes NIS, de forma semejante a las estaciones de trabajo de Windows NT, se validan contra un servidor NIS (en el caso de Windows NT se validan contra un controlador de dominio) para acceder al sistema.
29.9.4.1. Planicacin Vamos a suponer que somos el administrador de un pequeo laboratorio de una universidad. En este laboratorio, compuesto por 15 mquinas FreeBSD, actualmente no existe ningn punto de administracin centralizada; cada mquina posee sus sus propios /etc/passwd y /etc/master.passwd. Estos cheros se encuentran sincronizados el uno con el otro mediante intervencin manual; por tanto, cuando queramos aadir un usuario a nuestro laboratorio tendremos que ejecutar adduser en todas las mquinas. Claramente esta situacin tiene que cambiar, de tal forma que hemos decidido crear un dominio NIS en el laboratorio usando dos mquinas como servidores NIS. La conguracin de nuestro laboratorio debera ser algo parecido a lo siguiente:
552
Direccin IP
10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 10.0.0.[6-17]
Papel servidor NIS maestro Servidor NIS esclavo Estacin de trabajo del profesorado mquina cliente Resto de mquinas clientes
Si se est congurando un esquema de NIS por primera vez es una buena idea detenerse a pensar cmo queremos implantar el sistema. Existen varias decisiones que se deben tomar independientemente del tamao de nuestra red. 29.9.4.1.1. Eleccin del nombre de dominio NIS Este nombre puede no ser el nombre de dominio al que estamos acostumbrados. Resulta ms preciso llamarlo nombre de dominio NIS. Cuando un cliente genera peticiones de NIS que llegan a todas las mquinas (broadcast) solicitando informacin se incluye el nombre de dominio NIS que tiene congurado. De esta forma, varios servidores de dominios distintos situados en la misma red pueden discriminar las peticiones recibidas. Se puede pensar en el nombre de dominio NIS como un identicador de grupos de mquinas que se encuentran relacionados administrativamente de alguna forma. Algunas organizaciones eligen utilizar su nombre de dominio de Internet como nombre de dominio NIS. Esto no se recomienda ya que puede causar confusin cuando se intentan depurar problemas de red. El nombre de dominio NIS debera ser un nombre nico dentro de nuestra red y resulta ms til an si el nombre elegido puede describir de alguna forma al conjunto de mquinas que representa. Por ejemplo el departamento de arte de la empresa Acme puede utilizar como nombre de dominio acme-art. En nuestro ejemplo hemos utilizado el nombre test-domain. No obstante algunos sistemas operativos (de forma notable SunOS) utilizan como nombres de dominio nombres de Internet. Si se poseen mquinas con esta restriccin no queda ms remedio que utilizar los nombres de dominio de Internet como nombres de dominio NIS.
29.9.4.1.2. Requisitos fsicos de los servidores Existen varias cosas que debemos tener en cuenta cuando se selecciona una mquina para actuar como servidor NIS. Una de las caractersticas desafortunadas del servicio de pginas amarillas es el alto nivel de dependencia que llegan a tener los clientes respecto del servidor de NIS. Si el cliente no puede contactar con el servidor NIS normalmente la mquina se queda en un estado totalmente inutilizable. La carencia de informacin de usuarios y grupos provoca que las mquinas se bloqueen. Con esto en mente debemos debemos asegurarnos de escoger un servidor de NIS que no se reinicie de forma habitual o uno que no se utilice para para desarrollar. Si se dispone de una red con poca carga puede resultar aceptable colocar el servidor de NIS en una mquina donde se ejecuten otros servicios pero en todo momento se debe tener presente que si por cualquier motivo el servidor de NIS quedara inutilizable afectara a todas las mquinas de forma negativa.
29.9.4.2. Servidores NIS Las copias cannicas de toda la informacin que mantiene el sistema de pginas amarillas se almacenan en una nica mquina denominada servidor maestro de NIS. Las bases de datos utilizadas para almacenar la informacin se denominan mapeos NIS. En FreeBSD estas asociaciones o mapeos se almacenan en el directorio /var/yp/[nombrededominio] donde [nombrededominio] es el nombre del dominio de NIS que el servidor
553
Captulo 29. Networking avanzado gestiona. Un nico servidor NIS puede gestionar varios dominios al mismo tiempo de forma que resulta posible tener varios directorios como el anterior, uno por cada dominio soportado. Cada dominio posee su conjunto de mapeos independiente y propio. Los servidores maestro y esclavos manejan todas las peticiones de a travs del dmon ypserv. ypserv se responsabiliza de recibir peticiones de los clientes NIS. Estas peticiones se traducen a una ruta dentro del servidor. Esta ruta localiza un chero de base de datos determinado del servidor de NIS, y nalmente ypserv se encarga de transmitir la informacin de dicha base de datos de vuelta al cliente que la solicit. 29.9.4.2.1. Conguracin de un servidor de NIS maestro La conguracin de un servidor de NIS maestro puede resultar relativamente sencilla dependiendo de las necesidades que se tengan. FreeBSD viene precongurado por defecto con un servicio NIS. Todo lo que necesitamos es aadir la siguiente lnea en /etc/rc.conf y FreeBSD se encarga del resto. 1.
nisdomainname="test-domain"
Esta lnea establece el nombre de dominio NIS como test-domain, cuando se realiza la conguracin de la red (por ejemplo, despus de un reinicio). 2.
nis_server_enable="YES"
Esta variable indica a FreeBSD que ejecute los procesos necesarios para actuar como un servidor de NIS la prxima vez que se congure el subsistema de red. 3.
nis_yppasswdd_enable="YES" Esto permite activar el dmon rpc.yppasswdd el cual, como se ha mencionado anteriormente, permite a los
Una vez hecho esto todo lo que tenemos que hacer es ejecutar /etc/netstart como superusuario. Esta orden realiza los pasos de conguracin necesarios utilizando los valores de las variables denidas en /etc/rc.conf.
29.9.4.2.2. Inicializacin de los mapeos de NIS Las asociaciones o mapeos de NIS no son ms que cheros de base de datos. Estos cheros se generan a partir de los cheros de conguracin contenidos en el directorio etc/ excepto para el caso del chero etc/master.passwd. Esto es as por una buena razn ya que no suele ser buena idea propagar las contraseas de root y de otras cuentas de administracin a todos los servidores NIS del dominio. servidores NIS del dominio. As, antes de inicializar los mapeos se debe ejecutar:
# cp /etc/master.passwd /var/yp/master.passwd # cd /var/yp # vi master.passwd
554
Captulo 29. Networking avanzado Se deben borrar todas las entradas que hagan referencia a cuentas del sistema (bin, tty, kmem, games, etc), junto con cualquier cuenta que no deseemos que se transmita a los clientes NIS (por ejemplo la cuenta de root y cualquier otra cuenta con UID 0 (el del superusuario)).
Nota: Asegrese de que /var/yp/master.passwd no se puede leer ni por grupos ni por el resto de usuarios (modo 600). Utilice chmod en caso de necesidad.
Una vez hecho esto es hora de inicializar las asociaciones de NIS. FreeBSD incluye un script denominado ypinit para realizar esta tarea (consulte su pgina del manual para obtener ms informacin). Recuerde que este script se encuentra disponible en la mayora de los sistemas UNIX, pero no en todos. En sistemas Digital UNIX/Compaq Tru64 UNIX se denomina ypsetup. Debido a que se pretende generar asociaciones para un servidor NIS maestro vamos a ejecutar ypinit con la opcin -m. A modo de ejemplo, suponiendo que todos los pasos comentados anteriormente se han realizado con xito, ejecute:
ellington# ypinit -m test-domain Server Type: MASTER Domain: test-domain Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you dont, something might not work. At this point, we have to construct a list of this domains YP servers. rod.darktech.org is already known as master server. Please continue to add any slave servers, one per line. When you are done with the list, type a <control D>. master server : ellington next host to add: coltrane next host to add: ^D The current list of NIS servers looks like this: ellington coltrane Is this correct? [y/n: y] y [..salida de la generacion de mapeos..] NIS Map update completed. ellington has been setup as an YP master server without any errors. ypinit debera haber creado el chero /var/yp/Makefile a partir de /var/yp/Makefile.dist. Una vez
creado este archivo presupone que se est usando un entorno NIS con un nico servidor utilizando slamente mquinas FreeBSD. Debido a que test-domain posee tambin un servidor NIS esclavo se debe editar el chero var/yp/Makefile:
ellington# vi
/var/yp/Makefile
555
Captulo 29. Networking avanzado 29.9.4.2.3. Conguracin de un servidor NIS esclavo La conguracin de un servidor NIS esclavo resulta ser incluso ms sencilla que la del maestro. Basta con entrar en el servidor esclavo y editar /etc/rc.conf de foma semejante a como se realiz en el apartado anterior. La nica diferencia consiste en que ahora debemos utilizar la opcin -s cuando ejecutemos ejecutemos ypinit. A continuacin del parmetro -s se debe especicar el nombre del servidor maestro de modo que la orden tendra que ser algo parecido a esto:
coltrane# ypinit -s ellington test-domain Server Type: SLAVE Domain: test-domain Master: ellington Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n]
n
Ok, please remember to go back and redo manually whatever fails. If you dont, something might not work. There will be no further questions. The remainder of the procedure should take a few minutes, to copy the databases from ellington. Transferring netgroup... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byuser... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byhost... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring group.bygid... ypxfr: Exiting: Map successfully transferred Transferring group.byname... ypxfr: Exiting: Map successfully transferred Transferring services.byname... ypxfr: Exiting: Map successfully transferred Transferring rpc.bynumber... ypxfr: Exiting: Map successfully transferred Transferring rpc.byname... ypxfr: Exiting: Map successfully transferred Transferring protocols.byname... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byaddr... ypxfr: Exiting: Map successfully transferred Transferring netid.byname... ypxfr: Exiting: Map successfully transferred
556
En estos momentos debemos tener un nuevo directorio llamado /var/yp/test-domain. Las copias de los mapeos del servidor maestro se almacenan en dicho directorio. Es nuestra responsabilidad como administradores asegurar que dichas copias permanecen actualizadas en todo momento. La siguiente entrada en el archivo /etc/crontab del servidor esclavo se encarga de realizar esta tarea:
20 21 * * * * * * * * root root /usr/libexec/ypxfr passwd.byname /usr/libexec/ypxfr passwd.byuid
Estas dos lneas obligan al servidor esclavo a sincronizar los mapeos con el servidor maestro. Estas entradas no son obligatorias ya que el servidor maestro siempre intenta comunicar cualquier cambio que se produzca en sus asociaciones a todos los servidores esclavos ya que la informacin de, esclavos, ya que la informacin de, por ejemplo, contraseas es de vital importancia para el funcionamiento de los sistemas que dependen del servidor. No obstante es una buena idea obligar a que se realicen estos cambios mediante las entradas anteriores. Esto resulta ser incluso ms importante en redes de sobrecargadas donde las actualizaciones de asociaciones pueden algunas veces no llegar a realizarse de forma completa. A continuacin se ejecuta /etc/netstart en el servidor esclavo de igual de igual forma que se hizo con el servidor maestro; esto relanza de nuevo el servidor de NIS.
29.9.4.3. Clientes NIS Un cliente de NIS establece lo que se conoce con el nombre de asociacin (bind en ingls) con un servidor NIS NIS determinado utilizando el dmon ypbind. ypbind comprueba el dominio por defecto del sistema (especicado mediante domainname) y comienza a enviar peticiones RPC a todos los elementos de la red local (broadcast). Estas peticiones especican el nombre del dominio con el que se quiere establecer la asociacin. Si esta peticin alcanza una peticin alcanza un servidor NIS congurado para servir dicho dominio el servidor responde a la peticin e ypbind almacenar la direccin de dicho servidor. Si existen varios servidores disponibles (un maestro y varios esclavos, por ejemplo), ypbind utilizar la direccin del primero en responder. A partir de este punto el cliente dirigir el resto de sus peticiones NIS directamente a la direccin IP almacenada. Ocasionalmente ypbind enva un ping sobre el servidor para comprobar que en efecto se encuentra funcionando. Si no se recibe contestacin al ping dentro de un espacio de tiempo determinado ypbind marca el dominio como sin asociar y comienza de nuevo a inundar la red con la esperanza de localizar algn otro servidor NIS. 29.9.4.3.1. Conguracin de un cliente NIS La conguracin de un cliente FreeBSD de NIS resulta ser una operacin extremadamente sencilla.
557
Captulo 29. Networking avanzado 1. Editar el chero /etc/rc.conf y aadir las siguientes lneas para establecer el nombre de dominio NIS y para que se ejecute ypbind al arranque de la red:
nisdomainname="test-domain" nis_client_enable="YES"
2.
Para importar todas las entradas de contraseas del servidor de NIS hay que eliminar todas las cuentas de usuario de /etc/master.passwd y utilizar vipw para aadir la siguiente lnea al nal de dicho chero:
+::::::::: Nota: Esta lnea permite que cualquiera abra una cuenta en local, siempre que dicha cuenta se encuentre denida en las asociaciones de cuentas y contraseas del servidor NIS. Existen varias formas de congurar los clientes NIS modicando esta lnea. Consulte la seccin sobre netgroups que se encuentra ms adelante en este mismo texto. Si quiere saber ms puede consultar el libro de OReilly Managing NFS and NIS.
Nota: Se debe mantener al menos una cuenta local (por ejemplo, una cuenta que no se importe a travs de NIS) en el chero /etc/master.passwd y adems dicha cuenta debera ser miembro del grupo wheel. Si algo va mal con el procedimiento descrito esta cuenta se puede utilizar para entrar en la mquina cliente de forma remota para posteriormente convertirse en superusuario e intentar solucionar el problema.
3.
Para importar todas las entradas de grupo posibles del servidor NIS se debe aadir la siguiente lnea al chero
/etc/group: +:*::
Despus de completar estos pasos debermos ser capaces de ejecutar ypcat passwd y ver la asociacin de contraseas que se encuentra en el servidor de NIS
# admitir conexiones desde localhost -- obligatorio 127.0.0.1 255.255.255.255 # admitir conexiones desde cualquier host
558
Si ypserv(8) recibe una peticin de una direccin que coincide con alguna de las reglas especicadas en el chero se procesa la peticin. Si no existe ninguna coincidencia la peticin se rechaza y se graba un mensaje de aviso. Si el archivo /var/yp/securnets no existe ypserv acepta conexiones de cualquier mquina. El programa ypserv tambin posee soporte para el paquete de Wietse Venema denominado tcpwrapper. Este paquete permite utilizar los cheros de conguracin de tcpwrapper para realizar control de acceso en lugar de utilizar var/yp/securenets.
Nota: Aunque ambos mecanismos de control de acceso proporcionan un grado de seguridad mayor que no utilizar nada resultan vulnerables a ataques de falsicacin de IPs. El cortafuegos de la red donde se implanta el servicio de NIS debera encargarse de bloquear el trco especco de dicho servicio. Los servidores que utilizan /var/yp/securenets pueden no prestar servicio a clientes NIS legtimos cuando se trabaja con implementaciones arcaicas de TCP/IP. Algunas de estas implementaciones ponen a cero todos los bits de mquina cuando se realizan broadcast y/o pueden fallar al especicar la mscara de red en el mismo caso, por citar algunos ejemplos. Mientras que algunos de estos problemas se pueden solucionar variando la conguracin del cliente en otros casos podemos vernos obligados a prescindir del cliente en cuestin o a prescindir del chero var/yp/securenets. Se desaconseja la utilizacin de var/yp/securenets en un sistema con una implementacin arcaica de TCP/IP y puede suponer una prdida de funcionalidad para grandes zonas de la red. La utilizacin del paquete tcpwrapper incrementa la latencia del servidor NIS. El retardo adicional introducido puede ser lo sucientemente grande como para causar la expiracin de ciertos temporizadores de los programas clientes, especialmente en redes muy cargadas o con servidores de NIS lentos. Si se experimentan estos sntomas en varias mquinas clientes, puede ser conveniente convertir dichas mquinas en servidores NIS esclavos y obligarlas a asociarse con ellas mismas.
559
vipw: rebuilding the database... vipw: done basie# cat /etc/master.passwd root:[password]:0:0::0:0:The super-user:/root:/bin/csh toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin operator:*:2:5::0:0:System &:/:/sbin/nologin bin:*:3:7::0:0:Binaries Commands and Source,:/:/sbin/nologin tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin news:*:8:8::0:0:News Subsystem:/:/sbin/nologin man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin +::::::::: -bill basie#
560
Descripcin Los nuevos aprendices del departamento de IT Empleados normales Los actuales internos
Nombre de la Mquina(s)
guerra, muerte, hambre, peste orgullo, avaricia, envidia, ira, lujuria, pereza uno, dos, tres, cuatro, ... trashcan
Descripcin Los servidores ms importantes. Slo los empleados de IT pueden entrar en estas mquinas Servidores de menor importancia. Todos los miembros del departamento de IT pueden entrar en ellos. Estaciones de trabajo ordinarias. Slo los empleados actuales pueden utilizar estas mquinas. Una mquina muy vieja sin ningn dato dato crtico. Incluso los internos pueden utilizar esta mquina.
Si se trata de implementar estas restricciones a nivel de usuario particular tendramos que aadir una lnea -usuario a cada chero passwd del sistema para cada usuario que tuviera prohibido el acceso a dicho sistema. Si nos olvidamos de una sola entrada podrmos tener serios problemas. Puede ser factible realizar esta conguracin cuando se instala el servicio pero no obstante el riesgo que corremos al mantener este sistema de restricciones en el da da es muy alto. Despus de todo Murphy era un optimista. La gestin de esta situacin mediante netgroups ofrece varias ventajas. Cada usuario no tiene que tratarse de una forma individualizada; basta con aadir un usuario a uno o ms netgroups y posteriormente permitir o prohibir el acceso para todos los usuarios del netgroup. Si se aade una nueva mquina al servicio de NIS simplemente tendremos que denir restricciones de acceso para los netgroups denidos en la red. Si se aade un nuevo usuario bastar con aadir dicho usuario a un netgroup existente. Estos cambios son independientes unos de otros: se acab la necesidad de aplicar la frase por cada combinacin de usuario y mquina haga esto y esto. Si hemos planicado nuestro servicio de NIS cuidadosamente, slo tendremos que modicar un chero de conguracin en un determinado servidor para permitir o denegar estos accesos. El primer paso consiste en la inicializacin de la asociacin o mapeo del netgroup. La orden de FreeBSD ypinit(8) no crea este mapeo por defecto pero una vez creado ser tenido en cuenta por la implementacin de NIS. Para crear una asociacin vaca simplemente escriba:
ellington# vi /var/yp/netgroup
y comienze a aadir contenido. En nuestro ejemplo necesitamos al menos cuatro netgroups: empleados de IT, aprendices de IT, empleados normales e internos.
IT_EMP IT_APP USERS (,alpha,test-domain) (,charlie,test-domain) (,echo,test-domain) (,golf,test-domain) INTERNS (,able,test-domain) (,beta,test-domain) (,delta,test-domain) (,foxtrott,test-domain) \ (,baker,test-domain)
IT_EMP, IT_APP etc. son los nombres de los netgroups. Cada conjunto delimitado por parntesis dene una o ms
cuentas como pertenecientes al netgroup. Existen tres campos denidos dentro de dichos de dichos grupos:
561
Captulo 29. Networking avanzado 1. El nombre de las mquinas donde los siguientes items son aplicables. Si no se especica un nombre de mquina la entrada se aplica a todas las mquinas existentes. Si se especica una mquina determinada entraremos en un mundo lleno de horrores y confusiones as que mejor no hacerlo. 2. El nombre de la cuenta que pertenece al netgroup que estamos deniendo. 3. El dominio NIS donde reside la cuenta. Se pueden importar cuentas de otros dominios NIS (en caso de que usted pertenezca al extrao grupo de personas que gestionan ms de un dominio NIS. Cada uno de estos campos puede contener comodines. Consulte netgroup(5) para obtener ms detalles.
Nota: No se deben utilizar nombres de los netgroups superiores a ocho caracteres, especialmente si las mquinas de nuestro dominio utilizan sistemas operativos variados. Los nombres son sensibles a las maysculas/minsculas: se recomienda utilizar nombres en maysculas para distinguirlos de los usuarios o mquinas. Algunos clientes de NIS (distintos de los clientes FreeBSD) no pueden gestionar netgroups con un gran nmero de entradas. Por ejemplo algunas versiones antiguas de SunOS comienzan a presentar problemas si un netgroup contiene ms de quince entradas. Se puede solventar este problema creando varios sub-netgroups de como mucho quince usuarios y nalmente creando el verdadero netgroup compuesto por los sub-netgroups:
BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...] BIGGRP2 (,joe16,domain) (,joe17,domain) [...] BIGGRP3 (,joe31,domain) (,joe32,domain) BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3
Se puede repetir este proceso si se tienen que denir ms de 225 usuarios dentro de un nico netgroup.
Esto genera las tres asociaciones NIS netgroup, netgroup.byhost y netgroup.byuser. Utilice ypcat(1) para comprobar si el nuevo mapeo NIS se encuentra disponible:
ellington% ypcat -k netgroup ellington% ypcat -k netgroup.byhost ellington% ypcat -k netgroup.byuser
La salida de la primera orden debera parecerse a los contenidos del chero /var/yp/netgroup. La segunda orden no mostrar ninguna salida salvo que se hayan especicado netgroups especcos para mquinas. La tercera orden se puede utilizar para obtener la lista de los netgroups a los que petenece un determinado usuario. La conguracin del cliente es bastante simple. Para congurar el servidor guerra se debe ejecutar vipw(8) y sustitur la lnea
+:::::::::
por
+@IT_EMP:::::::::
562
Captulo 29. Networking avanzado Ahora slo se importan los datos para los usuarios que se encuentren denidos en el netgroup IT_EMP; dichos datos se importan en la base de datos de contraseas de guerra y slo se permite el acceso a estos usuarios. Por desgraciaesta informacin tambin se aplica a la funcin ~ del shell y a todas las rutinas que traducen nombres de usuarios con los correspondientes identicadores nmericos de usuario (uid). En otras palabras, la orden cd ~ no va a funcionar, ls -l muestra el identicador numrico en lugar del nombre de usuario y find . -user joe -print produce un error de No such user (Usuario desconocido). Para solucionar esto debemos importar todas las entradas de usuario en la mquina cliente NIS pero sin permitirles el acceso. Esto se puede realizar aadiendo otra lnea al chero /etc/master.passwd. Esta lnea debera contener lo siguiente:
+:::::::::/sbin/nologin, lo que signica que se importen todas las entradas pero que se reemplace el shell por /sbin/nologin. Se puede sustituir cualquier campo de la entrada de contraseas especicando un valor concreto para dicho campo en el chero local local /etc/master.passwd. AvisoAsegrese de que la lnea +:::::::::/sbin/nologin se sita despus de +@IT_EMP:::::::::. Si esto no se cumple todas las cuentas de usuario importadas del servidor NIS poseern /sbin/nologin como shell de acceso.
Despus de este cambio si se introduce un nuevo empleado en el departamento de IT basta con cambiar una asociacin de NIS. Se podra aplicar una aproximacin similar para los servidores menos importantes sustituyendo la cadena +::::::::: en las versiones locales del chero /etc/master.passwd por algo parecido a esto:
+@IT_EMP::::::::: +@IT_APP::::::::: +:::::::::/sbin/nologin
Las lneas correspondientes para las estaciones de trabajo normales podran ser:
+@IT_EMP::::::::: +@USERS::::::::: +:::::::::/sbin/nologin
Y parece que todos nuestros problemas de gestin han desaparecido; hasta que unas semanas ms tarde se produce un cambio en la poltica de gestin: el depatamento de IT comienza a alquilar interinos. Los interinos de IT pueden utilizar las estaciones de trabajo normales y los servidores menos importantes y los aprendices de IT pueden acceder a los servidores principales. No nos queda ms remedio que aadir un nuevo netgroup denominado IT_INTERN y aadir los nuevos interinos de IT a este nuevo grupo y comenzar a cambiar la la conguracin de cada mquina, una por una... Como dice el antiguo proverbio: Errores en la planicacin centralizada conllevan grandes quebraderos de de cabeza globales. La habilidad que posee NIS para crear netgroups a partir de otros netgroups se puede utilizar para evitar la situacin anterior. Una posibilidad consiste en la creacin de netgroups basados en roles. Por ejemplo, se podra crear un netgroup denominado BIGSRV para denir las restricciones de acceso para los servidores importantes, otro grupo denominado USERBOX para las estaciones de trabajo... Cada uno de estos netgroups podra contener los netgroups que pueden acceder a dichas mquinas. Las nuevas entradas para nuestro mapeo NIS de netgroups sera algo as:
BIGSRV SMALLSRV USERBOX IT_EMP IT_EMP IT_EMP IT_APP IT_APP ITINTERN ITINTERN USERS
563
Captulo 29. Networking avanzado Este mtodo de denir restricciones de acceso funciona razonablemente bien si podemos denir grupos de mquinas que posean restricciones semejantes. Por desgracia lo normal es que este caso resulta ser una excepcin ms que una regla. En la mayor parte de las ocasiones necesitaremos denir restricciones de acceso en funcin de mquinas individuales. Las deniciones de netgroups especcos para determinadas mquinas constituyen el segundo mtodo que se puede utilizar para gestionar el cambio de poltica del ejemplo que estamos explicando. En nuestro caso el chero /etc/master.passwd de cada mquina contiene dos lneas que comienzan por +. La primera de ellas aade un netgroup con las cuentas que pueden acceder a esa mquina, mientras que la segunda aade el resto de cuentas con shell el resto de cuentas con shell /sbin/nologin. Es una buena idea utilizar la versin todo en maysculas del nombre de mquina como el nombre del netgroup. En otras palabras, las lneas deberan ser como la siguiente:
+@BOXNAME ::::::::: +:::::::::/sbin/nologin
Una vez que hemos completado esta tarea para todas las mquinas nunca ms resultar necesario modicar las versiones locales de /etc/master.passwd. Los futuros cambios se pueden gestionar simplemente modicando el mapeo o asociacin de NIS. A continuacin se muestra un mapeo de netgroups para el escenario que se est explicando junto con algunas buenas ideas:
# Definimos antes que nada los grupos de usuarios IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) DEPT1 (,echo,test-domain) (,foxtrott,test-domain) DEPT2 (,golf,test-domain) (,hotel,test-domain) DEPT3 (,india,test-domain) (,juliet,test-domain) ITINTERN (,kilo,test-domain) (,lima,test-domain) D_INTERNS (,able,test-domain) (,baker,test-domain) # # Ahora definimos unos pocos grupos basados en roles USERS DEPT1 DEPT2 DEPT3 BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN USERBOX IT_EMP ITINTERN USERS # # Y un grupo para tareas especiales # Permitimos a echo y golf acceso a nuestra maquina-anti-virus SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain) # # netgroups basados en maquinas # Nuestros servidores principales GUERRA BIGSRV HAMBRE BIGSRV # El usuario india necesita acceso a este servidor PESTE BIGSRV (,india,test-domain) # # Este es realmente importante y necesita mas restricciones de # acceso MUERTE IT_EMP # # La maquina-anti-virus que mencionabamos mas arriba ONE SECURITY #
564
Si estamos utilizando algun tipo de base de datos para gestionar cuentas de usuario debemos ser capaces de crear la primera parte del mapeo utilizando las herramientas proporcionadas por dicho sistema de base de datos. De este modo los nuevos usuarios tendrn automticamente derechos de acceso sobre las mquinas. Una ltima, por precaucin: puede no ser siempre aconsejable utilizar netgroups basados en mquinas. Si se estn desplegando, por ejemplo, un par de docenas o incluso cientos de mquinas idnticas en laboratorios de estudiantes, es mejor utilizar netgroups basados en roles en lugar de netgroups basados en mquinas individuales para mantener el tamao de la asociacin NIS dentro de unos lmites razonables.
Cada vez que deseemos aadir un usuario a nuestro laboratorio debemos aadirlo al servidor NIS maestro nicamente y es tarea fundamental del administrador acordarse de reconstruir los mapeos NIS. Si nos olvidamos de esto el nuevo usuario ser incapaz de acceder a ninguna mquina excepto al servidor NIS. Por ejemplo, si necesitramos aadir el nuevo usuario jsmith al laboratorio tendramos que ejecutar lo siguiente:
# pw useradd jsmith # cd /var/yp # make test-domain
No introduzca las cuentas de administracin dentro de los mapeos de NIS. No es buena idea propagar cuentas y contraseas de administracin a mquinas donde residen usuarios que normalmente no deberan poder acceder a dichas cuentas. Mantenga el servidor maestro y esclavo de NIS seguros y minimize el tiempo de interrupcin del servicio. Si alguien fuera capaz de comprometer la integridad de estas mquinas o de apagarlas los usuarios del dominio no podran acceder a sus cuentas en ningn sistema. Esto es la debilidad principal de cualquier sistema de administracin centralizada. Si no se protegen los servidores NIS tendremos frente a nosotros a una horda de usuarios bastante enfadados.
565
Otros posibles valores para caracterstica de passwd_format pueden ser blf y md5 (para utilizar los algoritmos Blowsh y MD5 respectivamente). Se debe reconstruir la base de datos de acceso siempre que se modique el chero /etc/login.conf mediante la ejecucin de la siguiente orden como root:
# cap_mkdb /etc/login.conf
Nota: El formato de las contraseas que ya se encuentran denidas en /etc/master.passwd no se actualizar hasta que el usuario cambie su contrasea, despus de que se haya reconstruido la base de datos de tipos de acceso.
A continuacin para asegurarse de que las contraseas se cifran con el formato seleccionado tambin debemos comprobar que la variable crypt_default dentro del chero /etc/auth.conf da preferencia al formato de contrasea elegido. Por ejemplo cuando se utilizan contraseas cifradas con DES la entrada debe ser:
566
Si se realizan los pasos anteriores en cada una de las mquinas clientes y servidoras de nuestro entorno NIS podemos asegurar que todas utilizan el mismo formato de contrasea dentro de nuestra red. Si se presentan problemas de validacin con determinados usuarios en una determinada mquina cliente se puede empezar a investigar sobre el asunto. Recuerde: si se quiere desplegar un servicio de pginas amarillas sobre un entorno de red heterogneo probablemente se deba utilizar DES en todos los sistemas puesto que DES es el mnimo comn denominador.
29.10. DHCP
Escrito por Greg Sutter.
567
Asegurarse de que el dispositivo bpf se encuentra compilado en el kernel. Para ello basta aadir device bpf (pseudo-device bpf en los sistemas FreeBSD 4.X) al chero de conguracin del kernel y recompilarlo e instalarlo. Para ms informacin sobre la construccin de ncleos consulte Captulo 8. El dispositivo bpf se encuentra activado por defecto dentro del chero de conguracin del ncleo (GENERIC que encontrar en su sistema FreeBSD de forma que si no se est utilizando un chero de conguracin del ncleo especco (hecho a medida y/o por usted) no es necesario crear uno nuevo y se puede utilizar directamente GENERIC.
Nota: Para aquellas personas especialmente preocupadas por la seguridad debemos advertir de que el dispositivo bpf es el dispositivo que las aplicaciones de captura de paquetes utilizan para acceder a los mismos (aunque dichas aplicaciones deben ser ejecutadas como root). DHCP requiere la presencia de bpf pero si la seguridad del sistema es ms importante que la conguracin automtica de la red no se recomienda instalar bpf en el ncleo.
Si se utiliza una ubicacin distinta para dhclient o si se desea aadir opciones adicionales a dhclient se puede incluir, adaptndolo a las condiciones particulares de cada usuario, lo siguiente:
dhcp_program="/sbin/dhclient" dhcp_flags=""
El servidor de DHCP (dhcpd) forma parte del port net/isc-dhcp3-server. Este port tambin contiene la documentacin de ISC DHCP.
568
29.10.5. Ficheros
/etc/dhclient.conf
slo contiene comentarios de forma que las opciones que se denen por defecto son razonablemente inocuas. Este chero de conguracin se describe en la pgina de manual de dhclient.conf(5).
/sbin/dhclient
dhclient se encuentra enlazado de forma esttica y reside en /sbin. La pgina de manual de dhclient(8) proporciona ms informacin sobre la orden dhclient.
/sbin/dhclient-script
dhclient-script es el script de conguracin del cliente de DHCP especco de FreeBSD. Tiene todos los
detalles en dhclient-script(8) pero no necesita hacer ninguna modicacin en l para que todo funcione correctamente.
/var/db/dhclient.leases
El cliente de DHCP mantiene una base de datos de prstamos en este chero que se escribe de forma semejante a un log. En dhclient.leases(5) puede consultar una explicacin ligeramente ms detallada.
29.10.7.2. Instalacin del servidor DHCP Para congurar un sistema FreeBSD como servidor de DHCP debe asegurarse de que el dispositivo bpf(4) est compilado dentro del ncleo. Para ello basta aadir device bpf ( pseudo-device bpf en FreeBSD 4.X) al chero de conguracin del ncleo y reconstruir el mismo. Si necesita saber ms sobre el proceso de compilar e instalar el ncleo consulte Captulo 8. El dispositivo bpf ya se encuentra activado en el chero de conguracin GENERIC del ncleo que se facilita con FreeBSD de tal forma que no resulta imprescindible crear un ncleo a medida para ejecutar DHCP.
569
El siguiente paso consiste en editar el chero de ejemplo dhcpd.conf que se crea al instalar el port net/isc-dhcp3-server. Por defecto el chero se llama /usr/local/etc/dhcpd.conf.sample, as que se debe copiar este chero a /usr/local/etc/dhcpd.conf y a continuacin realizar todos los cambios sobre este ltimo.
29.10.7.3. Conguracin del servidor de DHCP El chero dhcpd.conf se compone de un conjunto de declaraciones que hacen referencia a mquinas y a subredes. Esto se entender mejor mediante el siguiente ejemplo:
option domain-name "ejemplo.com"; option domain-name-servers 192.168.4.100; option subnet-mask 255.255.255.0; default-lease-time 3600; max-lease-time 86400; ddns-update-style none; subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254; option routers 192.168.4.1; } host mailhost { hardware ethernet 02:03:04:05:06:07; fixed-address mailhost.ejemplo.com;(10) }
Esta opcin especica el dominio que se proporciona a los clientes y que dichos clientes utilizan como dominio de bsqueda por defecto. Consulte resolv.conf(5) si necesita ms informacin sobre qu signica el dominio de bsqueda. Esta opcin especica la lista de servidores de DNS (seperados por comas) que deben utilizar los clientes. La mscara de red que se proporciona a los clientes. Un cliente puede solicitar un determinado tiempo de vida para el prstamo. En caso contrario el servidor asigna un tiempo de vida por defecto mediante este valor (expresado en segundos). Este es el mximo tiempo que el servidor puede utilizar para realizar prstamos a los clientes. Si un cliente solicita un tiempo mayor como mximo se responder con el valor aqu congurado, ignorndose la peticin de tiempo del cliente. Esta opcin especica si el servidor de DHCP debe intentar actualizar el servidor de DNS cuando se acepta o se libera un prstamo. En la implementacin proporcionada por el ISC esta opcin es obligatoria.
570
Captulo 29. Networking avanzado Esto indica qu direcciones IP se pueden utilizar para ser prestadas a los clientes que las soliciten. Las direcciones IP pertenecientes a este rango, incluyendo los extremos, se pueden entregar a los clientes. Declara cal es la pasarela por defecto que se proporcionar a los clientes. Especica la direccin MAC de una mquina, de tal forma que el servidor de DHCP pueda identicar a la mquina cuando realice una peticin.
(10) Especica que la mquina cliente debera obtener siempre la misma direccin IP. Recuerde que se puede utilizar un nombre de mquina para esto ya que el servidor de DHCP resolver el nombre por s mismo antes de devolver la informacin al cliente. Una vez que se ha acabado de congurar el chero dhcpd.conf se puede proceder con la ejecucin del servidor mediante la siguiente orden:
# /usr/local/etc/rc.d/isc-dhcpd.sh start
Si posteriormente se necesitan realizar cambios en la conguracin anterior tenga en cuenta que el envo de la sel SIGHUP a la aplicacin dhcpd no provoca que se lea de nuevo la conguracin como suele ocurrir en la mayora de los dmones. Tendr que enviar la seal SIGTERM para parar el proceso y posteriormente relanzar el dmon utilizando la orden anterior.
29.10.7.4. Ficheros
/usr/local/sbin/dhcpd
dhcpd se encuentra enlazado de forma esttica y reside en el directorio /usr/local/sbin. La pgina de manual dhcpd(8) que se instala con el port le proporcionar ms informacin sobre dhcpd.
/usr/local/etc/dhcpd.conf
dhcpd necesita un chero de conguracin, /usr/local/etc/dhcpd.conf. Este chero contiene toda la informacin relevante que se quiere proporcionar a los clientes que la soliciten, junto con informacin relacionada con el funcionamiento del servidor. Este chero de conguracin se describe en la pgina del manual dhcpd.conf(5) que instala el port.
/var/db/dhcpd.leases
El servidor de DHCP mantiene una base de datos de prstamos o alquileres dentro de este chero, que presenta un formato de chero de log. La pgina del manual dhcpd.leases(5) que se instala con el port proporciona una descripcin ligeramente ms larga.
/usr/local/sbin/dhcrelay
dhcrelay se utiliza en entornos de red avanzados donde un servidor de DHCP reenva una peticin de un cliente hacia otro servidor de DHCP que se encuentra localizado en otra subred. Si se necesita esta funcionalidad se debe instalar el port net/isc-dhcp3-server. La pgina del manual dhcrelay(8) proporcionada por el port contiene ms detalles sobre esto.
571
29.11. DNS
Enviado por Chern Lee.
29.11.1. Resumen
FreeBSD utiliza por defecto una versin de BIND (Berkeley Internet Name Domain) que proporciona la implementacin ms comn del protocolo de DNS. DNS es el protocolo a travs del cual los nombres de mquinas se asocian con direcciones IP y viceversa. Por ejemplo una consulta preguntando por www.FreeBSD.org recibe una respuesta con la direccin IP del servidor web del Proyecto FreeBSD, mientras que una pregunta sobre ftp.FreeBSD.org recibe como respuesta la direccin IP correspondiente al servidor de FTP. El proceso inverso sucede de una forma similar. Una pregunta relativa a una determinada direccin IP se resuelve al nombre de la mquina que la posee. No se necesita ejecutar un servidor de DNS para poder realizar consultas y bsquedas de DNS. El DNS se coordina de forma distribuida a travs de Internet utilizando un sistema en cierta forma complejo de servidores de nombres raz autorizados y mediante otros servidores de nombres de menor escala que se encargan de replicar la informacin de dominios individuales con el objetivo de mejorar los tiempos de respuesta de bsquedas reiteradas de la misma informacin. Este documento hace referencia a la versin estable BIND 8.X. BIND 9.X se puede instalar a travs del port net/bind9. El protocolo de DNS se encuentra denido en la RFC1034 y la RFC1035. El Internet Software Consortium (www.isc.org) (http://www.isc.org/) se encarga de de mantener el software de BIND.
29.11.2. Terminologa
Para comprender este documento se deben denir los siguientes trminos: Trmino DNS directo (Forward DNS) Origen named, BIND, servidor de nombres (name server) Resolver DNS inverso (Reverse DNS) Zona Raz Denicin Asociacin de nombres de mquinas con direcciones IP Se reere al dominio cubierto por un determinado chero de zona Nombres tpicos que hacen referencia al paquete servidor de nombres de BIND de FreeBSD Un proceso del sistema que utilizan las aplicaciones para hacer preguntas al servidor de nombres. Lo contrario de lo que realiza el DNS directo; asocia direcciones IP con nombres de mquinas El comienzo de la jerarqua de zonas de Internet. Todas las zonas surgen a partir de una zona raz de forma similar a como todos los directorios de un sistema de cheros se encuentran a partir de un directorio raz inicial. Un dominio individual, subdominio o porcin del DNS que se encuentra administrado por la misma autoridad.
Zona
572
es la zona raz es una zona localizada bajo la zona raz una zona localizada bajo la zona org. un subdominio o una zona ubicada bajo la zona ejemplo.org.
org.
ejemplo.org es
foo.ejemplo.org. es
1.2.3.in-addr.arpa es una
zona que referencia a a todas las direcciones IP que se encuentran dentro del espacio de direcciones de 3.2.1.*.
Como se puede observar la parte ms especca de una mquina aparece ms a la izquierda. Por ejemplo ejemplo.org es ms especco que org. y del mismo modo org. es ms especco que la zona raz. El formato de cada parte del nombre de la mquina es muy similar al formato de un sistema de cheros: el directorio /dev se encuentra dentro del directorio raz, y as sucesivamente.
uno quiere proporcionar informacin de DNS al resto del mundo respondiendo con informacin autoritaria a las consultas recibidas. un dominio, por ejemplo ejemplo.org, est registrado y se necesita aadir nombres de mquinas bajo dicho dominio. un bloque de direcciones IP necesita entradas de DNS inversas (de IP a nombre de mquina). un servidor de nombres de backup, llamado esclavo, debe responder a consultas cuando el servidor primario se encuentre cado o inaccesible.
un servidor de DNS local puede responder ms rpidamente de lo que se hara si se tuviera que preguntar al servidor de nombres externo. se desea reducir el trco global de red (se ha llegado a comprobar que el trco de DNS supone un 5% o ms del total del trco que circula por Internet).
Cuando se pregunta por www.FreeBSD.org el resolver normalmente pregunta al servidor de nombres del ISP de nivel superior y se encarga de recibir la respuesta. Si se utiliza un servidor de DNS cach local la pregunta slo se dirige una nica vez hacia el exterior. Dicha pregunta la realiza el servidor cach. Posteriores consultas sobre el mismo nombres son respondidas directamente por este servidor.
573
Descripcin El dmon de BIND El programa de control del dmon El directorio donde se almacena la informacin de las zonas de BIND El archivo de conguracin del dmon
Los cheros de zonas se encuentran normalmente bajo el directorio /etc/namedb y contienen la informacin que proporciona el servidor de nombres al resto de mquinas de Internet.
29.11.6.2. /etc/namedb/named.conf
// // // // // // // // $FreeBSD$ Consulte la pgina man de named(8) para ms detalles. tiene alguna vez la necesidad de configurar un servidor primario asego ree de que entiende a la perfecci3 n los detalles peliagudos del funcionamiento del DNS. Si hay errores, incluso triviales, puede sufrir prdidas de conectividad ogenerar cantidades ingentes de trfico ino til hacia o desde Interne
574
Tal y como se dice en los comentarios del ejemplo para beneciarnos de la cach se puede activar forwarders. En circunstancias normales un servidor de nombres busca de forma recursiva a travs de Internet tratando de localizar un servidor de nombres que sea capaz de responder una determinada pregunta. Si se activa esta opcin por defecto se pasa a preguntar primero al servidor de nombres especicado (servidor o servidores) pudiendo aprovecharse de la informacin de cach que dicho servidor tuviera disponible. Si el servidor de nivel superior al nuestro se encuentra congestionado puede merecer la pena la activacin de esta caracterstica de redireccin ya que se puede disminuir la carga de trco que dicho servidor tiene que soportar.
AvisoLa direccin IP 127.0.0.1 no funciona a. Se debe cambiar esta direccin IP por un servidor de nombres vlido.
/* * Si hay un cortafuegos entre usted y los servidores de * nombres que quiere consultar tendr que descoentar la * siguiente directiva, "query-source". Las versiones * anteriores de BIND siempre hacan sus consultas a travs * del puerto 53 pero BIND 8.1 utiliza por defecto un puerto no * privilegiado. */ // query-source address * port 53; /* 3 * Si lo va a ejecutar en un "caj n de arena" (o "sandbox") 3 * tendr que declarar una uicaci n diferente para el * fichero de volcado de named. */ // dump-file "s/named_dump.db"; }; // Nota: lo siguiente ser includo en futuras versiones. /* host { any; } { topology { 127.0.0.0/8;
575
zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "localhost.rev"; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" { type master; file "localhost.rev"; }; // // // // // // // // // // // // // // // // // // // // // // // // // Nota: No use las direcciones IP que se muestran aqu, son falsas y s3 lo se usancomo demostraci3n y para una mejor comprensi3 n. Ejemplo de entradas en la configuraci3n de secundarios. Puede ser conveniente convertirse en secundario al menos del dominio en cuya zona est su dominio. Cnsulte con su administrador de red para que le facilite la direcci3 n IP del servidor primario. No olvide inclur la zona del bucle inverso (IN-ADDR.ARPA). (Son los primeros bytes de la direcci3 n IP correspondiente, en orden inverso, con ".IN-ADDR.ARPA" al final.) Antes de configurar una zona primara asego resede haber comprendido completamente c3 mo funcionan DNS y BIND. Hay errores que no son visibles fcilmente. La configuraci3n de un secundario es, por el contrario, muchsimo ms sencilla. Nota: No se limite a copiar los ejemplos de ms arriba. :-) Utilice nombres y direcciones reales. ADVERTENCIA: FreeBSD ejecuta bind en un sandbok (observe los parmeros de named (named_flags) en rc.conf). El directorio que contiene las zonas secundarias debe tener permisos de escritura para bind. Le sugerimos la siguiente secuencia de rdenes:
576
Si quiere ms informacin sobre cmo ejecutar BIND en un sandbox consulte Ejecucin de named en un sandbox.
/* zone "ejemplo.com" { type slave; file "s/ejemplo.com.bak"; masters { 192.168.1.1; }; }; zone "0.168.192.in-addr.arpa" { type slave; file "s/0.168.192.in-addr.arpa.bak"; masters { 192.168.1.1; }; }; */
Dentro del chero named.conf se muestran ejemplos de entradas de esclavo tanto para las zonas directas como para las inversas. Para cada nueva zona administrada se debe crear una entrada de zona dentro del chero named.conf Por ejemplo la entrada de zona ms simple para el dominio ejemplo.org puede ser algo como esto:
zone "ejemplo.org" { type master; file "ejemplo.org"; };
Esta zona es una zona maestra ( observe la lnea de type, y mantiene la informacin de la zona en /etc/namedb/ejemplo.org tal como se indica en la lnea de file.
zone "ejemplo.org" { type slave; file "ejemplo.org"; };
En el caso del esclavo la informacin de la zona se transmite desde el servidor de nombres maestro y se almacena en el chero especicado. Cuando el servidor maestro muere o no puede ser alcanzado el servidor de nombres esclavo puede responder a las peticiones debido a que posee la informacin de la zona.
29.11.6.3. Ficheros de zona A continuacin se muestra un chero de una zona maestra para el dominio ejemplo.org, que se encuentra ubicado en /etc/namedb/ejemplo.org:
577
ns1.ejemplo.org. ns2.ejemplo.org.
IN CNAME
IN MX
10
mail.ejemplo.org.
Tenga muy en cuenta que todo nombre de mquina que termina en . es tratado como si fuera un nombre de mquina completo mientras que cualquier otro nombre sin el . nal se trata como una referencia relativa al dominio de origen de la zona. Por ejemplo www se traduce a www + origen. En nuestro chero de zona cticio nuestro origen es ejemplo.org de forma que www se convierte en www.ejemplo.org El formato de un chero de zona es el siguiente:
nombrederegistro IN tipodeentrada valor
Los registros de DNS que ms se utilizan son: SOA Comienzo de Zona con Autoridad (Start Of zone Authority) NS Un servidor de nombres con autoridad para una una determinada zona A Una direccin IP de una mquina CNAME El nombre cannico de una mquina para denir un alias
578
Captulo 29. Networking avanzado MX mail exchanger PTR Un puntero a un nombre de dominio (utilizados para denir el DNS inverso)
ejemplo.org. IN SOA ns1.ejemplo.org. admin.ejemplo.org. ( 5 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day
ejemplo.org.
la persona responsable de esta zona; observe que la direccin de correo electrnico aparece con la @ sustituida por un punto. (<admin@ejemplo.org> se escribe admin.ejemplo.org)
5
el nmero de serie del chero. Este nmero se debe incrementar cada vez que se modique el chero de zona. Muchos administradores preeren un formato expresado del siguiente modo aaaammddss. 2001041002 signica (segn dicho formato) que el chero se modic por ltima vez el 04/10/2001 y se indica con los dos ltimos dgitos (02) que es la segunda vez en el da que se ha modicado el chero. El nmero de serie es importante ya que para avisar a los servidores de nombres esclavos de que se ha actualizado la zona.
@ IN NS ns1.ejemplo.org.
Esta es una entrada de tipo NS. Cada servidor de nombres que contesta de forma autoritaria a las consultas de un determinado dominio debe tener una de estas entradas. El caracter @ se sustituye por ejemplo.org., es decir, se sustituye por el origen.
localhost ns1 ns2 mail @ IN IN IN IN IN A A A A A 127.0.0.1 3.2.1.2 3.2.1.3 3.2.1.10 3.2.1.30
El registro de tipo A hace referencia a nombres de mquinas . Como puede verse ms arriba ns1.ejemplo.org se resuelve a 3.2.1.2. Vemos que se utiliza otra vez el origen @, que signica que ejemplo.org se resuelve a 3.2.1.30.
www IN CNAME @
579
Captulo 29. Networking avanzado Los registros de nombres cannicos se utilizan normalmente como alias de mquinas. En el ejemplo www es un alias de ejemplo.org (3.2.1.30). CNAMEs se puede utilizar para proporcionar alias de nombres de mquinas, o tambin para proporcionar un mecanismo de vuelta cclica (round robin) de un nombre de mquina mapeado a un determinado conjunto de mquinas intercambiables.
@ IN MX 10 mail.ejemplo.org.
El registro MX indica qu servidores de correo se encargan de recibir correos para esta zona. mail.example.org es el nombre del servidor de correo y 10 signica la prioridad de dicho servidor. Se pueden especicar varios servidores de correo con prioridades de, por ejemplo,3, 2 y 1. Un servidor de correo que intenta entregar correo para el dominio ejemplo.org primero intentar contactar con el servidor especicado en el registro MX de mayor prioridad, despus con el siguiente y as sucesivamente hasta que lo logre entregar. Para los cheros de zona de in-addr.arpa (DNS inverso) se utiliza el mismo formato excepto que se especican registros PTR en lugar de registros A o CNAME.
$TTL 3600 1.2.3.in-addr.arpa. IN SOA ns1.ejemplo.org. admin.ejemplo.org. ( 5 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 3600 ) ; Minimum @ @ 2 3 10 30 IN NS IN NS IN IN IN IN PTR PTR PTR PTR ns1.ejemplo.org. ns2.ejemplo.org. ns1.ejemplo.org. ns2.ejemplo.org. mail.ejemplo.org. ejemplo.org.
Este chero proporciona las asociaciones de direcciones IP con nombres de mquinas adecuadas para nuestro dominio cticio.
580
Debido a que named no va a poder acceder a nada que se encuentre fuera del directorio sandbox (y esto incluye cosas tales como bibliotecas compartidas, sockets de log, etc) se debe efectuar una serie de cambios para que named pueda funcionar con normalidad. En la siguiente lista se supone que la ruta del sandbox es /etc/namedb y que no se ha modicado anteriormente dicho directorio. Por favor, ejecute los pasos que se muestran a continuacin:
named slamente necesita escribir en estos directorios as que eso es todo lo que debemos crear.
Esto permite que named pueda escribir al archivo de log la hora correcta a travs del syslogd(8)
Si est usando una versin de FreeBSD anterior a 4.9-RELEASE se debe construir una copia estticamente enlazada de named-xfer y copiarla dentro del directorio del sandbox:
# # # # # # # cd /usr/src/lib/libisc make cleandir && make cleandir && make cd /usr/src/lib/libbind make cleandir && make cleandir && make cd /usr/src/libexec/named-xfer make cleandir && make cleandir && make cp named-xfer /etc/namedb/bin && chmod depend && make all depend && make all depend && make NOSHARED=yes all 555 /etc/namedb/bin/named-xfer
581
Captulo 29. Networking avanzado Despues de instalar la versin esttica de named-xfer se deben realizar algunas tareas de limpieza para evitar dejar copias de bibliotecas o de programas en nuestros cheros de fuentes:
# # # # # # cd /usr/src/lib/libisc make cleandir cd /usr/src/lib/libbind make cleandir cd /usr/src/libexec/named-xfer make cleandir
Esto limpia cualquier impureza del rbol de fuentes y si se repiten los pasos anteriores todo debera funcionar. Si se est usando FreeBSD version 4.9-RELEASE o posterior el ejecutable de named-xfer del directorio /usr/libexec ya se encuentra enlazado estticamente y se puede utilizar cp(1) para copiarlo directamente en nuestro sandbox.
Cree el chero dev/null de tal forma que named pueda verlo y pueda escribir sobre l:
# cd /etc/namedb/dev && mknod null c 2 2 # chmod 666 null
Nota: Esto simplemente evita el tener que especicar la opcin -c de ndc(8) cada vez que se ejecute. Dado que los contenidos de /var/run se borran al inicio del sistema, si se piensa que esto puede resultar til, se puede aadir esta orden al crontab del usuario root utilizando la opcin @reboot. Consulte crontab(5) para saber ms informacin sobre esto.
Congure syslogd(8) para que cree un socket de log adicional de tal forma que named pueda escribir sobre l. Aada -l /etc/namedb/dev/log a la variable syslogd_flags dentro del chero /etc/rc.conf. Reorganice la ejecucin de las aplicaciones named y chroot para que se ejecuten dentro del sandbox aadiendo lo siguiente al chero/etc/rc.conf:
named_enable="YES" named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf" Nota: Recuerde que el chero de conguracin /etc/named.conf tiene una ruta completa que comienza en el directorio del sandbox ; por ejemplo, en la lnea superior el chero que aparece es en realidad /etc/namedb/etc/named.conf.
582
Captulo 29. Networking avanzado El siguiente paso consiste en editar el chero /etc/namedb/etc/named.conf de tal forma que named pueda conocer qu zonas cargar y donde encontrarlas en disco. A continuacin se muestra un ejemplo comentado (cualquier cosa que no se comenta en el ejemplo es porque resulta igual que la conguracin del servidor de DNS del caso normal):
options { directory "/"; named-xfer "/bin/named-xfer"; version ""; // No muestra la versin de BIND query-source address * port 53; }; // ndc control socket controls { unix "/var/run/ndc" perm 0600 owner 0 group 0; }; // A partir de aquvan las zonas: zone "localhost" IN { type master; file "master/named.localhost"; allow-transfer { localhost; }; notify no; }; zone "0.0.127.in-addr.arpa" IN { type master; file "master/localhost.rev"; allow-transfer { localhost; }; notify no; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" { type master; file "master/localhost-v6.rev"; allow-transfer { localhost; }; notify no; }; zone "." IN { type hint; file "master/named.root"; }; zone "private.example.net" in { type master; file "master/private.example.net.db"; allow-transfer { 192.168.10.0/24; }; }; zone "10.168.192.in-addr.arpa" in { type slave; masters { 192.168.10.2; }; file "slave/192.168.10.db"; };
La lnea que contiene directory se especica como /, ya que todos los cheros que named necesita se encuentran dentro de este directorio (recuerde que esto es equivalente al chero /etc/namedb de un usuario normal.
583
Captulo 29. Networking avanzado Especica la ruta completa para el binario named-xfer binary (desde el marco de referencia de named). Esto resulta necesario ya que por defecto named se compila de tal forma que trata de localizar named-xfer dentro de /usr/libexec. Especica el nombre del chero (relativo a la lnea (relativo a la lnea ) directory anterior) donde named puede encontrar el chero de zona para esta zona. Especica el nombre del chero (relativo a la lena directory anterior) donde named debera escribir una copia del archivo de zona para esta zona despus de recuperarla exitosamente desde el servidor maestro. Este es el motivo por el que en las etapas de conguracin anteriores necesitbamos cambiar la propiedad del directorio slave al grupo bind.
Despus de completar los pasos anteriores reinicie el servidor o reinicie syslogd(8) y ejecute named(8) asegurndose de que se utilicen las nuevas opciones especicadas en syslogd_flags y named_flags. En estos momentos deberamos estar ejecutando una copia de named dentro de un sandbox.
29.11.9. Seguridad
Aunque BIND es la implementacin de DNS ms utilizada existe siempre el asunto relacionado con la seguridad. De vez en cuando se encuentran agujeros de seguridad y vulnerabilidades. Es una buena idea suscribirse a CERT (http://www.cert.org/) y a freebsd-security-notications (../handbook/eresources.html#ERESOURCES-MAIL) para estar al da de los problemas de seguridad relacionados con named.
Sugerencia: Si surge un problema nunca est de ms actualizar los fuentes y recompilar los ejecutables desde dichas fuentes.
Pgina ocial de ISC Bind (http://www.isc.org/products/BIND/) Preguntas ms frecuentes sobre BIND (http://www.nominum.com/getOpenSourceResource.php?id=6) Libro de OReilly "DNS and BIND", cuarta edicin (http://www.oreilly.com/catalog/dns4/) RFC1034 - Nombre de Dominio - Conceptos y Caractersticas (ftp://ftp.isi.edu/in-notes/rfc1034.txt) RFC1035 - Nombres de Domninio - Implementacin y Especicacin (ftp://ftp.isi.edu/in-notes/rfc1035.txt)
584
29.12. NTP
Escrito por Tom Hukins.
29.12.1. Resumen
Segn pasa el tiempo el reloj de un computador est expuesto a ligeros desplazamientos. NTP (Protocolo de Hora en Red, en ingls Network Time Protocol) es un protocolo que permite asegurar la exactitud de nuestro reloj. Existen varios servicios de internet que confan y se pueden beneciar de relojes de computadores precisos. Por ejemplo un servidor web puede recibir peticiones de un determinado chero si ha sido modicado posteriormente a una determinada fecha u hora. Servicios como cron(8) ejecutan rdenes en determinados instantes. Si el reloj no se encuentra ajustado estas rdenes pueden ejecutarse fuera de la hora prevista. FreeBSD viene con el servidor NTP ntpd(8) que se puede utilizar para preguntar a otros servidores NTP, de tal forma que podemos ajustar nuestro reloj segn la hora de otros servidores e incluso proporcionar servicio de hora nosotros mismos.
585
Captulo 29. Networking avanzado 29.12.3.2. Conguracin general NTP se congura mediante el archivo /etc/ntp.conf utilizando el formato descrito en ntp.conf(5). A continuacin se muestra un sencillo ejemplo:
server ntplocal.ejemplo.com prefer server timeserver.ejemplo.org server ntp2a.ejemplo.net driftfile /var/db/ntp.drift
La opcin server especica qu servidores se van a utilizar, especicando un servidor por lnea. Si se especica un servidor con el argumento prefer, como en ntplocal.ejemplo.com dicho servidor se preere sobre los dems. No obstante la respuesta de su servidor preferido se descartar si diere sustancialmente de la respuesta recibida por parte del resto de los servidores especicados; en caso contrario slo se tendr en cuenta la respuesta del servidor preferido sin importar la informacin suministrada por el resto. El argumento prefer se utiliza normalmente en servidores NTP altamente precisos, como aquellos que poseen hardware de tiempo especco. La opcin driftfile especica qu chero se utiliza para almacenar el desplazamiento de la fracuencia de reloj de la mquina. El programa ntpd(8) utiliza este valor para automticamente compensar el desvo que experimenta de forma natural el reloj de la mquina, permitiendo mantener una precisin acotada incluso cuando se pierde la comunicacin con el resto de referencias externas. La opcin driftfile especica qu chero se utiliza para almacenar la informacin sobre espuestas anteriores de servidores NTP. Este chero contiene informacin til para la implementacin de NTP. No debera ser modicada por ningn otro proceso.
29.12.3.3. Control de acceso al servidor NTP Por defecto nuestro servidor de NTP puede ser accedido por cualquier mquina de Internet. La opcin restrict se puede utilizar para controlar controlar qu mquinas pueden acceder al servicio. Si queremos denegar el acceso a todas las mquinas existentes basta con aadir la siguiente lnea a /etc/ntp.conf:
restrict default ignore
Si slo queremos permitir el acceso al servicio de hora a las mquinas de nuestra red y al menos tiempo nos queremos asegurar de que dichos clientes no pueden a su vez congurar la hora del servidor o utilizarse ellos mismos como nuevos servidores de hora basta con aadir lo siguiente en lugar de lo anterior:
restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap
586
Captulo 29. Networking avanzado modicar la variable xntpd_flags del chero /etc/rc.conf. Para ejecutar el servidor sin reiniciar la mquina ejecute ntpd junto con todos aquellos parmetros que haya especicado en la variable de arranque xntpd_flags del chero /etc/rc.conf. Por ejemplo:
# ntpd -p /var/run/ntpd.pid
Nota: Bajo FreeBSD 5.X se han renombrado algunas opciones del chero /etc/rc.conf. Se debe reemplazar cualquier aparicin xntpd por por ntpd.
Para s detalles consulte la seccin PACKET FILTERING de ppp(8) y los ejemplos que se encuentran en /usr/share/examples/ppp/.
Nota: Algunos proveedores de acceso a Internet bloquean paquetes que utilizan nmeros de puertos bajos impidiendo que los paquetes de vuelta alcancen nuestra mquina.
587
29.13.1. Overview
El dmon de FreeBSD que se encarga de traducir direcciones de red, ms conocido como natd(8), es un dmon que acepta paquetes IP, modica la direccin IP fuente de dichos paquetes y los reinyecta en el ujo de paquetes IP de salida. natd(8) ejecuta este proceso modicando la direccin de origen y el puerto de tal forma que cuando se reciben paquetes de contestacin natd(8) es capaz de determinar el destino real y reenviar el paquete a dicho destino. El uso ms comn de NAT es para Compartir la Conexin a Internet.
29.13.2. Conguracin
Debido al pequeo espacio de direccionamiento que se encuentra actualmente disponible en IPv4 y debido tambin al gran aumento que se est produciendo en cuanto a nmero de usuarios de lneas de conexin a Internet de alta velocidad como cable o DSL la gente necesita utilizar cada vez ms la salida de Comparticin de Conexin a Internet. La caracterstica de poder conectar varios computadores a travs de una nica conexin y una nica direccin IP hacen de natd(8) una eleccin razonable. Cada vez con ms frecuencia un usuario tpico dispone de una mquina conectada mediante cable o DSL pero deseara utilizar dicha mquina como un router de acceso para el resto de los ordenadores de su red de rea local. Para poder hacerlo la mquina (FreeBSD por supuesto) debe congurarse para actuar como pasarela. Debe tener al menos dos tarjetas de red, una para conectarse a la red de rea local y la otra para conectarse con el router de acceso a Internet. Todas las mquinas de la LAN se conectan entre s mediante un hub o un switch.
Hub
Router
Client A
The Internet
Una conguracin como esta se utiliza frecuentemente para compartir el acceso a Internet. Una de las mquinas de la LAN est realmente conectada a Internet. El resto de las mquinas acceden a Internet utilizando como pasarela la mquina inicial.
29.13.3. Conguracin
Se deben aadir las siguientes opciones al chero de conguracin del ncleo:
options IPFIREWALL options IPDIVERT
588
gateway_enable="YES"
Congura la mquina para que acte como router o pasarela de red. Se puede conseguir lo mismo ejecutando sysctl net.inet.ip.forwarding=1. Activa las reglas de cortafuegos que se encuentran denidas por defecto en /etc/rc.firewall y que entran en funcionamiento en el arranque del sistema. Especica un conjunto de reglas de cortafuegos que permite el acceso a todos los paquetes que se reciban. Consulte /etc/rc.firewall para obtener informacin sobre el resto de tipos de reglas que se pueden congurar. Indica qu interfaz se utiliza para reenviar paquetes (la interfaz que se conecta a Internet). Dene cualesquiera otras opciones que se deseen proporcionar a natd(8) en tiempo de arranque.
rewall_enable="YES"
rewall_type="OPEN"
natd_interface="fxp0" natd_ags=""
Si se denen las opciones anteriores, en el arranque del sistema el chero /etc/rc.conf congurar las variables de tal forma que se ejecutara natd -interface fxp0. Evidentemente esta orden tambin se puede ejecutar de forma manual.
Nota: Tambin es posible utilizar un chero de conguracin para natd(8) en caso de que deseemos especicar muchos parmetros de arranque. Tendremos que declarar la ubicacin del chero de conguracin mediante la inclusin de lo siguiente en /etc/rc.conf:
natd_flags="-f /etc/natd.conf"
El chero /etc/natd.conf debe contener una lista de opciones de conguracin una opcin por lnea. Por ejemplo, en el caso que se comenta en la siguiente seccin se utilizara un chero de conguracin con la siguiente informacin:
redirect_port tcp 192.168.0.2:6667 6667 redirect_port tcp 192.168.0.3:80 80
Para obtener ms informacin sobre el chero de conguracin se puede consultar la opcin -f que se describe en la pgina del manual de natd(8).
589
Captulo 29. Networking avanzado Cada mquina (y cada interfaz) que se encuentra conectada a la LAN debe poseer una direccin IP perteneciente al espacio de direcciones IP privado tal y como se dene en RFC 1918 (ftp://ftp.isi.edu/in-notes/rfc1918.txt) y debe poseer como pasarela por defecto la direccin IP de la interfaz interna (la interfaz que se conecta a la LAN) de la mquina que ejecuta natd. Por ejemplo los clientes A y B se encuentran en la LAN utilizando las direcciones IP 192.168.0.2 y 192.168.0.3, respectivamente. La mquina que ejecuta natd posee la direccin IP 192.168.0.1 en la interfaz que se conecta a la LAN. El router por defecto tanto de A omo de B se establece al valor 192.168.0.1. La interfaz externa de la mquina que ejecuta natd, la interfaz que se conecta con Internet, no necesita de ninguna especial en relacin con el tema que estamos tratando en esta seccin.
Esto redirigir los puertos tcp adecuados a las mquinas situadas en la LAN. La opcin -redirect_port se puede utilizar para indicar rangos de puertos en vez de puertos individuales. Por ejemplo, tcp 192.168.0.2:2000-3000 2000-3000 redirige todas las conexiones recibidas desde los puertos 2000 al 3000 a los puertos puertos 2000 a 3000 de la mquina A. Estas opciones se pueden utilizar cuando se ejecute directamente natd(8) se pueden situar en la variable natd_flags="" en /etc/rc.conf y tambin se pueden pasar mediante un archivo de conguracin. Para obtener ms informacin sobre opciones de conguracin por favor consulte natd(8)
590
Captulo 29. Networking avanzado esttico. Por ejemplo las direcciones IP 128.1.1.1, 128.1.1.2 y 128.1.1.3 pertenecen al router natd. 128.1.1.1 se puede utilizar como la direccin IP externa del natd, mientras que 128.1.1.2 y 128.1.1.3 se redirigen a los clientes A y B, respectivamente. La sintaxis de la opcin -redirect_address es la siguiente:
-redirect_address IPlocal IPpblica
IPlocal IPpblica
La direccin IP interna del cliente de la LAN. La direccin IP externa que se corresponde con un determinado cliente de la LAN.
De forma semejante a la opcin -redirect_port estos argumentos se pueden especicar directamente sobre la variable natd_flags="" del chero /etc/rc.conf o tambin se pueden pasar va archivo de conguracin de natd. Si se utiliza redireccin de direcciones ya no es necesario utilizar redireccin de puertos ya que todos los paquetes que se reciben en una determinada direccin IP son redirigidos a la mquina especicada. Las direcciones IP externas de la mquina que ejecuta natd se deben activar y deben formar parte de un alias congurado sobre la interfaz externa que se conecta a Internet. Consulte rc.conf(5) para aprender a hacerlo.
29.14.1. Resumen
inetd(8) se conoce como el Super Servidor de Internet debido a que gestiona las conexiones de varios dmones. Los dmones son programas que proporcionan servicios de red. inetd acta como un servidor de servidor de gestin de otros dmones. Cuando inetd(8) recibe una conexin se determina qu dmon debera responder a dicha conexin, se lanza un proceso que ejecuta dicho dmon y se le entrega el socket. La ejecucin de una nica instancia de inetd reduce la carga del sistema en comparacin con lo que signicara ejecutar cada uno de los dmones que gestiona de forma individual. inetd se utiliza principalmente para lanzar procesos que albergan a otros dmones pero inetd tambin se utiliza para gestionar determinados protocolos triviales como chargen, auth y daytime. Esta seccin trata la conguracin bsica de inetd a travs de sus opciones de lnea de rdenes y utilizando su chero de conguracin, denominado /etc/inetd.conf.
29.14.2. Conguraciones
inetd se inicializa a travs del chero /etc/rc.conf en tiempo de arranque. La opcin inetd_enable posee el valor NO por defecto, pero a menudo la aplicacin sysinstall la activa cuando se utiliza la conguracin de perl de
591
o
inetd_enable="NO"
dentro de /etc/rc.conf se puede activar o desactivar la la ejecucin de inetd en el arranque del sistema. Se pueden adems aplicar distintas opciones de lnea de rdenes mediante la opcin inetd_flags.
-d Activa la depuracin. -l Activa el logging de las conexiones efectuadas con cute. -w Activa el recubrimiento de TCP para servicios externos (activado por defecto). -W Activa el recubrimiento de TCP para los servicios internos, ejecutados directamente por el dmon inetd (activado por defecto). -c mximo Especica el mximo nmero de invocaciones simultneas de cada servicio; el valor por defecto es ilimitado. Se puede sobreescribir para cada servicio utilizando la opcin max-child. -C tasa Especica el mximo nmero de veces que se puede llamar a un servicio desde un direccin IP determinada por minuto; el valor por defecto es ilimitado. Se puede redenir para cada servicio utilizando la opcin max-connections-per-ip-per-minute. -R tasa Especica el mximo nmero de veces que se puede invocar un servicio en un minuto; el valor por defecto es 256. Un valor de 0 permite un nmero ilimitado de llamadas. -a Especica una direccin IP a la cual se asocia y sobre la cual se queda esperando recibir conexiones. Puede declararse tambin un nombre de mquina, en cuyo caso se utilizar la direccin (o direcciones si hay ms de
592
Captulo 29. Networking avanzado una) IPv4 o IPv6 que estn tras dicho nombre. Normalmente se usa un nombre de mquina cuando inetd se ejecuta dentro de un jail(8), en cuyo caso el nombre de mquina se corresponde con el entorno jail(8). Cuando se desea asociarse tanto a direcciones IPv4 como a direcciones IPv6 y se utiliza un nombre de mquina se necesita una entrada para cada protocolo (IPv4 o IPv6) para cada servicio que se active a travs de /etc/inetd.conf. Por ejemplo un servicio basado en TCP necesitara dos entradas, una utilizando tcp4 para el protocolo IPv4 y otra con tcp6 para las conexiones a travs del procolo de red IPv6. -p Especica un chero alternativo en el cual se guarda el ID del proceso. Estas opciones se pueden declarar dentro de las variables inetd_flags del chero /etc/rc.conf. Por defecto inetd_flags tiene el valor -wW, lo que activa el recubrimiento de TCP para los servicios internos y externos de inetd. Los usuarios inexpertos no suelen introducir estos parmetros y por ello ni siquiera necesitan especicarse dentro de /etc/rc.conf.
Nota: Un servicio externo es un dmon que se ejecuta fuera de inetd y que se lanza cuando se recibe un intento de conexin. Un servicio interno es un servicio que inetd puede servir directamente sin necesidad de lanzar nuevos procesos.
29.14.4. inetd.conf
La conguracin de inetd se realiza a travs del cherode conguracin /etc/inetd.conf. Cuando se realiza una modicacin en el chero /etc/inetd.conf se debe obligar a inetd a releer dicho chero de conguracin, lo cual se realiza enviando una seal HANGUP al proceso inetd como se muestra a continuacin: Ejemplo 29-4. Envo de una seal HANGUP a inetd
# kill -HUP cat /var/run/inetd.pid
Cada lnea del chero de conguracin especica un dmon individual. Los comentarios se preceden por el caracter #. El formato del chero de conguracin /etc/inetd.conf es el siguiente:
service-name socket-type protocol {wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] user[:group][/login-class] server-program server-program-arguments
A continuacin se muestra una entrada de ejemplo para el dmon ftpd para IPv4:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
593
Captulo 29. Networking avanzado service-name Este es el nombre del servicio que proporciona un determinado dmon. Se debe corresponder con el nombre del nombre de servicio que se declara en el chero /etc/services. Este chero determina sobre qu puerto debe ponerse a escuchar inetd. Si se crea un nuevo servicio se debe especicar primero en /etc/services. socket-type Puede ser stream, dgram, raw o seqpacket. stream se debe utilizar obligatoriamente para dmones orientados a conexin (dmones TCP) mientras que dgram se utiliza en dmones basados en el protocolo de transporte UDP. protocol Uno de los siguientes: Protocolo tcp, tcp4 udp, udp4 tcp6 udp6 tcp46 udp46 Explicacin TCP IPv4 UDP IPv4 TCP IPv6 UDP IPv6 TCP IPv4 e IPv6 al mismo tiempo UDP IPv4 e IPv6 al mismo tiempo
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
wait|nowait indica si el dmon puede gestionar su propio socket o no. Los sockets de tipo dgram deben utilizar obigatoriamente la opcin wait mientras que los dmones basados en sockets de tipo stream, los cuales se implementan normalmente mediante hilos, debera utilizar la opcin nowait. La opcin wait normalmente entrega varios sockets a un nico dmon, mientras que la opcin nowait lanza un dmon hijo por cada nuevo socket.
El nmero mximo de dmones hijo que puede lanzar inetd se puede especicar mediante la opcin max-child. Si se necesita por ejemplo un lmite de diez instancias para un dmon en particular se puede especicar el valor 10 justo despus de la opcin nowait. Adems de max-child se puede activar otra opcin para limitar en nmero mximo de conexiones que se aceptan desde un determinado lugar mediante la opcin max-connections-per-ip-per-minute. Esta opcin hace justo lo que su nombre indica. Un valor de, por ejemplo, diez en esta opcin limitara cualquier mquina remota a un mximo de diez intentos de conexin por minuto. Esto resulta til para prevenir un consumo incontrolado de recursos y ataques de Denegacin de Servicio (Denial of Service o DoS) sobre nuestra mquina. Cuando se especica este campo las opciones wait o nowait son obligatorias max-child y max-connections-per-ip-per-minute son opcionales. Un dmon de tipo stream sin la opcin max-child y sin la opcin max-connections-per-ip-per-minute simplemente especicara la opcin nowait. El mismo dmon con el lmite mximo de diez dmones hijos sera: nowait/10.
594
Captulo 29. Networking avanzado La misma conguracin con un lmite de veinte conexiones por direccin IP por minuto y un mximo total de diez dmones hijos sera: nowait/10/20. Todas estas opciones son utilizadas por el dmon ngerd que se muestra a continuacin a modo de ejemplo:
finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
user Este es el nombre de usuario con el que debera ejecutarse un determinado dmon. Normalmente los dmones se suelen ejectar con permisos de root. Por motivos de seguridad, resulta bastante comn encontrarse con algunos servidores que se ejecutan bajo el usuario daemon o incluso por el usuario menos privilegiado de todos que es el usuario nobody. server-program La ruta completa de la localizacin del dmon que se quiere ejecutar cuando se recibe un intento de conexin. Si el dmon es un servicio proporcionado por el propio inetd se debe utilizar la opcion internal en su lugar. server-program-arguments Esto funciona en conjuncin con server-program, ya que especica los argumentos, comenzando por argv[0], que se pasan al dmon cuando se le invoca. Si la lnea de rdenes es mydaemon -d, midmon -d debera ser el valor de la opcin server-program-arguments. Si el dmon es un servicio interno se debe utilizar la utilizar la opcin internal en lugar de la que estamos comentando.
29.14.5. Seguridad
Dependiendo del perl de seguridad establecido cuando se instal el sistema FreeBSD varios dmones de inetd pueden estar desactivados o activados. Si no se necesita un dmon determinado, no lo active. Especique un # al comienzo de la lnea del dmon que quiere desactivar y enve una seal hangup a inetd. No se aconseja ejecutar algunos dmones determinados (un caso tpico es ngerd) porque pueden proporcionar informacin valiosa para un atacante. Algunos dmones no presentan ninguna caracterstica de seguridad y poseen grandes o incluso no poseen tiempos de expiracin para los intentos de conexin. Esto permite que un atacante sature los recursos de nuestra mquina realizando intentos de conexin a una tasa relativamente baja contra uno de estos ingenuos dmones. Pueder ser una buena idea protegerse de esto utilizando las opciones max-connections-per-ip-per-minute y max-child para este tipo de dmones. El recubrimiento de TCP est activado por defecto tal y como ya se ha comentado anteriormente. Consulte la pgina del manual de hosts_access(5) para obtener ms informacin sobre cmo aplicar restricciones relacionadas con TCP a los dmones invocados por inetd.
29.14.6. Varios
daytime, time, echo, discard, chargen y auth son servicios que inetd proporciona de forma interna y propia. El servicio auth proporciona servicios de identicacin a travs de la red (ident, identd) y se puede congurar hasta en cierto grado. Consulte la pgina del manual de inetd(8) si quiere conocer todos los detalles.
595
El puerto paralelo debe ser un puerto controlado por alguna irq. En FreeBSD 4.X se debera tener un lnea como la siguiente en el chero de conguracin del kernel:
device ppc0 at isa? irq 7
A continuacin se debe comprobar que el chero de conguracin del ncleo posee una lnea con device plip o tambin puede comprobar si se ha cargado el mdulo del ncleo plip.ko. Tanto en un caso como en el otro, cuando
596
Captulo 29. Networking avanzado se ejecute ifcong(8) debera aparecer el interfaz de red paralelo. En FreeBSD 4.X se muestra algo parecido a lo siguiente:
# ifconfig lp0
y en FreeBSD 5.X:
# ifconfig plip0
Nota: El nombre del dispositivo utilizado para la interfaz paralela es distinto en FreeBSD 4.X (lpX ) y en FreeBSD 5.X (plipX ).
Enchufe el cable laplink en los interfaces de ambos computadores. Congure los parmetros de la interfaz de red en ambas mquinas como root. Por ejemplo, si queremos conectar la mquina host1 ejecutando FreeBSD 4.X con la mquina host2 que ejecuta FreeBSD 5.X:
host1 <-----> host2 Direccin IP 10.0.0.1 10.0.0.2
Tras esto debera disponerse de una conexin totalmente funcional. Por favor, consulte lp(4) y lpt(4) si quiere saber ms. Adems se debe aadir ambas mquinas al chero /etc/hosts:
127.0.0.1 10.0.0.1 10.0.0.2 localhost.mi.dominio localhost host1.mi.dominio host1 host2.mi.dominio
Para comprobar que efectivamente la conexin funciona se puede probar a hacer un ping desde cada mquina. Por ejemplo en la mquina host1:
# ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
# netstat -r
Gateway host1
Flags UH
Refs 0
Use 0
597
ms ms ms ms
--- host2 ping statistics --4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
29.16. IPv6
Texto original de Aaron Kaplan. Reestructurado y ampliado por Tom Rhodes. IPv6 (tambin conocido como IPng o IP de nueva generacin) es la nueva versin del conocido protocolo de red IP, tamben llamado IPv4. Como sucede con el resto de los sistemas *BSD FreeBSD proporciona una implementacin de referencia que desarrolla el proyecto japons KAME. FreeBSD dispone de todo lo necesario para experimentar con el nuevo protocolo de red. Esta seccin se centra en conseguir congurar y ejecutar correctamente el protocolo IPv6. Al comienzo de los aos 90 la gente comenz a preocuparse por el rpido consumo del espacio de direcciones de IPv4. Dada la expansin actual de Internet existen dos preocupaciones principales:
Agotamiento de las direcciones disponibles. Actualmente no se trata del principal problema debido al uso generalizado del del espacio de direccionamiento privado (10.0.0.0/8, 192.168.0.0/24, etc.) junto con NAT. El nmero de entradas de las tablas de rutas comenzaba a ser imposible de manejar. Esto todavia es un problema prioritario.
IPv6 posee un espacio de direccionamiento de 128 bits. En otras palabras, en teora existen 340,282,366,920,938,463,463,374,607,431,768,211,456 direcciones disponibles. Esto signica que existen aproximadamente 6.67 * 10^27 direcciones IPv6 por metro cuadrado disponibles para todo el planeta Tierra. Los routers slo almacenan direcciones de red agregadas as que se reduce el nmero de entradas para cada tabla de rutas a un promedio de 8192.
Existen adems muchas otras caractersiticas interesantes que IPv6 proporciona, como:
Autoconguracin de direcciones (RFC2462 (http://www.ietf.org/rfc/rfc2462.txt)) Direcciones anycast (una-de-varias) Soporte de direcciones multicast predenido IPsec (Seguridad en IP) Estructura de la cabecera simplicada IP mvil Mecanismos de traduccin de IPv6 a IPv4 (y viceversa)
598
Captulo 29. Networking avanzado Si quiere saber ms sobre IPv6 le recomendamos que consulte:
Descripcin sin especicar direccin de bucle local (loopback) direccines IPv6 compatibles con IPv4
Notas como 0.0.0.0 en Pv4 como las 127.0.0.1 en IPv4 Los 32 bits ms bajos contienen una direccin IPv4. Tambin se denominan direcciones empotradas.
::ff:xx:xx:xx:xx
96 bits
direcciones IPv6 mapeadas Los 32 bits ms bajos a IPv4 contienen una direccin IPv4. Se usan para representar direcciones IPv4 mediante direcciones IPv6. direcciones link-local equivalentes a la direccin de loopback de IPv4
fe80:: - feb::
10 bits
599
Notas Equivalentes al direccionamiento privado de IPv4 Todas las direcciones IPv6 globales se asignan a partir de este espacio. Los primeros tres bits siempre son 001.
8 bits 3 bits
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 ether 00:00:21:03:08:e1 media: Ethernet autoselect (100baseTX ) status: active fe80::200:21ff:fe03:8e1%rl0 es una direccin link-local autocongurada. Se construye a partir de la
direccin MAC de la tarjeta de red. Si quiere saber ms sobre la estructura de las direcciones IPv6 puede consultar RFC3513 (http://www.ietf.org/rfc/rfc3513.txt).
600
Obtener una red IPv6 a travs de nuestro proveedor de acceso a Internet. Consulte a su proveedor de servicios para para ms informacin. Encapsulacin de IPv6 sobre IPv4 (RFC3068 (http://www.ietf.org/rfc/rfc3068.txt)) Utilizacin del port net/freenet6 si se dispone de una de una conexin de marcacin por modem.
Vamos a explicar cmo conectarse al 6bone ya que parece ser la forma ms utilizada en la actualidad. En primer lugar se recomienda consultar el sitio web de 6bone (http://www.6bone.net/) para saber cul es la conexin del 6bone (fsicamente) ms prxima. Se debe escribir a la persona responsable de ese nodo y con un poco de suerte dicha persona responder con con un conjunto de instrucciones y pasos a seguir para establecer la la conexin con ellos y a travs de ellos con el resto de los nodos IPv6 que forman parte del 6bone. Normalmente esta conexin se establece usando tneles GRE (gif). Veamos un ejemplo tpico de conguracin de un de un tnel gif(4):
# ifconfig gif0 create # ifconfig gif0
Sustituya las palabras en maysculas por la informacin recibida del nodo 6bone al que nos queremos conectar. La orden anterior establece el tnel. Compruebe que el tnel funciona correctamente mediante ping(8). Haga un ping6(8) a ff02::1%gif0. Deberamos recibir recibir dos respuestas.
Nota: Para que el lector no se quede pensando en el signicado signicado de la direccin ff02:1%gif0 le podemos decir que se trata de de una direccin IPv6 multicast de tipo link-local. %gif0 no forma parte del protocolo IPv6 como tal sino que se trata de un detalle de implementacin relacionado con las direcciones link-local y se aade para especicar la interfaz de salida que se debe utilizar para enviar los paquetes de ping6(8). Como estamos haciendo ping a una direccin multicast a la que se unen todos los interfaces pertenecientes al mismo enlace debera responder al ping tanto nuestro propio interfaz como el interfaz remoto.
A continuacin se congura la ruta por defecto hacia nuestro enlace 6bone; observe que es muy semejante a lo que hay que hacer en IPv4:
# route add -inet6 default -interface gif0 # ping6 -n MI_UPLINK # traceroute6 www.jp.FreeBSD.org
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms 2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms * 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms
Esta captura de pantalla variar dependiendo de la localizacin de la mquina. Tras seguir estos pasos deberamos poder alcanzar el sitio IPv6 de www.kame.net (http://www.kame.net) y ver la tortuga bailarina, que es una imagen animada que slo se muestra cuando se accede al servidor web utilizando el protocolo IPv6 (para ellos se encesita
601
Captulo 29. Networking avanzado utilizar un navegador web que soporte IPv6, IPv6, por ejemplo www/mozilla o Konqueror, que forma parte de x11/kdebase3, o tambin con www/epiphany.
De igual forma que en IPv4 se utilizan los registros de tipo A. En caso de no poder administrar su propia zona de DNS se puede pedir esta conguracin a su proveedor de servicios. Las versiones actuales de bind (versiones 8.3 y 9) y el port dns/djbdns (con el parche de IPv6 correspondiente) soportan los registros de tipo AAAA.
Direccin IP
192.168.173.1 192.168.173.2 192.168.173.3 192.168.173.4
Para construir una red completamente mallada necesitamos una conexin ATM entre cada par de mquinas: Mquinas
hostA - hostB
602
Los valores VPI y VCI en cada extremo de la conexin pueden ser diferentes pero por simplicidad suponemos que son iguales. A continuacin necesitamos congurar las interfaces ATM en cada mquina:
hostA# hostB# hostC# hostD# ifconfig ifconfig ifconfig ifconfig hatm0 hatm0 hatm0 hatm0 192.168.173.1 192.168.173.2 192.168.173.3 192.168.173.4 up up up up
Suponiendo que la interfaz ATM es hatm0 en todas las mquinas. Ahora necesitamos congurar los PVCs en las mquinas (suponemos que ya se han congurado de forma correcta en el switch ATM, para lo cual puede ser necesario consultar el manual del switch).
hostA# atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr hostA# atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr hostA# atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr hostB# atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr hostB# atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr hostB# atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr hostC# atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr hostC# atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr hostC# atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr hostD# atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr hostD# atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr hostD# atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr
Por supuesto que se pueden utilizar otras especicaciones de trco siempre y cuando las tarjetas de red las soporten. En este caso la especicacin del tipo de trco se completa con los parmetros del trco. Puede acceder a la ayuda de atmcong(8) as:
# atmconfig help natm add
y por supuesto en la pgina de manual de atmcong(8). Se puede crear la misma conguracin utilizando el chero /etc/rc.conf. Para la mquina hostA sera algo as:
network_interfaces="lo0 hatm0" ifconfig_hatm0="inet 192.168.173.1 up" natm_static_routes="hostB hostC hostD" route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr" route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr" route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"
603
Captulo 29. Networking avanzado El estado de todas las rutas CLIP se puede obtener en todo momento con:
hostA# atmconfig natm show
604
V. Apndices
30.2.2. Servidores
30.2.2.1. El chero refuse
606
Usando FreeBSD (http://freebsd.csie.nctu.edu.tw/~jdli/book.html) (en Chino). FreeBSD for PC 98ers (en japons), publicado por SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. FreeBSD (en japons), publicado por CUTT. ISBN 4-906391-22-2 C3055 P2400E. Introduccin completa a FreeBSD (http://www.shoeisha.co.jp/pc/index/shinkan/97_05_06.htm) (en japons), publicado por Shoeisha Co., Ltd (http://www.shoeisha.co.jp/). ISBN 4-88135-473-6 P3600E. Kit personal del principiante UNIX FreeBSD (http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html) (en japons), publicado por ASCII (http://www.ascii.co.jp/). ISBN 4-7561-1733-3 P3000E. Manual FreeBSD (traduccin del japons), publicado por ASCII (http://www.ascii.co.jp/). ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode (en alemn), publicado por Computer und Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0. Manual de instalacin y utilizacin de FreeBSD (http://www.pc.mycom.co.uk/FreeBSD/install-manual.html) (en japons), publicado por Mainichi Communications Inc. (http://www.pc.mycom.co.jp/).
The Complete FreeBSD (http://www.cdrom.com/titles/freebsd/bsdcomp_bkx.phtml), publicado por Walnut Creek CDROM (http://www.cdrom.com/).
Computer Systems Research Group, UC Berkeley. 4.4BSD Users Reference Manual. OReilly & Associates, Inc., 1994. ISBN 1-56592-075-9 Computer Systems Research Group, UC Berkeley. 4.4BSD Users Supplementary Documents. OReilly & Associates, Inc., 1994. ISBN 1-56592-076-7 UNIX in a Nutshell. OReilly & Associates, Inc., 1990. ISBN 093717520X Mui, Linda. What You Need To Know When You Cant Find Your UNIX System Administrator. OReilly & Associates, Inc., 1995. ISBN 1-56592-104-6
607
La Ohio State University (http://www-wks.acs.ohio-state.edu/) ha escrito un Curso de introduccin a UNIX (http://www-wks.acs.ohio-state.edu/unix_course/unix.html) disponible en lnea en formato HTML y postscript. Jpman Project, Japan FreeBSD Users Group (http://www.jp.FreeBSD.org/). FreeBSD Users Reference Manual (http://www.pc.mycom.co.jp/FreeBSD/urm.html) (traduccin japonesa). Mainichi Communications Inc. (http://www.pc.mycom.co.jp/), 1998. ISBN4-8399-0088-4 P3800E.
Albitz, Paul and Liu, Cricket. DNS and BIND, 2nd Ed. OReilly & Associates, Inc., 1997. ISBN 1-56592-236-0 Computer Systems Research Group, UC Berkeley. 4.4BSD System Managers Manual. OReilly & Associates, Inc., 1994. ISBN 1-56592-080-5 Costales, Brian, et al. Sendmail, 2nd Ed. OReilly & Associates, Inc., 1997. ISBN 1-56592-222-0 Frisch, leen. Essential System Administration, 2nd Ed. OReilly & Associates, Inc., 1995. ISBN 1-56592-127-5 Hunt, Craig. TCP/IP Network Administration. OReilly & Associates, Inc., 1992. ISBN 0-937175-82-X Nemeth, Evi. UNIX System Administration Handbook. 2nd Ed. Prentice Hall, 1995. ISBN 0131510517 Stern, Hal Managing NFS and NIS OReilly & Associates, Inc., 1991. ISBN 0-937175-75-7 Jpman Project, Japan FreeBSD Users Group (http://www.jp.FreeBSD.org/). FreeBSD System Administrators Manual (http://www.pc.mycom.co.jp/FreeBSD/sam.html) (traduccin japonesa). Mainichi Communications Inc. (http://www.pc.mycom.co.jp/), 1998. ISBN4-8399-0109-0 P3300E.
Asente, Paul. X Window System Toolkit. Digital Press. ISBN 1-55558-051-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmers Reference Manual. OReilly & Associates, Inc., 1994. ISBN 1-56592-078-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmers Supplementary Documents. OReilly & Associates, Inc., 1994. ISBN 1-56592-079-1 Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual. 4rd ed. Prentice Hall, 1995. ISBN 0-13-326224-3 Kernighan, Brian and Dennis M. Ritchie. The C Programming Language.. PTR Prentice Hall, 1988. ISBN 0-13-110362-9 Lehey, Greg. Porting UNIX Software. OReilly & Associates, Inc., 1995. ISBN 1-56592-126-7 Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9 Stevens, W. Richard. Advanced Programming in the UNIX Environment. Reading, Mass. : Addison-Wesley, 1992 ISBN 0-201-56317-7 Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X Wells, Bill. Writing Serial Drivers for UNIX. Dr. Dobbs Journal. 19(15), December 1994. pp68-71, 97-99.
608
Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 Jolitz, William. Porting UNIX to the 386. Dr. Dobbs Journal. January 1991-July 1992. Lefer, Samuel J., Marshall Kirk McKusick, Michael J Karels and John Quarterman The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1 Lefer, Samuel J., Marshall Kirk McKusick, The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9 McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4 Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9 Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8 Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3 Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2 Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X
Cheswick, William R. and Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4 Garnkel, Simson and Gene Spafford. Practical UNIX Security. 2nd Ed. OReilly & Associates, Inc., 1996. ISBN 1-56592-148-8 Garnkel, Simson. PGP Pretty Good Privacy OReilly & Associates, Inc., 1995. ISBN 1-56592-098-8
Anderson, Don and Tom Shanley. Pentium Processor System Architecture. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5 Ferraro, Richard F. Programmers Guide to the EGA, VGA, and Super VGA Cards. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7 La corporacin Intel publica documentacin sobre sus CPUs, chipsets y estndares en su web para desarrolladores (http://developer.intel.com/), normalmente en archivos con formato PDF.
609
Shanley, Tom. 80486 System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1 Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8 Shanley, Tom. PCI System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40993-3 Van Gilluwe, Frank. The Undocumented PC. Reading, Mass: Addison-Wesley Pub. Co., 1994. ISBN 0-201-62277-7
Lion, John Lions Commentary on UNIX, 6th Ed. With Source Code. ITP Media Group, 1996. ISBN 1573980137 Raymond, Eric S. The New Hackers Dictionary, 3rd edition. MIT Press, 1996. ISBN 0-262-68092-0. Also known as the Jargon File (http://www.ccil.org/jargon/jargon.html) Salus, Peter H. A quarter century of UNIX . Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 Simon Garnkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1 Don Libes, Sandy Ressler Life with UNIX special edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 The BSD family tree. 1997. ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree o local (/usr/share/misc/bsd-family-tree) on a FreeBSD-current machine. The BSD Release Announcements collection. 1997. http://www.de.FreeBSD.org/de/ftp/releases/ Networked Computer Science Technical Reports Library. http://www.ncstrl.org/ Antiguas releases BSD procedentes del Computer Systems Research Group (CSRG). http://www.mckusick.com/csrg/: El paquete de 4 CDs cubre todas las versiones de BSD desde la 1BSD hasta la 4.4BSD y 4.4BSD-Lite2 (pero no la 2.11BSD, desafortunadamente). El ltimo disco contiene el cdigo fuente nal y los archivos SCCS.
The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838 Sys Admin The Journal for UNIX System Administrators Miller Freeman, Inc., ISSN 1061-2688
610
611
Apndice A. Recursos en Internet Lista freebsd-jobs freebsd-newbies freebsd-policy freebsd-questions freebsd-stable freebsd-test Propsito Oportunidades de trabajo y consultora bajo FreeBSD Actividades y discusiones de nuevos usuarios de FreeBSD Decisiones estratgicas del Core Team de FreeBSD. Bajo volumen y slo lectura Preguntas de usuarios y soporte tcnico Debates acerca del uso de FreeBSD-stable Un sitio al que mandar sus mensajes de prueba en lugar de a una de las dems listas
Listas Tcnicas: Las siguientes listas son para debates tcnicos. Debera leer cuidadosamente las normas de cada lista antes de suscribirse o enviar correos, dado que hay normas estrictas en cuanto a su uso y contenidos. Lista freebsd-afs freebsd-alpha freebsd-arm freebsd-atm freebsd-audit freebsd-binup freebsd-cluster freebsd-database freebsd-doc freebsd-emulation freebsd-rewire freebsd-fs freebsd-hackers freebsd-hardware freebsd-i18n freebsd-ia64 freebsd-ipfw freebsd-isdn freebsd-java freebsd-libh freebsd-mobile freebsd-mozilla freebsd-multimedia Propsito Porte de AFS a FreeBSD Porte FreeBSD a Alpha Porte de FreeBSD para procesadores ARM Uso de redes ATM con FreeBSD Proyecto de auditora del cdigo fuente Diseo y desarrollo del sistema de actualizacin binaria Uso de FreeBSD en entornos cluster Debates sobre uso de bases de datos y su desarrollo bajo FreeBSD Creacin de documentacin sobre FreeBSD Emulacin de otros sistemas como Linux/DOS/Windows Debates tcnicos sobre Firewire (iLink, IEEE 1394) Sistemas de cheros Debates tcnicos generales Debates generales sobre harware y su uso en FreeBSD Internacionalizacin de FreeBSD Porte de FreeBSD a los prximos sistemas IA64 de Intel Debates tcnicos sobre el rediseo del cdigo del cortafuegos IP Desarrolladores de RDSI Desarrolladores de Java y personas portando los JDK a FreeBSD La segunda generacin del sistema de instalacin y paquetes Debates sobre equipos porttiles Porte de mozilla a FreeBSD Aplicaciones multimedia
612
Apndice A. Recursos en Internet Lista freebsd-new-bus freebsd-net freebsd-platforms freebsd-ports freebsd-ppc freebsd-qa freebsd-realtime freebsd-scsi freebsd-security freebsd-security-notications freebsd-small freebsd-smp freebsd-sparc freebsd-standards freebsd-tokenring Propsito Debates tcnicos sobre la arquitectura de bus Debates sobre el cdigo fuente de Redes y TCP/IP Especca sobre plataformas de arquitectura no Intel Debates sobre la coleccin de ports Porte de FreeBSD a PowerPC Debates sobre Control de Calidad, generalmente al salir una nueva release Desarrollo de extensiones en tiempo real en FreeBSD El subsistema SCSI Temas de seguridad Avisos de seguridad Uso de FreeBSD en aplicaciones embebidas Debates sobre diseo de Multiproceso [A]Simtrico Porte de FreeBSD a sistemas Sparc Cumplimiento de las normas C99 y POSIX en FreeBSD Soporte de Token Ring en FreeBSD
Listas limitadas:Las siguientes listas son para una audiencia ms especializada (e interesada)y probablemente no son de inters para el pblico en general. Es una buena idea tener una presencia estable en las listas tcnicas antes de suscribirse a alguna de las limitadas, de modo que se pueda entender la etiqueta de la comunicacin que en ellas se usa. Lista freebsd-core freebsd-hubs freebsd-install freebsd-user-groups freebsd-www Propsito FreeBSD Core Team Mantenimiento de mirrors (mantenimiento de infraestructuras) Desarrollo de la Instalacin Coordinacin de grupos de usuarios Mantenimiento de www.FreeBSD.org (../../../../index.html)
Listas Compendio:La mayora de las listas citadas son accesibles como compendio. Los nuevos mensajes enviados a la lista son guardados y enviados como un nico correo cuando el archivo llega a un tamao cercano a los 100 Kb. Las listas accesibles como compendio son: Lista freebsd-afs-digest freebsd-alpha-digest freebsd-chat-digest freebsd-current-digest freebsd-cvs-all-digest freebsd-database-digest
613
Apndice A. Recursos en Internet Lista freebsd-hackers-digest freebsd-ia64-digest freebsd-isdn-digest freebsd-java-digest freebsd-questions-digest freebsd-security-digest freebsd-sparc-digest freebsd-stable-digest freebsd-test-digest Listas CVS:Las siguientes listas son para gente interesada en llevar un seguimiento de los mensajes en el registro para conocer los cambios hechos en las diferentes reas del rbol de cdigo fuente. Son listas de slo lectura y no se debe enviar correo a ellas. Lista cvs-all rea de cdigo /usr/src Descripcin de rea de cdigo (cdigo fuente) Todos los cambios al rbol de cdigo (superconjunto)
en el cuerpo del mensaje. Por ejemplo, para suscribirse a freebsd-announce usted hara esto:
% mail majordomo@FreeBSD.org
subscribe freebsd-announce ^D
Si quisiera suscribirse bajo otro nombre o enviar una peticin de suscripcin para una lista de correo local (un sistema muy eciente si dispone de varias personas interesadas que tengan cuentas de correo en un mismo servidor esto nos facilita mucho el trabajo!) sto es lo que debe hacer:
% mail majordomo@FreeBSD.org
Por ltimo, tambin es posible desuscribirse de una lista, obtener una lista de los suscriptores de una lista u obtener una lista de las listas de correo disponibles enviando otro tipo de mensajes de control a majordomo. Para obtener una lista completa de las rdenes disponibles haga esto:
614
help ^D
De nuevo quisiramos pedirle que procure mantener los debates de las listas tcnicas dentro de temas tcnicos. Si lo nico que usted quiere es recibir avisos importantes le sugerimos que se suscriba a freebsd-announce, que est pensada para tener un trco muy bajo.
El tema de cualquier envo debe atenerse al n bsico de la lista a la que se escribe, esto es, si la lista es sobre temas de debate tcnico sus envos deberan versar sobre temas tcnicos. Enviar mensajes irrelevantes o insultos slo sirve para deteriorar el valor de la lista de correo para sus miembros y no ser tolerado. Para discusiones libres sin un tema en particular est la lista de correo freebsd-chat <freebsd-chat@FreeBSD.org>, que es libremente accesible y hecha para ste propsito. No se debera enviar el mismo mensaje a ms de dos listas, y slamente a 2 cuando exista una necesidad maniesta de escribir a ambas listas. Hay una gran cantidad de personas suscritas a ms de una lista y excepto para las mezclas ms esotricas (digamos "-stable & -scsi") no hay razn para enviar un mensaje a ms de una lista al mismo tiempo. Si le envan un mensaje en el que aparecen mltiples listas de correo en la lnea "Cc" de la cabecera, dicha lnea debe ser recortada antes de que enve una respuesta. Usted es el responsable de sus propios envos cruzados, independientemente de quin fuese el remitente original. No estn admitidos los ataques personales ni la blasfemia (dentro del contexto o como argumento) y eso incluye tanto a usuarios como a desarrolladores. Violaciones graves de la netiqueta, como reenviar o extractar mensajes privados sin permiso ni visos de tenerlo, est mal visto, aunque no prohibido especcamente. Sin embargo, hay pocos casos en los que algo as encaje en la temtica de una lista, por lo cual lo ms probable es recibir una advertencia (o ser expulsado) tan slo a causa de ello. El anuncio de productos o servicios no relacionados con FreeBSD estn estrictamente prohibidas y conllevarn la inmediata expulsin de la lista si queda demostrado que el autor est practicando el spam o envo de correo no solicitado.
Normas de las listas individuales: FREEBSD-AFS Sistema de Ficheros Andrew sta lista es para debates sobre el porte y uso de AFS, de CMU/Transarc
615
Apndice A. Recursos en Internet FREEBSD-ANNOUNCE Sucesos importantes / hitos sta es la lista de correo para gente interesada en recibir exclusivamente avisos de sucesos importantes dentro de FreeBSD. sto incluye anuncios sobre SNAPSHOTS y otras versiones. Puede inclur tambin peticiones de voluntarios, etc. Es una lista de bajo volumen y estrictamente moderada. FREEBSD-ARCH Debates sobre arquitectura y diseo sta lista es para debates sobre la arquitectura de FreeBSD. Los mensajes deberan mantenerse dentro del mbito tcnico para el que fu creada la lista. Seran ejemplos de temas aptos para sta lista:
Como reorganizar el sistema de construccin ("build") para poder tener varios procesos de construccin personalizados funcionando simultneamente. Qu se necesita arreglar en el VFS para que funcionen las capas de Heidemann. Cmo cambiar el dispositivo de control de interfaces para que sea posible utilizar los mismos controladores directamente en la mayora de los buses y arquitecturas. Cmo escribir un controlador de red.
FREEBSD-AUDIT Proyecto de auditora del cdigo fuente sta es la lista de correo del proyecto de auditora del cdigo fuente de FreeBSD. Aunque en principio fu puesta en marcha para cambios motivados por la seguridad su mbito fu ampliado a la revisin de cualquier cambio en el cdigo. En sta lista circula una gran cantidad de parches y probablemente no sea de inters para el tpico usuario de FreeBSD. Las discusiones de seguridad que no estn relacionadas con una parte especca del cdigo deben tener lugar en freebsd-security. Por otra parte se ruega a todos los desarrolladores que enven sus parches a sta lista para su revisin, especialmente si ataen a una parte del sistema donde un error pudiera afectar seriamente a la integridad del sistema. FREEBSD-BINUP Proyecto de Actualizacin Binaria de FreeBSD sta lista existe para facilitar el debate sobre el sistema de actualizacion binaria o binup. Caractersticas de diseo, detalles de implementacin, parches, informes de error, informes de estado, peticiones de caractersticas, commit logs y en general todo lo relacionado con binup es bienvenido. FREEBSD-BUGS Informe de errores sta es la lista de correo para informar de errores en FreeBSD. Siempre que sea posible los errores deberan ser enviados mediante send-pr(1) o el interfaz WEB (../../../../send-pr.html) FREEBSD-CHAT Temas no tcnicos relacionados con la comunidad FreeBSD
616
Apndice A. Recursos en Internet sta lista contiene todos los mensajes sobre informacin no tcnica y social, contenidos que no tienen cabida en las dems listas. Eso incluye discusiones sobre si Julio Iglesias parece una grgola, sobre si escribir o no en maysculas, quin est bebiendo demasiado caf, dnde se elabora la mejor cerveza, quin est fabricando cerveza en su stano y as sucesivamente. Pueden hacerse anuncios sobre actos importantes (como prximas estas, congresos, bodas, nacimientos, nuevos trabajos, etc.), pero las respuestas deben ser dirigidas a sta misma lista. FREEBSD-CORE FreeBSD Core Team sta es la lista de correo interna para uso de los miembros del Core Team. Los mensajes pueden ser enviados a sta lista cuando un problema serio relacionado con FreeBSD necesite un estudio o arbitraje de alto nivel. FREEBSD-CURRENT Debates sobre el uso de FreeBSD-current sta es la lista de correo para usuarios de freebsd-current. Esto incluye advertencias sobre nuevas caractersticas a ser includas en -current que afecten a todos los usuarios e instrucciones paso por paso que deben ser seguidas para mantener una instalacin -current. Cualquier usuario de current debera suscribirse a sta lista. sta es una lista de correo tcnica en la que se esperan contenidos estrictamente tcnicos. FREEBSD-CURRENT-DIGEST Debates sobre el uso de FreeBSD-current ste es el compendio de la lista freebsd-current. Consiste en que todos los mensajes enviados a freebsd-current son empaquetados y enviados peridicamente como un solo mensaje. sta lista es de Slo-Lectura y no debera recibir correo. FREEBSD-DOC Proyecto de Documentacin sta lista de correo est destinada a discusiones relacionadas con cuestiones y proyectos relacionados con la creacin de documentacin de FreeBSD. Los miembros de sta lista son llamados El Proyecto de Documentacin de FreeBSD. La lista es abierta; suscrbase y contribuya!. FREEBSD-FIREWIRE Firewire (iLink, IEEE 1394) sta lista de correo es para debates sobre diseo e implementacin del subsistema Firewire(tambin conocido como IEEE o iLink) en FreeBSD. Los temas incluyen de modo especco los standards, dispositivos de bus y sus protocolos, adaptacin de placas base, tarjetas y chips y la arquitectura e implementacin de cdigo para soporte nativo. FREEBSD-FS Sistemas de cheros Debates acerca del sistema de cheros de FreeBSD. sta es una lista de correo tcnica en la que se espera un contenido estrctamente tcnico.
617
Apndice A. Recursos en Internet FREEBSD-GNOME GNOME Debates acerca del Entorno de Escritorio GNOME para sistemas de cheros FreeBSD. sta es una lista de correo tcnica en la que se espera un contenido estrictamente tcnico. FREEBSD-IPFW Cortafuegos IP ste es el foro de discusin tcnica dedicado al rediseo del cdigo del cortafuegos IP de FreeBSD. sta es una lista de correo tcnica en la que se espera un contenido exclusivamente tcnico. FREEBSD-IA64 Porte de FreeBSD a IA64 sta es una lista de correo tcnica para personas que estn trabajando en el porte de FreeBSD a la plataforma IA-64 de Intel, para intercambiar problemas y soluciones alternativas. Cualquier persona interesada en seguir las discusiones tcnicas es bienvenida. FREEBSD-ISDN Comunicaciones RDSI sta es la lista de correo para quienes participan en el desarrollo del soporte RDSI para FreeBSD. FREEBSD-JAVA Desarrollo Java sta es la lista de correo sobre el desarrollo de aplicaciones Java importantes para FreeBSD y el porte y mantenimiento de los JDK. FREEBSD-HACKERS Debates tcnicos ste es un foro de debate tcnico relacionado con FreeBSD. sta es la lista de correo tcnica primaria. Es para personas que estn trabajando en FreeBSD, solucionando problemas o para discutir soluciones alternativas. Las personas interesadas en seguir las discusiones tcnicas tambin son bienvenidas. sta es una lista de correo tcnica en la cual se espera un contenido estrictamente tcnico. FREEBSD-HACKERS-DIGEST Technical discussions ste es el compendio de la lista de correo freebsd-hackers. Consiste en que todo el correo enviado a freebsd-hackers es empaquetado y enviado en un slo mensaje. sta lista es de Slo Lectura y no se debera enviar correo a ella. FREEBSD-HARDWARE Discusiones generales sobre hardware y FreeBSD Discusiones generales sobre tipos de hardware que funciona en FreeBSD, diferentes problemas y sugerencias sobre qu comprar y qu no.
618
Apndice A. Recursos en Internet FREEBSD-HUBS Rplicas Avisos y discusiones para personas que administran sitios rplica. FREEBSD-INSTALL Discusiones sobre la instalacin sta lista de correo es para discusiones sobre el desarrollo de la instalacin de FreeBSD en prximas versiones. FREEBSD-ISP Cuestiones de Proveedores de Servicios de Internet sta lista de correo es para debates sobre temas relevantes para Proveedores de Servicios de Internet (ISP) que usan FreeBSD. Es una lista de correo tcnica y en ella se esperan contenidos estrctamente tcnicos. FREEBSD-NEWBIES Debates sobre actividades de los novatos Cubrimos todas las actividades de los novatos que no quedan cubiertas por ninguna de las otras, incluyendo: aprendizaje autodidacta y tcnicas de resolucin de problemas, bsqueda y uso de recursos y peticiones de ayuda, cmo usar las listas de correo y qu lista usar, charla en general, meter la pata, jactarse, compartir ideas, historias, soporte moral (pero no tcnico) e implicacin en la comunidad FreeBSD. Usamos freebsd-questions para enviar nuestros problemas y peticiones de soporte y usamos freebsd-newbies para conocer a gente que est haciendo lo mismo que nosotros cuando ramos novatos. FREEBSD-PLATFORMS Porte a plataformas no Intel Cuestiones sobre plataformas diversas, debates generales, y propuestas para portes de FreeBSD para plataformas no Intel. Es una lista de correo tcnica y en ella se esperan contenidos estrctamente tcnicos. FREEBSD-POLICY Decisiones de funcionamiento interno del Core Team Es una lista de slo lectura y bajo volumen destinada a la toma de decisiones de funcionamento interno del Core Team de FreeBSD. FREEBSD-PORTS Debates sobre ports Debates acerca de la coleccin de ports (/usr/ports)de FreeBSD, propuestas de aplicaciones a portar, modicaciones a la infraestructura de ports y coordinacin general de esfuerzos. sta es una lista de correo tcnica en la cual se esperan contenidos exclusivamente tcnicos. FREEBSD-QUESTIONS Preguntas de los usuarios sta es la lista de correo para preguntas sobre FreeBSD. No debera enviar preguntas del estilo de cmo hacer a las listas tcnicas salvo que el contenido sea claramente tcnico.
619
Apndice A. Recursos en Internet FREEBSD-QUESTIONS-DIGEST Preguntas de los usuarios ste es el compendio de la lista de correo freebsd-questions. Consiste en que todos los mensajes enviados a freebsd-questions son empaquetados y enviados en un nico mensaje. FREEBSD-SCSI Subsistema SCSI sta es la lista de correo para la gente que est trabajando en el subsistema SCSI de FREEBSD. sta es una lista de correo tcnica en la cual se esperan contenidos puramente tcnicos. FREEBSD-SECURITY Cuestiones de seguridad Cuestiones de seguridad informtica (DES, Kerberos, problemas de seguridad conocidos y sus soluciones, etc.) sta es una lista de correo tcnica en la que se esperan contenidos puramente tcnicos. FREEBSD-SECURITY-NOTIFICATIONS Avisos de seguridad Avisos de problemas de seguridad en FreeBSD y sus soluciones. sta no es una lista de discusin. La lista de discusin es freebsd-security. FREEBSD-SMALL Uso de FreeBSD en aplicaciones embebidas En sta lista se debaten temas relacionados con instalaciones de FreeBSD inusualmente pequeas y embebidas. sta es una lista de correo tcnica en la cual se esperan contenidos estrictamente tcnicos. FREEBSD-STABLE Debates sobre el uso de FreeBSD-stable sta es la lista de correo para los usuarios de freebsd-stable. Incluye avisos sobre nuevas caractersticas a inclur en -stable que afectan a los usuarios e instrucciones paso por paso para permanecer usando la versin -stable. Cualquiera que utilice FreeBSD stable debera suscribirse a sta lista. sta es una lista tcnica en la que se esperan contenidos puramente tcnicos. FREEBSD-STANDARDS Cumplimiento de C99 & POSIX ste es el foro para debates tcnicos relacionadas con el Cumplimiento de las normas C99 y POSIX en FreeBSD. FREEBSD-USER-GROUPS Lista de coordinacin de de grupos de usuarios sta es la lista de correo de los coordinadores de los grupos locales de usuarios para discutir cuestiones entre ellos o con personas elegidas del Core Team. sta lista de correo debera estar limitada a resmenes de reuniones y coordinacin de proyectos que ataen a los Grupos de Usuarios.
620
Apndice A. Recursos en Internet FREEBSD-VENDORS VENDORS Debates para la coordinacin entre el Proyecto FreeBSD y Distribuidores de software y hardware para FreeBSD.
comp.unix (news:comp.unix) comp.unix.questions (news:comp.unix.questions) comp.unix.admin (news:comp.unix.admin) comp.unix.programmer (news:comp.unix.programmer) comp.unix.shell (news:comp.unix.shell) comp.unix.user-friendly (news:comp.unix.user-friendly) comp.security.unix (news:comp.security.unix) comp.sources.unix (news:comp.sources.unix) comp.unix.advocacy (news:comp.unix.advocacy) comp.unix.misc (news:comp.unix.misc) comp.bugs.4bsd (news:comp.bugs.4bsd) comp.bugs.4bsd.ucb-xes (news:comp.bugs.4bsd.ucb-xes) comp.unix.bsd (news:comp.unix.bsd)
621
comp.windows.x.apps (news:comp.windows.x.apps) comp.windows.x.announce (news:comp.windows.x.announce) comp.windows.x.intrinsics (news:comp.windows.x.intrinsics) comp.windows.x.motif (news:comp.windows.x.motif) comp.windows.x.pex (news:comp.windows.x.pex) comp.emulators.ms-windows.wine (news:comp.emulators.ms-windows.wine)
http://www.FreeBSD.org/ (../../../../index.html) Servidor Central. http://www.au.FreeBSD.org/ Australia/1. http://www2.au.FreeBSD.org/ Australia/2. http://www3.au.FreeBSD.org/ Australia/3. http://freebsd.itworks.com.au/ Australia/4. http://www.br.FreeBSD.org/www.freebsd.org/ Brasil/1. http://www2.br.FreeBSD.org/www.freebsd.org/ Brasil/2. http://www3.br.FreeBSD.org/ Brasil/3. http://www.bg.FreeBSD.org/ Bulgaria. http://www.ca.FreeBSD.org/ Canad/1. http://www2.ca.FreeBSD.org/ Canad/2. http://www3.ca.FreeBSD.org/ Canad/3. http://www.cn.FreeBSD.org/ China. http://www.cz.FreeBSD.org/ Repblica Checa. http://www.dk.FreeBSD.org/ Dinamarca. http://www.ee.FreeBSD.org/ Estonia. http://www..FreeBSD.org/ Finlandia. http://www.fr.FreeBSD.org/ Francia. http://www.de.FreeBSD.org/ Alemania/1. http://www1.de.FreeBSD.org/ Alemania/2. http://www2.de.FreeBSD.org/ Alemania/3. http://www.gr.FreeBSD.org/ Grecia. http://www.hu.FreeBSD.org/ Hungra. http://www.is.FreeBSD.org/ Islandia. http://www.ie.FreeBSD.org/ Irlanda.
622
http://www.jp.FreeBSD.org/www.FreeBSD.org/ Japn. http://www.kr.FreeBSD.org/ Corea/1. http://www2.kr.FreeBSD.org/ Corea/2. http://www.lv.FreeBSD.org/ Letonia. http://rama.asiapac.net/freebsd/ Malasia. http://www.nl.FreeBSD.org/ Holanda/1. http://www2.nl.FreeBSD.org/ Holanda/2. http://www.no.FreeBSD.org/ Noruega. http://www.nz.FreeBSD.org/ Nueva Zelanda. http://www.pl.FreeBSD.org/ Polonia/1. http://www2.pl.FreeBSD.org/ Polonia/2. http://www.pt.FreeBSD.org/ Portugal/1. http://www2.pt.FreeBSD.org/ Portugal/2. http://www3.pt.FreeBSD.org/ Portugal/3. http://www.ro.FreeBSD.org/ Rumana. http://www.ru.FreeBSD.org/ Rusia/1. http://www2.ru.FreeBSD.org/ Rusia/2. http://www3.ru.FreeBSD.org/ Rusia/3. http://www4.ru.FreeBSD.org/ Rusia/4. http://freebsd.s1web.com/ Singapur. http://www.sk.FreeBSD.org/ Repblica Eslovaca. http://www.si.FreeBSD.org/ Eslovenia. http://www.es.FreeBSD.org/ Espaa. http://www.za.FreeBSD.org/ Sudfrica/1. http://www2.za.FreeBSD.org/ Sudfrica/2. http://www.se.FreeBSD.org/ Suecia. http://www.ch.FreeBSD.org/ Suiza. http://www.tw.FreeBSD.org/www.freebsd.org/data/ Taiwan. http://www.tr.FreeBSD.org/ Turqua. http://www.ua.FreeBSD.org/www.freebsd.org/ Ucrania/1. http://www2.ua.FreeBSD.org/ Ucrania/2. http://www4.ua.FreeBSD.org/ Ucrania/Crimea. http://www.uk.FreeBSD.org/ Reino Unido/1. http://www2.uk.FreeBSD.org/ Reino Unido/2. http://www3.uk.FreeBSD.org/ Reino Unido/3.
623
dogma.freebsd-uk.eu.org
Telnet/FTP/SSH
624
32.1. Responsables
32.1.1. Responsable de Seguridad de FreeBSD <security-officer@freebsd.org>
FreeBSD Security Officer <security-officer@freebsd.org> Fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11 -----BEGIN PGP PUBLIC KEY BLOCK----Version: 2.6.3i mQCNAzF7MY4AAAEEAK7qBgPuBejER5HQbQlsOldk3ZVWXlRj54raz3IbuAUrDrQL h3g57T9QY++f3Mot2LAf5lDJbsMfWrtwPrPwCCFRYQd6XH778a+l4ju5axyjrt/L Ciw9RrOC+WaPv3lIdLuqYge2QRC1LvKACIPNbIcgbnLeRGLovFUuHi5z0oilAAUR tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAZnJl ZWJzZC5vcmc+iQCVAwUQMX6yrOJgpPLZnQjrAQHyowQA1Nv2AY8vJIrdp2ttV6RU tZBYnI7gTO3sFC2bhIHsCvfVU3JphfqWQ7AnTXcD2yPjGcchUfc/EcL1tSlqW4y7 PMP4GHZp9vHog1NAsgLC9Y1P/1cOeuhZ0pDpZZ5zxTo6TQcCBjQA6KhiBFP4TJql 3olFfPBh3B/Tu3dqmEbSWpuJAJUDBRAxez3C9RVb+45ULV0BAak8A/9JIG/jRJaz QbKom6wMw852C/Z0qBLJy7KdN30099zMjQYeC9PnlkZ0USjQ4TSpC8UerYv6IfhV nNY6gyF2Hx4CbEFlopnfA1c4yxtXKti1kSN6wBy/ki3SmqtfDhPQ4Q31p63cSe5A 3aoHcjvWuqPLpW4ba2uHVKGP3g7SSt6AOYkAlQMFEDF8mz0ff6kIA1j8vQEBmZcD /REaUPDRx6qr1XRQlMs6pfgNKEwnKmcUzQLCvKBnYYGmD5ydPLxCPSFnPcPthaUb 5zVgMTjfjS2fkEiRrua4duGRgqN4xY7VRAsIQeMSITBOZeBZZf2oa9Ntidr5PumS 9uQ9bvdfWMpsemk2MaRG9BSoy5Wvy8VxROYYUwpT8Cf2iQCVAwUQMXsyqWtaZ42B sqd5AQHKjAQAvolI30Nyu3IyTfNeCb/DvOe9tlOn/o+VUDNJiE/PuBe1s2Y94a/P BfcohpKC2kza3NiW6lLTp00OWQsuu0QAPc02vYOyseZWy4y3Phnw60pWzLcFdemT 0GiYS5Xm1o9nAhPFciybn9j1q8UadIlIq0wbqWgdInBT8YI/l4f5sf6JAJUDBRAx ezKXVS4eLnPSiKUBAc5OBACIXTlKqQC3B53qt7bNMV46m81fuw1PhKaJEI033mCD ovzyEFFQeOyRXeu25Jg9Bq0Sn37ynISucHSmt2tUD5W0+p1MUGyTqnfqejMUWBzO v4Xhp6a8RtDdUMBOTtro16iulGiRrCKxzVgEl4i+9Z0ZiE6BWlg5AetoF5n3mGk1 lw== =ipyA -----END PGP PUBLIC KEY BLOCK-----
625
DB 2E 0F 10 8F CE 79 CA
626
63 48 88 0A C4 97 FD 49
627
628
629
630
631
F6 DB 02 92 6D F5 58 8A
632
633
ndice
Symbols
.k5login, 293 .k5users, 293 .rhosts, 362 /boot/kernel.old, 187 /etc/gettytab, 421 /etc/group, 261 /etc/login.conf, 259 /etc/mail/access, 480 /etc/mail/aliases, 480 /etc/mail/local-host-names, 480 /etc/mail/mailer.conf, 480 /etc/mail/mailertable, 480 /etc/mail/sendmail.cf, 480 /etc/mail/virtusertable, 480 /etc/remote, 427 /etc/ttys, 423 /usr/bin/login, 421 /usr/share/skel, 255 10 base 2, 548 10 base T, 549 386BSD, 5, 9 386BSD Patchkit, 5 4.3BSD-Lite, 5 4.4BSD-Lite, 1, 2 802.11 (Ver Redes sin cables)
amd, 535 anti-aliased fonts, 141 Apache, 4 apagado, 251 aplicaciones Maple, 211 Mathematica, 209 MATLAB, 213 Oracle, 216 SAP R/3, 219 APM, 195 ARC, 11 ASCII, 398 AT&T, 5 Ataques de denegacin de servicio (DoS), 270 Ataques DoS (Ver Denegacin de servicio (DoS)) AUDIT, 335 Auditora de eventos de seguridad (Ver MAC) automatic mounter daemon, 535 AutoPPP, 450
B
backup software dump / restore, 362 BGP, 511 bibliotecas compartidas, 208 binary compatibility BSD/OS, 2 Linux, 2 NetBSD, 2 SCO, 2 SVR4, 2 BIND, 485, 572 caching name server, 580 conguration les, 574 running in a sandbox, 580 starting, 574 BIOS, 28 Sistema Bsico de Entrada/Salida, 244 bits-por-second, 410 Blue Mountain Arts, 4 Bluetooth, 520 BOOTP diskless operation, 540
A
Abacus, 160 AbiWord, 156 ACL, 315 Acrobat Reader, 158 address redirection, 590 adduser, 255, 401 Advertencias de seguridad en FreeBSD, 318 Agentes de Correo de Usuario, 497 AIX, 550 Alpha, 11, 14, 20, 76 Alpha BIOS, 11 Amanda, 364
634
C
cajas de arena sandboxes, 267 cargador, 247 cargador de clase en ejecucin, 240 cargador-de-arranque (boot-loader), 247 CDROM creacin, 346 grabar, 348 CDROMs creacin cd CD arrancables, 347 grabar, 348 CHAP, 440, 445, 451 Chino tradicional codicacin BIG-5, 400 chpass, 257 chroot, 580 Cisco, 454 clase de sesin, 401 clases de sesin, 399 Coda, 369 codicaciones, 398 Colaboradores, 8 coleccin de ports, 207 committers, 7 compatibilidad binaria Linux, 206 compatibilidad binaria con Linux, 206 compilers C, 2 C++, 2 Fortran, 2 compresin, 362 Computer Systems Research Group (CSRG), 2, 9 comsat, 267 concatenacin de discos, 388 Concurrent Versions System (Ver CVS) conguracin del cargador, 247 consola, 86, 250 consola virtual, 86 contabilidad espacio en disco, 374 Contabilidad de procesos, 320
Contraseas de un solo uso, 273 core team, 8 coredumpsize, 259 correo recepcin, 478 correo electnico, 477 cortafuegos, 476 cpio, 363 cputime, 260 crypt, 272 cu, 81 cuaa, 414 cuentas aadir, 255 cambiar contrasea, 258 daemon, 254 eliminar, 256 grupos, 261 limitar, 259 modicar, 254 nobody, 254 operator, 254 sistema, 254 superusuario (root), 254 usuario, 254 cuotas, 259 cuotas de disco, 259, 374 lmites, 375 revisando, 376 revisin, 374 CVS repository, 7 cdigos de idioma, 398 cdigos de pas, 398
D
DCE, 410 default route, 467, 508, 509 Denegacion de servicio (DoS), 264 DES, 272 device nodes, 165 device.hints, 250 DGA, 169 DHCP conguration les, 569, 571 dhcpd.conf, 570
635
diskless operation, 539 installation, 569 requirements, 568 server, 568 dial-in service, 419 dial-out service, 427 direcciones estticas, 474 Direccin IP esttica, 440 directorio esqueleto, 255 directorios, 90 discos aadir, 337 cifrado, 377 desconectar un disco de memoria, 372 le-backed (4.X), 369 le-backed (5.X), 370 memoria, 369 sistemas de cheros en memoria (4.X), 371 sistemas de cheros en memoria (5.X), 372 virtuales, 369 discos exibles, 361 discos virtuales, 369 Disk Mirroring, 384 disklabel, 365, 369 diskless operation, 537 /usr read-only, 545 kernel conguration, 543 diskless workstation, 537 DNS, 450, 477, 490, 572 records, 578 DNS Server, 3 domain (nombre de dominio), 467 DOS, 17, 28, 404 DSL, 529 DSP, 165 DTE, 410 dual homed hosts, 510 dump, 362 DVD DVD+RW, 354 DVD-RW, 354 DVD-Video, 353 grabar, 352 Dynamic Host Conguration Protocol (Ver DHCP)
E
editores, 111 editores de texto, 111 editors ee, 111 emacs, 111 vi, 111 ee, 111 electronic mail (Ver email) ELF, 240 marcado, 240 emacs, 111 email, 477 cambio de mta, 482 conguration, 489 Depuracin de problemas, 485 enlaces simblicos, 208 Etherboot, 541 Ethernet, 472 direccin MAC, 472 MAC address, 210, 508
F
fdisk, 337 cheros rc, 251 lesize, 260 nger, 267 Firefox, 154 rewall, 3, 529, 530 x-it oppies, 365 fonts, 211 anti-aliased, 141 LCD screen, 143 spacing, 142 TrueType, 140 Free Software Foundation, 5, 9, 114 FreeBSD Project development model, 7 goals, 6 history, 5 FreshMeat, 118 FreshPorts, 118 FTP anonymous, 51, 70 modo pasivo, 44
636
IMAP, 477, 479 impresoras, 405 imprimir, 203 inicio, 244 init, 245, 250 instalacin, 10 installation oppies, 83 from MS-DOS, 84 from QIC/SCSI Tape, 84 headless (serial console), 80 network Ethernet, 85 FTP, 44, 83 NFS, 85 parallel (PLIP), 85 serial (SLIP or PPP), 85 troubleshooting, 77 Intel i810 graphic chipset, 138 internacionalizacin (Ver localizacin) Internet connection sharing, 588 Internet Software Consortium (ISC), 567 IP masquerading, 3, 588 IP subnet, 528 IPCP, 446 IPsec, 298 AH, 299 ESP, 299 polticas de seguridad, 305 IPX/SPX, 550 IRQ, 165 ISA, 163 ISDN, 529 cards, 546 stand-alone bridges/routers, 548 ISO 9660, 346 ISP, 440, 445
G
gated, 471, 474 gateway, 507 GEOM, 382, 382, 384 GEOM Disk Framework (Ver GEOM) getty, 420 GNOME, 146 anti-aliased fonts, 147 GNU Compiler Collection, 4 GNU General Public License (GPL), 6 GNU Lesser General Public License (LGPL), 6 GNU toolchain, 209 GnuCash, 160 Gnumeric, 160 GQview, 159 grabadora de CD ATAPI, 346 controlador ATAPI/CAM, 346, 351 Greenman, David, 5 Grimes, Rod, 5 grupos, 261 gv, 158 gzip, 362
H
HCI, 521 horizontal scan rate, 136 hostname, 441 hosts, 441 HP-UX, 550 Hubbard, Jordan, 5
I
I/O port, 165 ICMP_BANDLIM, 271 IEEE, 364 ifcong, 520 IKE, 305 image scanners, 178
J
jails, 322 jerarqua de directorios, 94 JMA Wired, 4 Jolitz, Bill, 5
637
K
KDE, 148 display manager, 149 Kerberos5 Centro de distribucin de llaves, 289 congurar clientes, 292 habilitacin de servicios, 291 historia, 289 limitaciones y deciencias, 295 recursos externos, 295 solucin de problemas, 293 KerberosIV, 266, 271 encendido inicial, 283 instalacin, 281 kermit, 455 kernel, 245 compilacin / instalacin, 185 Compilar un kernel a medida, 183 conguracin, 470 conguration, 163, 588 conguration le, 188 drivers / modules / subsystems, 185 interaccin de arranque, 249 NOTES, 188 opciones de arranque, 249 kernel options cpu, 188 ident, 188 LINUX, 207 machine, 188 MSDOSFS, 190 NFS, 190 NFS_ROOT, 190 options BRIDGE, 530 SMP, 192 kernel.old, 249 KLD (objeto cargable del kernel), 206 KOfce, 155 Konqueror, 155
cputime, 260 cuotas, 259 lesize, 260 maxproc, 260 memorylocked, 260 memoryuse, 260 openles, 260 sbsize, 261 stacksize, 261 Linux, 550 binarios ELF, 209 instalacin de bibliotecas Linux, 207 LISA, 365 locale, 398, 401 locales, 227, 399 localizacin, 397 Alemn, 407 Chino tradicional, 407 Coreano, 407 Japons, 407 Ruso, 404 login name, 440 loopback device, 508 ls, 90 lmite duro, 375 lmite suave, 375 lnea de rdenes, 109
M
MAC, 333 MacOS, 276 MAKEDEV, 415 Mandatory Access Control (Ver MAC) mapa de pantalla, 402 mapa de teclado, 402 maxproc, 260 MD5, 272 mecanismo de arranque (bootstrap), 244 medios de cinta, 358 AIT, 360 cintas DDS (4mm), 358 cintas Exabyte (8mm), 359 cintas QIC, 358 DLT, 360 QIC-150, 359
L
L2CAP, 523 LCD screen, 143 LCP, 450 limitar a los usuarios, 259 coredumpsize, 259
638
memory protection, 2 memorylocked, 260 memoryuse, 260 mencoder, 174 mgetty, 450 MiContrasea, 451 Microsoft Windows, 28 MIME, 399, 401 MIT, 281 modem, 420, 455, 547 modo de arranque mono-usuario, 249 modo mono-usuario, 250 modo multi-usuario, 251 mount, 80, 369 mountd, 531 moused, 402 Mozilla, 143, 153 MPlayer making, 173 use, 173 MS-DOS, 276 multi-user facilities, 1 multicast options MROUTING, 514 MX record, ??, 489, 580 MySQL, 404 Mtodo de introduccin X11 (XIM), 403 mdem, 469
nfsd, 531 NIS, 550 client, 552 client conguration, 557 domainname, 553 domains, 550 maps, 554 master server, 552 password formats, 566 server conguration, 554 slave server, 552, 556 NOTES, 188 Novell, 5 ntalk, 267 NTP, 585 choosing servers, 585 conguration, 585 ntp.conf, 586 ntpd, 585 ntpdate, 585 null modem cable, 81 null-modem cable, 411, 431
O
OBEX, 527 ofce suite KOfce, 155 OpenOfce.org, 157 opciones de kernel FAST_IPSEC, 299 IPSEC, 299, 305 IPSEC_DEBUG, 299 IPSEC_ESP, 299 OpenBSD, 9, 550 openles, 260 OpenOfce.org, 157 OpenSSH, 310 cliente, 310 conguracin, 311 copia segura, 311 habilitar, 310 tneles, 313 OpenSSL generacin de certicados, 296 Opera, 154 OS/2, 339
N
nameserver, 467 natd, 588 Net/2, 5 NetBIOS, 450 NetBSD, 9, 550 Netcraft, 4 netgroups, 560 network address translation, 529 newfs, 369 NFS, 369, 377, 531 conguration, 532 diskless operation, 542 export examples, 532 mounting, 534 server, 531 uses, 534
639
OSPF, 511
P
packages, 116 deleting, 120 installing, 119 Pair Networks, 4 pairing, 524 PAP, 440, 445, 451 Parallel Line IP, 596 particiones, 100, 337 particiones BSD, 338 particin raz, 369 passwd, 258 password, 440 pax, 364 PCI, 163 PDF viewing, 158, 158, 159 peligrosamente dedicadas, 100 periodo de gracia, 376 permisos, 90 symbolic, 91 permisos de chero, 90 personalizacin del kernel, 217, 227 Physical Address Extensions (PAE) large memory, 200 pkg_add, 119 pkg_delete, 120 PLIP, 596 POP, 477, 479 Portaudit, 317 portmanager, 128 portmap, 531, 550 portmaster, 128 ports, 116 disk-space, 129 installing, 122 removing, 126 upgrading, 127 portupgrade, 127 POSIX, 364, 399 PostScript viewing, 158 PPP, 439, 440, ??, 547 cliente, 454
con direcciones IP dinmica, 446 con direccin IP ja, 443 conguracin, 443, 452 Extensiones Microsoft, 450 kernel PPP, 454 recibiendo llamdas externas, 447 servidor, 454 sobre ATM, 463 sobre Ethernet, 461 user PPP, 444 PPP shells, 448, 448 PPPoA (Ver PPP, sobre ATM) PPPoE (Ver PPP, sobre Ethernet) preemptive multitasking, 1 pw, 259, 401 pginas de manual, 113
R
racoon, 305 RAID CCD, 340 hardware, 343 software, 340, 343, 388 Vinum, 343 RAID-1, 389 rc les rc.serial, 414, 424 RDSI, 546 Red privada virtual (Ver VPN) Redes por TCP/IP, 471 redes TCP/IP, 469 Registro Maestro de Arranque (RMA), 245 registro MX, 478 resolver, 441, ?? respaldo en discos exibles, 361 restore, 362 reverse DNS, ?? RFCOMM, 524 RIP, 475, 511 rlogind, 267 rmuser, 256 root le system diskless operation, 543
640
root zone, ?? routed, 452 router, 3, 511, 529 routing, 507 routing propagation, 513 RPM, 223 RS-232C cables, 411, 411 rshd, 267 Rplica de discos, 389
montaje, 104 montaje con fstab, 103 snapshots, 373 slices, 100, 337 SLIP, 439, 466, 470, 471 cliente, 466 conectando con, 467 enrutamiento, 474 servidor, 469 SMTP, 453, 489
S
sbsize, 261 scp, 311 scripts de inicio, 87 SCSI, 28 SDL, 169 SDP, 525 seguridad, 263 asegurar FreeBSD, 265 Ataques DoS (Ver Denegacin de servicios (DoS)) compromiso de cuentas, 264 Contraseas de un solo uso, 273 cortafuegos, 476 crypt, 272 OpenSSH, 310 OpenSSL, 296 puertas traseras, 264 sendmail, 267, 452, 480 serial communications, 410 serial console, 80, 430 servidor de correo, 479 Servidor de tipos de letra True Type de X11, 403 Servidor DNS, 440 setkey, 305 shells, 109 Shells Bourne, 110 Sistema de cola LPD, 203 sistema de cheros ISO 9660, 346 sistema de cheros raz, 102 sistemas de cheros desmontar, 105 HFS, 347 ISO 9660, 347 Joliet, 347
software de respaldo Amanda, 364 cpio, 363 pax, 364 tar, 363 Solaris, 240, 550 Sony Japan, 4 Sophos Anti-Virus, 4 sound cards, 163 source code, 2 spreadsheet Abacus, 160 Gnumeric, 160 SRM, 11 ssh, 271 sshd, 50 sshd, 267 stacksize, 261 Striping, 382 striping de discos, 388 su, 265, 338 subnet, 507, 508 Subversion (Ver SVN) SunOS, 553 Supervalu, 4 SVN repository, 7 Symmetric Multi-Processing (SMP), 2 sysctl, 268 sysinstall, 402, 568 aadir discos, 338 sysutils/cdrtools, 346
641
T
tar, 362, 363 TCP Wrappers, 278 TCP/IP networking, 1 tcpwrapper, 559 TELEHOUSE America, 4 telnetd, 267 terminales, 86 terminals, 415 TeX, 204 TFTP diskless operation, 542 The GIMP, 156 timeout, 445 Tipos TrueType, 140 trabajos de impresin, 204 traceroute, 513 transporte exim, 478 postx, 478 qmail, 478 sendmail, 478 Tru64 UNIX, 555 ttyd, 414 TV cards, 177
video packages, 172 video ports, 172 Vinum, 388 concatenacin, 388 rplicas, 389 striping, 388 vipw, 400 virtual memory, 2 VPN, 299 creacin, 300
W
Walnut Creek CDROM, 5 Weathernews, 4 web browsers Mozilla (Ver Mozilla) web servers, 3 WEP, 518 wheel, 266 widescreen atpanel conguration, 138 Williams, Nate, 5 Windows, 276 Windows NT, 550 wireless networking, 514 encryption, 518 Punto de acceso, 515
U
U.C. Berkeley, 2, 5, 9 UDP, 567 Unicode, 404 UNIX, 90, 440 USB discos, 344 USENET, 3 users large sites running FreeBSD, 4 Uso de fetchmail, 503 Uso de procmail, 504 UUCP, 486
X
X Display Manager, 144 X Window System, 2 (Ver Tambin XFree86) Accelerated-X, 3 XFree86, 3 X11, 135 X11 tuning, 136 XML, 141 Xorg, 135 xorg.conf, 137 Xpdf, 159 XVideo, 169
V
variables de entorno, 109 vertical scan rate, 136 vi, 111
642
Y
Yahoo!, 4 yellow pages (Ver NIS)
Z
zip drive, 196 zones examples, 572
643
Colofn
Este libro es el resultado del trabajo de cientos de colaboradores del Proyecto de Documentacin de FreeBSD. El texto esta escrito en SGML de acuerdo al DTD DocBook y es formateado automticamente en diferentes formatos de presentacin usando Jade, una herramienta DSSSL de software libre. Se han usado las hojas de estilo DSSSL de Norm Walsh con personalizacin de niveles para las instrucciones de presentacin de Jade. La versin impresa de A este documento no hubiese sido posible sin los programas TEX de Donald Knuth, L TEX de Leslie Lamport y JadeTeX de Sebastian Rahtz.
644