diff --git a/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml b/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml index c3a3b0f0fb..9a766694a2 100755 --- a/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml @@ -1,2788 +1,2868 @@ Chris Shumway Reescrito por Conceptos básicos de Unix Sinopsis - El siguiente capítulo cubrirá la funcionalidad y - comandos básicos del sistema operativo FreeBSD. - Mucho de este material es relevante para cualquier sistema + El siguiente capítulo comprende la funcionalidad y + órdenes básicas del sistema operativo &os;. + Gran parte de este material es relevante para cualquier sistema operativo tipo &unix;. - Siéntase libre de hojear este capitulo si está - familiarizado con el material. Si es nuevo en FreeBSD, seguramente - querrá leer este capítulo cuidadosamente. + Puede saltarse este capítulo si considera que ya conoce + el funcionamiento de &unix;. + Si no tiene experiencia previa con &os; debería leer este + capítulo con mucha atención. Después de leer este capítulo, usted sabrá: Cómo usar las consolas virtuales de FreeBSD. - Como trabajan los permisos de archivo &unix; junto - con el entendimiento de las banderas de archvo en &os;. + Cómo funcionan los permisos de fichero &unix; en + relación con las banderas de fichero en &os;. - La disposición de archivos de sistema en &os; por - defecto. + La disposición de sistemas de ficheros por defecto + en &os;. La organización de disco de &os;. - Como montar y desmontar sistemas de archivos. + Cómo montar y desmontar sistemas de ficheros. - Qué son los procesos, daemons y señales. + Qué son los procesos, dæmons y señales. - Que es un shell, como cambiar su ambiente de login por defecto. + Qué es una shell, cómo modificar sus variables + de ambiente de login por defecto. - Como utilizar editores de texto básicos. + Cómo utilizar editores de texto básicos. - Que son los dispositivos y nodos de dispositivos. + Qué son los dispositivos y nodos de dispositivos. - Que formato binario es utilizado bajo &os;. + Qué formato binario se usa en &os;. - Como leer páginas de manual para más información. + Cómo buscar información en las páginas + de manual. Consolas virtuales y terminales consola virtual terminales - FreeBSD puede ser utilizado de varias maneras. Una de ellas es - tecleando comandos en una terminal de texto. Mucha de la flexibilidad - y poder de un sistema operativo &unix; está inmediatamente - disponible al alcance de sus manos cuando usa FreeBSD de esta - manera. Esta sección describe que son terminales - y consolas, y como puede usarlas en FreeBSD. + &os; puede utilizarse de muchas maneras. Una de ellas es + tecleando órdenes en una terminal de texto. De este modo, mucha + de la flexibilidad y poder de un sistema operativo &unix; está + inmediatamente en sus manos cuando usa &os;. Esta sección + describe qué son terminales y + consolas, y cómo puede usarlas en &os;. La consola consola - Si no ha configurado FreeBSD para iniciar automaticamente un - entorno gráfico durante el arranque, el sistema le - presentará con un prompt de entrada despues del arranque, - justo despues que los scripts de inicio terminen de ejecutarse. - Usted verá algo similar a: + Si no ha configurado FreeBSD para iniciar automáticamente + un entorno gráfico en el arranque, el sistema le + presentará un prompt de entrada después + del arranque, inmediatamente después 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 -FreeBSD/i386 (pc3.example.org) (ttyv0) +FreeBSD/i386 (pc3.ejemplo.org) (ttyv0) login: Los mensajes pueden ser un poco diferentes en su sistema, pero - verá algo similar. Las última dos líneas son + verá algo similar. Las últimas dos líneas son las que nos interesan por el momento. La penúltima línea dice: - FreeBSD/i386 (pc3.example.org) (ttyv0) + FreeBSD/i386 (pc3.ejemplo.org) (ttyv0) - Esta línea contiene algunas partes de información - acerca del sistema que acaba de arrancar. Esta usted mirando una - consola FreeBSD, corriendo en un procesador Intel + Esta línea contiene información + 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 x86 - Esto es lo que i386 significa. Note que - incluso si no está ejecutando FreeBSD en un CPU Intel 386, - este va a ser i386. No es el tipo de su - procesador, sino la arquitectura la que es - mostrada aquí. + Esto es lo que i386 significa. Tenga en + cuenta que incluso si no está ejecutando &os; 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í. . El nombre de esta máquina (cada máquina &unix; - tiene un nombre) es pc3.example.org, y usted - está ahora mirando su consola de sistema — la - terminal ttyv0. + tiene un nombre) es pc3.ejemplo.org, y usted + está ahora ante su consola de sistema (la + terminal ttyv0). Finalmente, la última línea siempre es: login: Esta es la parte donde se supone que usted teclée - su nombre de usuario para entrar en FreeBSD. - La siguiente sección describe como puede hacer esto. + su nombre de usuario para entrar en &os;. + La siguiente sección describe cómo hacerlo. - Entrando a FreeBSD + La entrada a &os; - FreeBSD es un sistema multiusuario, multiprocesador. Esta - es la descripción formal que es dada usualmente a un + &os; es un sistema multiusuario multiprocesador. Esta + es la descripción formal que se suele dar a un sistema que puede ser utilizado por muchas personas diferentes, - que simultaneamente corren muchos programas en un sola + que simultáneamente ejecutan muchos programas en un sola máquina. - Cada sistema multiusuario necesita alguna manera para - distinguir a un usuario del resto. En FreeBSD - (y en todos los sistemas operativos tipo &unix;), esto se - logra requiriendo que cada usuario debe firmarse - en el sistema antes de poder correr programas. Cada usuario + Cada sistema multiusuario necesita algún modo de + distinguir a un usuario del resto. En &os; + (y en todos los sistemas operativos tipo &unix;) esto se + logra requiriendo que cada usuario debe acceder + al sistema antes de poder ejecutar programas. Cada usuario tiene un nombre único (el nombre de usuario) - y una llave secreta, personal (la contraseña). - FreeBSD preguntará por estos dos antes de permitirle a - un usuario correr cualquier programa. + y una clave secreta, personal (la contraseña). + &os; preguntará por ambos antes de permitirle a + un usuario ejecutar cualquier programa. scripts de inicio - Justo despues que FreeBSD arranca y termina de correr sus - scripts de inicio + Justo después de que &os; arranque y termine de + ejecutar sus scripts de inicio - Scripts de inicio son programas que son ejecutados - automaticamente por FreeBSD cuando arranca. Su función + Los scripts de inicio son programas que &os; + ejecuta automáticamente cuando arranca. Su función principal es preparar las cosas para que todo lo demás se ejecute, e iniciar cualquier servicio que tenga configurado - para correr en segundo plano haciendo cosas útiles. - , le presentará un prompt y solicitará - un nombre de usuario válido: + para ejecutarse en segundo plano haciendo cosas + útiles. + , le presentará un prompt y + solicitará un nombre válido de usuario: login: - Para efectos de este ejemplo, vamos a asumir que su nombre de - usuario es john. Teclée john - en este prompt y presione Enter. Se le debe presentar - un prompt para entrar una contraseña: + En este ejemplo vamos a asumir que su nombre de + usuario es john. Teclée + john en el prompt y pulse + Enter. Debería presentársele un + prompt donde introducir una + contraseña: login: john Password: Teclée ahora la contraseña de john - y presione Enter. !La contraseña no - produce eco! no necesita preocuparse por eso en este - momento. Es suficiente decir que esto es hecho por razones de + y pulse Enter. La contraseña + no se muestra en pantalla, pero no debe + preocuparse por ello. Esto se hace así por motivos de seguridad. - Si ha tecleado su contraseña correctamente, ya debe estar - firmado en FreeBSD en este momento y listo para probar todos los - comandos disponibles. + Si ha tecleado su contraseña correctamente ya está + usted en un sistema &os;, listo para probar todas las + órdenes disponibles. - Debe de ver el MOTD o mensaje del día - seguido por un prompt de comandos (un caracter #, - $ o %). Esto indica - que se ha firmado exitosamente en FreeBSD. + Verá el MOTD (mensaje del día) + seguido por un prompt (un caracter #, + $ o %). Esto confirma + que ha validado con éxito su usuario en &os;. Consolas múltiples - Ejecutar comandos &unix; en una consola está bien, pero - FreeBSD puede correr muchos programas a la vez. Tener una consola - donde se pueden teclear comandos puede ser un poco de desperdicio - cuando un sistema operativo como FreeBSD puede correr docenas de - programas al mismo tiempo. Aquí es donde las + Ejecutar órdenes &unix; en una consola está bien, + pero &os; puede ejecutar muchos programas a la vez. Tener una consola + donde se pueden teclear órdenes puede ser un poco de desperdicio + cuando un sistema operativo como &os; puede ejecutar docenas de + programas al mismo tiempo. Aquí es donde las consolas virtuales pueden ser de mucha ayuda. - FreeBSD puede ser configurado para presentarle diferentes - consolas virtuales. Puede cambiar de una de ellas a cualquier - otra consola virtual presionando un par de teclas en su teclado. - Cada consola tiene su propio canal de salida diferente, y FreeBSD + &os; puede ser configurado para presentarle diferentes + consolas virtuales. Puede cambiar de una de ellas a cualquier + otra consola virtual pulsando un par de teclas en su teclado. + Cada consola tiene su propio canal de salida, y &os; se ocupa de redireccionar correctamente la entrada del teclado y la salida al monitor cuando cambia de una consola virtual a la siguiente. - Combinaciones especiales de teclas han sido reservadas por - FreeBSD para cambiar consolas - Una descripción bastante técnica y correcta - de todos los detalles de la consola FreeBSD y los controladores de + Se han reservado ciertas combinaciones especiales de teclas + para pasar de unas consolas virtuales a otras en &os; + Tiene una descripción bastante técnica y correcta + de todos los detalles de la consola &os; y los controladores de teclado pueden encontrarse en las páginas de manual de &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; y - &man.kbdcontrol.1;. No nos explayaremos en los detalles aquí, - pero el lector interesado siempre puede consultar las páginas - de manual para una explicación más detallada y - profunda de como funcionan estas cosas. + &man.kbdcontrol.1;. No nos extenderemos en los detalles aquí, + pero el lector interesado siempre puede consultar dichas + páginas de manual si quiere una explicación + más detallada y profunda de cómo funcionan + estas cosas. . Puede utilizar AltF1, - AltF2 hasta - AltF8 para cambiar - a una consola virtual diferente en FreeBSD. - - Mientras está cambiando de una consola a la siguiente, - FreeBSD se ocupa de salvar y restaurar la salida de pantalla. El - resultado es una ilusión de tener varias - pantallas y teclados virtuales que puede utilizar - para teclear comandos para que los corra FreeBSD. El programa que - usted lanza en una consola virtual no termina de correr cuando la - consola no está visible. Continúan ejecutándose + AltF2 y + así sucesivamente hasta + AltF8 para + cambiar a una consola virtual diferente en &os;. + + Mientras está cambiando de una consola a la siguiente, + FreeBSD se ocupa de guardar y restaurar la salida de pantalla. El + resultado es la ilusión de tener varias + pantallas y teclados virtuales que puede utilizar + para teclear órdenes para que los ejecute &os;. El programa que + usted lanza en una consola virtual no deja de ejecutarse cuando la + consola no está visible. Continúan ejecutándose cuando se cambia a una consola virtual diferente. - El archivo <filename>/etc/ttys</filename> - - La configuración por omisión de FreeBSD iniciará - con ocho consolas virtuales. Esta no es una configuración - estática por hardware y usted puede facilmente personalizar - su instalación para arrancar con más o menos consolas - virtuales. El número y propiedades de las consolas - virtuales están configurados en el archivo + El fichero <filename>/etc/ttys</filename> + + La configuración por defecto de &os; iniciará + con ocho consolas virtuales. Esta no es una configuración + estática por hardware y usted puede personalizar + fácilmente su sistema para arrancar con más o menos + consolas virtuales. El número y propiedades de las consolas + virtuales están detallados en /etc/ttys. - Puede utilizar el archivo /etc/ttys para - configurar las consolas virtuales de FreeBSD. Cada línea no - comentada en este archivo (líneas que no inician con un + Use /etc/ttys para + configurar las consolas virtuales de &os;. Cada línea no + comentada de este fichero (líneas que no comienzan con un caracter #) contiene propiedades para una sola - terminal o consola virtual. La versión por omisión de - este archivo que se encuentra en FreeBSD configura nueve consolas - virtuales y habilita ocho de ellas. Son las líneas que inician - con ttyv: + terminal o consola virtual. La versión por defecto de + este fichero en FreeBSD configura nueve consolas + virtuales y habilita ocho de ellas. Son las líneas que + comienzan con ttyv: # name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure - Para una descripción detallada de cada columna en este - archivo y todas las opciones que puede usar para configurar las - consolas virtuales, consulte la página de manual &man.ttys.5;. + Consulte &man.ttys.5; si quiere una descripción detallada + de cada columna en este fichero y todas las opciones que puede usar + para configurar las consolas virtuales. Consola en modo monousuario - Una descripción detallada de lo que es modo - monousuario puede encontrarse en . - No importa que solo exista una consola cuando ejecuta FreeBSD en - modo monousuario. No existen consolas virtuales disponibles. Las + En la encontrará una + descripción detallada de lo que es modo + monousuario + No importa que solo exista una consola cuando ejecuta &os; en + modo monousuario. No existen consolas virtuales disponibles. Las configuraciones de la consola en modo monousuario se pueden encontrar - también en el archivo /etc/ttys. Busque la - línea que inicia con console: + también en /etc/ttys. Busque la + línea que comienza con console: # name getty type status comments # -# Si la consola está marcada como "insecure", entonces init preguntará -# por la contraseña de root al entrar a modo monousuario. +# Si la consola está marcada como "insecure", entonces init +# le pedirá la contraseña de root al entrar a modo monousuario. console none unknown off secure - Como los comentarios arriba de la línea console - indican, usted puede editar esta línea y cambiar - secure a insecure. Si hace - eso, cuando FreeBSD arranque en modo monousuario, todavía - preguntará por la contraseña de - root. - - Tenga cuidado al cambiar esto a - insecure. Si olvida la - contraseña de root, arrancar - en modo monousuario está un poco involucrado. Todavía - es posible, pero puede ser un poco difícil para alguien - que no se encuentra muy cómodo con le proceso de - arranque de FreeBSD y los programas involucrados. + Tal y como indican los comentarios por encima de la + línea console, puede editar esta + línea y cambiar secure por + insecure. Si lo hace, cuando &os; arranque + en modo monousuario el sistema le pedirá la + contraseña de root. + + + Tenga cuidado si cambia esto a + insecure. Si olvida la + contraseña de root arrancar + en modo monousuario será con seguridad más + complicado. Sigue siendo posible, pero será un poco + difícil para alguien que no esté familiarizado + con le proceso de arranque de &os; y los programas involucrados + en dicho proceso. Permisos UNIX - FreeBSD, cuya raiz histórica es el UNIX BSD, tiene - sus fundamentos basados en varios conceptos clave de UNIX. El primero, y - más remarcado, es que FreeBSD es un sistema operativo - multi-usuario. El sistema puede manejar varios usuarios trabajando - todos simultáneamente y en tareas que no guardan relación - entre sí. El sistema es el responsable de compartir y administrar + &os;, cuya raíz histórica es el UNIX BSD, + se fundamenta en varios conceptos clave de UNIX. El primero y + más importante es que &os; es un sistema operativo + multi-usuario. El sistema puede gestionar varios usuarios trabajando + simultáneamente y en tareas que no guardan relación + entre sí. El sistema se encarga de compartir y administrar peticiones de dispositivos de hardware, periféricos, memoria y tiempo de Unidad Central de Proceso (CPU) de manera equitativa para cada usuario. Debido a que el sistema es capaz de soportar múltiples usuarios, todo lo que el sistema administra tiene un conjunto de - permisos que gobiernan quién puede leer, escribir y ejecutar el - elemento. Estos permisos se guardan como octetos divididos en tres - partes: una para el propietario del archivo, otra para el grupo al que - el archivo pertenece, y otra para cualquier otro. Esta - representación numérica funciona así: + permisos que usa para decidir quién puede leer, escribir y + ejecutar un recurso. Estos permisos se guardan como octetos + divididos en tres partes: una para el propietario del fichero, otra + para el grupo al que el fichero pertenece, y otra para todos los + demás grupos y usuarios. Veamos una + representación numérica de esto: permisos - permisos de archivo + permisos de fichero Valor Permiso Listado de directorio 0 No leer, no escribir, no ejecutar --- 1 No leer, no escribir, ejecutar --x 2 No leer, escribir, no ejecutar -w- 3 No leer, escribir, ejecutar -wx 4 Leer, no escribir, no ejecutar r-- 5 Leer, no escribir, ejecutar r-x 6 Leer, escribir, no ejecutar rw- 7 Leer, escribir, ejecutar rwx ls directorios - Puede utilizar el argumento de línea de comando - en &man.ls.1; para ver un listado - largo que incluye una columna con información acerca - de los permisos de archivo para el propietario, grupo y - los demás. Por ejemplo, un ls -l en - un directorio arbitrario puede mostrar: + Puede utilizar el parámetro de línea de órdenes + de &man.ls.1; para ver un listado + largo que incluya una columna con información acerca + de los permisos de fichero para el propietario, grupo y + los demás. Por ejemplo, un ls -l en + un directorio arbitrario puede mostrar algo como esto: &prompt.user; ls -l total 530 --rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile --rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 mifichero +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otrofichero -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt ... Aquí está como se divide la primera columna de ls -l: -rw-r--r-- El primer caracter (más a la izquierda) indica si - este archivo es un archivo regular, un directorio, un + este fichero es un fichero regular, un directorio, un dispositivo especial de caracter, un socket o cualquier otro - dispositivo especial pseudo-archivo. En este caso, el - - indica un archivo regular. Los siguientes tres caracteres, - rw- en este ejemplo, dan los permisos - para el propietario del archivo. Los siguientes tres caracteres, + dispositivo especial pseudo-ficheroa . En este caso, el + - un fichero regular. Los siguientes tres + caracteres, rw- en este ejemplo, dan los permisos + para el propietario del fichero. Los siguientes tres caracteres, r--, dan los permisos para el grupo al que - el archivo pertenece. Los últimos tres caracteres, + el fichero pertenece. Los últimos tres caracteres, r--, dan los permisos para el resto del - mundo. Un guión indica que el permiso está desactivado. - En el caso de este archivo, los permisos están + mundo. Un guión indica que el permiso está desactivado. + En el caso de este fichero, los permisos están asignados de tal manera que el propietario puede leer y escribir - en el archivo, el grupo puede leer el archivo, y el resto del - mundo sólo puede leer el archivo. De acuerdo con la tabla - de arriba, los permisos para este archivo serían 644, + en el fichero, el grupo puede leer el fichero, y el resto del + mundo sólo puede leer el fichero. De acuerdo con la tabla + de arriba, los permisos para este fichero serían + 644, donde cada dígito representa las tres partes de los - permisos del archivo. + permisos del fichero. Todo ésto está muy bien, pero ¿cómo - controla el sistema los permisos de los dispositivos? FreeBSD en + controla el sistema los permisos de los dispositivos? &os; en realidad trata la mayoría de los dispositivos hardware como un - archivo que los programas pueden abrir, leer y en los que pueden - escribir datos como si de cualquier otro archivo se tratara. Estos - archivos especiales de dispositivos se encuentran en el directorio + fichero que los programas pueden abrir, leer y en los que pueden + escribir datos como si de cualquier otro fichero se tratara. Estos + ficheros especiales de dispositivo se encuentran en el directorio /dev. - Los directorios también son tratados como archivos. Tienen - permisos de lectura, escritura y ejecución. El bit de + Los directorios también son tratados como ficheros. Tienen + permisos de lectura, escritura y ejecución. El bit de ejecución en un directorio tiene un significado - ligéramente distinto que para los archivos. Cuando un directorio + ligeramente distinto que para los ficheros. Cuando un directorio está marcado como ejecutable significa que se puede mirar dentro, - se puede hacer un cd (cambiar directorio) a él. - Esto también significa que dentro del directorio es posible - accesar archivos cuyos nombres son conocidos (sujeto, claro está, - a los permisos en los archivos mismos). + se puede hacer un cd (cambiar directorio) a él. + Esto también significa que dentro del directorio es posible + acceder a ficheros cuyos nombres son conocidos (sujeto, claro está, + a los permisos de los ficheros 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 archivo del que se conoce el - nombre, es necesario tener permisos de escritura y - ejecución en el directorio que contiene el archivo. + mientras que para borrar un fichero del que se conoce el + nombre es necesario tener permisos de escritura y + ejecución en el directorio que contiene el fichero. Existen más permisos, pero se usan principalmente en circunstancias especiales como los binarios ejecutables de tipo setuid - y los los directorios de tipo sticky. Si desea más - información acerca de los permisos de archivos y como - establecerlos, asegúrese de mirar la página de manual de - &man.chmod.1;. + y los los directorios de tipo sticky. Si desea más + información acerca de los permisos de ficheros y cómo + establecerlos, consulte &man.chmod.1;. + Tom Rhodes - Contribuido por + Escrito por Permisos simbólicos permisossymbolic - Los permisos simbólicos, algunas veces referidos como + Los permisos simbólicos, también conocidos como expresiones simbólicas, utilizan caracteres en lugar de valores - octales para asignar permisos a archivos o directorios. Las expresiones + octales para asignar permisos a ficheros o directorios. Las expresiones simbólicas utilizan la sintaxis de (quién) (acción) - (permisos), donde los valores siguientes están disponibles: + (permisos) mediante los siguientes valores: Opción Letra Representa (quién) u Usuario (quién) g - Propietario de grupo + Grupo propietario (quién) o Otro (quién) a - Todos (mundo) + Todos (todo el mundo) (acción) + - Agregar permisos + Añadir permisos (acción) - - Remover permisos + Quitar permisos (acción) = Activar permisos explicitamente (permisos) r Lectura (permisos) w Escritura (permisos) x Ejecución (permisos) t - Bit Sticky + Bit Sticky (pegajoso) (permisos) s Activar UID o GID - Estos valores son utilizados con el comando &man.chmod.1; - de la misma manera que los anteriores, pero con letras. Por - ejemplo, usted podría usar el siguiente comando para - bloquear a otros usuarios el acceso a FILE: + Estos valores se aplican con &man.chmod.1; + de la misma manera que los anteriores, pero con letras. Por + ejemplo, podría usar la siguiente orden para + bloquear a otros usuarios el acceso a FICHERO: - &prompt.user; chmod go= FILE + &prompt.user; chmod go= FICHERO - Una lista separada por comas puede brindarse cuando más - de un conjunto de cambios se debe realizar a un archivo. Por - ejemplo el siguiente comando eliminará los permisos de - escritura de grupo y mundo en FILE, - y entonces agrega permisos de ejecución para todos: + Puede usarse una lista separada por comas cuando + se quiera aplicar más de un conjunto de cambios a un fichero. + Por ejemplo la siguiente orden eliminará los permisos de + escritura de grupo y mundo a + FICHERO, y añade permisos de + ejecución para todos: &prompt.user; chmod go-w,a+x FILE Tom Rhodes - Contribuido por + Escrito por - Banderas de archivo de &os; + Banderas de fichero en &os; - Además de los permisos de archivo discutidos - previamente, &os; soporta el uso de banderas de - archivo. Estas banderas agregan un nivel de seguridad - y control adicional sobre archivos, pero no sobre directorios. + Además de los permisos de fichero previamente + expuestos, &os; permite el uso de banderas de + fichero. Estas banderas añaden un nivel de seguridad + y control adicional sobre ficheros, pero no sobre directorios. - Estas banderas de archivo agregan un nivel de control - adicional sobre archivos, ayudando a asegurar que en algunos + Estas banderas de fichero añaden un nivel adicional + de control sobre ficheros, ayudando a asegurar que en algunos casos ni siquiera root pueda eliminar - o alterar archivos. + o alterar ficheros. - Las banderas de archivo son alteradas usando la utilidad - &man.chflags.1;, mediante una interfaz simple. Por ejemplo, - para habilitar la bandera imborrable de sistema en el archivo - file1, escriba el siguiente comando: + Las banderas de fichero se modifican mediante + &man.chflags.1;, gracias a una interfaz muy sencilla. Por ejemplo, + para habilitar la bandera imborrable de sistema en + fichero1, escriba lo siguiente: - &prompt.root; chflags sunlink file1 + &prompt.root; chflags sunlink fichero1 - Y para dehabilitar la bandera imborrable de sistema, - simplemente escriba el comando previo con no - al frente de . Observe: + Y para dehabilitar la bandera imborrable de sistema, + simplemente escriba la orden previa con no + antes de . Observe: - &prompt.root; chflags nosunlink file1 + &prompt.root; chflags nosunlink fichero1 - Para ver las banderas en este archivo, utilice + Para ver las banderas de este fichero, utilice &man.ls.1; con las opciones : - &prompt.root; ls -lo file1 + &prompt.root; ls -lo fichero1 - La salida debe verse como la siguiente: + La salida debería ser como esta: - -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 + -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 fichero1 - Varias banderas solo pueden ser agregadas o removidas - de archivos por el usuario root. En - otros casos, el propietario del archivo puede activar estas - banderas. Se recomienda que un administrador lea las - páginas de manual &man.chflags.1; y &man.chflags.2; - para más información. + Varias banderas solo pueden ser añadidas o retiradas + de ficheros por el usuario root. En + otros casos, el propietario del fichero puede activar estas + banderas. Se recomienda que para más información + la persona encargada de la administración del sistema + consulte las páginas de manual &man.chflags.1; y + &man.chflags.2;. + Estructura de directorios jerarquía de directorios - La jerarquía del sistema de archivos de FreeBSD es + La jerarquía del sistema de ficheros de &os; es fundamental para obtener una compresión completa del - sistema. El concepto más importante de entender es el - del directorio raíz, /. Este directorio - es el primero en ser montado al momento de arranque y contiene - el sistema básico necesario para preparar al sistema - operativo para la operación en modo multiusuario. - El directorio raiz también contiene puntos de montaje - para cualquier otro sistema de archivos que se desee montar. - - Un punto de montaje es un directorio donde se pueden injertar - sistemas de archivos al sistema de archivos raíz. - Esto es explicado con mas detalle en . - Los puntos de montaje estándar inlcuyen + sistema. El concepto más importante a entender es el + del directorio raíz, /. Este directorio + es el primero en ser montado en el arranque y contiene + el sistema básico necesario para preparar el sistema + operativo para su funcionamiento en modo multiusuario. + El directorio raíz también contiene puntos de montaje + para cualquier otro sistema de ficheros que se pretenda montar. + + Un punto de montaje es un directorio donde se pueden insertar + sistemas de ficheros al sistema de archivos raíz. + Esto se explica con detalle en la . + Los puntos de montaje estándar incluyen /usr, /var, /tmp, - /mnt y /cdrom. Estos - directorios están usualmente referenciados a entradas en - el archivo /etc/fstab. /etc/fstab - es una tabla que sirve como referencias al sistema y contiene - los diferentes sistemas de archivos y sus respectivos - puntos de montaje. La mayoría de los sistemas de archivos - en /etc/fstab son montados automaticamente - al momento de arranque desde el script &man.rc.8; + /mnt y /cdrom. Estos + directorios suelen corresponderse con entradas en + /etc/fstab. /etc/fstab + es una tabla que sirve de referencia al sistema y contiene + los diferentes sistemas de ficheros y sus respectivos + puntos de montaje. La mayoría de los sistemas de ficheros + en /etc/fstab se montan automáticamente + en el arranque gracias al script &man.rc.8;, a menos que contengan la opción . - Se pueden encontrar detalles en . + Si quiere más información consulte la . - Una descripción completa de la jerarquía del - sistema de archivos está disponible en &man.hier.7;. - Por ahora, una breve revisión de los directorios - más comunes será suficiente. + Veremos ahora una descripción de los directorios + más comunes. Si desea información más + completa consulte &man.hier.7;. Directorio Descripción / - Directorio raíz del sistema de archivos. + Directorio raíz del sistema de ficheros. /bin/ Utilidades de usuario fundamentales tanto para el ambiente monousuario como para el multiusuario. /boot/ - Programas y archivos de configuración utilizados + Programas y ficheros de configuración utilizados durante el arranque del sistema operativo. /boot/defaults/ - Archivos de configuración por defecto de + Ficheros de configuración por defecto del arranque; ver &man.loader.conf.5;. /dev/ Nodos de dispositivo; ver &man.intro.4;. /etc/ - Archivos de configuración y scripts del sistema. + Ficheros de configuración y + scripts del sistema. /etc/defaults/ - Archivos de configuración por omisión del sistema; + Ficheros de configuración por defecto del sistema; ver &man.rc.8;. /etc/mail/ - Archivos de configuración para agentes de + Ficheros de configuración para agentes de transporte de correo como &man.sendmail.8;. /etc/namedb/ - Archivos de configuración de named; + Ficheros de configuración de named; ver &man.named.8;. /etc/periodic/ - Scripts que son ejecutados diariamente, semanalmente y - mensualmente vía &man.cron.8;; ver &man.periodic.8;. + Scripts que se ejecutan diariamente, + semanalmente y mensualmente mediante &man.cron.8;; + ver &man.periodic.8;. /etc/ppp/ - Archivos de configuración de ppp; + Ficheros de configuración de ppp; ver &man.ppp.8;. /mnt/ - Directorio vacio comunmente utilizado por administradores - de sistemas como un punto de montaje temporal. + Directorio vacío utilizado de forma habitual por + administradores de sistemas como punto de montaje + temporal. /proc/ - Sistema de archivos de procesos; ver &man.procfs.5;, + Sistema de ficheros de procesos; ver &man.procfs.5;, &man.mount.procfs.8;. /rescue/ - Programas enlazados estaticamente para recuperaciones - de emergencia; ver &man.rescue.8;. + Programas enlazados estáticamente para + restauraciones de emergencia; ver &man.rescue.8;. /root/ - Directorio home para la cuenta root. + Directorio local para la cuenta root. /sbin/ Programas del sistema y utilidades fundamentales de administración para ambientes monousuario y multiusuario. /stand/ Programas utilizados en un ambiente autocontenido (standalone). /tmp/ - Archivos temporales. Los contenidos de - /tmp usualmente NO - son preservados despues de un rearranque del sistema. - Un sistema de archivos basado en memoria es frecuentemente - montado en /tmp. - Esto puede automatizarse usando variables relacionadas a - tmpmfs de &man.rc.conf.5 (o con una entrada en + Ficheros temporales. El contenido de + /tmp + NO suelen conservarse después + de un reinicio del sistema. + Los sistemas de ficheros basados en memoria suelen montarse + en /tmp. + Puede automatizarse mediante variables de + tmpmfs en &man.rc.conf.5; (o con una entrada en /etc/fstab; ver &man.mdmfs.8;, o para FreeBSD 4.X, &man.mfs.8;). /usr/ La mayoría de utilidades y aplicaciones de usuario. /usr/bin/ - Utilidades comunes, herramientas de programación y - aplicaciones. + Aplicaciones comunes, herramientas de programación y + otras aplicaciones. /usr/include/ - Archivos incluidos estándar de C. + Ficheros include estándar de C. /usr/lib/ - Librerías de archivos. + Bibliotecas. /usr/libdata/ - Utilidades miscelaneas de archivos de datos. + Ficheros de datos con diversas funciones. /usr/libexec/ - Daemons de sistema y utilidades de sistema (ejecutados - por otros programas). + Dæmons del sistema y utilidades del sistema + (ejecutados por otros programas). /usr/local/ - Ejecutables locales, librerías, etc. - también usado como el destino por omisión + Ejecutables locales, bibliotecas, etc. + también se usa como destino por defecto de la infraestructura de ports de FreeBSD. Dentro de - /usr/local, el esquema - general delineado por &man.hier.7; para - /usr debe ser utilizado. Las + /usr/local debe seguirse el esquema + general definido por &man.hier.7; para + /usr. Las excepciones son el directorio man, el cual está directamente bajo /usr/local en - lugar de debajo de /usr/local/share + lugar de debajo de /usr/local/share, y la documentación de los ports está en share/doc/port. /usr/obj/ - Arbol destino de arquitectura específica producido por - la construcción del árbol + Arbol destino dependiente de arquitectura fruto de + la compilación del árbol /usr/src. /usr/ports La colección de Ports de FreeBSD (opcional). /usr/sbin/ - Daemons del sistema y utilidades del sistema (ejecutados por - usuarios). + Dæmons del sistema y utilidades del sistema + (ejecutados por usuarios del sistema). /usr/share/ - Archivos independientes de arquitectura. + Ficheros independientes de arquitectura. /usr/src/ - Archivos fuente BSD y/o local. + Ficheros fuente BSD y/o local. /usr/X11R6/ Ejecutables de la distribución X11R6, - librerías, etc (opcional). + bibliotecas, etc (opcional). /var/ - Archivos multipropósito de log, temporales, en - tránsito y de spool. Un sistema de archivos basado - en memoria es montado algunas veces en - /var. - Esto puede automatizarse utilizando variables relacionadas - a varmfs de &man.rc.conf.5 (o con una entrada en + Ficheros multipropósito de log, temporales, en + tránsito y de spool. + En ocasiones se monta en + /var un sistema de + ficheros basado en memoria. + Puede automatizarse el proceso mediante variables + de varmfs en &man.rc.conf.5; (o con una entrada en /etc/fstab; ver &man.mdmfs.8;, o para FreeBSD 4.X, &man.mfs.8;). /var/log/ - Archivos de log miscelaneos del sistema. + Diversos ficheros de log del sistema. /var/mail/ - Archivos de buzones de correo de usuarios. + Ficheros de buzones de correo de usuarios. /var/spool/ - Directorios miscelaneos del sistema de spool de impresora + Directorios diversos del sistema de spool de impresora y correo /var/tmp/ - Archivos temporales. - Los archivos son usualmente preservados despues de un - rearranque del sistema, a menos que + Ficheros temporales. + Estos ficheros suelen conservarse tras un reinicio del + sistema, a menos que /var sea un - sistema de archivos basado en memoria. + sistema de ficheros basado en memoria. /var/yp Mapas NIS. Organización de disco La unidad más pequeña que FreeBSD utiliza para - encontrar archivos es el nombre de archivo. Los nombres de archivo + ubicar ficheros es el nombre de fichero. Los nombres de fichero son sensibles a las mayúsculas, lo que significa que readme.txt y README.TXT - son dos archivos separados. FreeBSD no utiliza la extensión - (.txt) de un archivo para determinar si el - archivo es un programa, o un documento o alguna otra forma de datos. + son dos ficheros distintos. &os; no utiliza la extensión + (.txt) de un fichero para determinar si el + es un programa, o un documento o alguna otra forma de datos. - Los archivos son almacenados en directorios. Un directorio puede - estar vacío, o puede contener cientos de archivos. Un + Los ficheros se almacenan en directorios. Un directorio puede + estar vacío, o puede contener cientos de ficheros. Un directorio también puede contener otros directorios, permitiéndole contruir una jerarquía de directorios - dentro de otro. Esto hace mucho más fácil la + dentro de otro. Esto hace mucho más fácil la organización de sus datos. - Archivos y directorios son referenciados dando el - nombre de archivo o de directorio, seguido por una diagonal, + Para referirse a ficheros o directorios se usa el nombre + de archivo o de directorio, seguido por una barra, /, seguido por cualquier otro nombre de directorio que sea necesario. Si tiene un directorio - foo, el cual contiene el directorio - bar, el cual contiene el archivo + tal, el cual contiene el directorio + cual, el cual contiene el fichero readme.txt, entonces el nombre completo - o ruta al archivo es - foo/bar/readme.txt. - - Los directorios y archivos son almacenados en un sistema de archivos. - Cada sistema de archivos contiene exactamente un directorio en el nivel - más elevado, llamado el directorio raíz - para ese sistema de archivos. Este directorio raíz puede - entonces contener otros directorios. - - Hasta ahora esto es probablemente similar a cualquier otro sistema - operativo que pueda haber utilizado. Existen unas cuantas diferencias; - por ejemplo, &ms-dos; utiliza \ para separar nombres - de archivo y directorio, mientras que &macos; utiliza :. + o ruta al fichero es + tal/cual/readme.txt. + + Los directorios y ficheros se almacenan en un sistema de ficheros. + Cada sistema de ficheros contiene un sólo directorio en el nivel + más elevado, que es el + directorio raíz + de ese sistema de ficheros. Este directorio raíz puede + contener otros directorios. + + Lo visto hasta ahora probablemente sea similar a cualquier otro + sistema operativo que pueda haber utilizado, pero hay unas cuantas + diferencias; por ejemplo, &ms-dos; utiliza \ para + separar nombres de fichero y directorio, mientras que &macos; usa + :. - FreeBSD no utiliza letras de unidades, o otro nombre de unidad - en la ruta. No podría escribir c:/foo/bar/readme.txt - en FreeBSD. - - En cambio, un sistema de archivos es designado el - sistema de archivos raíz. El - directorio raíz del sistema de archivos raíz está - referenciado como /. Cualquier otro sistema - de archivos es entonces montado bajo el - sistema de archivos raíz. No importa cuantos discos tenga - en su sistema FreeBSD, cada directorio parece ser parte del + &os; no utiliza letras de unidades, u otro nombre de unidad + en la ruta. Por tanto, no podrá escribir + c:/tal/cual/readme.txt + en &os;. + + En &os;, en cambio, un sistema de ficheros recibe el nombre de + sistema de ficheros raíz. El + directorio raíz del sistema de ficheros raíz se + representa como /. Cualquier otro sistema + de ficheros, por tanto, se monta bajo el + sistema de ficheros raíz. No importa cuántos discos + tenga en su sistema &os;, cada directorio parecerá ser parte del mismo disco. - Suponga que tiene tres sistemas de archivos, llamdos A, + Suponga que tiene tres sistemas de ficheros, denominados + A, B y C. Cada sistema de - archivos tiene un directorio raíz, el cual contiene + ficheros tiene un directorio raíz, el cual contiene otros dos directorios, llamados A1, A2 (y de la misma manera B1, B2 y C1, C2). - Llame a A el sistema de archivos raíz. - Si usara el comando ls para ver el contenido de + Usaremos A como sistema de ficheros + raíz. Si usara ls para ver el contenido de este directorio vería dos subdirectorios, A1 - y A2. El árbol de directorios se ve como - esto: + y A2. El árbol de directorios sería + como este: / | +--- A1 | `--- A2 - Un sistema de archivos debe ser montado en un directorio - en otro sistema de archivos. Ahora suponga que monta el - sistema de archivos B en el directorio - A1. El directorio raíz de + Un sistema de ficheros debe montarse en un directorio + de otro sistema de ficheros. Ahora suponga que monta el + sistema de ficheros B en el directorio + A1. El directorio raíz de B reemplaza a A1, y los directorios en B aparecen de esta manera: / | +--- A1 | | | +--- B1 | | | `--- B2 | `--- A2 - Cualquier archivo que esté en el directorio - B1 o B2 puede ser - alcanzado con la ruta /A1/B1 o - /A1/B2 según sea necesario. - Cualquier archivo que esté en /A1 - ha sido temporalmente escondido. Aparecerán de nuevo - si B es desmontado + Cualquier fichero que esté en el directorio + B1 o B2 puede + encontrarse con la ruta /A1/B1 o + /A1/B2 según sea necesario. + Cualquier fichero que esté en /A1 + ha desaparecido temporalmente. Aparecerán de nuevo + si B se desmonta de A. - Si B ha sido montado en A2 - entonces el diagrama se vería como este: + Si B se monta en A2 + entonces el diagrama se vería así: / | +--- A1 | `--- A2 | +--- B1 | `--- B2 y las rutas serían /A2/B1 y /A2/B2 respectivamente. - Sistemas de archivos pueden ser montados uno sobre otro. Continuando - el ejemplo anterior, el sistema de archivos C - podría ser montado sobre el directorio B1 - en el sistema de archivos B, llevando a este - arreglo: + Pueden montarse sistemas de ficheros uno sobre otro. Continuando + el ejemplo anterior, el sistema de ficheros C + podría montarse en el directorio B1 + en el sistema de ficheros B, lo que nos + llevaría a esto: / | +--- A1 | `--- A2 | +--- B1 | | | +--- C1 | | | `--- C2 | `--- B2 - O C podría ser montado directamente - en el sistema de archivos A, bajo el directorio + O C podría montarse directamente + en el sistema de ficheros A, bajo el directorio A1: / | +--- A1 | | | +--- C1 | | | `--- C2 | `--- A2 | +--- B1 | `--- B2 - Si está familiarizado con &ms-dos;, esto es similar, - aunque no idéntico, al comando join. + Si está familiarizado con &ms-dos; esto es similar, + aunque no idéntico, a utilizar join. - Esto normalmente no es algo de lo que necesite preocuparse. - Tipicamente usted crea sistemas de archivos cuando instala FreeBSD - y decide donde montarlos, y entonces nunca los cambie a menos que - agregue un disco nuevo. + Esto no es algo de lo que necesite preocuparse de forma habitual. + Normalmente creará sistemas de ficheros al instalar &os; + y decidirá dónde montarlos; lo más habitual es que + no los cambie de sitio a menos que agregue un disco nuevo. + - Es enteramente posible tener un sistema de archivos raíz - extenso, y no necesitar crear otros. Existen alguas inconveniencias de - esta aproximación, y una ventaja. + Es perfectamente posible tener un sistema de ficheros raíz + extenso y no necesitar crear otros. Este esquema tiene unos cuantos + inconvenientes y una ventaja: + - Beneficios de múltiples sistemas de archivos + Ventajas de disponer de múltiples sistemas de + ficheros - Diferentes sistemas de archivos pueden tener diferentes - opciones de montaje. Por ejemplo, con - una planeación cuidadosa, el sistema de archivos - raíz puede ser montado de solo-lectura, haciendole - a usted imposible borrar inadvertidamente o editar un archivo - crítico. Separando los sistemas de archivos escribibles - por usuarios, como /home, de otros - sistemas de archivos también les permite ser montados - nosuid; esta opción previene + Si dispone de varios sistemas de ficheros puede optar por + usar distintas opciones de montaje. + Por ejemplo, gracias a una planificación cuidadosa, el + sistema de ficheros raíz puede montarse como + sólo-lectura, haciendo imposible borrar sin querer o + editar un fichero crítico. Al mantener separados + sistemas de ficheros en los que los usuarios pueden escribir, + como /home, de otros sistemas de ficheros + también le permite montar con la opción + nosuid; dicha opción previene que los bits suid/guid - en los ejecutables almacenados en el sistema de archivos - tengan efecto, mejorando posiblemente la seguridad. + en los ejecutables almacenados en el sistema de ficheros + tengan efecto, mejorando en cierto modo la seguridad. - FreeBSD automaticamente optimiza el esquema de archivos - en un sistema de archivos, dependiendo de como el sistema - de archivos está siendo utilizado. Así que - un sistema de archivos que contiene muchos archivos pequeños - que son escritos frecuentemente tendrá una optimización - diferente de uno que contenga menos y más grandes archivos. - Teniendo un sistema de archivos grande esta optimización - se desmorona. + FreeBSD optimiza automáticamente el esquema de ficheros + en un sistema de ficheros, dependiendo de cómo el sistema + de ficheros esté siendo utilizado. + Un sistema de archivos que contiene muchos ficheros pequeños + en los que se escribe frecuentemente tendrá una + optimización de uno que contenga menos ficheros y más + grandes. Si sólo tiene un gran sistema de ficheros esta + optimización no tiene opción de actuar. - Los sistemas de archivos de FreeBSD son muy robustos si - sufre una falla de electricidad. De todas maneras, una falla - eléctrica en un momento crítico todavía puede - dañar la estructura del sistema de archivos. Dividiendo - sus datos a través de múltiples sistemas de - archivos hace que sea más probable que el sistema se - levante, haciendole más fácil restaurar desde + Los sistemas de ficheros de &os; son muy robustos en caso + de sufrir un fallo de electricidad. De todas maneras, un fallo + eléctrico en un momento crítico puede + dañar la estructura del sistema de ficheros. Si reparte + sus datos en múltiples sistemas de ficheros hará + que sea más probable que el sistema arranque después + de uno de esos fallos, haciéndole además + más fácil la tarea de restaurarlo desde un respaldo si fuera necesario. - Beneficios de un solo sistema de archivos + Ventajas de un sólo sistema de ficheros - Los sistemas de archivos son de un tamaño fijo. Si crea - un sistema de archivos cuando instala FreeBSD y le da un tamaño - específico, tal vez descubra mas tarde que necesita hacer - la partición más grande. Esto no se logra facilmente - sin respaldar, recrear el sistema de archivos con el nuevo + Los sistemas de ficheros son de un tamaño fijo. Si crea + un sistema de ficheros cuando instala &os; y le da un tamaño + específico, tal vez descubra más tarde que necesita + hacer la partición más grande. Esto no es + fácil de realizar sin hacer una copia de seguridad, crear + de nuevo el sistema de ficheros con el nuevo tamaño y entonces restaurar los datos respaldados. - FreeBSD 4.4 y versiones posteriores presentan el - comando &man.growfs.8;, el cual hace posible incrementar - el tamaño del sistema de archivos al vuelo, eliminando + FreeBSD 4.4 y sus versiones posteriores disponen de + &man.growfs.8;, que hace posible incrementar + el tamaño del sistema de ficheros + al vuelo, eliminando esta limitación. - Los sistemas de archivos están contenidos en particiones. - Esto no tiene el mismo significado del uso común del - término partición (por ejemplo, partición &ms-dos;), - debido a la herencia &unix; de &os;. Cada partición es - identificada por una letra desde a hasta - h. Cada partición puede contener solamente - un sistema de archivos, lo que significa que los sistemas de - archivos son usualmente descritos por su punto de montaje en la - jerarquía del sistema de archivos o por la letra de la - partición en la que están contenidos. - - FreeBSD también utiliza espacio de disco + Los sistemas de ficheros están alojados en particiones. + Este es un detalle muy importante, puesto que el + término partición no significa + aquí lo mismo que en otros entornos + (por ejemplo, partición &ms-dos;), + debido a la herencia &unix; de &os;. Cada partición se + identifica con una letra desde a hasta + h. Cada partición puede contener solamente + un sistema de ficheros, lo que significa que los sistemas de + ficheros suelen definirse mediante su punto de montaje en la + jerarquía del sistema de ficheros o por la letra de la + partición en la que están alojados. + + &os; también utiliza espacio de disco como espacio de intercambio (swap). - El espacio de intercambio le brinda a FreeBSD - memoria virtual. Esto le permite a - su computadora comportarse como si tuviera más - memoria de la que realmente tiene. Cuando a FreeBSD se le + El espacio de intercambio le brinda a &os; + memoria virtual. Esto le permite a + su sistema comportarse como si tuviera más + memoria de la que realmente tiene. Cuando a &os; se le agota la memoria mueve algunos de los datos que no están siendo utilizandos en ese momento al espacio de intercambio, - y los mueve de regreso (moviendo alguna otra cosa) cuando + y los mueve de regreso (desplazando alguna otra cosa) cuando los necesita. Algunas particiones tienen ciertas representaciones asociadas con ellas. Partición Representación a - Normalmente contiene el sistema de archivos raíz + Normalmente contiene el sistema de ficheros raíz b Normalmente contiene el espacio de intercambio (swap) c - Normalmente el mismo tamaño de la porción - (slice) que lo encierra. Esto le permite a utilidades que - necesitan trabajar en la porción entera (por ejemplo, + Normalmente el mismo tamaño de la slice + (porción o rebanada) + que lo encierra. Esto permite a las utilidades que + necesitan trabajar en la slice entera (por ejemplo, un explorador de bloques dañados) trabajar en - la partición c. Usted normalmente no - debe crear un sistema de archivos en esta partición. + la partición c. Normalmente no + debe usted crear un sistema de ficheros en esta + partición. d La partición d solía - tener un significado especial asociado con ella, aunque - ahora ya no lo tiene. Hasta este día, algunas - herramientas pueden operar extrañamente si se + tener un significado especial asociado, aunque + ahora ya no lo tiene. En la actualidad algunas + herramientas pueden comportarse de forma extraña si se les pide trabajar en la partición d, así que sysinstall no crear´ normalmente una partición d. - Cada partición-que-contiene-un-sistema-de-archivos - es almacenada en lo que FreeBSD llama una porción (slice). - Porción es el término de FreeBSD para lo que comunmente se - conoce como partición, y de nuevo, esto se debe al - pasado &unix; de FreeBSD. Las porciones están numeradas, + Cada partición-que-contiene-un-sistema-de-ficheros + se almacena en lo que &os; llama una slice. + Porción es el término de &os; para lo que + comúnmente se conoce como partición, y de nuevo, + conoce como partición, y de nuevo, esto se debe a la + herencia &unix; de &os;. Las slices están numeradas, empezando con 1, hasta 4. slices particiones peligrosamente dedicadas - Los números de porción siguen al - nombre de dispositivo, a los que se les antepone una - s, iniciando en 1. Así que + Los números de slice siguen al + nombre de dispositivo, a los que se antepone una + s, comenzando desde 1. Así, da0s1 es la - primera porción en la primera unidad SCSI. Solo - pueden haber cuatro porciones físicas en un disco, - pero puede tener porciones lógicas dentro de - porciones físicas del tipo apropiado. Estas - porciones extendidas son numeradas iniciando con 5, + primera slice en la primera unidad SCSI. Sólo + puede haber cuatro slices físicas en un disco, + pero puede haber slices lógicas dentro de + slices físicas del tipo apropiado. Estas + slices extendidas se numeran a partir de 5, así que ad0s5 - es la primera porción extendida en el primer - disco IDE. Estos dispositivos son utilizados por - sistemas de archivos que esperan ocupar una porción. - - Prociones, unidades físicas peligrosamente - dedicadas, y otras unidades contienen particiones, - las cuales son representadas como letras desde a - hasta h. Esta letra es agregada al nombre - del dispositivo, así que + es la primera slice extendida en el primer + disco IDE. Estos dispositivos se usan en sistemas de ficheros + que se espera que ocupen una slice. + + Tanto las slices y las unidades físicas + peligrosamente dedicadas, como otras unidades + contienen particiones, que se designan + mediante letras desde a + hasta h. Esta letra se añade al nombre + del dispositivo, así que da0a es la partición a en la primera unidad da, la cual está - peligrosamente dedicada. + peligrosamente dedicada. ad1s3e es la quinta - partición en la tercera porción de la segunda + partición en la tercera slice de la segunda unidad de disco IDE. - Finalmente, cada disco en el sistema es identificado. - El nombre de disco inicia con un código que indica - el tipo de disco, luego un número, indicando que disco - es. A diferencia de las porciones, la numeración de - discos inicia en 0. Los códigos comunes que usted - verá están listados en + Finalmente, cada disco en el sistema tiene también su + designación. + El nombre de disco comienza por un código que indica + el tipo de disco, luego un número, indicando qué disco + es. A diferencia de las slices, la numeración de + discos comienza desde 0. Los códigos comunes que usted + verá se muestran en la . - Cuando se refiere a una partición, FreeBSD requiere que - que también se nombre la porción y el disco que - contiene la partición, y al referirse a una porción - también debe referirse al nombre del disco. Haga esto - listando el nombre de disco, s (slice), el número - de porción y por último la letra de la partición. - Ejemplos se muestran en + Cuando se hace referencia a una partición, &os; requiere que + que también se nombre la slice y el disco que + contiene la partición, y al referirse a una slice + también debe referirse al nombre del disco. Esto se hace + listando el nombre de disco, s (slice), el + número de slice y por último la letra de la + de slice y por último la letra de la partición. + partición. Puede consultar varios ejemplos en la . - muestra un modelo - conceptual del esquema de un disco que debe ayudar a aclarar las - cosas. + La muestra un modelo + conceptual del esquema de un disco que debería ayudarle a + aclarar las cosas. + - Para poder instalar FreeBSD debe primero configurar las - porciones del disco, luego crear particiones dentro de la - porción que utilizará para FreeBSD y luego crear - un sistema de archivos (o espacio de intercambio, swap) en - cada partición y decidir donde se van a montar esos - sistemas de archivos. + Para poder instalar &os; debe primero configurar las + particiones del disco, luego crear particiones dentro de la + slice que utilizará para &os; y luego crear + un sistema de ficheros (o espacio de intercambio, swap) en + cada partición, y decidir dónde se van a montar esos + sistemas de ficheros. Códigos de dispositivos de disco Código Significado ad Disco ATAPI (IDE) da Disco de acceso directo SCSI acd CDROM ATAPI (IDE) cd CDROM SCSI fd - Disco flexible + Disquete (floppy)
- Muestra de nombres de disco, porción y partición + Ejemplo de nombres de disco, slices y partición Nombre Significado ad0s1a La primera partición (a) en - la primera porción (s1) en el + la primera slice (s1) en el primer disco IDE (ad0). da1s2e La quinta partición (e) en - la segunda porción (s2) en el + la segunda slice (s2) en el segundo disco SCSI (da1). Modelo conceptual de un disco - Este diagrama muestra como ve FreeBSD el primer disco IDE - en el sistema. Se asume que el disco es de 4 GB de tamaño, - y contiene dos porciones de 2 GB (particiones &ms-dos;). La - primera porción contiene un disco &ms-dos;, C:, - y la segunda porción contiene una instalación FreeBSD. + Este diagrama muestra cómo ve &os; el primer disco IDE + en el sistema. Se asume que el disco es de 4 GB, + y contiene dos particiones de 2 GB (particiones &ms-dos;). La + primera partición contiene un disco &ms-dos;, + C:, + y la segunda partición contiene una instalación &os;. Esta instalación de ejemplo tiene tres particiones, y una partición swap. - Cada una de las tres particiones tiene un sistema de archivos. - La partición a será utilizada - para el sistema de archivos raíz, e - para la jerarquía del directorio /var + Cada una de las tres particiones tiene un sistema de ficheros. + La partición a se utilizará + para el sistema de ficheros raíz, e + para la jerarquía del directorio /var, y f para la jerarquía del directorio /usr. .-----------------. --. | | | | DOS / Windows | | : : > Primera porción, ad0s1 : : | | | | :=================: ==: --. | | | Partición a, montada como / | | | > referida como ad0s2a | | | | | :-----------------: ==: | | | | Partición b, usada como swap | | | > referida como ad0s2b | | | | | :-----------------: ==: | Partición c, sin | | | Partición e, usada como /var > sistema de archivos, la | | > referida como ad0s2e | porción completa de FreeBSD, | | | | ad0s2c :-----------------: ==: | | | | | : : | Partición f, usada como /usr | : : > referida como ad0s2f | : : | | | | | | | | --' | `-----------------' --'
- Montando y desmontando sistemas de archivos + Montaje y desmontaje de sistemas de ficheros - El sistema de archivos es visualizado de una - mejor manera como un árbol, enraizado, como - lo está, en /. + El sistema de archivos se visualiza mejor como + un árbol, enraizado, como + lo está, en /. /dev, /usr y los - otros directorios en el directorio raíz son ramas, las + demás directorios en el directorio raíz son ramas, las cuales pueden tener sus propias ramas, como /usr/local, y así sucesivamente. - sistema de archivos raíz + sistema de ficheros raíz Existen varias razones para albergar algunos de - estos directorios en sistemas de archivos separados. - /var contiene los directorios + estos directorios en sistemas de ficheros separados. + /var contiene los directorios log/, spool/ y - varios tipos de archivos temporales, y como tal, puede - llenarse. Agotar el espacio del sistema de archivos raíz - no es una buena idea, así que dividiendo a /var - de / es frecuentemente favorable. + varios tipos de ficheros temporales y como tal, puede + llenarse. Agotar el espacio del sistema de ficheros raíz + no es una buena idea, así que separar /var + de / suele ser muy recomendable. Otra razón común para meter ciertos árboles - de directorios en otros sistemas de archivos es si van a estar + de directorios en otros sistemas de ficheros es si van a estar albergados en discos físicos separados, o si son discos - virtuales separados, como un montaje de - sistema de archivos de red, + virtuales separados, como un montaje de + sistema de ficheros de red, o unidades de CDROM. - El archivo <filename>fstab</filename> + El fichero <filename>fstab</filename> - sistemas de archivos - montado con fstab + sistemas de ficheros + montaje con fstab Durante el proceso de arranque, - los sistemas de archivos listados en /etc/fstab - son montados automaticamente (a menos que estén + los sistemas de ficheros listados en /etc/fstab + se montan automáticamente (a menos que estén listados con la opción ). - el archivo /etc/fstab contiene una - lista de líneas del siguiente formato: + /etc/fstab contiene una + lista de líneas con el siguiente formato: dispositivo /punto-de-montaje fstype opciones dumpfreq passno dispositivo - Un nombre de dispositivo (el cual debe existir). + Un nombre de dispositivo (debe existir). punto-de-montaje Un directorio (el cual debe existir), en - donde montar el sistema de archivos. + donde montar el sistema de ficheros. fstype - El tipo de sistema de archivos para - pasarle a &man.mount.8;. El tipo de sistema de - archivos por omisión de FreeBSD es + El tipo de sistema de ficheros para + pasarle a &man.mount.8;. El tipo de sistema de + ficheros por omisión de &os; es ufs. opciones Ya sea para sistemas - de archivos de lectura-escritura, o - para sistemas de archivos de solo-lectura, seguido - de cualquier otra opción que sea necesaria. + de ficheros de lectura-escritura, o + para sistemas de ficheros de solo-lectura, seguido + de cualquier otra opción que sea necesaria. Una opción común es - para sistemas de archivos que no son normalmente - montados durante la secuencia de arranque. Otras - opciones son listadas en la página de manual + para sistemas de ficheros que no se montan normalmente + durante la secuencia de arranque. Hay otras + opciones en la página de manual &man.mount.8;. dumpfreq - Esto es utilizado por &man.dump.8; para - determinar que sistema de archivos requiere volcado. Si - el campo no está declarado, se asume un valor + &man.dump.8; la usa para determinar qué + sistema de ficheros requiere volcado. Si + el campo no está declarado se asume un valor de cero. passno - Esto determina el orden en el cual los sistemas de - archivos deben ser revisados. Los sistemas de archivos - que deben ser saltados deben tener su passno - en cero. El sistema de archivos raíz (el cual + Determina el orden en el cual los sistemas de + ficheros deben revisarse. Los sistemas de ficheros + que deben saltarse deben tener su passno + a cero. El sistema de ficheros raíz (que, obviamente, necesita ser revisado antes que cualquier otro) debe tener - su passno puesto a uno, y otros - sistemas de archivos deben tener valores mayores a uno. - Si más de un sistema de archivos tiene el mismo + su passno puesto a uno, y otros + sistemas de ficheros deben tener valores mayores que uno. + Si más de un sistema de ficheros tiene el mismo passno entonces &man.fsck.8; tratará - de revisar los sistemas de archivo en paralelo de ser - posible. + de revisarlos en paralelo de ser posible. + Consulte la página de manual de &man.fstab.5; para - mayor información del formato del archivo + mayor información sobre el formato del fichero /etc/fstab y las opciones que contiene. - El comando <command>mount</command> + La orden <command>mount</command> - sistemas de archivos + sistemas de ficheros montaje - El comando &man.mount.8; es lo que se utiliza en última - instancia para montar sistemas de archivos. + &man.mount.8; es lo que se utiliza en última + instancia para montar sistemas de ficheros. - En su forma más básica, usted usa: - In its most basic form, you use: + En su forma más básica, se usa lo siguiente: &prompt.root; mount dispositivo punto-de-montaje - Existen cantidad de opciones, como se mencionó - en la página de manual &man.mount.8;, pero las - más comunes son: + Existe una gran cantidad de opciones, tal y como consta en + &man.mount.8;, pero las más comunes son: Opciones de montaje - Montar todos los sistemas de archivos - listados en /etc/fstab. + Montar todos los sistemas de ficheros + listados en /etc/fstab. Excepto aquellos marcados como noauto, excluidos por la bandera , o aquellos que ya están montados. Realizar todo excepto la llamada real de montaje del - sistema. Esta opción es útil junto + sistema. Esta opción es útil junto con la bandera para determinar lo que &man.mount.8; está tratando de hacer en realidad. - Forzar el montaje de un sistema de archivos - sucio (peligroso), o forzar la revocación - de accesos de escritura cuando se cambia el estatus - de un sistema de archivos de lectura-escritura - a solo-lectura. + Forzar el montaje de un sistema de ficheros + sucio (es decir, peligroso), o forzar + la revocación de accesos de escritura cuando se cambia + el estátus de un sistema de archivos de lectura-escritura + a só-lectura. - Montar el sistema de archivos de solo-lectura. - Esto es idéntico a utilizar el argumento + Montar el sistema de ficheros como sólo-lectura. + Esto es idéntico a utilizar el argumento + ( para versiones más antiguas que &os; 5.2) en la opción . fstype - Montar el sistema de archivos dado con el tipo de - sistema de archivos dado, o montar solamente sistemas - de archivos del tipo dado, si se proporciona la + Montar el sistema de ficheros dado con el tipo de + sistema de ficheros, o montar solamente sistemas + de ficheros del tipo dado, si se proporciona la opción . - ufs es el sistema de archivos + ufs es el sistema de ficheros raíz por omisión. Actualizar puntos de montaje en el sistema - de archivos. + de ficheros. - Arrojar mayor información. + Mostrar mayor información. - Montar el sistema de archivos como lectura-escritura. + Montar el sistema de ficheros como lectura-escritura. La opción toma una lista de opciones separada por comas, incluyendo las siguientes: nodev - No interpretar dispositivos especiales - en el sistema de archivos. Esto es una opción - de seguridad útil. + No interpretar dispositivos especiales en el sistema + ficheros. Es una opción + de seguridad que puede ser muy útil. noexec No permitir la ejecución de binarios - en este sistema de archivos. Esta también + en este sistema de ficheros. Esta también es una opción de seguridad útil. nosuid No interpretar banderas setuid o setgid en el - sistema de archivos. Esta también es una + sistema de ficheros. Esta también es una opción de seguridad útil. - El comando <command>umount</command> + La orden <command>umount</command> - sistemas de archivos + sistemas de ficheros desmontar - El comando &man.umount.8; toma, como parámetro, un + &man.umount.8; toma, como parámetro, un punto de montaje, un nombre de dispositivo, o la opción o . Todas las formas toman para forzar - el desmontaje, y para arrojar más - información. Considerese advertido que usar - no es una buena idea generalmente. Desmontar a la fuerza - distemas de archivos puede congelar la computadora o dañar - los datos en el sistema de archivos. + el desmontaje, y para mostrar más + información. Tenga muy en cuenta que usar + no suele ser una forma recomendable de proceder. Desmontar a la + fuerza los sistemas de ficheros puede acarrear el congelar la + máquina o dañar los datos en el sistema de + ficheros. - y son utilizadas - para desmontar todos los sistemas de archivos montados, - posiblemente modificado por el tipo de sistema de archivos - listado despues de . De todas maneras + y se usan para + desmontar todos los sistemas de ficheros montados, + con la ventaja de poder elegir el tipo de sistema de ficheros + que se use tras . De todas maneras no trata de desmontar el sistema de - archivos raíz. + ficheros raíz. Procesos - FreeBSD es un sistema operativo multi-tarea. Esto significa que - parece como si más de un programa estuviera corriendo al - mismo tiempo. Cada programa corriendo en cualquier momento dado es - llamado proceso. Cada comando que usted - ejecuta iniciará al menos un proceso nuevo, y hay un - número de procesos que corren todo el tiempo, manteniendo - el sistema de manera funcional. - - Cada proceso es individualmente identificado por un número - llamado ID de proceso, o PID, - y, como archivos, cada proceso también tiene un propietario - y un grupo. La información de propietario y grupo es utilizada - para determinar que archivos y dispositivos el proceso puede abrir, - usando los permisos de archivo discutidos anteriormente. La - mayoría de los procesos también tienen un proceso - padre. El proceso padre es el proceso que los inició. Por - ejemplo, si usted está tecleando comandos en el shell, entonces - el shell es un proceso, y cualquier comando que usted corre también - es un proceso. Cada proceso que usted corre de esta manera tendrá - como proceso padre a su shell. La excepción a esto es un - proceso especial llamado &man.init.8;. init es - siempre el primer proceso, así que su PID siempre es 1. - init es iniciado automaticamente por el kernel - cuando FreeBSD arranca. - - Dos comandos son particularmente útiles para ver los - procesos en el sistema, &man.ps.1; y &man.top.1;. el comando - ps es utilizado para mostrar una lista - estática de los procesos corriendo en ese momento, y - puede mostrar sus PID, cuanta memoria están usando, la - línea de comando con la que fueron iniciados, y mucho - más. El comando top despliega todos + &os; es un sistema operativo multitarea. Esto significa que + parece como si más de un programa se estuviera ejecutando al + mismo tiempo. Cada programa que se ejecuta en cualquier momento dado + se denomina proceso. Cada orden que + ejecuta iniciará al menos un proceso nuevo, y hay + muchos procesos que se están ejecutando en todo momento, + manteniendo el sistema en funcionamiento. + + Cada proceso tiene un identificador individual consistente en + un número llamado ID del proceso, + o PID, + y, como fichero, cada proceso también tiene un propietario + y un grupo. La información de propietario y grupo se usa + para determinar qué ficheros y dispositivos puede abrir el + proceso mediante los permisos de fichero explicados anteriormente. + La mayoría de los procesos también 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 + también lo será. De este modo, cada proceso que ejecute + tendrá como proceso padre a su shell. La excepción + es un proceso especial llamado &man.init.8;. init es + siempre el primer proceso, así que su PID siempre es 1. + init es arrancado automáticamente por el + kernel cuando arranca &os;. + + Hay dos órdenes particularmente útiles para ver los + procesos en el sistema, &man.ps.1; y &man.top.1;. + ps se usa para mostrar una lista + estática de los procesos que se ejecutan en el sistema en + ese momento, y puede mostrar sus PID, cuánta memoria + están usando, la línea de órdenes con la que fueron + iniciados, y mucho más. + top despliega todos los procesos que se están ejecutando, y actualiza la - pantalla cada vez que transcurren un par de segundos, para - que pueda ver lo que está haciendo su computadora. + pantalla cada pocos segundos para que pueda ver lo que + está haciendo su sistema. - Por omisión, ps solo le muestra los comandos - que están corriendo y que son propiedad de usted. Por ejemplo: + Por defecto ps solo le muestra las órdenes + que se están ejecutando y que sean propiedad de su usuario. + Por ejemplo: &prompt.user; ps PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish Como puede ver en este ejemplo, la salida de &man.ps.1; está - organizada en un número de columnas. PID - es el ID de proceso discutido anteriormente. Los PIDs son asignados - iniciando desde 1, hasta 99999, y dan la vuelta de regreso al - principio cuando se terminan los números. La columna - TT muestra el tty en el que el programa está - corriendo, y puede ser ignorado con seguridad por el momento. - STAT muestra el estado del programa, y de nuevo, - puede ser ignorado con seguridad. TIME es la - cantidad de tiempo que el programa ha estado corriendo en el - CPU—esto no es usualmente el tiempo transcurrido desde que + organizada en columnas. PID + es el ID de proceso anteriormente expuesto. Los PIDs se asignan + partiendo de 1, hasta 99999, y dan la vuelta de regreso al + principio cuando se terminan los números. La columna + TT muestra el tty en el que el programa se está + ejecutando, y podemos ignorarlo tranquilamente por el momento. + STAT muestra el estado del programa, y + también 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 mayoría de los - programas pasan mucho tiempo esperando que sucedan cosas antes - de que necesiten gastar tiempo en el CPU. Finalmente, - COMMAND es la línea de comando que fué - utilizada para ejecutar el programa. - - &man.ps.1; soporta un número de opciones diferentes para - cambiar la información que es desplegada. Uno de los conjuntos - más útiles es auxww. + programas pasan mucho tiempo esperando antes + de que necesiten gastar tiempo en la CPU. Finalmente, + COMMAND es la línea de órdenes que + se empleó para ejecutar el programa. + + &man.ps.1; admite muchas opciones diferentes acerca de la + información que se desea ver. Uno de los conjuntos + más útiles es auxww. despliega información acerca de todos los procesos - ejecutándose, no solamente los suyos. + ejecutándose, no solamente los suyos. despliega el nombre de usuario del propietario del proceso, así - como el uso de memoria. despliega información - acerca de los procesos daemon y provoca que - &man.ps.1; despliegue la línea de comando completa, en lugar - de truncarla cuando es muy larga para caber en la pantalla. + como el uso de memoria. despliega información + acerca de los procesos dæmon y hace que + &man.ps.1; despliegue la línea de órdenes completa, en lugar + de truncarla cuando es demasiado larga para caber en la pantalla. - La salida de &man.top.1; es similar. Una sesión de ejemplo - se ve como esta: + La salida de &man.top.1; es similar. Veamos un ejemplo: + &prompt.user; 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 USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ... La salida está dividida en dos secciones. La cabecera (las primeras cinco líneas) muestra el PID del último proceso - en correr, la carga promedio del sistema (la cual es una medida de que - tan ocupado está el sistema), el uptime del sistema (tiempo - desde el último reinicio) y la hora actual. Las otras cifras - en la cabecera se relacionan con cuantos procesos hay en ejecución - (47 en este caso), cuanto se está utilizando de memoria y espacio - de intercambio (swap), y cuando tiempo el sistema está gastando - en diferentes estados de CPU. - - Abajo hay una serie de columnas conteniendo información - similar a la salida de &man.ps.1;. De manera similar usted puede + 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 cuántos procesos hay en + ejecución en el sistema (47 en este caso), cuánta + memoria y espacio de intercambio (swap) está en uso, y + cuánto tiempo está el sistema en diferentes estados de + CPU. + + Más abajo hay una serie de columnas con información + similar a la salida de &man.ps.1;. Igual que antes, puede usted ver el PID, el nombre de usuario, la cantidad de tiempo de CPU - tomada y el comando que fué ejecutado. &man.top.1; - también muestra por omisión la cantidad de espacio - de memoria tomada por el proceso. Esto está dividido en dos - columnas, una para el tamaño total y una para tamaño - residente—tamaño total es cuanta memoria la aplicación - ha necesitado y el tamaño residente es cuanto está - siendo utilizado realmente en ese momento. En este ejemplo puede ver - que &netscape; ha requerido casi - 30 MB de RAM, pero actualmente solo está usando + en uso y la orden que se ejecutó. &man.top.1; + también mostrará por defecto la cantidad de espacio + de memoria que emplea cada proceso. Esto está dividido en dos + columnas, una para el tamaño total y otra para el tamaño + residente (el tamaño total es cuánta memoria + ha necesitado la aplicación y el tamaño residente + es cuánta 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. - &man.top.1; automaticamente actualiza este desplegado cada - dos segundos; esto puede cambiarse con la opción . + &man.top.1; actualiza automáticamente el listado cada + dos segundos, pero este lapso puede cambiarse mediante la + opción . - Daemons, señales y matar procesos + Dæmons, señales y cómo matar procesos - cuando usted corre un editor es fácil controlar el editor, - decirle que cargue archivos y demás. Usted puede hacer esto - porque el editor brinda facilidades para hacerlo, y porque el editor - está pegado a una terminal. Algunos + cuando ejecuta un editor es fácil controlarlo, + decirle que cargue ficheros y demás. Puede hacerse + porque el editor permite ese control, y porque el editor + depende de una terminal. Algunos programas no están diseñados para ser ejecutados con entradas continuas por parte del usuario, así que se desconectan - de la terminal a la primera oportunidad. Por ejemplo, un servidor - web pasa todo el día respondiendo peticiones web, normalmente - no necesita ninguna entrada de su parte. Los programas que transportan + de la terminal a la primera oportunidad. Por ejemplo, un servidor + web pasa todo el día respondiendo peticiones web, y normalmente + no necesita ninguna entrada de su parte. Los programas que transportan correo electrónico de un sitio a otro son otro ejemplo de esta clase de aplicación. - Llamamos a estos programas daemons. Daemons - eran personajes de la mitología griega; no eran ni buenos ni - malos, eran pequeños espíritus sirvientes que, en gran - medida, hicieron cosas útiles por la humanidad. Muy parecido - a como los servidores web y servidores de correo de hoy hacen cosas - útiles. Este es el por qué la mascota BSD ha sido, desde - hace mucho tiempo, el demonio de imagen alegre con tenis y un tridente. - - Existe un acuerdo de nombrar programas que normalmente corren - como daemons con una d al final. BIND - es el daemon de nombres de internet de Berkeley (y el programa - que en realidad ejecuta es llamado named), el - programa servidor de web Apache es - llamado httpd, el daemon de spool de impresora de - línea es lpd y así sucesivamente. - Este es un acuerdo, no una regla pura y dura; por ejemplo, el - daemon principal de correo para la aplicación Sendmail - es llamdo sendmail, y no maild, - como podría imaginarse. - - Algunas veces necesitará comunicarse con un proceso daemon. - Estas comunicaciones son llamadas señales, - y se puede comunicar con un daemon (o con cualquier otro proceso - ejecutándose) mandándole una señal. Existe un - número de señales diferentes que puede mandar—algunas + Llamamos a estos programas dæmons. + Los Dæmons eran personajes de la mitología griega; + no eran ni buenos ni malos, eran pequeños espíritus + sirvientes que, en gran medida, hacían cosas útiles por + la humanidad. Algo muy parecido a cómo los servidores web y + los servidores de correo hacen hoy día tantas cosas + útiles para nosotros. Por eso, desde hace mucho tiempo, la + mascota de BSD es ese dæmon de aspecto tan ufano con su tridente + y su cómodo calzado deportivo. + + Hay una norma según la cual se da nombre a los programas que + suelen ejecutarse como dæmons con una d final. + BIND es el dæmon de nombres de + Berkeley (y el programa que en realidad se ejecuta se llama + named); el servidor web + Apache se llama + httpd, el dæmon de spool de + impresora de línea es lpd y así + sucesivamente. Se trata de un acuerdo, no una ley férrea; por + ejemplo el dæmon principal de correo de + Sendmail se llama + sendmail, y no maild, + como podría suponerse visto lo precedente. + + Algunas veces necesitará comunicarse con un dæmon. + Estas comunicaciones se denominan señales; + es posible comunicarse con un dæmon (o con cualquier otro proceso + ejecutándose) mandándole una señal. Existen + diversos tipos de señales diferentes que puede mandar (algunas de ellas tienen un significado especial, otras son interpretadas por la aplicación, y la documentación de la aplicación - le dirá como interpreta la señal esa aplicación. - Solo puede enviar una señal a un proceso del que usted es el - propietario. Si manda una señal a un proceso de alguien más - con &man.kill.1; o &man.kill.2; el permiso será denegado. + le dirá como interpreta la señal esa aplicación). + Solo puede enviar una señal a un proceso del que sea usted + propietario. Si manda una señal a un proceso de otro usuario + con &man.kill.1; o &man.kill.2; verá un mensaje del sistema en + el que se le comunica que no tiene permiso para hacer tal cosa. La excepción a esto es el usuario root, - que puede mandar señales a los procesos de todos. + que puede mandar señales a los procesos de cualquier usuario del + sistema. FreeBSD también enviará señales de - aplicación en algunos casos. Si una aplicación - está mal escrita, y trata de accesar memoria que no se - supone que accese, FreeBSD manda al proceso la señal + aplicación en determinados casos. Si una aplicación + está mal escrita, y trata de acceder a memoria a la que no + está previsto que acceda, &os; manda al proceso la señal Violación de segmento - (SIGSEGV). Si una aplicación ha utilizado - la llamada de sistema &man.alarm.3; para ser alertada despues - de que un periodo de tiempo haya transcurrido entonces se le + (SIGSEGV). Si una aplicación ha utilizado + la llamada de sistema &man.alarm.3; para ser avisada después + de que un periodo de tiempo haya transcurrido, se le mandará la señal de alarma (SIGALRM), y así sucesivamente. - Dos señales pueden usarse para detener un proceso, - SIGTERM y SIGKILL. + Hay dos señales que pueden usarse para detener un proceso, + SIGTERM y SIGKILL. SIGTERM es la manera amable de matar un proceso; el proceso puede recibir la señal, darse cuenta que usted quiere que se apague, cerrar cualquier - archivo de log que pueda tener abierto y generalmente terminar - cualquier cosas que esté realizando en ese momento antes - de apagarse. En algunos casos un proceso puede incluso ignorar - a SIGTERM si se encuentra en medio de una + fichero de log que pueda tener abierto y generalmente terminar + cualquier tarea que esté realizando en ese momento antes + de apagarse. En algunos casos un proceso puede incluso ignorar + SIGTERM si se encuentra inmerso en una tarea que no puede ser interrumpida. - SIGKILL no puede ser ignorada por un proceso. + Por el contrario, un proceso no puede ignorar una señal + SIGKILL. Esta es la señal No me importa lo que estás - haciendo, detente ahora mismo. Si manda un SIGKILL - a un proceso, entonces FreeBSD detendrá ese proceso ahí - y en ese momento - No del todo cierto—existen algunas cosas que no pueden - ser interrumpidas. Por ejemplo, si el proceso está tratando - de leer desde un archivo que está en otra computadora de - la red, y la otra computadora no está disponible por + haciendo, detente ahora mismo. Si manda un + SIGKILL a un proceso &os; detendrá ese + proceso inmediatamente. + Esto no es del todo cierto (ciertas cosas no pueden + ser interrumpidas. Por ejemplo, si el proceso está tratando + de leer desde un fichero que está en otro sistema de + la red, y el otro sistema no está disponible por alguna razón (por estar apagada, o que la red tenga un fallo), - entonces el proceso se dice que es ininterrumpible. - Eventualmente al proceso se le acabará el tiempo de - espera, tipicamente despues de dos minutos. Tan pronto como esto - ocurra el proceso será terminado. + tenemos un caso de lo que llamamos + proceso ininterrumpible. + Más tarde, al proceso se le acabará el tiempo de + espera, generalmente pasados dos minutos. Tan pronto como esto + ocurra el proceso será liquidado. . - Las otras señales que tal vez quiera utilizar son + Otras señales que puede usar: SIGHUP, SIGUSR1 y - SIGUSR2. Estas son señales de propósito + SIGUSR2. Son señales de propósito general, y aplicaciones diferentes pueden hacer cosas diferentes - cuando se les envía. + cuando se utilicen. - Suponga que ha cambiado su archivo de configuración de su - servidor web—tal vez le gustaría decirle al servidor - web que re-lea su configuración. Podría detener y - reiniciar httpd, pero esto resultaría en + Suponga que ha cambiado el fichero de configuración de su + servidor web; parece un buen momento para decirle al servidor + web que lea y aplique la configuración. Podría detener y + reiniciar httpd, pero esto implicaría un período breve de suspensión del servicio de su - servidor web, lo cual puede ser indeseable. La mayoría de - los daemons están escritos para responder a la señal - SIGHUP releyendo su archivo de configuración. - Así que en lugar de matar y reiniciar httpd - le podría mandar la señal SIGHUP. - Debido a que no hay una manera estándar para responder a estas - señales, diferentes daemons tendrán diferente comportamiento, - así que asegúrese de leer la documentación para - el daemon en cuestión. + servidor web, lo cual puede no ser asumible. La mayoría de + los dæmons fueron creados pensando que fueran capaces de + responder a la señal + SIGHUP releyendo su fichero de configuración. + En lugar de matar y reiniciar httpd + le podría mandar la señal SIGHUP. + Dado que no hay una manera estándar para responder a estas + señales, diferentes dæmons tendrán diferente + comportamiento, así que asegúrese de leer la + documentación del dæmon en cuestión. - Las señales son enviadas utilizando el comando &man.kill.1;, - como lo muestra este ejemplo. + Las señales se envian mediante &man.kill.1;, + como puede verse en el siguiente ejemplo. - Enviando una señal a un proceso + Envío de una señal a un proceso Este ejemplo muestra como enviar una señal a - &man.inetd.8;. El archivo de configuración de - inetd es + &man.inetd.8;. El fichero de configuración de + inetd es /etc/inetd.conf e inetd - re-leerá este archivo de configuración cuando + releerá dicho fichero de configuración cuando se le envíe un SIGHUP. - Encuentre el ID de proceso del proceso al que quiere - enviarle la señal. Haga esto usando &man.ps.1; y - &man.grep.1;. El comando &man.grep.1; es utilizado para buscar - a través de la salida, buscando la cadena que se - especifique. Este comando es ejecutado como un usuario - normal y &man.inetd.8; es ejecutado como root, - así que las opciones se le deben - proporcionar a &man.ps.1;. + Identifique el ID de proceso del proceso al que quiere + enviarle la señal mediante &man.ps.1; y + &man.grep.1;. &man.grep.1; se usa para buscar cadenas de + texto de su elección en la salida estándar. + Puede ejecutarse como un usuario normal, mientras que + &man.inetd.8; se ejecuta como root, + así que debe pasarle los parámetros + a &man.ps.1;. &prompt.user; ps -ax | grep inetd 198 ?? IWs 0:00.00 inetd -wW - Entonces el PID de &man.inetd.8; es 198. En algunos casos - el comando grep inetd también - puede salir en esta salida. Esto se debe a la manera en que - &man.ps.1; tiene que encontrar la lista de procesos + Vemos que el PID de &man.inetd.8; es 198. En algunos casos + grep inetd también + puede aparecer en esta salida. Esto se debe a la manera en que + &man.ps.1; tiene que encontrar la lista de procesos ejecutándose. - Utilice &man.kill.1; para enviar la señal. Debido a que - &man.inetd.8; está siendo ejecutado por root - usted debe usar primero &man.su.1; para volverse root. + Utilice &man.kill.1; para enviar la señal. Debido a que + &man.inetd.8; está siendo ejecutado por + root tendrá que usar primero + &man.su.1; para volverse root. &prompt.user; su Password: &prompt.root; /bin/kill -s HUP 198 - En concordancia con la mayoría de los comandos &unix;, - &man.kill.1; no imprimirá ninguna salida si es exitoso. + Del mismo modo que la mayoría de órdenes &unix; + &man.kill.1; no imprimirá ninguna salida si ha funcionado + bien. Si envía una señal a un proceso del que no es el propietario entonces verá kill: PID: Operation not permitted. Si usted no teclea bien el PID puede enviar la señal a un proceso distinto, lo cual puede ser malo, o, si tiene suerte, - habrá enviado la señal a un proceso que no est6aacute; - en uso actualmente, y verá kill: + habrá enviado la señal a un proceso que no está + en uso, y verá kill: PID: No such process. ¿Por qué utilizar <command>/bin/kill</command>? - Muchos shells brindan el comando kill - como un comando incluido; esto es, el shell mandará + Muchos shells incorporan su propio kill; + esto es, el shell mandará la señal directamente, en lugar de ejecutar - /bin/kill. Esto puede ser muy útil, + /bin/kill. Esto puede ser muy útil, pero diferentes shells tienen diferentes sintaxis para - especificar el nombre de la señal que envía. En - lugar de tratar de aprederse todas ellas, puede ser más - simple solamente usar el comando + especificar el nombre de la señal que envía. En + lugar de tratar de aprederse todas ellas, es más + fácil usar /bin/kill ... - directamente. + sea la que sea la shell que prefiera usar. El envío de otras señales es muy similar, solamente sustituya TERM o KILL - en la línea de comando según sea necesario. + en la línea de órdenes según sea necesario. - Matar procesos aleatorios en el sistema puede ser una mala - idea. En particular, &man.init.8;, ID de proceso 1, es muy + Matar procesos aleatorios en el sistema es una mala + idea. En particular, &man.init.8;, ID de proceso 1, es muy especial. Ejecutar /bin/kill -s KILL 1 es - una manera rápida de apagar su sistema. Siempre - revise doblemente los argumentos con los que ejecuta &man.kill.1; - antes de presionar Enter. + una manera rápida de apagar su sistema. + Siempre + revise dos veces los argumentos con los que ejecuta &man.kill.1; + antes de pulsar Enter. Shells shells - línea de comando - - En FreeBSD, mucho del trabajo diario es realizado en una - interfaz de línea de comandos llamada shell. El trabajo - principal del shell es tomar comandos de un canal de entrada - y ejecutarlos. Muchos shells también tienen funciones - integradas para ayudar con las tareas diarias como manipulación - de archivos, manejo de archivos con expresiones regulares, - edición de línea de comando, macros de comandos y - variables de entorno. - FreeBSD viene con un conjunto de shells, como sh, - el shell Bourne y tcsh, el shell C mejorado. - Hay muchos otros shells disponibles desde la colección de - ports de FreeBSD, tales como zsh y + línea de órdenes + + En &os; gran parte del trabajo diario se hace en una + interfaz de línea de órdenes llamada shell. El trabajo + principal de la shell es ir recibiendo órdenes mediante un + canal de entrada y ejecutarlos. + Muchas shells también tienen funciones + integradas para ayudar con las tareas diarias como manipulación + de ficheros, gestión de archivos con expresiones regulares, + edición en la propia línea de órdenes, macros de + órdenes y variables de entorno. + &os; incluye diversas shells, como sh, + el shell Bourne y tcsh, el shell C mejorado. + Hay muchas otras shells disponibles en la colección de + ports de FreeBSD, como zsh y bash. ¿Qué shell usar? es realmente una cuestión - de gustos. Si es un programador de C se puede sentir más - cómodo con un shell tipo C, como tcsh. + 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 línea - de comandos de &unix; puede probar con bash. - El punto es que cada shell posee unas propiedades únicas que + 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 - tiene una opción sobre el shell a usar. - - Una de las propiedades comunes de un shell es que completa los - nombres de archivo. Dada la introducción de las primeras letras - de un comando o del nombre de un archivo, se puede hacer que el shell - complete automaticamente el resto del comando o nombre de archivo - pulsando la tecla Tab en el teclado. - Aquí está un ejemplo. Suponga que tiene dos archivos - llamados foobar y foo.bar. - Usted quiere borrar foo.bar. Lo que + puede usted elegir qué shell usar. + + Una de las propiedades comunes de las shell es que completan los + nombres de fichero. Una vez que ha introducido las primeras letras + de una orden o del nombre de un fichero, se puede hacer que la shell + complete automáticamente el resto de la orden o nombre de fichero + pulsando la tecla Tab. + Veamos un ejemplo. Suponga que tiene dos ficheros + llamados talcual y tal.cual. + Usted quiere borrar tal.cual. Lo que habría que teclear es: - rm fo[Tab].[Tab]. - - El shell imprimiría rm - foo[BEEP].bar. - - El [BEEP] es la campana de la consola, la cual es el shell - diciéndome que no pudo completar totalmente el nombre - de archivo porque hay más de una coincidencia. - Tanto foobar como foo.bar - inician con fo, pero solo se pudo completar - hasta foo. Si se teclea ., - y de nuevo Tab, entonces el shell es capaz de - introducir el resto del nombre de archivo por usted. + rm ta[Tab].[Tab]. + + La shell mostraría en pantalla rm + fo[BIP].cual. + + El [BIP] es la campana de la consola, es decir, la shell + está diciéndome que no pudo completar totalmente el nombre + de fichero porque hay más de una coincidencia. + Tanto talcual como tal.cual + comienzan por ta, pero solo se pudo completar + hasta tal. Si se teclea ., + y de nuevo Tab, entonces la shell es capaz de + añadir el resto del nombre de fichero. variables de entorno - Otra función del shell son las variables de entorno. + Otra función 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 leído - por cualquier programa invocado por el shell y, por lo tanto, - contiene mucha configuración de programas. Aquí hay - una lista de las variables de entorno más comunes y su + en el espacio de entorno del shell. Este espacio puede ser leído + por cualquier programa invocado por la shell y, por lo tanto, + contiene mucha configuración de programas. Esta es una lista + de las variables de entorno más comunes y su significado: variables de entorno Variable Descripción USER - Nombre de usuario actual en el sistema. + Nombre de usuario en el sistema. PATH Lista de directorios, separados por punto y coma, en los que - se busca ejecutables. + se buscan ejecutables. DISPLAY Nombre de red de la pantalla X11 a la que conectarse, si está disponible. SHELL - El shell actual. + La shell actual. TERM El nombre de la terminal del usuario. Se usa para determinar - las capacidades de la terminal. + las características de la terminal. TERMCAP Base de datos donde encontrar los códigos de escape necesarios para realizar diferentes funciones en la terminal. OSTYPE - Tipo de sistema operativo. Por ejemplo, FreeBSD. + Tipo de sistema operativo. Por ejemplo, &os;. MACHTYPE - Arquitectura del CPU en el que se está ejecutando + Arquitectura de CPU en la que se está ejecutando el sistema. EDITOR El editor de texto preferido por el usuario. PAGER El paginador de texto preferido por el usuario. MANPATH Lista de directorios separados por punto y coma - en los que se busca páginas de manual. + en los que se buscan páginas de manual. - Bourne shells + Shells Bourne Establecer una variable de entorno difiere ligeramente - de shell a shell. Por ejemplo, en los shells al estilo C + de shell a shell. Por ejemplo, en las shells al estilo C como tcsh y csh, se usaría setenv para establecer - las variables de entorno. Bajo shells Bourne como + las variables de entorno. Bajo shells Bourne como sh y bash, se usaría export para establecer - las variables de entorno actuales. Por ejemplo, para + las variables de entorno actuales. Por ejemplo, para establecer o modificar la variable de entorno - EDITOR, bajo csh o - tcsh un comando como este establece - EDITOR a + EDITOR (bajo csh o + tcsh) la siguiente orden establece + EDITOR como /usr/local/bin/emacs: &prompt.user; setenv EDITOR /usr/local/bin/emacs Bajo shells Bourne: &prompt.user; export EDITOR="/usr/local/bin/emacs" - También se puede hacer que la mayoría de los shells - muestren el contenido de una variable de entorno situando el - carácter $ delante del nombre de la variable - desde la línea de comandos. Por ejemplo, echo $TERM - mostrará cualquiera que sea el valor que se le - haya establecido a $TERM, porque el shell expande el valor - de $TERM y se lo pasa al programa echo. - - Los shells manejan muchos caracteres especiales, llamados - meta-caracteres, como representaciones especiales de datos. El más + También se puede hacer que la mayoría de las shells + muestren el contenido de una variable de entorno situando el + carácter $ delante del nombre de la variable + en la línea 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 más común es el caracter *, que representa - cualquier número de caracteres en un nombre de archivo. Estos - meta-caracteres especiales se pueden usar para la expansión de - nombres de archivos. Por ejemplo, teclear echo * es + cualquier número de caracteres en un nombre de fichero. Estos + metacaracteres especiales se pueden usar para la expansión de + nombres de fichero. Por ejemplo, teclear echo * es casi lo mismo que introducir ls porque el shell - toma todos los archivos que coinciden con * y se - los pone en la línea de comandos para que echo - los vea. + toma todos los ficheros que coinciden con * y se + los pone en la línea de órdenes para que + echo los vea. - Para evitar que el shell interprete estos caracteres especiales, - se pueden escapar del shell anteponiéndoles un caracter - diagonal (\). echo $TERM imprime - a qué está configurada su terminal. - echo \$TERM imprime $TERM como - es. + Para evitar que la shell interprete estos caracteres especiales + se pueden escapar de la shell anteponiéndoles una contrabarra + (\). echo $TERM imprime + el nombre de terminal que esté usando. + echo \$TERM imprime $TERM, + literalmente. - Cambiando su shell + Cómo cambiar su shell - La manera más fácil de cambiar de shell es usando - el comando chsh. Ejecutando chsh + La manera más fácil de cambiar de shell es + mediante chsh. chsh le colocará dentro del editor que esté configurado en - la variable de entorno EDITOR; no está - configurada, seá colocado en vi. Cambie - la línea Shell: para que concuerde. + la variable de entorno EDITOR; si no la ha modificado, + el sistema ejecutará vi, el editor por + defecto. Cambie la línea Shell: según + prefiera. También se le puede suministrar a chsh - la opción ; ésto establecerá el - shell por usted, sin necesidad de entrar en el editor de texto. - Por ejemplo, si se desea cambiar el shell a bash, - lo siguiente realizará el ajuste: + la opción ; ésto establecerá la + shell sin necesidad de entrar en el editor de texto. + Si por ejemplo quiere que bash sea su shell por + defecto puede configurarlo del siguiente modo: &prompt.user; chsh -s /usr/local/bin/bash Ejecutar chsh sin parámetros y - editar el shell desde ahí también funciona. + editar la shell desde ahí también funciona. - El shell que se desee usar debe estar - presente en el archivo /etc/shells. - Si se ha instalado un shell desde la - colección de ports, entonces - esto ya debió hacerse por usted. Si ha instalado - el shell manualmente, se debe realizar el cambio. + La shell que se desee usar debe estar + incluida en /etc/shells. + Si se ha instalado una shell desde la + colección de ports + esto deberí estar hecho automáticamente. Si ha + instalado la shell manualmente, tendrá usted que + realizar dicha modificación de + /etc/shells. - Por ejemplo, si se instaló manualmente bash - y lo colocó en /usr/local/bin, - debería hacer: + Por ejemplo, si instaló manualmente bash + y lo ubicó en /usr/local/bin, + debería hacer lo siguiente: &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells - Y entonces volver a ejecutar chsh. + Y volver a ejecutar chsh. Editores de texto editores de texto editores - Gran parte de la configuración de FreeBSD se realiza - modificando archivos de texto. A causa de esto, es una buena idea - familiarizarse con un editor de texto. FreeBSD viene con unos cuantos - como parte del sistema base y muchos más se encuentran - disponibles en la colección de ports. + Gran parte de la configuración de &os; se realiza + modificando ficheros de texto. Por esta razón le conviene + familiarizarse con un editor de texto. &os; viene con unos cuantos + como parte del sistema base y encontrará muchos más + en la colección de ports. ee editors ee El editor de textos más sencillo y fácil de aprender es uno llamado ee, cuyo nombre - proviene del inglés "easy editor" (editor fácil). + proviene del inglés "easy editor" (editor fácil). Para iniciar ee se debe teclear en la - línea de comandos - ee nombre-de-archivo - donde nombre-de-archivo es el nombre - del archivo a ser editado. Por ejemplo, para editar /etc/rc.conf, - teclée ee /etc/rc.conf. Una vez dentro - de ee, todos los comandos para manipular - las funciones del editor están listadas en la parte - superior de la pantalla. El caracter ^ representa - la tecla Ctrl del teclado, por lo tanto - ^e se expande a la combinación de teclas + línea de órdenes + ee nombre-de-fichero, + donde nombre-de-fichero es el nombre + del fichero que se quiere editar. Por ejemplo, para editar + /etc/rc.conf + teclée ee /etc/rc.conf. Una vez dentro + de ee todas las órdenes para manipular + las funciones del editor están listadas en la parte + superior de la pantalla. El caracter ^ representa + la tecla Ctrl del teclado, por lo tanto + ^e se expande a la combinación de teclas Ctrle. - Para abandonar ee, presione la tecla - Esc, elegir abandonar (leave) el editor. + Para salir de ee, pulse la tecla + Esc y elija abandonar (leave) el editor. El editor preguntará entonces si se desean conservar los - cambios si el archivo hubiera sido modificado. + cambios si el fichero hubiera sido modificado. vi editors vi emacs editors emacs FreeBSD viene también con editores de texto mucho más potentes, como vi, como parte del - sistema base, mientras que otros editores, como Emacs + sistema base, mientras que otros editores, como + Emacs y vim, son parte de la colección - de ports de FreeBSD - (editors/emacs y editors/vim). + de ports de &os; + (editors/emacs y editors/vim). Estos editores ofrecen mucha más funcionalidad y poder - a la expensa de ser un poco más complicados de aprender. + con la desventaja de ser un poco más complicados de aprender a + manejar. De cualquier manera si planea hacer mucho trabajo de edición - de texto, aprender un editor de texto más poderoso + de texto, aprender a usar un editor de texto más poderoso como vim o Emacs le ahorrará más tiempo a la larga. Dispositivos y nodos de dispositivos Un dispositivo es un término utilizado - mayormente para actividades relacionadas con hardware - en un sistema, incluyendo discos, impresoras, tarjetas - gráficas y teclados. Cuando FreeBSD arranca, la - mayoría de lo que FreeBSD despliega son dispositivos - siendo detectados. Puede mirar a través de los - mensajes de arranque de nuevo visualizando + la mayoría de las veces para actividades relacionadas + con hardware del sistema, como discos, impresoras, tarjetas + gráficas y teclados. Cuando &os; arranca, la + mayoría de lo que &os; despliega son dispositivos + en el momento de ser detectados. Si lo desea, puede volver a + ver todos los mensajes que el sistema emite durante el arranque + consultando /var/run/dmesg.boot. Por ejemplo, acd0 es la primera unidad CDROM IDE, mientras que kbd0 representa el teclado. - La mayoría de estos dispositivos en un sistema - operativo &unix; deben ser accesados a través de - archivos especiales llamados nodos de dispositivo, los - cuales se encuentran localizados en el directorio + En un sistema operativo &unix;, debe accederse a la mayoría + de estos dispositivos a través de ficheros especiales llamados + nodos de dispositivo, que se encuentran en el directorio /dev. - Creando nodos de dispositivo + Creación de nodos de dispositivo Cuando agregue un nuevo dispositivo a su sistema, o compile soporte para dispositivos adicionales, puede que - necesite crear uno o más nodos de dispositivo para - los nuevos dispositivos. + necesite crear uno o más nodos de dispositivo. + Script MAKEDEV En sistemas sin DEVFS (esto concierne a todas las versiones anteriores a FreeBSD 5.0), los - nodos de dispositivo son creados utilizando el script - &man.MAKEDEV.8; como se muestra abajo: + nodos de dispositivo son creados utilizando + &man.MAKEDEV.8; como puede verse en el siguiente + ejemplo: &prompt.root; cd /dev &prompt.root; sh MAKEDEV ad1 Este ejemplo debe crear el nodo de dispositivo apropiado para la segunda unidad IDE instalada. - <literal>DEVFS</literal> Dispositivo de sistema de archivos (DEVice File System) + <literal>DEVFS</literal> Dispositivo de sistema de ficheros (DEVice File System) - El dispositivo de sistema de archivos, o DEVFS, - brinda acceso a dispositivos del espacio de nombres del kernel en el - espacio de nombres del sistema de archivos global. + El dispositivo de sistema de ficheros, o DEVFS, + ofrece acceso a dispositivos del espacio de nombres del kernel en el + espacio de nombres del sistema de ficheros global. En lugar de tener que crear y modificar nodos de dispositivo, - DEVFS mantiene este sistema de archivos en - particular por usted. + DEVFS se encarga del mantenimiento + dinámico de este sistema de fichero. - Vea la página de manual &man.devfs.5; - para mayor información. + Consulte &man.devfs.5; si quiere más + información. - DEVFS es utilizado por defecto en FreeBSD 5.0 y - posteriores. + DEVFS se utiliza por defecto en + FreeBSD 5.0 y siguientes. Formatos binarios - Para entender porque &os; utiliza el formato &man.elf.5;, - primero debe conocer un poco acerca de los tres formatos - de ejecutables dominantes para &unix;: + Para entender por qué &os; utiliza el formato &man.elf.5;, + primero debe saber unas cuantas cosas sobre los tres formatos + de ejecutables dominantes en &unix;: &man.a.out.5; El formato objeto de &unix; más antiguo y clásico. Utiliza una cabecera corta y compacta con un número mágico al - inicio que es usado frecuentemente para caracterizar el - formato (vea &man.a.out.5; para más detalles). + inicio que es usado frecuentemente para identificar el + formato (vea &man.a.out.5; para más información). Contiene tres segmentos cargados: .text, .data, y .bss además de una tabla de símbolos y una tabla - de cadena. + de cadena (strings). COFF - El formato objeto de SVR3. La cabecera ahora consiste - de una sección de tabla, para que pueda tener más - y no solo las secciones .text, .data, y .bss. + El formato objeto de SVR3. La cabecera consiste + en una tabla de sección, para que pueda ntener más + contenido además de las secciones .text, .data, + y .bss. &man.elf.5; - El sucesor de COFF, presentando - secciones múltiples y posibles valores de 32-bits - o 64-bits. Una gran desventaja: ELF + El sucesor de COFF; dispone de + secciones múltiples y valores posibles de 32-bits + o 64-bits. Una gran desventaja: ELF fué también diseñado asumiendo que solamente existiría una ABI por cada arquitectura - de sistema. Esa asumción es en realidad bastante - incorrecta, e incluso ni en el mundo comercial SYSV (el - cual tiene al menos tres ABIs: SVR4, Solaris, SCO) se - mantiene como verdadera. + de sistema. Esa suposición es en realidad bastante + incorrecta y 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 brindando una utilidad para marcar + &os; trata de solucionar este problema de alguna + manera ofreciendo una herramienta para marcar un ejecutable ELF conocido con - información acerca de con que ABI cumple. Vea la - página de manual de &man.brandelf.1; para mayor - información. + información acerca de la ABI con la que funciona. + Si quiere más información consulte + la página de manual de &man.brandelf.1;. + - FreeBSD viene del campo clásico y ha + &os; viene del campo clásico y ha utilizado el formato &man.a.out.5;, una tecnología usada - y probada a través demuchas generaciones de liberaciones - BSD, hasta el inicio de la rama 3.X. Aunque era posible - construir y ejecutar binarios nativos ELF - (y kernels) en un sistema FreeBSD desde algún tiempo - antes de eso, FreeBSD inicialmente resistió el - empujón para cambiar a ELF - como el formato por omisión. ¿Por qué? bueno, cuando - el campo Linux realizó su dolorosa transición a - ELF, no fué tanto para escapar del - formato ejecutable a.out como lo fué de - su mecanismo de librerías compartidas inflexible basado en salto-tabla, - el cual hacía la construcción de librerías - compartidas muy difícil para proveedores y desarrolladores - por igual. Ya que las herramientas ELF + 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 &os; desde algún tiempo + antes de esto, &os; 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 transición a + ELF no fué tanto por huir del formato + a.out como por su inflexible mecanismo de + bibliotecas compartidas basado en tablas de saltos, que + hacía igual de difícil la construcción de + bibliotecas compartidas tanto para los desarrolladores como para + los proveedores. + Ya que las herramientas ELF disponibles ofrecían una solución al problema de - librerías compartidas y eran vistas generalmente como - la manera de avanzar de todas maneras, el costo + las bibliotecas compartidas y eran vistas por mucha gente como + la manera de avanzar, el costo de migración fué aceptado como necesario y se - realizó la transición. El mecanismo de - librerías compartidas de FreeBSD está basado de - manera más cercana al estilo de mecanismo de - librerías compartidas de &sunos; de Sun y, como tal, es + realizó la transición. El mecanismo de + bibliotecas compartidas de &os; está diseñado de + manera más 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? + Entonces, ¿por qué existen tantos formatos + diferentes? - En el tenue, oscuro pasado, existía hardware simple. - Este hardware simple soportaba un sistema pequeño, simple. - a.out era completamente adecuado para el trabajo - de representar binarios en este sistema simple (un PDP-11). A + En un tiempo muy, muy lejano, existía hardware simple. + Este hardware tan simple soportaba un sistema pequeño, simple. + a.out era idóneo 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 suficiente para los primeros portes de &unix; a arquitecturas como 68k de Motorola, VAXen, etc. Entonces algún brillante ingeniero de hardware decidió - que si el podía forzar al software a realizar algunos trucos - sucios, entonces podría rasurar algunas puertas del - diseño y permitirle al centro de su CPU correr más - rapidamente. Aunque estaba hecho para trabajar con este nuevo - tipo de hardware (conocido estos días como RISC), + que si podía forzar al software a hacer algunos trucos + sucios podría sortear ciertos obstáculos del + diseño y permitir al núcleo de su CPU correr más + rápidamente. Aunque estaba hecho para trabajar con este nuevo + tipo de hardware (conocido entonces como RISC), a.out no estaba bien adaptado para este hardware, así que varios formatos fueron desarrollados - para obtener un mejor desempeño de este hardware que el + para obtener un mejor rendimiento de este hardware que el limitado, simple formato a.out podría - ofrecer. Cosas como COFF, ECOFF - y algunos otros oscuros fueron inventados y sus limitaciones - fueron exploradas antes de que las cosas parecieran decidirse en + ofrecer. Así fué cómo COFF, + ECOFF y algunos otros formatos más + extraños fueron inventados y sus limitaciones exploradas hasta + que se fué llegando a la elección en favor de ELF. - Además, el tamaño de los programas estaban + Además, el tamaño de los programas estaba volviendose gigantes y los discos (y la memoria física) - eran relativamente pequeños así que el concepto - de una librería compartida nació. El sistema - VM también se volvió más sofisticado. + eran relativamente pequeños, así que el concepto + de una biblioteca compartida nació. El sistema + VM también se volvió más sofisticado. Mientras cada uno de estos avances fué hecho utilizando - el formato a.out, su utilidad era reducida - más y más con cada opción nueva. Además, - la gente quería cargar dinamicamente cosas al momento - de ejecución, o descartar partes de su programa despues - que el código de inicio se ejecutara para salvar memoria - del núcleo y espacio de swap. Los lenguajes se volvieron - más sofisticados y la gente quería que el código - fuera llamado antes que main de manera automática. Muchos - hacks fueron hechos al formato a.out para - permitir que todas estas cosas sucedieran, y basicamente - funcionaron por un tiempo. Con el tiempo, a.out - no estaba para manejar todos estos problemas sin incrementar - la carga y complejidad en el código. Mientras ELF - resolvía muchos de estos problemas, hubiera sido doloroso - cambiar del sistema que basicamente funcionaba. Así que + el formato a.out, su utilidad se iba reduciendo + paulatinamente con cada nueva opción. Además, + la gente quería cargar cosas dinámicamente en el momento + de ejecución, o descartar partes de su programa después de + que el código de inicio se ejecutara para ahorrar memoria + principal y espacio de swap. Al volverse más sofisticados los + lenguajes, la gente empezó a ver la necesidad de introducir + código antes del inicio del programa de forma automática. + 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 + no estaba para solucionar todos estos problemas sin incrementar + la carga y complejidad del código. Aunque ELF + resolvía muchos de estos problemas, en ese momento hubiera sido + terrible dejar de lado un sistema que sencillamente funcionaba, + así que ELF tuvo que esperar hasta que fué más doloroso permanecer con a.out que migrar a ELF. - De todas maneras, al paso del tiempo, las herramientas + De todas maneras, con el paso del tiempo, las herramientas de construcción de las que FreeBSD derivó - sus herramientas de construcción (el ensamblador y - cargador especialmente) evolucionaron en dos árboles - paralelos. El árbol FreeBSD agregó librerías - compartidas y arregló algunos errores. Las personas de - GNU que originalmente escribieron estos programas los - reescribieron y agregaron soporte más simple para - construir compiladores cruzados (cross compilers), enchufando - diferentes formatos a voluntad, y así sucesivamente. - Ya que mucha gente quería construir compiladores - cruzados con FreeBSD como blanco, estaban de mala suerte - debido a que las fuentes antiguas que FreeBSD tenía + las suyas propias (el ensamblador y el cargador, sobre todo) + evolucionaron en dos árboles + paralelos. El árbol &os; añadió bibliotecas + compartidas y corrigió algunos errores. La gente de GNU + que originalmente escribió estos programas los + reescribió y añadieron una forma más simple para + disponer de compiladores cruzados (cross compilers), + usando diferentes formatos a voluntad, etc. + Aunque mucha gente quería compiladores + cruzados con FreeBSD como blanco no estaban de suerte, porque + los fuentes que &os; tenía para as y ld - no estaban listas para esa tarea. La nueva cadena de herramientas - GNU (binutils) soporta compilamiento - cruzado, ELF, librerías compartidas, - extensiones C++, etc. Además, muchos proveedores están - liberando binarios ELF, y es una buena - cosa que FreeBSD los ejecute. - - ELF es más expresivo que a.out - y permite más extensibilidad en el sistema base. + no estaban listos para cumplir esa tarea. La nueva cadena de herramientas + GNU (binutils) soporta compilación + cruzada, ELF, bibliotecas compartidas, + extensiones C++, etc. Además, muchos proveedores están + liberando binarios ELF, y es algo muy bueno + que FreeBSD los pueda ejecutar. + + ELF es más expresivo que + a.out + y permite un sistema base más extensible. Las herramientas ELF están mejor - mantenidas y ofrecen soporte de compilamiento cruzado, el - cual es importante para muchas personas. + mantenidas y ofrecen soporte de compilación cruzada, + muy importante para mucha gente. ELF puede ser un poco más lento que a.out, pero tratar de medirlo puede ser difícil. También existen numerosos detalles - que son diferentes entre los dos en como mapean páginas, - manejan código de inicio, etc. Ninguno de estos es + que son diferentes entre los dos en cómo mapean páginas, + cómo gestionan código de inicio, etc. Ninguno de estos es muy importante, pero existen diferencias. Con el tiempo, el soporte para a.out será eliminado - del kernel GENERIC, y eventualmente - eliminado del kernel una vez que la necesidad de ejecutar - programas a.out legados haya pasado. + 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. Para más información Páginas de manual páginas de manual - La documentación más exhaustiva de FreeBSD se - encuentra en la forma de páginas de manual. Casi todos los - programas del sistema vienen con un breve manual de referencia - explicando el funcionamiento básico y sus diferentes argumentos. - Estos manuales pueden ser revisados con el comando man. - El uso del comando man es simple: + La documentación más exhaustiva de &os; + está en las páginas de manual. Casi todos los + programas del sistema vienen con un breve manual de referencia + explicando el funcionamiento básico y sus diferentes argumentos. + Estos manuales pueden revisarse mediante man. + El uso de man es simple: - &prompt.user; man comando + &prompt.user; man orden - comando es el nombre del comando del - que desea aprender. Por ejemplo, para saber algo acerca del - comando ls escriba: + orden es el nombre de la orden sobre la que + que desea saber. Por ejemplo, para más información + sobre ls escriba: &prompt.user; man ls El manual en línea está dividido en secciones numeradas: Comandos de usuario. Llamadas al sistema y números de error. - Funciones en las librerías de C. + Funciones en las bibliotecas de C. Controladores de dispositivo. - Formatos de archivo. + Formatos de fichero. - Juegos y otras diversiones. + Juegos y demás pasatiempos. - Información miscelanea. + Información sobre temas diversos. - Comandos de mantenimiento y operación del sistema. + Comandos relacionados con el mantenimiento del sistema y + su funcionamiento. Desarrolladores del Kernel. - En algunos casos, el mismo tema puede aparecer en más de - una sección del manual en línea. Por ejemplo, - existe un comando de usuario chmod y una - llamada del sistema chmod(). En este caso, - se le puede decir al comando man - cual desea especificando la sección: + En algunos casos, el mismo tema puede aparecer en más de + una sección del manual en línea. Por ejemplo, + existe una orden de usuario chmod y una + llamada del sistema chmod(). En este caso + se le puede decir a man + cuál desea consultar especificando la sección: &prompt.user; man 1 chmod - Esto desplegará la página de manual para - el comando de usuario chmod. Las referencias + Esto desplegará la página de manual de la + orden de usuario chmod. Las referencias a una sección concreta del manual en línea - son colocadas tracicionalmente entre paréntesis + tradicionalmente suelen colocarse entre paréntesis en la documentación escrita, por lo tanto &man.chmod.1; - se refiere al comando de usuario chmod y + se refiere a la orden de usuario chmod y &man.chmod.2; se refiere 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 del comando? Se puede usar man para que - realice una búsqueda mediante palabras clave en las descripciones + 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 búsqueda mediante palabras clave en las descripciones de programas utilizando el argumento : &prompt.user; man -k mail - Con este comando se mostrará una lista de - comandos que tienen la palabra clave mail - en sus descripciones. Esto en realidad es funcionalmente - equivalente a usar el comando apropos. + 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 comandos - elegantes en /usr/bin pero no tiene - ni la menor idea de lo que la mayoría de ellos hace? - simplemente haga: + Así que, ¿está viendo todos esos programas + tan atractivos en /usr/bin pero no tiene + ni la menor idea de lo que la mayoría de ellos hace? + Haga lo siguiente: &prompt.user; cd /usr/bin &prompt.user; man -f * o &prompt.user; cd /usr/bin &prompt.user; whatis * que hace exactamente lo mismo. - Archivos de información GNU + Ficheros de información GNU Fundación de software libre - FreeBSD incluye muchas aplicaciones y utilidades producidas - por la Fundación de software libre (FSF, Free Software - Foundation). De manera adicional a las páginas de manual + &os; incluye muchas aplicaciones y utilidades producidas + por la FSF (Free Software + Foundation). Además de con las correspondientes + páginas de manual, estos programas vienen con documentos de hipertexto más - detallados, llamados archivos info, los - cuales pueden ser viualizados con el comando info - o, si tiene instalado emacs, con + detallados, llamados ficheros info, los + cuales pueden ser visualizados con info, + o si tiene instalado emacs, con el modo info de emacs. - Para utilizar el comando &man.info.1;, simplemente + Si quiere utilizar la orden &man.info.1; simplemente teclée: &prompt.user; info Para una breve introducción, teclée h. Para una referencia rápida, teclée ?.
diff --git a/es_ES.ISO8859-1/books/handbook/geom/chapter.sgml b/es_ES.ISO8859-1/books/handbook/geom/chapter.sgml index bd5b87b8c0..bcc7f9e5c6 100644 --- a/es_ES.ISO8859-1/books/handbook/geom/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/geom/chapter.sgml @@ -1,440 +1,434 @@ Tom Rhodes Escrito por - GEOM: Infraestructura modular de trasformación de - disco + GEOM: Marco de trabajo modular de transformación de discos + &trans.es.quique; Sinopsis GEOM GEOM Disk Framework GEOM - Este capítulo cubre el uso de discos bajo la - infraestructura GEOM en &os;. Esto incluye las mayores - utilidades de control RAID - las cuales utilizan la infraestructura para su - configuración. Este capítulo no entrará - en una discusión detallada sobre como GEOM maneja - o controla E/S, el subsistema subyacente o el código. - Esta información se da a través de la - página de manual &man.geom.4; y en sus varias - referencias. Este capítulo no es una guía - definitiva de configuraciones RAID. Solo - las clasificaciones de RAID soportadas - por GEOM serán discutidas. - - Despues de leer este capítulo, usted sabrá: + Este capítulo explica el uso de discos bajo el marco de + trabajo GEOM en &os;. Esto incluye las principales utilidades de control + de RAID + que usan el marco de trabajo para su configuración. + Este capítulo no se adentrará en un examen en profundidad + de como GEOM maneja o controla la E/S, el subsistema subyacente, o el + código. + Esta información se proporciona en la página de manual + &man.geom.4; y sus diversas referencias VEA TAMBIÉN. + Este capítulo tampoco es una guía definitiva de + configuraciones RAID. Sólo se examinan las + clasificaciones de RAID que puede usar GEOM. + + Tras leer este capítulo, sabrá: - Que tipo de soporte para RAID está + Que tipo de soporte para RAID está disponible a través de GEOM. - Como utilizar las utilidades base para configurar, - mantener y manipular los varios niveles de - RAID. + Como utilizar las utilidades base para configurar, mantener, + y manipular los diversos niveles de RAID. - Como hacer un espejo, unir (stripe), encriptar y conectar - remotamente dispositivos de disco a través de GEOM. + Como replicar, unir, cifrar, y conectar remotamente dispositivos + de disco por medio de GEOM. - Como determinar errores de discos conectados - a la infraestructura GEOM. + Como solucionar problemas con los discos adscritos al marco de + trabajo GEOM. - Antes de leer este capítulo, usted debe: + Antes de leer este capítulo, debería: - Entender como &os; trata los dispositivos - de disco (). + Entender como trata &os; a los dispositivos de disco + (). - Saber como configurar e instalar un nuevo kernel - &os; (). + Saber como configurar e instalar un nuevo núcleo de &os; + (). Introducción a GEOM - GEOM permite acceso y control a clases — registros - maestros de arranque, etiquetas (labels) BSD, - etc — a través del uso de proveedores, o de los - archivos especiales en /dev. - Soportando varias configuraciones de RAID por - software, GEOM brindará acceso transparente al sistema - operativo y a las utilidades del sistema operativo. + GEOM permite el acceso y control de clases —sectores de + arranque maestros (MBR), etiquetas BSD, etc— por + medio del uso de proveedores, o de los ficheros especiales de + /dev. + Capaz de trabajar con varias configuraciones de RAID + por software, GEOM proporcionará transparentemente acceso al + sistema operativo y las utilidades del mismo. Tom Rhodes Escrito por Murray Stokely - RAID0 - Unión (Striping) + RAID0 - Distribución por bandas GEOM - Stripping + Striping - La unión es un método utilizado para combinar - varias unidades de disco en un solo volumen. En muchos casos, esto - es realizado a través del uso de controladores de hardware. - El subsistema de discos GEOM brinda soporte por software para - RAID0, también conocido como - striping de disco. - - En un sistema RAID0, los datos son - divididos en bloques que son escritos a lo largo de todas - las unidades en el arreglo. En lugar de tener que esperar - que el sistema escriba 256k a un disco, un sistema - RAID0 puede escribir simultaneamente 64k - a cada uno de los cuatro discos diferentes, ofreciendo - un desempeño superior de E/S. Este desempeño - puede ser mejorado utilizando diferentes controladores de - disco. - - Cada disco en una unión RAID0 - debe ser del mismo tamaño, ya que las peticiones E/S - son intercaladas para leer o escribir a discos múltiples - en paralelo. + La distribución por bandas (striping) es un método que + se usa para combinar varias unidades de disco en un único volumen. + En muchos casos, esto se hace usando controladoras por hardware. El + subsistema de discos GEOM proporciona soporte por software para + RAID0, también conocido como discos + configurados en bandas. + + En un sistema RAID0, los datos se dividen en + bloques que son escritos por todas las unidades de la agrupación. + En lugar de tener que esperar a que el sistema escriba 256 kB en un + disco, un sistema RAID0 puede escribir simultáneamente + 64 kB en cada uno de los cuatro discos, ofreciendo un superior + rendimiento de E/S. Este rendimiento se puede mejorar aún + más usando varias controladoras de disco. + + Cada uno de los discos de una banda RAID0 debe ser + del mismo tamaño, pues las peticiones de E/S están + intercaladas para leer o escribir en varios discos en paralelo. - Disk Striping Illustration + Ilustració de la distribución por bandas de + los discos - Creando una unión de discos ATA no formateados + Creación de una banda de discos ATA sin formatear Cargue el módulo geom_stripe: &prompt.root; kldload geom_stripe.ko - Asegúrese que existe un punto de montaje adecuado. - Si este volumen se convertirá en una partición - raíz, entonces utilice temporalmente otro punto de - montaje como /mnt. + Asegúrese de que existe un punto de montaje adecuado. + Si este volumen se convertirá en una partición raíz, + utilice temporalmente otro punto de montaje, como /mnt. &prompt.root; mkdir /mnt - Determine los nombres de dispositivo para los - discos que serán unidos, y proceda a crear el nuevo - dispositivo de unión. Por ejemplo, el siguiente comando - puede ser utilizado para unir dos discos ATA - no particionados: + Determine los nombres de dispositivo de los discos que + serán configurados en bandas, y cree el nuevo dispositivo de + banda. Por ejemplo, podría utilizar la siguiente orden para configurar + en bandas dos discos ATA sin usar ni particionar: /dev/ad2 y /dev/ad3. &prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3 - Si este volumen será utilizado como un - dispositivo raíz para arrancar el sistema, entonces - el siguiente comando debe ser ejecutado antes de crear - los sistemas de archivo: + Si se va a usar este volumen como dispositivo raíz + para arrancar el sistema, debe ejecutar la siguiente orden antes de + crear el sistema de ficheros: &prompt.root; fdisk -vBI /dev/stripe/st0 - Una tabla de partición debe ser creada en el - nuevo volumen con el siguiente comando: + Se debe crear una tabla de particiones en el nuevo volumen con la + siguiente orden: &prompt.root; bsdlabel -wB /dev/stripe/st0 - Este proceso debe hacer creado otros dos dispositivos - en el directorio /dev/stripe - además del dispositivo st0. - Estos incluyen a st0a y - st0c. Ahora debe ser creado un sistema de - archivos en el dispositivo st0a utilizando - el siguiente comando newfs: + Aademás del dispositivo st0, + este proceso debería haber creado otros dos + dispositivos en el directorio + /dev/stripe, incluyendo + st0a y st0c. + Ahora se debe crear un sistema de ficheros en el dispositivo + st0a usando la siguiente orden + newfs: &prompt.root; newfs -U /dev/stripe/st0a - Muchos números aparecerán en la pantalla, y - despues de unos cuantos segundos, el proceso se completará. - El volumen ha sido creado y está listo para montarse: + Por la pantalla se deslizarán muchos números, y al + cabo de unos pocos segundos, el proceso habrá finalizado. El + volumen ha sido creado y está preparado para ser montado: - El siguiente comando puede ser utilizado para montar - manualmente una unión recién creada: + Se puede usar la siguiente orden para montar manualmente una banda de + discos recién creada: &prompt.root; mount /dev/stripe/st0a /mnt - Para montar esta unión de sistemas de archivos durante - el proceso de arranque, coloque la información del volumen - en el archivo /etc/fstab: + Para montar automáticamente este sistema de ficheros distribuido + por bandas durante el proceso de arranque, ponga la información + del volumen en el fichero /etc/fstab: &prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \ >> /etc/fstab - El módulo geom también debe ser cargado - automaticamente durante la inicialización del - sistema, agregando una línea a - /boot/loader.conf: + También se debe cargar automáticamente durante la + inicialización del sistema el módulo geom, añadiendo + una línea a /boot/loader.conf: &prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.conf - RAID1 - Espejando + RAID1 - Replicación GEOM - Espejando discos + Disk Mirroring - El espejado es una tecnología utilizada por muchas - corporaciones y usuarios caseros para respaldar datos sin - interrupción. Cuando existe un espejo, simplemente - significa que discoB replica a discoA. O, quizás discoC+D - replica a discoA+B. Sin importar la configuración de disco, - el aspecto importante es que la información en un disco - o partición está siendo replicada. Despues, esa - información puede ser más facilmente restaurada, - respaldada sin provocar interrupción de los servicios - o accesos, e incluso ser almacenada fisicamente en una caja de - seguridad para datos. - - Para empezar, asegúrese que el sistema tiene dos discos - de igual tamaño, este ejercicio asume que son discos - SCSI con acceso directo (&man.da.4;). - - Empiece instalando &os; en el primer disco con solo dos - particiones. Una debe ser la partición swap, el doble - del tamaño de la RAM y todo el - espacio restante para el sistema de archivos raíz - (/). Es posible tener - particiones separadas para otros puntos de montaje; sin - embargo, esto incrementará el nivel de dificultad - debido a la alteración manual de las configuraciones - de &man.bsdlabel.8; y &man.fdisk.8;. - - Reinicie y espere a que el sistema inicialice completamente. - Una vez que este proceso se ha completado, entre como el usuario + La replicación es una tecnologín que usan muchas + empresas y usuarios para hacer copias de respaldo de sus datos sin + interrupciones. Cuando hay una réplica, simplemente + significa que el discoB replica al discoA. O, quizá el discoC+D + replica al discoA+B. Al margen de la configuración de los discos, + lo importante es que la información de un disco o + partición está siendo replicada. Más adelante se + podría restaurar esa información más + fácilmente, hacerse una copia de respaldo sin provocar + intrrupciones de servicio o acceso, e incluso almacenarla + físicamente en una caja fuerte para datos. + + Para empezar, asegúrese de que el sistema tiene dos unidades + de disco del mismo tamaño, eb este ejercicio se supone que son discos + SCSI de acceso directo (&man.da.4;). + + Comience por instalar &os; en el primer disco con sólo dos + particiones. Una debería ser una partición de intercambio, + de dos veces el tamaño de la RAM, y todo el + espacio restante se dedicará al sistema de ficheros raíz + (/). + Es posible tener particiones aparte para otros puntos de montajes; sin + embargo, esto multiplicará por diez el nivel de dificultad, debido + a la alteración manual de las opciones de &man.bsdlabel.8; y + &man.fdisk.8;. + + Reinicie y espere a que el sistema se inicie por completo. Una vez + haya finalizado este proceso, ingrese como usuario root. - Crée el dispositivo /dev/mirror/gm - y enlácelo a /dev/da1: + Cree el dispositivo /dev/mirror/gm y + enlácelo a /dev/da1: &prompt.root; gmirror label -vnb round-robin gm0 /dev/da1 - - Este comando debería haber creado los nodos de dispositivo - gm0, gm0s1, - gm0s1a y gm0s1c - en el directorio /dev/mirror. - + El sistema debería responder con: + +Metadata value stored on /dev/da1. +Done. + + Inicialice GEOM, esto cargará el módulo del + núcleo /boot/kernel/geom_mirror.ko: - Inicialize GEOM; esto cargará el módulo - del kernel /boot/kernel/geom_mirror.ko: + &prompt.root; gmirror load - &prompt.root; geom load + + Esta orden debería haber creado en el directorio + /dev/mirror los nodos de + dispositivo gm0, gm0s1, + gm0s1a, y gm0s1c. + - Instale una etiqueta fdisk genérica - y código de arranque para el dispositivo recién - creado gm0: + Instale una etiqueta genérica fdisk y + el código de arranque en el recién creado dispositivo + gm0: &prompt.root; fdisk -vBI /dev/mirror/gm0 - Ahora instale información bsdlabel + Ahora instale la información bsdlabel genérica: &prompt.root; bsdlabel -wB /dev/mirror/gm0s1 - Si existen porciones y particiones múltiples, las - banderas para los dos comandos previos necesitarán una - alteración. Deben ser igual al tamaño de la - porción y de la partición del otro disco. + Si hay varias slices (rodajas) y particiones, necesitará + modificar las opciones de las dos órdenes anteriores. Deben + coincidir con la slice y tamaño de partición del otro + disco. - Use la utilidad &man.newfs.8; para crear un sistema de - archivos por omisión en el nodo de dispositivo - gm0s1a: + Utilice la utilidad &man.newfs.8; para crear un sistema de ficheros + predefinido en nodo de dispositivo gm0s1a: &prompt.root; newfs -U /dev/mirror/gm0s1a - Esto debe haber causado que el sistema escupa alguna - información y varios números. Esto es bueno. - Examine la pantalla por cualquier error y monte el dispositivo - en el punto de montaje /mnt: + Esto debería haber hecho que el sistema mostrara alguna + información y un puñado de números. Esto es bueno. + Examine la pantalla por si hay algún mensaje de error y monte el + dispositivo en el punto de montaje + /mnt: - &prompt.root mount /dev/mirror/gm0s1a /mnt + &prompt.root; mount /dev/mirror/gm0s1a /mnt - Ahora mueva todos los datos del disco de arranque hacia - este nuevo sistema de archivos. Este ejemplo utiliza los - comandos &man.dump.8; y &man.restore.8;; de todas maneras, - &man.dd.1; tambien funcionaría en este escenario. - Evitamos utilizar &man.tar.1; porque no copiará el - código de arranque. De esa manera, el fallo estaría - garantizado. + Ahora mueva todos los datos del disco de arranque a este nuevo + sistema de ficheros. Este ejemplo usa las órdenes &man.dump.8; + y &man.restore.8;; aunque, &man.dd.1; también debería + funcionar en este escenario. Evitamos utilizar &man.tar.1; porque no + copiará el código de arranque. De ese modo, el fallo + estaría garantizado. &prompt.root; dump -L -0 -f- / |(cd /mnt && restore -r -v -f-) - Esto debe realizarse para cada sistema de archivos. - Simplemente coloque el sistema de archivos apropiado en la - localidad correcta al ejecutar el mencionado comando. - - Ahora edite el archivo replicado /mnt/etc/fstab - y elimine o comente el archivo swap. Cambie la información - de los otros sistemas de archivos para que utilicen el nuevo - disco. Vea el siguiente ejemplo: + Se debe hacer esto para cada sistema de ficheros. Simplemente + ponga el sistema de ficheros adecuado en la ubicación correcta + al ejecutar la orden mencionada. + + Ahora edite el fichero replicado /mnt/etc/fstab + y elimine o comente el fichero swap + + Debe advertirse que comentar la entrada del fichero swap en + fstab probablemente le obligará a + reestablecer una manera diferente de habilitar el espacio de + intercambio. Consulte para + más información. + . Cambie la información del otro sistema de ficheros + para que utilice el nuevo disco. Vea el siguiente ejemplo: # Device Mountpoint FStype Options Dump Pass# #/dev/da0s2b none swap sw 0 0 -/dev/mirror/gm0sa1 / ufs rw 1 1 +/dev/mirror/gm0s1a / ufs rw 1 1 - Ahora crée un archivo boot.conf - en la partición raíz actual y también en - la nueva partición raíz. Este archivo - ayudará al BIOS del - sistema a arrancar la unidad correcta: + Ahora cree un fichero boot.conf tanto en la + partición actual como en la nueva partición raíz. + Este fichero ayudará al BIOS + del sistema a arrancar la unidad correcta: &prompt.root; echo "1:da(1,a)/boot/loader" > /boot.config &prompt.root; echo "1:da(1,a)/boot/loader" > /mnt/boot.config - La hemos colocado en ambas particiones raíz para - asegurar el arranque correcto. Si por alguna razón - el sistema no puede leer desde la nueva partición - raíz, un respaldo está disponible. + Lo hemos colcoado en ambas particiones raíz para asegurar un + arranque correcto. Si por alguna razón el sistema no pudiera + leer en la nueva partición raíz, está disponible + un arranque a prueba de fallos. - Ahora agregue la siguiente línea a + Ahora agregue la siguiente línea al nuevo /boot/loader.conf: - &prompt.root; echo 'geom_mirror_load="YES"' >> /boot/loader.conf + &prompt.root; echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf - Esto le instruirá a la utilidad &man.loader.8; - que cargue geom_mirror.ko durante la - inicialización del sistema. + Esto le dice a la utilidad &man.loader.8; que cargue el + geom_mirror.ko durante la inicialización del + sistema. Reinicie el sistema: &prompt.root; shutdown -r now - Si todo ha ido bien, el sistema debe haber arrancado desde el - dispositivo gm0s1a y un prompt de - login debe estar esperando. Si algo estuvo - mal, revise la siguiente sección de determinación - de errores. Ahora agregue el disco da0 al + Si todo ha ido bien, el sistema debería haber arrancado desde + el dispositivo gm0s1a, y un prompt + login debería estar a la espera. Si algo fue + mal, consulte la sección posterior de resolución de + problemas. Ahora agregue el disco da0 al dispositivo gm0: &prompt.root; gmirror configure -a gm0 &prompt.root; gmirror insert gm0 /dev/da0 - La bandera le dice a &man.gmirror.8; - que utilice sincronización automática; ej., - espejar las escrituras a disco automaticamente. La página - de manual explica como reconstruir y reemplazar discos, - aunque utiliza data en lugar de - gm0. + La opción le dice a &man.gmirror.8; que + use sincronización automática; por ejemplo, que replique + las escrituras en disco automáticamente. La página de + manual explica como reconstruir y reemplazar discos, aunque utiliza + data en vez de gm0. - Determinando errores + Resolución de problemas El sistema se niega a arrancar - Si el sistema arranca y se queda en un prompt similar a: + Si el sistema arranca hasta un prompt similar a: ffs_mountroot: can't find rootvp Root mount failed: 6 mountroot> - Reinicie la máquina utilizando el botón - de power o reset. En el menu de arranque seleccione la - opción seis (6). Esto mandará al sistema a - un prompt de &man.loader.8;. Cargue el módulo del - kernel manualmente: + Reinicie la máquina utilizando el botón de + encendido o el de reset. En el menú de arranque, seleccione + la opción seis (6). Esto llevará al sistema a un + prompt de &man.loader.8;. Cargue el módulo del núcleo + manualmente: OK? load geom_mirror.ko OK? boot - Si esto funciona, entonces por algún motivo el - módulo no esta siendo cargado apropiadamente. - Coloque: + Si esto funciona, es que por alguna razón el módulo + no se cargaba correctamente. Ponga: options GEOM_MIRROR - en el archivo de configuración del kernel, reconstruya - y reinstale. Eso debe remediar este asunto. + en el fichero de configuración del núcleo, + recompile y reinstale. Esto debería solucionar el problema. - - - diff --git a/es_ES.ISO8859-1/books/handbook/security/chapter.sgml b/es_ES.ISO8859-1/books/handbook/security/chapter.sgml index 6449c90059..d185c5091a 100755 --- a/es_ES.ISO8859-1/books/handbook/security/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/security/chapter.sgml @@ -1,5511 +1,5676 @@ Matthew Dillon - Gran parte de este capítulo ha sido - tomado del manual de security(7) por + Gran parte del contenido de este capítulo + procede de la página de manual de security(7), de Seguridad seguridad Sinopsis - Este capítulo brindará una introducción - básica a los conceptos de seguridad de sistema y algunos temas - avanzados en &os;. Muchos de los temas cubiertos aquí - pueden aplicarse a la seguridad del sistema asi como también - a la de Internet en general. Internet ya no es un lugar - amistoso en el cual cada quién desea ser un - buen vecino. Asegurar su sistema es imperativo para proteger sus - datos, propiedad intelectual, tiempo, y mucho más de las - manos de hackers y similares. - - FreeBSD proporciona un arsenal de utilidades y mecanismos para + Este capítulo contiene una introducción + básica a los conceptos de seguridad del sistema, unas + cuantas normas básicas de uso y algunos avanzados del + tema en &os;. Muchos de los temas expuestos se aplican a la + seguridad del sistema y de Internet en general. + Internet ya no es aquél 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 más cosas de manos malintencionadas debe hacer + que su sistema sea seguro. + + &os; proporciona un variado arsenal de utilidades y mecanismos para asegurar la integridad y la seguridad de su sistema y red. - Después de leer este capítulo, usted sabrá: + Después de leer este capítulo: - Conceptos básicos de seguridad, con respecto a &os;. + conocerá conceptos básicos de la seguridad + relacionados con &os;. - Acerca de varios mecanismos de encriptación disponibles - en &os;, como DES y MD5. + Tendrá información sobre los diversos mecanismos + de cifrado disponibles en &os;, entre los cuales están + DES y MD5. - Como configurar autentificación de contraseñas - para usar solo-una-vez. + Sabrá cómo configurar la autentificación + de contraseñas de un solo uso. - Como configurar TCP Wrappers para usar - con inetd. + Sabrá cómo configurar TCP + Wrappers y usarlos con + inetd. - Como instalar KerberosIV en &os; - con versiones anteriores a 5.0. + Sabrá cómo instalar + KerberosIV en versiones de &os; + anteriores a 5.0. - Como instalar Kerberos5 en &os; con - versiones posteriores a 5.0. + Sabrá cómo instalar + Kerberos5 en versiones de &os; + posteriores a 5.0. - Como configurar IPsec y crean una VPN entre + Podrá configurar IPsec y crear una + VPN entre máquinas &os;/&windows;. - Como configurar y utilizar OpenSSH, - la implementación SSH de &os;. + Sabrá cómo configurar y utilizar + OpenSSH, + la implementación de SSH en &os;. - Que son ACLs del sistema de archivos y como + Sabrá en qué consisten las + ACL del sistema de ficheros y cómo utilizarlas. - Como usar la utilidad Portaudit - para auditar paquetes de software de terceros instalados + Sabrá cómo usar + Portaudit, con la que podrá + auditar el software que instale desde la desde la colección de ports. - Como utilizar las publicaciones de advertencias de seguridad en - &os;. + Sabrá cómo sacar partido de los avisos de + seguridad que publica &os;. - Tener una idea de lo que es contabilidad de - procesos y como habilitarla en &os;. + Podrá hacerse una idea clara de en qué consiste + la contabilidad de procesos y de cómo activarla en + &os;. - Antes de leer este capítulo, usted debe: + Antes de leer este capítulo: - Entender Conceptos básicos de &os; y el Internet. + Comprender conceptos básicos de &os; e Internet. - Tópicos de seguridad adicionales son cubiertos a lo - largo de este libro. Por ejemplo, controles de acceso - obligatorio (Mandatory Access Control) son discutidos en y firewalls de internet son discutidos en el - capítulo de firewalls. - . + En otras secciones de este manual se cubren aspectos adicionales + sobre seguridad. Por ejemplo, MAC (controles de acceso obligatorio) + se explica en el y los cortafuegos en el + . Introducción - La seguridad es una función que comienza y termina con el - administrador de sistema. Mientras que los sistemas multi-usuario - BSD &unix; tienen una seguridad inherente, el trabajo de construir y - mantener mecanismos de seguridad adicionales para hacer que los - usuarios sean honestos es probablemente una de las - tareas más grandes del administrador del sistema. Los sistemas - son tan seguros como uno los haga, los problemas de seguridad compiten - con la necesidad humana de conveniencia. Los sistemas &unix; en - general, son capaces de correr una gran cantidad de procesos - simultáneos, de los cuales muchos de estos son servidores - – lo que significa que entidades externas pueden conectarse y - hablar con ellos. Asi como las mini-computadoras del - ayer se convirtieron en los ahora escritorios de trabajo, y las - computadoras se interconectaron, la seguridad cada vez se hace un - problema más grande. - - La seguridad es mejor implementada como cebolla en - capas. Basicamente, lo que se quiere hacer es crear la mayor cantidad - posible de capas de seguridad como sea conveniente para luego - cuidadosamente monitorear el sistema para detectar intrusos. No es - conveniente sobreconstruir la seguridad, ya que esta interferirá - con el aspecto de detección, y la detección es uno de - los más importantes aspectos de cualquier mecanismo de - seguridad. Por ejemplo, no tiene mucho sentido activar la bandera - schg (ver &man.chflags.1;) en cada binario del - sistema, ya que mientras este puede protejer los binarios - temporalmente, hace que algún cambio hecho por un atacante, - que ha entrado al sistema,sea difícil de detectar y puede - resultar que el mecanismo de seguridad no detecte al atacante en - lo absoluto. - - La seguridad del sistema depende también de estar preparado - para diferentes formas de ataque, incluyendo intentos de quebrar el - sistema, o hacer un sistema inservible, pero no intentos de comprometer - al usuario root (quebrar root). Los - problemas de seguridad estan separados en diferentes categorias: + 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 aún más honestos es + probablemente una de las mayores tareas de la administración + 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 + simultáneamente, muchos de los cuales son servidores, lo que + significa 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 día, la seguridad se va convirtiendo + en un problemas más y más acuciante. + + La seguridad bien entendida se implementa en capas, a la manera de + una cebolla. Básicamente lo que se hace es + crear la mayor cantidad posible de capas de seguridad, para más + tarde monitorizar el sistema en busca de intrusos. No es conveniente + exagerar la seguridad, ya que interferiría con la + detección, y la detección es uno de los aspectos + más importantes de cualquier mecanismo de seguridad. + Por ejemplo, no tiene mucho sentido activar la bandera + schg (consulte &man.chflags.1;) en cada binario del + sistema, ya que aunque protegería en cierto modo los binarios, + haría que cualquier cambio que pudiera realizar un atacante + una vez dentro del sistema fuera más difícil de detectar + o incluso hacerlo del todo imposible. + + La seguridad del sistema depende también de estar preparados + para distintos tipos de ataque, incluyendo intentos de + tirar la máquina o dejarla en un estado + inutilizable, pero que no impliquen intentos de comprometer el usuario + root Los problemas de seguridad pueden + dividirse en diferentes categorías: - Ataques de Negación de servicio (DoS). + Ataques de denegación de servicio (DoS). Comprometer cuentas de usuarios. Comprometer root a través de servidores accesibles. - Comprometer root via cuentas de usuarios. + Comprometer root desde cuentas de usuario. - Creación de puertas traseras (Backdoors). + Creación de puertas traseras + (Backdoors). - DoS attacks - Denial of Service (DoS) + Ataques DoS + Denegación de servicio (DoS) seguridad Ataques DoS - Negación de servicios (DoS) + Denegación de servicios (DoS) - Negacion de servicio (DoS) - - Un ataque de negación de servicio es una acción que - priva al sistema de los recursos requeridos. Generalmente, los ataques - DoS son mecanismos de fuerza bruta que intentan quebrar el sistema - o hacerlo inutilizable sobrepasando la capacidad de sus servidores - o del stack de red. - Algunos ataques DoS intentan aprovecharse de - errores en el stack de red para quebrar el sistema con un solo paquete. - Lo último solo puede ser solucionado aplicando en el kernel - una actualización que arregle el error. - Los ataques en servidores muchas veces pueden ser - solucionados especificando opciones apropiadas para limitar la carga del - sistema en condiciones adversas. Los ataques de fuerza bruta en redes - son mas complicados. Los ataques con paquetes enmascarados, por - ejemplo, son casi imposible de detener, a menos que desconecte el - sistema de Internet. Puede ser que no tiren el sistema, pero - saturarán la conexión a Internet. + Denegacion de servicio (DoS) + + Un ataque de denegación de servicio es una acción 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 actualización que subsane el error. + Los ataques a servidores muchas veces pueden solucionarse configurando + las opciones apropiadas para limitar la carga del sistema en + condiciones adversas. Los ataques de fuerza bruta a redes + son más 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 saturarán la conexión a Internet. seguridad - comprometer cuentas + compromiso de cuentas - Comprometer una cuenta de usuario es mucho más común - que un ataque DoS. Muchos administradores de sistemas - todavía corren servidores estándar + Comprometer una cuenta de usuario es mucho más común + que un ataque DoS. Muchos administradores de sistemas + todavía ejecutan servidores estándar telnetd, rlogind, rshd y ftpd en - sus máquinas. - Estos servidores, por omisión, no - operan sobre conexiones encriptadas. El resultado es que si se - tiene una base de usuarios de tamaño moderado, uno o - más de sus usuarios entrando al sistema desde una localidad - remota (que es la forma más común y conveniente de - entrar a un sistema) provocará que su contraseña - sea descubierta. - El atento administrador de sistemas analizará sus logs de - acceso remoto buscando por direcciones fuente sospechosas - incluso para entradas exitosas al sistema. - - Se debe asumir siempre que una vez que un atacante tiene acceso - a una cuenta de usuario, el atacante puede comprometer - root. De todas formas, la realidad es que en - un sistema bien mantenido y asegurado, el acceso a una cuenta de + sus máquinas. + Estos servidores, por defecto no operan a través de conexiones + cifradas. El resultado es que se si se tiene una base de usuarios de + tamaño medio, tarde o temprando la contraseña de uno + (o más) de sus usuarios será descubierta durante + sus accesos al sistema desde ubicaciones remotas.(que es, por otra + parte, la forma más común y más cómoda + 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. La distinción es importante + root. Esta precisión es importante porque sin acceso a root el atacante - generalmente no puede esconder sus huellas y puede, a lo mucho, - meterse con los archivos de usuarios, o estrellar la máquina. + difícilmente podrá esconder sus huellas; podrá, + como mucho, hacer poco más que sembrar el caos en los ficheros + del usuario o tirar la máquina. Comprometer cuentas de usuario es muy común porque los - usuarios tienden a no tomar las precauciones que el administrador - toma. + usuarios tienden a no tomar las precauciones que toma el + administrador. seguridad - backdoors + puertas traseras - Los administradores de sistema deben tener en mente que - existen muchas maneras potenciales de comprometer a - root en una máquina. El atacante puede - conocer la contraseña de root, el u - atacante puede encontrar un error en un servidor ejecutándose - como root y ser capaz de comprometer root a - través de una conexión de red a ese servidor, o el - atacante puede conocer un error en programa suid-root que le permita - comprometer root una vez que ha entrado - a una cuenta de usuario. Si un atacante ha encontrado una manera - de comprometer a root en una máquina, - entonces puede no necesitar instalar una puerta trasera. Muchos de + Los administradores de sistemas deben tener presente que + existen muchas formas potenciales de comprometer la cuenta + root de una máquina. El atacante puede + conocer la contraseña de root, el + atacante puede encontrar un error en un servidor que se ejecuta + como root y ser capaz de comprometer root a + través de una conexión 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 máquina puede que no + necesite instalar una puerta trasera. Muchos de los agujeros root encontrados y cerrados hasta - la fecha significan una cantidad considerable de trabajo por parte del - atacante para limpiar todo despues del ataque, así que - la mayoría de los atacantes instalan puertas traseras. - Una puerta trasera brinda al atacante una forma sencilla de - retomar acceso de root en el sistema, - pero también le proporciona al administrador de sistemas - inteligente una manera conveniente de detectar la intrusión. - Haciendole imposible a un atacante instalar una puerta trasera - puede en realidad ser en detrimento de su seguridad, porque + la fecha implican una cantidad considerable de trabajo para el atacante + limpiando todo después del ataque, así que + la mayoría de los atacantes instalan puertas traseras. + Una puerta trasera facilita al atacante una forma sencilla de + recuperar el acceso de root al sistema, + pero también proporciona al administrador de sistemas + inteligente una forma de detectar la intrusión. Si hace + imposible a un atacante la instalación de una puerta + trasera puede estar actuando en detrimento de su seguridad, porque no cerrará el agujero que el atacante encontró - para entrar en primer lugar. + para accder al sistema la primera vez que lo hizo. - Los remedios de seguridad deben ser implementados - siempre con una aproximación multicapa tipo - cebolla y puede ser categorizado - como sigue: + Las medidas de seguridad se implementan en un modelo + multicapa (tipo cebolla), que puede categorizarse + del siguiente modo: - Aseguramiento de root y cuentas de staff. + Asegurar root y cuentas + administrativas. - Aseguramiento de servidores que se ejecutan como root - y binarios suid/sgid. + Asegurar los servidores que se ejecuten como + root los binarios suid/sgid. - Aseguramiento de cuentas de usuarios. + Asegurar cuentas de usuario. - Aseguramiento del archivo de contraseñas. + Asegurar el fichero de contraseñas. - Aseguramiento del Kernel, dispositivos crudos y - sistema de archivos. + Asegurar el núcleo del kernel, los dispositivos + en bruto y el sistema de ficheros. - Detección rápida de cambios inapropiados + Detección rápida de cambios hechos al sistema. Paranoia. - La siguiente secci6oacute;n de este capítulo cubrirá + La siguiente sección de este capítulo tratará los puntos de arriba con mayor profundidad. - Asegurando &os; + Asegurar &os; seguridad - asegurando &os; + asegurar &os; - Comando vs. protocolo - A través de este documento usaremos el texto en - negrita para referirnos a un comando o - aplicación, y una fuente espaciada para - referirnos a comandos espcíficos. Los protocolos usarán - una fuente normal. Esta distinción tipográfica es - útil para instancias como ssh, ya - que es tanto un protocolo como un comando. + Orden vs. protocolo + En este capítulo usaremos el texto en + negrita para referirnos a una orden o + aplicación, y una fuente en cursiva para + referirnos a órdenes espcíficas. Usaremos un tipo normal + para los protocolos. Esta diferencia tipográfica nos + será útil por ejemplo con ssh, que es tanto un + protocolo como una orden. - Las siguientes secciones cubrirán los métodos para - asegurar su sistema &os; que fueron mencionados en la - sección anterior a este + Las siguientes secciones cubren los métodos a seguir para + asegurar su sistema &os; que se mencionados en la + sección anterior de este capítulo. - Asegurando la cuenta <username>root</username> y cuentas de staff + Asegurar la cuenta <username>root</username> y las + cuentas administrativas su - En primer lugar, no se moleste en asegurar las cuentas de - staff si no ha asegurado la cuenta root. - La mayoría de los sistemas tienen una contraseña - asignada a la cuenta root. Lo primero que - se hace es asumir que la contraseña está - siempre comprometida. - Esto no significa que debe eliminar la contraseña. La - contraseña es casi siempre necesaria para acceso de - consola a la máquina. Lo que esto significa es que no se - debe hacer posible el uso de la contraseña fuera de la - consola o incluso posiblemente con el comando &man.su.1;. - Por ejemplo, asegúrese que sus ptys estaán - especificadas como inseguras en el archivo - /etc/ttys para que las entradas directas - de root vía - telnet o rlogin no estén - permitidas. - Si utiliza otros servicios de entrada como - sshd, asegúrese que entradas directas - de root estén también deshabilitadas. - Puede hacer esto editando su archivo - /etc/ssh/sshd_config, y asegurándose - que PermitRootLogin esté puesto a - NO. Considere cada método de acceso — - servicios como FTP frecuentemente caen en las grietas. - Entradas directas de root solo deben - ser permitidas vía consola. + En primer lugar, no se moleste en asegurar las cuentas + administrativas (o staff) si no ha asegurado la + cuenta root. + La mayoría de los sistemas tienen una contraseña + asignada para la cuenta root. Lo primero que + se hace es asumir que la contraseña está + siempre amenazada. + Esto no significa que deba eliminar la contraseña. La + contraseña es casi siempre necesaria para el acceso por + consola a la máquina; significa que no se debe permitir + el uso de la contraseña fuera de la consola o, mejor + aún, mediante &man.su.1;. Por ejemplo, + asegúrese de que sus ptys aparezcan como + inseguras en el fichero + /etc/ttys, con lo que hará que + los accesos como root vía + telnet o rlogin no sean + posibles. + Si utiliza otros tipos de login como + sshd asegúrese de que + los accesos al sistema como root + estén también deshabilitados. + Para ello edite su + /etc/ssh/sshd_config y asegúrese de + que PermitRootLogin esté puesto a + NO. Estudie cada método de acceso: + hay servicios como FTP que frecuentemente son origen de grietas + en la estructura del sistema. El acceso directo como usuario + root sólamente debe permitirse + a través de la consola. wheel - Por supuesto, como administrador de sistema usted debe - ser capaz de accesar a root, asi que - abrimos algunos agujeros. Pero asegúrese que estos - agujeros necesiten contraseñas adicionales de - verificación para operar. Una forma de hacer a root - accesible es agregar cuentas de staff apropiadas al - grupo wheel (en - /etc/group). Los miembros del staff colocados - en el grupo wheel tienen permitido - hacer su a root. - Nunca debe de proporcionar a miembros del staff acceso - nativo a wheel poniéndolos - en el grupo wheel en su entrada de - contraseña. Las cuentas de staff deben ser colocadas - en un grupo staff, y entonces - agregadas al grupo wheel en el - archivo /etc/group. Solo aquellos - miembros del staff que en realidad necesiten tener acceso - de root deben ser colocados en el - grupo wheel. también es posible - al utilizar un método de autentificación como - Kerberos, usar el archivo .k5login en - la cuenta root para permitir un - &man.ksu.1; a root sin tener que - colocar a nadie en el grupo - wheel. Esta puede ser una mejor solución - ya que el mecanismo wheel todavía - permite a un atacante comprometer root - si el intruso ha conseguido el archivo de contraseñas - y puede comprometer una cuenta de staff. Teniendo el - mecanismo wheel es mejor que no tener - nada del todo, aunque no es necesariamente la opción + 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 contraseñas + adicionales para verificar su correcto uso. Puede hacer + que root sea accesible añadiendo + 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 poniéndolos + en el grupo wheel en su entrada de + contraseña. Las cuentas administrativas deben colocarse + en un grupo staff, y agregarse + después al grupo wheel en + /etc/group. Sólo aquellos + administradores que realmente necesiten acceder a + root deben pertenecer al grupo + wheel. También es posible, + mediante un método de autentificación como + Kerberos, usar el fichero .k5login en + la cuenta root para permitir un + &man.ksu.1; a root sin tener que + colocar a nadie en el grupo + wheel. Puede ser una mejor solución, + ya que el mecanismo wheel aún + permite a un atacante comprometer root + si el intruso ha conseguido el fichero de contraseñas + y puede comprometer una cuenta de administración. + Recurrir al mecanismo wheel es mejor que + no tener nada, pero no es necesariamente la opción más segura. - Una manera indirecta de asegurar las cuentas de staff, y - el acceso a root es utilizar un método - de acceso login alternativo y hacer lo que se conoce como - estrellado de las contraseñas encriptadas - para las cuentas de staff. Usando el comando &man.vipw.8; - se puede reemplazar cada instancia de una contraseña - encriptada con un solo caracter *. - Este comando actualizará el archivo - /etc/master.passwd y la base de datos - usuario/contraseña para deshabilitar logins - autenticados por contraseñas. + Una manera indirecta de asegurar las cuentas de staff y + el acceso a root es utilizar un método + de acceso alternativo: es lo que se conoce como + estrellar las contraseñas cifradas de las + cuentas administrativas. Use &man.vipw.8; para reemplazar + cada contraseña cifrada por un sólo caracter + asterisco (*). Esto + actualizará + /etc/master.passwd y la base de datos de + usuario/contraseña y deshabilitará los accesos + al sistema validados mediante + contraseñas. - Una entrada de una cuenta de estaff como: + Veamos una cuenta administrativa típica: foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh - Debe ser cambiada a esto: + y cómo debería quedar: foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh - Este cambio prevendrá que ocurran logins normales, - ya que la contraseña encriptada nunca corresponderá - con *. Hecho esto, - los miembros de staff deben usar otro mecanismo - para autentificarse tal como &man.kerberos.1; o - &man.ssh.1; utilizando un par de llave pública/privada. - Cuando se usa algo como Kerberos, generalmente se debe - asegurar la máquina que corre los servidores Kerberos - y su estación de trabajo de escritorio. Cuando se - usa un par de llave pública/privada con ssh, - generalmente se debe asegurar la máquina desde - donde se hace el login (típicamente nuestra estación - de trabajo). Una capa adicional de protección puede - ser añadida al par de llaves protegiendo con contraseña - la llave par al crearla con &man.ssh-keygen.1;. - La posibilidad de estrellado de las - contraseñas de las cuentas de staff también - garantiza que los miembros del staff solo puedan entrar - a través de métodos de acceso que usted haya - configurado. Esto obliga a todos los miembros del staff - a utilizar conexiones seguras, encriptadas, para todas - sus sesiones, lo que cierra un importante agujero usado - por muchos intrusos: hacer un olfateo (sniffing) de la - red desde una máquina no relacionada y menos - segura. + Este cambio evitará que se efectúen logins normales, + ya que la contraseña cifrada nunca se corresponderá + con *. Hecho esto, el personal + de administración tendrá que usar otro mecanismo + de validación como &man.kerberos.1; o + &man.ssh.1; que use un par de llave pública/privada. + Si decide usar algo como Kerberos tendrá que asegurar + la máquina que ejecuta los servidores Kerberos + y su estación de trabajo. Si usa un par de llave + pública/privada con ssh, debe asegurar la + máquina desde desde la que se hace el + login (normalmente nuestra estación de trabajo). Puede + añadir una capa adicional de protección al par de + llaves protegiéndolas con contraseña al crearlo + con &man.ssh-keygen.1;. + El estrellado de las contraseñas + administrativas también garantiza que dicho personal + sólo pueda entrar a través de métodos de + acceso que haya usted configurado. 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 máquina que le + permita hacer tal cosa. - Los mecanismos de seguridad más indirectos también - asumen que se esta firmando desde un servidor más restrictivo - a un servidor menos restrictivo. - Por ejemplo, si su máquina principal está corriendo - toda clase de servidores, su estación de trabajo no debe - de estar corriendo ninguno. Para que su estación de trabajo - sea razonablemente segura debe correr los servidores mínimos - posibles, hasta incluso ningún servidor, y debe correr - un blanqueador de pantalla portegido por contraseña. - Por supuesto, dado un acceso físico a una estación - de trabajo un atacante puede romper cualquier clase de seguridad - que se ponga. Esto es definitivamente un problema que debe - considerar, pero también debe considerar el hecho de que la - mayoría de las intrusiones ocurren remotamente, a través - de la red, de gente que no tiene acceso físico a su - estación de trabajo o servidores. + Los mecanismos de seguridad más indirectos también + asumen que está validando su identidad desde un servidor + más restrictivo un servidor menos restrictivo. + Por ejemplo, si su máquina principal ejecuta toda clase de + servidores su estación de trabajo no debe ejecutar ninguno. + Para que su estación de trabajo sea razonablemente segura + debe ejecutar los mínimos servidores posibles, si es posible + ninguno, y debe usar un salvapantallas protegido por + contraseña. Es evidente que un atancante con acceso + físico al sistema puede romper cualquier barrera de seguridad + que se disponga. Es un problema a tener en cuenta, pero la + mayoría de las intrusiones tienen lugar de forma remota, + a través de la red, por parte de gente que no tiene acceso + físico a su estación de trabajo ni a sus + servidores. KerberosIV - Usar algo como Kerberos también le brinda la habilidad - de deshabilitar o cambiar la contraseña para una cuenta - de staff en un lugar, y que tenga un efecto inmediato en todas - las máquinas en las cuales el miembro de staff puede - tener una cuenta. Si la cuenta de un miembro de staff es - comprometida, la habilidad para cambiar instantaneamente su - contraseña en todas las máquinas no debe ser - desestimada. Con contraseñas discretas, el cambio - de una contraseña en N máquinas puede ser un - problema. También puede imponer restricciones de - re-contraseñas con Kerberos: no solo se puede hacer un - ticket de Kerberos para expirar despues de un tiempo, también - el sistema Kerberos puede requerir que el usuario escoja una - nueva contraseña despues de cierto periodo de tiempo - (digamos, una vez al mes). + Usar Kerberos le ofrece también el poder + de deshabilitar o cambiar la contraseña para una cuenta + administrativa en un lugar, y que tenga un efecto inmediato en todas + las máquinas en las cuales ese administrador pueda + tener una cuenta. Si una de esas cuentas se ve comprometida + la posibilidad para cambiar instantáneamente su + contraseña en todas las máquinas no debe ser + desestimada. Con contraseñas distintas, el cambio + de una contraseña en N máquinas puede ser un + problema. También puede imponer restricciones de + re-contraseñas con Kerberos: no sólo se puede + hacer un ticket de Kerberos que expire después de un + tiempo, sino que el sistema Kerberos puede requerir al usuario + que escoja una nueva contraseña después de cierto + tiempo (digamos una vez al mes). - Asegurando servidores que se ejecutan como <username>root</username> + <title>Asegurar servidores que se ejecutan como + <username>root</username> y binarios SUID/SGID ntalk comsat finger - sandboxes + cajas de arena sandboxes sshd telnetd rshd rlogind - El administrador de sistemas prudente solo ejecuta los - servidores que necesita, no más, no menos. Dese cuenta - que los servidores de terceros son los más propensos - a contener errores. Por ejemplo, ejecutando una versión - antigua de - imapd o - popper es como dar un boleto universal - de root al mundo entero. - Nunca ejecute un servidor que no haya revisado cuidadosamente. - Muchos servidores no necesitan ejecutarse como - root. Por ejemplo, los daemons - ntalk, - comsat y - finger pueden ejecutarse en una - caja de arena (sandbox) especial de usuario. - Una caja de arena no es perfecta, a menos que pase por muchos - problemas, pero la aproximación de cebolla a la seguridad - todavía prevalece: Si alguien es capaz de penetrar a - través de un servidor ejecutándose en una caja - de arena, todavía tendría que salirse de la caja de - arena. Mientras más capas tenga que romper el atacante - es menor la posibilidad de su éxito. Los agujeros de - root han sido hallados historicamente en virtualmente - cualquier servidor que se ha ejecutado como root, - incluyendo servidores básicos del sistema. - Si está ejecutando una máquina a través de - la cual la gente solo entra por - sshd y nunca entra por - telnetd o - rshd o - rlogind, entonces ¡apague esos - servicios! + Un administrador de sistemas prudente sólo + ejecutará los servidores que necesita, ni uno más + ni uno menos. Dese cuenta de que los servidores ajenos son + los más propensos a contener errores. Por ejemplo, + ejecutando una versión desfasada de + imapd o + popper es como dar una entrada universal + de root al mundo entero. + Nunca ejecute un servidor que no haya revisado cuidadosamente. + Muchos servidores no necesitan ejecutarse como + root. Por ejemplo, los dæmons + ntalk, + comsat y + finger pueden ejecutarse en una + caja de arena (sandbox) especial de usuario. + Una caja de arena no es perfecta, a menos que pase por muchos + problemas, pero la aproximación de cebolla a la seguridad + prevalece aún y todo: Si alguien es capaz de penetrar a + través de un servidor ejecutándose en una caja + de arena, todavía tendrá que salir de la caja de + arena. Cuantas más capas tenga que romper el atacante + menor será la posibilidad de éxito que tenga. + Se han encontrado vías de entrada a + root en virtualmente todos los servidores + que se haya ejecutado como root, + incluyendo servidores básicos del sistema. + Si está tiene una máquina a través de + la cual la gente sólo entra por + sshd, y nunca entra por + telnetd, + rshd, o + rlogind + apague esos servicios. - &os; ahora por omisión ejecuta - ntalkd, - comsat y - finger en una caja de arena. - Otro programa que puede ser candidato para correr en una - caja de arena es &man.named.8;. - /etc/defaults/rc.conf incluye los - argumentos necesarios para correr named - en una caja de arena de una forma comentada. Dependiendo de si - está instalando un nuevo sistema o actualizando un sistema - existente, las cuentas especiales de usuario utilizadas por - estas cajas de arena puede que no estén instaladas. - El administrador de sistemas prudente debe investigar e + &os; ejecuta por defecto + ntalkd, + comsat y + finger en una caja de arena. + Otro programa que puede ser candidato para ejecutarse en una + caja de arena es &man.named.8;. + /etc/defaults/rc.conf contiene las directrices + necesarias (con comentarios) para usar named + en una caja de arena. Dependiendo de si + está instalando un nuevo sistema o actualizando un sistema + ya existente, las cuentas especiales de usuario que usan + estas cajas de arena puede que no estén instaladas. + El administrador de sistemas prudente debe investigar e implementar cajas de arena para servidores siempre que sea posible. sendmail - Existen un número de otros servidores que tipicamente - no se ejecutan en cajas de arena: - sendmail, - imapd, ftpd, - y otros. Existen alternativas para algunos de estos, pero - instalarlas puede requerir más trabajo del que tal vez - esté dispuesto a realizar (el factor conveniencia - ataca de nuevo). Tal vez tenga que correr estos servidores como - root y depender de otros mecanismos para - detectar intrusiones que puedan ocurrir a través de + Existen numerosos servidores que no se suelen + ejecutar en cajas de arena: + sendmail, + imapd, ftpd, + y otros. Existen alternativas para algunos de ellos, pero + instalarlas puede requerir más trabajo del que tal vez + esté dispuesto a realizar (el factor comodidad ataca de + nuevo). Tal vez tenga que ejecutar estos servidores como + root y depender de otros mecanismos para + detectar intrusiones que puedan tener lugar a través de ellos. - Los otros grandes agujeros de root - potenciales en un sistema son los binarios - suid y sgid root instalados en el sistema. La mayoría - de estos binarios, como rlogin, - residen en /bin, /sbin, - /usr/bin o /usr/sbin. - Aunque nada es 100% seguro, los binarios suid y sgid del - sistema por omisión pueden ser considerados razonablemente - seguros. Pero aún así, - agujeros root son encontrados - ocasionalmente en estos binarios. Un agujero root - fué entontrado en Xlib en - 1998 que hizo a xterm - (que es tipicamente suid) vulnerable. Es mejor prevenir que - lamentar y el administrador de sistemas prudente restringirá - los binarios suid, que solo el staff debe de ejecutar, a un - grupo especial que solo el staff pueda accesar, y deshacerse - de cualquier binario suid (chmod 000) - que nadie utilice. Un servidor sin pantalla generalmente - no necesita un binario xterm. - Binarios sgid pueden ser igual de peligrosos. Si un - intruso puede comprometer un binario sgid-kmem, el intruso - podría ser capaz de leer /dev/kmem - y así leer el archivo encriptado de contraseñas, - comprometiendo potencialmente cualquier cuenta con - contraseña. Alternativamente, un intruso que compromete - el grupo kmem puede monitorear teclazos - mandados a través de ptys, incluyendo ptys utilizados - por usuarios que accesan por métodos seguros. - Un intruso que compromete el grupo tty - puede escribir a casi cualquier pty de usuarios. - Si un usuario está corriendo un programa de terminal o - emulador con una propiedad de simulación de teclado, el - intruso puede potencialmente generar un flujo de datos que - provoque que la terminal del usuario haga eco de un comando, - el cual es entonces ejecutado como ese usuario. + Los otros grandes agujeros potenciales de + root que encontramos en un sistema son los + binarios suid-root y sgid. La mayoría + de estos binarios, como rlogin, + están en /bin, /sbin, + /usr/bin o /usr/sbin. + Aunque no hay nada absolutamente seguro los binarios suid y sgid + del sistema por defecto pueden considerarse razonablemente + seguros. Aún así, de vez en cuando aparecen + agujeros root en estos binarios. + En 1998 se encontró un agujero + root en + Xlib, que hacía a + xterm (que suele ser suid) + vulnerable. Es mejor prevenir que curar, y el administrador de + sistemas prudente restringirá los binarios suid, que + sólo el personal de administración debe ejecutar, + a un grupo especial al que sólo dicho personal pueda acceder, + y deshacerse de cualquier binario suid + (chmod 000) que no se use. + Un servidor sin pantalla generalmente no necesita un binario + xterm. Los binarios sgid pueden ser + igual de peligrosos. Si un intruso logra comprometer un binario + sgid-kmem, el intruso podría leer + /dev/kmem y llegar a leer el fichero + cifrado de contraseñas, poniendo en compromiso potencial + cualquier cuenta con contraseña. Por otra parte, un intruso + que comprometa el grupo kmem puede monitorizar + las pulsaciones de teclado que se envien a través de ptys, + incluyendo las ptys a las que acceden usuarios que emplean + métodos seguros. Un intruso que comprometa el grupo + tty puede escribir en la pty de casi + cualquier usuario. Si un usuario ejecuta un programa de terminal + o un emulador capaz de simular un teclado, el intruso podría + generar un flujo de datos que provoque que la terminal del + usuario muestre una orden en pantalla, orden que el usuario + ejecutará. - Asegurando cuentas de usuarios - - Las cuentas de usuario son usualmente las más - difíciles de asegurar. Aunque puede imponer restricciones - de acceso draconianas en su staff y estrellar - sus contraseñas, tal vez no pueda hacerlo con cualquier - cuenta general de usuario que tenga. Si tiene suficiente control, - tal vez triunfe y sea capaz de asegurar las cuentas de - usuarios con propiedad. Si no, simplemente tiene que ser más - vigilante en el monitoreo de esas cuentas. El uso de ssh y - Kerberos para cuentas de usuario es más problemático - debido a la administración adicional y soporte técnico - requerido, pero es todavía una buena solución - comparada a un archivo de contraseñas encriptadas. + Asegurar las cuentas de usuario + + Las cuentas de usuario suelen ser las más + difíciles de asegurar. Aunque puede imponer restricciones + de acceso draconianas a su personal administrativo y + estrellar sus contraseñas, tal vez no pueda + hacerlo con todas las cuentas de todos sus usuarios. Si mantiene + el control en un grado suficiente quizás lo logre y sea + capaz de hacer que las cuentas de sus usuarios sean seguras. Si no, + tendrá que ser más cuidadoso (aún) en la + monitorización de esas cuentas. Usar ssh y Kerberos en + cuentas de usuario da más problemas debido al soporte + técnico y administrativo que requerirá, pero sigue + siendo mejor solución que un fichero de + contraseñas cifradas. - Asegurando el archivo de contraseñas - - La única manera segura es ponerle * - a tantas contraseñas como sea posible y utilizar ssh o - Kerberos para accesar esas cuentas. Aunque el archivo - encriptado de contraseñas (/etc/spwd.db) - solo puede ser leído por root, puede - ser posible para un intruso obtener acceso de lectura a ese - archivo incluso si el etacante no puede obtener - acceso de escritura como root. - - Sus scripts de seguridad deben revisar siempre por - cambios en el archivo de contraseñas - (ver Revisando integridad de archivos abajo) - y reportarlos. + Asegurar el fichero de contraseñas + + La única manera segura es ponerle * + a tantas contraseñas como sea posible y utilizar ssh o + Kerberos para acceder a esas cuentas. Aunque el fichero + cifrado de contraseñas (/etc/spwd.db) + sólo puede ser legible para root, puede + que un intruso consiga acceso de lectura a ese fichero, incluso sin + haber alcanzado el acceso de escritura como root. + + Sus scripts de seguridad deben buscar siempre + cambios en el fichero de contraseñas + (consulte Revisión de + integridad de ficheros más abajo) e informar de + ellos. - Asegurando del Kernel, dispositivos crudos y - sistema de archivos - - Si un atacante compromete root puede - hacer cualquier cosa, - pero existen ciertas conveniencias. Por ejemplo, la mayoría - de los Kernels modernos tienen un dispositivo olfateador de - paquetes integrado. Bajo &os; es llamado dispositivo - bpf. Un intruso tratará - comunmente de ejecutar un olfateador de paquetes en una - máquina comprometida. No necesita darle a un intruso - la capacidad y la mayoría de los sistemas no necesitan - que se compile el dispositivo bpf. + Asegurar el Kernel, dispositivos en bruto y el sistema + sistema de ficheros + + Si un atacante compromete root puede + hacer cualquier cosa, pero hay ciertas cosas que puede usted + preparar para curarse en salud. Por ejemplo, + la mayoría de los kernel modernos tienen un dispositivo + de los Kernels modernos tienen un integrado un + dispositivo de paquetes. En &os; se llama + bpf. Un intruso típico + tratará de ejecutar un sniffer de paquetes + en una máquina comprometida. No debería darle a + ese intruso tal recurso, y la mayoría de los sistemas no + necesitan el dispositivo + bpf. sysctl - Pero incluso si apaga el dispositivo bpf, - todavía tiene que preocuparse por + Pero si desactiva el dispositivo bpf + todavía tendrá que preocuparse por /dev/mem y - /dev/kmem. - Para eso, el intruso puede todavía escribir a - dispositivos de disco crudos. También, existe otra - opción del kernel llamada cargador de módulos, - &man.kldload.8;. Un intruso con iniciativa puede usar un - módulo KLD para instalar su propio dispositivo - bpf, u otro dispositivo de - olfateo en un kernel en ejecución. - Para prevenir estos problemas debe ejecutar el kernel en - un nivel de seguridad mayor, al menos en securelevel 1. - El securelevel puede ser activado con sysctl - en la variable kern.securelevel. - Una vez que ha activado securelevel a 1, los accesos de - escritura a dispositivos crudos serán denegados y - las banderas especiales schg serán - impuestas. - También debe asegurar que la bandera - schg esté habilitada en archivos - binarios críticos para el arranque, directorios y - scripts — todo lo que se ejecuta hasta el punto en que - se activa el securelevel. Esto puede ser una acción - exagerada, y actualizar el sistema es mucho más - complicado cuando se opera en un nivel de seguridad superior. - Puede comprometer y ejecutar el sistema a un nivel de seguridad - superior pero no activar la bandera schg - para cada archivo y directorio del sistema bajo el sol. - Otra posibilidad es simplemente montar / y - /usr de solo lectura. - Se debe notar que siendo demasiado draconiano en lo que trata - de proteger puede prevenir toda la detección importante - de una intrusión. + /dev/kmem. + Desde ellos el intruso podría en dispositivos de disco + en bruto. También hay que tener muy en cuenta + una opción del kernel llamada cargador de módulos, + &man.kldload.8;. Un intruso con iniciativa puede usar un + módulo KLD para instalar su propio dispositivo + bpf, u otro dispositivo + que le permita el sniffing en un kernel en + ejecución. Para prevenir estos problemas debe ejecutar el + kernel en un nivel de seguridad mayor, al menos en securelevel 1. + Puede configurar el securelevel mediante una sysctl + en la variable kern.securelevel. + Una vez que tiene su securelevel a 1, los accesos de + escritura a dispositivos en bruto se + denegarán y se impondrán las banderas especiales + schg. + También debe cerciorarse de activar la bandera + schg en binarios críticos para el arranque, + directorios y scripts (dicho de otro modo, todo aquello que se + ejecuta antes de que se active el + securelevel). Puede ser que todo esto sea una exageración, + sobre todo teniendo en cuenta que la actualización del sistema + se complica bastante a medida que se incrementa el nivel de + seguridad. Puede ejecutar el sistema a un nivel de seguridad + superior pero no activar la bandera schg + en cada fichero y directorio del sistema. Otra posibilidad es + montar / y /usr como + sólo lectura. Recuerde que siendo demasiado draconiano + en aquello que busca proteger puede dificultar mucho la + detección de una intrusión. - Revisando integridad de archivos: binarios, archivos de - configuración, etc. - - Cuando se trata de protección, solo se puede proteger - la configuración central del sistema y archivos de - control hasta un punto antes de que el factor conveniencia - levante su fea cabeza. Por ejemplo, usando - chflags para activar el bit schg - en la mayoría de los archivos en / - y /usr es probablemente contraproducente, - debido a que puede proteger los archivos, pero también - cierra una ventana de detección. - La última capa de su seguridad tipo cebolla es quizás - la más importante — detección. El resto de - su seguridad es inutil (o, peor, darle un falso sentido de - seguridad) si no puede detectar incursiones potenciales. - La mitad del trabajo de la cebolla es alentar al atacante, en lugar + Revisión de integridad de ficheros: binarios, + ficheros de configuración, etc. + + Cuando se piensa de proteccón, sólo se puede + proteger la configuración central del sistema y los ficheros + de control hasta el momento en el que el factor comodidad salta + a la palestra. Por ejemplo, si usa + chflags para activar el bit schg + en la mayoría de los ficheros de / + y /usr probablemente sea contraproducente; + puede proteger los ficheros haciéndolo, pero también + cierra una vía de detección. La última capa + de su modelo de seguridad tipo cebolla es quizás la + más importante: la detección. El resto de su + estructura de seguridad será inútil (o peor + aún, le proporcionará un sentimiento de seguridad + totalmente infundado) si no puede detectar posibles intrusiones. + La mitad del trabajo de la cebolla es alentar al atacante, en lugar de detenerlo, para darle a la parte de la ecuación de - detección una oportunidad de atraparlo en el acto. - - La mejor manera de detectar una incursión es buscar - archivos modificados, perdidos o inesperados. La mejor manera - de buscar archivos modificados es desde otro (muchas veces - centralizado) sistema con acceso limitado. - Escribiendo sus scripts de seguridad en un sistema extra-seguro - con acceso limitado los hace casi invisibles a atacantes - potenciales, y esto es importante. Para tomar máxima - ventaja generalmente tiene que proporcionar a la máquina - con acceso limitado acceso significativo a las otras máquinas - en el negocio, usualmente ya sea haciendo una importación - NFS de solo lectura de las otras máquinas a la máquina - de acceso limitado o configurando pares de llaves ssh para - permitir a la máquina de acceso limitado hacer ssh a - las otras máquinas. A excepción de su tráfico - de red, NFS es el método menos visible — permitiendo - monitorear los sistemas de archivos en cada máquina cliente - virtualmente indetectado. Si su servidor de acceso limitado - está conectado a las máquinas cliente a través - de un concentrador o a través de varias capas de ruteo, - el método NFS puede ser muy inseguro (network-wise) - y utilizar ssh puede ser la mejor opción incluso - con las huellas de auditoría que ssh presenta. - - Una vez que le da a una maáquina de acceso limitado al - menos acceso de lectura a los sistemas cliente que se supone va - a monitorear, debe escribir scripts para hacer el monitoreo. - Dado un montaje NFS, puede escribir scripts con utilidades - simples como &man.find.1; y &man.md5.1;. Es mejor ejecutar - md5 fisicamente en los archivos de las máquinas cliente - al menos una vez al día, y probar archivos de control - como los encontrados en /etc y - /usr/local/etc incluso más seguido. - Cuando se encuentren discrepancias, relativas a la información - base md5 que la máquina de acceso limitado conoce como - válida, esto debe gritarle a un administrador de sistemas - que vaya a verificarlo. Un buen script de seguridad también - debe revisar por binarios suid inapropiados y por archivos nuevos - o borrados en particiones del sistema como / - y /usr. - - Al utilizar ssh en lugar de NFS, - escribir el script de seguridad es mucho más complicado. - Esencialmente tiene que pasar por scp los - scripts a la máquina cliente para poder ejecutarlos, - haciéndolos visibles, y para seguridad también - necesita pasar por scp los binarios - (como find) que utilizan esos scripts. El cliente - ssh en la máquina cliente - puede estar ya comprometida. Con todo, utilizar ssh - puede ser necesario al trabajar sobre enlaces - inseguros, pero también es mucho más dificil - de manejar. - - Un buen script de seguridad revisará también - por cambios a la configuración de los archivos de acceso - de usuarios y miembros del staff: + detección una oportunidad de atraparlo con las manos en la + masa. + + La mejor manera de detectar una intrusión es buscar + ficheros modificados, perdidos, o cuya presencia o estado sea + inesperado. La mejor forma de buscar ficheros modificados 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 + máximo partido debe proporcionar a esa máquina con + acceso restringido un acceso preferente al contenido de las otras + máquinas de su entorno; suele hacerse mediante la + importación vía NFS de sólo lectura de las + demás máquinas, o configurando pares de llaves ssh + para acceder a las otras máquinas desde la que tiene el + acceso restringido. Si exceptuamos el tráfico de red, NFS + es el método menos visible y le permite monitorizar los + sistemas de ficheros de cada máquina cliente de forma + prácticamente indetectable. Si su servidor de acceso + restringido está conectado a las máquinas clientes + a través de un concentrador o a través de varias + capas de encaminamiento el método NFS puede ser muy inseguro, + por lo que ssh puede ser la mejor opción, incluso con + las huellas de auditoría que ssh va dejando. + + Una vez que le da a una máquina de acceso restringido + (al menos) acceso de lectura a los sistemas cliente que va + a monitorizar, tendrá que escribir scripts + para efectuar la monitorización. Si va a usar un montaje + NFS puede escribir scripts utilizando simples + herramientas del sistema como + &man.find.1; y &man.md5.1;. Es aconsejable ejecutar MD5 + físicamente en los ficheros de las máquinas cliente + al menos una vez al día, y comprobar los ficheros de control + (los que hay en /etc y + /usr/local/etc) con una frecuencia incluso + mayor. Si aparecen discrepancias al compararlos con la + información basada en MD5 que la máquina de acceso + restringido usa como base debe hacer una comprobación + inmediata y profunda. Un buen script también + debe buscar binarios que sean suid sin razón aparente, y + ficheros nuevos o borrados en particiones del sistema como + / y /usr. + + Si usa ssh en lugar de NFS será mucho más + complicado escribir el script de seguridad. + En esencia, tiene que pasar por scp los + scripts a la máquina cliente para poder + ejecutarlos, haciéndolos visibles; por seguridad, + también tendrá que pasar vía + scp los binarios (por ejemplo find) que + utilizan dichos scripts. El cliente + ssh de la máquina cliente + puede estar ya bajo el control del intruso. Con todo y con eso, + puede ser necesario usar ssh si trabaja sobre enlaces inseguros, + también es mucho más difícil de manejar. + + Un buen script de seguridad buscará + también cambios en la configuración de los ficheros + de acceso de usuarios y miembros del personal de + administración: .rhosts, .shosts, - .ssh/authorized_keys y demás; - archivos que caigan fuera del rango de revisión + .ssh/authorized_keys, etc; en resumen, + ficheros fuera del rango de revisión MD5. - Si tiene una cantidad enorme de espacio en disco para usuarios, - puede tomar mucho tiempo recorrer cada archivo en esas - particiones. En este caso, configurando banderas de montaje - para deshabilitar binarios y dispositivos suid en esas particiones - es una buena idea. Las opciones nodev y - nosuid (vea &man.mount.8;) son lo que - necesita revisar. Probablemente debe escanearlos de todas - maneras, al menos una vez a la semana, ya que el objeto de esta - capa es detectar intrusiones ya sea que la instrusión - haya sido efectiva o no. - - La contabilidad de procesos (vea &man.accton.8;) es una - opción relativamente con una carga ligera del sistema - operativo la cual puede ayudar como un mecanismo de - evaluación post-intrusión. Es especialmente - útil para rastrear como un intruso en realidad - penetró en un sistema, asumiendo que el archivo - esté todavía intacto despues de que la - intrusión ocurrió. - - Finalmente, los scripts de seguridad deben procesar los - archivos de log, y los mismo logs deben ser generados de una - manera lo más segura posible — un syslog remoto - puede ser muy útil. Un intruso trata de cubrir sus - huellas, y los archivos de log son críticos para el - administrador de sistema tratando de rastrear la hora y el - método de la intrusión inicial. Una manera de - mantener un registro permanente de los archivos de log es - ejecutar la consola del sistema en un puerto serial y - recolectar la información en una base continua - mediante una máquina segura monitoreando las consolas. + Si tiene que vérselas con una cantidad enorme de + espacio en disco para usuarios le llevará mucho tiempo + recorrer cada fichero de cada partición. En su caso + sería una buena idea configurar mediante opciones de + montaje la deshabilitación de binarios y dispositivos + suid en esas particiones. Revise las opciones + nodev y nosuid de + &man.mount.8;. Debería 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 &man.accton.8;) es una + opción con una carga relativamente ligera para el sistema + operativo, y puede ayudarle como mecanismo de + evaluación tras una intrusión. Es especialmente + útil para rastrear cómo consiguión realmente + acceder el intruso al sistema (asumiendo que el fichero + esté intacto después de la intrusión). + + Los scripts de seguridad deben procesar los + logs, y los propios logs deben generarse de la forma más + segura posible: un syslog remoto puede ser muy + útil. Un intruso trata de cubrir sus huellas, los logs + son un recurso crítico cuando el administrador de sistemas + intenta determinar la hora y el método de la intrusión + inicial. La ejecución de la consola del sistema en un + puerto serie y recolectar la información de forma + periódica en una máquina segura de + monitorización de consolas es una forma de cumplir esta + tarea. Paranoia - Un poco de paranoia nunca lastima. Como una regla, un - administrador de sistema puede agregar cualquier número - de mecanismos de seguridad, siempre que estos no afecten - la conveniencia, y puede agregar mecanismos de seguridad - que si afecten la conveniencia con - un buen razonamiento. Incluso más importante, un - administrador de seguridad debe mezclarlos un poco — - si utiliza recomendaciones como las dadas en este documento - exactamente, está dando su metodología al - posible atacante que también tenga acceso a este - documento. + Un poco de paranoia nunca está de más. + Como norma, un administrador de sistemas puede añadir + cualquier tipo de mecanismo de seguridad siempre y cuando no + afecte a la comodidad, y puede añadir mecanismos de seguridad + que afecten a la comodidad + si tiene una buena razón para hacerlo. Más + aún, 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 también + está sirviendo en bandeja de plata al posible atancante + su metodología. Ese posible atacante también + tiene acceso a este documento. - Ataques de negación de servicios - Ataques de negación de servicios (DoS) + Ataques de denegación de servicio + Ataques de denegación de + servicio (DoS) - Esta sección cubre ataques de negación de servicios. - Un ataque DoS es tipicamente un ataque de paquetes. Aunque no hay - mucho que pueda hacer acerca de ataques con paquetes imitados - (spoofed) que saturen su red, generalmente puede limitar el daño - asegurándose que los ataques no tiren sus servidores. + Esta sección cubre ataques de denegación de + servicio. Un ataque DoS suele consistir en un ataque mediante + paquetes. NO hay mucho que pueda hacerse contra un ataque + mediante paquetes falsificados (spoofed) que busque + saturar su red, pero puede limitar el daño + asegurándose de que los ataques no tiren sus servidores. - Limitando forks en el servidor. + Limitación de forks en el servidor. - Limitando ataques springboard (ataques de respuesta ICMP, - ping broadcast, etc.). + Limitación de ataques springboard + (ataques de respuesta ICMP, ping broadcast, etc.) - Caché de ruteo del Kernel. + Caché de rutas del kernel. - Un ataque común DoS es contra un servidor con instancias - (forking) que trata de provocar que el servidor consuma procesos, descriptores - de archivos y memoria, hasta que la máquina muere. - inetd (vea &man.inetd.8;) tiene - varias opciones para limitar este tipo de ataque. - Se debe notar que mientras es posible prevenir que una máquina - se caiga, generalmente no es posible prevenir que un servicio sea - interrumpido por el ataque. Lea la página de manual - de inetd con cuidado y ponga atención - especialmente las opciones , , - y . Note que los ataques con direcciones IP imitadas - rodearán la opción de - inetd, así que una - combinación de opciones debe ser utilizada. Algunos - servidores que se ejecutan en solitario cuentan con + Un típico ataque DoS contra un servidor con instancias + (forks) sería tratar de provocar que el servidor consuma + procesos, descriptores de fichero y memoria hasta tirar la + máquina. + inetd (consulte &man.inetd.8;) + dispone de varias opciones para limitar este tipo de ataque. + Recuerde que aunque es posible evitar que una máquina + caiga, generalmente no es posible evitar que un servicio sea + vea interrumpido a causa el ataque. Consulte la página + de manual de inetd atentamente y + sobre todo estudie las las opciones + , , + y . Observe que los ataques con direcciones IP + falsificadas sortearán la opción de + inetd, así que debe usar una + combinación de opciones. Algunos servidores + autónomos (standalone) cuentan con parámetros de autolimitación de instancias. - Sendmail tiene su opción - , la cual tiende a trabajar - mucho mejor que tratando de usar las opciones de límite - de carga de sendmail debido al retraso que provoca la carga. - Debe especificar un parámetro - MaxDaemonChildren, cuando inicia - sendmail, lo suficientemente alto - para manejar su carga esperada, pero no tan alto que la - computadora no pueda manejar ese número de - sendmails sin caerse de boca. - También es prudente ejecutar sendmail en modo de cola - () y correr el daemon - (sendmail -bd) - de manera separada de las ejecuciones de cola - (sendmail -q15m). Si todavía desea - entregas en tiempo real puede ejecutar la cola a un intervalo - menor, como , pero asegúrese de + Sendmail tiene la opción + , que tiende a funcionar + mucho mejor que las opciones de límite + de carga de sendmail debido al retraso que provoca la carga. + Debe especificar un parámetro + MaxDaemonChildren al inicio de + sendmail que sea lo suficientemente alto + como para gestionar la carga esperada, pero no tan alto que la + computadora no pueda absorber tal número de + sendmails sin caerse de boca. + También es prudente ejecutar sendmail en modo de cola + () y ejecutar el + dæmon (sendmail -bd) + de manera independiente de las ejecuciones de cola + (sendmail -q15m). Si a pesar de todo necesita + entregas en tiempo real puede ejecutar la cola a un intervalo + menor, como , pero asegúrese de especificar una opción MaxDaemonChildren razonable para ese sendmail y así - prevenir fallas en cascada. + evitar fallos en cascada. - Syslogd puede ser atacado directamente - y se recomienda fuertemente que utilice la opción - siempre que sea posible, y la opción - de otra manera. - - También debe ser extremadamente cuidadoso con servicios - de conexión inversa como ident inverso de - TCP Wrapper, que puede ser atacado - directamente. Generalmente no va a querer utilizar la - propiedad de ident inverso de - TCP Wrapper por esta razón. - - Es una muy buena idea proteger los servicios internos - de acceso externo protegiéndolos vía firewall - en los ruteadores de los bordes. - La idea aquí es prevenir ataques de saturación - desde el exterior de la LAN, no tanto para proteger servicios - internos de comprometimientos root basados - en red. Siempre configure un firewall exclusivo, ej., - restringir todo menos los puertos - A, B, C, D y M-Z. De esta manera puede restringir - todos sus puertos bajos exceptuando ciertos servicios específicos - como named (si es el primario para - una zona), ntalkd, - sendmail y otros servicios accesibles - desde Internet. Si trata de configurar el firewall de la otra - manera — como un firewall inclusivo o permisivo, existe - una gran posibilidad de que olvide cerrar un - par de servicios, o de que agregue un nuevo servicio interno y - olvide actualizar el firewall. Puede incluso abrir el rango - de números de puerto altos en el firewall para permitir - operaciones de tipo permisivas, sin comprometer sus puertos - bajos. También tome nota que &os; le permite controlar - el rango de números de puerto utilizados para asignación - dinámica, a través de sysctl - con net.inet.ip.portrange - (sysctl -a | fgrep portrange), lo cual - también facilita la complejidad de la configuración - de su firewall. Por ejemplo, puede utilizar un rango normal - primero/último de 4000 o 5000, y un rango de puerto - alto de 49152 a 65535, entonces bloquée todo debajo de - 4000 en su firewall (excepto para ciertos puertos específicos + Syslogd puede recibir ataques directos + y se recomienda encarecidamente que utilice la opción + siempre que sea posible, y si no la opción + . + + También debe ser extremadamente cuidadoso con servicios + de conexión inversa como el ident inverso de + TCP Wrapper, que puede recibir ataques + directos. No se suele usar el ident inverso de + TCP Wrapper por esa misma + razón. + + Es una muy buena idea proteger los servicios internos + de acceso externo protegiéndolos vía con un cortafuegos + en los routers de frontera. La idea es prevenir ataques de + saturación desde el exterior de la LAN, y no tanto para + proteger servicios internos de compromisos + root basados en red. + Configure siempre un cortafuegos exclusivo, esto es, + restringir todo menos los puertos + A, B, C, D y M-Z. De esta manera restringirá + todos sus puertos con números bajos excepto ciertos + servicios específicos como + named (si es el servidor primario de + una zona), ntalkd, + sendmail, y otros servicios accesibles + desde Internet. Si configura el cortafuegos de la otra + manera (como un cortafuegos inclusivo o permisivo), tiene grandes + posibilidades de que olvide cerrar un + par de servicios, o de que agregue un nuevo servicio interno y + olvide actualizar el cortafuegos. Puede incluso abrir el rango + de números de puerto altos en el cortafuegos para permitir + operaciones de tipo permisivo sin comprometer sus puertos + bajos. Recuerde también que &os; le permite controlar + el rango de números de puerto utilizados para asignación + dinámica a través de las numerosas + net.inet.ip.portrange de + sysctl + (sysctl -a | fgrep portrange), lo cual + también facilita la complejidad de la configuración + 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; bloquée todo por debajo de + 4000 (excepto para ciertos puertos específicos accesibles desde Internet, por supuesto). ICMP_BANDLIM - Otro ataque DoS común es llamado ataque springboard - — atacar un servidor de una manera que provoca que el - servidor genere respuestas que sobrecarguen al servidor, la - red local o alguna otra máquina. Los ataques más - comunes de este tipo es el ataque ICMP ping broadcast. - El atacante imita paquetes ping enviados a la dirección - broadcast de su LAN con la dirección IP fuente puesta - a la de la máquina que desean atacar. Si sus ruteadores - de borde no están configurados para atrapar pings a - direcciones de broadcast, su LAN termina generando suficientes - respuestas a la dirección fuente imitada para saturar - a la víctima, especialmente cuando el atacante utiliza - el mismo truco en varias docenas de direcciones broadcast en - varias docenas de redes diferentes a la vez. Ataques de - broadcast de más de ciento veinte megabits han sido - medidos. Un segundo ataque común springboard es contra - el sistema de reporte de error de ICMP. Mediante la construcción - de paquetes que generan respuestas de error ICMP, un atacante - puede saturar la conexión entrante de red de un servidor - y provocar que el servidor sature su conexión saliente - de red con respuestas ICMP. Este tipo de ataque también - puede estrellar el servidor agotando sus mbufs, especialmente - si el servidor no puede drenar las respuestas ICMP que - genera lo suficientemente rápido. El kernel de &os; - tiene una nueva opción de compilación de - kernel llamada que limita la - efectividad de este tipo de ataques. La última gran - clase de ataques springboard está relacionada a - ciertos servicios de inetd como - el servicio de eco udp. Un atacante simplemente imita un paquete - UDP con la dirección fuente siendo el puerto de eco del - servidor A, y la dirección destino siendo el puerto de - eco del servidor B, donde servidor A y B están ambos - en su LAN. Los dos servidores entonces rebotan este paquete - de ida y vuelta entre ellos. El atacante puede sobrecargar - ambos servidores y la LAN simplemente inyectando un par de - paquetes de esta manera. Problemas similares existen con el - puerto chargen. Un administrador - de sistema competente apagará todos estos servicios - de inetd internos de verificación. + Otro ataque DoS común es llamado ataque + springboard: atacar un servidor de forma que + genere respuestas que lo sobrecarguen, sobrecarguen la red local + o alguna otra máquina. Los ataques más + comunes de este tipo son los + ataques ICMP ping broadcast. + El atacante falsifica paquetes ping enviados a la dirección + broadcast de su LAN simulando que la dirección IP origen + es la de la máquina que desean atacar. Si sus routers + de frontera no están configurados para lidiar con pings a + direcciones de broadcast su LAN termina generando suficientes + respuestas a la dirección origen falsificada como para saturar + a la víctima, 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 más de ciento veinte megabits. + Un segundo tipo de ataque springboard bastante + común se da contra el sistema de informe de error de ICMP. + Un atacante puede saturar la conexión entrante de red de un + servidor mediante la construcción de paquetes que generen + respuestas de error ICMP, provocando que el servidor sature su + conexión saliente de red con respuestas ICMP. Este tipo + de ataque también puede tumbar el servidor agotando sus + mbufs, especialmente si el servidor no puede + drenar lo suficientemente rápido las respuestas ICMP que + genera. El kernel de &os; tiene una opción de + compilación llamada , + que limita la efectividad de este tipo de ataques. + La última gran categoría 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 dirección de + origen, y el puerto eco del servidor B como dirección 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 + verificación de inetd. - Los ataques de paquetes imitados pueden ser también - utilizados para sobrecargar el caché de ruteo del kernel. - Refiérase a los parámetros de sysctl - net.inet.ip.rtexpire, - rtminexpire, y - rtmaxcache. - Un ataques de paquetes imitados que utiliza una dirección - IP fuente aleatoria provocará que el kernel genere una - ruta temporal en caché en la tabla de ruteo, visible con - netstat -rna | fgrep W3. Estas rutas - tipicamente expiran en 1600 segundos más o menos. Si el - kernel detecta que la tabla de ruteo en caché ya está - demasiado grande reducirá dinamicamente rtexpire - pero nunca la decrementará a menos del valor de - rtminexpire. Existen dos problemas: + Los ataques con paquetes falsificados pueden utilizarse + también para sobrecargar la caché de rutas del kernel. + Consulte los parámetros de sysctl + net.inet.ip.rtexpire, + rtminexpire, y + rtmaxcache. + Un ataque de paquetes falsificados que utiliza una dirección + 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 más o menos. Si el + kernel detecta que la tabla de rutas en caché es ya + demasiado grande reducirá dinámicamente + rtexpire, pero nunca la reducirá a un + valor que sea menor que rtminexpire. + Esto nos presenta dos problemas: - El kernel no reacciona con suficiente rapidez cuando + El kernel no reacciona con suficiente rapidez cuando un servidor ligeramente cargado es atacado. - El rtminexpire no es lo suficientemente + El rtminexpire no es lo suficientemente bajo para que el kernel sobreviva a un ataque sostenido. - Si sus servidores están conectados al Internet - mediante un T3 o mejor, puede ser prudente corregir manualmente - rtexpire y rtminexpire - por medio de &man.sysctl.8;. Nunca ponga ambos parámetros - a cero (a menos que desée estrellar la máquina). - Configurar ambos parámetros a 2 segundos debe ser - suficiente para proteger la tabla de ruteo de ataques. + Si sus servidores están conectados a Internet mediante + mediante una línea T3 o superior puede ser prudente corregir + manualmente + rtexpire y rtminexpire + por medio de &man.sysctl.8;. Nunca ponga ambos parámetros + a cero (a menos que desée estrellar la máquina). + Configurar ambos parámetros a 2 segundos debería + bastar para proteger de ataques la tabla de rutas. - Detalles de acceso con Kerberos y SSH + Otros aspectos del acceso con Kerberos y SSH ssh KerberosIV - Existen un par de detalles con respecto a - Kerberos y ssh que necesitan ser analizados si - pretende utilizarlos. Kerberos V es un excelente - protocolo de autentificación, pero existen - errores en la versión kerberizada de - telnet y - rlogin que las hacen - inapropiadas para manejar flujos binarios. - También, por omisión Kerberos no encripta una - sesión a menos que utilice la opción - . ssh - encripta todo por omisión. - - ssh funciona bastante bien en - cada caso excepto que reenvía llaves de encriptación - por omisión. Lo que esto significa es que si usted tiene - una estación de trabajo segura manteniendo llaves que - le dan acceso al resto del sistema, y hace ssh a una - máquina insegura, sus llaves son usables. Las llaves en - sí no son expuestas, pero ssh instala un puerto de - reenvío durante la duración de su login, y si - un atacante ha comprometido a root - en la máquina insegura puede utilizar ese puerto - para usar sus llaves y ganar acceso a cualquier otra + Existen un par de detalles con respecto a + Kerberos y ssh que debe analizar sy pretende usarlos. + Kerberos V es un excelente protocolo de + protocolo de autentificación, pero hay errores en la + versión kerberizada de telnet + y rlogin que las hacen + inapropiadas para gestionar flujos binarios. + Ademé Kerberos no cifra por defecto una + sesión a menos que utilice la opción + . ssh cifra todo + por defecto. + + + ssh funciona bastante bien en todos los casos, con la sola + salvedad de que por defecto reenvía llaves de cifrado. + Esto significa que si usted tiene una estación de trabajo + segura, que contiene llaves que le dan acceso al resto del sistema, + y hace ssh a una máquina insegura, sus llaves se pueden + utilizar. Las llaves en sí no se exponen, pero ssh + crea un puerto de reenvío durante el login, y si un + atacante ha comprometido el root + de la máquina insegura, puede utilizar ese puerto + para usar sus llaves y obtener acceso a cualquier otra máquina que sus llaves abran. - Recomendamos que utilice ssh en - combinación con Kerberos siempre que sea posible - para logins de staff. - ssh puede ser compilado con - soporte de Kerberos. Esto reduce su dependencia en - llaves ssh expuestas mientras al mismo tiempo - protegen las contraseñas vía Kerberos. - Las llaves ssh deben ser utilizadas solamente para tareas - automáticas desde máquinas seguras - (algo que Kerberos no hace por incompatibilidad). Recomendamos - también que desactive el reenvío de llaves - en la configuración de ssh, o que haga uso de la - opción from=IP/DOMAIN que - ssh permite en su archivo - authorized_keys para hacer la llave - usable solamente a entidades que se firmen desde máquinas + Le recomendamos que, siempre que sea posible, use ssh + combinado con Kerberos en los login de su personal de + administración. + 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 contraseñas vía + Kerberos. Las llaves ssh deben usarse sólamente para + tareas automáticas desde máquinas seguras + (algo que Kerberos no hace por incompatibilidad). Recomendamos + también que desactive el reenvío de llaves + en la configuración de ssh, o que use la + opción from=IP/DOMAIN que ssh incluye + en authorized_keys; así la llave + sólo podrá ser utilizada por entidades que se + validen desde máquinas específicas. Bill Swingle - Partes reescritas y actualizadas por + Secciones reescritas y actualizadas por DES, MD5 y Crypt seguridad crypt crypt DES MD5 - Cada usuario en un sistema &unix; tiene una contraseña - asociada con su cuenta. Parece obvio que estas contraseñas - necesiten ser conocidas solamente por el usuario y por el sistema - operativo. Para mantener estas contraseñas secretas, son - encriptadas con lo que se conoce como un hash de una pasada, - esto es, solo pueden ser facilmente encriptadas pero no - desencriptadas. En otras palabras, lo que acabamos de decir fué - tan obvio que ni siquiera es verdad: el sistema operativo mismo no - conoce realmente la contraseña. - Solamente conoce la forma encriptada de - la contraseña. La única manera de obtener la - contraseña en texto plano es por medio - de una búsqueda de fuerza bruta en el espacio de + Cada usuario de un sistema &unix; tiene una contraseña + asociada a su cuenta. Parece obvio que estas contraseñas + sólo deben ser conocidas por el usuario y por el sistema + operativo. Para que estas contraseñas permanezcan en secreto + se cifran con lo que se conoce como un + hash de una pasada, esto es, sólo pueden ser + fácilmente cifradas pero no descifradas. En otras palabras, + lo que acabamos de decir es tan obvio que ni siguiera es verdad: + el propio sistema operativo no sabe cuál es + realmente la contraseña. + Lo único que conoce es la versión + cifrada de la contrasenña. + La única manera de obtener la + contraseña en texto plano es por medio + de una búsqueda de fuerza bruta en el espacio de contraseñas posibles. - Desafortunadamente la única manera segura de encriptar - contraseñas cuando &unix; empezó a hacerlo estaba - basada en DES, la encriptación de datos estándar. - Esto no era tanto problema para usuarios residentes en EU, &os; - tuvo que buscar una manera de cumplir con las leyes de EU y - retener compatibilidad con todos las otras variantes de &unix; + Por desgracia la única manera segura de cifrar + contraseñas cuando &unix; empezó a hacerlo estaba + basada en DES, (Data Encryption Standard, + estándar de cifrado de datos). + Esto no era un gran problema para usuarios residentes en los EEUU, + pero el código fuente de &os; no se podía exportar desde + los EEUU, así que &os; hubo de buscar una forma de complir + las leyes de EEUU y al mismo tiempo mantener la compatibilidad con + otras variantes de &unix; que que todavía utilizaban DES. - La solución fué dividir las librerías - de encriptación para que los usuarios de EU pudieran - instalar las librerías DES y utilizar DES pero los - usuarios internacionales todavía tenían un - método de encriptación que podía ser - exportado. Así es como &os; llegó a usar - MD5 como su método de encriptación por - omisión. Se cree que MD5 es más seguro que - DES, así que la instalación de DES es ofrecida primordialmente - por razones de compatibilidad. + La solución fué dividir las bibliotecas de cifrado + para que los usuarios de EEUU pudieran instalar las bibliotecas DES + pero los usuarios del resto del mundo tuvieran un método + de cifrado que pudiera ser exportado. Así es como &os; + comenzó a usar MD5 como su método de cifrado por + defecto. MD5 se considera más seguro que DES, así + que se mantiene la opción de poder instalar DES por motivos + de compatibilidad. - Reconociendo su mecanismo de encriptación - - Antes de &os; 4.4 libcrypt.a era - un enlace simbólico apuntando a la librería que era - utilizada para encriptación. &os; 4.4 cambió - libcrypt.a para brindar una librería - configurable de autentificación hash de contraseñas. - Actualmente la librería soporta funciones hash DES, MD5 y - Blowfish. Por omisión &os; utiliza MD5 para encriptar + Cómo reconocer su mecanismo de cifrado + + En versiones anteriores a &os; 4.4 + libcrypt.a era un enlace + simbólico que apuntaba a la biblioteca que se usaba para el + cifrado. En &os; 4.4 se cambió + libcrypt.a para ofrecer una biblioteca hash + configurable de validación de contraseñas. + Actualmente la biblioteca permite funciones hash DES, MD5 y + Blowfish. &os; utiliza por defecto MD5 para cifrar contraseñas. - Es muy sencillo identificar que método de - encriptación &os; tiene configurado para usar. - Examinando las contraseñas encriptadas en el archivo - /etc/master.passwd en una manera. - Contraseñas encriptadas con el hash MD5 son más - largas que aquellas encriptadas con el hash DES y también - inician con los caracteres - $1$. Las contraseñas - que inician con $2a$ están - encriptadas con la función hash de Blowfish. Las - cadenas de contraseñas DES no tienen ninguna - característica particular, pero son más - cortas que las contraseñas MD5, y están - codificadas con un alfabeto de 64 caracteres el cual no - incluye el caracter $, por eso - una cadena relativamente corta que inicie con un signo de - dólar es muy probable que sea una contraseña + Es muy sencillo identificar qué método usa &os; + para cifrar. Una forma es examinando las contraseñas + cifradas en /etc/master.passwd. + Las contraseñas cifradas con el hash MD5 son más + largas que las cifradas con el hash DES, y también + comienzan por los caracteres + $1$. Las contraseñas + que comienzan por $2a$ están + cifradas con la función hash de Blowfish. Las + contraseñas DES no tienen ninguna + característica particular, pero son más cortas que + las contraseñas MD5, y están codificadas 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 + dólar es muy probablemente una contraseña DES. - El formato de contraseña utilizado para nuevas - contraseñas está controlado por la capacidad - passwd_format en - /etc/login.conf, la cual toma valores - de des, md5 o - blf. Vea la página de manual - &man.login.conf.5; para mayor información acerca de - las capacidades de login. + El formato de contraseña a usar en nuevas + contraseñas se define en + /etc/login.conf mediante + passwd_format, pudiendo tener los valores + des, md5 o + blf. Consulte la página de manual + &man.login.conf.5; para más información. - Contraseñas de una sola vez - Contraseñas de una sola vez + Contraseñas de un solo uso + Contraseñas de un solo uso seguridad - Contraseñas de una sola vez + Contraseñas de un solo uso - S/Key es un esquema de contraseña de una sola vez - en una función de hash de una pasada. &os; utiliza el - hash MD4 para compatibilidad pero otros sistemas han usado - MD5 y DES-MAC. S/Key ha sido parte del sistema base de &os; - desde la versión 1.1.5 y es usado también en - un número creciente de otros sistemas operativos. S/Key + S/Key es un esquema de contraseña de un solo uso + basado en una función de hash de sentido único. + &os; utiliza el + hash MD4 por compatibilidad, pero otros sistemas usan + MD5 y DES-MAC. S/Key forma parte del sistema base de &os; + desde la versión 1.1.5 y se usa también en + un número creciente de otros sistemas operativos. S/Key es una marca registrada de Bell Communications Research, Inc. - Desde la versión 5.0 de &os;, S/Key ha sido - reemplazado con la funcionalidad equivalente OPIE - (One-time Passwords In Everything). OPIE usa hash MD5 - por omisión. - - Existen tres tipos de contraseñas las cuales serán - discutidas abajo. La primera es la contraseña usual estilo - &unix; o Kerberos; llamaremos a esta una contraseña &unix;. - El segundo tipo es la contraseña de una sola vez la cual es - generada por el programa key de S/Key o por - el programa &man.opiekey.1; de OPIE, y aceptada por los programas - keyinit u &man.opiepasswd.1; y el prompt de - login; llamaremos a esta una contraseña de una sola vez. - El último tipo de contraseña es la contraseña - secreta que le da a los programas key/opiekey - (y a veces - keyinit/opiepasswd) la cual - es utilizada para generar contraseñas de una sola vez; - llamaremos a esta una contraseña secreta - o solamente contraseña no calificada. - - La contraseña secreta no tiene nada que ver con su - contraseña &unix;; pueden ser la misma pero esto no es - recomendable. Las contraseñas secretas S/Key y OPIE no + A partir de la versión 5.0 de &os; S/Key fué + reemplazado por su equivalente OPIE (One-time Passwords + In Everything, Contraseñas de un solo + uso para todo). OPIE usa por defecto hash MD5. + + En esta sección se explican tres tipos de + contraseña. La primera es la típica + contraseña al estilo &unix; o Kerberos; las llamaremos + contraseñas &unix;. + El segundo tipo es la contraseña de un solo uso, + que se genera con el programa key de S/Key o + con &man.opiekey.1; de OPIE, y que aceptan los programas + keyinit, &man.opiepasswd.1;, y el prompt de + login; llamaremos a esta una + contraseña de un solo uso. + El último tipo de contraseña es la contraseña + secreta que le da usted a los programas + key/opiekey (y a veces + keyinit/opiepasswd), que + se usa para generar contraseñas de un solo uso; + a estas las llamaremos contraseñas secretas, + o simplemente contraseña. + + La contraseña secreta no tiene nada que ver con su + contraseña &unix;; pueden ser la misma, pero no es + recomendable. Las contraseñas secretas S/Key y OPIE no están limitadas a 8 caracteres como las contraseñas - &unix; antiguasBajo &os; la contraseña del + &unix; antiguasEn &os; la contraseña del login estándar puede ser de hasta 128 caracteres de - longitud., pueden ser tan largas como quiera. - Contraseñas con frases de seis o siete palabras muy largas - son bastante comunes. En la mayor parte, el sistema S/Key o el - OPIE opera completamente independiente del sistema de contraseñas - &unix;. + longitud., pueden ser tan largas como se quiera. + Las contraseñas con frases de seis o siete palabras muy largas + son bastante comunes. El funcionamiento del sistema S/Key o el + OPIE es en gran parte completamente independiente del sistema de + contraseñas &unix;. - Además de la contraseña, existen dos piezas más - de datos que son importante para S/Key y OPIE. Una es la que es - conocida como la semilla o llave, - consistente de dos letras y cinco dígitos. La otra es la - que es llamada la cuenta iterativa, un número - entre 1 y 100. S/Key genera la contraseña de una sola vez - concatenando la semilla y la contraseña secreta, - entonces aplica el hash MD4/MD5 tantas veces como especifique - la cuenta iterativa y convirtiendo el resultado en seis palabras - cortas en inglés. Estas seis palabras en inglés - son su contraseña de una sola vez. El sistema de autentificación - (principalmente PAM) mantiene un registro del uso de contraseñas - de una sola vez, y el usuario es autentificado si el hash de la - contraseña brindada por el usuario es igual a la - contraseña previa. Como se utiliza un hash de una pasada - es imposible generar contraseñas de una sola vez futuras - si una contraseña usada con éxito es capturada; - la cuenta iterativa es decrementada despues de cada login exitoso - para mantener al usuario y al programa login en sincronía. - Cuanto la cuenta iterativa llega a 1, S/Key y OPIE deben ser - reinicializados. - - Hay tres programas involucrados en cada sistema los - cuales discutiremos abajo. Los programas key - y opiekey aceptan una cuenta iterativa, - una semilla y una contraseña secreta, y generan - una contraseña de una sola vez o una lista consecutiva - de contraseñas de una sola vez. Los programas - keyinit y opiepasswd - son utilizados para inicializar S/Key y OPIE respectivamente, - y para cambiar contraseñas, cuentas iterativas o - semillas; toman ya sea una frase secreta, o una cuenta - iterativa y una contraseña de una sola vez. Los programas - keyinfo y opieinfo - examinan los archivos de credenciales relevantes - (/etc/skeykeys o - /etc/opiekeys) e imprime la cuenta - iterativa y semilla actual del usuario invocante. - - Existen cuatro tipos de operaciones diferentes que cubriremos. - La primera es usando keyinit o - opiepasswd a través de una conexión - segura para configurar contraseñas de una sola vez por - primera vez, o para cambiar su contraseña o semilla. - La segunda operación es utilizando keyinit - o opiepasswd sobre una conexión insegura, - en conjunto con key u opiekey - sobre una conexión segura, para hacer lo mismo. La tercera - es usando key/opiekey para - conectarse a través de una conexión insegura. - La cuarta es usando opiekey o key - para generar un número de llaves las cuales pueden ser escritas - o impresas para llevárselas con usted al ir a algún - lugar que no cuente con conexiones seguras a ningún lado. + Además de la contraseña hay dos datos que son + importantes para S/Key y OPIE. Uno es lo que se conoce como + semilla o llave, que consiste en dos + letras y cinco dígitos. El otro dato importante se llama + la cuenta de iteración, que es un número + entre 1 y 100. S/Key genera la contraseña de un solo + uso concatenando la semilla y la contraseña secreta, + aplica el hash MD4/MD5 tantas veces como especifique la cuenta de + iteración y convierte el resultado en seis palabras + cortas en inglés. Estas seis palabras en inglés + son su contraseña de un solo uso. El sistema de + autentificación (principalmente PAM) mantiene un registro del + uso de contraseñas de un solo uso, y el usuario + puede validarse si el hash de la contraseña que proporciona + es igual a la contraseña previa. Como se utiliza un + hash de sentido único es imposible generar futuras + contraseñas de un solo uso si una contraseña + que ya ha sido usada fuera capturada; + la cuenta de iteración se reduce después de cada login + correcto para sincronizar al usuario con el programa login. + Cuanto la iteración llega a 1, S/Key y OPIE deben + reinicializar. + + Hay tres programas involucrados en cada uno de estos + sistemas. Los programas key y + opiekey aceptan una cuenta iterativa, + una semilla y una contraseña secreta, y generan + una contraseña de un solo uso o una lista consecutiva + de contraseñas de un solo uso. Los programas + keyinit y opiepasswd + se usan respectivamente para inicializar S/Key y OPIE, + y para cambiar contraseñas, cuentas iterativas o + semillas; toman ya sea una frase secreta, o una cuenta + iterativa y una contraseña de un solo uso. Los + programas keyinfo y opieinfo + examinan los ficheros de credenciales correspondientes + (/etc/skeykeys o + /etc/opiekeys) e imprimen la cuenta + iterativa y semilla del usuario invocante. + + Explicaremos cuatro tipos de operaciones diferentes. + La primera es usar keyinit o + opiepasswd a través de una conexión + segura para configurar contraseñas de un solo uso por + primera vez, o para cambiar su contraseña o semilla. + La segunda operación es utilizar keyinit + o opiepasswd a través de una conexión + insegura, además de usar key u + opiekey sobre una conexión segura para + hacer lo mismo. La tercera es usar + key/opiekey para conectarse a + través de una conexión insegura. La cuarta es usar + opiekey o key para generar + numerosas llaves, que pueden ser escritas para llevarlas con usted + al ir a algún lugar desde el que no se puedan hacer conexiones + seguras a ningún sitio. Inicialización de conexiones seguras - Para inicializar S/Key por primera vez, cambie su contraseña, - o cambie su semilla mientras esta conectado a través de - una conexión segura (ej., en la consola de una máquina - o vía ssh), use el comando - keyinit sin ningún parámetro - mientras está conectado con su cuenta: + Para inicializar S/Key por primera vez cambie su contraseña, + o cambie su semilla mientras está conectado a través de + una conexión segura (esto es, en la consola de una + máquina o vía ssh); use + keyinit sin ningún parámetro: &prompt.user; keyinit 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 - Para OPIE, es utilizado opiepasswd: + En OPIE se utiliza opiepasswd: &prompt.user; opiepasswd -c [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 ingresar - una contraseña o frase. Recuerde, que esta no es la - contraseña que utilizará para entrar, esta es - usada para generar sus llaves de una sola vez. La línea - ID da los parámetros de su instancia - en particular: su nombre de login, la cuenta iterativa y - semilla. Al hacer login el sistema recordará estos - parámetros y los presentará de nuevo para que - no tenga que recordarlos. La última línea da - las contraseéas de una sola vez en particular que - corresponden a esos parámetros y su contraseña - secreta; si fuera a hacer nuevamente login de manera inmediata, - esta contraseña de una sola vez es la que debería - usar. + En Enter new secret pass phrase: o + Enter secret password:, debe introducir + una contraseña o frase. Recuerde que no es la + contraseña que utilizará para entrar, se usará + para generar sus llaves de un solo uso. La línea + ID da los parámetros de su instancia + en particular: su nombre de login, la cuenta iterativa y + semilla. En el momento del login el sistema recordará estos + parámetros y los presentará de nuevo para que + no tenga que recordarlos. La última línea proporciona + las contraseéas de un solo uso que + corresponden a esos parámetros y su contraseña + secreta; si fuera a hacer login de manera inmediata, + debería usar esta contraseña de una sola vez. Inicialización de conexiones inseguras - Para inicializar o cambiar su contraseña secreta - a través de una conexión insegura, necesitará - tener alguna conexión segura a algún lugar - donde pueda correr key u opiekey; - esto podría ser en la forma de un accesorio de escritorio - en una &macintosh;, o un prompt de shell en una máquina - en la cual confíe. También necesitará hacer - una cuenta iterativa (100 es probablemente un buen valor), y puede - realizar su propia semilla o utilizar una generada de manera - aleatoria. A través de una conexión insegura - (hacia la máquina que está inicializando), utilice - el comando keyinit -s: + Para inicializar o cambiar su contraseña secreta + a través de una conexión insegura, necesitará + tener alguna conexión segura a algún lugar + donde pueda ejecutar key u + opiekey; puede ser gracias a un accesorio de + escritorio o en una &macintosh;, o un prompt de shell en una + máquina en la que confíe. Necesitará + también una cuenta iterativa (100 probablemente sea un + buen valor), y puede usar su propia semilla, o usar una generada + aleatoriamente. Siguiendo con la conexión insegura + (hacia la máquina que está inicializando), ejecute + keyinit -s: &prompt.user; keyinit -s 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 - Para OPIE, necesita usar opiepasswd: + En OPIE debe usar opiepasswd: &prompt.user; opiepasswd Updating unfurl: You need the response from an OTP generator. Old secret pass phrase: otp-md5 498 to4268 ext Response: GAME GAG WELT OUT DOWN CHAT New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP MILK NELL BUOY TROY ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY - Para aceptar la semilla por omisión (la que - el programa keyinit llama de - manera confusa una key), presione - Enter. Entonces antes de proporcionar - una contraseña de acceso, cambiese a su conexión - segura o accesorio de escritorio S/Key, y dele el mismo - parámetro: + 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 contraseña de acceso + cambie a su conexión o accesorio de escritorio S/Key y + dele el mismo parámetro: &prompt.user; 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: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT - Ahora regrese a la conexión insegura y copie la - contraseña de una sola vez generada al programa - relevante. + Vuelva a la conexión insegura y copie la + contraseña de un solo uso generada al programa + que quiera usar. - Generando una sola contraseña de una sola vez + Generación una sola contraseña de un solo + uso - Una vez que ha inicializado S/Key u OPIE, cuando haga login - se le presentará un prompt como este: + Una vez que ha inicializado S/Key u OPIE, cuando haga login + verá un prompt parecido al siguiente: -&prompt.user; telnet example.com +&prompt.user; telnet ejemplo.com Trying 10.0.0.1... -Connected to example.com +Connected to ejemplo.com Escape character is '^]'. -FreeBSD/i386 (example.com) (ttypa) +FreeBSD/i386 (ejemplo.com) (ttypa) login: <username> s/key 97 fw13894 Password: - O para OPIE: + O, en el caso de OPIE: -&prompt.user; telnet example.com +&prompt.user; telnet ejemplo.com Trying 10.0.0.1... -Connected to example.com +Connected to ejemplo.com Escape character is '^]'. -FreeBSD/i386 (example.com) (ttypa) +FreeBSD/i386 (ejemplo.com) (ttypa) -login: <username> +login: <nombre_de_usuario> otp-md5 498 gr4269 ext Password: - Como una nota aparte, el prompt de S/Key u OPIE cuentan con una - opción útil (no mostrada aquí): si presiona - Enter en el prompt de contraseña, el - prompt activará el eco, para que pueda ver lo que está - tecleando. Esto puede ser extremadamente útil si está - intentando teclear una contraseña a mano, como desde una - forma impresa. + Como una nota aparte, el prompt de S/Key y OPIE + cuenta con una opción útil (que no se muestra + aquí): si pulsa Enter en el + prompt de contraseña el + prompt activará el eco para que pueda ver + en pantalla lo que teclea. Esto puede ser extremadamente + útil si está tecleando una contraseña a + a mano o desde un la lista impresa. MS-DOS Windows MacOS - En este punto necesita generar su contraseña de una - sola vez para responder a este prompt de login. Esto debe hacerse - en un sistema confiable en el que pueda ejecutar key - u opiekey. (Existen versiones de estos para DOS, - &windows; y &macos; también.) Ambos necesitan la cuenta iterativa - y la semilla como opciones de línea de comando. Puede cortar - y pegar estas desde el prompt de login en la máquina a la - que se esta firmando. + Ahora necesitará generar su contraseña de un + sólo uso para responder a este prompt de + login. Debe hacerlo en un sistema digno de confianza y en el que + pueda ejecutar key u opiekey. + Existen versiones DOS, &windows; y también para &macos;. + Ambos usarán la cuenta iterativa y la semilla como opciones + de línea de órdenes. Puede cortarlas y pegarlas desde el + prompt de login de la máquina en la + que se está identificando. - En el sistema confiable: + En el sistema de confianza: &prompt.user; 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 - Para OPIE: + Con OPIE: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT - Ahora que tiene su contraseña de una sola vez puede - continuar con el login: + Ahora que tiene su contraseña de un solo uso puede + proceder con el login: - login: <username> + login: <nombre_de_usuario> s/key 97 fw13894 -Password: <return to enable echo> +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 ... - Generando múltiples contraseñas de una sola vez + Generación de múltiples contraseñas + de un solo uso - A veces usted tiene que ir a lugares donde no hay - acceso a una máquina confiable o a una conexión - segura. En este caso, es posible utilizar los comandos + A veces usted hay que ir a lugares donde no hay + acceso a una máquina de fiar o a una conexión + segura. En estos casos, puede utilizar key y opiekey para - generar un número de contraseñas de una sola - vez con anticipación para imprimirlar y llevárselas - con usted. Por ejemplo: + generar previamente numerosas contraseñas de un solo uso + para, una vez impresas, llevárselas a donde hagan falta. + Por ejemplo: &prompt.user; key -n 5 30 zz99999 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: &prompt.user; opiekey -n 5 30 zz99999 Using the MD5 algorithm to compute response. Reminder: Don't 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 pide cinco llaves en secuencia, la - opción especifica que ese debe ser el - último número de iteración. Note que son - impresas en el orden inverso de uso - eventual. Si es realmente paranoico, tal vez quiera escribir los - resultados a mano; de otra manera puede cortar y pegar hacia lpr. - Note que cada línea muestra la cuenta iterativa y la - contraseña de una sola vez; puede encontrar cómodo - tachar las contraseñas según las vaya utilizando. + El pide cinco llaves en secuencia, la + opción especifica que ese debe ser el + último número de iteración. 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 línea muestra la cuenta iterativa y la + contraseña de un solo uso; puede ir tachando las + contraseñas según las vaya utilizando. - Restringiendo el uso de contraseñas &unix; - - S/Key puede colocar restricciones en el uso de contraseñas - &unix; basandose en el nombre de equipo, nombre de usuario, puerto de - terminal o dirección IP de una sesión de login. - Estas restricciones pueden encontrarse en el archivo de configuracio´n - /etc/skey.access. La página de manual - &man.skey.access.5; contiene más información sobre el - formato completo del archivo y detalla también algunas - precauciones de seguridad que hay que tomar en cuenta dependiendo - de este archivo para la seguridad. - - Si no existe un archivo /etc/skey.access - (esto es por omisión en sistemas &os; 4.X), entonces - a todos los usuarios se les permitirá utilizar contraseñas - &unix;. Si el archivo existe, de todas maneras, entonces a todos - los usuarios se les requerirá la utilización de - S/Key a menos que se permita explicitamente otra forma por las - declaraciones de configuración en el archivo - skey.access. En todos los casos, las - contraseñas &unix; son permitidas en la consola. - - Aquí hay una muestra del archivo de configuración - skey.access que ilustra las tres formas más - comunes de declaraciones de configuración: + Restricción del uso de contraseñas &unix; + + S/Key puede implantar restricciones en el uso de contraseñas + &unix; basándose en el nombre de equipo, nombre de usuario, + puerto de terminal o dirección IP de una sesión de + login. Consulte el fichero de configuración + /etc/skey.access. La página de manual + de &man.skey.access.5; contiene más información sobre el + formato del fichero y detalla también algunas precauciones + de seguridad que hay que tener en cuenta antes de basar nuestra + seguridad en este fichero. + + Si /etc/skey.access no existiera + (por defecto es así en sistemas &os; 4.X) todos los + usuarios podrán disponer de contraseñas &unix;. + Si el fichero existe se exigirá a todos los usuarios + el uso de S/Key, a menos que se configure de otro modo en + skey.access. En todos los casos las + contraseñas &unix; son admiten en consola. + + Aquí hay un ejemplo del fichero de configuración + skey.access que muestra las tres formas más + comunes de configuración: permit internet 192.168.0.0 255.255.0.0 permit user fnord permit port ttyd0 - La primera línea (permit internet) - permite a usuarios cuyas direcciones IP fuentes (las cuales son - vulnerables a imitación) concuerden con los valores - y máscara especificados, utilizar contraseñas &unix;. - Esto no debe ser considerado un mecanismo de seguridad, sino un - medio de recordarle a usuarios autorizados que están - usando una red insegura y necesitan utilizar S/Key para - autentificación. - - La segunda línea (permit user) - permite al nombre de usuario especificado, en este caso - fnord, utilizar contraseñas &unix; - en cualquier momento. Generalmente hablando, esto solo debe ser - usado para gente que no puede usar el programa key, - como aquellos con terminales tontas o los que son ineducables. - - La tercera línea (permit port) - permite a todos los usuarios firmados en la línea de - terminal especificada utilizar contraseñas &unix;; - esto puede ser usado para dial-ups. - - OPIE puede restringir el uso de contraseñas &unix; - basándose en la dirección IP de una sesión - de login justo como lo hace S/Key. El archivo relevante es - /etc/opieaccess, el cual está presente - por omisión en sistemas &os; 5.0 o posteriores. Por - favor revise &man.opieaccess.5; para mayor información sobre - este archivo y que consideraciones de seguridad debe tener presente - a la hora de usarlo. + La primera línea (permit internet) + permite a usuarios cuyas direcciones IP origen (las cuales son + vulnerables a una falsificación) concuerden con los valores + y máscara especificados utilizar contraseñas &unix;. + Esto no debe usarse como mecanismo de seguridad, sino como + medio de recordarle a los usuarios autorizados que están + usando una red insegura y necesitan utilizar S/Key para + la validación. + + La segunda línea (permit user) + permite al nombre de usuario especificado, en este caso + fnord, utilizar contraseñas &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 línea (permit port) + permite a todos los usuarios validados en la línea de + terminal especificada utilizar contraseñas &unix;; + esto puede usarse para usuarios que se conectan mediante + dial-ups. + + OPIE puede restringir el uso de contraseñas &unix; + basándose en la dirección IP de una sesión + de login igual que lo haría S/Key. El fichero que gestiona + esto es /etc/opieaccess, que está + incluído por defecto en sistemas &os; 5.0 o posteriores. + Revise &man.opieaccess.5; para más información sobre + este fichero y qué consideraciones de seguridad debe tener + presentes a la hora de usarlo. - Aquí hay un archivo opieaccess de muestra: + Veamos un ejemplo de opieaccess: permit 192.168.0.0 255.255.0.0 - Esta línea le permie a usuarios cuya dirección - IP fuente (la cual es vulnerable a imitación) concuerde + Esta línea permite a usuarios cuya dirección + IP de origen (vulnerable a falsificación) concuerde con los valores y máscara especificados, utilizar contraseñas &unix; en cualquier momento. - Si no concuerda ninguna regla en opieaccess, - por omisión se niegan los logins no-OPIE. + Si no concuerda ninguna regla en opieaccess + se niegan por defecto los logins no-OPIE. Tom Rhodes Escrito por: TCP Wrappers TCP Wrappers - Cualquiera familiarizado con &man.inetd.8; ha escuchado - probablemente de TCP Wrappers en algún - momento. Pero pocos individuos parecen comprender - completamente su utilidad en un ambiente de red. Parece que - todos quieren instalar un firewall para manejar conexiones - de red. Mientras un firewall tiene una amplia variedad de - usos, hay cosas que un firewall no maneja como el envío - de texto de regreso al originador de la conexión. - El software TCP hace esto y más. - En las siguientes secciones varias de las opciones de - TCP Wrappers serán discutidas, - y, cuando aplique, se brindarán ejemplos de - líneas de configuración. - - El software TCP Wrappers extiende - las habilidades de inetd para brindar - soporte para cada servidor daemon bajo su control. - Utilizando este método es posible proveer soporte de - logs, regresar mensajes a conexiones, permitir a un daemon - aceptar solamente conexiones internas, etc. Mientras algunas - de estas opciones pueden ser provistas implementando un - firewall, esto agregará no solamente una capa extra - de protección sino que irá más allá - del nivel de control que un firewall puede brindar. - - La funcionalidad agregada de TCP Wrappers - no debe ser considerada un reemplazo de un buen firewall. - TCP Wrappers puede ser utilizado en - conjunto con un firewall o otra mejoría de seguridad - aunque solo puede servir como una capa extra de protección - para el sistema. - - Ya que es una extensión a la configuración - de inetd, se espera que el lector haya - leido la sección + Cualquiera que esté familiarizado con &man.inetd.8; + probablemente haya oído hablar de + TCP Wrappers, pero poca gente parece comprender + completamente su utilidad en un entorno de red. Parece que + todos quieren instalar un cortafuegos para manejar conexiones + de red. Aunque un cortafuegos tiene una amplia variedad de + usos hay cosas que un cortafuegos no es capaz de gestionar, + como el envío de texto como respuesta al creador de la + conexión. El software TCP hace esto + y más. En las siguientes secciones se explicarán + unas cuantas opciones de + TCP Wrappers y, cuando sea necesario, se + mostrarán ejemplos de configuraciones. + + El software TCP Wrappers extiende + las habilidades de inetd para ofrecer + soporte para cada servidor dæmon bajo su control. + Utilizando este método es posible proveer soporte de + logs, devolver mensajes a conexiones, permitir a un dæmon + aceptar solamente conexiones internas, etc. Aunque algunas de estas + opciones pueden conseguirse gracias a un cortafuegos, no sólo + añadirá una capa extra de seguridad, sino que irá + más allá del nivel de control ue un cortafuegos + puede ofrecerle. + + Las brillantes capacidades de TCP Wrappers + no deben considerarse una alternativa a un buen cortafuegos. + TCP Wrappers puede usarse conjuntamente con un + cortafuegos u otro sistema de de seguridad, pues ofrece una capa + extra de protección para el sistema. + + Ya que es una extensión de la configuración + de inetd, se da por hecho que el lector ha + leído la sección configuración de inetd. - Mientras programas ejecutados por &man.inetd.8; no son - exactamente daemons, han sido llamados - tradicionalmente daemons. Este es el término que - usaremos en esta sección también. + Aunque los programas ejecutados por &man.inetd.8; no son + exactamente dæmons tradicionalmente han + recibido ese nombre. Dæmon es, por tanto, el término + que usaremos en esta sección. Configuración inicial - El único requerimiento para usar - TCP Wrappers en &os; es asegurarse - que el servidor inetd sea iniciado - desde rc.conf con la opción - ; esta es la configuración - por omisión. Por supuesto, se espera que - /etc/hosts.allow esté propiamente - configurado, pero &man.syslogd.8; aventará mensajes - a los logs del sistema en estos casos. + El único requisito para usar + TCP Wrappers en &os; es que el servidor + inetd se inicie desde + rc.conf con la opción + (es la configuración + por defecto). Por descontado, se presupone que + /etc/hosts.allow estará correctamente + configurado, pero &man.syslogd.8; enviará mensajes + a los logs del sistema si no es así. - A diferencia de otras implementaciones de TCP - Wrappers, el uso de hosts.deny ha sido - descontinuado. Todas las opciones de configuración - deben ser colocadas en /etc/hosts.allow. + A diferencia de otras implementaciones de TCP + Wrappers, se ha dejado de usar + hosts.deny. Todas las opciones de + configuración deben ir en + /etc/hosts.allow. - En la configuración más simple, las - políticas de conexión de daemons están - configuradas ya sea a permitir o bloquear, dependiendo de - las opciones en /etc/hosts.allow. - La configuración por omisión en &os; es - permitir una conexión a cada daemon iniciado con - inetd. Cambiar esta configuración - será discutido solamente despues de cubrir la - configuración básica. - - La configuración básica usualmente - toma la forma de - daemon : dirección : acción. - Donde daemon es el nombre de daemon - el cual inicia inetd. La - dirección puede ser un nombre - de equipo válido, una dirección IP o - IPv6 encerrada en corchetes ([ ]). El campo de - acción puede ser permitir o denegar para el - dar el acceso apropiado. Tenga en mente que la + En la configuración más simple las + políticas de conexión de dæmons están + configuradas ya sea a permitir o bloquear, dependiendo de + las opciones en /etc/hosts.allow. + La configuración por defecto en &os; consiste en + permitir una conexión a cada dæmon iniciado por + inetd. Es posible modificar esta + configuración, pero explicaremos cómo hacerlo + después de exponer la configuración + básica. + + La configuración básica tiene la estructura + dæmon : dirección : acción, + donde dæmon es el nombre de dæmon + que inicia inetd. La + dirección puede ser un nombre + de equipo válido, una dirección IP o + IPv6 encerrada en corchetes ([ ]). El campo + acción puede ser permitir o denegar para el + dar el acceso apropiado. Tenga presente que la configuración funciona en base a la primera - concordancia encontrada en la regla de semántica, - esto significa que el archivo de configuración es - explorado en orden ascendente por una regla que - concuerde. Cuando se encuentra una concordancia la - regla es aplicada y el proceso se detendrá. - - Existen muchas otras opciones pero estas serán - explicadas en una sección posterior. Una línea - de configuración simple puede ser facilmente - construida desde esa información solamente. Por - ejemplo para permitir conexiones POP3 - por medio del daemon mail/qpopper, - las siguientes líneas deben ser agregadas a + regla cuya semántica concuerde; + esto significa que el fichero de configuración 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 sección posterior. Una línea + de configuración simple puede generarse mediante datos + así de simples. Por ejemplo, para permitir conexiones + POP3 mediante el dæmon + mail/qpopper, añada + las siguientes líneas a hosts.allow: # This line is required for POP3 connections: qpopper : ALL : allow - Despues de añadir esta línea, inetd - necesitará reiniciar. Esto puede lograrse usando el - comando &man.kill.1;, o con el parámetro restart - con /etc/rc.d/inetd. + Despues de añadir esta línea tendrá que + reiniciar inetd. Use &man.kill.1; o use el + parámetro restart de + /etc/rc.d/inetd. Configuración avanzada - TCP Wrappers tiene - opciones avanzadas también; estas permitirán - mayor control sobre la forma en que son manejadas las - conexiones. En algunos casos puede ser una buena idea - regresar un comentario a ciertos equipos o conexiones - de daemons. En otros casos, quizás se deba - registrar un archivo de log o enviar un correo al - administrador. Otras situaciones pueden requerir - el uso de un servicio para conexiones locales - solamente. Todo esto es posible a través del - uso de opciones de configuración conocidas - como comodines, caracteres de expansión - y ejecución de comandos externos. Las diguientes dos - secciones están escritas para cubrir estas - situaciones. + Las opciones avanzadas de TCP Wrappers + le permiten un mayor control sobre la gestión de + conexiones. En algunos casos puede convenir el enío de + un comentario a ciertos equipos o conexiones de dæmons. + En otros casos, quizás se deba registrar una entrada en + un log o enviar un correo al administrador. Otro tipo de + situaciones pueden requerir el uso de un servicio + solamente para conexiones locales. Todo esto es posible gracias + al uso de unas opciones de configuración conocidas + como comodines, caracteres de expansión + y ejecución de órdenes externas. Las siguientes dos + secciones intentarán cubrir estas situaciones. - Comandos externos - - Suponga que ocurre una situación donde una - conexión debe ser negada pero se debe mandar una razón - al individuo que intentó establecer esa conexión. - ¿Como se puede lograr? Esa acción puede hacerse - posible utilizando la opción . - Cuando un intento de conexión es hecha, se llamará - a para ejecutar un comando de shell - o un script. Existe ya un ejemplo en el archivo + Órdenes externas + + Imaginemos una situación en la que una + conexión debe ser denegada pero se debe mandar un motivo + a quien intentó establecer esa conexión. + ¿Cómo? Mediante la opción + . Ante un intento de conexión se + invoca a , que ejecuta una orden de shell + o un script. Tiene un ejemplo en el fichero hosts.allow: # The rest of the daemons are protected. ALL : ALL \ : severity auth.info \ - : twist /bin/echo "No es bienvenido a utilizar %d desde %h." + : twist /bin/echo "No se permite utilizar %d desde %h." Este ejemplo muestra que el mensaje, - No es bienvenido a utilizar daemon - desde nombre de equipo. será - retornado para cualquier daemon no configurado previamente - en el archivo de acceso. + No se permite utilizar dæmon + desde nombre de equipo. se + enviará en el caso de cualquier dæmon no configurado + previamente en el fichero de acceso. Esto es extremadamente útil para enviar una respuesta - de regreso al iniciador de la conexión justo despues - que la conexión establecida es tirada. Note que - cualquier mensaje regresado debe - ser encerrado entre comillas "; - no existen excepciones a esta regla. + al creador de la conexión justo después de + que la conexión establecida es rechazada. Observe que + cualquier mensaje que se desee enviar debe ir + entre comillas "; esta regla no tiene + excepciones. - Puede ser posible lanzar un ataque de negación - de servicio en el servidor si un atacante o grupo de - atacantes pueden sobrecargar estos daemons con peticiones - de conexión. + Es posible lanzar un ataque de denegación + de servicio al servidor si un atacante o grupo de + atacantes pueden llegar a sobrecargar estos dæmons + con peticiones de conexión. - Otra posibilidad es usar la opción - en estos casos. Al igual que , - niega implicitamente la conexión - y puede ser utilizada para correr comandos de shell externos - o scripts. A diferencia de , - no mandará una respuesta de - regreso al individuo que ha establecido la conexión. - Por ejemplo, considere la siguiente línea de + Otra posibilidad en estos casos es usar la opción + . Igual que , + niega implícitamente la + conexión, y puede usarse para ejecutar órdenes de + shell externos o scripts. A diferencia de + , no + enviará una respuesta al origen de la conexión. + Veamos un ejemplo; observe la siguiente línea de configuración: - # No permitimos conexiones desde example.com: -ALL : .example.com \ - : spawn (/bin/echo %a from %h attempted to access %d >> \ + # 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 negará todos los intentos de conexión - desde el dominio *.example.com; - simultaneamente haciendo un log del nombre del equipo, - dirección IP y el daemon al - que se intentó accesar en el archivo + Esto denegará todos los intentos de conexión + desde el dominio *.ejemplo.com; + simultáneamente creará una entrada con + el nombre del equipo, dirección IP + y el dæmon al que intentó conectarse al fichero /var/log/connections.log. - Además de la sustitución de caracteres ya - explicada arriba, ej. %a, existen unas cuantas más. - Vea la página de manual &man.hosts.access.5; para - la lista completa. + Además de la sustitución de caracteres ya + expuesta más arriba (por ejemplo %a) existen unas + cuantas más. Si quiere ver la lista completa consulte + la página de manual &man.hosts.access.5;. Opciones comodín - Hasta el momento el ejemplo ALL ha sido - utilizado continuamente a lo largo de los ejemplos. Existen - otras opciones que extienden un poco más la funcionalidad. - Para ejemplificar, ALL puede ser usado para - concordar con cualquier instancia ya sea de daemon, dominio o - dirección IP. Otro comodín - dsponible es PARANOID el cual puede ser - usado para concordar con cualquier equipo que brinde una - dirección IP que puede estar - falsificada. En otras palabras, paranoid - puede ser usado para definir una acción a tomar - siempre que una conexión sea hecha desde una - dirección IP que difiera de su - nombre de equipo. El siguiente ejemplo puede arrojar más - luz en esta discusión: + Hasta ahora se ha usado ALL en todos + los ejemplos, pero hay otras opciones interesantes para + extender un poco más la funcionalidad. Por ejemplo, + ALL puede usarse para concordar con cualquier + instancia ya sea un dæmon, dominio o + dirección IP. Otro comodín + es PARANOID, que puede utilizarse para + concordar con cualquier equipo que presente una + dirección IP que pueda estar + falsificada. En otras palabras, paranoid + puede usarse para definir una acción a tomar + siempre que tenga lugar una conexión desde una + dirección IP que difiera de su + nombre de equipo. Quizás todo se vea más claro + con el siguiente ejemplo: # Bloquear peticiones posiblemente falsificadas a sendmail: sendmail : PARANOID : deny - En ese ejemplo todas las peticiones de conexión - a sendmail que tengan una - dirección IP que varíe - de su nombre de equipo seran negadas. + En ese ejemplo todas las peticiones de conexión + a sendmail que tengan una + dirección IP que varíe + de su nombre de equipo serán denegadas. - Utilizando PARANOID puede invalidar - servidores si el cliente o servidor tiene una configuración - de DNS dañada. Se recomienda - precaución del administrador. + Utilizando PARANOID puede bloquear el + acceso a servidores si el cliente o el servidor + tiene una configuración de + DNS incorrecta. Recomendamos al + administrador la máxima cautela en su uso. - Para aprender más acerca de comodines y sus - funcionalidades asociadas, vea la página de - manual &man.hosts.access.5;. + Consulte &man.hosts.access.5; si quiere saber más + sobre los comodines y sus posibilidades de uso. - Antes de que cualquiera de las líneas de - configuración específica de arriba - funcione, la primera línea debe ser comentada - en hosts.allow. Esto fué - especificado al principio de esta sección. + Si quiere que cualquiera de los ejemplos citados + funcione debe comentar la primera línea de + hosts.allow (tal y como se dijo + al principio de la sección. Mark Murray - Contribuido por + Escrito por Mark Dapoz - Basado en una contribución de + Basado en un texto de <application>KerberosIV</application> - Kerberos es un sistema/protocolo agregado para red que le permite - a usuarios autentificarse a través de los servicios de un - servidor seguro. Servicios como login remoto, copia remota, copias - de archivo inter-sistemas seguras y otras tareas de riesgo son - hechas considerablemente seguras y más controlables. + Kerberos es un sistema/protocolo de red agregado que permite + a los usuarios identificarse a través de los servicios de un + servidor seguro. Los servicios como login remoto, copia remota, copias + de ficheros de un sistema a otro y otras tantas tareas arriesgadas + pasan a ser considerablemente seguras y más controlables. - Las siguientes instrucciones pueden usarse como una guía - para configurar Kerberos como se distribuye para &os;. De todas - maneras, debe referirse a las páginas de manual relevantes - para una descripción completa. + Las siguientes instrucciones pueden usarse como una guía + para configurar Kerberos tal y como se distribuye con &os;. De todas + maneras, debe consultar diversas páginas de manual para + conocer todos los detalles. - Instalando <application>KerberosIV</application> + Instalación de <application>KerberosIV</application> MIT KerberosIV instalación - Kerberos es un componente óptimo de &os;. La manera - más fácil de instalar este software es - seleccionando la distribución krb4 o - krb5 en sysinstall - durante la instalación inicial de &os;. Esto - instalará la implementación de Kerberos - eBones (KerberosIV) o - Heimdal (Kerberos5). - Estas implementaciones son incluidas debido a que están - desarrolladas fuera de EU/Canada y estaban así disponibles - para propietarios de sistemas fuera de estos países - durante la era restrictiva de control de exportaciones en código - criptográfico desde EU. - - Alternativamente, la implementación de Kerberos - del MIT está disponible en la colección - de ports como - security/krb5. + Kerberos es un componente opcional de &os;. La manera + más fácil de instalar este software es + seleccionando la distribución krb4 o + krb5 en sysinstall + durante la instalación inicial de &os;. Desde ahí + instalará la implementación de Kerberos + eBones (KerberosIV) o + Heimdal (Kerberos5). + Estas implementaciones se incluyen porque a que han sido + desarrolladas fuera de EEUU y Canadá, lo que las + convertía en accesibles para administradores de sistemas + del resto del mundo durante la época restrictiva de control + control de exportaciones de código + criptográfico desde EEUU. + + También puede instalar la implementación de + Kerberos del MIT desde la colección de ports + (security/krb5). - Creando la base de datos inicial + Creación de la base de datos inicial - Esto es hecho en el servidor Kerberos solamente. Primero - asegúrese que no tiene bases de datos antiguas de - Kerberos. Debe cambiarse al directorio /etc/kerberosIV - y revisar que solo los siguientes archivos estén - presentes: + Esto solo debe hacerse en el servidor Kerberos. Lo primero + es asegurarse de que no tiene bases de datos de Kerberos + anteriores. Entre al directorio /etc/kerberosIV + y asegúrese de que solo estén los siguientes + ficheros: &prompt.root; cd /etc/kerberosIV &prompt.root; ls README krb.conf krb.realms - Si existe cualquier archivo adicional (como principal.* - o master_key), entonces utilice el - comando kdb_destroy para destruir la base - de datos antigua de Kerberos, o si Kerberos no está - corriendo, simplemente borre los archivos adicionales. + Si existe cualquier otro fichero (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 ficheros sobrantes. - Ahora debe editar los archivos krb.conf - y krb.realms para definir su dominio - Kerberos. En este caso el dominio será EXAMPLE.COM - y el servidor es grunt.example.com. - Editamos o creamos el archivo krb.conf: + Edite krb.conf + y krb.realms para definir su dominio + Kerberos. En nuestro ejemplo el dominio será + EJEMPLO.COM y el servidor es + grunt.ejemplo.com. + Editamos o creamos krb.conf: &prompt.root; cat krb.conf -EXAMPLE.COM -EXAMPLE.COM grunt.example.com admin server +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 ATHENA.MIT.EDU kerberos-3.mit.edu LCS.MIT.EDU kerberos.lcs.mit.edu TELECOM.MIT.EDU bitsy.mit.edu ARC.NASA.GOV trident.arc.nasa.gov - En este caso, los otros dominios no necesitan estar ahí. - Están aquí como un ejemplo de como puede hacerse a una - máquina consciente de dominios múltiples. Tal vez - no desée incluirlos por simplicidad. + Los demás dominios no deben estar forzosamente en la + configuración. Los hemos incluido como ejemplo de + cómo puede hacerse que una máquina trabaje con + múltiples dominios. Si quiere mantener todo simple puede + abstenerse de incluirlos. - La primera línea nombra el dominio en el cual el - sistema trabaja. Las otras líneas contienen entradas - dominio/equipo. El primer componente en una línea es un - dominio, y el segundo es un equipo en ese dominio que está - actuando como un centro de distribución de llaves. - Las palabras admin server que siguen al - nombre de equipo significan que ese equipo también - brinda un servidor de base da datos administrativo. Para una - explicación más completa de estos términos, - consulte por favor las páginas de manual de Kerberos. + La primera línea es el dominio en el que el + sistema funcionará. Las demás líneas + contienen entradas dominio/equipo. El primer componente de cada + línea es un dominio y el segundo es un equipo de ese + dominio, que actúa como + centro de distribución de llaves. + Las palabras admin server que siguen al + nombre de equipo significan que ese equipo también + ofrece un servidor de base da datos administrativo. + Si quiere consultar una explicación más completa de + estos términos consulte las páginas de manual de + de Kerberos. - Ahora tenemos que agregar grunt.example.com - al dominio EXAMPLE.COM y también agregar - una entrada para poner todos los equipos en el dominio - .example.com - Kerberos EXAMPLE.COM. El archivo - krb.realms puede ser actualizado como - sigue: + Ahora añadiremos + grunt.ejemplo.com al dominio + EJEMPLO.COM y también una entrada + para poner todos los equipos en el dominio + .ejemplo.com Kerberos + EJEMPLO.COM. Puede actualizar su + krb.realms del siguiente modo: &prompt.root; cat krb.realms -grunt.example.com EXAMPLE.COM -.example.com EXAMPLE.COM +grunt.ejemplo.com EJEMPLO.COM +.ejemplo.com EJEMPLO.COM .berkeley.edu CS.BERKELEY.EDU .MIT.EDU ATHENA.MIT.EDU .mit.edu ATHENA.MIT.EDU - De nuevo, los otros dominios no necesitan estar ahí. Están - aquí como un ejemplo de como una máquina puede hacerse consciente - de dominios múltiples. Tal vez desée eliminarlos para - simplificar las cosas. + Igual que en caso previo, no tiene por qué incluir + los demás dominios. Se han incluido para mostrar + cómo puede usar una máquina en múltiples + dominios. Puede eliminarlos y simplificar la + configuración. - a primera línea pone al sistema específico - en el dominio nombrado. El resto de las líneas muestran como - poner por omisión sistemas de un subdominio particular + La primera línea pone al sistema + específico + en el dominio nombrado. El resto de las líneas muestran + cómo asignar por defecto sistemas de un subdominio a un dominio Kerberos. - Ahora estamos listos para crear la base de datos. Esta solo - necesita correr en el servidor Kerberos (o centro de distribución - de llaves). Ejecute el comando kdb_init para - hacer esto: + Ya podemos crear la base de datos. Solo se ejecuta en el + servidor Kerberos (o centro de distribución de + llaves). Ejecute kdb_init: &prompt.root; kdb_init -Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM +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 tenemos que salvar la llave para que los servidores en - la máquina local puedan recogerla. Use el comando - kstash para hacer esto: + Ahora tendremos que guardar la llave para que los servidores en + la máquina local puedan recogerla. Utilice + kstash: &prompt.root; kstash Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! - Esto salva la contraseña encriptada + Esto guarda la contraseña cifrada maestra en /etc/kerberosIV/master_key. - Haciendo que corra todo + Puesta en marcha del sistema KerberosIV encendido inicial - - Dos datos principales necesitan ser agregados a la base de - datos para cada sistema que estará - asegurado con Kerberos. Sus nombres son kpasswd y - rcmd. Estos dos datos están hechos para - cada sistema, con la instancia siendo el nombre del sistema - individual. + Tendrá que añadir a la base de datos dos + entradas en concreto para cada sistema + que vaya a usar Kerberos: kpasswd y + rcmd. Se hacen para cada sistema individualmente + cada sistema, y el campo instance es el nombre + individual del sistema. - Estos daemons, kpasswd y - rcmd le permiten a otros sistemas - cambiar contraseñas de Kerberos y ejecutar comandos + Estos dæmons kpasswd y + rcmd permiten a otros sistemas + cambiar contraseñas de Kerberos y ejecutar órdenes como &man.rcp.1;, &man.rlogin.1; y &man.rsh.1;. Ahora vamos a añadir estas entradas: &prompt.root; kdb_edit 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: <---- enter RANDOM here +New Password: <---- tecleo aleatorio Verifying password -New Password: <---- enter RANDOM here +New Password: <---- tecleo aleatorio Random password [y] ? y Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: rcmd Instance: grunt <Not found>, Create [y] ? Principal: rcmd, Instance: grunt, kdc_key_ver: 1 -New Password: <---- enter RANDOM here +New Password: <---- tecleo aleatorio Verifying password -New Password: <---- enter RANDOM here +New Password: <---- tecleo aleatorio Random password [y] ? Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. -Principal name: <---- null entry here will cause an exit +Principal name: <---- si introduce datos nulos saldrá del programa - Creando el archivo de servidor + Creación del fichero del servidor - Ahora tenemos que extraer todas las instancias que definen - los servicios en cada máquina. Para esto usamos el - comando ext_srvtab. Esto creará un - archivo que debe ser copiado o movido por medios - seguros a cada cliente de Kerberos - en el directorio /etc/kerberosIV. - Este archivo debe estar presente en cada servidor y cliente, y es - crucial para la operación de Kerberos. + Ahora tendremos que extraer todas las instancias que definen + los servicios en cada máquina; para ello usaremos + ext_srvtab. Esto creará un + fichero que debe ser copiado o movido por medios + seguros al directorio + /etc/kerberosIV de cada + cliente Kerberos. Este fichero debe existir en todos los + servidores y clientes dada su importancia clave para el + funcionamiento de Kerberos. &prompt.root; ext_srvtab grunt Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Generating 'grunt-new-srvtab'.... - Ahora, este comando solo genera un archivo temporal el cual - debe ser renombrado a srvtab para que todos - los servidores puedan recogerlo. Utilice el comando + Esta orden solo genera un fichero temporal al que tendrá + que cambiar el nombre a srvtab para que todos + los servidores puedan recogerlo. Utilice &man.mv.1; para moverlo al lugar correcto en el sistema original: &prompt.root; mv grunt-new-srvtab srvtab - Si el archivo es para un sistema cliente, y la red no se considera - segura, entonces copie el - client-new-srvtab a un - medio removible y transportelo por medios físicos seguros. - Asegúrese de renombrarlo a srvtab en el - directorio /etc/kerberosIV del cliente, y - asegúrese que tiene modo 600: + Si el fichero es para un sistema cliente y la red no puede + considerarse segura copie el + cliente-new-srvtab + en un medio extraíble y transpórtelo por medios + físicos seguros. Asegúrese de cambiar su nombre a + srvtab en el directorio + /etc/kerberosIV del cliente, y + asegúrese también de que tiene modo 600: &prompt.root; mv grumble-new-srvtab srvtab &prompt.root; chmod 600 srvtab - Poblando la base de datos + Añadir entradas a la base de datos - Ahora tenemos que agregar algunas entradas de usuarios en la - base de datos. Primero vamos a crear una entrada para el usuario - jane. Utilice el comando - kdb_edit para hacer esto: + Ahora tenemos que añadir entradas de usuarios a la + base de datos. Primero vamos a crear una entrada para el usuario + jane. Para ello usaremos + kdb_edit: &prompt.root; kdb_edit 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: <Not found>, Create [y] ? y Principal: jane, Instance: , kdc_key_ver: 1 -New Password: <---- enter a secure password here +New Password: <---- introduzca una constraseña segura Verifying password -New Password: <---- re-enter the password here +New Password: <---- introduzca de nuevo la contraseña Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. -Principal name: <---- null entry here will cause an exit +Principal name: <---- si introduce datos nulos saldrá del programa - Probándolo todo + Prueba del sistema - Primero tenemos que iniciar los daemons de Kerberos. Note que - si tiene correctamente editado su /etc/rc.conf - entonces esto sucederá automaticamente cuando reinicie. - Esto solamente es necesario el el servidor Kerberos. Los clientes - Kerberos tomarán automaticamente lo que necesiten desde - el directorio /etc/kerberosIV. + Primero tenemos que iniciar los dæmons de Kerberos. + Tenga en cuenta que si su /etc/rc.conf + está configurado correctamente el inicio tendrá + ligar cuando reinicie el sistema. Esta prueba solo es necesaria + en el servidor Kerberos; los clientes Kerberos tomarán + lo que necesiten automáticamente desde el directorio + /etc/kerberosIV. &prompt.root; kerberos & 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: EXAMPLE.COM +Local realm: EJEMPLO.COM &prompt.root; 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 tratar usando el comando kinit - para obtener un boleto para el ID jane - que creamos arriba: + Ahora podemos probar a usar kinit + para obtener un ticket para el ID jane + que creamos antes: &prompt.user; kinit jane -MIT Project Athena (grunt.example.com) +MIT Project Athena (grunt.ejemplo.com) Kerberos Initialization for "jane" Password: - Trate de listar los tokens usando klist para ver - si realmente los tenemos: + Pruebe a listar los tokens con klist para ver + si realmente están: &prompt.user; klist Ticket file: /tmp/tkt245 -Principal: jane@EXAMPLE.COM +Principal: jane@EJEMPLO.COM Issued Expires Principal -Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM +Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EJEMPLO.COM@EJEMPLO.COM - Ahora trate de cambiar la contraseña usando - &man.passwd.1; para revisar si el daemon kpasswd - puede obtener autorización para la base de datos - Kerberos: + Ahora trate de cambiar la contraseña usando + &man.passwd.1; para comprobar si el dæmon + kpasswd está autorizado + a acceder a la base de datos Kerberos: &prompt.user; passwd -realm EXAMPLE.COM +realm EJEMPLO.COM Old password for jane: New Password for jane: Verifying password New Password for jane: Password changed. - Añadiendo privilegios <command>su</command> + Añadir privilegios de <command>su</command> - Kerberos nos permite dar a cada - usuario que necesite privilegios de root - su propia contraseña &man.su.1; separada. - Ahora podemos agregar un ID que esté autorizado a - &man.su.1; root. Esto es controlado - teniendo una instancia de root - asociada con una principal. Usando kdb_edit - podemos crear la entrada jane.root en la - base de datos Kerberos: + Kerberos nos permite dar a cada + usuario que necesite privilegios de root + su propia contraseña para &man.su.1;. + Podemos agregar un ID que esté autorizado a ejecutar + &man.su.1; root. Esto se controla + con una instancia de root + asociada con un usuario. Vamos a crear una entrada + jane.root en la base de datos, para lo que + recurrimos a kdb_edit: &prompt.root; kdb_edit 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: <---- enter a SECURE password here +New Password: <---- introduzca una contraseña SEGURA Verifying password -New Password: <---- re-enter the password here +New Password: <---- introduzca otra vez la constraseña Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short! Attributes [ 0 ] ? Edit O.K. -Principal name: <---- null entry here will cause an exit +Principal name: <---- si introduce datos nulos saldrá del programa - Ahora trate de obtener los tokens para asegurarse que funcione: + Ahora trate de obtener los tokens para comprobar que + todo funciona: &prompt.root; kinit jane.root -MIT Project Athena (grunt.example.com) +MIT Project Athena (grunt.ejemplo.com) Kerberos Initialization for "jane.root" Password: - Ahora necesitamos agregar al usuario al archivo de root - .klogin: + Hemos de agregar al usuario al + .klogin de root: &prompt.root; cat /root/.klogin -jane.root@EXAMPLE.COM +jane.root@EJEMPLO.COM Ahora trate de hacer &man.su.1;: &prompt.user; su Password: - y heche un vistazo a que tokens tenemos: + y eche un vistazo a qué tokens tenemos: &prompt.root; klist Ticket file: /tmp/tkt_root_245 -Principal: jane.root@EXAMPLE.COM +Principal: jane.root@EJEMPLO.COM Issued Expires Principal -May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM +May 2 20:43:12 May 3 04:43:12 krbtgt.EJEMPLO.COM@EJEMPLO.COM - Utilizando otros comandos + Uso de otras órdenes - En un ejemplo anterior, creamos creamos un principal - llamado jane con una instancia root. - Esto fué basado en un usuario con el mismo nombre del - principal, y esto es por omisión en Kerberos; que - <principal>.<instancia> de la - forma - <nombre de usuario>.root + En un ejemplo anterior creamos un usuario llamado + jane con una instancia root. + Nos basamos en un usuario con el mismo nombre del + principal (jane), + el procedimiento por defecto en Kerberos: + <principal>.<instancia> con la + estructura + <nombre de usuario>.root permitirá que <nombre de usuario> - haga &man.su.1; a root si las entradas necesarias - están en el archivo .klogin en el - directorio home de root: + haga &man.su.1; a root si existen + las entradas necesarias en el + .klogin que hay en el directorio home de + root: &prompt.root; cat /root/.klogin -jane.root@EXAMPLE.COM +jane.root@EJEMPLO.COM - De la misma manera, si un usuario tiene en su propio directorio home - líneas de la forma: + De la misma manera, si un usuario tiene en su directorio home + lo siguiente: &prompt.user; cat ~/.klogin -jane@EXAMPLE.COM -jack@EXAMPLE.COM +jane@EJEMPLO.COM +jack@EJEMPLO.COM - Esto permite a cualquiera en el dominio EXAMPLE.COM - que se ha autentificado como jane o como - jack (vía kinit, ver - arriba) para accesar la cuenta de jane o - archivos en este sistema (grunt) vía - &man.rlogin.1;, &man.rsh.1; o + significa que cualquier usuario del dominio + EJEMPLO.COM que se identifique como + jane o como jack + (vía kinit, ver más arriba) + podrá acceder a la cuenta de jane o + a los ficheros de este sistema (grunt) vía + &man.rlogin.1;, &man.rsh.1; o &man.rcp.1;. - Por ejemplo, jane se firma ahora en otro sistema - usando Kerberos: + Veamos por ejemplo cómo jane se + se identifica en otro sistema mediante Kerberos: &prompt.user; kinit -MIT Project Athena (grunt.example.com) +MIT Project Athena (grunt.ejemplo.com) Password: &prompt.user; rlogin grunt Last login: Mon May 1 21:14:47 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 - O jack se firma a la cuenta de jane en la misma - máquina (jane habiendo - configurado el archivo .klogin - como está arriba, y la persona a cargo de - Kerberos habiendo configurado un principal + Aquí jack se identifica con la + cuenta de jane en la misma + máquina (jane tiene configurado + su fichero .klogin como se ha mostrado + antes, y la persona encargada de la administración de + Kerberos ha configurado un usuario principal jack con una instancia nula): &prompt.user; kinit &prompt.user; rlogin grunt -l jane -MIT Project Athena (grunt.example.com) +MIT Project Athena (grunt.ejemplo.com) Password: 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 Tillman Hodgson - Contribuido por + Texto de Mark Murray - Basado en una contribución de + Basado en un texto de <application>Kerberos5</application> - Cada release de &os; posterior a &os;-5.1 incluye - soporte solamente para Kerberos5. - Por esta razón Kerberos5 es - la única versión incluída, y su configuración - es similar en muchos aspectos a la de KerberosIV. - La siguiente información solo aplica a - Kerberos5 en releases de - &os;-5.0 o posteriores. Los usuarios que deséen - utilizar KerberosIV pueden - instalar el port + Cada versión de &os; posterior a &os;-5.1 incluye + soporte solamente para Kerberos5. + Por esta razón Kerberos5 es + la única versión incluida. Su configuración + es similar en muchos aspectos a la de + KerberosIV. + La siguiente información solo atañe a + Kerberos5 en versiones de + &os;-5.0 o posteriores. Los usuarios que deséen + utilizar KerberosIV pueden + instalar el port security/krb4. - Kerberos es un sistema/protocolo - agregado para red que le permite - a usuarios autentificarse a través de los servicios de un - servidor seguro. Servicios como login remoto, copia remota, copias - de archivo inter-sistemas seguras y otras tareas de riesgo son - hechas considerablemente seguras y más controlables. - - Kerberos puede ser descrito como - un sistema proxy identificador-verificador. También - puede ser descrito como un sistema confiable de autentificación - de terceros. - Kerberos brinda solamente - una función — la autenficación segura de - usuarios en la red. No proporciona funciones de autorización - (lo que los usuarios tienen permitido hacer) o funciones de - auditoría (lo que esos usuarios hicieron). - Despues de que un servidor y cliente han usado - Kerberos para probar su identidad, - pueden también encriptar todas sus comunicaciones para - asegurar privacidad e integridad de datos mientras continuan - con sus funciones. - - Por lo tanto es altamente recomendable que - Kerberos sea utilizado con otros - métodos de seguridad que brinden servicios de - autorización y auditoría. - - Las siguientes instrucciones pueden utilizarse como una guía - para configurar Kerberos como se - distribuye en &os;. De todas maneras, se debe dirigir a las páginas - de manual relevantes para una descripción completa. - - Para propósitos de demostrar una instalación - Kerberos, los varios espacios de - nombre serán manejados como sigue: + Kerberos es un sistema/protocolo + agregado para red que permite a los usuarios validar su identidad + a través de los servicios de un servidor seguro. + Los servicios como login remoto, copia remota, copias + de fichero de un sistema a otro y otras tareas generalmente + consideradas poco seguras pasan a ser considerablemente + seguras y más controlables. + + Kerberos puede describirse como + un sistema proxy identificador/verificador. También + puede describirse como un sistema confiable de autentificación + de terceros. + Kerberos solamente ofrece una + función: la validación segura de usuarios a + través de una red. No proporciona funciones de + autorización (es decir, lo que los usuarios tienen + permitido hacer) o funciones de auditoría (lo que esos + usuarios hicieron). Después de que un servidor y un + cliente han usado Kerberos para + demostrar su identidad pueden también 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 + además de otros métodos de + seguridad que ofrezcan servicios de autorización + y auditoría. + + Puede usar las siguientes instrucciones como una guía + para configurar Kerberos tal y como se + distribuye en &os;. De todas maneras, debería consultar + las páginas de manual adecuadas para tener toda la + información. + + Vamos a mostrar una instalación + Kerberos, para lo cual usaremos + los siguientes espacios de nombres: El dominio DNS (zona) - será example.org. + será ejemplo.org. El dominio Kerberos (realm) - será EXAMPLE.ORG. + será EJEMPLO.ORG. - Por favor utilice nombres de dominio reales al - configurar Kerberos incluso si - pretende ejecutarlo internamente. Esto evita problemas - de DNS y asegura la interoperación + Debe utilizar nombres de dominio reales al + configurar Kerberos incluso si + pretende ejecutarlo internamente. Esto le evitará problemas + de DNS y asegura la interoperación con otros dominios Kerberos. Historia Kerberos5 - history + historia - Kerberos fué creado - por el MIT como una solución - a los problemas de seguridad de la red. - El protocolo Kerberos utiliza - criptografía fuerte para que un cliente pueda - probar su identidad a un servidor (y viceversa) a + Kerberos fué creado + en el Massachusetts Institute of Technology + (MIT) como una solución + a los problemas de seguridad de la red. + El protocolo Kerberos utiliza + criptografía fuerte para que un cliente pueda + demostrar su identidad en un servidor (y viceversa) a través de una conexión de red insegura. - Kerberos es el nombre de un - protocolo de autentificación de red y un adjetivo + Kerberos es el nombre de un + protocolo de autentificación vía red y un adjetivo para describir programas que implementan el programa - (Kerberos telnet, por ejemplo). - La versión actual del protocolo es la 5, descrita en + (Kerberos telnet, por ejemplo, + conocido también como el + telnet kerberizado). + La versión actual del protocolo es la 5, descrita en RFC 1510. - Varias implementaciones libres de este protocolo están - disponibles, cubriendo un amplio rango de sistemas operativos. - El Massachusetts Institute of Technology (MIT), - donde Kerberos fué originalmente - desarrollado, continua desarrollando su paquete - Kerberos. Es comunmente usado en los - EU como un producto criptográfico, y - como tal ha sido historicamente afectado por las regulaciones de - exportación de EU. - El Kerberos del MIT - está disponible como un port - (security/krb5). Heimdal - Kerberos es otra implementación - de la versión 5, y fue desarrollada explicitamente fuera - de los EU para evitar las regulaciones de - exportación (y es por eso incluída en variantes - &unix; no comerciales). La distribución Heimdal - Kerberos está disponible - como un port - (security/heimdal), y una - instalación mínima viene incluída en la - instalación base de &os;. - - Para alcanzar la mayor audiencia, estas instrucciones asumen + Existen diversas implementaciones libres de este protocolo, + cubriendo un amplio rango de sistemas operativos. + El MIT, donde Kerberos + fué desarrollado, continúa desarrollando su + propio paquete Kerberos. + Suele usarse en los EEUU como producto criptográfico + y como tal ha sufrido las regulaciones de exportación + de los EEUU. El + Kerberos del MIT + existe como un port en + (security/krb5). Heimdal + Kerberos es otra implementación + de la versión 5, y fué desarrollada de forma + intencionada fuera de los EEUU para sortear las + regulaciones de exportación (y por eso puede incluirse + en versiones no comerciales de &unix;). La distribución + Heimdal Kerberos está en el + port (security/heimdal), y + se incluye una instalación mínima en el sistema + base de &os;. + + Para alcanzar la mayor audiencia estas instrucciones asumen el uso de la distribución Heimdal incluída en &os;. - Configurando un <acronym>KDC</acronym> Heimdal + Configuración de un <acronym>KDC</acronym> Heimdal Kerberos5 - Dentro de distribución de llaves + Centro de distribución de llaves - El centro de distribución de llaves (KDC, - Key Distribution Center) es el servicio centralizado de autentificación - que proporciona Kerberos — es - la computadoras que emite boletos Kerberos. - El KDC está considerado como confiable - por todas las otras computadoras en el dominio Kerberos, - y por eso tiene consideraciones de seguridad más elevados. - - Note que mientras la ejecuación del servidor - Kerberos requiere muy pocos recursos - computacionales, una máquina dedicada actuando solamente - como KDC es recomendada por razones de - seguridad. + El centro de distribución de llaves (KDC, + Key Distribution Center) es el servicio centralizado de + validación que proporciona + Kerberos: es el sistema que emite + tickets Kerberos. + El KDC goza del estátus de ser + considerado como confiable por las demás + computadoras del dominio Kerberos, + y por eso tiene consideraciones de seguridad más + elevadas. + + Tenga en cuenta que, aunque la ejecución del servidor + Kerberos requiere muy pocos recursos, + se recomienda el uso de una máquina dedicada a + KDC por razones de seguridad. - Para empezar a configurar un KDC, asegúrese - que su archivo /etc/rc.conf contiene las - configuraciones correctas para actuar como un KDC - (tal vez necesite ajustar algunas rutas para reflejar su propio + Para empezar a configurar un KDC asegúrese + de que su /etc/rc.conf contenga la + configuración adecuada para actuar como KDC + (tal vez deba ajustar algunas rutas para que cuadren con su sistema): kerberos5_server_enable="YES" kadmind5_server_enable="YES" kerberos_stash="YES" - está solamente - disponible en &os; 4.X. + solo existe en + &os; 4.X. - A continuación configuraremos el archivo de + A continuación configuraremos el fichero de configuración de Kerberos, /etc/krb5.conf: [libdefaults] - default_realm = EXAMPLE.ORG -[realms] + default_realm = EJEMPLO.ORG [realms] EXAMPLE.ORG = { - kdc = kerberos.example.org - admin_server = kerberos.example.org + kdc = kerberos.ejemplo.org + admin_server = kerberos.ejemplo.org } [domain_realm] - .example.org = EXAMPLE.ORG + .ejemplo.org = EJEMPLO.ORG - Note que este archivo /etc/krb5.conf + Tenga en cuenta que este /etc/krb5.conf implica que su KDC tendrá el nombre - de equipo completo calificado de kerberos.example.org. - Necesitará agregar una entrada CNAME (alias) a su archivo - de zona para lograr esto si su KDC tiene un + de equipo completo calificado de + kerberos.ejemplo.org. + Necesitará añadir una entrada CNAME (alias) a su + fichero de zona si su KDC tiene un nombre de equipo diferente. - Para redes grandes con un servidor DNS - BIND propiamente configurado, el ejemplo - de arriba puede ser recortado a: + En grandes redes con un servidor DNS + BIND bien configurado, el ejemplo + de arriba puede quedar del siguiente modo: [libdefaults] - default_realm = EXAMPLE.ORG + default_realm = EJEMPLO.ORG - Con las líneas siguientes agregadas al - archivo de zona example.org: + Con las siguientes líneas agregadas al + fichero de zona ejemplo.org: - _kerberos._udp IN SRV 01 00 88 kerberos.example.org. -_kerberos._tcp IN SRV 01 00 88 kerberos.example.org. -_kpasswd._udp IN SRV 01 00 464 kerberos.example.org. -_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. -_kerberos IN TXT EXAMPLE.ORG + _kerberos._udp IN SRV 01 00 88 kerberos.ejemplo.org. +_kerberos._tcp IN SRV 01 00 88 kerberos.ejemplo.org. +_kpasswd._udp IN SRV 01 00 464 kerberos.ejemplo.org. +_kerberos-adm._tcp IN SRV 01 00 749 kerberos.ejemplo.org. +_kerberos IN TXT EJEMPLO.ORG - Para que los clientes sean capaces de encontrar los - servicios Kerberos, - debe tener ya sea un - /etc/krb5.conf completamente configurado o - un /etc/krb5.conf configurado de forma - mínima y un servidor DNS + Para que los clientes sean capaces de encontrar los + servicios Kerberos + debe tener ya sea un + /etc/krb5.conf configurado o + un /etc/krb5.conf configurado de forma + mínima y un servidor DNS configurado correctamente. - A continuación crearemos la base de datos - Kerberos. Esta base de datos contiene - las llaves de todos los principales encriptadas con una - contraseña maestra. No se requiere que usted recuerde - esta contraseña, será almacenada en un archivo - (/var/heimdal/m-key). Para crear la llave - maestra, ejecute kstash e introduzca una + A continuación crearemos la base de datos + Kerberos. Esta base de datos contiene + las llaves de todos los principales cifradas con una + contraseña maestra. No es necesario que recuerde + esta contraseña, pues se almacenará en + /var/heimdal/m-key. Para crear la llave + maestra ejecute kstash e introduzca una contraseña. - Una vez que se ha creado la llave maestra, puede inicializar - la base de datos usando el programa kadmin - con la opción -l (que significa - local). Esta opción le instruye a - kadmin que modifique los archivos de la base - de datos directamente en lugar de ir a través del servicio - de red kadmind. Esto maneja el problema del - huevo y la gallina de tratar de conectar a la base de datos - antes de que ésta sea creada. Una vez que tiene el prompt - de kadmin, utilice el comando init - para crear su base de datos de dominios iniciales. - - Finalmente, mientras está todavía en kadmin, - puede crear su primer principal utilizando el comando add. - Apéguese a las opciones por omisión para los - principales por ahora, puede cambiarlas despues con el comando - modify. Note que puede usar el comando - ? en cualquier prompt para ver las opciones - disponibles. - - Una sesión de ejemplo de creación de una - base de datos es mostrada abajo: + Una vez que se ha creado la llave maestra puede inicializar + la base de datos usando el programa kadmin + con la opción -l (que significa + local). Esta opción le dice a + kadmin que modifique los ficheros de la base + de datos directamente en lugar de ir a través 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á todavía en + kadmin puede crear su primer principal + mediante add. Utilice las opciones por + defecto por ahora, más tarde puede cambiarlas mediante + modify. Recuerde que puede usar + ? en cualquier prompt para + consultar las opciones disponibles. + + Veamos un ejemplo de sesión de creación de una + base de datos: &prompt.root; kstash Master key: xxxxxxxx Verifying password - Master key: xxxxxxxx &prompt.root; kadmin -l -kadmin> init EXAMPLE.ORG +kadmin> init EJEMPLO.ORG Realm max ticket life [unlimited]: kadmin> add tillman Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: Password: xxxxxxxx Verifying password - Password: xxxxxxxx - Ahora es tiempo de iniciar los servicios KDC. - Ejecute /etc/rc.d/kerberos start y - /etc/rc.d/kadmind start para levantar los - servicios. Note que no tendrá ningún daemon - kerberizado corriendo en este punto pero debe ser capaz de confirmar - que el KDC está funcionando obteniendo - y listando un boleto para el principal (usuario) que acaba de crear - desde la línea de comando del mismo KDC: + 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á ningún + dæmon kerberizado ejecutándose pero debe + poder confirmar que KDC funciona por el + procedimiento de obtener y listar un boleto del principal + (usuario) que acaba de crear en la línea de órdenes de + KDC: &prompt.user; k5init tillman -tillman@EXAMPLE.ORG's Password: +tillman@EJEMPLO.ORG's Password: &prompt.user; k5list Credentials cache: FILE:/tmp/krb5cc_500 - Principal: tillman@EXAMPLE.ORG + Principal: tillman@EJEMPLO.ORG Issued Expires Principal -Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG +Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EJEMPLO.ORG@EJEMPLO.ORG - <application>Kerberos</application> habilitando un servidor con - servicios Heimdal + Creación de un servidor + <application>Kerberos</application> con servicios + Heimdal Kerberos5 - habilitando servicios + habilitación de servicios - Primero, necesitamos una copia del archivo de configuración - de Kerberos, /etc/krb5.conf. - Para eso, simplemente copielo a la computadora cliente desde el - KDC de una manera segura (utilizando utilidades - de red como &man.scp.1;, o fisicamente con un disco flexible). - - A continuación necesita un archivo /etc/krb5.keytab. - Esta es la diferencia más grande entre un servidor - proporcionando daemons habilitados con Kerberos - y una estación de trabajo — el servidor debe - tener un archivo keytab. Este archivo - contiene las llaves de equipo del servidor, las cuales - le permiten a él y al KDC - verificar la identidad entre ellos. Debe ser transmitidos al - servidor de una manera segura, ya la seguridad en el servidor - puede ser comprometida si la llave es hecha pública. - Esto significa explicitamente que transfiriendola por medio - de un canal de texto claro, como FTP, es - una muy mala idea. - - Tipicamente, transfiere al keytab - al servidor usando el programa kadmin. - Esto es práctico porque también necesita crear - el principal del equipo (el final KDC del archivo - krb5.keytab) usando kadmin. - - Note que debe ya debe haber obtenido un boleto y que este boleto - debe tener permitido utilizar la interface kadmin - en kadmind.acl. Vea la sección titulada - administración remota en la página de - info de Heimdal (info heimdal) para los detalles - de diseño de listas de control de acceso. Si no quiere habilitar - acceso remoto kadmin, puede simplemente conectar - de manera segura al KDC (por medio de consola - local, &man.ssh.1; o &man.telnet.1; Kerberos) - y realizar localmente la administración utilizando - kadmin -l. - - Despues de instalar el archivo /etc/krb5.conf, - puede usar kadmin desde el servidor - Kerberos. el comando - add --random-key le permitirá agregar - el principal del equipo servidor, y el comando ext - le permitirá extraer el principal del equipo servidor a su - propio keytab. Por ejemplo: + Antes de nada necesitaremos una copia del fichero de + configuración de Kerberos, + /etc/krb5.conf. Cópielo al cliente + desde KDC de forma segura (mediante + &man.scp.1;, o usando un disquete). + + A continuación necesitará un fichero + /etc/krb5.keytab. + Esta es la mayor diferencia entre un servidor que proporciona + dæmons habilitados con Kerberos + y una estación de trabajo: el servidor debe + tener un fichero keytab. Dicho fichero + contiene las llaves de equipo del servidor, las cuales + le permiten a él y al KDC + verificar la identidad entre ellos. Deben transmitirse + al servidor de forma segura ya que la seguridad del servidor + puede verse comprometida si la llave se hace pública. + Por decirlo más claro, transferirla como texto plano a + través de la red (por ejemplo por + FTP) es una pésima + idea. + + Lo normal es que transmita su keytab + al servidor mediante el programa kadmin. + Esto es práctico porque también debe crear + el principal del equipo (el KDC que aparece + al final de krb5.keytab) + usando kadmin. + + Tenga en cuenta que ya debe disponer de un ticket, y que + este ticket debe poder usar el interfaz + kadmin en kadmind.acl. + Consulte la sección + administración remota en la página + info de Heimdal (info heimdal), donde se + exponen los detalles de diseño de las listas de control de + acceso. Si no quiere habilitar acceso remoto + kadmin, puede conectarse de forma segura al + KDC (por medio de consola + local, &man.ssh.1; o &man.telnet.1; + Kerberos) y administrar en local + mediante kadmin -l. + + Después de instalar el fichero + /etc/krb5.conf puede usar + kadmin desde el servidor + Kerberos. + add --random-key le permitirá + añadir el principal del equipo servidor, y + ext le permitirá extraer el principal + del equipo servidor a su propio keybat. Por ejemplo: &prompt.root; kadmin -kadmin> add --random-key host/myserver.example.org +kadmin> add --random-key host/myserver.ejemplo.org Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: -kadmin> ext host/myserver.example.org +kadmin> ext host/miservidor.ejemplo.org kadmin> exit - Note que el comando ext (diminutivo - de extract) almacena la llave extraída - en /etc/krb5.keytab por omisión. - - Si no tiene kadmind corriendo en el - KDC (posiblemente por razones de seguridad) - y por lo tanto no tiene acceso a kadmin - remotamente, puede añadir el principal de equipo - (host/myserver.EXAMPLE.ORG) directamente - en el KDC y entonces extraerlo a un archivo - temporal (para evitar sobreescribir /etc/krb5.keytab - en el KDC) usando algo como esto: + Tenga en cuenta que ext + (contracción de extract) almacena la + llave extraída por defecto en + en /etc/krb5.keytab. + + Si no tiene kadmind + ejecutándose en + KDC (posiblemente por razones de seguridad) + y por lo tanto carece de acceso remoto a kadmin + puede añadir el principal de equipo + (host/miservidor.EJEMPLO.ORG) directamente + en el KDC y entonces extraerlo a un fichero + temporal (para evitar sobreescribir + /etc/krb5.keytab en el + KDC) mediante algo parecido a esto: &prompt.root; kadmin -kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org +kadmin> ext --keytab=/tmp/ejemplo.keytab host/miservidor.ejemplo.org kadmin> exit - Puede entonces copiar de manera segura el keytab al - servidor (usando scp o un disco - flexible, por ejemplo). Asegúrese de especificar - un nombre de keytab diferente para evitar sobreescribir - el keytab en el KDC. - - En este punto su servidor puede comunicarse con el - KDC (debido a su archivo - krb5.conf) y puede probar su propia - identidad (debido al archivo krb5.keytab). - Ahora está listo para que usted habilite algunos - servicios Kerberos. - Para este ejemplo habilitaremos el servicio telnet - poniendo una línea como esta en su - /etc/inetd.conf y reiniciando el - servicio &man.inetd.8; con + Puede entonces copiar de forma segura el keytab al + servidor (usando scp o un diquete). + Asegúrese 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 fichero + krb5.conf) y puede probar su propia + identidad (gracias al fichero krb5.keytab). + Ahora está listo para que usted habilite algunos + servicios Kerberos. + En este ejemplo habilitaremos el servicio telnet + poniendo una línea como esta en su + /etc/inetd.conf y reiniciando el + servicio &man.inetd.8; con /etc/rc.d/inetd restart: telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user - La parte crítica es -a - (por autentificación) de tipo usuario. Consulte - la página de manual &man.telnetd.8; para - más detalles. + La parte crítica es -a, + de autentificación de usuario. Consulte + la página de manual &man.telnetd.8; para + más información. - <application>Kerberos</application> habilitando un cliente con Heimdal + <application>Kerberos</application> con un cliente + Heimdal Kerberos5 configurar clientes - Configurar una computadora cliente es trivialmente fácil. - En lo que se refiera a configuración de - Kerberos, solamente necesita el - archivo de configuración de Kerberos, - localizado en /etc/krb5.conf. - Simplemente copielo de manera segura a la computadora cliente - desde el KDC. - - Pruebe su computadora cliente tratando de usar - kinit, klist, y - kdestroy desde el cliente para obtener, - mostrar y entonces borrar un boleto para el principal que - creó arriba. Debe ser capaz de usar aplicaciones - Kerberos para conectar a - servidores habilitados con Kerberos, - aunque si eso no funciona y obtener el boleto hace el problema, - lo más seguro es que el problema esté en el - servidor y no en el cliente o el KDC. - - Al probar una aplicación como telnet, - trate de usar un olfateador de paquetes ( como &man.tcpdump.1;) - para confirmar que su contraseña no sea enviada en claro. - Trate de usar telnet con la opción - -x, que encripta el flujo de datos por - entero (similarmente a ssh). - - Las aplicaciones clientes Kerberos - principales (tradicionalmente llamadas kinit, - klist, kdestroy y - kpasswd) están incluidas en - la instalación base de &os;. Note que versiones de &os; - anteriores a 5.0 las renombran a k5init, - k5list, k5destroy, - k5passwd y k5stash - (aunque es tipicamente utilizado solo una vez). - - Varias aplicaciones clientes Kerberos - no principales también están instaladas por - omisión. Aquí es donde la naturaleza + Configurar una computadora cliente es extremadamente + fácil. Lo único que necesita es el + fichero de configuración de + Kerberos que encontrará + en /etc/krb5.conf. + Simplemente cópielo de forma segura a la computadora + cliente desde el KDC. + + Pruebe su computadora cliente mediante + kinit, klist, y + kdestroy desde el cliente para obtener, + mostrar y luego borrar un ticket para el principal que + creó antes. Debería poder usar aplicaciones + Kerberos para conectarse a + servidores habilitados con Kerberos, + aunque si no funciona y tiene problemas al intentar obtener + el boleto lo más probable es que el problema + esté en el servidor y no en el cliente o el + KDC. + + Al probar una aplicación como telnet, + trate de usar un sniffer de paquetes + ( como &man.tcpdump.1;) para confirmar que su contraseña + no viaja en claro por la red. + Trate de usar telnet con la opción + -x, que cifra el flujo de datos por + entero (algo parecido a lo que hace + ssh). + + Las aplicaciones clientes Kerberos + principales (llamadas tradicionalmente kinit, + klist, kdestroy y + kpasswd) están incluidas en + la instalación base de &os;. Tenga en cuenta que + en las versiones de &os; anteriores a 5.0 reciben los nombres de + k5init, + k5list, k5destroy, + k5passwd y k5stash. + + También se instalan por defecto diversas aplicaciones + Kerberos que no entran dentro de + la categoría de imprescindibles. + Es aquí donde la naturaleza mínima de la instalación base de - Heimdal es sentida: telnet es el único - servicio Kerberos habilitado. - - El port Heimdal agrega algunas de las aplicaciones cliente - faltantes: versiones Kerberos habilitadas - de ftp, rsh, - rcp, rlogin y algunos - otros programas menos comunes. El port de MIT - también contiene una suite completa de aplicaciones + Heimdal salta a la palestra: telnet es el + único servicio Kerberos + habilitado. + + El port Heimdal añade algunas de las aplicaciones + cliente que faltan: versiones Kerberos + de ftp, rsh, + rcp, rlogin y algunos + otros programas menos comunes. El port del MIT + también contiene una suite completa de aplicaciones cliente de Kerberos. - Archivos de configuración de usuario: <filename>.k5login</filename> y <filename>.k5users</filename> + Ficheros de configuración de usuario: <filename>.k5login</filename> y <filename>.k5users</filename> .k5login .k5users - Usuarios dentro de un dominio tipicamente - tienen su principal Kerberos - (como tillman@EXAMPLE.ORG) mapeado - a una cuenta de usuario local (como una cuenta local - llamada tillman). aplicaciones cliente - como telnet usualmente no requieren un + Suele ser habitual que los usuarios de un dominio + Kerberos (o principales) + tengan su usuario + (por ejemplo tillman@EJEMPLO.ORG) mapeado + a una cuenta de usuario local (por ejemplo un usuario llamado + llamado tillman). Las aplicaciones cliente + como telnet normalmente no requieren un nombre de usuario o un principal. - Ocasionalmente, de todas maneras, tal vez quiera dar acceso - a una cuenta de usuario local a alguien que no tiene un - principal Kerberos que concuerde. - Por ejemplo, tillman@EXAMPLE.ORG puede - necesitar acceso a la cuenta de usuario local webdevelopers. - Otros principales tal vez necesiten acceso a esas + Es posible que de vez en cuando quiera dar acceso a una + una cuenta de usuario local a alguien que no tiene un + principal Kerberos. + Por ejemplo, tillman@EJEMPLO.ORG puede + necesitar acceso a la cuenta de usuario local + webdevelopers. + Otros principales tal vez necesiten acceso a esas cuentas locales. - Los archivos .k5login y - .k5users, colocados en el directorio - home del usuario, pueden ser usados de manera similar a - una combinación potente de - .hosts y .rhosts, - resolviendo el problema. Por ejemplo, si un + Los ficheros .k5login y + .k5users, ubicados en el directorio + home del usuario, pueden usarse de un modo similar a + una combinación potente de + .hosts y .rhosts. + Por ejemplo, si pusiera un fichero .k5login con el siguiente - contenido: + contenido tillman@example.org jdoe@example.org - Fuera a ser colocado en el directorio home del usuario - local webdevelopers entonces ambos - principales listados tendrían acceso a esa cuenta + en el directorio home del usuario local + webdevelopers ambos + principales listados tendrían acceso a esa cuenta sin requerir una contraseña compartida. - La lectura de las páginas de manual para estos - comando es recomendado. Note que la página de manual - de ksu cubre + Le recomendamos encarecidamente la lectura de las + páginas de manual de estas órdenes. Recuerde que + la página de manual de + ksu abarca .k5users. - <application>Kerberos</application> Tips, Trucos y solución de problemas + <application>Kerberos</application> Sugerencias, trucos y + solución de problemas Kerberos5 solución de problemas - Al utilizar ya sea los ports de Heimdal o Kerberos - del MIT asegúrese que su - variable de ambiente PATH liste las - versiones de Kerberos de las - aplicaciones clientes antes que las versiones del + Tanto si utiliza el port de Heimdal o + el Kerberos + del MIT asegúrese 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 en su dominio Kerberos tienen - la hora sincronizada? Si no, la autentificación + ¿Todas las computadoras de su dominio Kerberos + tienen la hora sincronizada? Si no, la autentificación puede fallar. describe como sincronizar los relojes utilizando NTP. - MIT y Heimdal interoperan bien. - Excepto por kadmin, el protocola para - el cual no está estandarizado. + MIT y Heimdal conviven bien, con la + excepción de kadmin, protocolo + no está estandarizado. - Si cambia su nombre de equipo, necesita cambiar también - su equipo/ principal y actualizar su - keytab. Esto también aplica a entradas especiales - en keytab como www/ principal - utilizado para www/mod_auth_kerb + Si cambia su nombre de equipo debe cambiar también + el apellido de su principal y actualizar su + keytab. Esto también 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 resolver - (normal y reverso) en el DNS (o en - /etc/hosts como mínimo). - Los CNAMEs funcionarán, pero los registros A y PTR - deben estar correctos y en su lugar. El mensaje de error - no es muy intuitivo: + 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 mínimo). + Los CNAME funcionarán, 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 pueden estar actuando - como clientes de su KDC no activan - los permisos para ksu de manera - setuid root. Esto significa que - ksu no funciona, lo cual es una - buena idea de seguridad pero un tanto molesta. Este no es un - error de KDC. + 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. - Con Kerberos del - MIT, si usted desea permitir que un - principal tenga un boleto con una vida más larga - que el valor por omisión de diez horas, debe usar - modify_principal en kadmin - para cambiar maxlife tanto del principal en cuestión - como del principal krbtgt. Entonces + Si desea permitir que un principal tenga un ticket con + una validez más 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 + cuestión como del krbtgt del + principal. Hecho esto, el principal puede utilizar la opción -l con kinit para solicitar un boleto con más tiempo de vida. - Si ejecuta un olfateador de paquetes en su - KDC para ayudar con la resolución - de problemas y ejecuta kinit desde una - estación de trabajo, se podrá dar cuenta - que su TGT es enviado inmediatamente - despues de correr kinit — - ¡incluso antes de que escriba su contraseña! La - explicación es que el servidor Kerberos - transmite libremente un TGT (Ticket Granting + Si ejecuta un sniffer de paquetes en su + KDC para ayudar con la resolución + de problemas y ejecuta kinit desde una + estación de trabajo puede encontrarse con que su + TGT se envía inmediatamente + después de ejecutar kinit: + incluso antes de que escriba su + contraseña La explicación es que el + servidor Kerberos transmite + tranquilamente un TGT (Ticket Granting Ticket) a cualquier petición no autorizada; de todas - maneras, cada TGT está encriptado - en un llave derivada de la contraseña de usuario. - Por lo tanto, cuando un usuario teclea su contraseña - no está siendo enviada al KDC, - está siendo usada para desencriptar el TGT - que kinit ya obtuvo. Si el proceso de - desencriptación resulta en un boleto válido con - una marca de tiempo válida, el usuario tiene - credenciales Kerberos válidas. - Estas credenciales incluyen una llave de sesión para - establecer comunicaciones seguras con el servidor - Kerberos en el futuro, así - como también el boleto otorgar-boleto (TGT) en sí, - el cual es encriptado con la llave del propio servidor - Kerberos. Esta segunda capa de - encriptación es desconocida para el usuario, pero + maneras, cada TGT está cifrado + en una llave derivada de la contraseña del usuario. + Por tanto, cuando un usuario teclea su contraseña + no la está enviando al KDC, + se está usando para descifrar el TGT + que kinit ya obtuvo. Si el proceso de + descifrado termina en un ticket válido con + una marca de tiempo válida, el usuario tiene + credenciales Kerberos válidas. + Estas credenciales incluyen una llave de sesión para + establecer comunicaciones seguras con el servidor + Kerberos en el futuro, así + como el TGT en sí, que se cifra con la llave del propio + servidor Kerberos. + Esta segunda capa de cifrado es invisible para el usuario, pero es lo que permite al servidor Kerberos - verificar la autenticidad de cada TGT. + verificar la autenticidad de cada + TGT. - Si desea utilizar boletos con tiempo de vida larga (una - semana, por ejemplo) y está utilizando OpenSSH - para conectarse a la máquina donde su boleto está - almacenado, asegúrese que Kerberos - esté puesto a no - en su sshd_config o de lo contrario - sus boletos serán eliminados cuando termine la - sesión. + Si desea utilizar tickets con un tiempo largo de vida (una + semana, por ejemplo) y está utilizando + OpenSSH + para conectarse a la máquina donde se almacena su + boleto asgúrese de que + Kerberos + esté configurado a + no en su sshd_config + o de lo contrario sus tickets serán eliminados cuando + termine la sesión. - Recuerde que los principales de equipos pueden tener - un tiempo de vida mas largo también. Si su principal - de usuario tiene un tiempo de vida de una semana pero - el equipo al que se esá conectando tiene un - tiempo de vida de nueve horas, tendrá un principal de - equipo expirado en su caché y el caché de - boleto no funcionará como se espera. + Recuerde que los principales de equipos también + pueden tener tener un tiempo de vida más 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é configurando un archivo - krb5.dict para prenevir especificamente - el uso de malas contraseñas (la página de manual - de kadmind cubre esto brevemente), recuerde - que solamente aplica a principales que tienen una política - de contraseñas asignada a ellos. El formato de archivos - krb5.dict es simple: una cadena por - línea. Creando un enlace simbólico a - /usr/share/dict/words puede ser - de utilidad. + Cuando esté configurando un fichero + krb5.dict pensando específicamente + en prevenir el uso de contraseñas defectuosas (la + página de manual de + de kadmind trata el tema brevemente), recuerde + que solamente se aplica a principales que tienen una + política de contraseñas asignada. El formato + de los ficheros krb5.dict es simple: + una cadena de texto por línea. Puede serle + útil crear un enlace simbólico a + /usr/share/dict/words. Diferencias con el port del <acronym>MIT</acronym> - Las diferencias más grandes entre las instalaciones - MIT y Heimdal se relacionan al programa - kadmin el cual tiene un conjunto - diferente (pero equivalente) de comandos y utiliza un protocolo - diferente. Esto tiene implicaciones muy grandes si su - KDC es MIT ya que no - podrá utilizar el programa kadmin - de Heimdal para administrar remotamente su KDC - (o viceversa, para ese caso). - - Las aplicaciones cliente pueden también tomar - diferentes opciones de línea de comando para - lograr las mismas tareas. Seguir las instrucciones de + Las diferencias más grandes entre las instalaciones + MIT y Heimdal están relacionadas + con kadmin, que tiene un conjunto + diferente (pero equivalente) de órdenes y utiliza un protocolo + diferente. Esto tiene implicaciones muy grandes si su + KDC es MIT, ya que no + podrá utilizar el programa kadmin + de Heimdal para administrar remotamente su KDC + (o viceversa). + + Las aplicaciones cliente pueden también disponer de + diferentes opciones de línea de órdenes para + lograr lo mismo. Le recomendamos seguir las instrucciones de la página web de Kerberos del MIT - () - se recomienda. Sea cuidadoso con los parches: el port - del MIT se instala en - /usr/local/ por omisión, y las - aplicaciones normales del sistema pueden + (). + Sea cuidadoso con los parches: el port + del MIT se instala por defecto en + /usr/local/, y las + aplicaciones normales del sistema pueden ser ejecutadas en lugar de las del MIT - si su variable de ambiente PATH lista los - directorios del sistema primero. - - Con el port del MIT - security/krb5 - proporcionado por &os;, asegúrese de leer el archivo - /usr/local/share/doc/krb5/README.FreeBSD - instalado por el port si quiere entender por qué los - login vía telnetd y - klogind se comportan un tanto - extraño. Más importante, corrigiendo la - conducta de permisos incorrectos en el archivo - caché requiere que el binario - login.krb5 sea usado para autentificación - para que pueda cambiar correctamente los permisos de - propiedad para credenciales reenviadas. + si su variable de entorno PATH lista antes los + directorios del sistema. + + Si usa el port del MIT + security/krb5 + proporcionado por &os; asegúrese de leer el fichero + /usr/local/share/doc/krb5/README.FreeBSD + instalado por el port si quiere entender por qué los + login vía telnetd y + klogind se comportan de un modo un tanto + extraño. Más importante aún, corregir la + conducta de permisos incorrectos en el fichero + caché requiere que el binario + login.krb5 se use para la + validación para que pueda cambiar correctamente los + permisos de propiedad de credenciales reenviadas. - Mitigando limitaciones encontradas en <application>Kerberos</application> + Mitigación de limitaciones encontradas en + <application>Kerberos</application> Kerberos5 limitaciones y deficiencias - <application>Kerberos</application> es un enfoque todo-o-nada - - Cada servicio habilitado en la red debe ser modificado - para funcionar con Kerberos (o de - otra manera ser asegurado contra ataques de red) o de lo - contrario las credenciales de usuario pueden ser robadas y - reutilizadas. Un ejemplo de esto podría ser que - Kerberos habilite todos los shells - remotos ( vía rsh y telnet, - por ejemplo) pero que no cubra el servidor de correo - POP3 el cual manda contraseñas - en texto plano. + <application>Kerberos</application> es un enfoque + <quote>todo o nada</quote> + + Cada servicio habilitado en la red debe modificarse + para funcionar con Kerberos (o + debe ser asegurado contra ataques de red) o de lo + contrario las credenciales de usuario pueden robarse y + reutilizarse. Un ejemplo de esto podría ser que + Kerberos habilite todos los shells + remotos ( vía rsh y + telnet, por ejemplo) pero que no cubra + el servidor de correo POP3, que + envía contraseñas en texto plano. - <application>Kerberos</application> está planeado para estaciones de trabajo mono-usuario - - En un ambiente multi-usuario, - Kerberos es menos seguro. - Esto se debe a que almacena los boletos en el - directorio /tmp, el cual puede - ser leído por todos los usuarios. Si un - usuario está compartiendo una computadora con - varias gentes simultaneamente (ej., multi-user), es posible - que los boletos de usuario sean robados (copiados) por otro - usuario. - - Esto puede ser sobrepasado con la opción de línea - de comando -c nombre-de-archivo o - (de preferencia) la variable de ambiente - KRB5CCNAME, pero esto raramente es - hecho. En principal, almacenar los boletos en el - directorio home de los usuarios y utilizar permisos - de archivo simples pueden mitigar este problema. + <application>Kerberos</application> 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 leído 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 opción de línea + de órdenes -c nombre-de-fichero o + (mejor aún) la variable de entorno + KRB5CCNAME, pero raramente se hace. + Si almacena los tickets en el directorio home de los + usuarios y utiliza sin mucha complicación los permisos + de fichero puede mitigar este problema. - El KDC es un punto de falla único - - Por diseño, el KDC debe ser tan - seguro como la base de datos de contraseña maestra que - contiene. El KDC no debe tener ningún - otro servicio corriendo en él y debe ser fisicamente - seguro. El peligro es grande debido a que Kerberos - almacena todas las contraseñas encriptadas con la - misma llave (la llave maestra, la cual a su - vez está almacenada como un archivo en el + El KDC es el punto crítico de fallo + + Por motivos de diseño el KDC + es tan seguro como la base de datos principal de + contraseñas que contiene. El + KDC no debe ejecutar ningún + otro servicio ejecutándose en él y debe ser + físicamente seguro. El peligro es grande debido a que + Kerberos almacena todas las + contraseñas cifradas con la misma llave + (la llave maestra, que a su vez se guarda + como un fichero en el KDC). - Como nota aparte, una llave maestra comprometida no es - tan malo como se podría temer. La llave maestra solo - es utilizada para encriptar la base de datos Kerberos - y como semilla para el generador de números aleatorios. - Mientras el acceso a su KDC sea seguro, - un atacante no puede hacer mucho con la llave maestra. - - Adicionalmente, si el KDC no está - disponible (quizás debido a un ataque de negación - de servicio o problemas de red) los servicios de red son inusables - ya que no se puede efectuar la autentificación, una receta - para un ataque de negación de servicios. Esto puede ser - aliviado con múltiples KDCs (un - maestro único y uno o más esclavos) y con - una implementación cautelosa de secundarios o - autentificación de respaldo (PAM es - excelente para esto). + 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 números aleatorios. Mientras sea seguro + el acceso a su KDC un atancante no puede + hacer demasiado con la llave maestra. + + Además, si el KDC no está + disponible (quizás debido a un ataque de denegación + de servicio o problemas de red) no se podrán utilizar + los servicios de red ya que no se puede efectuar la + validación, lo que hace que esta sea una buena forma de + lanzar un ataque de denegación de servicio. + Este problema puede aliviarse con múltiples + KDCs (un maestro y uno o más esclavos) + y con una implementación cautelosa de secundarios o + autentificación de respaldo (para esto + PAM es excelente). Limitaciones de <application>Kerberos</application> Kerberos le permite a usuarios, - equipos y servicios autentificarse entre ellos. No tiene un - mecanismo para autentificar el KDC a los - usuarios, equipos o servicios. Esto significa que a - kinit con un troyano (por ejemplo) puede - grabar todos los usuarios y contraseñas. Algo como - security/tripwire o - alguna otra herramienta de revisión de integridad - de sistemas de archivo puede aliviar esto. + equipos y servicios validarse entre sí, pero no + dispone de ningún mecanismo para autentificar el + KDC a los usuarios, equipos o servicios. + Esto significa que una versión + (por ejemplo) troyanizada + kinit puede grabar todos los usuarios y sus + contraseñas. Puede usar + security/tripwire o + alguna otra herramienta de revisión de integridad + de sistemas de ficheros para intentar evitar problemas como + este. Recursos y más información Kerberos5 recursos externos - La FAQ de Kerberos + Las preguntas frecuentes (FAQ) de + Kerberos - Diseñando - un sistema de autentificación: un dialogo en cuatro escenas + Designing an + Authentication System: a Dialog in Four Scenes RFC 1510, The Kerberos Network Authentication Service (V5) - Página web de MIT - Kerberos + Página web de Kerberos + del MIT - Página web de Heimdal - Kerberos + Página web de + Kerberos Heimdal Tom Rhodes Escrito por: OpenSSL seguridad OpenSSL - Una propiedad que muchos usuarios pasan por alto - es el conjunto de herramientas OpenSSL - incluídas en &os;. OpenSSL - brinda capa de transporte encriptada encima de la capa - de comunicaciones normal; permitiendo así que sea - combinada con muchas aplicaciones y servicios de red. - - Algunos usos de OpenSSL pueden - incluir autentificación encriptada de clientes de - correo, transacciones basadas en web como pagos de tarjetas - de crédito y más. Muchos ports, como - www/apache13-ssl y - mail/sylpheed-claws - ofrecen soporte de compilación para construirse - con OpenSSL. + El conjunto de herramientas OpenSSL + es una característica de &os; que muchos usuarios + pasan por alto. OpenSSL ofrece una + capa de cifrada de transporte sobre la capa normal de + comunicación, permitiendo la combinación con + con muchas aplicaciones y servicios de red. + + Algunos usos de OpenSSL son + la validación cifrada de clientes de correo, las + transacciones basadas en web como pagos con tarjetas de + crédito, etc. Muchos ports, como + www/apache13-ssl y + mail/sylpheed-claws + ofrecen soporte de compilación para + OpenSSL. - En la mayoría de los casos la colección - de ports tratará de construir el port - security/openssl a menos - que la variable de make WITH_OPENSSL_BASE - sea puesta explicitamente a yes. + En la mayoría de los casos la colección + de ports tratará de compilar el port + security/openssl a menos + que la variable de make WITH_OPENSSL_BASE + sea puesta explícitamente a yes. - La versión de OpenSSL - incluída en &os; soporta los protocolos de seguridad - de red Secure Sockets Layer v2/v3 (SSLv2/SSLv3) y - Transport Layer Security v1 (TLSv1) y puede ser utilizada como - una librería criptográfica general. + La versión de OpenSSL + incluida en &os; 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 criptográfica general. - Mientras OpenSSL soporta el - algoritmo IDEA, estáa deshabilitado - por omisión debido a patentes de Estados Unidos. Para - utilizarlo, la licencia debe ser revisada, y si las - restricciones son aceptables, la variable - MAKE_IDEA debe ser activada en + OpenSSL soporta el + algoritmo IDEA pero estáa 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 más comunes de - OpenSSL es brindar certificados para - usar con aplicaciones de software. Estos certificados aseguran - que las credenciales de la compañia o individuo son - válidos y no fraudulentos. Si el certificado en - cuestión no ha sido verificado por uno de las varias - autoridades de certificados, - o CAs, usualmente se produce una advertencia. + Uno de los usos más comunes de + OpenSSL es ofrecer certificados para + usar con aplicaciones de software. Estos certificados aseguran + que las credenciales de la compañia o individuo son + válidos y no son fraudulentos. Si el certificado en + cuestión no ha sido verificado por uno de las diversas + autoridades certificadoras + o CA, suele generarse una advertencia al respecto. Una autoridad de certificados es una compañia, como - VeriSign, la cual - firmará certificados para validar credenciales de individuos - o compañias. Este proceso tiene un costo asociado y no es - definitivamente un requisito para usar certificados; de todas - maneras, puede darle un poco de tranquilidad a los usuarios + VeriSign, que + firma certificados para validar credenciales de individuos + o compañias. Este proceso tiene un costo asociado y no es + un requisito imprescindible para usar certificados, aunque + puede darle un poco de tranquilidad a los usuarios más paranóicos. - Generando certificados + Generación de certificados OpenSSL generación de certificados - Para generar un certificado, el siguiente comando está - disponible: + Para generar un certificado ejecute lo siguiente: &prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem Generating a 1024 bit RSA private key ................++++++ .......................................++++++ writing new private key to 'cert.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:PA Locality Name (eg, city) []:Pittsburgh -Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company -Organizational Unit Name (eg, section) []:Systems Administrator -Common Name (eg, YOUR name) []:localhost.example.org +Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mi compañía +Organizational Unit Name (eg, section) []:Administrador de sistemas +Common Name (eg, YOUR name) []:localhost.ejemplo.org Email Address []:trhodes@FreeBSD.org Please enter the following 'extra' attributes to be sent with your certificate request -A challenge password []:SOME PASSWORD -An optional company name []:Another Name - - Note que la respuesta directamente despues del - prompt Common Name muestra un nombre - de dominio. Este prompt requiere que se introduzca - un nombre de servidor para propósitos de - verificación; colocando cualquier cosa menos - un nombre de dominio producirá un certificado - inválido. Otras opciones, por ejemplo tiempo - de expiración, alternan algoritmos de encriptación, - etc, están disponibles. Una lista completa - puede obtenerse viendo la página de manual - &man.openssl.1;. - - Deben existir ahora dos archivos - en el directorio en el que el comando anterior fué - ejecutado. La petición de certificado, req.pem, - puede ser enviado a una autoridad de certificados que validará - las credenciales que introdujo, firmará la petición y le - regresará el certificado. El segundo archivo creado será - nombrado cert.pem y es la llave privada para - el certificado y debe ser protegida a toda costa; si esta cae en las - manos de otros puede ser utilizada para impersonarlo a usted (o a - sus servidores). - - En los casos donde una firma de una CA - no es requerida, un certificado auto firmado puede ser creado. +A challenge password []:UNA CONTRASEÑA +An optional company name []:Otro nombre + + Tenga en cuenta que la respuesta directamente después + de prompt Common Name muestra un + nombre de dominio. Este prompt requiere que se + introduzca un nombre de servidor para usarlo en la + verificación; si escribe cualquier otra cosa + producirá un certificado inválido. + Otras opciones, por ejemplo el tiempo + de expiración, alternan algoritmos de cifrado, + etc. Puede ver una lista completa en la página + de manual de &man.openssl.1;. + + Debería tener dos ficheros en el directorio + donde ha ejecutado la orden anterior. La petición + de certificado, + req.pem, es lo que debe enviar a una + autoridad certificadora para que valide las credenciales que + introdujo; firmará la petición y le devolverá + el certificado. El segundo fichero es + cert.pem y es la llave privada para + el certificado, 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 firma de una CA + puede crear y firmar usted mismo su certificado. Primero, genere la llave RSA: &prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024 A continuación genere la llave CA: &prompt.root; openssl gendsa -des3 -out myca.key myRSA.key Utilice esta llave para crear el certificado: &prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crt - Los dos nuevos archivos deben aparecer en el directorio: - un archivo de firma de autoridad de certificados, - myca.key y el certificado en sí, - new.crt. Estos deben ser colocados en un - directorio, de preferencia bajo - /etc, el cual es - leíble solo por root. Permisos de - 0700 deben ser suficientes para este y pueden ser puestos con - la utilidad chmod. + Deberín aparecer dos nuevos ficheros en su directorio: + un fichero de firma de autoridad de certificados + (myca.key) y el certificado 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 fichero con + chmod. - Usando certificados, un ejemplo - - ¿Entonces que pueden hacer estos archivos? Un buen uso - sería encriptar conexiones al MTA - Sendmail. Esto disolvería - el uso de autentificación de texto claro para usuarios - que mandan correo a través del MTA + Uso de certificados; un ejemplo + + ¿Qué pueden hacer estos ficheros? + Cifrar conexiones al MTA + Sendmail es un buen sitio para + usarlos. De este modo eliminará el uso de validación + mediante texto en claro para los usuarios que envían + correo a través del MTA local. - Este no es el mejor uso en el mundo ya que algunos - MUAs presentarán al usuario - un error si no tienen instalado los certificados - localmente. Refiérase a la documentación - incluída con el software para mayor información - de la instalación de certificados. + No es el mejor uso en el mundo, ya que algunos + MUAs enviarán al usuario un + mensaje de error si no tiene instalados localmente los + certificados. Consulte la documentación + para más datos sobre la + instalación de certificados. - Las siguientes líneas deben ser colocadas - dentro del archivo local .mc: + Debe añadir las siguientes líneas + en su fichero local .mc: dnl SSL Options define(`confCACERT_PATH',`/etc/certs')dnl define(`confCACERT',`/etc/certs/new.crt')dnl define(`confSERVER_CERT',`/etc/certs/new.crt')dnl define(`confSERVER_KEY',`/etc/certs/myca.key')dnl define(`confTLS_SRV_OPTIONS', `V')dnl - Donde /etc/certs/ - es el directorio a ser utilizado para almacenamiento de - los archivos de certificado y llave de manera local. - Los últimos requerimientos son una reconstrucción - del archivo .cf local. Esto es facilmente - logrado tecleando make - install dentro del directorio - /etc/mail. - A continuación ejecute un make - restart que debe reiniciar el - daemon de Sendmail. - - Si todo estuvo bien no habrá mensajes de error - en el archivo /var/log/maillog + /etc/certs/ + es el directorio destinado a almacenamiento de + los ficheros de certificado y llave en local. + El último requisito es una reconstrucción + del fichero .cf local. Solo tiene que + teclear make + install en el directorio + /etc/mail. + A continuación ejecute un make + restart, que debería reiniciar el + dæmon Sendmail. + + Si todo fué bien no habrá mensajes de error + en el fichero /var/log/maillog y Sendmail aparecerá en la lista de procesos. - Para una prueba sencilla, simplemente conecte al - servidor de correo usando la utilidad &man.telnet.1;: + Puede probarlo todo de una forma muy sencilla; + conéctese al servidor de correo mediante + &man.telnet.1;: - &prompt.root; telnet example.com 25 + &prompt.root; telnet ejemplo.com 25 Trying 192.0.34.166... -Connected to example.com. +Connected to ejemplo.com. Escape character is '^]'. -220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT) -ehlo example.com -250-example.com Hello example.com [192.0.34.166], pleased to meet you +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 -221 2.0.0 example.com closing connection +221 2.0.0 ejemplo.com closing connection Connection closed by foreign host. Si la línea STARTTLS aparece en la - salida entonces todo está funcionando correctamente. + salida, todo está funcionando correctamente. Nik Clayton
nik@FreeBSD.org
Escrito por
IPsec VPN sobre IPsec - Creando una VPN entre dos redes, separadas por la Internet - utilizando gateways FreeBSD. + Creación de una VPN entre dos redes, a través de + Internet, mediante puertas de enlace + (gateways) &os;. Hiten M. Pandya
hmp@FreeBSD.org
Escrito por
- Entendiendo IPsec + Qué es IPsec - Esta sección le guiará a través del - proceso de configuración de IPsec, y de su uso en un - ambiente que consista en máquinas FreeBSD y - µsoft.windows; 2000/XP, para - hacer que se comuniquen de manera segura. Para configurar - IPsec, es necesario que esté familiarizado con los - conceptos de construcción de un kernel personalizado - (vea ). + Esta sección le guiará a través del + proceso de configuración de IPsec, y de su uso en un + entorno consistente en máquinas &os; y + µsoft.windows; 2000/XP, para + hacer que se comuniquen de manera segura. Para configurar + IPsec es necesario que esté familiarizado con los + conceptos de construcción de un kernel personalizado + (consulte el ). - IPsec es un protocolo que se sienta - encima de la capa del protocolo de Internet (IP). Le permite - a dos o mas equipos comunicarse de manera segura (de ahí - el nombre). La pila de red IPsec de FreeBSD está - basada en la implementación - KAME, la cual tiene + IPsec es un protocolo que está + sobre la capa del protocolo de Internet (IP). Le permite + a dos o más equipos comunicarse de forma segura (de ahí + el nombre). La pila de red IPsec de &os; + se basa en la implementación + KAME, que incluye soporte para las dos familias de protocolos, IPv4 e IPv6. - FreeBSD 5.X contiene una pila IPsec acelerada - por hardware, conocida como Fast - IPsec, que fué obtenida de OpenBSD. - Emplea hardware criptográfico (cuando es posible) - a través del subsistema &man.crypto.4; para - optimizar el desempeño de IPsec. Este subsistema es - nuevo, y no soporta todas las opciones que están - disponibles en la versión KAME de IPsec. De todas - maneras, para habilitar IPsec acelerado por hardware, se - tienen que agregar las siguientes opciones de kernel al - archivo de configuración de kernel: + FreeBSD 5.X contiene una pila IPsec acelerada + por hardware, conocida como Fast + IPsec, que fué obtenida de OpenBSD. + Emplea hardware criptográfico (cuando es posible) + a través del subsistema &man.crypto.4; para + optimizar el rendimiento de IPsec. Este subsistema es + nuevo, y no soporta todas las opciones disponibles en la + versión KAME de IPsec. Para poder habilitar IPsec + acelerado por hardware debe añadir las siguientes + opciones al fichero de configuración de su kernel: opciones de kernel FAST_IPSEC options FAST_IPSEC # new IPsec (cannot define w/ IPSEC) - Note que actualmente no es posible utilizar el subsistema - Fast IPsec junto con la implementación - KAME de IPsec. Consulte la página de manual - &man.fast.ipsec.4; para mayor información. + Tenga en cuenta que no es posible utilizar el subsistema + Fast IPsec y la implementación + KAME de IPsec en la misma computadora. Consulte la + página de manual &man.fast.ipsec.4; para más + información. IPsec ESP IPsec AH - IPsec consiste de dos sub-protocolos: + IPsec consta de dos sub-protocolos: - Encapsulated Security Payload - (ESP), protege los datos del paquete IP - de interferencias de terceros, encriptando el contenido - utilizando algoritmos de criptografía simétrica + Encapsulated Security Payload + (ESP), que protege los datos del paquete IP + de interferencias de terceros, cifrando el contenido + utilizando algoritmos de criptografía simétrica (como Blowfish, 3DES). - Authentication Header (AH), + Authentication Header (AH), que protege la cabecera del paquete IP de interferencias de - terceros e imitación (spoofing), computando un - checksum criptográfico y aplicando a los campos - de cabecera IP una función hash segura. Esto es - entonces seguido por una cabecera adicional que contiene - el hash, para permitirle a la información en el - paquete ser autentificada. + terceros así como contra la falsificación + (spoofing), calculando una suma de + comprobación criptográfica y aplicando a + los campos de cabecera IP una función hash segura. + Detrás de todo esto va una cabecera adicional que + contiene el hash para permitir la validación de + la información que contiene el paquete. - ESP y AH pueden - ser utilizados de manera conjunta o separada, dependiendo - del ambiente. + ESP y AH pueden + utilizarse conjunta o separadamente, dependiendo del + entorno. VPN Red privada virtual VPN - IPsec puede ser utilizado ya sea para encriptar directamente - el tráfico entre dos equipos (conocido como - modo de transporte); o para construir - túneles virtuales entre dos subredes, - las cuales pueden ser usadas para comunicación segura + IPsec puede utilizarse para cifrar directamente el + tráfico entre dos equipos (conocido como + modo de transporte) o para construir + túneles virtuales entre dos subredes, + que pueden usarse para comunicación segura entre dos redes corporativas (conocido como modo - de tunel). Este último es comunmente + de túnel). Este último es muy conocido como una red privada virtual (Virtual - Private Network, VPN). La página de manual - &man.ipsec.4; debe ser consultada para información - detallada sobre el subsistema IPsec en FreeBSD. + Private Network, o VPN). &man.ipsec.4; contiene + información detallada sobre el subsistema IPsec de + &os;. - Para agregar soporte de IPsec a su kernel, agregue las - siguientes opciones a su archivo de configuración - de kernel: + Si quiere añdir soporte IPsec a su kernel debe + incluir las siguientes opciones al fichero de configuración + de su kernel: opciones de kernel IPSEC opciones de kernel IPSEC_ESP options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/ IPSEC) opciones de kernel IPSEC_DEBUG - Si se desea soporte para la depuración de - errores, la siguiente opción también debe - ser agregada: + Si quiere soporte para la depuración de + errores no olvide la siguiente opción: options IPSEC_DEBUG #debug for IP security
El Problema - No existe un estándar para lo que constituye una VPN. - VPNs pueden ser implementadas utilizando un número de - tecnologías diferentes, cada una de las cuales tiene sus - propias fortalezas y debilidades. Esta sección presenta un - escenario, y las estrategias usadas para implementar una VPN + No existe un estándar para lo que constituye una VPN. + Las VPN pueden implementarse utilizando numerosas + tecnologías diferentes, cada una de las cuales tiene sus + pros y sus contras. Esta sección presenta un + escenario, y las estrategias usadas para implementar una VPN para este escenario. - El escenario: dos redes, conectadas por Internet, para - comportarse como una sola + El escenario: dos redes, conectadas por Internet, que + queremos que se comporten como una sola VPN - creando + creación - La premisa es como sigue: + Este es el punto de partida: Usted tiene al menos dos sitios - Ambos sitios están utilizando IP internamente + Ambos sitios utilizan IP internamente - Ambos sitios están conectados al Internet, a - través de un gateway que esta corriendo FreeBSD. + Ambos sitios están conectados a Internet, a + través de una puerta de enlace &os;. - El gateway en cada red tiene al menos una dirección - IP pública. + La puerta de enlace de cada red tiene al menos una + dirección IP pública. - Las direcciones internas de las dos redes pueden ser - direcciones IP públicas o privadas, no importa. - Puede ejecutar NAT en la máquina gateway de ser - necesario. + Las direcciones internas de las dos redes pueden ser + direcciones IP públicas o privadas, no importa. + Puede ejecutar NAT en la máquina que hace de + puerta de enlace si es necesario. Las direcciones IP internas de las dos redes - no colisionan. Aunque espero - que sea posible teoricamente utilizar una combinación - de tecnología VPN y NAT para hacer funcionar - esto, espero que sea una pesadilla de - configuración. + no colisionan. Aunque espero + que sea teóricamente posible utilizar una + combinación de tecnología VPN y NAT + para hacer funcionar todo esto sospecho que + configurarlo sería una pesadilla. - Si encuentra que está tratando de conectar dos redes, - donde ambas utilizan el mism rango de direcciones IP privadas - (ej., las dos usan 192.168.1.x), entonces una de las dos redes - debe ser renumerada. + 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)debería renumerar + una de las dos redes. - La topología de red puede verse de manera similar - a esto: + La topología de red se parecería a esto: Network #1 [ Internal Hosts ] Private Net, 192.168.1.2-254 [ Win9x/NT/2K ] [ UNIX ] | | .---[fxp1]---. Private IP, 192.168.1.1 | FreeBSD | `---[fxp0]---' Public IP, A.B.C.D | | -=-=- Internet -=-=- | | .---[fxp0]---. Public IP, W.X.Y.Z | FreeBSD | `---[fxp1]---' Private IP, 192.168.2.1 | | Network #2 [ Internal Hosts ] [ Win9x/NT/2K ] Private Net, 192.168.2.2-254 [ UNIX ] - Note las dos direcciones IP públicas. Usaré las - letras para referirme a ellas en el resto de este artículo. - El cualquier lugar que vea esas letras en este artículo, - reemplacelas con su propia dirección IP pública. - Note también que internamente, las dos máquinas - gateway tienen la dirección IP .1, y que las dos redes - tienen direcciones IP privadas diferentes (192.168.1.x y 192.168.2.x respectivamente). Todas las - máquinas en las redes privadas han sido configuradas para - utilizar la máquina .1 - como su gateway por omisión. + Observe las dos direcciones IP públicas. Usaré + letras para referirme a ellas en el resto de este artículo. + El cualquier lugar que vea esas letras en este artículo + reemplácelas con su propia dirección IP pública. + Observe también que internamente las dos máquinas + que hacen de puerta de enlace tienen la dirección IP .1, + y que las dos redes tienen direcciones IP privadas diferentes + (192.168.1.x y 192.168.2.x respectivamente). Todas las + máquinas de las redes privadas están configuradas para + utilizar la máquina .1 + como su puerta de enlace por defecto. - La intención es que, desde el punto de vista de la - red, cada red debe ver las máquinas en la otra red como - si estuvieran directamente conectadas al mismo ruteador -- - aunque sea un ruteador ligeramente lento con una tendencia - ocasional a tirar paquetes. + La intención es que, desde el punto de vista de la + red, cada red debe ver las máquinas 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 significa que (por ejemplo), la máquina - 192.168.1.20 debe ser + Esto significa que (por ejemplo), la máquina + 192.168.1.20 debe ser capaz de ejecutar ping 192.168.2.34 - y recibir una respuesta, transparentemente. Las máquinas - &windows; deben ser capaces de ver a las máquinas en la - otra red, accesar a archivos compartidos, y demás, - exactamente de la misma manera en que accesan a las - máquinas en la red local. + y recibir de forma transparente una respuesta. Las + máquinas &windows; deben ser capaces de ver las + máquinas de la otra red, acceder a sus ficheros + compartidos, etc, exactamente igual que cuando acceden a + las máquinas de la red local. - Y todo la cosa debe ser segura. Esto significa que el - tráfico entre las dos redes tiene que ser - encriptado. + Y todo debe hacerse de forma segura. Esto significa que el + tráfico entre las dos redes tiene que ser + cifrado. - Crear una VPN entre estas dos redes es un proceso multi-paso. - Las etapas son las siguientes: + La creación de una VPN entre estas dos redes es un + proceso que requiere varios pasos. Las etapas son estas: - Crear un enlace de red virtual entre las dos - redes, a través de Internet. Probarlo, usando herramientas - como &man.ping.8;, para asegurarse que funcione. + Crear un enlace de red virtual entre las dos + redes, a través de Internet. Probarlo usando herramientas + como &man.ping.8; para asegurarse de que funcione. - Aplicar políticas de seguridad para asegurarse - que el tráfico entre las dos redes sea transparentemente - encriptado y desencriptado según sea necesario. - Probar esto, usando herramientas como &man.tcpdump.1;, - para asegurarse que el tráfico esté encriptado. + Aplicar políticas de seguridad para asegurarse + de que el tráfico entre las dos redes sea cifrado + y descifrado de forma transparente. Comprobarlo mediante + herramientas como &man.tcpdump.1; para asegurarse de que + el tráfico esté siendo efectivamente + cifrado. - Configurar software adicional en los gateways FreeBSD, - para permitir a las máquinas &windows; verse entre - ellas a través de la VPN. + Configurar software adicional en las puertas de + enlace &os; para permitir a las máquinas &windows; + verse entre ellas a través de la VPN. - Paso 1: Creando y probando un enlace de red <quote>virtual</quote> + Paso 1: Creación y prueba de un enlace de + red <quote>virtual</quote> - Suponga que usted está en la máquina gateway - en la red #1 (con dirección IP pública A.B.C.D, dirección IP privada - 192.168.1.1), y ejecuta - ping 192.168.2.1, que es la dirección - privada de la máquina con dirección IP - W.X.Y.Z. ¿Que necesita suceder - para que esto funcione? + Suponga que está en la puerta de enlace de la red + red #1 (con dirección IP pública A.B.C.D, dirección IP privada + 192.168.1.1), y ejecuta + ping 192.168.2.1, que es la dirección + privada de la máquina con dirección IP + W.X.Y.Z. ¿Qué + hace falta para esto? - La máquina gateway necesita saber como alcanzar - a 192.168.2.1. En otras - palabras, necesita tener una ruta a La puerta de enlace necesita saber cómo alcanzar + a 192.168.2.1. En otras + palabras, necesita tener una ruta hasta 192.168.2.1. - Las direcciones IP privadas, como aquellas en el rango - 192.168.x no se supone - que aparezcan en Internet sueltas. En lugar de eso, cada - paquete que mande a 192.168.2.1 - necesitará ser encerrado dentro de otro paquete. - Este paquete necesitará aparecer como si fuera - enviado desde A.B.C.D, - y tendrá que ser enviado a W.X.Y.Z. Este proceso es llamado - encapsulación. + Las direcciones IP privadas, como las que están + en el rango 192.168.x + no deberían 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 características + 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. - Una vez que este paquete llega a - W.X.Y.Z necesitará - ser desencapsulado, y entregado a + Una vez que este paquete llega a + W.X.Y.Z necesitará + ser desencapsulado, y entregado a 192.168.2.1. - Puede pensar en ello como si se necesitara un tunel - entre las dos redes. Las dos bocas del tunel son - las direcciones IP A.B.C.D y - W.X.Y.Z, y se debe decir al tunel - las direcciones de las direcciones IP privadas que serán - permitidas que pasen a través de él. El tunel es - usado para transferir tráfico con direcciones IP - privadas a través del Internet público. + Puede verlo como si necesitara un túnel + entre las dos redes. Las dos bocas del túnel + son las direcciones IP A.B.C.D y + W.X.Y.Z, y debe hacer que el + túnel sepa cuáles serán las direcciones + IP privadas que tendrán permitido el paso a través + de él. El túnel se usa para transferir tráfico + con direcciones IP privadas a través de la Internet + pública. - Este tunel es creado utilizando la interfaz genérica, - o dispositivo gif en FreeBSD. Como - puede imaginarse, la interfaz gif - en cada equipo gateway debe ser configurada con cuatro - direcciones IP; dos para las direcciones IP públicas, + Este túnel se crea mediante la interfaz genérica, + o dispositivo gif en &os;. Como + puede imaginarse la interfaz gif + de cada puerta de enlace debe configurarse con cuatro + direcciones IP: dos para las direcciones IP públicas, y dos para las direcciones IP privadas. - El soporte para el dispositivo gif debe ser compilado - en el kernel de &os; para ambas máquinas. Puede - hacer esto agregando la línea: + El soporte para el dispositivo gif debe compilarse en el + kernel de &os; en ambas máquinas añadiendo + la línea device gif - a los archivos de configuración del kernel en - ambas máquinas, y entonces compilarlo, instalarlo - y reiniciar normalmente. + a los ficheros de configuración del kernel de + ambas máquinas, compilarlo, instalarlo y reiniciar. - La configuración del tunel es un proceso de dos - partes. Primero se le debe decir al tunel cuales son las - direcciones IP exteriores (o públicas), utilizando - &man.gifconfig.8;. Luego, las direcciones IP deben ser - configuradas usando &man.ifconfig.8;. + La configuración del túnel es un proceso + que consta de dos partes. Primero se le debe decir al + túnel cuáles son las direcciones IP exteriores + (o públicas) mediante &man.gifconfig.8;. Después + configure las direcciones IP con &man.ifconfig.8;. - En &os; 5.X, la funcionalidad brindada por la - utilidad &man.gifconfig.8; ha sido fusionada a - &man.ifconfig.8;. + En &os; 5.X las funciones de &man.gifconfig.8; + se han incluido en &man.ifconfig.8;. - En la máquina gateway de la red #1 debe ejecutar - los siguientes dos comandos para configurar el tunel. + En la puerta de enlace de la red #1 debe ejecutar + las siguientes dos órdenes para configurar el + túnel. 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 máquina gateway ejecute los mismos - comandos, pero con el orden las direcciones IP - invertidas. + 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 - Entonces puede ejecutar: + Ahora ejecute: gifconfig gif0 - para ver la configuración. Por ejemplo, en el - gateway de la red #1, usted vería algo como esto: + y podrá ver la configuración. Por ejemplo, en la + puerta de enlace de la red #1 vería algo parecido + a esto: &prompt.root; 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 tunel entre las direcciones - físicas A.B.C.D y - W.X.Y.Z, y el tráfico - permitido a través del tunel es entre - 192.168.1.1 y + Como puede ver se ha creado un túnel entre las direcciones + físicas A.B.C.D y + W.X.Y.Z, y el tráfico + que puede pasar a través del túnel es entre + 192.168.1.1 y 192.168.2.1. - Esto también habrá agregado una entrada en - la tabla de ruteo en ambas máquinas, la cual puede - examinar con el comando netstat -rn. - Esta salida es de la máquina gateway en la red #1. + Esto también habrá agregado una entrada en + la tabla de rutas de ambas máquinas, que puede + examinar con netstat -rn. + Esta salida es de la puerta de enlace de la red #1. &prompt.root; netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire ... 192.168.2.1 192.168.1.1 UH 0 0 gif0 ... - Como el valor de Flags lo indica, esta - es una ruta de equipo, lo que significa que cada gateway - conoce como alcalzar al otro gateway, pero no saben como - alcanzar el resto de sus respectivas redes. Ese problema - será solucionado proximamente. + Como el valor de Flags lo indica, esta + es una ruta de equipo, lo que significa que cada puerta de + enlace sabe como alcanzar la otra puerta de enlace, pero no saben + cómo llegar al resto de sus respectivas redes. Ese + problema se solucionará en breve. - Es posible que usted esté ejecutando un - firewall en ambas máquinas. Esto necesitará - ser transpasado por el tráfico VPN. Tal vez desée - permitir todo el tráfico entre ambas redes, o tal - vez quiera incluir reglas en el firewall que protejan ambos - extremos de la VPN del otro. + Es posible que disponga de un cortafuegos en ambas + máquinas, por lo que tendrá que buscar la + forma de que el tráfico de la VPN pueda entrar y + salir limpiamente. Puede permitir todo el tráfico + 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 simplifican enormemente si configura - el firewall para permitir todo el tráfico a - través de la VPN. Siempre puede apretar las cosas - despues. Si está utilizando &man.ipfw.8; en las - máquinas gateway entonces un comando como + Las pruebas se simplifican enormemente si configura + el cortafuegos para permitir todo el tráfico a + través de la VPN. Siempre puede ajustar las cosas + después. Si utiliza &man.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 tráfico entre los dos - extremos de la VPN, sin afectar sus otras reglas del - firewall. Obviamente necesitará ejecutar este comando - en ambos equipos gateway. + permitirá todo el tráfico 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 suficiente para permitir a cada máquina - gateway hacer un ping entre ellas. En 192.168.1.1, - usted debe ser capaz de ejecutar + Esto es suficiente 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, y debe ser capaz de hacer lo - mismo en la otra máquina gateway. + y obtener una respuesta; es obvio que debería poder + hacer los mismo en la otra puerte de enlace. - De todas maneras, no será capaz de alcanzar - máquinas internas en cada red todavía. Esto - se debe al ruteo -- aunque las máquinas gateway - saben como alcanzarse entre ellas, no saben como alcanzar - la red detrás de cada una. + Aún no podrá acceder a las máquinas + internas de las redes. El problema está en el + encaminamiento: aunque las puertas de enlace saben + cómo alcanzarse mútuamente no saben cómo + llegar a la red que hay detrás de la otra. - Para resolver este problema debe añadir una ruta - estática en cada máquina gateway. El comando - para hacer esto en el primer gateway podría ser: + Para resolver este problema debe añadir una ruta + estática en cada puerta de enlace. La orden + en la primera puerta de enlace podría ser: route add 192.168.2.0 192.168.2.1 netmask 0xffffff00 - Esto significa Para alcanzar los equipos en - la red 192.168.2.0, envía - los paquetes al equipo 192.168.2.1. - Necesitará ejecutar un comando similar en el otro - gateway, pero con las direcciones + Esto significa Para alcanzar los equipos en + la red 192.168.2.0, envía + 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 tráfico IP de equipos en una red no será + El tráfico IP de equipos en una red no será capaz de alcanzar equipos en la otra red. - Eso ha creado ahora dos tercios de una VPN entre las dos - redes, de la misma manera que es virtual y - es una network. Todavía no es privada. - Puede probar esto utilizando &man.ping.8; y &man.tcpdump.1;. - Abra una sesión en el equipo gateway y ejecute + Ya tiene dos tercios de una VPN, puesto que ya es + virtual y es una red. + Todavía no es privada. Puede comprobarlo con + &man.ping.8; y &man.tcpdump.1;. Abra una sesión en + la puerta de enlace y ejecute tcpdump dst host 192.168.2.1 En otra sesión en el mismo equipo ejecute ping 192.168.2.1 - Verá una salida que se parece algo a esta: + Verá algo muy parecido a esto: 16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply 16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply 16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo reply - Como puede ver, los mensajes ICMP van y vienen sin - encriptar. Si hubiera usado el parámetro - en &man.tcpdump.1; para tomar más bytes de datos de - estos paquetes, vería más información. + Como puede ver los mensajes ICMP van y vienen sin + cifrar. Si usa el parámetro + en &man.tcpdump.1; para tomar más bytes de datos de + estos paquetes verá más información. - Obviamente esto es inaceptable. La siguiente sección - discutirá el aseguramiento del enlace entre las dos - redes para que todo el tráfico sea encriptado - automaticamente. + Obviamente esto es inaceptable. La siguiente sección + explicará cómo asegurar el enlace entre las dos + redes para que todo el tráfico se cifre + automáticamente. Sumario: - Configure ambos kernels con pseudo-device + Configure ambos kernel con pseudo-device gif. - Edite /etc/rc.conf en el equipo - gateway #1 y agregue las siguientes líneas - (reemplazando direcciones IP según sea necesario). + Edite /etc/rc.conf en la puerta de + enlace #1 y añada las siguientes líneas + (reemplazando las direcciones IP según 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" - Edite su script de firewall - (/etc/rc.firewall, o similar) en ambos - equipos, y agregue + Edite la configuración de su cortafuegos + (/etc/rc.firewall, o lo que corresponda) + en ambos equipos y añada ipfw add 1 allow ip from any to any via gif0 - Realice cambios similares a - /etc/rc.conf en el equipo gateway - #2, invirtiendo el orden de las direcciones IP. + Haga los cambios oportunos en el + /etc/rc.conf de la puerta de + enlace #2, invirtiendo el orden de las direcciones IP. - Paso 2: Asegurando el enlace + Paso 2: Asegurar el enlace - Para asegurar el enlace usaremos IPsec. IPsec brinda un - mecanismo para que dos equipos coincidan en una llave de - encriptación, y entonces usar esta llave para - encriptar los datos entre los dos equipos. + 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 configuración a considerar - aquí. + Existen dos áreas de configuración a + tener en cuenta: - Debe existir un mecanismo para que los dos equipos - se pongan de acuerdo en el mecanismo de encriptación - a utilizar. Una vez que los dos equipos se han puesto de - acuerdo en este mecanismo se dice que existe una - asociación de seguridad - entre ellos. + 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 + asociación de seguridad entre + ellos. Debe existir un mecanismo para especificar que tráfico - debe ser encriptado. Obviamente, usted no desea encriptar - todo su tráfico saliente -- usted solo desea - encriptar el tráfico que es parte de la VPN. Las - reglas que usted pone para determinar que tráfico - será encriptado son llamadas políticas + debe ser cifrado. Obviamente, usted no querrá + cifrar todo su tráfico saliente: solo querrá + cifrar el tráfico que es parte de la VPN. Las + reglas con las que determinará qué tráfico + será cifrado se llaman políticas de seguridad. - Las asociaciones de seguridad y las políticas - son mantenidas por el kernel, y pueden ser modificadas - por programas de usuario. De todas maneras, antes de que usted - pueda hacer esto debe configurar el kernel para soportar IPsec y - el protocolo ESP (Encapsulated Security Payload). Esto es - realizado configurando el kernel con: + Tanto las asociaciones de seguridad como las + políticas de seguridad son responsabilidad del kernel, + pero pueden ser modificadas desde el espacio de usuario. + Antes de poder hacerlo, tendrá que configurar el kernel + para que incluya IPsec y el protocolo ESP + (Encapsulated Security Payload). Incluya en el fichero de + configuración de su kernel lo siguiente: opciones de kernel IPSEC options IPSEC options IPSEC_ESP - y recompilando, resintalando y reiniciando. Como se dijo - anteriormente, necesitará hacer esto al kernel de los - dos equipos gateway. + 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. IKE - Tiene dos opciones cuando se trata de configurar - asociaciones de seguridad. Puede configurarlas a mano entre - los dos equipos, lo que significa elegir el algoritmo de - encriptación, llaves de encriptación, y demás, - o puede utilizar daemons que implementan el protocolo - de intercambio de llaves de Internet (IKE, Internet Key Exchange) - para que lo hagan por usted. + Tiene dos opciones cuando se trata de configurar + asociaciones de seguridad. Puede configurarlas a mano en + los dos equipos, lo que significa elegir el algoritmo de + cifrado, las llaves de cifrado, etc, o puede utilizar + alguno de los dæmons que implementan el protocolo + de intercambio de llaves de Internet (IKE, Internet Key + Exchange). - Yo recomiendo lo último. Aparte de cualquier otra - cosa, es más fácil de configurar. + Le recomiendo la segunda opción. Aparte de + otras consideraciones es más fácil de + configurar. IPsec políticas de seguridad setkey - Editar y desplegar políticas de seguridad es llevado - a cabo usando &man.setkey.8;. Como una analogía, - setkey es a las tablas de políticas de - seguridad del kernel lo que &man.route.8; es a las tablas de - ruteo del kernel. setkey también puede - desplegar las asociaciones de seguridad actuales, y para - continuar con la analogía, similarmente a - netstat -r es ese aspecto. + La edición y despliegue se efectúa con + &man.setkey.8;. Todo esto se entiende mejor con una + analogía. setkey es a las tablas + de políticas de seguridad del kernel lo que &man.route.8; + es a las tablas de rutas del kernel. + También puede usar setkey + ver las asociaciones de seguridad en vigor, siguiendo con + la analogía, igual que puede usar + netstat -r. - Existen un número de opciones de daemons para - administrar las asociaciones de seguridad en FreeBSD. Este - artículo describirá como usar una de ellas, - racoon — el cual está disponible como - security/racoon en la + Existen numerosos dæmons que pueden encargarse de + la gestión de asociaciones de seguridad en &os;. En + este texto se muestra cómo usar uno de ellos, + racoon (que puede instalar desde + security/racoon en la colección de ports de &os;. racoon - El software security/racoon - debe ser ejecutado en los dos equipos gateway. En cada equipo es - configurado con la dirección IP del otro extremo de la - VPN, y una llave secreta (la cual usted elije, y debe ser la misma - en ambos gateways). + El software security/racoon + debe ejecutarse en las dos puertas de enlace. En cada equipo + debe configurar la dirección 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 daemons entonces se contactan entre ellos, confirman - que son quienes dicen ser (utilizando la llave secreta que usted - configuró). Los daemons entonces generan una nueva llave - secreta, y la utilizan para encriptar el tráfico a - través de la VPN. Periodicamente intercambian este - secreto, para que incluso si un atacante fuera a comprometer una - de las llaves (lo cual es teoricamente cercano a imposible) no - le haría mucho bien -- para cuando haya crackeado la - llave los daemons ya habrán escogido una nueva. + Los dos dæmons entran en contacto uno con otro, y confirman + que son quienes dicen ser (utilizando la llave secreta que usted + configuró). Los dæmons generan una nueva llave + secreta, y la utilizan para cifrar el tráfico que discurre a + través de la VPN. Periódicamente cambian esta + llave, para que incluso si un atacante comprometiera una + de las llaves (lo cual es teóricamente cercano a + imposible) no le serviriía de mucho: para cuando el + atacante haya crackeado la llave los dæmons + ya habrán escogido una nueva. - El archivo de configuración para racoon - está almacenado en ${PREFIX}/etc/racoon. - Debe encontrar un archivo de configuración ahí - el cual no debe necesitar ser cambiado mucho. El otro - componente de la configuración de racoon, la cual - necesitará cambiar, es la llave - precompartida. + El fichero de configuración de racoon + está en ${PREFIX}/etc/racoon. + No debería tener que hacer demasiados cambios a ese + fichero. El otro componente de la configuración de + racoon (que tendrá que + modificar) es la llave pre-compartida. - La configuración por omisión de racoon - espera encontrar esto en el archivo ${PREFIX}/etc/racoon/psk.txt. - Es importante notar que la llave precompartida no - es la llave que será utilizada para encriptar su - tráfico a través del enlace VPN, solamente es un - símbolo que permite le a los daemons que administran las + La configuración 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 + tráfico a través del enlace VPN; solamente es una + muestra que permite a los dæmons que administran las llaves confiar el uno en el otro. - psk.txt contiene una línea - por cada sitio remoto con el que esté tratando. En - este ejemplo, donde existen dos sitios, cada archivo - psk.txt contendrá una línea - (porque cada extremo de la VPN solo está tratando + psk.txt contiene una línea + por cada sitio remoto con el que esté tratando. En + nuestro ejemplo, donde existen dos sitios, cada fichero + psk.txt contendrá una línea + (porque cada extremo de la VPN solo está tratando con un sitio en el otro extremo). - En el equipo gateway #1 esta línea debería + En la puerta de enlace #1 esta línea debería parecerse a esta: - W.X.Y.Z secret + W.X.Y.Z secreto - Esto es, la dirección IP pública + Esto es, la dirección IP + pública 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 -- las reglas normales para escoger una contraseña - aplican. + proporcina el secreto. Obviamente, no debe utilizar + secret como su llave; aplique aquí las + reglas y recomendaciones habituales para la elección de + contraseñas. - En el equipo gateway #2 la línea se parecería + En la puerta de enlace #2 la línea se parecería a esta - A.B.C.D secret + A.B.C.D secreto - Esto es, la dirección IP pública del - extremo remoto, y la misma llave secreta. psk.txt - debe tener modo 0600 (ej., solo modo - lectura/escritura para root) antes de - que racoon corra. + Esto es, la dirección IP pública 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 máquinas gateway. - También necesitará agregar algunas reglas de - firewall para permitir el tráfico IKE, el cual es - transportado sobre UDP al puerto ISAKMP (Internet Security - Association Key Management Protocol). De nuevo, esto debe estar - al principio de la lista de reglas del firewall. + Debe ejecutar racoon en ambas puertas de enlace. + También tendrá que añadir algunas reglas + a su cortafuegos para permitir el tráfico 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 racoon este corriendo puede tratar de dar un - ping a un equipo gateway desde el otro. La conexión - todavía no está encriptada, pero entonces racoon - creará las asociaciones de seguridad entre los dos - equipos -- esto puede tomar un momento, y puede que lo vea - como un corto retraso antes de que los comandos ping - empiecen a responder. + Una vez que ejecute racoon puede tratar de hacer un + ping a una puerta de enlace desde la otra. La conexión + todavía no está cifrada porque aún no se + han creado las asociaciones de seguridad entre los dos + equipos: esto puede llevar un poco de tiempo; es posible que + advierta un pequeño retraso antes de los ping empiecen + responder. - Una vez que se han creado las asociaciones de seguridad + Una vez creadas las asociaciones de seguridad puede verlas utilizando &man.setkey.8;. Ejecute setkey -D - en cualquiera de los equipos para ver la información de - la asociación de seguridad. + en cualquiera de los equipos para comprobar la información + de la asociación de seguridad. - Eso es la mitad del problema. La otra mitad es configurar - sus políticas de seguridad. + Ya está resuelta la mitad del problema. La otra mitad es + configurar sus políticas de seguridad. - Para crear una política de seguridad sensible, vamos - a revisar lo que se ha configurado hasta el momento. Esta - discusión cuenta para ambos extremos del enlace. + Queremos crear una política de seguridad sensata, + así que vamos a revisar lo que tenemos configurado + hasta el momento. Esta revisión abarca ambos extremos + del enlace. - Cada paquete IP que usted manda tiene una cabecera que - contiene datos acerca del paquete. La cabecera incluye la - dirección IP del destino y de la fuente. Como ya sabemos, - las direcciones IP privadas, como el rango - 192.168.x.y no se supone que - aparezcan en el Internet público. En vez de eso, primero - deben ser encapsulados dentro de otro paquete. Este paquete - debe tener la dirección IP pública de destino y fuente - sustituidas por las direcciones privadas. + Cada paquete IP que usted manda tiene una cabecera que + contiene datos acerca del paquete. La cabecera incluye la + dirección IP de destino y del origen. Como ya sabemos, + las direcciones IP privadas como el rango + 192.168.x.y no deberían + aparezcan en Internet. Dado que es a través de Internet + por donde los queremos transmitir los debemos encapsular dentro + de otro paquete. Este paquete debe contener tanto la dirección + IP de destino y origen públicas sustituidas por las + direcciones privadas. - Así que si su paquete saliente empezó luciendo como este: + Así que si su paquete saliente empezó + pareciendose a este: .----------------------. | Src: 192.168.1.1 | | Dst: 192.168.2.1 | | <other header info> | +----------------------+ | <packet data> | `----------------------' - Entonces será encapsulado dentro de otro paquete, - luciendo como este: + tras el encapsulado se parecerá bastante a este: .--------------------------. | 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> | | | `----------------------' | `--------------------------' - Esta encapsulación es llevada a cabo - por el dispositivo gif. Como puede - ver, el paquete ahora tiene una dirección IP real en - el exterior, y nuestro paquete original ha sido envuelto - como dato dentro del paquete que será puesto en - Internet. + El dispositivo gif se encarga + del encapsulado. Como puede ver el paquete tiene una + dirección IP real en el exterior, y nuestro paquete + original ha sido envuelto como dato dentro del paquete que + enviaremos a través de Internet. - Obviamente, queremos que todo el tráfico entre - las VPNs esté encriptado. Tal vez pueda tratar - de poner esto en palabras, como: + Obviamente, queremos que todo el tráfico entre + las VPN vaya cifrado. Pongamos esto último en + palabras para comprenderlo mejor: - Si un paquete sale desde A.B.C.D, y está destinado para - W.X.Y.Z, entonces encríptalo, + Si un paquete sale desde A.B.C.D, y tiene como destino + W.X.Y.Z, cífralo utilizando las asociaciones de seguridad necesarias. Si un paquete llega desde W.X.Y.Z, y está destinado para - A.B.C.D, entonces desencríptalo, + role="ipaddr">W.X.Y.Z, y tiene como destino + A.B.C.D, descífralo utilizando las asociaciones de seguridad necesarias. - Eso es un aproximado, pero no del todo correcto. Si hace esto, - todo el tráfico desde y hacia W.X.Y.Z, - incluso tráfico que no es parte de la VPN, será - encriptado. Eso no es exactamente lo que quiere. La política - correcta es como sigue + Este planteamiento se aproxima bastante, pero no es + exactamente lo que queremos hacer. Si lo hiciera así + todo el tráfico desde y hacia + W.X.Y.Z, incluso el tráfico + que no forma parte de la VPN, será cifrado; esto no es lo que + queremos. La política correcta es la siguiente: Si un paquete sale desde A.B.C.D, y ese paquete está - encapsulando a otro paquete, y esta destinado para - W.X.Y.Z, entonces encríptalo, + role="ipaddr">A.B.C.D, y está + encapsulando a otro paquete, y tiene como destino + W.X.Y.Z, cífralo utilizando las asociaciones de seguridad necesarias. Si un paquete llega desde W.X.Y.Z, y ese paquete está - encapsulando a otro paquete, y esta destinado para - A.B.C.D, entonces desencríptalo, + role="ipaddr">W.X.Y.Z, y está + encapsulando a otro paquete, y tiene como destino + A.B.C.D, descífralo utilizando las asociaciones de seguridad necesarias. Un cambio sutil, pero necesario. - Las políticas de seguridad también son - puestas utilizando &man.setkey.8;. &man.setkey.8; proporciona - un lenguaje de configuración para definir la - política. Puede ya sea introducir las instrucciones de - configuración vía stdin, o puede usar la opción - para especificar un nombre de archivo que + Las políticas de seguridad también se + imponen utilizando &man.setkey.8;. &man.setkey.8; proporciona + un lenguaje de configuración para definir la + política. Puede introducir las instrucciones de + configuración a través de la entrada estándar + (stdin), o puede usar la opción + para especificar un fichero que contenga las instrucciones de configuración. - La configuración en el equipo gateway #1 (el cual - tiene la dirección IP pública - A.B.C.D) para forzar que todo - el tráfico saliente hacia W.X.Y.Z - sea encriptado es: + La configuración en la puerta de enlace #1 (que + tiene la dirección IP pública + A.B.C.D) para forzar que todo + el tráfico 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; - Ponga estos comando en un archivo (ej., - /etc/ipsec.conf) y entonces ejecute + Ponga estas órdenes en un fichero (por ejemplo + /etc/ipsec.conf) y ejecute &prompt.root; setkey -f /etc/ipsec.conf - le dice a &man.setkey.8; que - queremos agregar una regla a la base de datos de políticas - segura. El resto de esta línea especifica que paquetes - se ajustarán a esta política. + le dice a &man.setkey.8; que + queremos añadir una regla a la base de datos de + políticas de seguridad. El resto de la línea + especifica qué paquetes se ajustarán a esta + política. A.B.C.D/32 y W.X.Y.Z/32 son las direcciones IP y máscaras de red que identifican la red o equipos a los - que esta política se aplicará. En este caso, queremos - aplicarla al tráfico entre estos dos equipos. - dice que esta política aplica - a paquetes salientes, e dice que el - paquete será asegurado. + que se aplicará esta política. En nuestro caso + queremos aplicarla al tráfico entre estos dos equipos. + dice que esta política se aplica + a paquetes salientes, e hace que el + paquete sea asegurado. - La segunda línea especifica como este paquete - será encriptado. es el - protocolo que será utilizado, mientras que - indica que el paquete será - despues encapsulado en un paquete IPsec. El uso repetido de - A.B.C.D y - W.X.Y.Z es utilizado para - seleccionar la asociación de seguridad a usar, y - por último exige que los - paquetes deben ser encriptados si concuerdan con esta + La segunda línea especifica cómo será + cifrado este paquete. es el + protocolo que se utilizará, mientras que + indica que el paquete será + después encapsulado en un paquete IPsec. El uso repetido de + A.B.C.D y + W.X.Y.Z se utiliza para + seleccionar la asociación de seguridad a usar, y + por último 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 + 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; - Note el en lugar del - en este caso, y la inversión necesaria de las direcciones + Observe el en lugar del + en este caso, y la inversión necesaria de las direcciones IP. - El otro equipo gateway (el cual tiene la dirección - IP pública W.X.Y.Z) + La otra puerta de enlace (que tiene la dirección + IP pública 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 añadir reglas de firewall - para permitir la circulación de paquetes ESP e IPENCAP - de ida y vuelta. Estas reglas necesitarán ser agregadas - a ambos equipos. + Finalmente, necesita añadir reglas a su cortafuegos + para permitir la circulación de paquetes ESP e IPENCAP + de ida y vuelta. Tendrá que añadir reglas como + estas a ambos equipos. ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D - Debido a que las reglas son simétricas puede utilizar - las mismas reglas en cada equipo gateway. + Debido a que las reglas son simétricas puede utilizar + las mismas reglas en ambas puertas de enlace. - Los paquetes salientes se verán ahora como esto: + Los paquetes salientes tendrán ahora este aspecto: .------------------------------. --------------------------. | Src: A.B.C.D | | | Dst: W.X.Y.Z | | | <other header info> | | Encrypted +------------------------------+ | packet. | .--------------------------. | -------------. | contents | | Src: A.B.C.D | | | | are | | Dst: W.X.Y.Z | | | | completely | | <other header info> | | | |- secure | +--------------------------+ | | Encap'd | from third | | .----------------------. | | -. | packet | party | | | Src: 192.168.1.1 | | | | Original |- with real | snooping | | | Dst: 192.168.2.1 | | | | packet, | IP addr | | | | <other header info> | | | |- private | | | | +----------------------+ | | | IP addr | | | | | <packet data> | | | | | | | | `----------------------' | | -' | | | `--------------------------' | -------------' | `------------------------------' --------------------------' - cuando son recibidos por el extremo más lejano de la - VPN primero serán desencriptados (utilizando las - asociaciones de seguridad que han sido negociadas por racoon). - Entonces entrarán a la interfaz gif, - la cual desenvuelve la segunda capa, hasta que le deja con el - paquete más interno, el cual puede entonces viajar a - la red interna. + Cuando los paquetes llegan al otro extremo de la VPN + serán descifrados (utilizando las + asociaciones de seguridad que han sido negociadas por racoon). + Después entrarán 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 - &man.ping.8; anterior. Primero, inicie una sesión en - la máquina gateway A.B.C.D, + Puede revisar la seguridad utilizando la misma prueba de + &man.ping.8; anterior. Primero, inicie una sesión en + la puerta de enlace A.B.C.D, y ejecute: tcpdump dst host 192.168.2.1 En otra sesión en la misma máquina ejecute ping 192.168.2.1 - Esta vez debe ver una salida similar a la siguiente: + Debería ver algo similar a lo siguiente: XXX tcpdump output - ahora, como puede ver, &man.tcpdump.1; muestra los paquetes ESP. - Si trata de examinarlos con la opción - verá basura (aparentemente), debido a la encriptación. + ahora, como puede ver, &man.tcpdump.1; muestra los paquetes ESP. + Si trata de examinarlos con la opción + verá basura (aparentemente), debido al + cifrado. - Felicitaciones. Acaba de configurar una VPN entre dos sitios + Felicidades. Acaba de configurar una VPN entre dos sitios remotos. Sumario - Configure ambos kernels con: + Configure ambos kernel con: options IPSEC options IPSEC_ESP - Instale security/racoon. - Edite ${PREFIX}/etc/racoon/psk.txt en ambos - equipos gateway, agregando una entrada para la dirección - IP del equipo remoto y una llave secreta que ambos conozcan. - Asegúrese que este archivo tenga modo 0600. + Instale security/racoon. + Edite ${PREFIX}/etc/racoon/psk.txt en ambas + puertas de enlace añadiendo una entrada para la + dirección IP del equipo remoto y una llave secreta que + ambos conozcan. Asegúrese de que este fichero esté + en modo 0600. Añada las siguientes líneas a - /etc/rc.conf en cada equipo: + /etc/rc.conf en ambos equipos: ipsec_enable="YES" ipsec_file="/etc/ipsec.conf" - Crée un /etc/ipsec.conf en - cada equipo que contenga las líneas spdadd necesarias. - En el equipo gateway #1 esto sería: + Crée en ambos equipos un + /etc/ipsec.conf que contenga las + líneas spdadd necesarias. En la puerta de enlace + #1 sería: 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; - En el equipo gateway #2 esto sería: + En la puerta de enlace #2 sería: 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; - Agregue reglas de firewall para permitir el - tráfico IKE, ESP e IPENCAP en ambos equipos: + Añada a su(s) cortafuegos las reglas necesarias para + que permita(n) el paso de tráfico IKE, ESP e + IPENCAP en ambos equipos: 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 ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D - Los dos pasos previos deben ser suficiente para levantar la - VPN. Las máquinas en cada red seán capaces de - referirse una a otra utilizando direcciones IP, y todo el tráfico - a través del enlace será automatica y seguramente - encriptado. + Los dos pasos previos deben bastar para levantar la VPN. + Las máquinas en cada red seán capaces de + dirigirse una a otra utilizando direcciones IP, y todo el + tráfico a través del enlace será cifrado de + forma automática y segura.
Chern Lee - Contribuido por + Escrito por OpenSSH OpenSSH seguridad OpenSSH - OpenSSH es un conjunto de herramientas de conectividad - utilizadas para accesar máquinas remotas de manera segura. Puede ser usado - como un reemplzado directo para rlogin, - rsh, rcp y - telnet. Adicionalmente, cualquier otra conexión - TCP/IP puede ser tuneleada/reenviada de manera segura a través - de SSH. OpenSSH encripta todo el tráfico para - eliminar efectivamente el espionaje, secuestro de conexiones, y otros ataques - a nivel de red. - - OpenSSH es mantenido por el proyecto OpenBSD, y está - basado sobre SSH v1.2.12 con todos errores recientes corregidos y actualizaciones. - Es compatible con los protocolos SSH 1 y 2. OpenSSH ha - estado en el sistema base desde FreeBSD 4.0. + 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. Además cualquier otra conexión + TCP/IP puede reenviarse o enviarse a través de un túnel a + través de SSH. + OpenSSH cifra todo el tráfico 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 + &os; 4.0. Ventajas de utilizar OpenSSH - Normalmente, al utilizar &man.telnet.1; o &man.rlogin.1;, - los datos son enviados a través de la red de una - forma clara, no encriptada. Cualquier olfateador de red - entre el cliente y el servidor puede robar la información - de usuario/contraseña o los datos transferidos en - su sesión. OpenSSH ofrece una - variedad de métodos de autentificación y - encriptación para prevenir que esto suceda. + Normalmente, al utilizar &man.telnet.1; o &man.rlogin.1; + los datos se envían a través de la red en limpio, + es decir, sin cifrar. Cualquier sniffer de red + entre el cliente y el servidor puede robar la información + de usuario/contraseña o los datos transferidos durante + su sesión. OpenSSH ofrece + diversos métodos de validación y cifrado para + evitar que sucedan estas cosas. - Habilitando sshd + Habilitar sshd OpenSSH - habilitando + habilitar - El daemon sshd está - habilitado por omisión en &os; 4.X y puede - ser habilitado o no durante la instalación por el - usuario en &os; 5.X. Para ver si está habilitado, - revise el archivo rc.conf por: + El dæmon sshd está + habilitado por defecto &os; 4.X y puede elegir habilitarlo + o no durante la instalación en &os; 5.X. Si quiere + saber si está habilitado revise si la siguiente + línea está en rc.conf: sshd_enable="YES" - Esto cargará &man.sshd.8;, el programa daemon de OpenSSH, - la próxima vez que su sistema inicie. Alternativamente, - puede simplemente correr directamente el daemon sshd - tecleando sshd en la línea de comando. + Esta línea cargará &man.sshd.8;, el programa + dæmon de OpenSSH, en el arranque + de su sistema. Puede ejecutar el dæmon + sshd tecleando + sshd en la línea de órdenes. Cliente SSH OpenSSH cliente - La utilidad &man.ssh.1; funciona de manera + &man.ssh.1; funciona de manera similar a &man.rlogin.1;. &prompt.root; ssh user@example.com Host key not found from the list of known hosts. Are you sure you want to continue connecting (yes/no)? yes -Host 'example.com' added to the list of known hosts. -user@example.com's password: ******* - - El login continuará como si lo haría si fuera - una sesión utilizando rlogin o - telnet. SSH utiliza un sistema de huellas de - llaves para verificar la autenticidad del servidor cuando el - cliente se conecta. Al usuario se le pide que introduzca - yes solamente la primera vez que se - conecta. Todos los intentos futuros de login son verificados - contra la huella de la llave salvada. El cliente SSH le alertará - si la huella guardada difiere de la huella recibida en intentos - de login futuros. Las huellas son almacenadas en - ~/.ssh/known_hosts, o en - ~/.ssh/known_hosts2 para huellas +Host 'ejemplo.com' added to the list of known hosts. +usuario@ejemplo.com's password: ******* + + El login continuará como lo haría si fuera + una sesión de rlogin o + telnet. SSH utiliza un sistema de huellas de + llaves para verificar 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 verifican + contra la huella de la llave guardada la primera vez. + El cliente SSH le alertará si la huella guardada difiere + 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 omisión, versiones recientes de - los servidores OpenSSH solamente - aceptan conexiones SSH v2. El cliente utilizará la - versión 2 de ser posible y pasará como - respaldo a la versión 1. El cliente puede también - ser forzado a utilizar una u otra pasándole - o para versión 1 o versión 2 - respectivamente. La compatibilidad de versión 1 es - mantenida en el cliente para compatibilidad con versiones - antiguas. + Por defecto las versiones recientes de + los servidores OpenSSH solamente + aceptan conexiones SSH v2. El cliente utilizará la + versión 2 si es posible y pasará como + respaldo a la versión 1. El cliente puede también + ser obligado a utilizar una u otra pasándole + o , respectivamente para + la versión 1 y la versión 2. Se mantiene la + compatibilidad del cliente con la versión 1 para + mantener la compatibilidad con versiones antiguas. Copia segura OpenSSH copia segura scp - El comando &man.scp.1; funciona de manera - similar a &man.rcp.1;; copia un archivo desde o hacia - una máquina remota, excepto que lo hace de - una forma segura. + &man.scp.1; funciona de manera muy similar a &man.rcp.1;; + copia un fichero desde o hacia un sistema remoto, con la + diferencia de que lo hace de una forma segura. - &prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT -user@example.com's password: ******* + &prompt.root; scp usuario@ejemplo.com:/COPYRIGHT COPYRIGHT +usuario@ejemplo.com's password: ******* COPYRIGHT 100% |*****************************| 4735 00:00 &prompt.root; - Ya que la huella fué ya salvada para este equipo en - el ejemplo anterior, es verificada al utilizar &man.scp.1; - aquí. + Ya que la huella se guardó en este equipo durante + el ejemplo anterior se verifica ahora al utilizar + &man.scp.1;. - Los argumentos pasados a &man.scp.1; son similares - a &man.cp.1;, con el archivo o archivos en el primer - argumento, y el destino en el segundo. Ya que el archivo - es transferido a través de la red, a través de - SSH, uno o más argumentos toman la forma - . + Los argumentos de &man.scp.1; son similares + a &man.cp.1;, con el fichero o ficheros como primer + argumento, y el destino como segundo. Ya que el fichero + se transfiere a través de la red, a través de + SSH, uno o más argumentos tienen la estructura + . Configuración OpenSSH configuración - Los archivos de configuración del sistema - para el daemon OpenSSH y el - cliente reside dentro del directorio /etc/ssh. + Los ficheros de configuración del sistema + tanto para el dæmon OpenSSH + como para el cliente están en + /etc/ssh. - ssh_config configura las opciones - del cliente, mientras que sshd_config - configura el daemon. + ssh_config contiene las opciones + del cliente, mientras que sshd_config + configura el dæmon. - Adicionalmente, las opciones - (/usr/sbin/sshd por omisión), - y de rc.conf - pueden brindar más niveles de configuración. + Además las opciones + (/usr/sbin/sshd por defecto), + y de rc.conf + ofrecer más niveles de configuración. ssh-keygen - En lugar de utilizar contraseñas, &man.ssh-keygen.1; - puede ser utilizado para generar llaves DSA o RSA para - autentificar a un usuario: + &man.ssh-keygen.1; le permite validar a un usuario sin + pedirle la contraseña:< &prompt.user; 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: Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: -bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com +bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 usuario@host.ejemplo.com - &man.ssh-keygen.1; creará un par de llaves - pública y privada para usar en la autentificación. - La llave privada es almacenada en - ~/.ssh/id_dsa o en - ~/.ssh/id_rsa, mientras que la llave - pública es almacenada en ~/.ssh/id_dsa.pub - o en ~/.ssh/id_rsa.pub, respectivamente para - tipos de llave DSA y RSA. La llave pública debe ser - colocada en ~/.ssh/authorized_keys de la - máquina remota para que la configuración funcione. - Similarmente, llaves RSA versión 1 deben ser colocadas en + &man.ssh-keygen.1; creará un par de llaves + pública y privada para usar en la validación. + La llave privada se guarda en + ~/.ssh/id_dsa o en + ~/.ssh/id_rsa, mientras que la llave + pública se guarda en ~/.ssh/id_dsa.pub + o en ~/.ssh/id_rsa.pub, respectivamente para + llaves DSA y RSA. La llave pública debe guardarse en + el ~/.ssh/authorized_keys de la + máquina remota para que la configuración funcione. + Las llaves RSA versión 1 deben guardarse en ~/.ssh/authorized_keys. - Esto permitirá conexiones a la máquina remota - basándose en llaves SSH en lugar de contraseñas. - - Si una frase es utilizada en &man.ssh-keygen.1;, se le - pedirá al usuario una contraseña cada - vez para poder utilizar la llave privada. &man.ssh-agent.1; - puede aliviar el esfuerzo de introducir repetidamente - frases largas, y esto es explorado en la sección - abajo. - - Las varias opciones y archivos pueden ser - diferentes de acuerdo a la versión de OpenSSH - que tenga en su propio sistema; para evitar problemas debe - consultar la página de manual &man.ssh-keygen.1;. + De este modo permitirá conexiones a la máquina + remota mediante llaves SSH en lugar de contraseñas. + + Si usa una contraseña al ejecutar &man.ssh-keygen.1;, se + le pedirá al usuario una contraseña cada + vez que quiera utilizar la llave privada. &man.ssh-agent.1; + puede evitar la molestia de introducir repetidamente + frases largas. esto se explica má adelante, en la + . + + Las opciones y ficheros pueden ser + diferentes según la versión de + OpenSSH que tenga en su sistema; para + evitar problemas consulte la página de manual + &man.ssh-keygen.1;. ssh-agent y ssh-add - Las utilidades &man.ssh-agent.1; y &man.ssh-add.1; brindan - métodos para que llaves SSH - sean cargadas en memoria para su uso, sin tener que necesitar - el tecleo de la frase cada vez. - - La utilidad &man.ssh-agent.1; manejará la - autentificación utilizando la llave(s) privada que se - le cargó. &man.ssh-agent.1; debe ser utilizado para - lanzar otra aplicación. En el nivel más básico, - puede generar un shell o a un nivel más avanzado, un - manejador de ventanas. - - Para usar &man.ssh-agent.1; en un shell, primero necesitará - ser generado con un shell como argumento. Segundo, la - identidad necesita ser añadida ejecutando &man.ssh-add.1; - y brindando la frase para la llave privada. Una vez que se han - completado estos pasos el usuario será capaz de hacer - &man.ssh.1; a cualquier equipo que tenga instalada la llave - pública correspondiente. Por ejemplo: + &man.ssh-agent.1; y &man.ssh-add.1; ofrecen + métodos para que las llaves SSH + se puedan cargar en memoria, permitiendo eliminar la necesidad de + teclear la contraseña cada vez que haga falta. + + &man.ssh-agent.1; gestionará la + validación utilizando la llave (o llaves) privada que + le cargue. &man.ssh-agent.1; se usa para lanzar otras + aplicaciones. En el nivel más básico + puede generar una shell o a un nivel más avanzado un + gestor de ventanas. + + Para usar &man.ssh-agent.1; en una shell necesitará + primero ser invocado como argumento por una shell. Segundo, + añada la identidad ejecutando &man.ssh-add.1; y facilitando + la contraseña de la llave privada. Completados estos + pasos el usuario puede hacer &man.ssh.1; a cualquier equipo + que tenga instalada la llave pública correspondiente. + Por ejemplo: &prompt.user; ssh-agent csh &prompt.user; ssh-add Enter passphrase for /home/user/.ssh/id_dsa: Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) &prompt.user; - Para utilizar &man.ssh-agent.1; en X11, una - llamada a &man.ssh-agent.1; necesitará ser - colocada en ~/.xinitrc. Esto - brindará los servicios de &man.ssh-agent.1; - a todos los programas lanzados en X11. - Un archivo ~/.xinitrc de ejemplo - podría lucir como este: + Para utilizar &man.ssh-agent.1; en X11 tendrá que + incluir una llamada a &man.ssh-agent.1; en + ~/.xinitrc. De este modo ofrecerá + los servicios de &man.ssh-agent.1; a todos los programas + lanzados en X11. Veamos un ejemplo de + ~/.xinitrc: exec ssh-agent startxfce4 - Esto lanzaría &man.ssh-agent.1;, el cual a su - vez lanzaría XFCE, cada - vez que inicie X11. Entonces una vez que se ha hecho y X11 - ha sido reiniciado para que los cambios tomen efecto, - simplemente ejecute &man.ssh-add.1; para cargar todas sus - llaves SSH. + Esto lanzaría &man.ssh-agent.1;, que a su + vez lanzaría XFCE cada + vez que inicie X11. Hecho esto y una vez reiniciado X11 + para aplicar los cambios puede ejecutar &man.ssh-add.1; para + cargar todas sus llaves SSH. Túneles SSH OpenSSH túneles - OpenSSH tiene la habilidad de crear un tunel para - encapsular otro protocolo en una sesión encriptada. + OpenSSH permite crear un túnel + en el que encapsular otro protocolo en una sesión + cifrada. - El siguiente comando le dice a &man.ssh.1; que realice un - tunel para telnet: + La siguiente orden le dice a &man.ssh.1; que cree un + túnel para telnet: - &prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com + &prompt.user; ssh -2 -N -f -L 5023:localhost:23 usuario@foo.ejemplo.com &prompt.user; - El comando ssh es utilizado con - las siguientes opciones: + Veamos las opciones que se le han suministrado a + ssh: - Obliga a ssh a utilizar la - versión 2 del protocolo. (No utilizar si + Obliga a ssh a utilizar la + versión 2 del protocolo. (No la use si está trabajando con servidores SSH antiguos) - Indica no comando, o solamente tunel. Si se omite, - ssh iniciaría una sesión + Indica que no se ejecutará una orden remota, o + solamente túnel. Si se omite, + ssh iniciaría una sesión normal. - Obliga a ssh a ejecutarse + Obliga a ssh a ejecutarse en segundo plano. - Indica un tunel local de la manera + Indica un túnel local según el esquema puerto local:equipo remoto:puerto remoto. - + El servidor SSH remoto. - Un tunel SSH funciona creando un socket que escucha - en localhost en el puerto especificado. - Entonces reenvía cualquier conexión - recibida en el puerto/equipo local vía la + Un túnel SSH crea un socket que escucha + en localhost en el puerto especificado. + Luego reenvía cualquier conexión + recibida en el puerto/equipo local vía la conexión SSH al puerto o equipo remoto especificado. - En el ejemplo, el puerto 5023 en - localhost está diendo reenviado al - puerto 23 en el localhost - de la máquina remota. Ya que 23 es - telnet, esto crearía una sesión - telnet segura a través de un tunel - SSH. + En el ejemplo el puerto 5023 en + localhost se reenvía al puerto + 23 del localhost + de la máquina remota. Ya que 23 + es telnet, esto crearía una + sesión telnet segura a + través de un túnel SSH. - Esto puede ser utilizado para envolver cualquier - número de protocolos inseguros TCP como SMTP, - POP3, FTP, etc. + Puede usar esto para encapsular cualquier otro + protocolo TCP inseguro como SMTP, POP3, FTP, etc. - Usando SSH para crear un túnel seguro para SMTP + Uso de SSH para crear un túnel seguro para SMTP - &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com -user@mailserver.example.com's password: ***** + &prompt.user; ssh -2 -N -f -L 5025:localhost:25 usuario@correo.ejemplo.com +usuario@correo.ejemplo.com's password: ***** &prompt.user; telnet localhost 5025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. -220 mailserver.example.com ESMTP - - Esto puede utilizarse junto con - &man.ssh-keygen.1; y cuentas de usuario adicional para - crear un ambiente más transparente/libre de problemas. - Las llaves pueden ser usadas en lugar de teclear una - contraseña, y los túneles pueden ser - ejecutados como un usuario separado. +220 correo.ejemplo.com ESMTP + + Puede usar esta técnica junto con &man.ssh-keygen.1; + y cuentas adicionales de usuario para crear un entorno + más transparente, esto es, más cómodo. + Puede usar llaves en lugar de teclear contraseñas y + puede ejecutar los túneles de varios usuarios. Ejemplos prácticos de túneles SSH 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 - oficina reside un servidor de correo corriendo un - servidor POP3. La red, o ruta de red entre su casa y - oficina puede o no ser completamente confiable. Debido - a esto, necesita revisar su correo electrónico - de manera segura. La solución es crear una - conexión SSH al servidor SSH de su oficina, y + En el trabajo hay un servidor SSH que acepta + conexiones desde el exterior. En la misma red de la + oficina reside un servidor de correo que ejecuta un + servidor POP3. La red, o ruta de red entre su casa y + oficina puede o no ser completamente de fiar. Debido + a esto necesita revisar su correo electrónico + de forma segura. La solución es crear una + conexión SSH al servidor SSH de su oficina y llegar por un túnel al servidor de correo. - &prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com -user@ssh-server.example.com's password: ****** + &prompt.user; ssh -2 -N -f -L 2110:correo.ejemplo.com:110 usuario@servidor-ssh.ejemplo.com +usuario@servidor-ssh.ejemplo.com's password: ****** - cuando el túnel esté levantado y funcionando, - puede apuntar su cliente de correo para enviar peticiones - POP3 a localhost en el puerto 2110. - Una conexión será reenviada de manera segura - a traveés del túnel a mail.example.com. + cuando el túnel esté funcionando + haga que su cliente de correo envíe peticiones + POP3 a localhost en el puerto 2110. + La conexión será reenviada de forma totalmente + segura a traveés del túnel a + correo.ejemplo.com. - Saltándose un firewall draconiano + Saltarse un cortafuegos draconiano - Algunos administradores de red imponen reglas de - firewall extremadamente draconianas, filtrando no - solamente conexiones entrantes, sino también - conexiones salientes. Tal vez solo se le otorgue acceso - para contactar máquinas remotas en los puertos 22 + Algunos administradores de red imponen reglas de + cortafuegos extremadamente draconianas, filtrando no + solo las conexiones entrantes, sino también + las salientes. Tal vez solo se le otorgue acceso + a máquinas remotas a través de los puertos 22 y 80 para ssh y navegar en web. - Tal vez quiera accesar otros (quizás no - relacionados al trabajo) servicios, como un servidor - Ogg Vorbis para escuchar música. Si este - servidor Ogg Vorbis está transmitiendo en algún - otro puerto diferente de 22 y 80, no podrá tener - acceso a él. + Tal vez quiera acceder a otros servicios + (que tal vez ni siquiera estén relacionados con el + trabajo), como un servidor Ogg Vorbis para escuchar + música. Si ese servidor Ogg Vorbis transmite en + un puerto que no sea el 22 o el 80 no podrá tener + acceso a él. - La solución es crear una conexión SSH - fuera del firewall de su red, y utilizarla para hacer un + La solución es crear una conexión SSH + fuera del cortafuegos de su red y utilizarla para hacer un túnel al servidor Ogg Vorbis. - &prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org -user@unfirewalled-system.example.org's password: ******* + &prompt.user; ssh -2 -N -f -L 8888:musica.ejemplo.com:8000 usuario@sistema-no-filtrado.ejemplo.org +usuario@sistema-no-filtrado.ejemplo.org's password: ******* - Su cliente de música puede ahora ser - apuntado a localhost puerto 8888, - el cual será reenviado a music.example.com - puerto 8000, evadiendo con éxito el firewall. + Haga que el programa con el que suele escuchar + música haga peticiones a + localhost puerto 8888, que será + reenviado a musica.ejemplo.com + puerto 8000, evadiendo con éxito el cortafuegos. La opción de usuarios <varname>AllowUsers</varname> - Es siempre una buena idea limitar que usuarios pueden - entrar y desde donde. La opción AllowUsers - es una buena manera de lograr esto. Por ejemplo, para permitir - solamente entrada al usuario root desde - 192.168.1.32, algo como esto - podría ser apropiado en el archivo + Limitar qué usuarios pueden entrar y desde dónde + suele ser razonable. La opción + AllowUsers le permite configurarlo, por + ejemplo, para permitir entrar solamente al usuario + root desde + 192.168.1.32. Puede hacerlo + con algo parecido a esto en /etc/ssh/sshd_config: AllowUsers root@192.168.1.32 - Para permitir al usuario admin la - entrada desde cualquier lugar, solamente liste el nombre + Para permitir al usuario admin la + entrada desde cualquier lugar, solamente introduzca el nombre de usuario: AllowUsers admin - Múltiples usuarios pueden ser listados en la misma - línea, como: + Puede listar múltiples usuarios en la misma + línea: AllowUsers root@192.168.1.32 admin - Es importante que liste cada usuario que necesite entrar - a esta máquina; de otra forma no podrán entrar. + Es importante que incluya a cada usuario que necesite entrar + a esta máquina o no podrán entrar. - Despues de hacer los cambios a - /etc/ssh/sshd_config debe decirle a - &man.sshd.8; que cargue de nuevo sus archivos de + Después de hacer los cambios a b + /etc/ssh/sshd_config debe decirle a + &man.sshd.8; que cargue de nuevo sus ficheros de configuración ejecutando: &prompt.root; /etc/rc.d/sshd reload - Más lecturas + Lecturas complementarias OpenSSH &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; Tom Rhodes Contribuido por ACL - Listas de control de acceso a sistemas de archivos + Listas de control de acceso a sistemas de ficheros - Junto a mejoramientos del sistema de archivos como instantáneas - (snapshots), FreeBSD 5.0 y posteriores ofrecen la seguridad de - listas de control de acceso a sistemas de archivos - (ACLs, Access Control Lists). + Además de otras mejoras del sistema de ficheros como + las instantáneas (snapshots), &os; 5.0 y + siguientes ofrecen las ACL (Access Control Lists, + listas de control de acceso) como un elemento más de + seguridad. - Las listas de control de acceso extienden el modelo de - permisos estándar de &unix; de una manera altamente - compatible (&posix;.1e). Esta opción le permite a un - administrador hacer uso y tomar ventaja de un modelo de - seguridad más sofisticado. + Las listas de control de acceso extienden el modelo de + permisos estándar de &unix; de una manera altamente + compatible (&posix;.1e). Esta opción permite al + administrador usar con gran provecho un modelo de seguridad + más sofisticado. - Para habilitar soporte de ACL para sistemas - de archivos UFS, la siguiente opción: + Para habilitar soporte de ACL en sistemas + de ficheros UFS la siguiente opción: options UFS_ACL - debe ser compilada en el kernel. Si esta opción - no ha sido compilada, un mensaje de advertencia será - desplegado cuando se intente montar un sistema de archivos - soportando ACLs. Esta opción es - incluida en el kernel GENERIC. - ACLs dependen que atributos extendidos sean - habilitados en el sistema de archivos. Los atributos extendidos - están soportados nativamente en la próxima - generación de sistemas de archivos &unix;, UFS2. - - Un nivel mas elevado de carga adminitrativa es requerido - para configurar atributos extendidos en UFS1 - que en UFS2. El desempeño de atributos - extendidos en UFS2 también es substancialmente - más elevado. Como resultado, UFS2 es - generalmente recomendado respecto a UFS1 - en preferencia para su uso con listas de control de acceso. - - ACLs son habilitadas por la bandera administrativa - al momento de montaje, , la cual puede ser añadida - a /etc/fstab. La bandera de montaje puede también - ser automaticamente activada de una manera persistente utilizando - &man.tunefs.8; para modificar una bandera de superbloque ACLs - en la cabecera del sistema de archivos. En general, es preferible utilizar - la bandera de superbloque por varias razones: + debe ser compilada en el kernel. Si esta opción + no ha sido compilada, se mostrará un mensaje de advertencia + si se intenta montar un sistema de ficheros que soporte + ACL. Esta opción viene incluida + en el kernel GENERIC. + Las ACL dependen de los atributos extendidos + habilitados en el sistema de ficheros. Los atributos extendidos + están incluidos por defecto en la nueva generación + de sistemas de ficheros &unix; UFS2. + + Los atributos extendidos pueden usarse también + en UFS1 pero requieren una carga de trabajo + mucho más elevada que en UFS2. + El rendimiento de los atributos extendidos es, también, + 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, , en el fichero + /etc/fstab. La bandera de montaje puede + también activarse de forma permanente mediante + &man.tunefs.8; para modificar una bandera de superbloque + ACLs en la cabecera del sistema de ficheros. + En general es preferible usar la bandera de superbloque por + varios motivos: - La bandera de montaje ACLs no puede ser cambiada - por un remontaje (&man.mount.8; ), solamente con - un completo &man.umount.8; y un &man.mount.8; fresco. Esto significa - que no se pueden habilitar ACLs en el sistema de - archivos raíz despues del arranque. También significa - que no puede cambiar la disposición de un sistema de archivos - una vez que está en uso. + La bandera de montaje ACL no puede cambiarse + por un remontaje (&man.mount.8; ), sino con un + completo &man.umount.8; y un &man.mount.8;. Esto significa + que no se pueden habilitar las ACL en el sistema + de ficheros raíz después del arranque. También + significa que no se puede cambiar la disposición de un + de ficheros una vez que se ha comenzado a usar. - Activando la bandera de superbloque provocará que el sistema - de archivos sea siempre montado con ACLs habilitadas - incluso si no existe una entrada en fstab o si los - dispositivos se reordenan. Esto previene un montado accidental del - sistema de archivos sin tener las ACLs habilitadas, - lo cual puede resultar en que se impongan de manera inadecuada las - ACLs, y por consecuencia un problema de seguridad. + Activar la bandera de superbloque provocará que el sistema + de ficheros 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 ficheros sin tener las ACL habilitadas, + que podría resultar en que se impongan de forma inadecuada las + ACL, y en consecuencia problema de + seguridad. - Podemos cambiar el comportamiento de las ACLs para - permitirle a la bandera ser habilitada sin un &man.mount.8; completo, pero - lo consideramos deseable para deshalentar montados accidentales sin - ACLs habilitadas, porque puede disparase a los pies muy - feamente si habilita ACLs, luego las deshabilita, luego las - habilita nuevamente sin borrar los atributos extendidos. En general, una vez que - que se han habilitado ACLs en un sistema de archivos, no deben - ser dehabilitadas, ya que la protección de archivos resultante puede no - ser compatible con aquellas pretendidas por los usuarios del sistema, y rehabilitando - las ACLs pueden re-pegar las ACLs previas - a archivos que han tenido cambios en sus permisos desde eso, resultando en - otra conducta impredecible. + Podemos cambiar el comportamiento de las + ACL para permitirle a la bandera ser habilitada + sin un &man.mount.8; completo, pero puede salirle el tiro por la + culata si activa las ACL, luego las desactiva, + y después las vuelve a activar sin configurar desde cero las + atributos extendidos. En general, una vez que se han deshabilitado + las ACL en un sistema de ficheros no deben + dehabilitarse, ya que la protección de ficheros 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 ficheros cuyos permisos hubieran sido + cambiados, lo que puede desenbocar en un escenario + impredecible. - Los sistemas de archivos con ACLs habilitadas mostrarán - un signo + (más) en sus configuraciones de permisos - al visualizarlos. Por ejemplo: + Los sistemas de ficheros con ACL habilitadas + tienen un signo + (más) al visualizar + sus configuraciones de permisos. Por ejemplo: drwx------ 2 robert robert 512 Dec 27 11:54 private -drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 -drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 -drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 +drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directorio1 +drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directorio2 +drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directorio3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html - Aquí vemos que los directorios directory1, - directory2, y directory3 - están todos tomando ventaja de las ACLs. + Aquí vemos que los directorios + directorio1, + directorio2, y directorio3 + están usando ACL. El directorio public_html no. - Haciendo uso de <acronym>ACL</acronym>s + Uso de <acronym>ACL</acronym> - Las ACLs del sistema de archivo pueden - ser visualizadas por la utilidad &man.getfacl.1;. Por ejemplo, - para ver las configuraciones de ACL en el - archivo test, uno podría - usar el comando: + Las ACLs del sistema de ficheros pueden + comprobarse con &man.getfacl.1;. Por ejemplo, + para ver las configuraciones de ACL del + fichero test, uno podría + usar lo siguiente: &prompt.user; getfacl test #file:test #owner:1001 #group:1001 user::rw- group::r-- other::r-- - Para cambiar las configuraciones ACL en - este archivo, invoque la utilidad &man.setfacl.1;. Observe: + Para cambiar las configuraciones de las ACL en + este fichero use &man.setfacl.1;. Observe: &prompt.user; setfacl -k test - La bandera eliminará todas - las ACLs definidas actualmente de un - archivo o sistema de archivos. El método más - preferible sería utilizar ya que - deja los campos básicos requeridos para que - funcionen las ACLs. + La bandera eliminará todas + las ACLs definidas para un fichero o sistema + ficheros. El método preferible sería utilizar + , ya que deja los campos básicos + imprescindibles para que las ACL sigan + funcionando. &prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- test - En el comando antes mencionado, la opción - fué usada para modificar las - entradas ACL por omisión. - Debido a que no hubieron entradas predefinidas, como - fueron removidas por el comando previo, esto restaurará - las opciones por omisión y asignará las - opciones listadas. Tome precauciones para notar que si agrega - un usuario o grupo el cual no existe en el sistema, - un error de Invalid argument será - impreso en stdout. + La opción se usa para modificar + las entradas por defecto de las ACL. + Debido a que no había entradas predefinidas puesto que + fueron eliminadas por la orden anterior, restauraremos las + opciones por defecto y asignará las opciones listadas. + Tenga en cuenta que si añade un nuevo usuario o grupo + aparecerá el error Invalid argument + en la salida estándar + stdout. Tom Rhodes - Contribuido por + Texto de Portaudit - Monitoreando asuntos de seguridad de terceros - - En años recientes, el mundo de la seguridad ha hecho - muchos mejoramientos en como se maneja la evaluación de - vulnerabilidades. La amenaza de instrusiones al sistema - incrementa cuando utilidades de terceros son instaladas - y configuradas para virtualmente cualquier sistema operativo - disponible hoy en día. - - La evaluación de vulnerabilidades es un factor - clave en la seguridad, y mientras &os; libera advertencias - para el sistema base, hacerlo para cada utilidad de terceros - está mas allá de la capacidad del proyecto - &os;. Existe una manera de mitigar las vulnerabilidades de - terceros y advertir a los administradores de incidentes de - seguridad conocidos. Una utilidad agregada de &os; conocida - como Portaudit existe solamente - con este propósito. - - El port security/portaudit - consulta una base de datos, actualizada y mantenida por el - equipo de seguridad y por los desarrolladores de &os;, por - incidentes de seguridad conocidos. - - Para empezar a usar Portaudit, - primero se debe instalar desde la colección de ports: + Monitorización de fallos de seguridad de aplicaciones + + En estos últimos años el mundo de la seguridad + ha hecho grandes avances en cuanto a la gestión de las + vulnerabilidades. La amenaza de asaltos a los sistemas se + incrementa cuando se instalan y configuran aplicaciones de + muy diversas procedencias en virtualmente cualquier sistema + operativo disponible. + + La evaluación de vulnerabilidades es un factor + clave en la seguridad; aunque &os; libere avisos de seguridad + relacionados con el sistema base, llevar la gestión + de vulnerabilidades hasta cada aplicación que se puede + instalar en &os; va mucho más allá de la capacidad + del proyecto &os;. A pesar de esto existe una forma de + mitigar las vulnerabilidades de esas aplicaciones y advertir + a los administradores sobre los problemas de seguridad a + medida que se detectan. Portaudit + existe para hacer ese trabajo. + + El port security/portaudit + consulta una base de datos, actualizada y mantenida por el + equipo de seguridad y por los desarrolladores de &os; en busca de + incidentes de seguridad que hayan sido detectados. + + Si quiere usar Portaudit + instálelo desde la colección de ports: &prompt.root; cd /usr/ports/security/portaudit && make install clean - Durante el proceso de instalación, los archivos - de configuración para &man.periodic.8; serán - actualizados, permitiendole a Portaudit - aparecer en la ejecución diaria de seguridad. Asegúrese - que el correo de la ejecución diaria de seguridad, el cual - es enviado a la cuenta de correo de root, sea - leído. No se requiere ninguna otra configuración - aquí. + Durante el proceso de instalación los ficheros + de configuración de &man.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 debería + leerlo. No hay ninguna + configuración que deba modificar o crear. - Despues de la instalación, un administrador debe - actualizar la base de datos almacenada localmente en - /var/db/portaudit invocando - el siguiente comando: + Después de la instalación un administrador debe + actualizar la base de datos alojada en local en + /var/db/portaudit + mediante: &prompt.root; portaudit -F - La base de datos será automaticamente actualizada - durante la ejecución de &man.periodic.8;; así - que el comando anterior es completamente opcional. Solo es - requerido para los siguientes ejemplos. + La base de datos será actualizada + automáticamente durante la ejecución de + &man.periodic.8;; así que la orden anterior es + totalmente opcional. Solo se necesita para los siguientes + ejemplos. - Para auditar las utilidades de terceros instaladas como - parte de la colección de ports, un administrador solo - necesita correr el siguiente comando: + Si quiere comproblar si entre las aplicaciones que haya + instalado desde el árbol de ports en su sistema hay + problemas de seguridad sólo tiene que ejecutar lo + siguiente: &prompt.root; portaudit -a Este es un ejemplo de la salida: Affected package: cups-base-1.1.22.0_1 Type of problem: cups-base -- HPGL buffer overflow vulnerability. Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> 1 problem(s) in your installed packages found. You are advised to update or deinstall the affected package(s) immediately. - Apuntando un navegador de web a la URL - mostrada, un administrador puede obtener más información - acerca de la vulnerabilidad en cuestión. Esto incluirá - versiones afectadas, por versión de port de &os;, junto con - otros sitios web que contengan advertencias de seguridad. + El administrador del sistema obtendrá mucha más + información sobre el problema de seguridad dirigiendo su + navegador web a la URL que aparece en el + mensaje. Esto incluye versiones afectadas (por versión de + port de &os;), junto con otros sitios web que contengan advertencias + de seguridad. - En corto, Portaudit es una utilidad - poderosa y extremadamente útil cuando se acopla con el - port Portupgrade. + En pocas palabras, Portaudit es un + programa muy poderoso y extremadamente útil cuando se + combina con el port Portupgrade. Tom Rhodes - Contribuido por + Texto de Advertencias de seguridad en FreeBSD &os; Security Advisories - Como muchos sistemas operativos con calidad de producción, - &os; publica advertencias de seguridad. Estas - advertencias son usualmente enviadas por correo a las listas de - seguridad y anotadas en la Errata solamente despues de que la - release apropiada ha sido parchada. Esta sección trabajará - para explicar que es una advertencia de seguridad, como entenderla - y que medidas hay que tomar para parchar el sistema. + Como muchos sistemas operativos con calidad de producción, + &os; publica Security Advisories (advertencias de + seguridad. Estas advertencias suelen enviarse por correo a las + listas de seguridad e incluidas en la Errata solamente después + de que la versión apropiada haya sido corregida. Esta + sección tiene como fin explicar en qué consiste una + advertencia de seguridad, cómo entenderla y qué + medidas hay que tomar para parchear el sistema. - ¿Como se ve una advertencia? + ¿Qué aspecto tiene una advertencia de + seguridad? - Las advertencias de seguridad en &os; se ven de manera - similar a la de abajo, tomada de la lista de correos - &a.security-notifications.name;. + Las advertencias de seguridad de &os; tienen un aspecto + similar a la que se muestra aquí. Fué enviada a la + lista de correo &a.security-notifications.name;. ============================================================================= &os;-SA-XX:XX.UTIL Security Advisory The &os; Project Topic: denial of service due to some problem Category: core Module: sys Announced: 2003-09-23 Credits: Person@EMAIL-ADDRESS Affects: All releases of &os; &os; 4-STABLE prior to the correction date Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) &os; only: NO 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 II. Problem Description III. Impact IV. Workaround V. Solution VI. Correction details VII. References - El campo Topic indica cual es el problema exaxtamente. - Es basicamente una introducción a la advertencia de seguridad actual - y anota la utilidad con la vulnerabilidad. + El campo Topic indica cuál es + exactamente el problema. Básicamente es la + introducción de la advertencia de seguridad actual + e indica el uso malintencionado que puede darse a la + vulnerabilidad. - Category se refiere a la parte afectada del sistema - la cual puede ser core, contrib o - ports. La categoría core - significa que la vulnerabilidad afecta a un componente central del - sistema operativo &os;. La categoría contrib - significa que la vulnerabilidad afecta a software contribuido al - proyecto &os;, como sendmail. Finalmente - la categoría ports indica que la - vulnerabilidad afecta a software agregado como parte de la - colección de ports. + Category se refiere a la parte afectada del + sistema, que puede ser + core, contrib o + ports. La categoría + core significa que la vulnerabilidad afecta + a un componente central del sistema operativo &os;. La + categoría contrib significa que la + vulnerabilidad afecta a software que no ha sido desarrollado por + el proyecto &os;, como sendmail. + La categoría ports indica que la + vulnerabilidad afecta a software incluido en la colección + de ports. - El campo Module se refiere a la ubicación del - componente, por ejemplo sys. En este ejemplo, vemos que - el módulo, sys, es afectado; por lo tanto, esta - vulnerabilidad afecta a componentes utilizados dentro del kernel. + El campo Module se refiere a la + ubicación del componente, por ejemplo + sys. En este ejemplo vemos que está + afectado el módulo sys; + por lo tanto esta vulnerabilidad afecta a componentes + utilizados dentro del kernel. - El campo Announced refleja la fecha en que esa - advertencia de seguridad fué publicada, o anunciada al mundo. - Esto significa que el equipo de seguridad ha verificado que el - problema exista y que un parche ha sido enviado al repositorio - de código fuente de &os;. + El campo Announced refleja la fecha + de publicación de la advertencia de seguridad fué + publicada o anunciada al mundo. Esto significa que el equipo + de seguridad ha verificado que el que el problema existe y que + se ha incluido un parche que soluciona el problema en el + repositorio de código fuente de &os;. El campo Credits le da el crédito al individuo u organización que descubrió y reportó la vulnerabilidad. - El campo Affects explica a que releases de &os; - afecta esta vulnerabilidad. Para el kernel, una rápida - revisión a la salida de ident en - los archivos afectados ayudará determinando la - revisión. Para ports, el número de versión - está listado despues del nombre del port en - /var/db/pkg. Si el sistema no se - sincroniza con el repositorio CVS de - &os; y se reconstruye diariamente, existe la posibilidad de - que esté afectado. + El campo Affects explica a qué + versiones de &os; afecta esta vulnerabilidad. En el caso del + kernel una rápida revisión de la salida de + ident en los ficheros afectados + ayudará a determinar la versión. En el caso de + de los ports el número de versión aparece + después del nombre del port en + /var/db/pkg. Si el sistema no se + sincroniza con el repositorio CVS de + &os; 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 release que fué corregido. + El campo Corrected indica la fecha, hora, + zona horaria y versión de &os; en que fué + corregido. - El campo &os; only indica si esta vulnerabilidad afecta - solamente a &os;, o si afecta también a otros sistemas operativos. + El campo &os; only indica si la + vulnerabilidad afecta solamente a &os; o si afecta + también a otros sistemas operativos. - El campo Background da información acerca de - que es exactamente la utilidad afectada. La mayor parte del - tiempo se refiere a por qué la utilidad existe en &os;, - para que es utilizada, y un poco de información de - como llegó a convertirse en utilidad. + El campo Background informa acerca de + qué es exactamente la aplicación afectada. + La mayor parte de las veces se refiere a por qué la + aplicación existe en &os;, para qué se usa y + un poco de información de cómo llegó + llegó a ocupar el lugar que ocupa en el sistema o el + árbol de ports. - El campo Problem Description explica el agujero - de seguridad en profundiad. Esto puede incluir información de - código fallado, o incluso como la utilidad puede ser - usada maliciosamente para abrir un agujero de seguridad. + El campo Problem Description explica el + problema de seguridad en profundidad. Puede incluir + información del código erróneo, + o incluso cómo puede usarse maliciosamente el error + para abrir un agujero de seguridad. - El campo Impact describe el tipo de impacto - que el problema puede tener en un sistema. Por ejemplo, - esto puede desde un ataque de negación de servicio, - hasta privilegios extras para usuarios, o incluso brindar - al atacante acceso de superusuario. + 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 denegación de servicio, + hasta una escalada de privilegios de usuario, o incluso + ofrecer al atacante acceso de superusuario. - El campo Workaround ofrece una solución - temporal posible para administradores de sistemas que tal vez no - puedan actualizar el sistema. Esto puede ser debido a - falta de tiempo, disponibilidad de red, o a muchas otras - razones. Sin importar eso, la seguridad no de debe tomar - a la ligera, y un sistema afectado debe ser parchado o - una solución temporal para el agujero de seguridad - debe ser implementado. + El campo Workaround ofrece una + solución 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 + solución temporal para el agujero de + seguridad. - El campo Solution ofrece instrucciones para - parchar el sistema afectado. Este es un método paso a - paso, probado y verificado para parchar un sistema y que + El campo Solution ofrece instrucciones + para parchear el sistema afectado. Este es un método paso + a paso, probado y verificado para parchear un sistema y que trabaje seguro. - El campo Correction Details despliega - la rama del CVS o el nombre del release - con los puntos cambiados a guiones bajos. También - muestra el número de revisión de los archivos - afectados dentro de cada rama. + El campo Correction Details despliega + la rama del CVS o el nombre de la + versión con los puntos cambiados a guiones bajos. + También muestra el número de revisión de + los ficheros afectados dentro de cada rama. - El campo References usualmente ofrece fuentes de - información. Esto puede incluir URLs - de web, libros, listas de correos y grupos de noticias. + El campo References suele ofrecer fuentes + adicionales de información: + URL, libros, listas de correo y grupos + de noticias. Tom Rhodes - Contribuido por + Texto de Contabilidad de procesos Contabilidad de procesos - Contabilidad de procesos es un método de - seguridad en el cual un administrador puede llevar - seguimiento de los recursos del sistema utilizados, - su distribución entre los usuarios, brindar - monitoreo para el sistema y minimamente rastrear - los comandos de los usuarios. - - Esto en realidad tiene sus puntos positivos y negativos. - Uno de los positivos es que una intrusión puede ser - minimizada al punto de entrada. Uno negativo es la cantidad - de logs generados por la contabilidad de procesos, y el - espacio en disco que requieren. Esta sección - llevará a un administrador a través de - las bases de la contabilidad de procesos. + La contabilidad de procesos es un método de + seguridad en el cual un administrador puede mantener un + seguimiento de los recursos del sistema utilizados, + su distribución entre los usuarios, ofrecer + monitorización del sistema y seguir la pista + mínimamente a las órdenes de usuario. + + Esto en realidad tiene sus puntos positivos y negativos. + Uno de los positivos es que una intrusión puede + minimizarse en el momento de producirse. Uno negativo + es la cantidad de logs generados por la contabilidad de + procesos y el espacio de disco que requieren. Esta + sección guiará al administrador a + través de los fundamentos de la contabilidad de + procesos. - Habilitando y utilizando la contabilidad de procesos + Cómo habilitar y utilizar la contabilidad + de procesos - Antes de hacer uso de la contabilidad de procesos, - debe ser habilitada. Para hacer esto, ejecute el - siguiente comando: + Antes de poder usar la contabilidad de procesos + tendrá que habilitarla. Ejecute la + siguiente orden: &prompt.root; touch /var/account/acct &prompt.root; accton /var/account/acct &prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf - Una vez habilitada, la contabilidad de procesos - empezará a seguir el rastro de estadísticas - del CPU, comandos, etc. Todos los logs - de contabilidad están en un formato ilegible - para humanos y pueden ser visualizados usando la utilidad - &man.sa.8;. Si se ejecuta sin opciones, sa - imprimirá información relativa al número - de llamadas por usuario, el tiempo total transcurrido en - minutos, tiempo total de CPU y de usuario - en minutos, número promedio de operaciones de E/S, + Una vez habilitada, la contabilidad de procesos + empezará a seguir el rastro de estadísticas + de la CPU, órdenes, etc. Todos los logs + de contabilidad están en un formato ilegible + para humanos, pero accesibles para &man.sa.8;. + Si se ejecuta sin opciones, sa + imprimirá información sobre el número + de llamadas por usuario, el tiempo total transcurrido expresado + en minutos, el tiempo total de CPU y de usuario + en minutos, el número medio de operaciones de E/S, etc. - Para ver información acerca de los comandos - siendo ejecutados, uno podría usar la utilidad - &man.lastcomm.1;. lastcomm puede ser - utilizado para imprimir comandos ejecutados por usuarios - en &man.ttys.5;, específicos, por ejemplo: + Para ver información acerca de las órdenes + que se están ejecutados puede usar la + &man.lastcomm.1;. lastcomm imprime + órdenes ejecutadas por los usuarios en &man.ttys.5; + específicas. Veamos un ejemplo: &prompt.root; lastcomm ls trhodes ttyp1 - Imprimiría todos los usos conocidos de ls - por el usuario trhodes en la terminal + Imprimiría todas las veces (conocidas) que + el usuario trhodes ha usado + ls en la terminal ttyp1. - Existen muchas otras opciones útiles y son explicadas - en las páginas de manual &man.lastcomm.1;, &man.acct.5; + Hay muchas más opciones que pueden serle muy + útiles. Si quiere conocerlas consulte + las páginas de manual &man.lastcomm.1;, &man.acct.5; y &man.sa.8;.