Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4....

176
Fedora 12 Guía de seguridad Una guía para la seguridad en fedora Johnray Fuller John Ha David O'Brien Scott Radvan Eric Christensen Adam Ligas

Transcript of Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4....

Page 1: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Fedora 12

Guía de seguridadUna guía para la seguridad en fedora

Johnray Fuller

John Ha

David O'Brien

Scott Radvan

Eric Christensen

Adam Ligas

Page 2: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Guía de seguridad

Fedora 12 Guía de seguridadUna guía para la seguridad en fedoraEdición 12.1

Autor Johnray Fuller [email protected] John Ha [email protected] David O'Brien [email protected] Scott Radvan [email protected] Eric Christensen [email protected] Adam Ligas [email protected]

Copyright © 2009 Red Hat, Inc.

The text of and illustrations in this document are licensed by Red Hat under a Creative CommonsAttribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is availableat http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat,designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance withCC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for theoriginal version.

Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the InfinityLogo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

For guidelines on the permitted uses of the Fedora trademarks, refer to https://fedoraproject.org/wiki/Legal:Trademark_guidelines.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United Statesand/or other countries.

All other trademarks are the property of their respective owners.

The Fedora Security Guide is designed to assist users of Fedora in learning the processes andpractices of securing workstations and servers against local and remote intrusion, exploitation, andmalicious activity.

Focused on Fedora Linux but detailing concepts and techniques valid for all Linux systems, TheFedora Security Guide details the planning and the tools involved in creating a secured computingenvironment for the data center, workplace, and home.

With proper administrative knowledge, vigilance, and tools, systems running Linux can be both fullyfunctional and secured from most common intrusion and exploit methods.

Page 3: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

iii

Prefacio vii1. Convenciones del Documento ........................................................................................ vii

1.1. Convenciones Tipográficas .................................................................................. vii1.2. Convenciones del documento ............................................................................. viii1.3. Notas y Advertencias ........................................................................................... ix

2. ¡Necesitamos sus comentarios! ........................................................................................ x

1. Repaso sobre seguridad 11.1. Introducción a la Seguridad .......................................................................................... 1

1.1.1. ¿Qué es la seguridad en computación? .............................................................. 11.1.2. SELinux ............................................................................................................ 41.1.3. Controles de seguridad ...................................................................................... 41.1.4. Conclusión ........................................................................................................ 5

1.2. Evaluación de debilidades ............................................................................................ 51.2.1. Pensando como el enemigo ............................................................................... 61.2.2. Definiendo evaluación y pruebas ........................................................................ 61.2.3. Herramientas de evaluación ............................................................................... 8

1.3. Atacantes y vulnerabilidades ....................................................................................... 101.3.1. Una breve reseña acerca de los hackers .......................................................... 111.3.2. Amenazas a la seguridad de la red .................................................................. 121.3.3. Amenazas a la seguridad del servidor .............................................................. 121.3.4. Amenazas a las estaciones de trabajo y seguridad en equipos hogareños ........... 14

1.4. Ataques y debilidades comunes .................................................................................. 151.5. Actualizaciones de seguridad ...................................................................................... 18

1.5.1. Actualización de paquetes ................................................................................ 181.5.2. Verificación de paquetes firmados .................................................................... 191.5.3. Instalación de paquetes firmados ..................................................................... 201.5.4. Aplicación de los cambios ................................................................................ 20

2. Asegurando su Red 232.1. Seguridad de la estación de trabajo ............................................................................ 23

2.1.1. Evaluación de la seguridad de la estación de trabajo ......................................... 232.1.2. Seguridad en el BIOS y en el gestor de arranque .............................................. 232.1.3. Seguridad de contraseñas ................................................................................ 252.1.4. Controles administrativos ................................................................................. 312.1.5. Servicios de red disponibles ............................................................................. 382.1.6. Cortafuegos personales ................................................................................... 422.1.7. Herramientas de comunicación de seguridad mejorada ...................................... 42

2.2. Seguridad del servidor ................................................................................................ 432.2.1. Asegurando los servicios con encapsuladores TCP y xinetd ............................... 432.2.2. Asegurando Portmap ....................................................................................... 462.2.3. Asegurando NIS .............................................................................................. 472.2.4. Asegurando NFS ............................................................................................. 502.2.5. Asegurando el servidor HTTP Apache .............................................................. 512.2.6. Asegurando FTP ............................................................................................. 522.2.7. Asegurando Sendmail ...................................................................................... 542.2.8. Verificar qué puertos están abiertos .................................................................. 56

2.3. Identificación única (SSO, por las iniciales en inglés de Single Sign-on) ......................... 572.3.1. Introducción ..................................................................................................... 572.3.2. Empezar a utilizar su nueva tarjeta inteligente ................................................... 582.3.3. Como funciona la inscripción de las tarjetas inteligentes. .................................... 602.3.4. Cómo funciona el ingreso con tarjeta inteligente ................................................ 61

Page 4: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Guía de seguridad

iv

2.3.5. Configurar Firefox para la utilización de Kerberos como SSO ............................. 622.4. Módulos de autenticación conectables (PAM, por las iniciales en inglés de PluggableAuthentication Modules) .................................................................................................... 64

2.4.1. Ventajas de PAM ............................................................................................. 652.4.2. Archivos de configuración de PAM .................................................................... 652.4.3. Formato del archivo de configuración de PAM ................................................... 652.4.4. Ejemplos de archivos de configuración de PAM ................................................. 682.4.5. Creación de los módulos PAM ......................................................................... 692.4.6. PAM y el cacheo de la credencial administrativa ................................................ 702.4.7. PAM y la propiedad de los dispositivos ............................................................. 712.4.8. Recursos adicionales ....................................................................................... 73

2.5. Encapsuladores TCP y xinetd ..................................................................................... 742.5.1. Encapsuladores TCP ....................................................................................... 752.5.2. Archivos de configuración de los encapsuladores TCP ....................................... 762.5.3. xinetd .............................................................................................................. 832.5.4. Archivos de configuración de xinetd .................................................................. 832.5.5. Recursos adicionales ....................................................................................... 89

2.6. Kerberos .................................................................................................................... 902.6.1. ¿Qué es Kerberos? ......................................................................................... 912.6.2. Terminología de Kerberos ................................................................................ 922.6.3. Como Funciona Kerberos ................................................................................ 942.6.4. Kerberos y PAM .............................................................................................. 952.6.5. Configurando un servidor Kerberos 5 ................................................................ 962.6.6. Configuración de un Cliente Kerberos 5 ............................................................ 982.6.7. Mapeo dominio-a-reinado ................................................................................. 992.6.8. Configurando KDCs secundarios ...................................................................... 992.6.9. Configurando la autenticación cruzada de reinados .......................................... 1012.6.10. Recursos adicionales ................................................................................... 105

2.7. Redes privadas virtuales (VPNs, por las iniciales en inglés de Virtual Private Networks)........................................................................................................................................ 106

2.7.1. ¿Cómo funciona una VPN? ............................................................................ 1072.7.2. VPNs y Fedora .............................................................................................. 1072.7.3. IPsec ............................................................................................................. 1072.7.4. Creando una conexión IPsec .......................................................................... 1082.7.5. Instalación de IPsec ....................................................................................... 1082.7.6. Configuración de IPsec equipo-a-equipo ......................................................... 1092.7.7. Configuración IPsec red-a-red ........................................................................ 1152.7.8. Iniciar y detener una conexión IPsec ............................................................... 122

2.8. Cortafuegos .............................................................................................................. 1222.8.1. Netfilter e IPTables ........................................................................................ 1242.8.2. Configuración básica de un cortafuego ............................................................ 1242.8.3. Uso de IPTables ............................................................................................ 1282.8.4. Filtrado común de IPTables ............................................................................ 1292.8.5. Reglas FORWARD y NAT ................................................................................. 1302.8.6. Software malicioso y suplantación de direcciones IP ....................................... 1332.8.7. IPTables y el seguimiento de la conexión ........................................................ 1342.8.8. IPv6 .............................................................................................................. 1342.8.9. Recursos adicionales ..................................................................................... 135

2.9. IPTables ................................................................................................................... 1352.9.1. Filtrado de Paquete ....................................................................................... 1362.9.2. Opciones de la línea de comandos de IPTables ............................................... 137

Page 5: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

v

2.9.3. Guardando las reglas de IPTalbes .................................................................. 1472.9.4. Programas de control de IPTables .................................................................. 1472.9.5. IPTables e IPv6 ............................................................................................. 1502.9.6. Recursos adicionales ..................................................................................... 150

3. Encriptación 1513.1. Datos en reposo ....................................................................................................... 1513.2. Encriptación completa del disco ................................................................................ 1513.3. Encriptación basada en archivo ................................................................................. 1513.4. Datos en movimiento ................................................................................................ 1523.5. Redes privadas virtuales (VPNs) ............................................................................... 1523.6. Shell seguro (SSH, por las iniciales en inglés de Secure Shell) .................................... 1523.7. Encriptación de disco LUKS (Linux Unified Key Setup-on-disk-format) .......................... 153

3.7.1. Implementación de LUKS en Fedora ............................................................... 1533.7.2. Encriptación manual de directorios .................................................................. 1533.7.3. Instrucciones paso a paso .............................................................................. 1533.7.4. Lo que acaba de realizar ............................................................................... 1543.7.5. Enlaces de interés ......................................................................................... 154

3.8. Archivos Encriptados 7-Zip ........................................................................................ 1553.8.1. Instalación de 7-Zip en Fedora ....................................................................... 1553.8.2. Instrucciones paso a paso para su instalación ................................................. 1553.8.3. Instrucciones paso a paso para su utilización .................................................. 1553.8.4. Elementos para prestar atención .................................................................... 156

3.9. Utilizando GNU Privacy Guard (GnuPG) .................................................................... 1563.9.1. Crear claves GPG en GNOME ....................................................................... 1563.9.2. Crear claves GPG en KDE ............................................................................. 1573.9.3. Crear una clave GPG mediante la línea de comandos ...................................... 1573.9.4. Acerca del encriptado de la clave pública ........................................................ 158

4. Principios Generales sobre la Seguridad de la Información 1594.1. Consejos, Guías y Herramientas ............................................................................... 159

5. Instalación segura 1615.1. Particiones del disco ................................................................................................. 1615.2. Utilice encriptado de particiones mediante LUKS ........................................................ 161

6. Mantenimiento de Software 1636.1. Instale el software mínimo ........................................................................................ 1636.2. Planifique y configure actualizaciones de seguridad .................................................... 1636.3. Ajustando las actualizaciones automáticas ................................................................. 1636.4. Instale paquetes identificados desde repositorios conocidos ........................................ 163

7. Referencias 165

Page 6: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

vi

Page 7: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

vii

Prefacio

1. Convenciones del DocumentoEste manual utiliza varias convenciones para resaltar algunas palabras y frases y llamar la atenciónsobre ciertas partes específicas de información.

En ediciones PDF y de papel, este manual utiliza tipos de letra procedentes de Liberation Fonts1.Liberation Fonts también se utilizan en ediciones de HTML si están instalados en su sistema. Si no,se muestran tipografías alternativas pero equivalentes. Nota: Red Hat Enterprise Linux 5 y siguientesincluyen Liberation Fonts predeterminadas.

1.1. Convenciones TipográficasSe utilizan cuatro convenciones tipográficas para llamar la atención sobre palabras o frasesespecíficas. Dichas convenciones y las circunstancias en que se aplican son las siguientes:

Negrita monoespaciado

Utilizada para resaltar la entrada del sistema, incluyendo comandos de shell, nombres de archivo yrutas. También se utiliza para resaltar teclas claves y combinaciones de teclas. Por ejemplo:

Para ver el contenido del archivo my_next_bestselling_novel en su directorioactual de trabajo, escriba el comando cat my_next_bestselling_novel en elintérprete de comandos de shell y pulse Enter para ejecutar el comando.

El ejemplo anterior incluye un nombre de archivo, un comando de shell y una tecla clave. Todo sepresenta en negrita-monoespaciado y distinguible gracias al contexto.

Las combinaciones de teclas se pueden distinguir de las teclas claves mediante el guión que conectacada parte de una combinación de tecla. Por ejemplo:

Pulse Enter para ejecutar el comando.

Pulse Control+Alt+F1 para cambiar a la primera terminal virtual. PulseControl+Alt+F7 para volver a su sesión de Ventanas-X.

La primera oración resalta la tecla clave determinada que se debe pulsar. La segunda resalta dosconjuntos de tres teclas claves que deben ser presionadas simultáneamente.

Si se discute el código fuente, los nombres de las clase, los métodos, las funciones, los nombres devariables y valores de retorno mencionados dentro de un párrafo serán presentados en Negrita-monoespaciado. Por ejemplo:

Las clases de archivo relacionadas incluyen filename para sistema de archivos,file para archivos y dir para directorios. Cada clase tiene su propio conjuntoasociado de permisos.

Negrita proporcional

1 https://fedorahosted.org/liberation-fonts/

Page 8: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Prefacio

viii

Esta denota palabras o frases encontradas en un sistema, incluyendo nombres de aplicación, texto decuadro de diálogo, botones etiquetados, etiquetas de cajilla de verificación y botón de radio; títulos demenú y títulos del sub-menú. Por ejemplo:

Seleccionar Sistema → Preferencias → Ratón desde la barra del menú principalpara lanzar Preferencias de Ratón. En la pestaña de Botones, haga clic en la cajillaratón de mano izquierda y luego haga clic en Cerrar para cambiar el botón principaldel ratón de la izquierda a la derecha (adecuando el ratón para la mano izquierda).

Para insertar un caracter especial en un archivo de gedit, seleccione desde la barra

del menú principal Aplicaciones → Accesorios → Mapa de caracteres. Luego,

desde la barra del menú mapa de caracteres elija Búsqueda → Hallar…, teclee elnombre del caracter en el campo Búsqueda y haga clic en Siguiente. El caracterbuscado se resaltará en la Tabla de caracteres. Haga doble clic en este caracterresaltado para colocarlo en el campo de Texto para copiar y luego haga clic en el

botón de Copiar. Ahora regrese a su documento y elija Editar → Pegar desde labarra de menú de gedit.

El texto anterior incluye nombres de aplicación; nombres y elementos del menú de todo el sistema;nombres de menú de aplicaciones específicas y botones y texto hallados dentro de una interfazgráfica de usuario, todos presentados en negrita proporcional y distinguibles por contexto.

Itálicas-negrita monoespaciado o Itálicas-negrita proporcional

Ya sea negrita monoespaciado o negrita proporcional, la adición de itálicas indica texto reemplazableo variable. Las itálicas denotan texto que usted no escribe literalmente o texto mostrado que cambiadependiendo de la circunstancia. Por ejemplo:

Para conectar a una máquina remota utilizando ssh, teclee [email protected] en un intérprete de comandos de shell. Si lamáquina remota es example.com y su nombre de usuario en esa máquina es john,teclee ssh [email protected].

El comando mount -o remount file-system remonta el sistema de archivollamado. Por ejemplo, para volver a montar el sistema de archivo /home, el comandoes mount -o remount /home.

Para ver la versión de un paquete actualmente instalado, utilice el comando rpm -qpaquete. Éste entregará el resultado siguiente: paquete-versión-lanzamiento.

Observe las palabras en itálicas- negrita sobre — nombre de usuario, domain.name, sistema dearchivo, paquete, versión y lanzamiento. Cada palabra es un marcador de posición, tanto para el textoque usted escriba al ejecutar un comando como para el texto mostrado por el sistema.

Aparte del uso estándar para presentar el título de un trabajo, las itálicas denotan el primer uso de untérmino nuevo e importante. Por ejemplo:

Publican es un sistema de publicación de DocBook.

1.2. Convenciones del documentoLos mensajes de salida de la terminal o fragmentos de código fuente se distinguen visualmente deltexto circundante.

Page 9: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Notas y Advertencias

ix

Los mensajes de salida enviados a una terminal se muestran en romano monoespaciado y sepresentan así:

books Desktop documentation drafts mss photos stuff svnbooks_tests Desktop1 downloads images notes scripts svgs

Los listados de código fuente también se muestran en romano monoespaciado, pero se presentany resaltan de la siguiente manera:

package org.jboss.book.jca.ex1;

import javax.naming.InitialContext;

public class ExClient{ public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create();

System.out.println("Created Echo");

System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); }}

1.3. Notas y AdvertenciasFinalmente, utilizamos tres estilos visuales para llamar la atención sobre la información que de otromodo se podría pasar por alto.

NotaUna nota es una sugerencia, atajo o enfoque alternativo para una tarea determinada.Ignorar una nota no debería tener consecuencias negativas, pero podría perderse dealgunos trucos que pueden facilitarle las cosas.

ImportanteImportant boxes detail things that are easily missed: configuration changes that onlyapply to the current session, or services that need restarting before an update will apply.Ignoring a box labeled 'Important' won't cause data loss but may cause irritation andfrustration.

AdvertenciaLas advertencias no deben ignorarse. Ignorarlas muy probablemente ocasionará pérdidade datos.

Page 10: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Prefacio

x

2. ¡Necesitamos sus comentarios!Más información acerca del proyecto Guía de Seguridad de Linux puede encontrarse en https://fedorahosted.org/securityguide

Para entregar una retroalimentación de la Guía de Seguridad, por favor envíe un error a https://bugzilla.redhat.com/enter_bug.cgi?component=security-guide&product=Fedora%20Documentation.Por favor seleccione el componente adecuado en el menú desplegable, que debería ser el nombre dela página.

Page 11: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

1

Repaso sobre seguridadDebido a la creciente necesidad de utilización de poderosas computadoras conectadas en redpara poder mantener una empresa en funcionamiento, y para poder realizar seguimientos denuestra información personal, se han desarrollado industrias enteras dedicadas a la práctica de laseguridad de redes y computadoras. Numerosas empresas han solicitado la pericia y el conocimientode expertos en seguridad para poder controlar correctamente sus sistemas, y para que diseñensoluciones adecuadas a los requerimientos operativos de la organización. Debido a la naturalezadinámica de muchas de estas organizaciones, donde los trabajadores deben tener acceso a losrecursos informáticos, ya sea en forma local o remota, la necesidad de entornos de computaciónseguros se ha hecho más pronunciada.

Unfortunately, most organizations (as well as individual users) regard security as an afterthought, aprocess that is overlooked in favor of increased power, productivity, and budgetary concerns. Propersecurity implementation is often enacted postmortem — after an unauthorized intrusion has alreadyoccurred. Security experts agree that taking the correct measures prior to connecting a site to anuntrusted network, such as the Internet, is an effective means of thwarting most attempts at intrusion.

1.1. Introducción a la Seguridad

1.1.1. ¿Qué es la seguridad en computación?La noción de seguridad en computación es un concepto general que cubre un área muy extensadentro del ámbito de la computación y del procesamiento de la información. Las industrias quedependen tanto de redes como de sistemas de computación para poder realizar cotidianamenteoperaciones comerciales, o para acceder a diverso tipo de información vital, entienden que sus datosson una parte importante de sus activos. Han ingresado a nuestro vocabulario cotidiano diversostérminos y unidades de medición pertenecientes al ámbito comercial, como ser por ejemplo, elcoste total de propiedad (TCO, por las iniciales en inglés de Total Cost of Ownership), o servicio decalidad (QoS, por las iniciales en inglés de Quality of Service). Al utilizar estas unidades, las industriaspueden calcular aspectos tales como ser la integridad de los datos, o el tipo de disponibilidad quetienen, y poder considerarlos parte de los costos de planeamiento y administración de procesos.En algunas industrias, como la del comercio electrónico por ejemplo, el tipo de disponibilidad y laconfiabilidad de los datos puede ser un elemento determinante para el éxito o el fracaso.

1.1.1.1. ¿De dónde viene la idea de seguridad en computación?La seguridad en la información ha evolucionado con el correr de los años debido al aumento en lautilización de redes públicas y el consecuente riesgo de exposición que en ellas tienen los datosprivados, confidenciales o financieros. Existen numerosos antecedentes, como el caso Mitnick 1 oVladimir Levin 2, que sugieren a todas las organizaciones de cualquier tipo de industria, replantearsela forma en que tienen organizado el manejo de su propia información, o de la manera en que estransmitida y revelada. La popularidad que tiene Internet es uno de los motivos fundamentales graciasal cual se han intensificado los esfuerzos relacionados con la seguridad en los datos.

Un número creciente de personas está utilizando sus computadoras personales para obtener accesoa los recursos que ofrece Internet. Desde investigación y obtención de información hasta el correo

http://law.jrank.org/pages/3791/Kevin-Mitnick-Case-1999.htmlhttp://www.livinginternet.com/i/ia_hackers_levin.htm

Page 12: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

2

electrónico y transacciones comerciales, Internet es considerada como uno de los desarrollos másimportantes del siglo 20.

Sin embargo, Internet y sus primeros protocolos fueron desarrollados como un sistema basadoen la confianza. Esto significa que el Protocolo de Internet no fue diseñado para ser seguro en símismo. No existen estándares de seguridad aprobados dentro del bloque de comunicaciones TCP/IP, dejándolo indefenso ante usuarios o procesos de la red potencialmente dañinos. Desarrollosmodernos han hecho de las comunicaciones en Internet algo más seguro, pero todavía existenvarios incidentes que acaparan la atención mundial, y nos recuerdan el hecho de que nada escompletamente seguro.

1.1.1.2. La seguridad hoyEn febrero del año 2000 un ataque de denegación de servicio distribuido (DDoS, por las inicialesen inglés de Distributed Denial of Service) fue liberado sobre varios de los sitios de Internet quetenían más tráfico. Este ataque afectó a yahoo.com, cnn.com, amazon.com, fbi.gov y algunosotros sitios que son completamente inaccesibles para los usuarios normales, dejando a losenrutadores bloqueados durante varias horas con transferencias de grandes paquetes ICMP, otambién denominado un ping de la muerte. El ataque fue llevado a cabo por asaltantes desconocidosutilizando programas especialmente creados (y que están a disposición de cualquiera), que buscanservidores de red vulnerables, instalan en esos servidores aplicaciones de cliente denominadastroyanos, y sincronizando un ataque con cada servidor infectado, inundando los sitios elegidos ydejándolos inutilizables. Muchos adjudican el éxito del ataque a fallas fundamentales en la forma enque están estructurados los enrutadores y los protocolos que utilizan. Estas fallas tienen que ver conla manera en que se aceptan los datos entrantes, sin importar desde dónde provengan, o con quépropósito los paquetes hayan sido enviados.

In 2007, a data breach exploiting the widely-known weaknesses of the Wired Equivalent Privacy(WEP) wireless encryption protocol resulted in the theft from a global financial institution of over 45million credit card numbers.3

In a separate incident, the billing records of over 2.2 million patients stored on a backup tape werestolen from the front seat of a courier's car.4

Actualmente, se estima que 1,4 mil millones de personas usan o usaron Internet alrededor del mundo5. Al mismo tiempo:

• On any given day, there are approximately 225 major incidences of security breach reported to theCERT Coordination Center at Carnegie Mellon University.6

• In 2003, the number of CERT reported incidences jumped to 137,529 from 82,094 in 2002 and from52,658 in 2001.7

• The worldwide economic impact of the three most dangerous Internet Viruses of the last three yearswas estimated at US$13.2 Billion.8

From a 2008 global survey of business and technology executives "The Global State of InformationSecurity"9, undertaken by CIO Magazine, some points are:

http://www.theregister.co.uk/2007/05/04/txj_nonfeasance/http://www.healthcareitnews.com/story.cms?id=9408http://www.internetworldstats.com/stats.htmhttp://www.csoonline.com/article/454939/The_Global_State_of_Information_Security_

Page 13: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

¿Qué es la seguridad en computación?

3

• Sólo el 43% de los encuestados audita o monitorea el cumplimiento de las políticas de seguridad desus usuarios

• Sólo el 22% mantiene un inventario de las compañías externas que utilizan sus datos

• The source of nearly half of security incidents was marked as "Unknown"

• 44% de los encuestados planean incrementar sus gastos en seguridad en el año siguiente

• 59% tiene una estrategia de seguridad de la información

Estos resultados refuerzan la realidad de que la seguridad de computadoras se ha vuelto un gastocuantificable y justificable en los presupuestos de TI. Las organizaciones que necesitan tanto laintegridad como la rápida disponibilidad de sus datos, lo obtienen gracias a la habilidad que losadministradores de sistema, desarrolladores e ingenierospara tienen para asegurar la disponibilidadde sus sistemas, servicios y datos, durante las 24 horas de los 365 días del año. Ser víctimade usuarios maliciosos, procesos o ataques coordinados es una amenaza directa al éxito de laorganización.

Desafortunadamente, la seguridad de sistemas y de la red puede ser una proposición difícil, querequiere un conocimiento intrincado de cómo una organización expresa, usa, manipula y transmitesu información. El entendimiento de la forma en que una organización (y la gente que la compone)conduce el negocio es primordial para implementar un plan de seguridad apropiado.

1.1.1.3. Estandarizando la seguridadLas empresas de todas las industrias confían en las regulaciones y en las reglas que son puestaspor las personas que construyen estándares tales como la Asociación Médica Americana (AMA,por las iniciales en inglés de American Medical Association) o el Instituto de Ingenieros Eléctricosy Electrónicos (IEEE, Institute of Electrical and Electronics Engineers). Los mismos ideales seaplican a la seguridad de la información. Muchos consultores y fabricantes se ponen de acuerdoen el modelo de seguridad estándar conocido como CIA (Confidentiality, Integrity and Availability),o Confidencialidad, Integridad y Disponibilidad. Este modelo de 3 capas es un componentegeneralmente aceptado para averiguar los riesgos de la información vital y del establecimiento de lapolítica de seguridad. A continuación se describe el modelo CIA en más detalle:

• Confidencialidad — La información vital debe estar disponible sólo para un conjunto de individuospredefinido. La transmisión no autorizada y el uso de la información se debe restringir. Por ejemplo,la confidencialidad de la información asegura que la información personal o financiera de un clienteno pueda ser obtenida por un individuo no autorizado para propósitos maléficos tales como el robode identidad, o fraude crediticio.

• Integridad — La información no debe alterarse de manera tal que se torne incompleta o incorrecta.Los usuarios no autorizados deben ser restringidos de la habilidad de modificar o destruirinformación vital.

• Disponibilidad — La información debe ser accesible a usuarios autorizados en cualquier momentoen el que sea necesario. La disponibilidad es una garantía de que la información se puede obteneren una frecuencia y duración preestablecida. Esto se mide a menudo en términos de porcentajesy se deja sentado formalmente en Acuerdos de Disponibilidad del Servicio (SLAs, por las inicialesen inglés de Service Level Agreements) con los proveedores de servicios de red y sus clientesempresariales.

Page 14: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

4

1.1.2. SELinuxFedora includes an enhancement to the Linux kernel called SELinux, which implements a MandatoryAccess Control (MAC) architecture that provides a fine-grained level of control over files, processes,users and applications in the system. Detailed discussion of SELinux is beyond the scope of thisdocument; however, for more information on SELinux and its use in Fedora, refer to the FedoraSELinux User Guide available at http://docs.fedoraproject.org/selinux-user-guide/. For moreinformation on configuring and running services in Fedora that are protected by SELinux, refer tothe SELinux Managing Confined Services Guide available at http://docs.fedoraproject.org/selinux-managing-confined-services-guide10. Other available resources for SELinux are listed in Capítulo 7,Referencias.

1.1.3. Controles de seguridadLa seguridad de computadoras es a menudo dividida en tres categorías principales distintas,comúnmente referidas como controles:

• Físico

• Técnico

• Asministrativo

Estas tres amplias categorías definen los objetivos principales de una implementación de seguridadapropiada. Dentro de estos controles existen subcategorías que ofrecen mayores características, obrindan información acerca de su correcta implementación.

1.1.3.1. Control físicoEl control físico es la implementación de medidas de seguridad en una estructura definida, utilizadopara determinar o evitar el acceso no autorizado a material sensible. Ejemplos de controles físicosson:

• Circuito cerrado de cámaras de vigilancia

• Sistemas de alarma de movimientos, o termales

• Guardias de la seguridad

• IDs de Imagen

• Puertas de acero bloqueadas y selladas

• Biometría (incluye huellas digitales, voz, cara, iris, escritura manual y otros métodos automatizadosusados para reconocer a los individuos)

1.1.3.2. Técnicas de controlLos controles técnicos usan la tecnología como una base para el control del acceso y del uso dedatos sensibles a través de una estructura física y sobre una red. Los controles técnicos son de largoalcance y abarcan tecnologías como:

• Encriptación

10 http://docs.fedoraproject.org/selinux-managing-confined-services-guide/

Page 15: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Conclusión

5

• Tarjetas inteligentes

• Autenticación de red

• Listas de control de acceso (ACLs)

• Software para auditar la integridad de archivos

1.1.3.3. Controles administrativosLos controles administrativos definen los factores humanos de la seguridad. Involucran todos losniveles del personal dentro de una organización y determinan qué usuarios tienen acceso a quérecursos y la información por tales medios como:

• Capacitación y conocimientos

• Preparación para desastres y planes de recuperación

• Reclutamiento de personal y estrategias de separación

• Registración y control del personal

1.1.4. ConclusiónAhora que ya conoce los orígenes, las razones y los aspectos de la seguridad, encontrará másfácil determinar el rumbo apropiado con respecto a Fedora. Es importante conocer qué factores ycondiciones hacen a la seguridad para planear e implementar una estrategia apropiada. Con estainformación en mente, el proceso se puede formalizar y los caminos a seguir se hacen más claros amedida que profundiza en los detalles del proceso de seguridad.

1.2. Evaluación de debilidadesDependiendo del tiempo, de los recursos y de la motivación, un atacante puede ingresarprácticamente en cualquier sistema. En términos absolutos, ninguna tecnología o proceso enseguridad actualmente disponible, puede garantizar que un sistema determinado sea completamenteinvulnerable. Los enrutadores contribuyen a la seguridad de las puertas de enlace frente a Internet.Los cortafuegos contribuyen a la seguridad de las redes internas. Las redes virtuales privadas envíandatos en forma segura mediante un flujo encriptado. Sistemas para la detección de extraños leavisan en caso de encontrar actividad malintencionada. Sin embargo, el éxito de cada una de estastecnologías depende de una numerosa cantidad de variables, entre las cuales podemos encontrar:

• La experiencia del equipo responsable de la configuración, monitoreo y manutención de esastecnologías.

• La habilidad para enmendar y actualizar servicios y servidores en forma veloz y eficiente.

• La habilidad de quienes son responsables de mantener sobre la red una vigilancia permanente.

Debido a las características dinámicas de los sistemas de datos y de las tecnologías, asegurarlos recursos corporativos puede llegar a ser algo bastante complejo. Debido a esta complejidad, amenudo es difícil encontrar herramientas experimentadas para todos sus sistemas. Si bien es posiblecontar con personal cuyos conocimientos abarquen numerosos aspectos de los niveles generalesde la seguridad en la información, es difícil conservar a quienes puedan considerarse expertos enlos diferentes aspectos de una misma área. Principalmente esto sucede debido a que cada aspecto

Page 16: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

6

de cada área de la seguridad en la información necesita atención y concentración constante. Laseguridad en la información nunca permanece inmóvil.

1.2.1. Pensando como el enemigoImagine que usted administra la red de una empresa. Por lo general tales redes están compuestasde sistemas operativos, aplicaciones, servidores, monitores de red, cortafuegos, sistemas parala detección de intrusos, y mucho más. Ahora imagínese tratando de mantenerse actualizado entodos esos aspectos. Dada la complejidad del software y de los entornos de red que existe hoyen día, los errores y los puntos débiles son permanentes. Mantenerse al día con los parches y lasactualizaciones, para la totalidad de la red de una gran organización con sistemas heterogéneos,puede convertirse en una tarea intimidante.

Combine la experiencia que habría que necesitarse, con las tareas a realizar para mantenerseactualizado, y serán inevitables la presencia de incidentes, de sistemas vulnerados, de datosalterados, y de servicios interrumpidos.

Para incrementar las tecnologías en seguridad y ayudar a proteger los sistemas, redes y datos,debería pensar del mismo modo en que lo hace un atacante, y desde este punto de vistacomprobar la seguridad de su sistema verificando sus debilidades. Realizar evaluaciones deseguridad preventivas de su sistema y recursos de red, pueden enseñarle potenciales problemas, ysolucionarlos, antes que sean aprovechados por un atacante.

A vulnerability assessment is an internal audit of your network and system security; the resultsof which indicate the confidentiality, integrity, and availability of your network (as explained inSección 1.1.1.3, “Estandarizando la seguridad”). Typically, vulnerability assessment starts with areconnaissance phase, during which important data regarding the target systems and resources isgathered. This phase leads to the system readiness phase, whereby the target is essentially checkedfor all known vulnerabilities. The readiness phase culminates in the reporting phase, where thefindings are classified into categories of high, medium, and low risk; and methods for improving thesecurity (or mitigating the risk of vulnerability) of the target are discussed.

Si usted tuviera que realizar una evaluación de las debilidades de su hogar, seguramente verificaríaque cada una de las puertas se encuentre cerrada con llave. También confirmaría que cadauna de las ventanas esté cerrada, y trabada con el pestillo. El mismo concepto se aplica a lossistemas, redes y datos electrónicos. Los usuarios malintencionados son los ladrones de sus datos.Concéntrese en las herramientas que utilizan, en su forma de pensar y en sus motivaciones, yentonces será capaz de poder anticiparse a sus acciones.

1.2.2. Definiendo evaluación y pruebasLas evaluaciones de debilidades pueden ser catalogadas en dos grandes tipos: De afuera haciaadentro y de adentro hacia afuera.

When performing an outside looking in vulnerability assessment, you are attempting to compromiseyour systems from the outside. Being external to your company provides you with the cracker'sviewpoint. You see what a cracker sees — publicly-routable IP addresses, systems on your DMZ,external interfaces of your firewall, and more. DMZ stands for "demilitarized zone", which correspondsto a computer or small subnetwork that sits between a trusted internal network, such as a corporateprivate LAN, and an untrusted external network, such as the public Internet. Typically, the DMZcontains devices accessible to Internet traffic, such as Web (HTTP) servers, FTP servers, SMTP (e-mail) servers and DNS servers.

Page 17: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Definiendo evaluación y pruebas

7

Cuando realice una evaluación de debilidades desde adentro hacia afuera, usted tiene una especiede ventaja ya que, al estar en una ubicación interna, su estado es el de ser alguien confiable, y porlo tanto, superior. Este es el punto de vista adquieren usted y sus compañeros de trabajo, cada vezque se registran en el sistema. Puede ver servidores de impresión, servidores de archivos, bases dedatos, y demás recursos.

Existen notables distinciones entre estos dos tipos de evaluaciones. Desde el interior de la compañíase tienen privilegios superiores a los que se obtendrían desde el exterior. Aún hoy, en muchasorganizaciones, la seguridad es configurada de tal manera para evitar que ingresen intrusos desdeel exterior, y muy poco se hace para asegurar los elementos internos de la organización (comoser cortafuegos departamentales, controles de acceso de niveles de usuarios, procedimientos deautenticaciones para recursos internos, etc.). Por lo general, existen muchos más recursos si sebusca dentro de una compañía, ya que la mayoría de los sistemas son internos a ella. Una vez que seencuentre fuera de la compañía, inmediatamente será identificado como un elemento no seguro. Lossistemas y las herramientas disponibles para utilizar desde fuera son, generalmente, muy limitadas.

Considere la diferencia existente entre evaluaciones de debilidades y pruebas de penetración. Pienseen una evaluación de debilidades como el primer paso de una prueba de penetración. La informaciónobtenida en la evaluación es utilizada para la prueba. Cualesquiera sean las áreas o los lugaresque el resultado de la evaluación haya sugerido verificar en búsqueda de agujeros o debilidadespotenciales, serán esos mismos lugares los que la prueba de penetración intentará utilizar paraaprovechar esas debilidades e ingresar al sistema.

Acceder a la infraestructura de la red es un proceso dinámico. La seguridad es dinámica, tanto lafísica como la de la información. Realizar una evaluación determina una visión general, que puedearrojar resultados falsos, tanto para bien como para mal.

La eficacia de los administradores de seguridad es directamente proporcional a las herramientasque utilizan y al conocimiento que poseen. Elija cualquiera de las herramientas de evaluación que seencuentren disponibles actualmente, ejecútelas en su sistema, y es casi una garantía que algunosresultados serán erróneos. Ya sea por una falla del programa, o por un error del usuario, el resultadoserá el mismo. La herramienta puede llegar a encontrar debilidades que en realidad no existen (falsospositivos); o , peor aún, la herramienta puede no encontrar debilidades que efectivamente existen(falsos negativos).

Ahora que ha sido definida la diferencia entre una evaluación de debilidades y una prueba depenetración, como parte de una mejor aplicación de los métodos, revise cuidadosamente los datosarrojados por la evaluación antes de realizar una prueba de penetración.

AdvertenciaIntentar aprovechar las debilidades de los recursos de producción, puede tener efectosadversos en la productividad y eficiencia de sus sistemas y redes.

En la lista siguiente se examinan algunos de los beneficios de llevar a cabo evaluaciones devulnerabilidad.

• Crea un enfoque pro-activo sobre la seguridad de la información

• Encuentra potenciales debilidades antes que las encuentren los atacantes

• Funciona en sistemas que se mantiene actualizados y enmendados

• Promueve el crecimiento y la asistencia en el desarrollo de la especialización del personal

Page 18: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

8

• Reduce las pérdidas económicas y la publicidad negativa

1.2.2.1. Estableciendo una metodologíaPara ayudar en la selección de las herramientas para realizar una evaluación de debilidades, es útilestablecer un método. Desafortunadamente, por el momento no existe una metodología previamentedefinida, sin embargo, el sentido común y el hecho de adoptar buenas costumbres en materia deseguridad pueden actuar como una guía eficiente.

¿Cuál es el objetivo? ¿Estamos observando un servidor, o la totalidad de una red y todo lo que en ellaexiste? ¿Estamos fuera o dentro de la compañía? Las respuestas a estas preguntas son importantesdebido a que ayudan a determinar, no solo las herramientas que tendremos que utilizar, sino tambiénla forma en que vamos a hacerlo.

Para aprender más acerca del establecimiento de metodologías, visite los siguientes sitios web:

• http://www.isecom.org/osstmm/ El manual de metodología de prueba de seguridad de códigoabierto (OSSTMM, por las iniciales en inglés de The Open Source Security Testing MethodologyManual)

• http://www.owasp.org/ El proyecto de seguridad de aplicaciones de red abierta (OWASP, por lasiniciales en inglés de The Open Web Application Security Project)

1.2.3. Herramientas de evaluaciónUna evaluación puede iniciarse utilizando algún tipo de herramienta que permita reunir información.Cuando se acceda a la totalidad de la red, primero haga un mapeo del diagrama para encontrarlos equipos que se encuentren en ejecución. Una vez localizados, examine a cada uno de ellos demanera individual. Para concentrarse en estos equipos se necesita otro conjunto de herramientas.Conocer qué herramientas utilizar puede ser la etapa más importante del proceso para poderencontrar debilidades.

Al igual que con cualquier aspecto de nuestra vida cotidiana, existen numerosas herramientasdiferentes que son capaces de realizar el mismo trabajo. Este concepto también se aplica a larealización de evaluaciones de debilidades. Existen herramientas específicas para los sistemasoperativos, para las aplicaciones, incluso para las redes (de acuerdo a los protocolos utilizados).Algunas herramientas son gratuitas, otras no. Algunas herramientas son intuitivas y sencillas deutilizar, mientras que otras son crípticas y poco documentadas, pero que tienen capacidades queotras no poseen.

Encontrar las herramientas apropiadas puede ser una tarea intimidante, y la experiencia es unelemento importante para poder hacerlo. Si es posible, establezca un laboratorio de pruebas y utilicela mayor cantidad de herramientas que pueda, anotando las debilidades y fortalezas de cada unade ellas. Adicionalmente, busque mayor información en Internet mayor información, como ser porejemplo artículos, guías de tipo paso-a-paso, o incluso listas de correo de una herramienta específica.

Las herramientas detalladas a continuación son sólo un pequeño ejemplo de las que se encuentrandisponibles.

1.2.3.1. Analizando equipos con NmapNmap es una herramienta muy conocida incluida en Fedora que puede ser utilizada para determinarel diagrama de una red. Nmap ha estado disponible desde hace muchos años, y probablemente seala herramienta más utilizada para reunir información de red. Incluye una página man excelente con

Page 19: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Herramientas de evaluación

9

información detallada de sus usos y opciones. Los administradores pueden utilizar Nmap sobre unared para encontrar sistemas de equipos y puertos abiertos en esos sistemas.

Nmap es un primer paso muy efectivo en la realización de evaluaciones de debilidades. Puedemapear todos los equipos dentro de su red, e incluso indicar una opción que permite a Nmapintentar identificar el sistema operativo ejecutándose en un equipo determinado. Nmap es un buenfundamento sobre el que establecer una política de utilización de servicios seguros, y detenerservicios no seguros.

1.2.3.1.1. Usando NmapNmap puede ejecutarse desde una terminal ingresando el comando nmap, seguido por el nombre delequipo o dirección IP de la máquina a analizar.

nmap foo.ejemplo.com

The results of a basic scan (which could take up to a few minutes, depending on where the host islocated and other network conditions) should look similar to the following:

Starting Nmap 4.68 ( http://nmap.org )Interesting ports on foo.example.com:Not shown: 1710 filtered portsPORT STATE SERVICE22/tcp open ssh53/tcp open domain70/tcp closed gopher80/tcp open http113/tcp closed auth

Nmap verifica los puertos de comunicaciones de red más comunes, en busca de servicios que seencuentren escuchando o esperando. Este conocimiento puede servirle a un administrador que quierecerrar servicios innecesarios o que no sean utilizados.

Para obtener mayor información acerca de la utilización de Nmap, visite la página oficial en lasiguiente URL:

http://www.insecure.org/

1.2.3.2. NessusNessus es un examinador de seguridad para cualquier tipo de servicios. La arquitectura de tipocomplementos de Nessus permite a los usuarios personalizarlo de acuerdo a los requerimientosde sus sistemas o redes. Como cualquier otro examinador, la eficiencia de Nessus es directamenteproporcional a la base de datos de la que depende. Afortunadamente, Nessus es actualizadoperiódicamente y entre sus recursos se encuentran el de ofrecer informes completos, análisis deequipos, y búsqueda de debilidades en tiempo real. Recuerde que siempre pueden existir resultadosfalsos, aún en herramientas tan poderosas y tan frecuentemente actualizadas como Nessus.

NotaThe Nessus client and server software is included in Fedora repositories but requires asubscription to use. It has been included in this document as a reference to users whomay be interested in using this popular application.

Page 20: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

10

Para obtener mayor información acerca de Nessus, visite el sitio web oficial en la siguiente URL:

http://www.nessus.org/

1.2.3.3. NiktoNikto es un excelente examinador de programas de interfaz común de puerta de enlace (CGI, por lasiniciales en inglés de Common Gateway Interface). Nikto no sólo verifica debilidades CGI, sino que lohace de una forma evasiva, de modo de poder evitar sistemas de detección de intrusiones. Se ofrececon información detallada que debería ser cuidadosamente leída antes de ejecutar el programa. Siusted posee servidores Web ofreciendo programas CGI, Nikto puede ser una herramienta excelentepara verificar la seguridad de estos servidores.

Más información sobre Nikto se puede encontrar en la siguiente URL:

http://www.cirt.net/code/nikto.shtml

1.2.3.4. VLAD el escánerVLAD es un examinador de debilidades desarrollado por el equipo RAZOR de Bindview, Inc., queverifica en la lista SANS de los diez problemas de seguridad más comunes (problemas SNMP,problemas por compartir archivos, etc.). Si bien no es tan completo como Nessus, vale la penainvestigar VLAD.

NotaVLAD no se incluye con Fedora y no está soportado. Se ha incluido en este documentocomo una referencia para aquellos usuarios que podrían estar interesados en utilizar estaconocida aplicación.

Más información sobre VLAD se puede encontrar el sitio web del equipo RAZOR en la siguiente URL:

http://www.bindview.com/Support/Razor/Utilities/

1.2.3.5. Anticipando sus necesidades futurasDe acuerdo a sus intenciones y a sus herramientas, existen muchas otras herramientas disponibles.Estas son herramientas para redes inalámbricas, redes Novell, sistemas Windows, sistemas Linux,y más. Otro componente fundamental a la hora de realizar evaluaciones puede incluir la revisiónde la seguridad física, visualización personal o evaluaciones de redes de tipo voz/PBX. Conceptosnovedosos como caminata de guerra, que implica analizar el perímetro de la estructura física de suempresa en busca de debilidades en la red inalámbrica, son algunos de los conceptos recientes quepodría investigar y, de ser necesario, incorporarlos a sus evaluaciones. La imaginación y la exposiciónson los únicos límites a la hora de planificar y llevar a cabo evaluaciones de seguridad.

1.3. Atacantes y vulnerabilidadesPara poder planificar e implementar una buena estrategia de seguridad, tenga en cuenta primeroalgunos de los problemas que son aprovechados por los atacantes para poder vulnerar los sistemas.Sin embargo, antes de detallar estos problemas, tenemos que definir la terminología utilizada a lahora de identificar a un atacante.

Page 21: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Una breve reseña acerca de los hackers

11

1.3.1. Una breve reseña acerca de los hackersEl significado moderno del término hacker tiene sus orígenes en la década del '60, en el TechModel Railroad Club del Instituto de Tecnología de Massachusetts (MIT, por las siglas en inglés deMassachusetts Institute of Technology), en donde se diseñaban modelos de trenes a gran escala ycon detalles muy específicos. "Hacker" era el nombre con el que se identificaba a los miembros delclub capaces de sortear las dificultades que presentaba un determinado problema, o que descubríaalgún truco útil.

Desde entonces el término "hacker" se ha utilizado para referirse o bien a un aficionado encomputadoras, o bien a un programador talentoso, o bien para todo lo que se encuentre entreellos. Una característica compartida entre cualquier tipo de "hacker" es la voluntad de investigardetalladamente cómo funciona un sistema de computadoras, o una red, con poca o ningunamotivación ulterior además del mero hecho de investigar. Los desarrolladores de software de códigoabierto, a menudo se consideran así mismos y a sus colegas como "hackers", y utilizan esta palabracomo un signo de respeto.

Generalmente, los hackers siguen un código de conducta establecido en la etica del hacker, queestablece que la búsqueda de información y la excelencia son esenciales, y que el hecho decompartir los conocimientos adquiridos es un deber que el hacker tiene para con la comunidad. Alo largo de esta búsqueda del conocimiento, algunos hackers disfrutan de los desafíos académicosque representan el hecho de sortear los controles de seguridad en los sistemas computarizados. Poreste motivo, generalmente el periodismo utiliza el término hacker para referirse a quienes accedenilegalmente y con fines criminales, malintencionados o inescrupulosos, a redes o sistemas decomputación. La forma más adecuada para referirse a este tipo de hackers es atacante — un términocreado por los hackers a mediados de la década del '80, para diferenciar ambas comunidades.

1.3.1.1. Zonas grisesWithin the community of individuals who find and exploit vulnerabilities in systems and networks areseveral distinct groups. These groups are often described by the shade of hat that they "wear" whenperforming their security investigations and this shade is indicative of their intent.

El hacker de sombrero blanco es quien examina los sistemas y las redes para conocer suscapacidades y poder determinar qué tan vulnerables son ante una posible intrusión. Generalmente,este tipo de hackers vulnera su propio sistema, o los sistemas de algún cliente suyo que lo hacontratado específicamente con el propósito de controlar su seguridad. Investigadores académicos yconsultores profesionales en el área de seguridad son ejemplos de hackers de sombrero blanco.

Un hacker de sombrero negro es sinónimo de atacante. Generalmente, los atacantes estánmenos interesados en la programación o en el aspecto académico a la hora de vulnerar sistemas.Usualmente utilizan una serie de programas desarrollados exclusivamente para atacar y vulnerar losaspectos de un sistema que de antemano se sabe que pueden llegar a fallar, y los utilizan para dejaral descubierto información valiosa en tales sistemas o redes, o para obtener un beneficio personal, osimplemente para causar daño.

Por otro lado, un hacker de sombrero gris tiene la habilidad de un hacker de sombrero blanco, y enla mayoría de los casos también sus intenciones, pero en algunas ocasiones utiliza su conocimientopara propósitos no tan nobles. Puede pensarse en un hacker de sombrero gris como un hacker desombrero blanco, que a veces utiliza un sombrero negro para cumplir con objetivos personales.

Generalmente los hackers de sombrero gris se rigen por una norma diferente de la ética del hacker,que establece que es aceptable vulnerar sistemas, siempre y cuando el hacker no cometa ningún

Page 22: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

12

delito ni haga público aquello que es considerado privado. Sin embargo, alguien podría argumentar,que el acto de vulnerar un sistema es en sí mismo un acto no ético.

Sin importar la intención del intruso, es importante conocer la debilidad que un atacante puedeintentar explotar. El resto del capítulo se centra en estas cuestiones.

1.3.2. Amenazas a la seguridad de la redMalas prácticas cuando se configuran los siguientes aspectos de una red pueden aumentar el riesgode un ataque.

1.3.2.1. Arquitecturas insegurasUna red mal configurada es el principal punto de ingreso para usuarios no autorizados. Dejar una redlocal, a cuyos usuarios conocemos, abierta y vulnerable a la gran inseguridad que representa Internetes casi como dejar una puerta entornada en un barrio de criminales. Tal vez no suceda nada en undeterminado período de tiempo, pero en algún momento, alguien va a aprovechar esa oportunidad

1.3.2.1.1. Redes emisorasSystem administrators often fail to realize the importance of networking hardware in their securityschemes. Simple hardware such as hubs and routers rely on the broadcast or non-switched principle;that is, whenever a node transmits data across the network to a recipient node, the hub or routersends a broadcast of the data packets until the recipient node receives and processes the data. Thismethod is the most vulnerable to address resolution protocol (ARP) or media access control (MAC)address spoofing by both outside intruders and unauthorized users on local hosts.

1.3.2.1.2. Servidores centralizadosOtro error posible de cometer dentro de una red, es el uso de computación centralizada. Una medidacomún adoptada por muchos comercios a la hora de reducir su presupuesto, es la de concentrartodos los servicios en una única máquina, relativamente poderosa. Esto puede ser conveniente yaque hace más sencillas las tareas administrativas, y el costo es económicamente inferior al de realizarconfiguraciones sobre varios servidores. Sin embargo, un servidor centralizado representa el únicopunto de acceso a la red. Si el servidor central es vulnerado, puede inutilizar completamente a la red,o peor aún, puede hacer que los datos sean fácilmente manipulados, o directamente sustraídos. Enestas situaciones, un servidor central se convierte en una puerta abierta que permite el acceso a lared en su totalidad.

1.3.3. Amenazas a la seguridad del servidorLa seguridad del servidor es tan importante como la seguridad de la red, ya que los servidores confrecuencia retienen gran parte de la información vital de una determianda organización. Si el servidores vulnerado, todos sus contenidos pueden quedar a disposición del atacante para ser sustraídos omanipulados en su totalidad. Las secciones siguientes hacen referencia a los problemas principales.

1.3.3.1. Servicios no usados y puertos abiertosUna instalación completa de Fedora contiene más de 1000 aplicaciones y bibliotecas de paquetes.Sin embargo, muchos administradores de servidores eligen no instalar todos los paquetes de ladistribución, y prefieren en su lugar realizar una instalación de los paquetes básicos, incluyendoalgunas aplicaciones de servidor.

Page 23: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Amenazas a la seguridad del servidor

13

A common occurrence among system administrators is to install the operating system without payingattention to what programs are actually being installed. This can be problematic because unneededservices may be installed, configured with the default settings, and possibly turned on. This can causeunwanted services, such as Telnet, DHCP, or DNS, to run on a server or workstation without theadministrator realizing it, which in turn can cause unwanted traffic to the server, or even, a potentialpathway into the system for crackers. Refer To Sección 2.2, “Seguridad del servidor” for information onclosing ports and disabling unused services.

1.3.3.2. Servicios no parchadosLa mayoría de las aplicaciones de servidor que se incluyen en una instalación por defecto sonpiezas de software sólidas y completamente comprobadas. Habiendo sido utilizadas en entornos deproducción durante muchos años, el código de ellas ha sido totalmente refinado y muchos de suserrores han sido encontrados y corregidos.

Sin embargo, no existe algo así como el software perfecto y existe siempre un margen para futurasmejoras. Es más, por lo general el software más reciente no ha sido probado con el rigor que unopodría esperar, debido a su reciente aparición en los entornos de producción, o debido a que no estan popular como otros.

Los desarrolladores y los administradores de sistemas encuentran a menudo, en algunas aplicacionesde servidor, errores que podrían ser aprovechados para vulnerar el sistema, y publican la informaciónde tal error en un sitio web relacionado con el tema, como ser por ejemplo, la lista de correo Bugtraq(http://www.securityfocus.com) o el Equipo de Respuesta de Emergencias de Computación (CERT,por las iniciales en inglés de Computer Emergency Response Team), cuyo sitio web es (http://www.cert.org). Si bien estos mecanismos son una forma efectiva de advertir a la comunidad acercade problemas en la seguridad, queda en manos de los administradores del sistema enmendar sussistemas. Esto es realmente verdadero ya que los atacantes tienen acceso a estos mismos sitios ypodrán utilizar la información para vulnerar sistemas que aún no han sido enmendados. Ser un buenadministrador de sistemas implica ser vigilante, estar atento permanentemente a los errores y a sussoluciones, y ser capaz de realizar una manutención adecuada del sistema para asegurar un entornode computación seguro.

Refer to Sección 1.5, “Actualizaciones de seguridad” for more information about keeping a system up-to-date.

1.3.3.3. Administración desatendidaAdministrators who fail to patch their systems are one of the greatest threats to server security.According to the SysAdmin, Audit, Network, Security Institute (SANS), the primary cause of computersecurity vulnerability is to "assign untrained people to maintain security and provide neither the trainingnor the time to make it possible to do the job."11 This applies as much to inexperienced administratorsas it does to overconfident or amotivated administrators.

Alguno administradores no pueden enmendar sus servidores o estaciones de trabajo, y otros nole prestan atención a los mensajes de registro enviados desde el kernel del sistema, o generadospor el tráfico en la red. Otro error común se produce al no modificar las contraseñas o clavesestablecidas por defecto para los servicios. Por ejemplo, algunas bases de datos tienen contraseñasadministrativas generadas por defecto, debido a que los desarrolladores de las bases de datospresuponen que el administrador del sistema las modificará inmediatamente después de haberlainstalado en su sistema. Si un administrador de una base de datos no cambia la contraseña, incluso

http://www.sans.org/resources/errors.php

Page 24: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

14

un atacante sin demasiada experiencia puede utilizar una amplia gama de contraseñas que sesabe le pueden otorgar privilegios de administrador en esa base de datos. Estos son sólo algunosejemplos que ilustran de qué manera una administración débil puede ocasionar la vulnerabilidad delos servidores.

1.3.3.4. Servicios inseguros en sí mismosIncluso la organización más precavida puede ser víctima de sus puntos débiles, si elige utilizarservicios de red inseguros. Por ejemplo, existen numerosos servicios desarrollados presuponiendoque serán utilizados en redes que se consideran confiables. Sin embargo, este presupuesto deja defuncionar ni bien el servicio se utiliza en Internet — que es considerada una red insegura.

Una categoría de servicios de red no seguros son aquellos que en el momento de la autenticación,piden nombres de usuario y contraseñas que no estén encriptados. Telnet y FTP son dos ejemplos deeste tipo de servicios. Si algún software diseñado para sustraer información se encuentre vigilando eltráfico entre el usuario remoto y un servicio con estas características, tanto los nombres de usuariocomo las contraseñas pueden ser interceptadas fácilmente.

En consecuencia, tales servicios pueden rápidamente fracasar gracias al ataque de lo que en laindustria de la seguridad se denomina el-hombre-en-el-medio. En este tipo de ataques, el agresorredirige el tráfico de red a su máquina, simulando el nombre del servidor original hacia donde lospaquetes fueron enviados. Una vez que alguien inicie una sesión remota hacia el servidor, la máquinadel atacante actúa como un conducto invisible, ubicada silenciosamente entre el servicio remoto y eldesprevenido usuario, capturando toda la información que este envíe. De esta manera el atacantepuede recopilar contraseñas administrativas y datos crudos sin que el servidor ni el usuario puedandarse cuenta de ello.

Otra categoría de servicios no seguros incluyen sistemas de archivos de red, y servicios deinformación tales como NFS o NIS, que se desarrollan específicamente para una utilización LAN, peroque desafortunadamente se extienden para incluir WANs (para usuarios remotos). NFS, por defecto,no tiene configurados mecanismos ni de autenticación ni de seguridad de modo de prevenir que unatacante pueda montar la porción compartida de NFS y acceda a cualquiera sea la información queella contenga. De manera parecida, NIS posee información vital en una base de datos con formatoASCII o DBM (derivado de ASCII), que debe ser accedida por cualquiera de los equipos en la red,incluyendo contraseñas y permisos de archivo. Un atacante que obtenga acceso a esta base dedatos, tendrá acceso a cualquier cuenta de los usuario de la red, incluyendo la del administrador.

By default, Fedora is released with all such services turned off. However, since administrators oftenfind themselves forced to use these services, careful configuration is critical. Refer to Sección 2.2,“Seguridad del servidor” for more information about setting up services in a safe manner.

1.3.4. Amenazas a las estaciones de trabajo y seguridad en equiposhogareñosWorkstations and home PCs may not be as prone to attack as networks or servers, but since theyoften contain sensitive data, such as credit card information, they are targeted by system crackers.Workstations can also be co-opted without the user's knowledge and used by attackers as "slave"machines in coordinated attacks. For these reasons, knowing the vulnerabilities of a workstation cansave users the headache of reinstalling the operating system, or worse, recovering from data theft.

Page 25: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Ataques y debilidades comunes

15

1.3.4.1. Malas contraseñasBad passwords are one of the easiest ways for an attacker to gain access to a system. For moreon how to avoid common pitfalls when creating a password, refer to Sección 2.1.3, “Seguridad decontraseñas”.

1.3.4.2. Aplicaciones de tipo cliente vulnerablesSi bien un administrador puede tener un servidor completamente seguro y enmendado, esto nosignifica que los usuarios remotos se encuentren a salvo en el momento de acceder a él. Por ejemplo,si el servidor ofrece servicios Telnet o FTP sobre una red pública, un atacante puede capturar losnombres de usuario y contraseñas que son enviados a través de la red con un formato de textosimple, y luego utilizar la información de la cuenta para poder ingresar en la estación de trabajo delusuario remoto.

Aún cuando se utilicen protocolos seguros, como SSH, un usuario remoto puede ser vulnerable aciertos ataques si no mantiene actualizadas sus aplicaciones de cliente. Por ejemplo, los clientes deSSH v.1 son vulnerables a un ataque de reenvío de X que provenga de servidores maliciosos. Unavez conectado al servidor, el atacante puede capturar silenciosamente cualquier presión de teclaso pulsación del ratón que el cliente haya hecho sobre la red. Este problema fue solucionado con elprotocolo SSH v.2, pero queda en manos del usuario conocer qué aplicaciones tienen puntos débiles,y actualizarlas cuando sea necesario.

Sección 2.1, “Seguridad de la estación de trabajo” discusses in more detail what steps administratorsand home users should take to limit the vulnerability of computer workstations.

1.4. Ataques y debilidades comunesTabla 1.1, “Debilidades comunes” details some of the most common exploits and entry points usedby intruders to access organizational network resources. Key to these common exploits are theexplanations of how they are performed and how administrators can properly safeguard their networkagainst such attacks.

Debilidades Descripción Notas

Contraseñasnulas opredeterminadas

Leaving administrative passwordsblank or using a default password setby the product vendor. This is mostcommon in hardware such as routersand firewalls, though some servicesthat run on Linux can contain defaultadministrator passwords (thoughFedora 12 does not ship with them).

Asociados comúnmente a equiposde red como ruteadores, cortafuegos,VPNs y aparatos de almacenamientoconectados a la red (NAS).Común en muchos sistemasoperativos viejos, especialmente losSOs que agrupan servicios (comoUNIX y Windows.)Los administradores, a veces creanapresuradamente cuentas de usuariosprivilegiados, y dejan la contraseñaen blanco, creando un punto deentrada perfecto para usuariosmalintencionados han descubierto lacuenta.

Clavescompartidaspredeterminadas

Los servicios de seguridad algunasveces empaquetan claves deseguridad establecidas por defecto,

Los puntos de acceso inalámbricosy aparatos servidores segurospreconfigurados más comunes.

Page 26: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

16

Debilidades Descripción Notasya sea para su desarrollo, o paracomprobar su desempeño. Si estasclaves se mantienen inalteradas y secolocan en un entorno de producciónen Internet todos los usuarios conlas misma sclaves establecidas pordefecto tendrán acceso a ese recursode clave compartida, y a cualquier tipode información que en él se guarde.

Imitación de IP Una máquina remota actúa comoun nodo en su red local, buscadebilidades en sus servidores, einstala un programa de puerta traserao troyano para ganar el control de losrecursos de la red.

La suplantación de identidad es tandifícil porque involucra la necesidaddel atacante de tener que predecir losnúmeros de secuencia de TCP/IP paracoordinar una conexión a los sistemasremotos, pero hay varias herramientasdisponibles para asistir a los atacantesa realizar esa tarea.Depende del tipo de servicios quese estén ejecutando en el sistemade destino (como por ejemplo rsh,telnet, FTP y demás), si es queutilizan técnicas de autenticaciónbasadas en la fuente, no sonrecomendadas si se las compara conPKI, o con otras formas de autenticarencriptaciones utilizadas en ssh, oSSL/TLS.

Escuchas La escucha se realiza para larecolección de datos que pasan entredos nodos activos en una red.

Este tipo de ataque funcionaprincipalmente con protocolos detransmisión de texto plano tales comolas transferencias Telnet, FTP y HTTP.El atacante remoto debe tener accesoa un sistema comprometido en unaLAN para poder realizar el ataque;usualmente el atacante usó un ataqueactivo (tal como la suplantación deIP o la del hombre en el medio) paracomprometer un sistema en la LAN.Las medidas preventivas incluyenservicios con cambio de clavescriptográficas, contraseñas de unsolo uso, o autenticación encriptadapara prevenir la adivinación decontraseñas; una fuerte encriptacióndurante la transmisión también esrecomendada.

Debilidades deservicios

Un atacante encuentra una brechao hueco en un servicio que correa través de Internet; a través de

HTTP-based services such as CGIare vulnerable to remote commandexecution and even interactive shell

Page 27: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Ataques y debilidades comunes

17

Debilidades Descripción Notasesta vulnerabilidad, el atacantecompromete el sistema entero ycualquier dato que pueda contener,y puede posiblemente comprometerotros sistemas en la red.

access. Even if the HTTP serviceruns as a non-privileged user suchas "nobody", information such asconfiguration files and network mapscan be read, or the attacker canstart a denial of service attack whichdrains system resources or renders itunavailable to other users.Los servicios algunas veces puedenpresentar debilidades que no sonvisibles a lo largo de los procesosde desarrollo o de prueba. Estasvulnerabilidades pueden darle a unatacante un control administrativototal, como es el caso de undesbordamiento del búfer: losatacantes destruyen un sistemautilizando valores arbitrarios queagotan la memoria del búfer de unadeterminada aplicación, y obteniendoasí una consola desde la cual poderejecutar comandos.Los administradores se debenasegurar que los servicios no correncomo el usuario root, y deben vigilarlos parches y actualizaciones de erratade las aplicaciones de vendedores uorganizaciones de seguridad comoCERT y CVE.

Debilidades deaplicaciones

Los atacantes encuentran fallas en lasaplicaciones de un equipo de escritorioo de una estación de trabajo (comoser por ejemplo un cliente de correoelectrónico), y ejecutan un códigocualquiera, colocan caballos troyanospara futuros daños, o simplementedestruyen el sistema. Pueden ocurrirfuturas catástrofes si la estación detrabajo vulnerada posee privilegiosadministrativos sobre el resto de lared.

Las estaciones de trabajo y losequipos personales son idealespara ser vulnerados dado que sususuarios no tienen ni la experienciani el conocimiento para prevenir odetectar irregularidades. Es de sumaimportancia informar a los individuosdel riesgo que corren cada vez queinstalan software no autorizado, ocuando abren archivos adjuntos decorreos electrónicos no solicitados.Pueden ser implementados"salvavidas" tales como configuraral cliente de correo electrónico quese esté utilizando de modo tal queno abra ni ejecute archivos adjuntosen forma automática. Además,la actualización automática de laestación de trabajo a través deRed Hat Network o mediante algún

Page 28: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

18

Debilidades Descripción Notasotro servicio de administración desistemas, es una forma de aliviar latarea de las descargas de seguridadde tipo multi usuario.

Ataques deNegación deServicio (DoS)

Un atacante, o un grupo deatacantes coordinados contra lared o los recursos de red de algunaorganización, enviando paquetesno autorizados al equipo elegido (yasea un servidor, un enrutador o unaestación de trabajo). Esto obliga alrecurso atacado a quedar inhabilitadopara ser utilizado por los usuarioslegítimos.

El caso DoS más informado en losEstados Unidos ocurrió en el año2000. Diferentes sitios comerciales ygubernamentales con alta densidadde tráfico quedaron incapacitadospor un ataque coordinado de flujode ping, utilizando diversos sistemascon conexiones de banda anchapreviamente vulnerados, que actuabancomo zombies, o que redireccionabannodos de transmisión.Los paquetes fuentes son usualmentemoldeados (así como reenviados),investigando sobre la verdadera fuentedel ataque.Los avances en el filtrado de laentrada (IETF rfc2267) con iptablesy con sistemas detección deintrusos como snort ayudan a losadministradores a rastrear y prevenirataques de DoS distribuido.

Tabla 1.1. Debilidades comunes

1.5. Actualizaciones de seguridadA medida que las deficiencias en la seguridad se van descubriendo, el software involucrado debeser actualizado, y limitar así cualquier tipo de potencial riesgo. Si el software es parte de un paquetecontenido en la distribución Fedora entonces soportada, Fedora está comprometida a liberar lo antesposible las actualizaciones necesarias para solucionar las deficiencias del paquete en cuestión. Amenudo, los anuncios sobre alguna imperfección en algún aspecto de la seguridad son acompañadosde un parche (o código fuente que solucione el problema). Este parche es entonces aplicado alpaquete de Fedora, probado y liberado como una actualización considerada de tipo errata. Sinembargo, si algún anuncio no incluye un parche, el desarrollador trabaja primero con el encargado delsoftware para poder solucionar el problema. Una vez que el problema haya sido resuelto, el paquetees probado y liberado como una actualización de tipo errata.

Si se lanza una errata de actualización del software de su sistema, es altamente recomendadoactualizar los paquetes involucrados tan pronto como sea posible para minimizar la cantidad detiempo en que el sistema es potencialmente vulnerable.

1.5.1. Actualización de paquetesCuando se actualiza el software de un sistema, es importante descargar la actualización desdeuna fuente confiable. Un atacante fácilmente puede recompilar un paquete con el mismo númerode versión que el que supuestamente debería solucionar el problema, pero con una nueva falla, yliberarlo en Internet. Si esto sucede, utilizar medidas de seguridad como archivos verificadores contra

Page 29: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Verificación de paquetes firmados

19

el RPM original, tampoco va a detectar la nueva falla. Sin embargo, es muy importante descargarRPMs solo desde fuentes confiables, como por ejemplo desde Fedora, y verificar la firma del paquetepara confirmar su integridad.

NotaFedora incluye un ícono en panel que muestra una alerta cada vez que exista unaactualización disponible para el sistema.

1.5.2. Verificación de paquetes firmadosTodos los paquetes de Fedora están firmados con la clave GPG de Fedora. GPG viene de GNUPrivacy Guard (guardia de la privacidad de GNU), o GnuPG, un paquete de software libre que se usapara asegurar la autenticidad de archivos a distribuir. Por ejemplo, una clave privada (clave secreta)bloquea el paquete mientras que la clave pública desbloquea y verifica el paquete. Si la clave públicadistribuida por Fedora no coincide con la clave privada durante la verificación del RPM, el paquetepuede haber sido alterado y por lo tanto no es confiable.

La utilidad RPM de Fedora intenta verificar automáticamente la firma GPG de un paquete RPM antesde instalarlo. Si la clave GPG no está instalada, se debe instalar desde una ubicación estática ysegura, como el CD-ROM o DVD de instalación de Fedora.

Asumiendo que el disco está montado en /mnt/cdrom, use el siguiente comando para importarladentro del administrador de claves (keyring, una base de datos de claves confiables en el sistema):

rpm --import /mnt/cdrom/RPM-GPG-KEY

Para mostrar una lista de todas las claves instaladas para la verificación de RPM, ejecute el siguientecomando:

rpm -qa gpg-pubkey*

La salida será similar a la siguiente:

gpg-pubkey-db42a60e-37ea5438

Para mostrar los detalles de alguna clave en particular, use el comando rpm -qi seguido de la salidadel comando previo, como en este ejemplo:

rpm -qi gpg-pubkey-db42a60e-37ea5438

Es extremadamente importante verificar la firma de los archivos RPM antes de instalarlos paraasegurar que no hayan sido alterados desde la fuente original de los paquetes. Para verificar todoslos paquetes descargados de una vez, emita el siguiente comando:

rpm -K /tmp/updates/*.rpm

Para cada paquete, si la clave GPG se verifica exitosamente, el comando devuelve gpg OK. Sino,asegúrese que está usando la clave pública de Fedora correcta, así como la fuente del contenido.Los paquetes que no pasan las verificaciones GPG no se deben instalar, porque pueden haber sidoalterados por alguien.

Page 30: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

20

Después de verificar la clave GPG y de descargar todos los paquetes asociados con el informe deerrata, instale los paquetes como root en el indicador de la terminal.

1.5.3. Instalación de paquetes firmadosLa instalación de la mayoría de los paquetes se puede hacer en forma segura (excepto para lospaquetes del kernel) emitiendo el siguiente comando:

rpm -Uvh /tmp/updates/*.rpm

Para paquetes del kernel, use el siguiente comando:

rpm -ivh /tmp/updates/<kernel-package>

Replace <kernel-package> in the previous example with the name of the kernel RPM.

Una vez que la máquina ha sido iniciada sin problema usando el nuevo kernel, el kernel viejo sepuede eliminar usando el siguiente comando:

rpm -e <old-kernel-package>

Replace <old-kernel-package> in the previous example with the name of the older kernel RPM.

NotaNo es necesario que el último kernel sea eliminado. El cargador de arranque por defecto,GRUB, permite tener varios kernels instalados, luego elija uno desde el menú dearranque al iniciar.

ImportanteBefore installing any security errata, be sure to read any special instructions contained inthe errata report and execute them accordingly. Refer to Sección 1.5.4, “Aplicación de loscambios” for general instructions about applying the changes made by an errata update.

1.5.4. Aplicación de los cambiosDespués de descargar e instalar las erratas de seguridad y actualizaciones, es importante dejar deusar el software viejo y comenzar a usar el nuevo. Cómo se hace esto depende del tipo de softwareque se haya actualizado. La siguiente lista muestran los items de la categoría general de softwarey provee instrucciones para usar las versiones actualizadas después de cada actualización depaquetes.

NotaEn general, reiniciar el sistema es la mejor forma de asegurarse que la última versión deun paquete de software esté en uso; sin embargo, esta opción no es siempre necesaria, oestá disponible sólo para el administrador del sistema.

Page 31: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Aplicación de los cambios

21

AplicacionesLas aplicaciones del espacio del usuario son todos los programas que se pueden usar por elusuario común. Típicamente, tales aplicaciones se usan solamente cuando un usuario, programao tarea automatizada los inicia, y no están activas por períodos largos de tiempo.

Una vez que la aplicación del espacio del usuario es actualizado, detenga cualquier instancia dela aplicación en el sistema y lance el programa de nuevo para usar la versión actualizada.

KernelEl kernel es el componente de software principal del sistema operativo Fedora. Maneja el accesoa la memoria, al procesador y a los periféricos, así como la planificación de todas las tareas.

Dado a su rol central, el kernel no se puede reiniciar sin detener la computadora. Por lo tanto, unaversión actualizada del kernel no se puede usar hasta que la computadora no sea reiniciada.

Bibliotecas compartidasLas bibliotecas compartidas son unidades de códigos, como glibc, que se usan por un númerode aplicaciones y servicios. Las aplicaciones que usan una biblioteca compartida normalmentecargan el código compartido cuando la aplicación se inicia, por lo que todas las aplicaciones queusen la versión actualizada de la biblioteca se deben detener y reiniciar.

Para determinar qué aplicaciones en ejecución usan una biblioteca particular, use el comandolsof como en el siguiente ejemplo:

lsof /lib/libwrap.so*

Este comando devuelve una lista con todos los programas en ejecución que utilizanencapsuladores TCP para control de acceso del equipo. Por lo tanto, cualquier programa listadodebe ser detenido y reiniciado si el paquete tcp_wrappers es actualizado.

Servicios SysVLos servicios SysV son programas de servidor persistentes lanzados en algún momento delproceso de inicialización del equipo. Algunos ejemplos de servicios SysV son sshd, vsftpd, yxinetd.

Debido a que estos programas generalmente continúan en la memoria todo el tiempo en queel sistema se esté ejecutando, cada servicio SysV actualizado debe ser detenido luego que elpaquete haya sido renovado. Esto puede hacerse utilizando la Herramienta de configuraciónde servicios, o logueandose como usuario root en una consola y ejecutando el comando /sbin/service como en el ejemplo siguiente:

/sbin/service <service-name> restart

In the previous example, replace <service-name> with the name of the service, such as sshd.

Servicios xinetdLos servicios controlados por el súper servicio xinetd solo se ejecutan cuando exista unaconexión activa. Ejemplos de servicios controlados por xinetd osn Telnet, IMAP, y POP3.

Debido a que xinetd inicia nuevas instancias de estos servicios cada vez que se reciba unnuevo pedido, las conexiones que tengan lugar luego de una actualización serán administradaspor el software actualizado. Sin embargo, si existen conexiones activas en el momento en

Page 32: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 1. Repaso sobre seguridad

22

que el servicio controlado por xinetd es actualizado, estas conexiones seguirán funcionandocontroladas por la versión anterior.

Para detener instancias antiguas de un servicio particular controlado por xinetd, actualice elpaquete para el servicio, y luego detenga todos los procesos que se encuentren en ejecución.Para determinar si el proceso está ejecutándose, utilice el comando ps y luego los comandoskill o killall para detener las instancias actuales del servicio.

Por ejemplo, si los paquetes errata de seguridad imap son liberados, actualice los paquetes, yluego, como usuario root, ingrese el siguiente comando en una terminal:

ps -aux | grep imap

Este comando devuelve todas las sesiones IMAP activas. Las sesiones individuales puedendeterminarse con el siguiente comando:

kill <PID>

Si esto falla a terminar la sesión, use el siguiente comando en su lugar:

kill -9 <PID>

In the previous examples, replace <PID> with the process identification number (found in thesecond column of the ps command) for an IMAP session.

Para detener todas las sesiones IMAP activas, ingrese el siguiente comando:

killall imapd

Page 33: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

23

Asegurando su Red

2.1. Seguridad de la estación de trabajoAsegurar un entorno Linux comienza con la estación de trabajo. Ya sea bloqueando una máquinapersonal, o asegurando un sistema corporativo, cualquier política de seguridad empieza con lacomputadora individual. La seguridad de una red de computadoras es la misma que la de su nodomás débil.

2.1.1. Evaluación de la seguridad de la estación de trabajoCuando se evalúa la seguridad de una estación de trabajo Fedora, considere los siguientes aspectos:

• Seguridad del BIOS y del gestor de arranque — ¿Puede un usuario no autorizado tener acceso a lamáquina e iniciarla como usuario único, o en modo de rescate, sin ninguna contraseña?

• Seguridad de la contraseña — ¿Qué tan seguras son las contraseñas de usuario en la máquina?

• Controles administrativos — ¿Quién posee una cuenta en el sistema y cuánto control administrativoposee?

• Servicios de red disponibles — ¿Qué servicios están escuchando peticiones activas de la red?¿Deberían estar ejecutándose?

• Cortafuegos personals — En caso de necesitarse alguno, ¿qué tipo de cortafuegos sonnecesarios?

• Herramientas de seguridad en la comunicación mejoradas — ¿Qué herramientas deberíanutilizarse para comunicarse entre estaciones de trabajo, y cuáles deberían evitarse?

2.1.2. Seguridad en el BIOS y en el gestor de arranqueUna protección del BIOS (o de su equivalente) y del gestor de arranque mediante una contraseña,puede prevenir que el sistema sea iniciado mediante la utilización de medios removibles, o que seobtengan privilegios de usuario root, por cualquier usuario no autorizado que tenga acceso físico alél. Las medidas de seguridad que debería adoptar para protegerse de este tipo de ataques dependetanto de la calidad de la información de la estación de trabajo, como de la ubicación de la máquina.

Por ejemplo, si una máquina es utilizada en algún tipo de evento, y no contiene ninguna clase deinformación importante, entonces no sería prioritario prevenir tales ataques. Sin embargo, si lalaptop de algún empleado con claves SSH privadas y no encriptadas de la red de la compañía esdescuidada en el mismo evento anterior, podría permitir una falla importante en la seguridad, conconsecuencias para la compañía entera.

Por otro lado, si la estación de trabajo se encuentra ubicada en un lugar al cuál tienen acceso solopersonas autorizadas o de confianza, en ese caso asegurar el BIOS o el gestor de arranque podría noser necesario.

Page 34: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

24

2.1.2.1. Contraseña BIOSLas dos razones fundamentales para proteger con una contraseña el BIOS de una computadora son1:

1. Evitar modificaciones a la configuración del BIOS — Si un intruso tiene acceso al BIOS, puedeconfigurarlo para iniciarse desde un diskette o CD-ROM. Esto hace que sea posible para élingresar en modo rescate o en modo de único usuario, lo que a su vez permite que inicieprocesos a elección en el sistema, o que pueda copiar información importante.

2. Evitar el inicio del sistema — Algunas BIOS permiten protección mediante contraseñas delproceso de arranque. Cuando es activado, el atacante se ve obligado a ingresar una contraseñaantes que el BIOS ejecute el gestor de arranque.

Debido a que los métodos para establecer una contraseña de BIOS son diferentes de acuerdo a cadafabricante, consulte el manual de la computadora para instrucciones específicas.

Si no recuerda la contraseña del BIOS, puede ser reseteada o bien mediante jumpers en la placamadre, o bien desconectando la batería del CMOS. Por esta razón, es una buena costumbre bloquearel gabinete de la computadora siempre que sea posible. Sin embargo, consulte el manual de lacomputadora o de la placa madre antes de intentar desconectar la batería del CMOS.

2.1.2.1.1. Asegurando plataformas que no sean de tipo x86Otras arquitecturas utilizan diferentes programas para realizar tareas de bajo nivel, apenasequivalentes a las que realiza el BIOS en sistemas x86. Por ejemplo, las computadoras Intel®Itanium™ utilizan el shell Interfaz de firmware extensible (EFI, por las iniciales en inglés de ExtensibleFirmware Interface).

Para instrucciones acerca de la protección mediante contraseñas de programas similares al BIOS,consulte las instrucciones del fabricante.

2.1.2.2. Contraseñas del gestor de arranqueLas principales razones por las que proteger un gestor de arranque de Linux son las siguientes:

1. Prevenir el ingreso en modo de único usuario — Si los atacantes pueden iniciar el sistema enmodo de usuario único, automáticamente se registran como usuarios root sin que para ello se lessolicite una contraseña de usuario root.

2. Prevenir el acceso a la consola del GRUB — Si la máquina en cuestión utiliza el GRUB como sugestor de arranque, un atacante puede utilizar la interfaz del editor del GRUB para modificar susconfiguraciones, o para reunir información utilizando el comando cat.

3. Prevenir el acceso a sistemas operativos no seguros — Si el sistema en cuestión es de arranquedual, un atacante puede seleccionar uno de los sistemas en el momento del inicio (por ejemplo,DOS), que ignora controles de acceso y permisos de archivo.

Fedora por defecto instala el gestor de arranque GRUB en la plataforma x86. Para una exposicióndetallada del GRUB, consulte la Guía de Instalación de Fedora.

Dado que el BIOS de cada sistema es diferente de acuerdo a su fabricante, algunos podrían no tener soporte para protecciónmediante contraseña de algún tipo, mientras que otros podrían solo soportar un tipo pero no otro.

Page 35: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Seguridad de contraseñas

25

2.1.2.2.1. Protección de GRUB con contraseñaYou can configure GRUB to address the first two issues listed in Sección 2.1.2.2, “Contraseñas delgestor de arranque” by adding a password directive to its configuration file. To do this, first choose astrong password, open a shell, log in as root, and then type the following command:

/sbin/grub-md5-crypt

Cuando se le solicite, ingrese la contraseña del GRUB y presione la tecla Intro. Con esto obtendráun hash MD5 de la contraseña.

A continuación, edite el archivo de configuración del GRUB /boot/grub/grub.conf. Abra elarchivo y debajo de la línea timeout en la sección principal del documento, añada la siguiente:

password --md5 <password-hash>

Replace <password-hash> with the value returned by /sbin/grub-md5-crypt2.

La próxima vez que el sistema sea iniciado, el menú del GRUB evitará que se ingrese al editor, o a lainterfaz de comandos, sin haber presionado primero la tecla p, seguida de la contraseña del GRUB

Desafortunadamente, esta solución no previene que un atacante inicie el equipo con un sistemaoperativo no seguro, si es que existe un entorno de arranque dual. Para esto, debe ser editada unaparte diferente del archivo /boot/grub/grub.conf.

Ubique la línea title del sistema operativo que desea asegurar, y añada otra línea con la directivalock inmediatamente debajo de ella.

Para un sistema DOS, el bloque de líneas pertinente debería empezar de manera similar a lasiguiente:

title DOS lock

AdvertenciaUna línea password debe estar presente en la sección principal del archivo /boot/grub/grub.conf para el correcto funcionamiento de este método. De lo contrario, unatacante puede acceder a la interfaz del editor del GRUB y eliminar la línea de bloqueo.

Para crear una contraseña diferente para un kernel particular o sistema operativo, añada la línealock a las presentes seguida de una línea de contraseña.

Cada porción de líneas protegidas con una contraseña única deberían empezar de manera similar alsiguiente ejemplo:

title DOS lock password --md5 <password-hash>

2.1.3. Seguridad de contraseñasLas contraseñas son el método primario que Fedora utiliza para verificar la identidad de los usuarios.Este es el motivo por el que la seguridad de la contraseña es tan importante para la protección delusuario, la estación de trabajo y la red.

GRUB also accepts unencrypted passwords, but it is recommended that an MD5 hash be used for added security.

Page 36: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

26

Por motivos de seguridad, el programa de instalación configura el sistema para utilizar Message-Digest Algorithm (MD5) y ocultar las contraseñas. Es muy recomendable que no modifique estasconfiguraciones.

Si las contraseñas MD5 son deseleccionadas durante la instalación, el antiguo formato DataEncryption Standard (DES) es utilizado. Este formato limita las contraseña a ocho caracteresalfanuméricos (deshabilitando los signos de puntuación y otros caracteres especiales), y proveyendoun modesto nivel de encriptado de 56 bits.

Si durante la instalación se deselecciona el ocultamiento de contraseñas, todas las contraseñas sonalmacenadas en un hash unidireccional en el archivo de lectura pública /etc/passwd, lo que haceque el sistema sea vulnerable a los ataques de descubrimiento de contraseñas fuera de línea. Siun intruso puede obtener acceso a la máquina como un usuario regular, puede copiar el archivo /etc/passwd a su propio equipo, y ejecutar cualquier cantidad de programas de descubrimiento decontraseñas sobre él. Si existe una contraseña no segura en el archivo, es sólo cuestión de tiempoantes que el atacante la encuentre.

El ocultamiento de contraseñas elimina este tipo de ataques almacenando el hash de contraseña enel archivo /etc/shadow, que solo puede ser leído por el usuario root.

Esto obliga a los potenciales atacantes a intentar descubrir las contraseñas remotamente,registrándose en un servicio de red en la máquina, como por ejemplo SSH o FTP. Esta clase deataque de tipo fuerza bruta es mucho más lento y deja un rastro obvio, consistente en los cientos deintentos fallidos de registro almacenados en los archivos del sistema. Por supuesto, si el atacanteinicia un ataque en medio de la noche en un sistema con contraseñas débiles, podría obtener accesoantes del amanecer y editar los archivos de registro para eliminar sus huellas.

Además del las cuestiones acerca del formato y del almacenamiento, está el problema de loscontenidos. La única cosa realmente importante que un usuario puede hacer para proteger su cuentade ataques para descubrir su contraseña, es crear una contraseña poderosa.

2.1.3.1. Creando contraseñas poderosasPara crear una contraseña segura, es una buena idea seguir las siguientes indicaciones:

• No utilice solo palabras o números — Nunca utilice solo números o palabras en contraseñas.

Algunos ejemplos inseguros incluyen los siguientes:

• 8675309

• juan

• hackeame

• No use palabras reconocibles — Palabras como nombres propios, palabras de diccionario,o incluso términos de shows de televisión, o de novelas, deberían ser evitados. Aún si estáncomplementadas con números.

Algunos ejemplos inseguros incluyen los siguientes:

• martin1

• DS-9

• tevez123

Page 37: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Seguridad de contraseñas

27

• No utilice palabras de otros idiomas — Los programas de descubrimiento de contraseñas a menudoverifican sobre listas de palabras que incluyen diccionarios de muchos idiomas. Confiar en idiomasextranjeros para establecer contraseñas seguras, no es algo aconsejable.

Algunos ejemplos inseguros incluyen los siguientes:

• cheguevara

• bienvenido1

• 1dumbKopf

• No utilice terminología hacker — Si usted piensa que es intocable porque utiliza terminologíahacker — también denominada lengua l337 (LEET) — en su contraseña, piénselo dos veces,Muchas listas de palabras incluyen lengua LEET.

Algunos ejemplos inseguros incluyen los siguientes:

• H4X0R

• 1337

• No use Información Personal — Evite usar cualquier tipo de información personal en suscontraseñas. Si el atacante conoce su identidad, la tarea de deducir su contraseña se vuelve másfácil. La siguiente es una lista de los tipos de información a evitar cuando se crea una contraseña:

Algunos ejemplos inseguros incluyen los siguientes:

• Su nombre

• El nombre de su mascota

• El nombre de un miembro de la familia

• Cualquier fecha de cumpleaños

• Su número de teléfono o su código postal

• No invierta palabras reconocibles — Los buenos verificadores de contraseña siempre inviertenpalabras comunes, por lo que la inversión de un mala contraseña no la hace más segura.

Algunos ejemplos inseguros incluyen los siguientes:

• R0X4H

• nauj

• 9-DS

• No escriba su contraseña — Nunca guarde su contraseña en papel. Es más seguro memorizarla.

• No use la misma contraseña para todas las computadoras — es importante crear contraseñasdistintas para cada máquina. De esta forma, si un sistema está comprometido, todas suscomputadoras no estarán inmediatamente en riesgo.

Los siguientes consejos le ayudarán a crear una contraseña fuerte:

Page 38: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

28

• La contraseña debe tener al menos 8 caracteres de largo — Cuanto más larga la contraseña,mejor. Si usa contraseñas MD5, deben ser de 15 caracteres o más. Con contraseñas DES, use lalongitud máxima (ocho caracteres).

• Mezcle letras en mayúsculas y minúsculas — Fedora diferencia entre mayúsculas y minúsculas,por lo que su mezcla mejora la fortaleza de la contraseña.

• Mezcle letras con números — Agregar números a la contraseña mejora la fortaleza de la misma,especialmente cuando se los agrega en el medio (no al principio ni al final).

• Include Non-Alphanumeric Characters — Special characters such as &, $, and > can greatlyimprove the strength of a password (this is not possible if using DES passwords).

• Elija una contraseña que pueda recordar — La mejor contraseña del mundo no mejora nada sino la puede recordar; use siglas u otros dispositivos memotécnicos para ayudarle a recordar lascontraseñas.

Con todas estas reglas, puede parecer difícil crear una contraseña que cumpla al mismo tiempocon todos los criterios pedidos para una buena contraseña, y que evite la creación de una mala.Afortunadamente, hay algunos pasos que se pueden tomar para generar una contraseña segura yfácil de recordar.

2.1.3.1.1. Metodología para la creación de una contraseña seguraHay muchos métodos que se pueden usar para crear contraseñas seguras. Uno de los más popularesinvolucra las siglas. Por ejemplo:

• Piense en una frase fácil de recordar, tal como:

"over the river and through the woods, to grandmother's house we go."

• Luego, conviértala en una sigla (incluyendo la puntuación).

otrattw,tghwg.

• Agregue complejidad sustituyendo números y símbolos por letras en la sigla. Por ejemplo, sustituya7 por t el arroba (@) por a:

o7r@77w,7ghwg.

• Agregue más complejidad poniendo en mayúsculas al menos una letra, tal como la B.

o7r@77w,7gHwg.

• Finalmente, no use nunca la contraseña ejemplo anterior para ningún sistema.

La creación de contraseñas seguras es imperativo, y su apropiada administración es igual deimportante, especialmente para administradores de sistemas dentro de organizaciones grandes.La siguiente sección detalla las buenas prácticas para crear y administrar las contraseñas de losusuarios dentro de una organización.

2.1.3.2. Creación de contraseñas de usuarios dentro de una organizaciónSi una organización tiene un gran número de usuarios, los administradores de sistema tienen dosopciones básicas disponibles para obligar al uso de contraseñas buenas. Pueden crear contraseñas

Page 39: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Seguridad de contraseñas

29

para los usuarios, o permitirles crear sus propias contraseñas, pero verificando que sean de unacalidad aceptable.

La creación de contraseñas para usuarios asegura que las contraseñas sean buenas, pero se vuelveuna tarea intimidante a medida que la organización crece. También aumenta el riesgo de que losusuarios escriban sus contraseñas.

Por estas razones, la mayoría de los administradores de sistema prefieren que sus usuarios creensus propias contraseñas, pero verificar activamente que sean buenas y, en algunos casos, forzarlos acambiarlas periódicamente mediante el establecimiento de un período determinado de validez.

2.1.3.2.1. Obligando a usar contraseñas poderosasTo protect the network from intrusion it is a good idea for system administrators to verify that thepasswords used within an organization are strong ones. When users are asked to create or changepasswords, they can use the command line application passwd, which is Pluggable AuthenticationManager (PAM) aware and therefore checks to see if the password is too short or otherwise easyto crack. This check is performed using the pam_cracklib.so PAM module. Since PAM iscustomizable, it is possible to add more password integrity checkers, such as pam_passwdqc(available from http://www.openwall.com/passwdqc/) or to write a new module. For a list of availablePAM modules, refer to http://www.kernel.org/pub/linux/libs/pam/modules.html. For more informationabout PAM, refer to Sección 2.4, “Módulos de autenticación conectables (PAM, por las iniciales eninglés de Pluggable Authentication Modules)”.

La verificación de la contraseña que se realiza al momento de su creación, no permite saber con tantacerteza si una contraseña es débil, cosa que sí se puede verificar exactamente con la ejecución sobreellas de un programa de descubrimiento de contraseñas.

Muchos programas de descubrimiento de contraseñas están disponibles para ejecutarse en Fedora,aunque ninguno viene con el sistema operativo. A continuación ofrecemos una pequeña lista conalgunos de los programas de descubrimiento de contraseñas más populares:

• John The Ripper — Un programa de descubrimiento de contraseña rápido y flexible. Permite eluso de múltiples listas de palabras y puede descubrir contraseñas por fuerza bruta. Está disponibleen línea en http://www.openwall.com/john/.

• Crack — Perhaps the most well known password cracking software, Crack is also very fast, thoughnot as easy to use as John The Ripper. It can be found online at http://www.crypticide.com/alecm/security/crack/c50-faq.html.

• Slurpie — Slurpie es similar a John The Ripper y a Crack, pero se diseñó para correr en variascomputadoras a la vez, creando un ataque de descubrimiento de contraseñas distribuido. Sepuede encontrar junto con un número de otras herramientas de evaluación de seguridad al ataquedistribuído, en línea en http://www.ussrback.com/distributed.htm.

AdvertenciaSiempre obtenga una autorización por escrito antes de intentar descubrir contraseñasdentro de una organización

Page 40: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

30

2.1.3.2.2. Frases de accesoPassphrases and passwords are the cornerstone to security in most of today's systems. Unfortunately,techniques such as biometrics and two-factor authentication have not yet become mainstream in manysystems. If passwords are going to be used to secure a system, then the use of passphrases shouldbe considered. Passphrases are longer than passwords and provide better protection than a passwordeven when implemented with non-standard characters such as numbers and symbols.

2.1.3.2.3. Edad de las contraseñasEl envejecimiento de las claves es otra técnica usada por los administradores del sistema paradefenderlo de malas contraseñas dentro de una organización. El envejecimiento de la contraseñasignifica que después de un período especificado (normalmente 90 días), el usuario debe crearuna nueva contraseña. La idea detrás de este método es que si el usuario es forzado a cambiarsu contraseña periódicamente, una contraseña descubierta sería útil para un intruso por un tiempolimitado. La contra del envejecimiento es que los usuarios, seguramente, anotarán en un papel suscontraseñas.

Hay dos programas principales usados para especificar el envejecimiento de contraseñas bajoFedora: el comando chage o la aplicación gráfica Administración -> Usuarios y Grupos (system-config-users).

La opción -M del comando chage especifica el número máximo de días en los cuales será válidala contraseña. Por ejemplo, para poner la contraseña del usuario para que venza en 90 días, use elsiguiente comando:

chage -M 90 <username>

In the above command, replace <username> with the name of the user. To disable passwordexpiration, it is traditional to use a value of 99999 after the -M option (this equates to a little over 273years).

También puede usar el comando chage en modo interactivo para modificar el envejecimiento devarias contraseñas y detalles de cuenta. Use el siguiente comando para ingresar en modo interactivo:

chage <username>

El siguiente es un ejemplo de la sesión interactiva usando este comando:

[root@myServer ~]# chage davido Changing the aging information for davido Enter the new value, or press ENTER for the default Minimum Password Age [0]: 10Maximum Password Age [99999]: 90 Last Password Change (YYYY-MM-DD) [2006-08-18]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [1969-12-31]: [root@myServer ~]#

Vaya a la página man de chage para más información sobre las opciones disponibles.

También se puede usar la aplicación Usuarios y Grupos para crear políticas de envejecimientode contraseñas, como sigue. Nota: necesita los privilegios de administrador para realizar esteprocedimiento.

Page 41: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Controles administrativos

31

1. Haga clic en el menú Sistema en el panel, apunte al menú Administración y luego haga clicen Usuarios y Grupos para mostrar el Aministrador de Usuarios. Alternativamente, teclee elcomando system-config-users en un indicador de shell.

2. Haga clic en la pestaña Usuarios y seleccione el usuario requerido de la lista de usuarios.

3. Haga clic en Propiedades en la barra de herramientas para mostrar el cuadro de diálogo de lasPropiedades del Usuario (o elija Propiedades en el menú Archivo).

4. Haga clic en la pestaña Información de la Contraseña, y seleccione la casilla de Activarexpiración de contraseña.

5. Ingrese el valor requerido en el campo Días requeridos antes de cambiar y haga clic enAceptar.

Figura 2.1. Especificación de las opciones de edad de las contraseñas

2.1.4. Controles administrativosCuando se administra una máquina personal, el usuario debe realizar algunas tareas como usuarioroot, o mediante la adquisisción de privilegios de usuario root, a través de un programa de tipo setuid,como lo son por ejemplo sudo o su. Se denomina un programa de tipo setuid a aquel que operacon el ID de usuario (UID) del dueño del programa, en lugar del ID de usuario de quien sea que estéutilizando el programa. Tales programas son identificados con una s en la sección de pertenencia dellistado de formato extenso, como se muestra en el siguiente ejemplo:

-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su

Page 42: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

32

NotaLa s puede figurar en mayúscula o en minúscula. Si aparece en mayúscula, significa queel bit de los permisos subyacentes no ha sido definido.

For the system administrators of an organization, however, choices must be made as to how muchadministrative access users within the organization should have to their machine. Through a PAMmodule called pam_console.so, some activities normally reserved only for the root user, such asrebooting and mounting removable media are allowed for the first user that logs in at the physicalconsole (refer to Sección 2.4, “Módulos de autenticación conectables (PAM, por las iniciales en inglésde Pluggable Authentication Modules)” for more information about the pam_console.so module.)However, other important system administration tasks, such as altering network settings, configuringa new mouse, or mounting network devices, are not possible without administrative privileges. Asa result, system administrators must decide how much access the users on their network shouldreceive.

2.1.4.1. Permitiendo accesos rootSi los usuarios de una organización son confiables y conocen acerca de computadoras, permitirlesacceso root no debería ser un problema. Esto significa que actividades menores, como añadirdispositivos o configurar interfases de red podrían ser realizadas por los usuarios individuales,quedando los administradores del sistema liberados y poder realizar tareas más importantesrelacionadas, por ejemplo, con la red o con la seguridad.

Por otro lado, darle accesos de root a usuarios individuales podría generar los siguientesinconvenientes:

• Configuración errónea del equipo — Los usuarios con acceso root pueden desconfigurar susmáquinas y necesitar asistencia para resolver problemas. O peor aún, podrían abrir agujeros en laseguridad del sistema sin saberlo.

• Ejecutar servicios no seguros — Usuarios con acceso root podrían ejecutar servidores no segurosen su máquina, como por ejemplo Telnet o FTP, poniendo en riesgo en forma potencial nombres deusuarios o contraseñas. Estos servicios transmiten la información sobre la red en formato de textosimple.

• Ejecutar archivos adjuntos de correos como usuarios root — Si bien son excepcionales, existenvirus de correo electrónico que afectan a los sistemas Linux. Sin embargo, el único momento enque se convierten en una amenaza, es cuando son ejecutados por el usuario root.

2.1.4.2. Anulación del acceso como rootIf an administrator is uncomfortable allowing users to log in as root for these or other reasons, theroot password should be kept secret, and access to runlevel one or single user mode should bedisallowed through boot loader password protection (refer to Sección 2.1.2.2, “Contraseñas del gestorde arranque” for more information on this topic.)

Tabla 2.1, “Métodos para deshabilitar la cuenta root” describes ways that an administrator can furtherensure that root logins are disallowed:

Page 43: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Controles administrativos

33

Método Descripción Efectos No afecta

Cambiodel shellpara root.

Edite el archivo /etc/passwd y cambie laterminal de /bin/bash a/sbin/nologin.

Previene acceso a laterminal root y registracualquiera de talesintentos.Los siguientes programasestán prevenidos al intentaringresar a la cuenta deusuario root:· login· gdm· kdm· xdm· su· ssh· scp· sftp

Programas que nonecesiten de una terminal,como por ejemplo, clientesFTP, clientes de correo, ymuchos programas de tiposetuid.Los siguientes programasno están prevenidos alintentar acceder a lacuenta root:· sudo· Clientes de FTP· Clientes de correo

Deshabilitarel accesorootmediantecualquierdispositivodeconsola(tty)

Un archivo /etc/securetty vacíopreviene los intentos deaccesos root a cualquierdispositivo asociado con lacomputadora.

Previene accesos a lacuenta root mediantela consola o la red. Lossiguientes programasson prevenidos al intentaracceder a la cuenta root:· login· gdm· kdm· xdm· Otros servicios de red queabran una tty

Programas que no seregistran como root,pero que realizan tareasadministrativas medianteprogramas de tiposetuid, o mediante otrosmecanismos.Los siguientes programasno están prevenidos alintentar acceder a lacuenta root:· su· sudo· ssh· scp· sftp

Deshabilitaciónde lasopcionesdeingresocomo rootpor SSH.

Edite el archivo /etc/ssh/sshd_config yestablezca el parámetroPermitRootLogin en no.

Prevenga el acceso rootutilizando el conjunto deherramientas de OpenSSH.Los siguientes programasson prevenidos al intentaracceder a a cuenta root:· ssh· scp· sftp

Esto sólo previene elacceso root al conjunto deherramientas de OpenSSH.

UtilicePAM paralimitar elaccesoroot a losservicios.

Edit the file for thetarget service inthe /etc/pam.d/directory. Make sure thepam_listfile.so isrequired for authentication.1

Previene el acceso root alos servicios de red queson compatibles com PAM.Los siguientes servciciosson prevenidos al intentaracceder a la cuenta deroot:· Clientes de FTP

Programas y servicios queno son compatibles conPAM.

Page 44: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

34

Método Descripción Efectos No afecta· Clientes de correo· login· gdm· kdm· xdm· ssh· scp· sftp· Cualquier servicio PAM

Refer to Sección 2.1.4.2.4, “Deshabilitando root usando PAM” for details.

Tabla 2.1. Métodos para deshabilitar la cuenta root

2.1.4.2.1. Deshabilitando la cuenta shell de rootPara prevenir que los usuarios se resgistren directamente como usuarios root, el administrador delsistema puede establecer la consola de la cuenta de root como /sbin/nologin en el archivo /etc/passwd. Esto previene el acceso a la cuenta root mediante comandos que necesiten una terminal,como por ejemplo el comando su y los comandos ssh.

ImportanteLos programas que no necesitan acceso a la consola, como son por ejemplo los clientesde correo electrónico, o el comando sudo, pueden todavía tener acceso a la cuenta root.

2.1.4.2.2. Deshabilitando conexiones como rootPara en el futuro limitar el acceso a la cuenta root, los administradores pueden deshabilitar laposibilidad de registrarse como usuarios root editando el archivo /etc/securetty. Este archivomuestra todos los dispositivos a los que el usuario root puede registrarse. Si el archivo no existiese,el usuario root puede registrarse a través de cualquier dispositivo de comunicación en el sistema, yasea mediante la utilización de la consola, o mediante una interfaz de red. Esto es peligroso ya queun usuario puede registrarse en su máquina como usuario root mediante Telnet, que transmite en lared la contraseña en formato de texto simple. Por defecto, el archivo /etc/securetty de Fedorasólo permite que el usuario root se registre en la consola asociada físicamente en la máquina. Paraprevenir al usuario root que se registre, elimine los contenidos de este archivo con la utilización delsiguiente comando:

echo > /etc/securetty

AdvertenciaUn archivo /etc/securetty vacío no evita que el usuario root se registre remotamenteen el sistema utilizando el conjunto de herramientas OpenSSH, ya que la consola no seinicia hasta luego de la autenticación.

Page 45: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Controles administrativos

35

2.1.4.2.3. Deshabilitando conexiones SSH como rootLos ingresos root mediante el protocolo SSH están deshabilitados por defecto en Fedora; sinembargo, si esta opción ha sido activada, puede deshabilitarse nuevamente editando el archivo deconfiguración del demonio SSH (/etc/ssh/sshd_config). Cambie la línea en la que se lee:

PermitRootLogin yes

leer como sigue:

PermitRootLogin no

Para que estos cambios tengan efecto, el demonio SSH debe ser reiniciado. Esto puede realizarsemediante el siguiente comando:

kill -HUP `cat /var/run/sshd.pid`

2.1.4.2.4. Deshabilitando root usando PAMPAM, a través del módulo /lib/security/pam_listfile.so, permite gran flexibilidad a la horade denegar cuentas específicas. El administrador puede utilizar este módulo para hacer referencia auna lista de usuarios que no tienen permitido registrarse. Más abajo mostramos un ejemplo acercade cómo el módulo es utilizado por el servidor FTP vsftpd en el archivo de configuración de PAM/etc/pam.d/vsftpd (el caracter \ al final de la primera línea en el ejemplo no es necesario si ladirectiva se encuentra en una sola línea):

auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed

Esto le indica a PAM que consulte el archivo /etc/vsftpd.ftpusers y que niegue el accesoal servicio al usuario listado. El administrador puede modificar el nombre en este archivo, y puedetener diferentes listas para cada servicio, o utilizar una lista principal para negar el acceso a múltiplesservicios.

Si el administrador quiere negar el acceso a múltiples servicios, una línea similar puede ser añadida alos archivos de configuración PAM, como por ejemplo, /etc/pam.d/pop y /etc/pam.d/imap paraclientes e correo, o /etc/pam.d/ssh para clientes SSH.

For more information about PAM, refer to Sección 2.4, “Módulos de autenticación conectables (PAM,por las iniciales en inglés de Pluggable Authentication Modules)”.

2.1.4.3. Limitando acceso como rootEn lugar de negarle acceso completamente al usuario root, el admisnitrador podría querer permitirle elacceso sólo mediante la utilización de programas de tipo setuid, como ser por ejemplo su o sudo.

2.1.4.3.1. El comando suCuando un usuario ejecuta el comando su, se le solicita la contraseña de root y, luego de laautenticación, le es dado un indicador de consola.

Page 46: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

36

Una vez que se registra mediante el comando su, el usuario es el usuario root y tiene accesosadmisnitrativos absolutos en el sistema 3. Además, una vez que el usuario se ha convertido en root,es posible la utilización del comando su para convertirse en cualquier otro usuario en el sistema sinque por eso se le pida ningún tipo de contraseña.

Debido a la potencia de este programa, los administradores de una organización podrían desearlimitar a quiénes tienen acceso a este comando.

Una de las maneras más sencillas de hacer esto es añadiendo usuarios al grupo administrativoespecial denominado wheel. Para hacerlo, ingrese el siguiente comando como usuario root:

usermod -G wheel <username>

In the previous command, replace <username> with the username you want to add to the wheelgroup.

También puede utilizar de la siguiente manera el Administrador de usuarios para modificarlas pertenencias a los grupos. Nota: necesita privilegios de administrador para realizar esteprocedimiento:

1. Haga clic en el menú Sistema en el panel, apunte al menú Administración y luego haga clicen Usuarios y Grupos para mostrar el Aministrador de Usuarios. Alternativamente, teclee elcomando system-config-users en un indicador de shell.

2. Haga clic en la pestaña Usuarios y seleccione el usuario requerido de la lista de usuarios.

3. Haga clic en Propiedades en la barra de herramientas para mostrar el cuadro de diálogo de lasPropiedades del Usuario (o elija Propiedades en el menú Archivo).

4. Click the Groups tab, select the check box for the wheel group, and then click OK. Refer toFigura 2.2, “Adding users to the "wheel" group.”.

5. Abra el archivo de configuración PAM para el comando su (/etc/pam.d/su) en un editor detextos, y elimine el comentario # de la siguiente línea:

auth required /lib/security/$ISA/pam_wheel.so use_uid

Este cambio significa que solo miembros del grupo administrativo wheel pueden usar esteprograma.

Estos accesos aún están sujetos a las restricciones impuestas por SELinux, si es que se encuentra activo.

Page 47: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Controles administrativos

37

Figura 2.2. Adding users to the "wheel" group.

NotaEl usuario root es por defecto miembro del grupo wheel.

2.1.4.3.2. El comando sudoEl comando sudo ofrece un nuevo punto de vista a la cuestión acerca de si otorgarle o no accesosadministrativos a los usuarios. Cuando un usuario confiable le anteponga el comando sudo a uncomando administrativo, le será pedida su propia contraseña. Entonces, cuando sea autenticado yasumiendo que el comando le sea permitido, el comando administrativo en cuestión será ejecutadocomo si este usuario fuera el usuario root.

Los formatos básicos del comando sudo son los siguientes:

sudo <command>

In the above example, <command> would be replaced by a command normally reserved for the rootuser, such as mount.

Page 48: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

38

ImportanteLos usuarios del comando sudo deberían tener mucho cuidado y cancelar estaherramienta antes de abandonar sus equipos, ya que en un período de tiempo de cincominutos, los usuarios sudo pueden utilizar el comando nuevamente sin que por ello lessea pedida una contraseña. Esta configuración puede modificarse desde el archivo deconfiguración /etc/sudoers.

The sudo command allows for a high degree of flexibility. For instance, only users listed in the /etc/sudoers configuration file are allowed to use the sudo command and the command is executed inthe user's shell, not a root shell. This means the root shell can be completely disabled, as shown inSección 2.1.4.2.1, “Deshabilitando la cuenta shell de root”.

El comando sudo también ofrece un método fácil de entender para su control. Cada autenticaciónexitosa es registrada en el archivo /var/log/messages, y el comando ingresado, junto con elnombre del usuario que lo ingresó, se registran en el archivo /var/log/secure.

Otra ventaja del comando sudo es que un administrador puede permitir a diferentes usuarios accedera comandos específicos de acuerdo a sus necesidades.

Los administradores que quieran editar /etc/sudoers, el archivo de configuración del comandosudo, deberían utilizar el comando visudo.

Para otrogarle a un usario todos los privilegios admisnitrativos, ingrese visudo, y agregue una líneasimilar a la siguiente en la sección de especificaciones de los privilegios del usuario:

juan ALL=(ALL) ALL

Este ejemplo indica que el usuario juan, puede utilizar el comando sudo desde cualquier equipo yejecutar cualquier comando.

El ejemplo que damos a continuación ilustra pequeños detalles posibles al configurar sudo:

%users localhost=/sbin/shutdown -h now

Este ejemplo indica que cualquier usuario puede ejecutar el comando /sbin/shutdown -h now,siempre y cuando lo haga desde una consola.

La página man del archivo sudoers contiene una lista detallada de opciones.

2.1.5. Servicios de red disponiblesSi bien el acceso de los usuarios a controles administrativos es un problema importante para losadministradores del sistema dentro de una organización, controlar qué servicios de red son los que seencuentran activos, es de importancia suprema para cualquiera que opere un sistema Linux.

Muchos servicios bajo Fedora se comportan como servidores de red. Si un servicio de red estáejecutándose en una máquina, una aplicación de servidor (denominada demonio), está escuchandolas conexiones de uno o más puertos de red. Cada uno de estos servidores debería ser tratado comouna potencial vía de ingreso de atacantes.

Page 49: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Servicios de red disponibles

39

2.1.5.1. Riesgos a serviciosLos servicios de red puede plantear numerosos riesgos para sistemas Linux. A continuaciónmostramos una lista con algunas de las cuestiones principales:

• Ataques de denegación de servicio (DoS, por las iniciales en inglés de Denial of Service Attacks )— Al inundar un servicio con peticiones, un ataque de denegación de servicio puede dejarinutilizable a un sistema, ya que este trata de registrar y de responder a cada petición.

• Distributed Denial of Service Attack (DDoS) — A type of DoS attack which uses multiplecompromised machines (often numbering in the thousands or more) to direct a co-ordinated attackon a service, flooding it with requests and making it unusable.

• Ataques a las debilidades de los programas — Si un servidor está utilizando programas paraejecutar acciones propias, como comúnmente lo hacen los servidores Web, un atacante puedeconcentrarse en los scripts mal escritos. Este ataque a las debilidades de los programas puedellevar a una condición de desbordamiento del búfer, o permitir que los atacantes modifiquenarchivos en el sistema.

• Ataques de desbordamiento del búfer — Los servicios que se conectan al rango de puertos queva entre 0 y 1023, deben ser ejecutados como usuario administrativo. Si una aplicación puedeprovocar un desbordamiento del búfer, un atacante puede obtener acceso al sistema como elusuario que ejecuta el demonio. Debido a que los desbordamientos del búfer existen, los atacantesutilizan herramientas automatizadas para identificar sistemas con debilidades, y una vez obtenido elacceso, usan rootkits automatizados para mantener ese acceso al sistema.

NotaLa amenaza que representa la debilidad de un búfer desbordado es mitigada en Fedoramediante la utilización de ExecShield, un programa de ejecución de segmentación de lamemoria y protección de la tecnología, con soporte para kernels de sistemas compatiblesx86 de uno o más procesadores. ExecShield reduce el riesgo de un desbordamientodel búfer al clasificar la memoria virtual en segmentos ejecutables y no ejecutables.Cualquier código de programa que intente ejecutarse fuera de los segmentos ejecutables(como por ejemplo codigo maliciosos introducido desde un búfer desbordado que ha sidoaprovechado), dispara una falla de segmentación y finaliza.

Execshield también ofrece soporte para las tencologías No ejecutar (NX, por las inicialesen inglés de No eXecute) de las plataformas AMD64, y para las tecnologías Deshabilitarejecutar (XD, por las iniciales en inglés de eXecute Disable) de las las plataformasItanium y sistemas Intel® 64. Estas tecnologías trabajan junto a ExecShield para prevenirque sea ejecutado código malicioso en la porción ejecutable de la memoria virtual, conuna precisión de 4KB de código ejecutable, disminuyendo el riego de un ataque a ladebilidad de un búfer desbordado.

ImportantePara limitar la exposición a ataques en la red, todos los servicios que no son utilizadosdeben ser apagados.

Page 50: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

40

2.1.5.2. Identificando y configurando serviciosPara mejorar la seguridad, muchos de los servicios de red instalados con Fedora están apagados pordefecto. Hay, de todas formas, algunas notables excepciones:

• cupsd — El servidor de impresión por defecto para Fedora.

• lpd — Un servidor de impresión alternativo.

• xinetd — Un súper servidor que controla las conexiones de un rango de servidores subordinados,como son, por ejemplo gssftp y telnet.

• sendmail — El Agente de transporte de correo (MTA, por las iniciales en inglés de Mail TransportAgent) de Sendmail es activado por defecto, pero solo escucha las conexiones del localhost.

• sshd — El servidor OpenSSH, es un reemplazo seguro para Telnet.

Cuando se intenta conocer cuándo dejar estos servicios en ejecución, lo mejor es utilizar el sentidocomún y adoptar un punto de vista basado en la precaución. Por ejemplo, si una impresora no estádisponible, no deje el servicio cupsd prendido. Lo mismo vale para portmap. Si usted no montavolumenes NFSv3, o utiliza NIS (el servicio ypbind), entonces portmap debería deshabilitarse.

Figura 2.3. Services Configuration Tool

If unsure of the purpose for a particular service, the Services Configuration Tool has a descriptionfield, illustrated in Figura 2.3, “Services Configuration Tool”, that provides additional information.

Checking which network services are available to start at boot time is only part of the story. You shouldalso check which ports are open and listening. Refer to Sección 2.2.8, “Verificar qué puertos estánabiertos” for more information.

Page 51: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Servicios de red disponibles

41

2.1.5.3. Servicios insegurosPotentially, any network service is insecure. This is why turning off unused services is so important.Exploits for services are routinely revealed and patched, making it very important to regularly updatepackages associated with any network service. Refer to Sección 1.5, “Actualizaciones de seguridad”for more information.

Algunos protocolos de red son en sí mismos más inseguros que otros. Estos incluyen los serviciosque:

• Transmiten sin encriptar nombres de usuarios y contraseñas en la red — Muchos protocolosantiguos, como por ejemplo Telnet y FTP, no encriptan las autenticaciones de las sesiones, ysiempre que sea posible, deberían ser evitados.

• Transmiten datos vitales sin encriptarse sobre una red — Muchos protocolos transmiten datos enla red sin encriptarlos. Estos protocolos incluyen Telnet, FTP, HTTP y SMTP. Muchos sistemas dearchivos de red, como NFS y SMB, también transmiten información sobre internet sin encriptarla.Al utilizar estos protocolos, queda bajo la exclusiva responsabilidad del usuario limitar la clase dedatos que se transmitan.

Servicios de volcado de memoria remoto, como netdump, transmiten el contenido de la memoriasobre una red sin encriptar . Los volcados de memoria pueden contener contraseñas o, peor aún,entradas a base de datos o información sensible.

Otros servicios como finger y rwhod revelan información sobre usuarios del sistema.

Ejemplos de servicios inherentemente inseguros incluyen rlogin, rsh, telnet, y vsftpd.

All remote login and shell programs (rlogin, rsh, and telnet) should be avoided in favor of SSH.Refer to Sección 2.1.7, “Herramientas de comunicación de seguridad mejorada” for more informationabout sshd.

FTP is not as inherently dangerous to the security of the system as remote shells, but FTP serversmust be carefully configured and monitored to avoid problems. Refer to Sección 2.2.6, “AsegurandoFTP” for more information about securing FTP servers.

Entre los ervicios que deberían ser cuidadosamente implementados, y colocarse detrás de uncortafuegos, podemos encontrar a:

• finger

• authd (antes llamado identd en versiones anteriores de Fedora.)

• netdump

• netdump-server

• nfs

• rwhod

• sendmail

• smb (Samba)

• yppasswdd

Page 52: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

42

• ypserv

• ypxfrd

More information on securing network services is available in Sección 2.2, “Seguridad del servidor”.

La siguiente sección discute las herramientas disponibles para crear un cortafuegos sencillo.

2.1.6. Cortafuegos personalesLuego de haberse configurado los servicios de red necesarios, es importante la implementación de uncortafuegos.

ImportanteDebería configurar los servicios necesarios e implementar un cortafuegos antes deconectarse a Internet, o a cualquier otra red en la que usted no confíe.

Los cortafuegos previenen que los paquetes de red ingresen a la interfaz de red del sistema. Siuna petición es realizada a un puerto bloqueado por un cortafuegos, la petición será ignorada.Si un servicio está escuchando uno de estos puertos bloqueados, no recibe los paquetes y esefectivamente deshabilitado. Por esta razón, debe tenerse cuidado cuando se configure uncortafuegos para bloquear el acceso a puertos que no estén en uso, y se ponga atención al procesopara que no sea bloqueado el acceso a puertos utilizados por otros servicios configurados.

Para la mayoría de los usuarios, la mejor herramienta para configurar un cortafuegos es laherramienta de configuración gráfica de cortafuegos que viene con Fedora: Firewall ConfigurationTool (system-config-firewall). Esta herramienta genera reglas amplias de iptables para uncortafuegos de propósitos generales, utilizando una interfaz de panel de control.

Refer to Sección 2.8.2, “Configuración básica de un cortafuego” for more information about using thisapplication and its available options.

For advanced users and server administrators, manually configuring a firewall with iptablesis probably a better option. Refer to Sección 2.8, “Cortafuegos” for more information. Refer toSección 2.9, “IPTables” for a comprehensive guide to the iptables command.

2.1.7. Herramientas de comunicación de seguridad mejoradaAsí como han crecido el tamaño y la popularidad de Internet, también han aumentado los peligros dela interceptación de las comunicaciones. Con el correr de los años, se han desarrollado herramientaspara encriptar las comunicaciones mientras están siendo transferidas sobre la red.

Fedora viene con dos herramientas básicas, que usan algoritmos de encriptación de alto nivel declave pública, para proteger la información mientras viaja por la red:

• OpenSSH — Una implementación libre del protocolo SSH para encriptar comunicaciones de red.

• Protección de Privacidad Gnu (GPG, por las iniciales en inglés de Gnu Privacy Guard) — Unaimplementación libre para proteger los datos de la aplicación para encriptado PGP (por las inicialesen inglés de Pretty Good Privacy).

Page 53: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Seguridad del servidor

43

OpenSSH es la forma más segura de acceder a equipos remotos y reemplazar servicios antiguosy no encriptados como telnet y rsh. Open SSH ofrece un servicio de red llamado sshd y tresaplicaciones de cliente mediante la línea de comandos:

• ssh — Un cliente seguro para acceso a consola remota.

• scp — Un comando de copia remota segura.

• sftp — Un pseudo cliente ftp seguro que permite sesiones interactivas de transferencias dearchivos.

Refer to Sección 3.6, “Shell seguro (SSH, por las iniciales en inglés de Secure Shell)” for moreinformation regarding OpenSSH.

ImportanteAlthough the sshd service is inherently secure, the service must be kept up-to-date toprevent security threats. Refer to Sección 1.5, “Actualizaciones de seguridad” for moreinformation.

GPG es una manera de asegurar la privacidad en la comunicación de correo. Puede ser utilizadotanto para enviar datos sensibles sobre las redes públicas como para proteger datos sensibles endiscos duros.

2.2. Seguridad del servidorCuando un sistema es utilizado como servidor en una red pública, se convierte en el objetivo de losataques. Por lo tanto, robustecer el sistema y desconectar los servicios es de importancia supremapara el administrador del sistema.

Antes de profundizar en problemas específicos, recuerde los siguientes consejos generales parafortalecer la seguridad de los servidores:

• Mantenga todos los servicios actualizados, para protegerse contra las últimas amenazas.

• Siempre que sea posible, utilice protocolos seguros.

• Siempre que sea posible, ofrezca sólo un tipo de servicio de red por máquina.

• Observe cuidadosamente a todos los servidores en busca de actividad sospechosa.

2.2.1. Asegurando los servicios con encapsuladores TCP y xinetdLos encapsuladores TCP ofrecen control de acceso para una variedad de servicios. Muchos de losservicios de red modernos, como SSH, Telnet, y FTP, utilizan encapsuladores TCP, quienes hacen deguardianes entre la petición entrante y el servicio solicitado.

Los beneficios que ofrecen los encapsuladores TCP se potencian si se utilizan junto a xinetd, unsuper servidor que ofrece acceso adicional, registrado, vinculación, redireccionamiento y control de lautilización de los recursos.

Page 54: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

44

NotaIt is a good idea to use iptables firewall rules in conjunction with TCP Wrappers andxinetd to create redundancy within service access controls. Refer to Sección 2.8,“Cortafuegos” for more information about implementing firewalls with iptables commands.

Las siguientes subsecciones presuponen un conocimiento básico de cada uno de los temas, y seconcentran en opciones de seguridad específicas.

2.2.1.1. Mejorando la seguridad utilizando encapsuladores TCPLos encapsuladores TCP son capaces de mucho más que denegar el acceso a servicios. Estasección ilustra como se pueden usar para enviar pancartas de conexión, alertar de ataques denodos en particular y aumentar la funcionalidad de registro. Refiérase a la página del manualhosts_options para obtener información acerca de la funcionalidad de los encapsuladores TCP yel lenguaje de control.

2.2.1.1.1. Encapsuladores TCP y pancartas de conexiónDesplegar una pancarta apropiada cuando los usuarios se conectan a un servicio es una buenamanera de hacerle saber a los posibles atacantes que el administrador del sistema está vigilando.Usted puede también controlar qué información acerca del sistema es presentada a los usuarios.Para implementar una pancarta por medio de encapsuladores TCP para un servicio, use la opciónbanner.

Este ejemplo implementa una pancarta para vsftpd. Para comenzar, cree un archivo de pancarta.Puede ser en cualquier lugar del sistema, pero debe tener el mismo nombre que el demonio. Paraeste ejemplo, el archivo es llamado /etc/banners/vsftpd y contiene la siguiente linea:

220-Hola, %c 220-Toda actividad en ftp.ejemplo.com es registrada.220-El uso inapropiado resultará en la remoción de los privilegios de acceso.

La ficha %c proveé de una serie de información del cliente, como el nombre de usuario y el nombre dehuésped o el nombre de usuario y la dirección IP para hacerlo más intimidante.

Para que esta pancarta sea desplegada en todas la conexiones entrantes, hay que agregar lasiguiente linea en el archivo/etc/hosts.allow:

vsftpd : ALL : banners /etc/banners/

2.2.1.1.2. Encapsuladores TCP y alertas de ataqueSi un huésped o red en particular han sido detectados atacando el servidor, los encapsuladoresTCP pueden ser usados para alertar al administrador de ataques subsecuentes provenientes de esehuésped o red usando la directiva spawn.

En este ejemplo, asumamos que un atacante de la red 206.182.68.0/24 ha sido detectado tratandode atacar el servidor. Agregue la siguiente linea en el archivo /etc/hosts.deny para denegarcualquier intento de conexión desde esa red, y para registrar los intentos a un archivo en especial:

ALL : 206.182.68.0 : spawn /bin/ 'date' %c %d >> /var/log/intruder_alert

Page 55: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Asegurando los servicios con encapsuladores TCP y xinetd

45

La ficha %d proveé el nombre del servicio al que el atacante está tratando de acceder.

Para permitir una conexión y registrarla, use la directiva spawn en el archivo /etc/hosts.allow.

NotaYa que la directiva spawn ejecuta cualquier comando, es una buena idea crear unprograma especial para notificar al administrador o ejecutar una cadena de comandos enel evento de un cliente en particular tratando de conectarse al servidor.

2.2.1.1.3. Encapsuladores TCP y registro avanzadoSi ciertos tipos de conexión son más preocupantes que otros, el nivel de registro puede ser elevadopara ese servicio usando la opción severity.

Para este ejemplo, asumamos que cualquiera que intente conectarse al puerto 23 (el puerto deTelnet) en un servidor FTP está tratando de romper el sistema. Para denotar esto, use la banderaemerg en los archivos de registro en lugar de la bandera por defecto info y deniegue la conexión.

Para hacer esto, ponga la siguiente linea en el archivo /etc/hosts.deny:

in.telnetd : ALL : severity emerg

Esto usa la facilidad de registro por defecto authpriv, pero eleva la prioridad del valor por defectoinfo a emerg, lo cual escribe los mensajes de registro directamente a la consola.

2.2.1.2. Aumentando la seguridad con xinetdEsta sección se concentra en el uso de xinetd para crear un servicio de trampa y usarlo paracontrolar los niveles de recurso disponibles para cualquier servicio xinetd. Crear límites de recursospara los servicios puede ayudar a frustrar ataques de denegación de servicio (Denial of Service,DoS). Refiérase a las páginas del manual para xinetd y xinetd.conf para una lista de opcionesdisponibles.

2.2.1.2.1. Poniendo una trampaUna característica importante de xinetd es su habilidad para agregar equipos a una listano_access global. Los equipos en esta lista no pueden crear conexiones subsecuentes a serviciosmanejados por xinetd por un periodo específico de tiempo, o hasta que xinetd sea reiniciado.Usted puede hacer esto usando el atributo SENSOR. Esta es una manera fácil de bloquear equiposque intentan explorar puertos en el servidor.

El primer paso para crear un SENSOR es escoger que servicio no está planeado a usarse. En esteejemplo es utilizado telnet.

Edite el archivo /etc/xinetd.d/telnet y cambie la linea flags a:

flags = SENSOR

Agregue la siguiente línea:

deny_time = 30

Page 56: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

46

Esto deniega cualquier intento de conexión a este puerto para ese equipo por 30 minutos. Otrosvalores aceptables para el atributo deny_time son FOREVER, el cual mantiene el veto en efectohasta que xinetd es reiniciado y NEVER, el cual permite la conexión y la registra.

Finalmente, la última linea debe ser:

disable = no

Esto habilita la trampa.

Mientras que el uso de SENSOR es una buena idea para detectar y detener conexiones desde equiposindeseables, tiene dos características en contra:

• No funciona contra exploraciones sigilosas (stealth)

• Un atacante que sabe que un SENSOR esta corriendo puede montar un ataque de denegación deservicio contra un servidor en particular al forjar su dirección IP y conectarse al puerto prohibido.

2.2.1.2.2. Control de los recursos del servidorOtra característica importante de xinetd es su habilidad de declarar límites de recursos para losservicios bajo su control.

Lo hace usando las siguientes directivas

• cps = <number_of_connections> <wait_period> — Limits the rate of incomingconnections. This directive takes two arguments:

• <number_of_connections> — The number of connections per second to handle. If the rate ofincoming connections is higher than this, the service is temporarily disabled. The default value isfifty (50).

• <wait_period> — The number of seconds to wait before re-enabling the service after it hasbeen disabled. The default interval is ten (10) seconds.

• instances = <number_of_connections> — Specifies the total number of connectionsallowed to a service. This directive accepts either an integer value or UNLIMITED.

• per_source = <number_of_connections> — Specifies the number of connections allowed toa service by each host. This directive accepts either an integer value or UNLIMITED.

• rlimit_as = <number[K|M]> — Specifies the amount of memory address space the servicecan occupy in kilobytes or megabytes. This directive accepts either an integer value or UNLIMITED.

• rlimit_cpu = <number_of_seconds> — Specifies the amount of time in seconds that aservice may occupy the CPU. This directive accepts either an integer value or UNLIMITED.

Usar estas directivas puede ayudar a prevenir cualquier servicio xinetd de abrumar el sistema,resultando en una denegación de servicio.

2.2.2. Asegurando PortmapEl servicio portmap es un demonio de asignación dinámica de puertos para servicios RPC como NISy NFS. Tiene mecanismos débiles de autenticación y tiene la habilidad de asignar un amplio rango depuertos para los servicios que controla. Por estas razones, es difícil de asegurar.

Page 57: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Asegurando NIS

47

NotaAsegurar portmap solo afecta a las implementaciones NFSv2 y NFSv3, ya que desdeNFSv4 ya no es requerido. Si usted planea implementar un servidor NFSv2 o NFSv3,entonces portmap es requerido, y la siguiente sección aplica.

Si corre servicios RPC, obedezca estas reglas básicas.

2.2.2.1. Proteja portmap con encapsuladores TCPEs importante usar encapsuladores TCP para limitar qué redes o equipos tienen acceso al servicioportmap dado que no tiene una forma propia de autenticación.

Además, use solamente direcciones IP cuando limite el acceso al servicio. Evite usar nombres deequipos, ya que pueden ser forjados por envenenamiento de DNS y otros métodos.

2.2.2.2. Proteja portmap con iptablesPara restringir aún más el acceso al servicio portmap, es una buena idea agregar reglas de iptablesal servidor y restringir el acceso a redes específicas.

Abajo hay dos ejemplos de comandos iptables. El primero permite conexiones TCP al puerto 111(usado por el servicio portmap) desde la red 192.168.0.0/24. El segundo permite conexiones TCP almismo puerto localmente. Esto es necesario para el servicio sgi_fam usado por Nautilus. Todos losdemás paquetes son ignorados.

iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 111 -j DROPiptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT

Para limitar el tráfico UDP de manera similar, use el siguiente comando.

iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 111 -j DROP

NotaRefer to Sección 2.8, “Cortafuegos” for more information about implementing firewalls withiptables commands.

2.2.3. Asegurando NISEl servicio de información de red (Network Information Service, NIS) es un servicio RPC, llamadoypserv, el cual es usado en conjunto con portmap y otros servicios relacionados para distribuirmapas de nombres de usuario, contraseñas y otros tipos de información sensible dentro de su propiodominio.

Un servidor NIS está compuesto por diversas aplicaciones. Entre ellas podemos encontrar:

• /usr/sbin/rpc.yppasswdd — También denominado servicio yppasswdd. Este demoniopermite que los usuarios modifiquen sus contraseñas NIS.

• /usr/sbin/rpc.ypxfrd — También denominado servicio ypxfrd. Este demonio es elresponsable de las transferencias de mapas NIS sobre la red.

Page 58: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

48

• /usr/sbin/yppush — Esta aplicación se encarga de distribuir las bases de datos NIS que hansido modificadas hacia diferentes servidores NIS.

• /usr/sbin/ypserv — Este es el demonio del servidor NIS.

De acuerdo a los estándares actuales, NIS está considerado como un método inseguro. No tienemecanismos de autenticación y toda la información que transmite por la red viaja sin ser encriptada,incluyendo los hashes de las contraseñas. Es por esto que hay que tomar todas las precaucionesposibles cuando se configure una red que utilice NIS. Esto se complica aún más por el hecho que laconfiguración establecida por defecto de NIS es en si misma insegura.

It is recommended that anyone planning to implement an NIS server first secure the portmap serviceas outlined in Sección 2.2.2, “Asegurando Portmap”, then address the following issues, such asnetwork planning.

2.2.3.1. Planeamiento cuidadoso de la redDebido a que NIS transmite sin encriptar información clave a través de la red, es importante que elservicio sea ejecutado detrás de un cortafuegos y sobre una porción de la red definida y consideradasegura. Existen riegos de intercepción cada vez que se transmite información NIS sobre una red queno es segura. Un cuidadoso diseño de la red puede ayudar a prevenir importantes intrusiones en laseguridad.

2.2.3.2. Utilización de nombres de dominio y de equipo NIS, de modosimilar a una contraseñaCualquier equipo dentro de un dominio NIS puede utilizar comandos para obtener información delservidor sin tener que autenticarse, siempre y cuando el usuario conozca tanto el nombre del equipodel servidor DNS y el nombre del dominio DNS.

Por ejemplo, si alguien conecta una laptop en la red, o si irrumpe en ella desde el exterior (y se lasingenia para obtener una dirección IP interna), los siguientes comandos muestran el mapa de /etc/passwd:

ypcat -d <NIS_domain> -h <DNS_hostname> passwd

Si el atacante es un usuario root, puede obtener el archivo /etc/shadow ingresando el siguientecomando:

ypcat -d <NIS_domain> -h <DNS_hostname> shadow

NotaSi se utiliza Kerberos, el archivo /etc/shadow no se encuentra almacenado dentro deun mapa NIS.

Para hacer más complicado a los atacantes el acceso a los mapas NIS, genere una cadena aleatoriapara el nombre del equipo DNS, como por ejemplo o7hfawtgmhwg.domain.com. De manerasimilar, genere aleatoriamente un nombre de dominio NIS distinto. Esto hace que para un atacantesea mucho más dificil ingresar en el servidor NIS.

Page 59: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Asegurando NIS

49

2.2.3.3. Editar el archivo /var/yp/securenetsSi el archivo /var/yp/securenets está vacío o no existe (como es el caso luego de una instalaciónpor defecto), NIS escucha a todos los puertos. Una de las primeras cosas a realizar es ingresarpares máscara de red/red (netmask/network) en el archivo de modo que ypserv solo responda a laspeticiones de una red adecuada.

A continuación se muestra una entrada de ejemplo del archivo /var/yp/securenets:

255.255.255.0 192.168.0.0

AdvertenciaNunca inicie un servidor NIS por vez primera sin haber antes creado el archivo /var/yp/securenets.

Esta técnica no ofrece protección contra ataques de simulación de identidad, pero al menos establecelímites sobre las redes en las que el servidor NIS está funcionando.

2.2.3.4. Asigne puertos estáticos y utilice reglas de iptablesA todos los servidores relacionados con NIS se les puede asignar un puerto específico, exceptorpc.yppasswdd — el demonio que permite a los usuarios modificar sus contraseñas de logueo.Asignar puertos a rpc.ypxfrd y ypserv, los restantes demonios de servidores NIS, permite lacreación de reglas de cortafuegos, y de esta manera poder proteger a los demonios de futurasintrusiones.

Para hacerlo, agregue las siguientes líneas en /etc/sysconfig/network:

YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835"

Las siguientes reglas iptables pueden ser utilizadas para fortalecer la red que el servidor estáescuchando con estos puertos:

iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 834 -j DROPiptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 835 -j DROP

Esto significa que el servidor solo permite conexiones a los puertos 834 y 835, si es que la peticiónproviene desde la red 192.168.0.0/24, y sin importar qué protocolo se esté utilizando.

NotaRefer to Sección 2.8, “Cortafuegos” for more information about implementing firewalls withiptables commands.

2.2.3.5. Use autenticación con KerberosUno de los problemas a ser considerados si se utiliza NIS para una autenticación, es que cada vezque un usuario ingresa en una máquina, se envía un hash del mapa /etc/shadow por la red. Si unintruso obtiene acceso a un dominio NIS y observa el tráfico en la red, puede recolectar los hashes

Page 60: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

50

de nombres de usuarios y contraseñas. Con el tiempo suficiente, un programa de descifrado decontraseñas puede adivinar aquellas que son débiles, y el atacante puede obtener acceso a unacuenta válida en esa red.

Since Kerberos uses secret-key cryptography, no password hashes are ever sent over the network,making the system far more secure. Refer to Sección 2.6, “Kerberos” for more information aboutKerberos.

2.2.4. Asegurando NFS

ImportanteThe version of NFS included in Fedora, NFSv4, no longer requires the portmap serviceas outlined in Sección 2.2.2, “Asegurando Portmap”. NFS traffic now utilizes TCP inall versions, rather than UDP, and requires it when using NFSv4. NFSv4 now includesKerberos user and group authentication, as part of the RPCSEC_GSS kernel module.Information on portmap is still included, since Fedora supports NFSv2 and NFSv3, bothof which utilize portmap.

2.2.4.1. Planeamiento cuidadoso de la redAhora que NFSv4 tiene la capacidad de enviar toda la información en la red encriptada utilizandoKerberos, es importante que el servicio sea configurado correctamente, si es que se encuentra detrásde un cortafuegos o en una red segmentada. Todavía NFSv3 envía los datos de manera no segura, yesto debería ser tendido en cuenta. Un diseño de redes que preste atención a todos estos aspectospuede prevenir fallas en la seguridad.

2.2.4.2. Cuidado con los errores de sintaxisEl servidor NFS determina qué sistemas de archivos exportar y hacia qué equipos hacerlo al consultarel archivo /etc/exports. Tenga cuidado de no agregar espacios extraños cuando edite estearchivo.

Por ejemplo, la siguiente línea en el archivo /etc/exports comparte el directorio /tmp/nfs/ con elequipo juan.ejemplo.com con permisos de lectura y escritura.

/tmp/nfs/ juan.ejemplo.com(rw)

Por otro lado, la siguiente línea en el archivo /etc/exports comparte el mismo directorio con elequipo juan.ejemplo.com, sólo con permisos de lectura, y además lo comparte con el mundo conpermisos de lectura y de escritura, debido a un simple espacio en blanco dejado luego del nombre delequipo.

/tmp/nfs/ juan.ejemplo.com (rw)

Es una buena costumbre la de confirmar cualquier configuración de elementos compartidos NFS,utilizar para ello el comando showmount y verificar qué es lo que está siendo compartido:

showmount -e <hostname>

Page 61: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Asegurando el servidor HTTP Apache

51

2.2.4.3. No utilice la opción no_root_squashPor defecto, al utilizarse para compartir elementos, NFS cambia el usuario root al usuarionfsnobody, una cuenta de usuario sin privilegios. Esto modifica la pertenencia de todos los archivoscreados por el usuario root, y se los otorga a nfsnobody, evitando de esta forma la carga deprogramas definidos con bit de tipo setuid.

Si se utiliza no_root_squash, los usuarios root remotos tienen la posibilidad de modificar cualquierarchivo en el sistema de archivos compartido, y dejar aplicaciones infectadas con troyanos para queotros usuarios las ejecuten sin saberlo.

2.2.4.4. Configuración del cortafuego de NFSLos puertos utilizados por NFS están dinámicamente asignados por rpcbind, y esto puede causarproblemas en el momento de crear reglas de cortafuegos. Para simplificar este proceso, utilice elarchivo /etc/sysconfig/nfs para especificar qué puertos deben ser utilizados:

• MOUNTD_PORT — puerto TCP y UDP para mountd (rpc.mountd)

• STATD_PORT — puerto TCP y UDP para status (rpc.statd)

• LOCKD_TCPPORT — puerto TCP para nlockmgr (rpc.lockd)

• LOCKD_UDPPORT — UDP port nlockmgr (rpc.lockd)

Los números de puerto especificados no deben ser utilizados por ningún otro servicio. Configure sucortafuegos para permitir los números de puerto especificados, del mismo modo que el puerto TCP yUDP 2049 (NFS).

Ejecute el comando rpcinfo -p sobre el servidor NFS para conocer qué programas RPC y quépuertos están siendo utilizados.

2.2.5. Asegurando el servidor HTTP ApacheEl servidor HTTP Apache es uno de los servicios más seguros y estables que son empaquetados conFedora. Una extensa variedad de opciones y técnicas están disponibles para asegurar el servidorHTTP Apache — demasiado numerosas para analizarlas en profundidad aquí. La sección siguienteexplica brevemente algunas buenas costumbres al ejecutar el servidor HTTP Apache.

Siempre verifique que funcione correctamente cualquier programa que tenga intención de utilizar en elsistema antes de ponerlo en producción. Además, asegúrese que solo el usuario root tenga permisosde escritura sobre cualquier directorio que contenga programas o CGIs. Para hacer esto, ejecute lossiguientes comandos como usuario root:

1. chown root <directory_name>

2. chmod 755 <directory_name>

Los administradores de sistemas deben ser cuidadosos al utilizar las siguientes opciones deconfiguración (definidas en /etc/httpd/conf/httpd.conf):

Page 62: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

52

FollowSymLinksEsta directiva se encuentra activa por defecto, de modo que tenga cuidado al crear enlacessimbólicos al documento raíz del servidor Web. Por ejemplo, es una mala idea la de adjudicarleun enlace simbólico a /.

IndexesEsta directiva está activa por defecto, pero puede no ser deseada. Elimínela si quiere evitar quelos visitantes puedan examinar los archivos del servidor.

UserDirLa directiva UserDir se encuentra deshabilitada por defecto, debido a que puede confirmar lapresencia de una cuenta de usuario en el sistema. Para permitir que se examinen directorios deusuario en el servidor, utilice las siguientes directivas:

UserDir enabledUserDir disabled root

Estas directivas activan la posibilidad de analizar directorios de usuario para todos los directoriosde usuarios que no sean /root/. Para añadir usuarios a la lista de las cuentas desactivadas,añada a esos usuarios en una lista separada por espacios en la línea UserDir disabled.

ImportanteNo elimine la directiva IncludesNoExec. Por defecto, el módulo Server-Side Includes(SSI) no puede ejecutar comandos. Se recomienda no cambiar estas configuraciones ano ser que sea absolutamente necesario, ya que potencialmente podría permitir que unatacante ejecute comandos en el sistema.

2.2.6. Asegurando FTPEl Protocolo de Transferencia de Archivos (FTP, por las iniciales en inglés de File Transfer Protocol),es un viejo protocolo TCP diseñado para transferir archivos sobre una red. Puesto que todas lastransacciones con el servidor no son encriptadas, incluyendo las autenticaciones de usuario, esconsiderado un protocolo no seguro y debería ser configurado cuidadosamente.

Fedora provee tres servidores FTP.

• gssftpd — Un demonio basado en xinetd con soporte para Kerberos que no transmiteinformaciones de autenticación sobre la red.

• Acelerador de Contenido de Red Hat (tux) — Un servidor web en el espacio del kernel concapacidades FTP.

• vsftpd — Una implementación orientada a la seguridad del servicio FTP.

Los siguientes lineamientos de seguridad sirven para configurar el servicio FTP vsftpd.

2.2.6.1. Mensaje de bienvenida de FTPAntes de enviar un nombre de usuario y una contraseña, todos los usuarios son recibidos con unaimagen de bienvenida. Por defecto, esta imagen incluye la información de la versión que se estáutilizando, información que sirve a los atacantes para poder identificar debilidades en el sistema.

Page 63: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Asegurando FTP

53

Para modificar la imagen de bienvenida para vsftpd, agregue la siguiente directiva en el archivo /etc/vsftpd/vsftpd.conf:

ftpd_banner=<insert_greeting_here>

Replace <insert_greeting_here> in the above directive with the text of the greeting message.

Para imágenes con varias líneas, lo mejor es utilizar un archivo de imagen. Para simplificar laadministración de múltiples imágenes, coloquelas a todas ellas en un nuevo directorio llamado /etc/banners/. En nuestro ejemplo, el archivo de imagen para conexiones FTP es /etc/banners/ftp.msg. A continuación se puede observar cómo puede llegar a lucir un archivo con esstascaracterísticas:

######### # Hola, cualquier tipo de actividad dentro de ftp.ejemplo.com es registrada. #########

NotaIt is not necessary to begin each line of the file with 220 as specified in Sección 2.2.1.1.1,“Encapsuladores TCP y pancartas de conexión”.

Para tener una referencia de esta imagen de bienvenida en vsftpd, añada la siguiente directiva en elarchivo /etc/vsftpd/vsftpd.conf:

banner_file=/etc/banners/ftp.msg

It also is possible to send additional banners to incoming connections using TCP Wrappers asdescribed in Sección 2.2.1.1.1, “Encapsuladores TCP y pancartas de conexión”.

2.2.6.2. Acceso anónimoLa presencia del directorio /var/ftp/ activa la cuenta anónima.

La forma más sencilla de crear este directorio es instalando el paquete vsftpd. Este paqueteestablece un árbol de directorios para usuarios anónimos y configura los permisos de manera tal queestos usuarios sólo puedan leer sus contenidos.

Por defecto, el usuario anónimo no puede escribir en ningún directorio.

AdvertenciaSi se habilita la posibilidad de acceso anónimo a un servidor FTP, tenga cuidado dedonde almacenar los datos importantes.

2.2.6.2.1. Subida anónimaPara permitir que los usuarios anónimos suban archivos, es recomendable la creación de undirectorio dentro de /var/ftp/pub/, con permisos de escritura solamente.

Para hacerlo, ingrese el siguiente comando:

mkdir /var/ftp/pub/subidas

Page 64: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

54

A continuación, modifique los permisos de modo que los usuarios anónimos no puedan conocer elcontenido del directorio:

chmod 730 /var/ftp/pub/subidas

Un listado de manera extendida del directorio, debería ser semejante a esto:

drwx-wx--- 2 root ftp 4096 Feb 13 20:05 subidas

AdvertenciaLos administradores que permiten que usuarios anónimos sean capaces de leer y deescribir sobre los directorios, a menudo se encuentran con que sus servidores se hanconvertido en repositorios de software robado.

Adicionalmente, bajo vsftpd, añada la siguiente línea en el archivo /etc/vsftpd/vsftpd.conf:

anon_upload_enable=YES

2.2.6.3. Cuentas de usuarioDebido a que FTP transmite para su autenticación nombres de usuario y contraseñas sin encriptarsesobre redes no seguras, es una buena idea la de negar a los usuarios del sistema el acceso alservidor desde sus cuentas de usuario.

Para deshabilitar todas las cuentas de usuario en vsftpd, agregue la siguiente directiva en /etc/vsftpd/vsftpd.conf:

local_enable=NO

2.2.6.3.1. Restringiendo cuentas de usuarioTo disable FTP access for specific accounts or specific groups of accounts, such as the root user andthose with sudo privileges, the easiest way is to use a PAM list file as described in Sección 2.1.4.2.4,“Deshabilitando root usando PAM”. The PAM configuration file for vsftpd is /etc/pam.d/vsftpd.

También es posible deshabilitar cuentas de usuario directamente dentro de cada servicio.

Para deshabilitar cuentas de usuario específicas en vsftpd, agregue el nombre del usuario en /etc/vsftpd.ftpusers

2.2.6.4. Utilice encapsuladores TCP para el control de accesoUse TCP Wrappers to control access to either FTP daemon as outlined in Sección 2.2.1.1, “Mejorandola seguridad utilizando encapsuladores TCP”.

2.2.7. Asegurando SendmailSendmail es un agente de transferencia de correos (MTA, por las iniciales en inglés de Mail TransferAgent), que utiliza protocolo simple de transferencia de correo (SMTP, Simple Mail Transfer Protocol)

Page 65: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Asegurando Sendmail

55

para enviar mensajes electrónicos entre otros MTAs, o hacia otros clientes de correo, o agentes deentrega. Si bien muchos MTAs son capaces de encriptar el tráfico entre uno y otro, algunos no lohacen, de modo que enviar correos electrónicos en una red pública es considerado una forma decomunicación no segura.

Es recomendable que todos aquellos que estén planeando implementar un servidor Sendmail, tenganen cuenta los siguientes inconvenientes.

2.2.7.1. Limitar un ataque de denegación de servicioDebido a la naturaleza del correo electrónico, un atacante determinado puede inundar de manerarelativamente sencilla el servidor con correos, y provocar la denegación del servicio. Al establecerlímites a las siguientes directivas en /etc/mail/sendmail.mc, la efectividad de ataques de esetipo se ve disminuida.

• confCONNECTION_RATE_THROTTLE — El número de conexiones que el servidor puede recibirpor segundo. Por defecto, Sendmail no limita el número de conexiones. Si se alcanza un límitepreviamente establecido, las siguientes conexiones son demoradas.

• confMAX_DAEMON_CHILDREN — El máximo número de procesos hijo que pueden ser generadospor el servidor. Por defecto, Sedmail no atribuye un límite a la cantidad de estos procesos. Si sealcanza un límite previamente establecido, las siguientes conexiones serán demoradas.

• confMIN_FREE_BLOCKS — El número mínimo de bloques libres que deben estar disponibles paraque el servidor acepte correos. La cantidad establecida por defecto es de 100 bloques.

• confMAX_HEADERS_LENGTH — El tamaño máximo aceptable (en bytes) para un encabezado demensaje.

• confMAX_MESSAGE_SIZE — El tamaño máximo aceptable (en bytes) para un solo mensaje.

2.2.7.2. NFS y SendmailNunca coloque el directorio mail spool, /var/spool/mail/, en un volumen NFS compartido.

Debido a que NFSv2 y NFSv3 no tienen control sobre usuarios ni IDs de grupos, dos o más usuariospueden tener el mismo UID, y recibir y leer cada uno correos electrónicos del otro.

NotaCon NFSv4 utilizando Kerberos este no es el caso, ya que el módulo del kernelSECRPC_GSS no utiliza autenticaciones basadas en UID. Sin embargo, todavía hoy esconsiderada una buena costumbre la de no colocar el directorio mail spool en volúmenesNFS compartidos.

2.2.7.3. Usuarios de sólo correoPara ayudar a prevenir que explote a los usuarios locales para usar el servidor Sendmail, lo mejor esque solamente ingresen al servidor Sendmail usando un cliente de correos electrónicos. Las cuentasde consola en el servidor de correo no deberían ser permitidas y todos los usuarios de consola enel archivo /etc/passwd deberían definirse como /sbin/nologin (con la posible excepción delusuario root).

Page 66: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

56

2.2.8. Verificar qué puertos están abiertosLuego de configurar los servicios de red, es importante prestarle atención a los puertos queactualmente están escuchando en las interfases de red del sistema. Cualquier puerto abierto puedeser la evidencia de una intrusión.

Existen dos maneras fundamentales para listar los puertos que están abiertos en la red. La menosconfiable consiste en consultar los paquetes en la red utilizando comandos como netstat -ano lsof -i. Este método es menos confiable debido a que estos programas no se conectan a lamáquina desde la red, sino que verifican qué es lo que se está ejecutando en el sistema. Por estarazón, estas aplicaciones frecuentemente son reemplazadas por atacantes. Alguien que quieraocultar el rastro que está dejando al ingresar, o al abrir sin autorización los puertos de un sistema,intentará reemplazar netstat y lsof, con sus versiones personales y modificadas.

Una forma más confiable de verificar los puertos que están escuchando en una red, es mediante lautilización de un escáner de puertos como nmap.

El siguiente comando ejecutado desde una terminal, especifica los puertos que se encuentranabiertos a conexiones TCP desde la red:

nmap -sT -O localhost

La salida de este comando es la siguiente:

Starting Nmap 4.68 ( http://nmap.org ) at 2009-03-06 12:08 ESTInteresting ports on localhost.localdomain (127.0.0.1):Not shown: 1711 closed portsPORT STATE SERVICE22/tcp open ssh 25/tcp open smtp111/tcp open rpcbind113/tcp open auth631/tcp open ipp834/tcp open unknown2601/tcp open zebra32774/tcp open sometimes-rpc11Device type: general purposeRunning: Linux 2.6.XOS details: Linux 2.6.17 - 2.6.24Uptime: 4.122 days (since Mon Mar 2 09:12:31 2009)Network Distance: 0 hopsOS detection performed. Please report any incorrect results at http://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 1.420 seconds

Esta salida muestra que el sistema está ejecutando portmap debido a la presencia del serviciosunrpc. Sin embargo, existe además un servicio misterioso en el puerto 834. Para verificar si elpuerto está asociado con la lista oficial de servicios conocidos, ingrese:

cat /etc/services | grep 834

Este comando no devuelve ninguna información. Lo que está indicando es que si bien el puerto seencuentra dentro del rango reservado (es decir, entre 0 y 1023), y que no necesita privilegios deusuario root para abrirse, sin embargo no está asociado con ningún servicio conocido.

A continuación, verifique si existe información acerca del puerto utilizando netstat o lsof. Paraverificar el puerto 834 utilizando netstat, ingrese el siguiente comando:

Page 67: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Identificación única (SSO, por las iniciales en inglés de Single Sign-on)

57

netstat -anp | grep 834

El comando devuelve la siguiente salida:

tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind

La presencia de un puerto abierto en netstat es un reaseguro, ya que si un atacante ha abiertoun puerto en un sistema en el que no está autorizado a ingresar, seguramente no permitirá que seadetectada su presencia mediante este comando. Además, la opción [p] revela el proceso ID (PID)del servicio que ha abierto el puerto. En este caso, el puerto abierto pertenece a ypbind (NIS), quees un servicio RPC administrado conjuntamente con el servicio portmap.

El comando lsof muestra información similar a netstat, ya que también es capaz de enlazarpuertos con servicios:

lsof -i | grep 834

La sección que nos interesa de la salida de este comando es la siguiente:

ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN)ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN)ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN)ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)

Estas herramientas nos dicen mucho acerca del estado en que se encuentran los servicios enejecución de una máquina. Estas herramientas son flexibles y pueden ofrecer una importantecantidad de información acerca de los servicios de red y sus configuraciones. Para obtener másinformacuión, vea las páginas man de lsof, netstat, nmap, y services.

2.3. Identificación única (SSO, por las iniciales en inglés deSingle Sign-on)

2.3.1. IntroducciónLa funcionalidad de SSO de Fedora reduce el número de veces que los usuarios de escritorio deFedora deben ingresar sus contraseñas. Varias de las aplicaciones más importantes utilizan losmismos mecanismos subyacentes de autenticación y autorización, de modo que los usuarios puedenidentificarse desde la pantalla de registro en Fedora y luego no necesitar reingresar sus contraseñas.Estas aplicaciones se describen más abajo.

Además, los usuarios pueden registrarse en sus máquinas aún cuando no exista una red(modo desconexión), o cuando la conectividad no sea confiable, como por ejemplo, los accesosinalámbricos. En este último caso, los servicios serán notablemente disminuidos.

2.3.1.1. Aplicaciones soportadasLas siguientes aplicaciones están actualmente soportadas por el esquema de registro unificado enFedora:

• Entrada

• Salvapantallas

Page 68: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

58

• Firefox y Thunderbird

2.3.1.2. Mecanismos de autenticación soportadosFedora actualmente tiene soporte para los siguientes mecanismos de autenticación:

• Ingreso de nombre/contraseña Kerberos

• ingreso por Tarjeta Inteligente/PIN

2.3.1.3. Tarjetas Inteligentes soportadasFedora ha sido probada con una tarjeta y un lector Cyberflex e-gate, pero cualquier tarjeta quecumpla tanto con las especificaciones de tarjetas Java 2.1.1, y las especificaciones Global Platform2.0.1, debería poder funcionar correctamente, del mismo modo que cualquier lector que seasoportado por PCSC-lite.

Fedora también ha sido probada con tarjetas de acceso común (CAC, por las iniciales en inglés deCommon Access Cards). El lector soportado para CAC es el lector USB SCM SCR 331.

En cuanto a Fedora 5.2, ya tienen soporte las tarjetas inteligentes Gemalto (Cyberflex Access 64kv2, standard con valor DER SHA1 configurado del mismo modo que en PKCSI v2.1). Estas tarjetasahora utilizan lectores compatibles con dispositivos de interfases de tarjetas (CCID, por las inicialesen inglés de Smart Card Interface Devices) de tipo Chip/Smart.

2.3.1.4. Ventajas de SSO de FedoraNumerosos mecanismos de seguridad existentes hoy en día utilizan una gran cantidad de protocolosy credenciales. Algunos ejemplos de ellos son SSL, SSH, IPsec y Kerberos. La idea de SSO enFedora es la de unificar estos esquemas para dar soporte a los requerimientos mencionadosrecién. Esto no significa que haya que reemplazar Kerberos con certificados X.509x3, sino que seunifican para poder reducir el peso que tienen que soportar tanto los usuarios del sistema, como susadministradores.

Para cumplir este objetivo, Fedora:

• Ofrece una sola instancia compartida de las bibliotecas de encriptación NSS en cada sistemaoperativo.

• Incluye el Cliente de Seguridad Empresarial (ESC en inglés) del Sistema de Certificado dentrodel sistema operativo base. La aplicación ESC se encarga de controlar los eventos relacionadoscon la inserción de tarjetas inteligentes. Si detecta que el usuario ha insertado una tarjeta quefue diseñada para ser usada con el Certificado del Sistema del servidor de producto de Fedora,muestra una interfaz de usuario con instrucciones para que la tarjeta en cuestión pueda serenrolada.

• Unifica Kerberos y NSS de modo que los usuarios que se registren en el sistema operativoutilizando una tarjeta inteligente, también puedan obtener credenciales de Kerberos (lo que lespermite registrarse en los servidores, etc.)

2.3.2. Empezar a utilizar su nueva tarjeta inteligenteAntes de poder utilizar una tarjeta inteligente en sus sistema, y poder aprovechar las grandes ventajasen las opciones de seguridad que esta tecnología ofrece, necesita realizar en un determinado ordenalgunas instalaciones mínimas. Más abajo se explica en qué consisten.

Page 69: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Empezar a utilizar su nueva tarjeta inteligente

59

NotaEsta sección ofrece una explicación general para poder empezar a utilizar su tarjetainteligente. Información más específica puede encontrarse en la Guía del Cliente delCliente de Seguridad Empresarial del Sistema de Certificado de Red Hat.

1. Ingrese con su nombre de usuario y contraseña Kerberos.

2. Asegúrese de tener instalado el paquete nss-tools.

3. Descargue e instale sus certificados corporativos específicos de usuario root. Utilice el siguientecomando para instalar el certificado root CA:

certutil -A -d /etc/pki/nssdb -n "root ca cert" -t "CT,C,C" -i ./ca_cert_in_base64_format.crt

4. Verifique que tenga los siguientes RPMs instalados en su sistema: esc, pam_pkcs11, coolkey, ifd-egate, ccid, gdm, authconfig, and authconfig-gtk.

5. Habilite el soporte de ingreso por Tarjeta Inteligente.

a. On the Gnome Title Bar, select System->Administration->Authentication.

b. Si es necesario, ingrese la contraseña de usuario root de su equipo.

c. En el diálogo de configuración de autenticación, haga clic sobre la pestaña Autenticación.

d. Tilde la casilla Activar soporte para tarjeta inteligente.

e. Haga clic en el botón Configurar tarjeta inteligente... para ver el diálogo de configuraciónde Smartcard, e indique las opciones requeridas:

• Requiere tarjeta inteligente para ingresar — Destilde esta casilla. Luego de haberseingresado exitosamente en su sistema con la tarjeta inteligente puede elegir esta opciónpara prevenir que otros usuarios ingresen a él sin una tarjeta inteligente.

• Acción de Retiro de Tarjeta — Esto controla qué es lo que sucede cuando usted retire latarjeta luego de haberse registrado. Las opciones disponibles son:

• Bloquear — Si se retira la tarjeta se bloquea la pantalla X.

• Ignorar — No sucede nada cuando se retira la tarjeta.

6. Si necesita activar el Certificado de Estado de Protocolo Online (OCSP, por las siglas en inglésde Online Certificate Status Protocol), abra el archivo /etc/pam_pkcs11/pam_pkcs11.conf yubique la siguiente línea:

enable_ocsp = false;

Modifique su valor a "true", del siguiente modo:

enable_ocsp = true;

7. Enrole su tarjeta inteligente.

Page 70: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

60

8. Si además está utilizando una tarjeta CAC, tendrá que realizar los siguientes pasos:

a. Conviértase en usuario root y genere un archivo llamado /etc/pam_pkcs11/cn_map.

b. Añada la siguiente entrada al archivo cn_map:

MY.CAC_CN.123454 -> myloginid

donde MY.CAC_CN.123454 es el nombre común en su CAC y myloginid es su ID delogueo UNIX.

9. Salida

2.3.2.1. Solución de problemasSi se encuentra con algún inconveniente para lograr que su tarjeta inteligente funcione, intente utilizarel siguiente comando para ubicar el origen del problema.

pklogin_finder debug

Si ejecuta la herramienta pklogin_finder en modo de depuración, mientras una tarjeta inteligenteregistrada se encuentre conectada, intentará mostrar información acerca de los certificados válidos, ysi tiene éxito, intentará mapear un ID de registro desde los certificados que existan en la tarjeta.

2.3.3. Como funciona la inscripción de las tarjetas inteligentes.Las tarjetas inteligentes se dice que son inscriptas cuando han recibido un certificado adecuadoidentificado con un Certificado de Autoridad válido (CA, por las iniciales en inglés de CertificateAuthority). Esto implica una serie de pasos, que se describen a continuación:

1. El usuario inserta su tarjeta inteligente en el lector de tarjetas de su estación de trabajo. Esteevento es reconocido por el Cliente de Seguridad Corporativo (ESC, por las iniciales en inglés deEntreprise Security Client).

2. La página de inscripción se muestra en en escritorio del usuario. El usuario completa los detallessolicitados y entonces recién su sistema se conecta con el Sistema de Procesamiento de Fichas(TPS, por las iniciales en inglés de Token Processing System) y con el CA.

3. El TPS inscribe a la tarjeta inteligente utilizando un certificado firmado por CA.

Page 71: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Cómo funciona el ingreso con tarjeta inteligente

61

Figura 2.4. Como funciona la inscripción de las tarjetas inteligentes.

2.3.4. Cómo funciona el ingreso con tarjeta inteligenteEn la siguiente sección se ofrece una breve descripción general del proceso de registro utilizando unatarjeta inteligente.

1. Cuando el usuario inserta su tarjeta inteligente en el lector de tarjetas, este evento es reconocidopor la herramienta PAM, quien solicita al usuario su PIN.

2. El sistema entonces intenta encontrar los certificados vigentes del usuario y verifica su validez. Elcertificado entonces es mapeado en el UID del usuario.

3. Esto es validado en el KDC (centro de distribución de claves de Kerberos) y el registro esautorizado.

Page 72: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

62

Figura 2.5. Cómo funciona el ingreso con tarjeta inteligente

NotaNo puede registrarse con una tarjeta que no haya sido inscripta, ni siquiera aunque hayasido formateada. Necesita registrarse con una tarjeta formateada e inscripta, o no utilizarninguna que no haya sido inscripta.

Refer to Sección 2.6, “Kerberos” and Sección 2.4, “Módulos de autenticación conectables (PAM, porlas iniciales en inglés de Pluggable Authentication Modules)” for more information on Kerberos andPAM.

2.3.5. Configurar Firefox para la utilización de Kerberos como SSOPuede configurar Firefox para utilizar Kerberos para la identificación única SSO. Para que estaherramienta pueda funcionar correctamente, necesita configurar su navegador web para que puedaenviar sus credenciales Kerberos al KDC adecuado. En la siguiente sección se describen lasmodificaciones a realizar en la configuración, y otros requerimientos necesarios para poder utilizarcorrectamente esta funcionalidad.

1. En la barra de direcciones de Firefox, escriba about:config para ver una lista actualizada delas opciones de configuración disponibles.

2. En el campo Filtro, ingrese negotiate para restringir la lista de opciones.

Page 73: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configurar Firefox para la utilización de Kerberos como SSO

63

3. Haga un doble clic en la entrada network.negotiate-auth.trusted-uris para mostrar el cuadro dediálogo Ingrese valor de cadena.

4. Ingrese el nombre del dominio en el cual desea autenticarse, por ejemplo, .ejemplo.com.

5. Repita el procedimiento recién descrito para la entrada network.negotiate-auth.delegation-uris,utilizando el mismo dominio.

NotaPuede dejar este valor vacío, ya que permite a Kerberos enviar tickets, lo que no esnecesario.

Si no puede ver estas dos opciones de configuración listadas, tal vez la versión deFirefox que está utilizando sea demasiado antigua para soportar negociados deautenticación, y debería considerar actualizarla.

Figura 2.6. Configurar Firefox para SSO con Kerberos

Necesita asegurarse de poseer tickets Kerberos. En una terminal, ingrese kinit para obtenerlos.Para mostrar la lista de los tickets disponibles, ingrese klist. A continuación se muestra un ejemplodel resultado de estos comandos:

[user@host ~] $ kinitPassword for [email protected]:

[user@host ~] $ klistTicket cache: FILE:/tmp/krb5cc_10920Default principal: [email protected]

Valid starting Expires Service principal10/26/06 23:47:54 10/27/06 09:47:54 krbtgt/[email protected] renew until 10/26/06 23:47:54

Kerberos 4 ticket cache: /tmp/tkt10920klist: You have no tickets cached

Page 74: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

64

2.3.5.1. Solución de problemasSi ha seguido las etapas de configuración recién indicadas, y la negociación de la autenticaciónno funciona, puede activar la posibilidad de obtener información más detallada del proceso deautenticación. Esto podría ayudarle a encontrar la causa del problema. Para obtener más detalles delproceso de autenticación, utilice el siguiente procedimiento:

1. Cerrar todas las instancias de Firefox.

2. Abra una terminal, e ingrese los siguientes comandos:

export NSPR_LOG_MODULES=negotiateauth:5export NSPR_LOG_FILE=/tmp/moz.log

3. Reinicie Firefox desde esa terminal, y visite el sitio web al que no podía autenticarseanteriormente. La información será registrada en /tmp/moz.log, y podría darle alguna pistahacerca del problema. Por ejemplo:

-1208550944[90039d0]: entering nsNegotiateAuth::GetNextToken()-1208550944[90039d0]: gss_init_sec_context() failed: Miscellaneous failureNo credentials cache found

Esto significa que usted no tiene tickets Kerberos, y que necesita ejecutar el comando kinit.

Si puede ejecutar kinit exitosamente desde su máquina pero no puede autenticarse, debería veralgo similar a lo siguiente en el archivo log:

-1208994096[8d683d8]: entering nsAuthGSSAPI::GetNextToken()-1208994096[8d683d8]: gss_init_sec_context() failed: Miscellaneous failureServer not found in Kerberos database

Generalmente esto significa que existe un problema de configuración de Kerberos. Asegúresede tener las entradas correctas en la sección [domain_realm] del archivo /etc/krb5.conf. Porejemplo:

.example.com = EXAMPLE.COMexample.com = EXAMPLE.COM

Si no aparece nada en el archivo de registro, es posible que usted se encuentre detrás de un proxy,y que ese proxy esté eliminando los encabezados HTTP necesarios para negociar la autenticación.Una posible solución a esto es intentar conectarse al servidor utilizando HTTPS, que permite a laspeticiones atravesar el proxy sin modificarlas. Luego proceda a depurar utilizando el archivo deregistro, como se ha explicado antes.

2.4. Módulos de autenticación conectables (PAM, por lasiniciales en inglés de Pluggable Authentication Modules)Los programas que permiten el acceso del usuario a un sistema usan la autenticación para verificar laidentidad de cada uno (es decir, para establecer que el usuario es quien dice ser).

Históricamente, cada programa tenía su propia forma de autenticar los usuarios. En Fedora, muchosprogramas se configuran para usar el mecanismo de autenticación centralizado llamado Módulos deAutenticación Conectables (PAM).

Page 75: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Ventajas de PAM

65

PAM usa una arquitectura modular, con complementos, que le da al administrador del sistema unbuen grado de flexibilidad en la configuración de las políticas de autenticación para el sistema.

In most situations, the default PAM configuration file for a PAM-aware application is sufficient.Sometimes, however, it is necessary to edit a PAM configuration file. Because misconfiguration ofPAM can compromise system security, it is important to understand the structure of these files beforemaking any modifications. Refer to Sección 2.4.3, “Formato del archivo de configuración de PAM” formore information.

2.4.1. Ventajas de PAMPAM ofrece las siguientes ventajas;

• un esquema de autenticación común que se puede usar en una amplia variedad de aplicaciones.

• flexibilidad significativa y control sobre la autenticación para administradores del sistema ydesarrolladores de aplicaciones.

• una única biblioteca bien documentada que permite a los desarrolladores escribir programas sintener que crear sus propios esquemas de autenticación.

2.4.2. Archivos de configuración de PAMEl directorio /etc/pam.d/ contiene los archivos de configuración de PAM para cada aplicación queutilice PAM. En versiones anteriores de PAM, se usaba el archivo /etc/pam.conf, pero este archivose dejado de usar y sólo se utilizará si el directorio /etc/pam.d/ no existe.

2.4.2.1. Archivos del servicio PAMCada aplicación con capacidades PAM o servicio tiene un archivo en el directorio /etc/pam.d/.Cada archivo en este directorio tiene el mismo nombre del servicio al que controla el acceso.

El programa que usa PAM es responsable por definir su nombre de servicio e instalar su propioarchivo de configuración PAM en el directorio /etc/pam.d/. Por ejemplo, el programa login definesu nombre de servicio como login e instala el archivo de configuración PAM /etc/pam.d/login.

2.4.3. Formato del archivo de configuración de PAMCada archivo de configuración PAM contiene un grupo de directivas formateadas como sigue:

<module interface> <control flag> <module name> <module arguments>

Cada uno de estos elementos se explica en las secciones siguientes.

2.4.3.1. Interfaz del MóduloHay disponibles cuatro tipos de interfases de módulos PAM. Cada uno corresponde a distintosaspectos del proceso de autorización:

• auth — Esta interfaz de módulo autentica el uso. Por ejemplo, pide y verifica la validez de unacontraseña. Los módulos con esta interfaz también pueden poner credenciales, como membresíasde grupo o tickets Kerberos.

Page 76: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

66

• account — Esta interfaz de módulo verifica que el acceso esté permitido. Por ejemplo, puedechequear si una cuenta a vencido o si un usuario puede ingresar en una hora particular del día.

• password — Esta interfaz de módulo se usa para cambiar contraseñas del usuario.

• session — Esta interfaz de módulo configura y administra sesiones del usuario. Los módulos conesta interfaz pueden también permitir tareas adicionales que necesitan permitir accesos, tales comoel montaje del directorio de inicio del usuario y poner disponible la casilla de correo del usuario.

NotaUn módulo individual puede proveer cualquiera o todas las interfases de módulo. Porejemplo pam_unix.so provee las cuatro interfaces de módulo.

En un archivo de configuración PAM, la interfaz de módulo es el primer campo definido. Por ejemplo,una línea típica en una configuración puede verse como sigue:

auth required pam_unix.so

Esto instruye a PAM a que use la interfase auth del módulo pam_unix.so.

2.4.3.1.1. Interfases de módulos apilablesModule interface directives can be stacked, or placed upon one another, so that multiple modules areused together for one purpose. If a module's control flag uses the "sufficient" or "requisite" value (referto Sección 2.4.3.2, “Bandera de control” for more information on these flags), then the order in whichthe modules are listed is important to the authentication process.

El apilado hace fácil para un administrador pedir que se den ciertas condiciones específicas antesde permitir al usuario autenticar. Por ejemplo, el comando reboot normalmente usa varios módulosapilados, como se ve en su archivo de configuración PAM:

[root@MyServer ~]# cat /etc/pam.d/reboot#%PAM-1.0auth sufficient pam_rootok.soauth required pam_console.so#auth include system-authaccount required pam_permit.so

• La primera línea es un comentario y no se procesa.

• auth sufficient pam_rootok.so — Esta línea usa el módulo pam_rootok.so paraverificaar si el usuario actual es root, confirmandoo que su UID sea 0. Si esto tiene éxito, no seconsulta ningún otro módulo y el comando se ejecuta. Si esto falla, se consulta el módulo siguiente.

• auth required pam_console.so — Esta línea utiliza el módulo pam_console.sopara intentar autenticar al usuario. Si este usuario ya se encuentra dentro de la consola,pam_console.so verifica si dentro del directorio /etc/security/console.apps/ hay unarchivo con el mismo nombre que el del servicio (reboot). Si existe ese archivo, la autenticación esexistosa y el control es pasado al siguiente módulo.

• #auth include system-auth — Esta línea es comentada y no se procesa.

Page 77: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Formato del archivo de configuración de PAM

67

• account required pam_permit.so — Esta línea usa el módulo pam_permit.so parapermitir al usuario root o cualquier otro que haya ingresado en la consola reiniciar el sistema.

2.4.3.2. Bandera de controlTodos los módulos PAM generan un resultado de éxito o fracaso cuando son llamados. Las banderasde control le dicen a PAM qué hacer con el resultado. Los módulos se pueden apilar en un ordenparticular, y las banderas de control determinan cuán importante es el éxito o el fracaso de un móduloparticular para el objetivo general de autenticación del usuario con el servicio.

Hay cuatro banderas de control predefinidas:

• required — El resultado del módulo debe ser exitoso para que pueda continuar la autenticación.Si la prueba falla en este punto, el usuario no se notifica hasta que se completan con los resultadosde todas las pruebas de los módulos que referencian a esa interfaz.

• requisite — El resultado del módulo debe ser exitoso para que continúe la autenticación. Sinembargo, si una prueba falla en este punto, el usuario se notifica inmediatamente con un mensajeque muestra el primer fallo del módulo required o requisite.

• sufficient — El resultado del módulo es ignorado si falla. Sin embargo, si el resultado deun módulo marcado con bandera sufficient tiene éxito y no hay módulos previos marcadoscon required que hayan fallado, entonces no se necesitan otros resultados y el usuario esautenticado con el servicio.

• optional — El resultado del módulo se ignora. Un módulo marcado como optional sólo sevuelve necesario para una autenticación exitosa cuando no hay otros módulos referenciados en lainterfaz.

ImportanteEl orden en el que los módulos required se llaman no es crítico. Sólo las banderassufficient y requisite hacen que el orden se haga importante.

Existe disponible ára PAM una nueva sintaxis de bandera de control, que permite un control máspreciso.

The pam.d man page, and the PAM documentation, located in the /usr/share/doc/pam-<version-number>/ directory, where <version-number> is the version number for PAM onyour system, describe this newer syntax in detail.

2.4.3.3. Nombre de móduloEl nombre del módulo ofrece a PAM el nombre del módulo conectable que contiene la interfaz delmódulo especificada. En versiones anteriores de Fedora la dirección completa al módulo era provistaen el archivo de configuración de PAM. Sin embargo, desde la aparición de los sistemas multilib, quealmacenan modulos PAM de 64-bit en el directorio /lib64/security/, el nombre del directorio esomitido dado que la aplicación está enlazada con la versión correcta de libpam, que puede encontrarla versión correcta del módulo.

Page 78: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

68

2.4.3.4. Argumentos del móduloPara algunos módulos, PAM utiliza argumentos para pasar información a un módulo conectabledurante la autenticación.

Por ejemplo, el módulo pam_userdb.so utiliza información almacenada en un archivo de base dedatos Berkeley para autenticar al usuario. Berkeley es una base de datos de código abierto que seencuentra en muchas otras aplicaciones. El módulo toma un argumento db de modo que Berkeleysepa qué base de datos utilizar para el servicio solicitado.

The following is a typical pam_userdb.so line in a PAM configuration. The <path-to-file> is thefull path to the Berkeley DB database file:

auth required pam_userdb.so db=<path-to-file>

Los argumentos inválidos generalmente son ignorados y de esta manera no afectan ni el éxito ni elfracaso del módulo PAM. Algunos módulos, sin embargo, pueden fracasar con argumentos inválidos.La mayoría de los módulos reportan sus errores en el archivo /var/log/secure.

2.4.4. Ejemplos de archivos de configuración de PAMLa siguiente es una muestra del archivo de configuración PAM de una aplicación:

#%PAM-1.0auth required pam_securetty.soauth required pam_unix.so nullokauth required pam_nologin.soaccount required pam_unix.sopassword required pam_cracklib.so retry=3password required pam_unix.so shadow nullok use_authtoksession required pam_unix.so

• La primera línea es un comentario, indicado por el numeral (#) al comienzo de la línea.

• Las líneas 2 a la 4 apila tres módulos para la autenticación de ingreso.

auth required pam_securetty.so — Este módulo asegura que si el usuario intentaingresar como root, el tty donde el usuario está ingresando debe estar listado en el archivo /etc/securetty, si ese archivo existe.

Si el tty no está listado en el archivo, cualquier intento de loguearse como usuario root será erróneocon el siguiente mensaje: Login incorrect.

auth required pam_unix.so nullok — Este módulo pide una contraseña al usuario, queluego confirma utilizando la información almacenada en /etc/passwd, y /etc/shadow, si es queexiste.

• El argumento nullok le indica al módulo pam_unix.so que permita el ingreso de unacontraseña vacía.

• auth required pam_nologin.so — Este es el último momento de la autenticación. Confirmaque exista y en qué lugar, el archivo /etc/nologin. Si existe, pero el usuario no es root, laautenticación falla.

Page 79: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Creación de los módulos PAM

69

NotaEn este ejemplo, los tres módulos auth se encuentran verificados, aún si falló el primermódulo auth. Esto evita que los usuarios conozcan el momento exacto en que suautenticación falló. En manos de un atacante, el conocimiento de ese dato podríapermitirle deducir más fácilmente cómo vulnerar el sistema.

• account required pam_unix.so — Este módulo realiza cualquier tipo de verificación decuenta que sea necesario. Por ejemplo, si se ha activado el enmascaramiento de contraseñas, lainterfaz de la cuenta del módulo pam_unix.so verifica que la cuenta no haya expirado, o que elusuario no haya modificado la contraseña dentro del período permitido.

• password required pam_cracklib.so retry=3 — Si una contraseña ha expirado, elcomponente contraseña del módulo pam_cracklib.so solicita una nueva. En seguida confirmaque la nueva contraseña pueda o no ser fácilmente revelada por un programa de obtención decontraseñas basado en diccionarios.

• El argumento retry=3 indica que si esta prueba falla la primera vez, el usuario tiene dosoportunidades más para crear una contraseña más poderosa.

• password required pam_unix.so shadow nullok use_authtok — Esta línea indica quesi el programa modifica la contraseña del usuario, debería utilizar para ello la interfaz password delmódulo pam_unix.so.

• El argumento shadow le indica al módulo la creación de contraseñas ocultas cada vez queactualice la contraseña del usuario.

• El argumento nullok le indica al módulo que le permita al usuario modificar su contraseñadesde una contraseña en blanco. De lo contrario, una contraseña vacía será tratada como unbloqueo de cuenta.

• El argumento final de esta línea, use_authtok, ofrece un buen ejemplo de la importancia quetiene el orden en que se "apilen" los modulos PAM. Este argumento le indica al módulo que no lesolicite al usuario una nueva contraseña, y que en su lugar acepte cualquier contraseña que hayasido almacenada por un módulo anterior. De esta manera, todas las nuevas contraseñas debenpasar la prueba de pam_cracklib.so para confirmar que sean seguras antes de ser aceptadas

• session required pam_unix.so — La línea final le indica a la interfaz de sesión del módulopam_unix.so que administre la sesión. Este módulo registra el nombre de usuario y el tipo deservicio en /var/log/secure al comienzo y al final de cada sesión. Este módulo puede sersuplementado si se lo "apila" con otros módulos de sesión y poder así agregarle funcionalidades.

2.4.5. Creación de los módulos PAMPuede crear o añadir en cualquier momento nuevos módulos PAM, para utilizarlos con cualquieraplicación con tengan este soporte.

Por ejemplo, un desarrollador puede crear un método para generar contraseñas que sean utilizadassólo una vez, y escribir un módulo PAM que pueda soportarlo. Los programas que tengan soportepara PAM podrán utilizar inmediatamente este módulo, y el método de contraseña, sin por ello tenerque ser recompilados o modificados en alguna manera.

Page 80: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

70

Esto permite a los desarrolladores y a los administradores de sistema mezclar, y al mismotiempo verificar, diferentes métodos de autenticación para diferentes programas sin necesidad derecompilarlos.

Documentation on writing modules is included in the /usr/share/doc/pam-<version-number>/directory, where <version-number> is the version number for PAM on your system.

2.4.6. PAM y el cacheo de la credencial administrativaUna cantidad de herramientas administrativas gráficas en Fedora le ofrecen a los usuarios un elevadogrado de privilegio, durante un período de tiempo de hasta cinco minutos, utilizando el módulopam_timestamp.so. Es importante entender como funciona este mecanismo, ya que si algúnusuario abandona la terminal mientras continue vigente pam_timestamp.so, dejará a ese equipolibre para ser manipulado por quienquiera que tenga acceso físico a la consola.

En el esquema del registro del tiempo de PAM, cuando es iniciada la aplicación administrativagráfica, solicita al usuario la contraseña de root. Cuando el usuario ha sido autenticado, el módulopam_timestamp.so crea un archivo de registro de tiempo. Por defecto, es creado en el directorio/var/run/sudo/. Si el archivo ya existe, los programas administrativos gráficos no solicitarán unacontraseña. En su lugar, el módulo pam_timestamp.so actualizará el archivo de registro de tiempo,reservando cinco minutos extra de acceso administrativo sin contraseñas al usuario.

You can verify the actual state of the timestamp file by inspecting the /var/run/sudo/<user> file.For the desktop, the relevant file is unknown:root. If it is present and its timestamp is less than fiveminutes old, the credentials are valid.

La existencia del archivo de registro de tiempo se indica mediante un ícono de autenticación, queaparece en el área de notificación del panel.

Figura 2.7. El Ícono de autenticación

2.4.6.1. Borrando el archivo de registro de tiempoAntes de abandonar la consola donde se encuentra activo el registro de tiempo de PAM, esrecomendable destruir el archivo correspondiente. Para hacerlo desde un entorno gráfico, haga clicsobre el ícono de autenticación del panel. Esto hace que se abra un cuadro de diálogo. Haga clicsobre el botón Olvidar Autenticación para destruir el archivo de registro de tiempo activo.

Figura 2.8. Diálogo de olvidar autenticación

Con respecto al archivo de registro de tiempo de PAM, debe prestarle atención a lo siguiente:

Page 81: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

PAM y la propiedad de los dispositivos

71

• Si ha ingresado en el sistema remotamente, utilizando el comando ssh, utilice el comando /sbin/pam_timestamp_check -k root para destruir el archivo de registro de tiempo.

• Será necesario que ejecute el comando /sbin/pam_timestamp_check -k root desde lamisma ventana de la terminal desde la que inició la aplicación con este privilegio.

• Debe estar registrado como el usuario que originalmente invocó el módulo pam_timestamp.so,de modo de poder utilizar el comando /sbin/pam_timestamp_check -k. No se registre comousuario root para utilizarlo.

• Si quiere abandonar las credenciales en el escritorio (sin utilizar la acción Olvidar Autenticacióndel ícono), utilice el siguiente comando:

/sbin/pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null

Una falla al utilizar este comando hará que solo sean eliminadas las credenciales (en el caso quelas hubiera) del pty desde donde ejecutó el comando.

Consulte la página man pam_timestamp_check para obtener más información acerca del uso depam_timestamp_check para destruir el archivo de registro de tiempo.

2.4.6.2. Directivas comunes de pam_timestamp_checkEl módulo pam_timestamp.so acepta varias indicaciones. Las siguientes dos opciones son algunasde las más utilizadas:

• timestamp_timeout — Especifica el periodo (en segundos) durante el cual el archivo de registrode tiempo es válido. El valor establecido por defecto es 300 (cinco minutos).

• timestampdir — Indica el directorio en donde el archivo de registro de tiempo será almacenado.El valor establecido por defecto es /var/run/sudo/.

Refer to Sección 2.8.9.1, “Documentación instalada del cortafuego” for more information aboutcontrolling the pam_timestamp.so module.

2.4.7. PAM y la propiedad de los dispositivosEn Fedora, el primer usuario que se registra en la consola física de la máquina, puede manipularciertos dispositivos y realizar ciertas tareas que por lo general son reservadas al usuario root. Esto escontrolado por un módulo PAM denominado pam_console.so.

2.4.7.1. Propiedad de los dispositivosCuando un usuario se registra en un sistema Fedora, el módulo pam_console.so es llamadomediante el comando login, o mediante algunos de los programa gráficos de logueo, como sergdm, kdm, y xdm. Si este usuario es el primero en loguearse en la consola física — denominadaconsola del usuario — el modulo le asegura al usuario el dominio de una gran variedad dedispositivos que normalmente le pertenecen al usuario root. Estos dispositivos le pertenecen a laconsola del usuario hasta que finalice su última sesión local. Una vez que este usuario haya finalizadosu sesión, la pertenencia de los dispositivos vuelve a ser del usuario root.

Los dispositivos afectados incluyen, pero no se limitan a, las placas de sonido, disqueteras, lectorasde CD-ROM.

Page 82: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

72

Esta instalación permite al usuario local manipular estos dispositivos sin obtener el acceso de root,por lo que se simplifican las tareas comunes para el usuario de consola.

You can modify the list of devices controlled by pam_console.so by editing the following files:• /etc/security/console.perms

• /etc/security/console.perms.d/50-default.perms

Puede cambiar los permisos de los otros dispositivos diferentes, además de los que se hanmostrado antes, o modificar los especificados por defecto. En lugar de modificar el archivo 50-default.perms, debería crear uno nuevo (por ejemplo xx-name.perms) y luego ingresar lasmodificaciones requeridas. El nombre del nuevo archivo modelo debe comenzar con un númerosuperior a 50 (por ejemplo 51-default.perms). Esto va a sustituir lo indicado en el archivo 50-default.perms.

AdvertenciaIf the gdm, kdm, or xdm display manager configuration file has been altered to allowremote users to log in and the host is configured to run at runlevel 5, it is advisableto change the <console> and <xconsole> directives in the /etc/security/console.perms to the following values:

<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0 <xconsole>=:0\.[0-9] :0

Esto evita que los usuarios ganen acceso a dispositivos y aplicaciones restringidas en lamáquina.

If the gdm, kdm, or xdm display manager configuration file has been altered to allowremote users to log in and the host is configured to run at any multiple user runlevelother than 5, it is advisable to remove the <xconsole> directive entirely and change the<console> directive to the following value:

<console>=tty[0-9][0-9]* vc/[0-9][0-9]*

2.4.7.2. Acceso a aplicacionesEl usuario de la consola también tiene el acceso a ciertos programas configurados para usar eldirectorio /etc/security/console.apps/.

Este directorio contiene los archivos de configuración que habilitan al usuario de la consola correrciertas aplicaciones de /sbin y /usr/sbin.

Estos archivos de configuración tienen el mismo nombre de las aplicaciones que configuran.

Un grupo notable de aplicaciones a los que el usuario de consola tiene acceso son tres programasque apagan o reinician el sistema:

• /sbin/halt

• /sbin/reboot

• /sbin/poweroff

Page 83: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Recursos adicionales

73

Debido a que estas aplicaciones utilizan PAM, llaman al módulo pam_console.so como un requisitopara usarlas.

Refer to Sección 2.8.9.1, “Documentación instalada del cortafuego” for more information.

2.4.8. Recursos adicionalesLos siguientes recursos explican más detalladamente los métodos para usar y configurar PAM.Además de estos recursos, lea los archivos de configuración de PAM en el sistema para entendermejor cómo están estructurados.

2.4.8.1. Documentación de PAM instalada• Las páginas man relacionadas con PAM — Hay varias páginas man para las distintas aplicaciones

y archivos de configuración involucrados con PAM. La siguiente es un alista de alguna de laspáginas man más importantes.

Archivos de configuración• pam — Buena información de presentación de PAM, que incluye la estructura y propósito de

los archivos de configuración de PAM.

Fíjese que en esta página man se hace referencia tanto al archivo /etc/pam.conf como alos archivos de configuración individuales del directorio /etc/pam.d/. Por defecto, Fedorautiliza los archivos de configuración individual del directorio, ignorando el archivo /etc/pam.conf, aún si efectivamente existe.

• pam_console — Describe el propósito del módulo pam_console.so. También describe lasintaxis apropiada para una entrada dentro del archivo de configuración de PAM.

• console.apps — Describe el formato del archivo de configuración /etc/security/console.apps, que define qué aplicaciones son accesibles por el usuario de consolaasignado por PAM.

• console.perms — Describe el formato del archivo de configuración /etc/security/console.perms, que especifica los permisos del usuario de consola asignados por PAM.

• pam_timestamp — Describe el módulo pam_timestamp.so.

• /usr/share/doc/pam-<version-number> — Contains a System Administrators' Guide, aModule Writers' Manual, and the Application Developers' Manual, as well as a copy of the PAMstandard, DCE-RFC 86.0, where <version-number> is the version number of PAM.

• /usr/share/doc/pam-<version-number>/txts/README.pam_timestamp — Containsinformation about the pam_timestamp.so PAM module, where <version-number> is theversion number of PAM.

2.4.8.2. Sitios web útiles sobre PAM• http://www.kernel.org/pub/linux/libs/pam/ — El sitio web principal de distribución del proyecto Linux-

PAM, que contiene información relacionada con varios módulos PAM, una sección con respuestasa las preguntas más usuales (FAQ, por las siglas en inglés de Frequently Asked Questions), ydocumentación adicional acerca de PAM.

Page 84: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

74

NotaLa documentación en el sitio web de arriba es para la última versión de desarrollolanzada de PAM y puede no ser 100% precisa para la versión de PAM incluida enFedora.

2.5. Encapsuladores TCP y xinetdControlling access to network services is one of the most important security tasks facing a serveradministrator. Fedora provides several tools for this purpose. For example, an iptables-basedfirewall filters out unwelcome network packets within the kernel's network stack. For network servicesthat utilize it, TCP Wrappers add an additional layer of protection by defining which hosts are or arenot allowed to connect to "wrapped" network services. One such wrapped network service is thexinetd super server. This service is called a super server because it controls connections to a subsetof network services and further refines access control.

Figura 2.9, “Control de acceso a servicios de red” is a basic illustration of how these tools worktogether to protect network services.

Figura 2.9. Control de acceso a servicios de red

Page 85: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Encapsuladores TCP

75

This chapter focuses on the role of TCP Wrappers and xinetd in controlling access to networkservices and reviews how these tools can be used to enhance both logging and utilizationmanagement. Refer to Sección 2.9, “IPTables” for information about using firewalls with iptables.

2.5.1. Encapsuladores TCPEl paquete de los encapsuladores TCP (tcp_wrappers) se encuentra instalado por defecto y ofrececontrol de acceso a los servicios de red basado en los equipos. El componente más importantede este paquete es la biblioteca /usr/lib/libwrap.a. En términos generales, un servicioencapsulado por TCP es un servicio que ha sido compilado con la biblioteca libwrap.a.

Cuando se realiza un intento de conexión a un servicio encapsulado por TCP, el servicio primeroconsulta los archivos de acceso del equipo (/etc/hosts.allow y /etc/hosts.deny) paradeterminar en qué casos el equipo tiene permitida la conexión. Generalmente, luego utiliza aldemonio syslog (syslogd) para escribir el nombre del cliente solicitante y del servicio solicitado enlos archivos /var/log/secure o /var/log/messages.

Si un cliente tiene permitida la conexión, los encapsuladores TCP liberan el control de la conexión alservicio solicitado, y abandonan el proceso de comunicación entre el cliente y el servidor.

Además del control de acceso y registro, los encapsuladores TCP pueden ejecutar comandos parainteractuar con el cliente antes que sea negado el control de la conexión, o antes de abandonar elproceso de conexión al servicio de red solicitado.

Debido a que los encapsuladores TCP son un valioso agregado al equipo de herramientas deseguridad que cualquier administrador de servidor posee, muchos servicios de red dentro de Fedorase encuentran enlazados con la biblioteca libwrap.a. Algunas de estas aplicaciones son /usr/sbin/sshd, /usr/sbin/sendmail, y /usr/sbin/xinetd.

NotaPara determinar si un servicio de red ejecutable está enlazado con libwrap.a, ingreseel siguiente comando como usuario root:

ldd <binary-name> | grep libwrap

Replace <binary-name> with the name of the network service binary.

Si el comando no le devuelve ninguna información, entonces el servicio de red no seencuentra enlazado con libwrap.a.

El siguiente ejemplo inidica que /usr/sbin/sshd se encuentra enlazado conlibwrap.a:

[root@myServer ~]# ldd /usr/sbin/sshd | grep libwrap libwrap.so.0 => /lib/libwrap.so.0 (0x00655000)[root@myServer ~]#

2.5.1.1. Ventajas de los Encapsuladores TCPLos encapsuladores TCP ofrecen las siguientes ventajas en comparación con otras técnicas para elcontrol de servicios de red:

Page 86: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

76

• Transparencia tanto para el cliente como para el servicio de red encapuslado — Tanto el cliente queestá conectándose como el servicio de red, no tienen conocimiento de que los encapsuladores TCPestán siendo utilizados. Los usuarios legítimos se registran y conectan a los servicios solicitados,mientras que no se realizan las conexiones pedidas por clientes no autorizados.

• Administración centralizada de múltiples protocolos — los encapsuladores TCP operan en formaseparada de los servicios de red que protegen, permitiendo así que varias aplicaciones de servidorcompartan un conjunto común de archivos de configuración de control de acceso, haciendo posibleque la administración sea más sencilla.

2.5.2. Archivos de configuración de los encapsuladores TCPPara determinar si a un cliente le es permitido conectarse a un servidor, los encapsuladores TCPconsultan los dos archivos siguientes, comúnmente denominados archivos de acceso de equipos:

• /etc/hosts.allow

• /etc/hosts.deny

Cuando un servicio encapsulado por TCP recibe una petición de un cliente, realiza los siguientespasos:

1. Consulta con /etc/hosts.allow. — El servicio encapsulado por TCP analiza secuencialmenteel archivo /etc/hosts.allow y aplica la primera regla especificada para ese servicio. Siencuentra una regla concordante, permite la conexión. Si no, avanza al siguiente paso.

2. Consulta con /etc/hosts.deny. — El servicio encapsulado por TCP analiza secuencialmenteel archivo /etc/hosts.deny. Si encuentra una regla concordante, niega la conexión. Si no,permite el acceso al servicio.

Las siguientes son cuestiones importantes para considerar cuando se utilice encapsuladores TCPpara proteger servicios de red:

• Debido a que primero se aplican las reglas de acceso contenidas en hosts.allow, dejan unprecedente sobre las reglas especificadas en hosts.deny. De este modo, si el acceso a unservicio es permitido en hosts.allow, será ignorada una regla negando el acceso al mismoservicio del archivo hosts.deny.

• Las reglas de cada archivo son leídas desde arriba hacia abajo, y la primera regla concordantepara un servicio dado es la única que será aplicada. El orden de las reglas es extremadamenteimportante.

• Si no se encuentran reglas para el servicio en el archivo, o el archivo no existe, el acceso al servicioes permitido.

• Los servicios encapsulados por TCP no conservan las reglas desde los archivos de acceso de losequipos, de modo que cualquier cambio en hosts.allow o hosts.deny, tienen efecto inmediato,sin necesidad de reiniciar los servicios de red.

Page 87: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Archivos de configuración de los encapsuladores TCP

77

AdvertenciaSi la última línea del archivo de acceso de un equipo no es un caracter de tipo nuevalínea (creado al presionar la tecla Enter key), la última regla del archivo fallará y un errorserá registrado o bien en /var/log/messages, o bien en /var/log/secure. Este esel mismo caso de una regla que abarca líneas múltiples sin utilizar el carcater de líneainvertida. El siguiente ejemplo muestra la sección que nos interesa del fracaso de unaregla debido a alguna de las circunstancias recién descritas:

warning: /etc/hosts.allow, line 20: missing newline or line too long

2.5.2.1. Formateo de las reglas de accesoEl formato tanto de /etc/hosts.allow como de /etc/hosts.deny es el mismo. Cada regladebe estar en su propia línea. Líneas vacías o líneas que empiezan con el símbolo numeral (#) sonignoradas.

Cada regla utiliza el siguiente formato básico para controlar el acceso a los servicios de red:

<daemon list>: <client list> [: <option>: <option>: ...]

• <daemon list> — A comma-separated list of process names (not service names) or the ALLwildcard. The daemon list also accepts operators (refer to Sección 2.5.2.1.4, “Operadores”) to allowgreater flexibility.

• <client list> — A comma-separated list of hostnames, host IP addresses, special patterns, orwildcards which identify the hosts affected by the rule. The client list also accepts operators listed inSección 2.5.2.1.4, “Operadores” to allow greater flexibility.

• <option> — An optional action or colon-separated list of actions performed when the rule istriggered. Option fields support expansions, launch shell commands, allow or deny access, and alterlogging behavior.

NotaPuede encontrarse mayor información acerca de los términos recién vistos en otraspartes de esta Guía:

• Sección 2.5.2.1.1, “Comodines”

• Sección 2.5.2.1.2, “Patrones”

• Sección 2.5.2.2.4, “Expansiones”

• Sección 2.5.2.2, “Campos de opción”

A continuación se muestra el ejemplo de una regla básica de acceso de equipos:

vsftpd : .ejemplo.com

Page 88: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

78

Esta regla está indicando a los encapsuladores TCP que observen las conexiones del demonioFTP (vsftpd) desde cualquier equipo en el dominio ejemplo.com. Si esta regla aparece enhosts.allow, la conexión es aceptada. Si esta regla figura en hosts.deny, la conexión es negada.

El siguiente ejemplo de regla de acceso de equipos es más compleja y utiliza dos campos deopciones:

sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny

Fíjese que cada campo de opción es precedido por la barra invertida (\). La utilización de esta barrapreviene el fallo de la regla debido a su longitud.

This sample rule states that if a connection to the SSH daemon (sshd) is attempted from a host in theexample.com domain, execute the echo command to append the attempt to a special log file, anddeny the connection. Because the optional deny directive is used, this line denies access even if itappears in the hosts.allow file. Refer to Sección 2.5.2.2, “Campos de opción” for a more detailedlook at available options.

2.5.2.1.1. ComodinesLos comodines le permiten a los encapsuladores TCP poder corresponderse más fácilmente congrupos de demonios de equipos. Son más frecuentemente utilizados en el campo lista de cliente delas reglas de acceso.

Los siguientes comodines están disponibles:

• ALL — Se corresponde con todo. Puede ser utilizado tanto para la lista del demonio como con lalista del cliente.

• LOCAL — Se corresponde con cualquier equipo que no contenga un punto (.), como por ejemplo elequipo local.

• KNOWN — Se corresponde con cualquier equipo cuyo nombre y la dirección sean conocidas odonde el usuario sea conocido.

• UNKNOWN — Se corresponde con cualquier equipo cuyo nombre o dirección sean desconocidos, odonde el usuario sea desconocido.

• PARANOID — Se corresponde con cualquier equipo cuyo nombre no concuerde con su dirección.

ImportanteLos comodines KNOWN, UNKNOWN, y PARANOID deben ser utilizados con cuidado, ya quedependen del servidor DNS que se esté utilizando para su operación correcta. Cualquierinterrupción de la resolución de nombres podría causar que se les niegue acceso alservicio a los usuarios legítimos.

2.5.2.1.2. PatronesPueden utilizarse patrones en el campo cliente de las reglas de acceso para especificar grupos deequipos de clientes en forma más precisa.

A continuación mostramos una lista con patrones comunes para entradas en el campo cliente:

Page 89: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Archivos de configuración de los encapsuladores TCP

79

• Nombre de equipo empezando con un punto (.) — Colocar un punto al comienzo del nombre de unequipo hace que se correspondan todos los equipos que comparten los componentes del nombreen la lista. El siguiente ejemplo se aplica a cualquier equipo dentro del dominio ejemplo.com:

ALL : .ejemplo.com

• Dirección IP que finaliza con un punto (.) — Colocar un punto al finalizar una dirección IP hace quese correspondan todos los equipos que comparten los grupos numéricos iniciales de una direcciónIP. El siguiente ejemplo se aplica a cualquier equipo dentro de la red 192.168.x.x:

ALL : 192.168.

• Dirección IP/par de máscara de red — Las expresiones de máscaras de red también puedenutilizarse como un patrón para controlar el acceso de un grupo determinado de direcciones IP. Elsiguiente ejemplo se aplica a cualquier equipo con un rango de direcciones desde 192.168.0.0hasta 192.168.1.255:

ALL : 192.168.0.0/255.255.254.0

ImportanteCuando se esté trabajando en el espacio de direcciones IPv4, la longitud del pardirección/prefijo (prefixlen) en las declaraciones (notación CIDR) no están soportadas.Solo las reglas IPv6 pueden utilizar este formato.

• [direcciones IPv6]/par prefixlen — los pares [red]/prefixlen también pueden ser utilizadoscomo un patrón para controlar el acceso de un grupo determinado de direcciones IPv6. Elsiguiente ejemplo se aplica a cualquier equipo en un rango de 3ffe:505:2:1:: hasta3ffe:505:2:1:ffff:ffff:ffff:ffff:

ALL : [3ffe:505:2:1::]/64

• El asterisco (*) — Los asteriscos pueden ser utilizados para hacer concordar grupos enteros denombres de equipos o direcciones IP, siempre y cuando no estén mezclados en listas de clientesque contengan otro tipo de patrones. El siguiente ejemplo se puede aplicar a cualquier equipodentro del dominio ejemplo.com:

ALL : *.ejemplo.com

• La barra (/) — Si una lista de cliente comienza con una barra, será tratada como un nombrede archivo. Esto es útil si se necesitan reglas especificando grandes cantidades de equipos. Elsiguiente ejemplo referencia encapsuladores TCP al archivo /etc/telnet.hosts para todas lasconexiones Telnet.

in.telnetd : /etc/telnet.hosts

Existen otros patrones menos utilizados que también aceptan los encapsuladores TCP. Para obtenermayor información, vea la página man 5 de hosts_access.

Page 90: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

80

AdvertenciaSea muy cuidadoso al utilizar nombres de equipos y de dominios. Los atacantes puedenutilizar una gran variedad de trucos para sortear dificultades y obtener resoluciones denombres adecuadas. Además, la interrupción del servicio DNS impide la utilización delos servicios de red incluso a los usuarios autorizados. De modo que, lo mejor es utilizardirecciones IP siempre que sea posible.

2.5.2.1.3. Portmap y encapsuladores TCPLa implementación de Portmap de los encapsuladores TCP no tiene soporte para búsquedade equipos, lo que significa que Portmap no puede utilizar los nombres de los equipos paraidentificarlos. Por lo tanto, las reglas de control de acceso para portmap en hosts.allow ohosts.deny, deben ser direcciones IP, o la palabra clave ALL para especificar equipos.

Los cambios en las reglas de control de acceso de portmap podrían no tener efecto inmediatamente.Tal vez necesite reiniciar el servicio portmap.

Servicios muy utilizados, como NIS o NFS, dependen de portmap para funcionar, de modo quetenga en cuenta estas limitaciones.

2.5.2.1.4. OperadoresHoy en día, las reglas de control de acceso aceptan un operador, EXCEPT. Puede ser utilizado tantoen la lista de demonio como en la lista cliente de una regla.

El operador EXCEPT permite excepciones específicas para ampliar las correspondencias dentro deuna misma regla.

En el siguiente ejemplo de un archivo hosts.allow, todos los equipos ejemplo.com tienenpermitido conectarse a todos los servicios, exepcto cracker.ejemplo.com:

ALL: .ejemplo.com EXCEPT cracker.ejemplo.com

En otro ejemplo de un archivo hosts.allow, los clientes de la red 192.168.0.x pueden utilizartodos los servicios con excepción de FTP:

ALL EXCEPT vsftpd: 192.168.0.

NotaEn términos de organización, generalmente es más sencillo evitar la utilización deoperadores EXCEPT. Esto permite que otros administradores analicen rápidamente losarchivos apropiados para ver a qué equipos se les permite o se les niega el acceso a losservicios, sin tener que organizar los operadores EXCEPT.

2.5.2.2. Campos de opciónAdemás de las reglas básicas que permiten o que niegan el acceso, la implementación deencapsuladores TCP de Fedora soporta extensiones al lenguaje de control de acceso a

Page 91: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Archivos de configuración de los encapsuladores TCP

81

través de campos de opción. Al utilizar los campos de opción en reglas de acceso de equipos,los administradores pueden realizar una variedad de tareas como por ejemplo modificar elcomportamiento de los registros, consolidar control de acceso e iniciar comandos de terminal.

2.5.2.2.1. RegistroLos campos de opción permiten que los administradores modifiquen fácilmente la herramienta deregistro y el nivel de prioridad para una regla, utilizando la directiva severity.

En el siguiente ejemplo, las conexiones con el demonio SSH desde cualquier equipo del dominioejemplo.com son registradas en la herramienta authpriv syslog establecida por defecto (debidoa que ningún valor de la herramienta es especificado) con una prioridad de emerg:

sshd : .example.com : severity emerg

Es también posible especificar una herramienta utilizando la opción severity. El siguiente ejemploregistra cualquier intento de conexión SSH realizada por equipos del dominio ejemplo.com a laherramienta local0, con una prioridad de alert:

sshd : .ejemplo.com : severity local0.alert

NotaEn la práctica, este ejemplo no funciona hasta que el demonio syslog (syslogd) seaconfigurado para registrarse en la herramienta local0. Para obtener mayor informaciónacerca de cómo configurar herramientas de registro establecidas por defecto, vea lapágina man de syslog.conf.

2.5.2.2.2. Control de accesoLos campos de opción también le permiten a los administradores permitir o negar explícitamenteequipos mediante una sola regla, añadiéndole la directiva allow o deny como la opción final.

Por ejemplo, las dos reglas siguientes permiten conexions SSH desde client-1.example.com,pero niegan conexiones de client-2.example.com:

sshd : client-1.example.com : allowsshd : client-2.example.com : deny

Al permitir control de acceso sobre un fundamento de reglas, el campo de opción permite que losadministradores consoliden todas los reglas de acceso en un solo archivo: o bien hosts.allow, obien hosts.deny. Algunos administradores consideran a esto como una forma sencilla de organizarlas reglas de acceso.

2.5.2.2.3. Comandos de la consolaLos campos de opción permiten reglas de acceso para iniciar comandos de consola mediante las dosdirectivas siguientes:

• spawn — Inicia un comando de terminal como un proceso hijo. Esta directiva puede realizar tareascomo ser la utilización de /usr/sbin/safe_finger para obtener mayor información acerca

Page 92: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

82

del cliente que está realizando una determinada petición, o crear archivos de registro especialesmediante la utilización del comando echo.

En el siguiente ejemplo, los clientes del dominio ejemplo.com que intentan acceder a serviciosTelnet, son registrados silenciosamente en un archivo especial:

in.telnetd : .example.com \ : spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \ : allow

• twist — Replaces the requested service with the specified command. This directive is often usedto set up traps for intruders (also called "honey pots"). It can also be used to send messages toconnecting clients. The twist directive must occur at the end of the rule line.

En el ejemplo siguiente, a los clientes que intentan acceder a los servicios FTP desde el dominioejemplo.com, se les envía un mensaje utilizando el comando echo.

vsftpd : .example.com \ : twist /bin/echo "421 This domain has been black-listed. Access denied!"

Para obtener mayor información acerca de las opciones de comandos de terminal, vea la página mande hosts_options.

2.5.2.2.4. ExpansionesCuando se utilizan junto a las directivas spawn y twist, las expansiones proveen información acercadel cliente, servidor, y los procesos involucrados.

La siguiente es una lista de expansiones soportadas:

• %a — Informa la dirección IP del cliente.

• %A — Informa la dirección IP del servidor.

• %c — Informa una gran cantidad de datos del cliente, como ser por ejemplo, el nombre de usuario yel nombre del equipo, o el nombre de usuario y la dirección IP.

• %d — Informa el nombre del demonio encargado del proceso.

• %h — Informa el nombre del equipo del cliente (o la dirección IP, si es que el nombre del equipo noestá disponible).

• %H — Informa el nombre del equipo del servidor (o su dirección IP, en caso que el nombre no estédisponible).

• %n — Informa el nombre del equipo cliente. Si no está disponible, se muestra unknown. Si elnombre del equipo y la dirección del cliente no concuerdan, se muestra paranoid.

• %N — Informa el nombre del equipo del servidor. Si no está disponible, se muestra unknown. Si elnombre del equipo del servidor y la dirección no concuerdan, se muestra paranoid.

• %p — Informa el ID del proceso del demonio.

• %s — Informa diferentes tipos de datos acerca del servidor, como ser por ejemplo, si el proceso deldemonio y la dirección del equipo o dirección IP del servidor.

Page 93: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

xinetd

83

• %u — Informa el nombre de usuario del cliente. Si no está disponible, se muestra unknown.

La siguiente regla de ejemplo utiliza una expansión junto con el comando spawn para identificar elequipo del cliente en un archivo de registro modificado.

Cuando se intenten establecer conexiones al demonio SSH (sshd) desde un equipo del dominioejemplo.com, ejecute el comando echo para registrar el intento en un archivo especial, incluyendoel nombre del cliente (utilizando la expanción %h).

sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \ : deny

De manera similar, las expansiones pueden ser utilizadas para personalizar mensajes enviados alcliente. En el siguiente ejemplo, a los clientes que intentan acceder a servicios FTP desde el dominioejemplo.com, se les informa que han sido eliminados del servidor:

vsftpd : .example.com \: twist /bin/echo "421 %h has been banned from this server!"

Para obtener una explicación completa de las expansiones disponibles, y al mismo tiempo conoceropciones adicionales de control de acceso, vea la sección 5 de las páginas man de hosts_access(man 5 hosts_access), y la página man de hosts_options.

Refer to Sección 2.5.5, “Recursos adicionales” for more information about TCP Wrappers.

2.5.3. xinetdEl demonio xinetd es un súper servicio encapsulado por TCP, que controla el acceso a unsubconjunto de servicios de red muy utilizados, como por ejemplo FTP, IMAP y Telnet. Tambiénofrece opciones de configuración de servicio específicas para control de acceso, registros mejorados,uniones, redirecciones y control de la utilización de los recursos.

Cuando un cliente intenta conectarse a un servicio de red controlado por xinetd, el súper serviciorecibe la petición y verifica la existencia de reglas de control de acceso para encapsuladores TCP.

Si el acceso es permitido, xinetd verifica que la conexión sea permitida bajo sus propias reglas deacceso para ese servicio. También verifica que el servicio pueda tener más recursos disponibles, yque no esté en contradicción con ninguna otra regla definida.

Si todas estas condiciones se cumplen (es decir, el acceso al servicio es permitido; el servicio no haalcanzado el límite de sus recursos; y el servicio no entra en colisión con ninguna otra regla definida),entonces xinetd inicia una instancia del servicio solicitado y le pasa el control de la conexión. Luegoque la conexión haya sido establecida, xinetd deja de formar parte en la comunicación entre elcliente y el servidor.

2.5.4. Archivos de configuración de xinetdLos archivos de configuración para xinetd son los siguientes:

• /etc/xinetd.conf — El archivo de configuración general de xinetd.

• /etc/xinetd.d/ — El directorio continente de todos los archivos específicos para cada servicio.

Page 94: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

84

2.5.4.1. El archivo /etc/xinetd.confEl archivo /etc/xinetd.conf contiene parámetros de configuraciones generales que afectan cadaservicio controlado por xinetd. Es leido cuando el servicio xinetd es iniciado por primera vez, demodo que para que los cambios en la configuración tengan efecto, habrá que reiniciar el servicioxinetd. El siguiente es un ejemplo del archivo /etc/xinetd.conf.

defaults{ instances = 60 log_type = SYSLOG authpriv log_on_success = HOST PID log_on_failure = HOST cps = 25 30}includedir /etc/xinetd.d

Estas lineas controlan los siguientes aspectos de xinetd:

• instances — Indica el número máximo de peticiones simultáneas que puede procesar xinetd.

• log_type — Configura xinetd para utilizar la herramienta de registro authpriv, que guardaentradas de registro en el archivo /var/log/secure. Agregar una directiva como FILE /var/log/xinetdlog podría crear un archivo de registro modificado denominado xinetdlog en eldirectorio /var/log/.

• log_on_success — configura xinetd para registrar intentos de conexión exitosos. Por defecto,son registradas la dirección IP del equipo remoto y los ID de los procesos del servidor que estáprocesando la petición.

• log_on_failure — Configura xinetd para registrar intentos de conexión fallidos, o casos enque la conexión fue negada.

• cps — Configura xinetd para permitir más de 25 conexiones por segundo hacia cualquier serviciodado. Si el límite es superado, el servicio se retira durante 30 segundos.

• includedir /etc/xinetd.d/ — Includes options declared in the service-specific configurationfiles located in the /etc/xinetd.d/ directory. Refer to Sección 2.5.4.2, “El directorio /etc/xinetd.d/” for more information.

NotaOften, both the log_on_success and log_on_failure settings in /etc/xinetd.conf are further modified in the service-specific configuration files. Moreinformation may therefore appear in a given service's log file than the /etc/xinetd.conf file may indicate. Refer to Sección 2.5.4.3.1, “Opciones para registrado”for further information.

2.5.4.2. El directorio /etc/xinetd.d/El directorio /etc/xinetd.d/ contiene los archivos de configuración para cada servicioadministrado por xinetd, y los nombres de los archivos correspondientes al servicio. Del mismomodo que con xinetd.conf, este directorio es de solo lectura cuando el servicio xinetd es

Page 95: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Archivos de configuración de xinetd

85

iniciado. Para que cualquier cambio pueda tener efecto, el administrador debe reiniciar el servicioxinetd.

El formato de los archivos en el directorio /etc/xinetd.d/ utiliza las mismas convenciones que /etc/xinetd.conf. La principal razón por la que la configuración de cada servicio sea almacenadaen un archivo diferente, es para hacer más sencilla la personalización, y menos propensa a modificarotros servicios.

Para adquirir una mejor comprensión acerca de cómo están estructurados estos archivos, presteleatención al archivo /etc/xinetd.d/krb5-telnet:

service telnet{ flags = REUSE socket_type = stream wait = no user = root server = /usr/kerberos/sbin/telnetd log_on_failure += USERID disable = yes}

Estas líneas controlan numerosos aspectos del servicio telnet:

• service — Especifica el nombre del servicio, generalmente uno de aquellos listados en el archivo/etc/services

• flags — Establece alguno de los atributos para la conexión. REUSE le indica a xinetd que vuelvaa utilizar el socket para una conexión Telnet.

NotaLa marca REUSE es obsoleta. Todos los servicios hoy en día utilizan la marca REUSE.

• socket_type — Establece el tipo de socket de red a stream.

• wait — Especifica cuando el servicio es tratado como de uno solo hilo de ejecución (yes) o comode múltiples hilos de ejecución (no).

• user — Especifica bajo qué ID de usuario se está ejecutando el proceso.

• server — Especifica el binario ejecutable a ser lanzado.

• log_on_failure — Especifica parámetros de registro para log_on_failure, además de losque ya están definidos en xinetd.conf.

• disable — Especifica cuándo el servicio debe ser desactivado (yes), o activado (no).

Para obtener mayor información sobre estas opciones y su uso, consulte la página man dexinetd.conf.

2.5.4.3. Alteración de los archivos de configuración de xinetdExisten disponibles una variedad de directivas protegidas por xinetd. En esta sección se detallanalgunas de las opciones más comunmente utilizadas.

Page 96: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

86

2.5.4.3.1. Opciones para registradoLas siguientes opciones de registro se encuentran disponibles tanto para /etc/xinetd.conf comopara los archivos de configuración del servicio específico en el directorio /etc/xinetd.d/.

La siguiente es una lista de las opciones de registro más utilizadas:

• ATTEMPT — Registra el hecho de haberse realizado un intento fallido (log_on_failure).

• DURATION — Registra el período de tiempo total en que ha sido utilizado el servicio por un sistemaremoto (log_on_success).

• EXIT — Registra el estado de salida, o la señal de finalización del servicio (log_on_success).

• HOST — Registra la dirección IP del equipo remoto (log_on_failure y log_on_success).

• PID — Registra el ID de los procesos del servidor que recibe el pedido (log_on_success).

• USERID — Registra a los usuarios remotos que utilizan el método definido en RFC 1413 para todoslos servicios stream de aspectos múltiples (log_on_failure ylog_on_success).

Para obtener una lista completa de opciones de registro, consulte la página man de xinetd.conf.

2.5.4.3.2. Opciones para el control de accesoUsers of xinetd services can choose to use the TCP Wrappers hosts access rules, provide accesscontrol via the xinetd configuration files, or a mixture of both. Refer to Sección 2.5.2, “Archivos deconfiguración de los encapsuladores TCP” for more information about TCP Wrappers hosts accesscontrol files.

En esta sección se desarrolla la utilización de xinetd para controlar el acceso a los servicios.

NotaAl contrario que con los encapsuladores TCP, las modificaciones al control de acceso sólotienen efecto si el administrador de xinetd reinicia el servicio xinetd.

De manera similar, al contrario que los encapsuladores TCP, el control de accesomediante xinetd solo afecta a los servicios controlados por xinetd.

El control de acceso de los equipos con xinetd difiere del método utilizado por encapsuladores TCP.Mientras que los encapsuladores TCP colocan todas las configuraciones de acceso en dos archivos,/etc/hosts.allow y /etc/hosts.deny, el control de acceso de xinetd se encuentra en cadauno de los archivos de configuración de los servicios dentro del directorio /etc/xinetd.d/.

Las siguientes opciones de acceso de equipos están soportadas por xinetd:

• only_from — Permite la utilización del servicio sólo a los equipos especificados.

• no_access — Impide la utilización del servicio a los equipos indicados.

• access_times — Establece el período de tiempo en que un servicio particular puede ser utilizado.Este período debe ser indicado con notaciones en formato de 24 horas, HH:MM-HH:MM.

Las opciones only_from y no_access pueden utilizar una lista de direcciones IP o nombresde archivo, o pueden especificar una red entera. Del mismo modo que los encapsuladores TCP,

Page 97: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Archivos de configuración de xinetd

87

combinar el control de acceso de xinetd con la configuración mejorada de registro puede aumentarla seguridad evitando las peticiones de los equipos bloqueados, al mismo tiempo que se registra cadaintento de conexión.

Por ejemplo, el siguiente archivo /etc/xinetd.d/telnet puede utilizarse para bloquear accesosTelnet desde un grupo de determinado, y restringir el tiempo total en que pueden registrarse inclusolos usuarios autorizados:

service telnet{ disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/kerberos/sbin/telnetd log_on_failure += USERID no_access = 172.16.45.0/24 log_on_success += PID HOST EXIT access_times = 09:45-16:15}

En este ejemplo, cuando un sistema de cliente de la red 10.0.1.0/24, como por ejemplo 10.0.1.2intenta acceder al servicio Telnet, recibe el siguiente mensaje:

Conexión cerrada por el equipo remoto.

Además, sus intentos de registro son almacenados en /var/log/messages de la manera siguiente:

Sep 7 14:58:33 localhost xinetd[5285]: FAIL: telnet address from=172.16.45.107Sep 7 14:58:33 localhost xinetd[5283]: START: telnet pid=5285 from=172.16.45.107Sep 7 14:58:33 localhost xinetd[5283]: EXIT: telnet status=0 pid=5285 duration=0(sec)

Al utilizar encapsuladores TCP junto con control de acceso xinetd, es importante comprender larelación entre ambos mecanismos de control de acceso.

La siguiente es la secuencia de eventos que realiza xinetd cada vez que un cliente solicite unaconexión:

1. El demonio xinetd obtiene las reglas de acceso de los equipos con encapsuladores TCP,utilizando una llamada de biblioteca libwrap.a. Si una regla de negación concuerda con elcliente, se abandona la conexión. Si una regla de conexión concuerda con el cliente, la conexiónes entregada a xinetd.

2. El demonio xinetd verifica sus propias reglas de control de acceso tanto para el servicioxinetd, como para el servicio solicitado. Si una regla de negación concuerda con el cliente,se abandona la conexión. De lo contrario, xinetd inicia una instancia del servicio solicitado yentrega el control de la conexión a ese servicio.

ImportanteHay que tener cuidado al utilizar controles de acceso con encapsuladores TCP, juntocon controles de acceso de xinetd. Un error de configuración puede causar efectos nodeseados.

Page 98: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

88

2.5.4.3.3. Opciones de unión y redirecciónLos archivos de configuración del servicio xinetd tienen soporte para asociar el servicio con unadirección IP, y redireccionar las peticiones entrantes para ese servicio hacia otra dirección IP, nombrede equipo, o puerto.

Esta asociación es controlada con la opción bind en el archivo de configuración específico de cadaservicio, y enlaza ese servicio con una dirección IP en el sistema. Cuando esto es configurado, laopción bind sólo acepta peticiones para acceder al servicio de la dirección IP correcta. Puede utilizareste método para asociar diferentes servicios con diferentes interfases de acuerdo a sus propiasnecesidades.

Esto es especialmente útil para los sistemas con adaptadores de red múltiples, o con múltiplesdirecciones IP. En tales sistemas, los servicios no seguros (Telnet, por ejemplo), pueden serconfigurados para que sólo escuchen en una interfaz conectada con una red privada y no con unainterfaz conectada a Internet.

La opción redirect acepta una dirección IP o nombre de equipo seguido por un número de puerto.Configura el servicio de modo tal de poder redireccionar cualquier petición para este servicio haciael equipo y número de puerto indicado. Esta herramienta puede ser utilizada para dirigirse hacia otronúmero de puerto en el mismo sistema, redireccionar la petición hacia una dirección IP diferente enla misma máquina, intercambiar la petición con un sistema y número de puerto totalmente diferente,o combinar entre ellas cualesquiera de estas opciones. Un usuario conectándose con un serviciodeterminado de un sistema, por lo tanto puede ser reruteado hacia otro sistema sin sufrir ningún tipode interrupción.

El demonio xinetd es capaz de lograr este redireccionamiento extendiendo un proceso activodurante todo el tiempo que dure la conexión, entre la máquina del cliente que realiza la petición y elequipo que efectivamente está proveyendo el servicio, transfiriendo los datos entre ambos sistemas.

Las ventajas de bind y redirect se hacen más evidentes cuando se utilizan de manera conjunta.Al asociar un servicio con una dirección IP determinada de un sistema, y luego redireccionar laspeticiones para este servicio hacia una segunda máquina que sólo pueda ser vista por la primera,puede entonces utilizarse un sistema interno que ofrezca servicios para una red comopletamentediferente. Alternativamente, estas opciones pueden ser utilizadas para limitar la exposición deun servicio determinado en una máquina hacia una dirección IP conocida, al mismo tiempo queredirecciona cualquier petición para ese servicio hacia otra máquina configurada para ese propósito.

Por ejemplo, piense en un sistema que es utilizado como un cortafuegos con la siguienteconfiguración para su servicio Telnet:

service telnet{ socket_type = stream wait = no server = /usr/kerberos/sbin/telnetd log_on_success += DURATION USERID log_on_failure += USERID bind = 123.123.123.123 redirect = 10.0.1.13 23}

Las opciones bind y redirect de este archivo aseguran que el servicio Telnet en la máquina estáunido a la dirección IP externa (123.123.123.123), por medio de la cual se conecta a Internet.Además, cualquier petición para el servicio Telnet enviada a 123.123.123.123, es redireccionadahacia una dirección IP interna mediante un segundo adaptador de red (10.0.1.13) a la que

Page 99: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Recursos adicionales

89

solo el cortafuegos y los sistemas internos pueden acceder. El cortafuegos entonces envía lacomunicacién entre ambos sistemas, y el sistema que está conectándose piensa que lo ha hecho con123.123.123.123, cuando en realidad está conectado con una máquina diferente.

Esta herramienta es especialmente útil para usuarios con conexiones de banda ancha que sóloposean una dirección IP fija. Si utilizan Traductores de Direcciones de Red (NAT por las inicialesen inglés de Network Adress Translations), los sistemas detrás de la máquina que hace de puertade enlace, que están utilizando direcciones IP sólo internas, no están disponibles desde fuera delsistema de puerta de enlace. Sin embargo, cuando ciertos servicios controlados por xinetd sonconfigurados con las opciones bind y redirect, la máquina que hace de puerta de enlace puedeactuar como un proxy entre los sistemas externos y una máquina interna determinada que hayasido configurada para ofrecer el servicio. Además, las diferentes opciones de registro y de control deacceso de xinetd, están disponibles para establecer protección adicional.

2.5.4.3.4. Opciones de administración de recursosEl demonio xinetd puede ofrecer un nivel de protección básico para los ataques de Denegación deServicio (DoS, por las iniciales en inglés de Denial of Service). La siguiente es una lista de directivasque pueden ayudar a disminuir la efectividad de tales ataques:

• per_source — Establece el número máximo de instancias para un servicio desde cada direcciónIP. Acepta solo valores enteros como argumentos y puede ser utilizada tanto en xinetd.confcomo en el archivo de configuración específico del servicio en cuestión del directorio xinetd.d/.

• cps — Establece el numero máximo de conexiones por segundo. Esta directiva necesita de dosargumentos enteros separados por un espacio. El primer argumento es el número máximo deconexiones permitidas por segundo al servicio. El segundo argumento es la cantidad de segundosque xinetd debe esperar antes de reactivar el servicio. Acepta solo enteros como argumentosy puede ser utilizado tanto en el archivo xinetd.conf, como el los archivos de configuraciónpropios de cada servicio en el directorio xinetd.d/.

• max_load — Define la utilización del CPU o el umbral de carga de utilización promedio de unservicio. Acepta un número de punto flotante como argumento.

La carga promedio es una medida aproximada que indica la forma en que algunos procesos estánactivos en un determinado período de tiempo. Para obtener mayor información acerca de la cargapromedio, vea los comandos uptime, who, y procinfo

Existen otras opciones disponibles para la administración de los recursos para xinetd. Para obtenermayor información, consulte la página man de xinetd.conf.

2.5.5. Recursos adicionalesMayor información acerca de los encapsuladores TCP y xinetd se encuentra disponible en Internety en la documentación del sistema.

2.5.5.1. Documentación instalada acerca de los encapsuladores TCPLa documentación de su sistema es un buen lugar en donde empezar a buscar opciones adicionalesde configuración para los encapsuladores TCP, xinetd, y control de acceso.

• /usr/share/doc/tcp_wrappers-<version>/ — This directory contains a README file thatdiscusses how TCP Wrappers work and the various hostname and host address spoofing risks thatexist.

Page 100: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

90

• /usr/share/doc/xinetd-<version>/ — This directory contains a README file that discussesaspects of access control and a sample.conf file with various ideas for modifying service-specificconfiguration files in the /etc/xinetd.d/ directory.

• Páginas man relacionadas con encapsuladores TCP y xinetd — Existen una cantidad de páginasman para varias aplicaciones y archivos de configuración relacionadas con encapsuladores TCP yxinetd. Las siguientes con algunas de las más importantes:

Aplicaciones de servidor• man xinetd — La página man para xinetd.

Archivos de configuración• man 5 hosts_access — La página man para los archivos de control de acceso de equipos

con encapsuladores TCP.

• man hosts_options — La página man para los campos de opción de los encapsuladoresTCP.

• man xinetd.conf — La página man que ofrece opciones de configuración para xinetd.

2.5.5.2. Sitios web útiles relacionados con encapsuladores TCP• http://www.xinetd.org/4 — El sitio principal de xinetd, que contiene archivos de configuración

a modo de ejemplo, lista completa de herramientas, y una sección informativa de preguntasfrecuentes (FAQ, por las iniciales en inglés de Frecuently Asked Questions).

• http://www.docstoc.com/docs/2133633/An-Unofficial-Xinetd-Tutorial — Un tutorial en el que seexplican diferentes formas de optimizar los archivos de configuración de xinetd establecidos pordefecto, de manera de poder alcanzar objetivos de seguridad específicos.

2.5.5.3. Libros relacionados• Hacking Linux Exposed por Brian Hatch, James Lee, y George Kurtz; Osbourne/McGraw-Hill

— Una herramienta de seguridad excelente con información acerca de encapsuladores TCP yxinetd.

2.6. KerberosLa seguridad e integridad del sistema dentro de la red puede ser complejo. Puede necesitarseel tiempo de varios administradores solo para poder conocer qué servicios son los que estánejecutándose en una red, y la manera en que están siendo utilizados.

Y más aún, la autenticación de usuarios en los servicios de red pueden ser peligrosa cuando losmétodos usados por el protocolo sean inherentemente inseguros, como lo demuestran los protocolostradicionales FTP y Telnet, que transfieren contraseñas no encriptadas sobre la red.

Kerberos es una forma de eliminar la necesidad de protocolos que permitan métodos inseguros deautenticación, por lo que mejora la seguridad general de la red.

Page 101: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

¿Qué es Kerberos?

91

2.6.1. ¿Qué es Kerberos?Kerberos es un protocolo de autenticación de red creado por el MIT (Massachusetts Institute ofTechnology), y utiliza una criptografía de llave simétrica 5 para autenticar a los usuarios de losservicios de red, lo que en pocas palabras significa que las contraseñas nunca son enviadas a travésde la red.

Consecuentemente, cuando los usuarios se autentican con servicios de red usando Kerberos, losusuarios no autorizados que intenten averiguar las contraseñas monitoreando el tráfico de red sonefectivamente bloqueados.

2.6.1.1. Ventajas de KerberosLa mayoría de los servicios convencionales de red utilizan esquemas de autenticación basadosen contraseñas. Estos esquemas piden que los usuarios se identifiquen en un servidor de reddeterminado mediante su nombre y contraseña. Desafortunadamente, la transmisión de los datospara la autenticación de muchos servicios no es encriptada. Para que este tipo de esquemas seanseguros, la red tiene que permanecer inaccesible a los usuarios extraños a ella, y todos los equipos ytodos los usuarios pertenecientes deben ser considerados confiables.

Aún si este es el caso, una red que se encuentre conectada a Internet no puede ser concebida comouna red segura. Cualquier atacante que obtenga acceso a la red puede utilizar un simple analizadorde paquetes, también conocido como "rastreador" de paquetes, para interceptar nombres de usuarioy contraseñas, comprometiendo las cuentas de usuario y la integridad de toda la infraestructura deseguridad.

El objetivo primario del diseño de Kerberos es eliminar la transmisión de contraseñas encriptadas enla red. Si se usa apropiadamente, Kerberos elimina efectivamente la amenaza de los husmeadores(sniffers) de paquetes en la red.

2.6.1.2. Desventajas de KerberosAunque Kerberos elimina una amenaza de seguridad común y severa, puede ser difícil deimplementar por una variedad de razones:

• Puede ser algo muy tedioso migrar las contraseñas de los usuarios de una base de datos UNIXestándar, como ser por ejemplo /etc/passwd o /etc/shadow hacia una base de datos paracontraseñas Kerberos, ya que no hay ningún mecanismo automatizado para realizar esta tarea.Consulte la pregunta 2.23 en el FAQ en línea de Kerberos:

http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html6

• Kerberos has only partial compatibility with the Pluggable Authentication Modules (PAM) systemused by most Fedora servers. Refer to Sección 2.6.4, “Kerberos y PAM” for more information aboutthis issue.

• Kerberos presupone que cada usuario es confiable, pero que está utilizando un equipo o unared que no lo es. Su objetivo principal es prevenir la transmisión en la red de contraseñas noencriptadas. Sin embargo, si alguien más tiene acceso al único equipo que envía los comprobantesutilizados para la autenticación — denominado el centro de distribución de claves (KDC, por lassiglas en inglés de Key Distribution Center) —, además del usuario correspondiente, entonces todoel sistema de autenticación Kerberos está corriendo riesgo.

Un sistema donde tanto el cliente como el servidor comparten una clave común que es utilizada para encriptar y desencriptarcomunicaciones a través de una red.

Page 102: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

92

• Para que una aplicación utilice Kerberos, su origen debe ser modificado para que puede realizarlas llamadas apropiadas a las bibliotecas de Kerberos. Las aplicaciones así modificadas sonconsideradas como compatibles con Kerberos, o kerberizadas. Para algunas, esto puede serbastante problemático debido al tamaño de la aplicación o debido a su diseño. Para otrasaplicaciones incompatibles, los cambios deben ser hechos de manera tal de permitir que el clientey el servidor puedan comunicarse. De nuevo, esto puede necesitar una programación extensa.Las aplicaciones de código propietario que no tienen soporte para Kerberos por defecto, son por logeneral las más problemáticas.

• Kerberos es una herramienta de tipo "todo o nada". Si Kerberos es utilizado en la red, cualquiercontraseña no encriptada transferida a un servicio no compatible con Kerberos (o no Kerberizado),se encuentra en riesgo. Por lo tanto, la red no obtiene beneficio alguno al utilizarlo. Para aseguraruna red con Kerberos, se debe utilizar versiones kerberizadas de todas las aplicaciones de tiposervidor/cliente que transmitan contraseñas no encriptadas, o que no utilicen ninguna de este tipode aplicaciones.

2.6.2. Terminología de KerberosKerberos tiene su propia terminología para definir varios aspectos del servicio. Antes de aprendercómo funciona Kerberos, es importante conocer algunos de los siguientes términos:

Servidor de autenticación (SA)Un servidor que envía comprobantes (o tickets) para un servicio determinado, comprobantesque en su momento serán enviados a los usuarios para que puedan acceder a ese servicio. ElAS responde con una petición a las solicitudes de los clientes que, o no tienen o no han enviadosus credenciales de autenticación. Generalmente, para tener acceso al servidor que emite lasgarantías de los comprobantes (TGS, por las siglas en inglés de Ticket-Granting Server), se envíaun comprobante de obtención de garantía de comprobante (TGT, Ticket-Granting Ticket). Porúltimo, el AS generalmente se ejecuta en el mismo equipo que el centro de distribución de claves(KDC, Key Distribution Center).

ciphertextDatos encriptados.

clienteUna entidad en la red (un usuario, equipo o aplicación) que puede recibir tickets desde Kerberos.

credencialesUn conjunto de credenciales electrónicas temporales que verifican la identidad de un cliente paraun servicio particular. También llamado ticket.

caché de credenciales o archivo de ticketUn archivo que contiene las claves para encriptar las comunicaciones entre un usuario y variosservicios de red. Kerberos 5 soporta un marco de trabajo para el uso de otros tipos de cache,tales como memoria compartida, pero los archivos son los más completamente soportados.

hash de encriptadoUn hash de una vuelta se usa para autenticar los usuarios. Estos son más seguros que usardatos no encriptados, pero todavía son relativamente fáciles de desencriptar para craqueadoresexperimentados.

Page 103: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Terminología de Kerberos

93

GSS-APILa Interfaz del Programa de la Aplicación de Servicios Generales de Seguridad (API, por lassiglas en inglés de Generic Security Service Application Program Interfaz), es un conjunto defunciones que proveen servicios de seguridad, definida en RFC-2743, publicada por el Equipode Tareas de Ingeniería de Internet. La API es utilizada por servicios y clientes para autenticarsemutuamente sin que sus programas posean conocimientos específicos de los mecanismossubyacentes. Si un servicio de red (como por ejemplo cyrus-IMAP) utiliza GSS-API, entoncespuede autenticarse mediante Kerberos.

hashTambién conocido como valor hash. Un valor generado por el paso de una cadena a través deuna función hash. Estos valores son típicamente usados para asegurar que los datos transmitidosno fueron interceptados y modificados.

función hashA way of generating a digital "fingerprint" from input data. These functions rearrange, transpose orotherwise alter data to produce a hash value.

keyLos datos usados cuando se encriptan o desencriptan otros datos. Los datos encriptados nopueden ser desencriptados sin una clave apropiada o una extrema buena suerte de parte delcraqueador.

centro de distribución de claves (KDC)Un servicio que emite tickets de Kerberos, y que usualmente corre en el mismo equipo que elservidor de garantía de ticket (TGS).

tabla de clave (keytab)Un archivo que incluye una lista no encriptada de principales con sus respectivas claves. Losservidores obtienen las claves que necesitan desde los archivos keytab en lugar de utilizarkinit. El archivo keytab establecido por defecto es /etc/krb5.keytab. El servidor queadministra el KDC /usr/kerberos/sbin/kadmind, es el único servicio que utiliza cualquierotro archivo (utiliza /var/kerberos/krb5kdc/kadm5.keytab).

kinitEl comando kinit permite a un principal que ya ingresó obtener y hacer caché del ticket inicialde garantía de tickets (TGT). Vaya a la página man de kinit para más información.

principal (o nombre principal)The principal is the unique name of a user or service allowed to authenticate using Kerberos. Aprincipal follows the form root[/instance]@REALM. For a typical user, the root is the same astheir login ID. The instance is optional. If the principal has an instance, it is separated from theroot with a forward slash ("/"). An empty string ("") is considered a valid instance (which differsfrom the default NULL instance), but using it can be confusing. All principals in a realm have theirown key, which for users is derived from a password or is randomly set for services.

reinadoUna red que use Kerberos, compuesta de uno o más servidores llamados KDCs y un númeropotencialmente grande de clientes.

servicioUn programa accedido por la red.

Page 104: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

94

ticketUn conjunto temporal de credenciales electrónicas que verifican la identidad de un cliente para unservicio particular. También llamados credenciales o comprobantes.

servidor de garantías de tickets (TGS)Un servidor que emite tickets para un servicio deseado que son a su vez dados a los usuariospara acceder al servicio. El TGS corre normalmente en el mismo equipo que el KDC.

ticket de garantía de ticket (TGT)Un ticket especial que permite al cliente obtener tickets adicionales sin aplicar nuevamente en elKDC.

contraseña no encriptadaUna contraseña en texto plano, legible al humano.

2.6.3. Como Funciona KerberosKerberos se diferencia de los métodos de autenticación de tipo nombre de usuario/contraseña. Enlugar de autenticar cada usuario en cada servicio de red, Kerberos utiliza encriptaciones simétricasy un servicio adicional confiable (un KDC), para autenticar usuarios en conjunto de servicios de red.Cuando un usuario se autentica en el KDC, el KDC devuelve a la máquina del usuario en cuestión uncomprobante específico para esa sesión, y cualquier servicio kerberizado busca el comprobante en lamáquina del usuario, en lugar de pedir que el usuario se autentique utilizando una contraseña.

Cuando un usuario kerberizado de una red se loguea en su estación de trabajo, su principal esenviado al KDC como parte de un pedido para un TGT del servidor de Autenticación. Este pedidopuede ser enviado por el programa de logueo de modo que sea transparente para el usuario, o puedeser enviado por el programa kinit luego que el usuario se haya logueado.

El KDC entonces verifica con el principal en su base de datos. Si el principal es encontrado, el KDCcrea un TGT, que se encripta usando la clave del usuario y se lo devuelve a ese usuario.

El login, o programa kinit en el cliente, se encarga de desencriptar el TGT utilizando la clave delusuario, que se analiza desde la contraseña del usuario. La clave del usuario es utilizada sólo en lamáquina cliente y no se transmite en la red.

El TGT es configurado para que caduque en un determinado período de tiempo (generalmente dediez a veinticuatro horas), y es almacenado en el caché de credenciales en la máquina del cliente. Untiempo de expiración es definido para que, en el supuesto caso que exista un TGT vulnerado, puedaser utilizado por un atacante sólo durante un breve período de tiempo. Luego que se ha emitido unTGT, el usuario no necesita reingresar su contraseña hasta que este no expire, o hasta que hayafinalizado su sesión, y haya vuelto a iniciarla.

Siempre que el usuario necesite acceso a un servicio de red, el software del cliente utiliza el TGT parapedirle al TGS un nuevo comprobante específicamente para ese servicio. El comprobante del servicioes entonces utilizado para autenticar de manera transparente al usuario frente al servicio en cuestión.

Page 105: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Kerberos y PAM

95

AdvertenciaEl sistema Kerberos puede ser vulnerado si un usuario en la red se autentica frente a unservicio no kerberizado transmitiendo una contraseña con formato de texto simple. Lautilización de servicios no kerberizados es altamente desalentada. Entre tales servicios seencuentra Telnet y FTP. Es preferible la utilización de otros protocolos encriptados, comoservicios asegurados mediante SSH o SSL, aunque no es lo ideal.

This is only a broad overview of how Kerberos authentication works. Refer to Sección 2.6.10,“Recursos adicionales” for links to more in-depth information.

NotaKerberos depende de los siguientes servicios de red para funcionar correctamente.• Sincronización de reloj aproximado entre las máquinas de la red.

A clock synchronization program should be set up for the network, such as ntpd. Referto /usr/share/doc/ntp-<version-number>/index.html for details on settingup Network Time Protocol servers (where <version-number> is the version numberof the ntp package installed on your system).

• Servicio de Nombre de Dominio (DNS).

You should ensure that the DNS entries and hosts on the network are all properlyconfigured. Refer to the Kerberos V5 System Administrator's Guide in /usr/share/doc/krb5-server-<version-number> for more information (where <version-number> is the version number of the krb5-server package installed on yoursystem).

2.6.4. Kerberos y PAMLos servicios kerberizados actualmente no utilizan módulos de autenticación conectables (PAM, porlas siglas en inglés de Pluggable Authentication Modules) — estos servicios evitan completamentea PAM. Sin embargo, las aplicaciones que utilicen PAM pueden utilizar a Kerberos para autenticarsesi el módulo pam_krb5 (provisto en el paquete pam_krb5) se encuentra instalado. El paquetepam_krb5 contiene archivos de ejemplos de configuración que permiten que servicios como logino gdm puedan autenticar usuarios al mismo tiempo que obtienen credenciales de inicio utilizandosus contraseñas. Si el acceso a los servicios de red es siempre realizado utilizando servicioskerberizados, o servicios que utilicen GSS-API como por ejemplo lo es IMAP, entonces puedeconsiderarse a la red como razonablemente segura.

ImportanteLos administradores deben tener la precaución de no permitir que los usuarios seautentiquen a determinados servicios de red, utilizando contraseñas Kerberos. Muchosprotocolos utilizados por estos servicios no encriptan las contraseñas antes de enviarlasa través de la red, destruyendo los beneficios del sistema Kerberos. Por ejemplo, losusuarios no deberían tener permitido autenticarse a servicios Telnet con la mismacontraseña que utilizan para la autenticación en Kerberos.

Page 106: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

96

2.6.5. Configurando un servidor Kerberos 5Cuando se configure Kerberos, primero instale el KDC. Si es necesario configurar servidoresesclavos, instale el maestro primero.

Para configurar el primer KDC de Kerberos, siga estos pasos:

1. Asegúrese que la sincronización de hora y DNS estén funcionando correctamente en todos losclientes y máquinas del servidor antes de continuar Kerberos. Preste una atención especial a lasincronización entre el servidor Kerberos y sus clientes. Si la diferencia horaria entre el servidor yel cliente es mayor a cinco minutos (esto es configurable en Kerberos 5), los clientes de Kerberosno podrán autenticarse en el servidor. Esta sincronización es necesaria para prevenir que unatacante utilice un comprobante antiguo de Kerberos enmascarado como el de un usuario válido.

It is advisable to set up a Network Time Protocol (NTP) compatible client/server network even ifKerberos is not being used. Fedora includes the ntp package for this purpose. Refer to /usr/share/doc/ntp-<version-number>/index.html (where <version-number> is theversion number of the ntp package installed on your system) for details about how to set upNetwork Time Protocol servers, and http://www.ntp.org for more information about NTP.

2. Instale los paquetes krb5-libs, krb5-server y krb5-workstation en la máquina dedicadaque correrá KDC. Esta máquina necesita ser muy segura — si es posible, no debe correr ningúnotro servicio más que KDC.

3. Edite los archivos de configuración /etc/krb5.conf y /var/kerberos/krb5kdc/kdc.confpara reflejar el nombre del reinado y los mapeos dominio-a-reinado. Un reinado simple puedeser construido reemplazando instancias de EJEMPLO.COM y ejemplo.com con el nombrecorrecto del dominio — siendo seguro mantener la forma correcta de los nombres en mayúsculay en mínuscula — y cambiando el KDC de kerberos.elemplo.com al nombre del servidorkerberos. Por convención, todos los nombres de reinados se escriben en mayúsculas, y todoslos nombres de equipos y de dominios DNS en minúsculas. Para obtener información detalladaacerca de los formatos de estos archivos de configuración, consulte sus respectivas páginasman.

4. Genere la base de datos usando el utilitario kdb5_util desde una terminal:

/usr/kerberos/sbin/kdb5_util create -s

El comando create genera la base de datos que almacena las clves para el reinado deKerberos. El interruptor -s obliga a la creación de un archivo stash en el cual la clave del servidorprincipal es almacenada. Si no existe un archivo stash desde donde poder leer la clave, elservidor kerberos (krb5kdc) le pedirá al usuario que ingrese la contraseña principal del servidor(que puede ser utilizada para generar nuevamente la clave) cada vez que se inicie.

5. Edite el archivo /var/kerberos/krb5kdc/kadm5.acl. Este archivo es usado por kadmindpara determinar qué principales tienen acceso administrativo a la base de datos de Kerberos ysus niveles de acceso. La mayoría de las organizaciones pueden obtenerlo por una única línea:

*/[email protected] *

La mayoría de los usuarios se representan en la base de datos por un principal único (conuna instancia NULL, o vacía, tal como [email protected]). En esta configuración,los usuarios con un segundo principal con una instancia de admin (por ejemplo, juan/

Page 107: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configurando un servidor Kerberos 5

97

[email protected]) pueden manejar con poder completo sobre el reinado de la base dedatos de Kerberos.

Después de que se inicie kadmind en el servidor, cualquier usuario puede acceder sus serviciosejecutando kadmin en cualquier cliente o servidores en el reino. Sin embargo, sólo los usuarioslistados en el archivo kadm5.acl pueden modificar la base de datos de ninguna forma, exceptopara cambiar sus propias contraseñas.

NotaLa herramienta kadmin permite la comunicación con el servidor kadmind a travésde la red, y utiliza kerberos para manipular la autenticación. Consecuentemente, elprimer principal debe existir previamente antes de intentar conectarse con el servidora través de la red para administrarlo. Genere el primer principal con el comandokadmin.local, que ha sido específicamente diseñado para ser utilizado en elmismo equipo en el que funciona el KDC, y no utiliza Kerberos para su autenticación.

Ingrese el comando siguiente kadmin.local en la terminal KDC para crear el primer principal:

/usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"

6. Inicie Kerberos usando los siguientes comandos:

/sbin/service krb5kdc start/sbin/service kadmin start/sbin/service krb524 start

7. Agregue principales para los usuarios mediante el comando addprinc dentro de kadmin.kadmin y kadmin.local son interfaces de líneas de comando al KDC. Como este, existendisponibles otros comandos — como por ejemplo addprinc — luego de iniciar el programakadmin. Para obtener mas información, consulte la página man de kadmin.

8. Verifique que KDC está emitiendo tiques. Primero, corra kinit para obtener un tique y guardarloen un archivo cache de credencial. Luego, use klist para ver la lista de credenciales en elcaché y use kdestroy para destruir el caché y las credenciales que contiene.

NotaBy default, kinit attempts to authenticate using the same system login username(not the Kerberos server). If that username does not correspond to a principal in theKerberos database, kinit issues an error message. If that happens, supply kinitwith the name of the correct principal as an argument on the command line (kinit<principal>).

Una vez que estos pasos sean completados, el servidor Kerberos ya debería estar listo yejecutándose.

Page 108: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

98

2.6.6. Configuración de un Cliente Kerberos 5Configurar un cliente de Kerberos 5 es menos complicado que configurar un servidor. Como mínimo,instale los paquetes del cliente y otórguele a cada cliente un archivo de configuración krb5.confválido. Mientras que ssh y slogin son los métodos preferidos para loguearse remotamente ensistemas cliente, las versiones Kerberizadas de rsh y rlogin siguen estando disponibles, aunquepara habilitarlas es necesario realizar algunos cambios adicionales en la configuración.

1. Be sure that time synchronization is in place between the Kerberos client and the KDC. Refer toSección 2.6.5, “Configurando un servidor Kerberos 5” for more information. In addition, verify thatDNS is working properly on the Kerberos client before configuring the Kerberos client programs.

2. Instale los paquetes krb5-libs y krb5-workstation en todas las máquinas clientes. Proveaun archivo /etc/krb5.conf válido para cada cliente (normalmente este puede ser el mismoarchivo krb5.conf usado por el KDC).

3. Antes que una estación de trabajo del reinado pueda utilizar a Kerberos para autenticar losusuarios que se conectan mediante ssh, o mediante los rsh o rlogin Kerberizados, debe tenersu propio equipo principal en la base de datos de Kerberos. Los programas de servidor sshd,kshd, y klogind, necesitan todos acceder a las llaves para los servicios del host principal.Además, para poder utilizar los servicios kerberizados rsh y rlogin, esa estación de trabajodebe tener el paquete xinetd instalado.

Al utilizar kadmin se agrega un principal de equipo para la estación de trabajo en el KDC. Eneste caso, la instancia es el nombre del equipo de la estación de trabajo. Utilice la opción -randkey para el comando addprinc de kadmin, para crear el principal y asignarle una llave enforma azarosa:

addprinc -randkey host/bla.ejemplo.com

Ahora que se ha creado el principal, las claves se pueden extraer para la estación trabajoejecutando kadmin en la misma estación de trabajo y usando el comando ktadd dentro dekadmin:

ktadd -k /etc/krb5.keytab host/bla.ejemplo.com

4. Para usar otros servicios de red kerberizados, primero deben iniciarse. A continuaciónmostramos una lista de los servicios kerberizados comunes y las instrucciones acerca de cómohabilitarlos:

• ssh — OpenSSH usa GSS-API para autenticar los usuarios en los servidores si laconfiguración del cliente y del servidor tienen ambas GSSAPIAuthentication habilitado.Si el cliente tiene también GSSAPIDelegateCredentials habilitado, las credenciales delusuario se hacen disponibles en el sistema remoto.

• rsh y rlogin — Para usar las versiones kerberizadas de rsh y rlogin, habilite klogin,eklogin y kshell.

• Telnet — Para usar Telnet kerberizado, debe habilitar krb5-telnet.

• FTP — Para proveer acceso FTP, crear y extraer una clave para el principal con una raíz deftp. Asegúrese de poner la instancia al nombre de equipo completo del servidor FTP, luegohabilite gssftp.

Page 109: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Mapeo dominio-a-reinado

99

• IMAP — Para utilizar un servidor kerberizado IMAP, el paquete cyrus-imap utilizará Kerberos5, si también se encuentra instalado el paquete cyrus-sasl-gssapi. El paquete cyrus-sasl-gssapi contiene el complemento Cyrus SASL que tiene soporte para autenticaciónGSS-API. Cyrus IMAP debería funcionar correctamente con Kerberos siempre y cuando elusuario cyrus sea capaz de encontrar la clave correspondiente en /etc/krb5.keytab, yque la raíz para el principal esté definida para imap (creada con kadmin).

Una alternativa a cyrus-imap se puede encontrar en el paquete dovecot, que también seincluye en Fedora. Este paquete contiene un servidor IMAP pero no da soporte a GSS-API yKerberos por el momento.

• CVS — Para usar un servidor CVS kerberizado, gserver usa un principal con una raíz de cvsy por lo demás es idéntico al servidor CVS pserver.

2.6.7. Mapeo dominio-a-reinadoCuando un cliente intenta acceder a un servicio que corre en un servidor particular, sabe el nombredel (equipo) del servicio y el nombre del servidor (foo.ejemplo.com), pero como se pueden desplegarmás de un reinado en su red, debe averiguar el nombre del reinado en el que reside el servicio.

Por defecto, el nombre del territorio se toma como el nombre de dominio DNS del servidor, enmayúsculas.

foo.example.org → EXAMPLE.ORG foo.example.com → EXAMPLE.COM foo.hq.example.com → HQ.EXAMPLE.COM

En algunas configuraciones esto será suficiente, pero en otras, el nombre del reinado derivado seráel nombre de un reinado no existente. En estos casos, el mapeo desde el nombre del dominio DNSdel servidor, hacia su reinado, debe estar especificado en la sección domain_realm del sistemakrb5.conf del cliente. Por ejemplo:

[domain_realm].ejemplo.com = EJEMPLO.COMejemplo.com = EJEMPLO.COM

The above configuration specifies two mappings. The first mapping specifies that any system in the"example.com" DNS domain belongs to the EXAMPLE.COM realm. The second specifies that asystem with the exact name "example.com" is also in the realm. (The distinction between a domainand a specific host is marked by the presence or lack of an initial ".".) The mapping can also be storeddirectly in DNS.

2.6.8. Configurando KDCs secundariosPor diversas razones, usted puede elegir ejecutar varios KDCs para un reinado dado. En esteescenario, un KDC (el KDC maestro) conserva una copia modificable de la base de datos del reinado,y ejecuta kadmind (que también es el admin server de su reinado), y uno o más KDCs (esclavos)conservan copias de solo lectura de la base de datos, y ejecutan kpropd.

El procedimiento de propagación maestro-esclavo requiere que el KDC maestro vuelque su base dedatos a un archivo de volcado temporal y luego transmita ese archivo a cada uno de sus esclavos,

Page 110: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

100

que luego sobreescriben sus copias sólo lectura de la base de datos recibidas antes, con el contenidodel archivo de volcado.

Para configurar un KDC esclavo, primero asegúrese que los archivos krb5.conf y kdc.conf delKDC maestro fueron copiados al KDC esclavo.

Inicie kadmin.local desde una consola raíz en el KDC maestro, y utilice su comandoadd_principal para crear una nueva entrada para el servicio host del KDC maestro, y luego utilicesu comando ktadd para definir una llave aleatoria para el servicio, y al mismo tiempo almacenarlaen el archivo keytab establecido por defecto. Esta llave será utilizada por el comando kprop paraautenticarse a los servidores esclavos. Usted necesitará hacer esto sólo una vez, sin importar lacantidad de servidores esclavos que tenga instalados.

# kadmin.local -r EXAMPLE.COM Authenticating as principal root/[email protected] with password.

kadmin: add_principal -randkey host/masterkdc.example.com

Principal "host/host/[email protected]" created.

kadmin: ktadd host/masterkdc.example.com

Entry for principal host/masterkdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.

Entry for principal host/masterkdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.

Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.

Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab. kadmin: quit

Inicie kadmin como usuario root desde una terminal en el KDC esclavo, y utilice el comandoadd_principal para crear una nueva entrada para su servicio host. Luego utilice el comandoktadd, de kadmin, para establecer (y al mismo tiempo almacenar) en el archivo keytab del esclavo,una llave aleatoria para el servicio. Esta llave es utilizada por el servicio kpropd cuando se necesiteautenticar a los clientes.

# kadmin -p jimbo/[email protected] -r EXAMPLE.COM

Authenticating as principal jimbo/[email protected] with password.

Password for jimbo/[email protected]:

kadmin: add_principal -randkey host/slavekdc.example.com

Principal "host/[email protected]" created.

kadmin: ktadd host/[email protected]

Entry for principal host/slavekdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.

Entry for principal host/slavekdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.

Page 111: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configurando la autenticación cruzada de reinados

101

Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.

Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab.

kadmin: quit

Con la clave de este servicio, el KDC esclavo puede autenticar a cualquier cliente que intenteconectarse a él. Obviamente, no a todos ellos debería permitírsele proveer el servicio esclavo kpropcon una nueva base de datos del reinado. Para restringir el acceso, el servicio kprop en el KDCesclavo solo aceptará actualizaciones de clientes cuyos nombre de principal estén listados en /var/kerberos/krb5kdc/kpropd.acl. Agregue el nombre del equipo KDC maestro a esa lista.

# echo host/[email protected] > /var/kerberos/krb5kdc/kpropd.acl

Una vez que el KDC esclavo haya obtenido una copia de la base de datos, necesitará tambiénla clave maestra que ha sido utilizada para encriptarlo. Si la llave maestra de su base de datosKDC ha sido almacenada en un archivo stash del KDC maestro (generalmente denominada /var/kerberos/krb5kdc/.k5.REALM), cópiela en el KDC esclavo utilizando cualquier métododisponible que sea seguro, o cree una base de datos y un archivo escondite falsos en el KDC esclavoejecutando kdb5_util create -s (la base de datos falsa será sobreescrita con la primerapropagación de base de datos que sea exitosa), e indicando la misma contraseña.

Asegúrese que el cortafuego del KDC esclavo permite al KDC maestro contactarlo usando el puerto754 con TCP (krb5_prop), e inicie el servicio kprop. Luego, vuelva a chequear si el servicio kadminestá deshabilitado.

Ahora realice una prueba manual de propagación de la base de datos volcando la base de datos delreinado, en el KDC maestro, al archivo de datos predeterminado desde donde el comando kpropleerá (/var/kerberos/krb5kdc/slave_datatrans) y luego use el comando kprop paratransmitir su contenido al KDC esclavo.

# /usr/kerberos/sbin/kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans# kprop slavekdc.example.com

Usando kinit, verifique que un sistema cliente cuyo krb5.conf liste sólo el KDC esclavo en sulista de KDCs para su reinado, pueda ahora obtener correctamente las credenciales iniciales del KDCesclavo.

Hecho esto, simplemente cree un script que vuelque la base de datos del reinado y ejecute elcomando kprop para transmitir la base de datos a cada KDC esclavo por vez, y configure el serviciocron para correr el script periódicamente.

2.6.9. Configurando la autenticación cruzada de reinadosLa autenticación cruzada de reinado es el término usado para describir situaciones en que los clientes(normalmente usuarios) de un reinado utilizan Kerberos para autenticarse con servicios (típicamenteprocesos servidor corriendo en un sistema servidor particular) que pertenecen a otro reinado distintoal propio.

Para el caso más simple, para que un cliente de un reinado con nombre A.EJEMPLO.COM accedaa un servicio en el reinado B.EJEMPLO.COM, ambos reinados deben compartir una clave para el

Page 112: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

102

principal con nombre krbtgt/[email protected], y ambas claves deben tener elmismo número de versión de clave asociadas a ellas.

Para hacer esto, debe seleccionar una contraseña o frase de acceso muy fuerte y crear una entradapara el principal de ambos reinados usando kadmin.

# kadmin -r A.EXAMPLE.COM kadmin: add_principal krbtgt/[email protected] Enter password for principal "krbtgt/[email protected]": Re-enter password for principal "krbtgt/[email protected]": Principal "krbtgt/[email protected]" created. quit # kadmin -r B.EXAMPLE.COM kadmin: add_principal krbtgt/[email protected] Enter password for principal "krbtgt/[email protected]": Re-enter password for principal "krbtgt/[email protected]": Principal "krbtgt/[email protected]" created. quit

Use el comando get_principal para verificar que ambas entradas tienen un número de versión declaves (valores kvno) y tipos de encriptados coincidentes.

El volcado de la base de datos no lo haceLos administradores conscientes de los procesos de seguridad, podrían intentar utilizarla opción -randkey del comando add_principal, para asignar una clave aleatoria enlugar de una contraseña, descargar la nueva entrada desde una base de datos del primerreinado, e importarla al segundo. Esto no va a funcionar a menos que las claves maestrasde la base de datos del reinado sean idénticas, ya que las claves contenidas en una basede datos descargada, son encriptadas utilizando la clave maestra.

Los clientes en el reinado A.EJEMPLO.COM son capaces ahora de autenticarse en los servicios delreinado B.EJEMPLO.COM. Dicho de otra manera, el reinado B.EJEMPLO.COM ahora confía en elreinado A.EJEMPLO.COM, o, más sencillo aún, ahora B.EJEMPLO.COM confía en A.EJEMPLO.COM.

Esto nos lleva a un punto importante: la confianza generada entre los reinados es, por defecto,unidireccional. El KDC para el reinado B.EJEMPLO.COM podría confiar en clientes del reinadoA.EJEMPLO.COM para autenticarse en sus servicios, pero este hecho no significa que el reinadoA.EJEMPLO.COM confíe en los clientes del reinado B.EJEMPLO.COM cuando estos intentenautenticarse en sus servicios. Para establecer una confianza bidireccional entre dos reinados, ambosvan a necesitar compartir claves para el servicio krbtgt/[email protected] (tomenota de la forma invertida de acuerdo a los dos reinados comparados en el ejemplo anterior).

Si las relaciones de confianza directa fueran la única manera de hacer que dos reinados confíenentre sí, sería bastante complicado configurar redes con gran cantidad de ellos. Afortunadamente, laconfianza generada entre reinados es transitiva. Si los clientes del reinado A.EJEMPLO.COM puedenautenticarse en servicios del reinado B.EJEMPLO.COM, y los clientes del reinado B.EJEMPLO.COMpueden autenticarse en servicios del reinado C.EJEMPLO.COM, entonces los clientes deA.EJEMPLO.COM pueden también autenticarse en los servicios del reinado C.EJEMPLO.COM, aúncuando C.EJEMPLO.COM no confíe directamente en los clientes del reinado A.EJEMPLO.COM. Estosignifica que lo ideal para poder reducir la cantidad de esfuerzo al configurar una red con múltiplesreinados, que necesiten confiar unos en otros, será realizar las elecciones correctas a la hora dedefinir las relaciones de confianza entre ellos.

Ahora se enfrenta a problemas más convencionales: el sistema cliente debe ser configurado paraque pueda deducir apropiadamente el reinado al que un servicio particular pertenece, y debe poderdeterminar cómo obtener las credenciales en ese reinado.

Page 113: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configurando la autenticación cruzada de reinados

103

Vayamos en orden: el nombre del principal para un servicio provisto desde un sistema servidorespecífico en un reinado dado normalmente es parecido a:

service/[email protected]

En el ejemplo siguiente, el servicio es generalmente, o bien el nombre del protocolo en uso (otrosvalores comunes pueden ser ldap, imap, cvs, y HTTP), o bien equipo. server.ejemplo.com es elnombre del dominio del sistema completamente calificado que ejecuta el servicio, y EJEMPLO.COM esel nombre del reinado.

Para deducir el dominio al que el servicio pertenece, los clientes por lo general consultan el DNS ola sección domain_realm del archivo /etc/krb5.conf para mapear ya sea el nombre del equipo(server.ejemplo.com) o el nombre del dominio DNS (.ejemplo.com) hacia el nombre del reinado(EJEMPLO.COM).

Habiendo determinado a qué reinado pertenece el servicio, un cliente tiene que determinar luego elconjunto de reinados que debe contactar y en qué orden debe hacerlo, para obtener las credencialesa usar en la autenticación con el servicio.

Esto se puede hacer de una o dos formas.

El método establecido por defecto, que no requiere una configuración explícita, es dar a losreinados nombres dentro de una jerarquía compartida. Como ejemplo, suponer los reinadosllamados A.EJEMPLO.COM, B.EJEMPLO.COM, and EJEMPLO.COM. Cuando un cliente del reinadoA.EJEMPLO.COM intente autenticarse en un servicio del reinado B.EJEMPLO.COM, por defecto, loprimero que hará será intentar obtener credenciales para el reinado EJEMPLO.COM, y luego utilizaresas credenciales para obtener unas nuevas para poder utilizarlas en el reinado B.EJEMPLO.COM.

The client in this scenario treats the realm name as one might treat a DNS name. It repeatedly stripsoff the components of its own realm's name to generate the names of realms which are "above" it inthe hierarchy until it reaches a point which is also "above" the service's realm. At that point it beginsprepending components of the service's realm name until it reaches the service's realm. Each realmwhich is involved in the process is another "hop".

For example, using credentials in A.EXAMPLE.COM, authenticating to a service inB.EXAMPLE.COMA.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM• A.EJEMPLO.COM y EJEMPLO.COM comparten una clave para krbtgt/[email protected]

• EJEMPLO.COM y B.EJEMPLO.COM comparten una clave krbtgt/[email protected]

Another example, using credentials in SITE1.SALES.EXAMPLE.COM, authenticating to a servicein EVERYWHERE.EXAMPLE.COMSITE1.SALES.EXAMPLE.COM → SALES.EXAMPLE.COM →EXAMPLE.COM → EVERYWHERE.EXAMPLE.COM• SITIO1.VENTAS.EJEMPLO.COM y VENTAS.EJEMPLO.COM comparten una clave para krbtgt/[email protected]

• VENTAS.EJEMPLO.COM y EJEMPLO.COM comparten una clave para krbtgt/[email protected]

• EJEMPLO.COM y CUALQUIERLUGAR.EJEMPO.COM comparten una clave para krbtgt/[email protected]

Page 114: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

104

Another example, this time using realm names whose names share no common suffix(DEVEL.EXAMPLE.COM and PROD.EXAMPLE.ORG DEVEL.EXAMPLE.COM → EXAMPLE.COM → COM→ ORG → EXAMPLE.ORG → PROD.EXAMPLE.ORG• DEVEL.EJEMPLO.COM y EJEMPLO.COM comparten una clave para krbtgt/[email protected]

• EJEMPLO.COM y COM comparten una clave para krbtgt/[email protected]

• COM y ORG comparten una clave para krbtgt/ORG@COM

• ORG y EJEMPLO.ORG comparten una clave para krbtgt/EJEMPLO.ORG@ORG

• EJEMPLO.ORG y PROD.EJEMPLO.ORG comparten una clave para krbtgt/[email protected]

El método más complicado, pero que al mismo tiempo es el más flexible, reside en configurar lasección capaths del archivo /etc/krb5.conf, de modo que los clientes que tengan credencialespara un reinado específico, deberán buscar qué reinado es el que le sigue en la cadena y que,eventualmente, será quien permita su autenticación con los servidores.

The format of the capaths section is relatively straightforward: each entry in the section is namedafter a realm in which a client might exist. Inside of that subsection, the set of intermediate realms fromwhich the client must obtain credentials is listed as values of the key which corresponds to the realm inwhich a service might reside. If there are no intermediate realms, the value "." is used.

Aquí hay un ejemplo:

[capaths] A.EXAMPLE.COM = { B.EXAMPLE.COM = . C.EXAMPLE.COM = B.EXAMPLE.COM D.EXAMPLE.COM = B.EXAMPLE.COM D.EXAMPLE.COM = C.EXAMPLE.COM }

En este ejemplo, los clientes en el reinado A.EJEMPLO.COM pueden obtener credenciales dereinados cruzados para B.EJEMPLO.COM directamente del KDC de A.EJEMPLO.COM.

Si esos clientes desean contactar un servicio en el reinado C.EJEMPLO.COM, necesitaránobtener primero credenciales necesarias del reinado B.EJEMPLO.COM (esto requiere quekrbtgt/[email protected] exista), y entonces utilizar esas credencialespara obtener otras para ser utilizadas en el reinado C.EJEMPLO.COM (utilizando krbtgt/[email protected]).

Si esos clientes desean contactar un servicio en el reinado D.EJEMPLO.COM, necesitarán obtenerprimero las credenciales necesarias del reinado B.EJEMPLO.COM, y luego las credenciales delreinado C.EJEMPLO.COM, antes de obtener, finalmente, las credenciales necesarias para utilizar conel reinado D.EJEMPLO.COM.

Page 115: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Recursos adicionales

105

NotaSin una entrada que indique lo contrario, Kerberos asume que las relaciones de confianzade reinados cruzados forman una jerarquía.

Clients in the A.EXAMPLE.COM realm can obtain cross-realm credentials fromB.EXAMPLE.COM realm directly. Without the "." indicating this, the client would insteadattempt to use a hierarchical path, in this case:

A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM

2.6.10. Recursos adicionalesPara más información sobre Kerberos, consulte las fuentes que indicamos a continuación.

2.6.10.1. Documentación Instalada de Kerberos• The Kerberos V5 Installation Guide and the Kerberos V5 System Administrator's Guide in PostScript

and HTML formats. These can be found in the /usr/share/doc/krb5-server-<version-number>/ directory (where <version-number> is the version number of the krb5-serverpackage installed on your system).

• The Kerberos V5 UNIX User's Guide in PostScript and HTML formats. These can be found in the/usr/share/doc/krb5-workstation-<version-number>/ directory (where <version-number> is the version number of the krb5-workstation package installed on your system).

• Páginas man de Kerberos — Hay un número de páginas man para las varias aplicaciones yarchivos de configuración involucrados con una implementación de Kerberos. La siguiente es unalista de algunas de las páginas man más importantes.

Aplicaciones cliente• man kerberos — Una introducción al sistema Kerberos que describe cómo funcionan las

credenciales y provee recomendaciones para obtener y destruir tickets de Kerberos. Al finalde la página man hay referencias hacia otras páginas man relacionadas con el tema.

• man kinit — Describe cómo usar este comando para obtener y hacer caché de un ticketde garantía de tickets.

• man kdestroy — Describe cómo usar este comando para destruir las credenciales deKerberos.

• man klist — Describe cómo usar este comando para listar las credenciales cacheadas deKerberos.

Aplicaciones administrativas• man kadmin — Describe cómo usar este comando para administrar con la base de datos de

Kerberos V5.

• man kdb5_util — Describe cómo usar este comando para crear y realizar funcionesadministrativas de bajo nivel en la base de datos de Kerberos V5.

Page 116: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

106

Aplicaciones de servidor• man krb5kdc — Describe las opciones de la línea de comando del KDC de Kerberos V5.

• man kadmind — Describe las opciones de la línea de comando para el servidor deadministración de Kerberos V5.

Archivos de configuración• man krb5.conf — Describe el formato y las opciones disponibles dentro del archivo de

configuración para la biblioteca de Kerberos V5.

• man kdc.conf — Describe el formato y las opciones disponibles dentro del archivo deconfiguración del AS y el KDC de Kerberos V5.

2.6.10.2. Páginas web útiles sobre Kerberos• http://web.mit.edu/kerberos/www/ — Kerberos: El Protocolo de Autenticación de Red del MIT.

• http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html — Las Preguntas Frecuentes deKerberos (FAQ).

• ftp://athena-dist.mit.edu/pub/kerberos/doc/usenix.PS — La versión PostScript de Kerberos: UnServicio de Untenticación para Sistemas de Red Abierta por Jennifer G. Steiner, Clifford Neuman,y Jeffrey I. Schiller. Este documento es el impreso original que describe el funcionamiento deKerberos.

• http://web.mit.edu/kerberos/www/dialogue.html — Construyendo un sistema de Autenticación:Diálogo en Cuatro Escenas originalmente realizado por Bill Bryant en 1988, modificado porTheodore Ts'o en 1997. Este documento es una conversación entre dos desarrolladores que estánpensando en la creación de un sistema de autenticación, con un estilo similar al de Kerberos. Elestilo de diálogo con el que se muestra la discusión lo convierte en un excelente punto de partidapara aquellos que no conozcan absolutamente nada acerca de Kerberos.

• http://www.ornl.gov/~jar/HowToKerb.html — Cómo Kerberizar su sitio es una buena referencia parakerberizar su red.

• http://www.networkcomputing.com/netdesign/kerb1.html — Manual de Diseño de Red con Kerberoses un repaso extenso sobre el sistema Kerberos.

2.7. Redes privadas virtuales (VPNs, por las iniciales eninglés de Virtual Private Networks)Las organizaciones con diferentes oficinas satélites, a menudo se conectan entre ellas mediantelíneas constituidas específicamente para proteger los datos vitales y asegurar la eficacia en sutransferencia. Por ejemplo, muchos comercios utilizan líneas de frame relay o Modo de Transferenciano Sincronizada (ATM, por las iniciales en inglés de Asynchronous Transfer Mode) como unaherramienta de comunicaciones de tipo punto-a-punto para enlazar una oficina con el resto. Estepuede llegar a ser un recurso algo costoso, especialmente para pequeñas o medianas empresas,que quieren expandirse sin tener que pagar los altos costos que involucra la utilización de circuitosdigitales a medida, generalmente utilizados por empresas de mayor poder adquisitivo.

Para poder cubrir estas necesidades, se han desarrollado las Redes Privadas Virtuales (VPNs).Utilizando los mismos principios de funcionamiento que los circuitos a medida, las VPNs permiten

Page 117: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

¿Cómo funciona una VPN?

107

comunicaciones digitales seguras entre dos elementos (o redes), creando una Red de Area Global(WAN, por las iniciales en inglés de Wide Area Network) a partir de Redes de Area Local (LANs, LocalArea Networks) existentes. La diferencia entre frame relay o ATM reside en el medio de transporteque se utiliza. Las VPNs transmiten sobre IP mediante la utilización de datagramas como su medio detransporte, convirtiéndolas en un conducto seguro a través de Internet hacia un destino específico. Lamayoría de las implementaciones VPN de software libre incorporan estándares abiertos de métodosde encriptación para, posteriormente, enmascarar los datos en tránsito.

Algunas organizaciones utilizan herramientas VPN de hardware para incrementar la seguridad,mientras que otras utilizan software, o implementaciones derivadas en protocolos. Muchosproveedores ofrecen herramientas VPN de hardware, como Cisco, Nortel, IBM y Checkpoint. Existeuna herramienta gratuita de software VPN para Linux denominada FreeS/Wan que utiliza unaimplementación estandarizada del Protocolo de Seguridad de Internet (IPsec, por las iniciales eninglés de Internet Protocol Security). Estas herramientas VPN, ya sean derivadas de hardware ode software, trabajan como enrutadores especializados que existen entre la conexión IP desde unaoficina hacia otra.

2.7.1. ¿Cómo funciona una VPN?Cuando un paquete se transmite desde un cliente, se envía a través del enrutador o puerta de enlaceVPN, que le añade un Encabezado de autenticación (AH, por las iniciales en inglés de AuthenticationHeader) para su enrutamiento y autenticación. Los datos son entonces encriptados y, por último,empaquetados con una Carga Util de Seguridad por Encapsulado (ESP, por las inicales en inglés deEncapsulating Security Payload). Esto, más adelante, constituye las instrucciones de desencriptado yentrega.

El enrutador VPN que recibe los paquetes, quita la información de los cabezales, decripta los datosy los envía a su destinatario (ya sea una estación de trabajo u otro nodo en la red). Utilizando unaconexión de tipo red-a-red, el nodo receptor en la red local recibe los paquetes ya decriptados y listospara su procesamiento. El proceso de encriptado/decriptado en una conexión VPN de tipo red-a-redes transparente al nodo local.

Con tal alto nivel de seguridad, un atacante no solo debe tener que poder interceptar el paquete,sino que además tiene que decriptarlo. Los intrusos que utilizan ataques de tipo intermediario entreun servidor y el cliente, deben tener también acceso a, como mínimo, una de las claves privadaspara autenticar sesiones. debido a que se utilizan diferentes capas en el proceso de encriptación ydecriptación, las VPNs son medios seguros y efectivos de conectar múltiples nodos remotos y poderactuar como una intranet unificada.

2.7.2. VPNs y FedoraFedora ofrece varias opciones en términos de implementar herramientas de software para conectarsede manera segura en una WAN. La utilización de Protocolos de Seguridad de Internet (IPsec), es laherramienta VPN para Fedora, y cubre adecuadamente las necesidades de las organizaciones queposean oficinas sucursales, o usuarios remotos

2.7.3. IPsecFedora ofrece soporte de IPsec para conectar equipos remotos y redes entre sí, utilizando un túnelseguro en un medio de transporte de red común, como lo es Internet. IPsec puede ser implementadoutilizando una configuración de tipo equipo-a-equipo (una estación de trabajo con otra), o de tipo red-a-red (una LAN/WAN con otra).

Page 118: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

108

La utilización de IPsec en Fedora utiliza Intercambio de Clave de Internet (IKE, por las iniciales eninglés de Internet Key Exchange), un protocolo implementado por el Equipo de Tareas de Ingenieríade Internet (IETF, por las iniciales en inglés de Internet Engineering Task Force), utilizado paraautenticación mutua y asociaciones seguras entre sistemas conectados.

2.7.4. Creando una conexión IPsecUna conexión IPsec está separada en dos etapas lógicas. En la primera etapa, un nodo IPsec inicia laconexión con el nodo remoto o la red. El nodo remoto o la red verifica las credenciales del nodo quehace la petición y ambas partes establecen un método de autenticación para la conexión.

En sistemas Fedora, una conexión IPsec utiliza un método de clave pre-compartida para laautenticación del nodo IPsec. En una conexión IPsec de este tipo, ambos equipos deben utilizar lamisma clave para poder avanzar hacia la segunda etapa de la conexión IPsec.

La segunda etapa de la conexión IPsec consiste en la creación de una Asociación de seguridad (SA,por las iniciales en inglés de Security Association) entre los nodos IPsec. Esta etapa genera unabase de datos SA con información de configuración, como el método de encriptado, los parámetrosde intercambio de clave para la sesión secreta, y demás informaciones necesarias. Esta etapaadministra la conexión IPsec actual entre los nodos remotos y las redes.

La implementación de IPsec en Fedora utiliza IKE para compartir claves entre equipos a través deInternet. El demonio para claves racoon administra la distribución y el intercambio de clave IKE. Paraobtener mayor información acerca de este demonio, vea la página man de racoon.

2.7.5. Instalación de IPsecLa implementación de IPsec necesita tener instalado el paquete RPM ipsec-tools en todos losequipos IPsec (si es que se está utilizando una configuración de tipo equipo-a-equipo), o enrutadores(si es es que se está utilizando una configuración de tipo red-a-red). El paquete RPM contienebibliotecas esenciales, demonios, y archivos de configuración para establecer la conexión IPsec,como por ejemplo:

• /sbin/setkey — manipula la administración de clave y los atributos de seguridad para IPsec enel kernel. Este ejecutable es controlado por el demonio de administración de clave racoon. Paraobtener mayor información, consulte la página man número 8 de setkey.

• /usr/sbin/racoon — el demonio de administración de clave IKE, utilizado para administrar ycontrolar las asociaciones de seguridad y el compartido de clave entre los sistemas conectados conIPsec.

• /etc/racoon/racoon.conf — el archivo de configuración del demonio racoon utilizado paraconfigurar varios aspectos de la conexión IPsec, incluyendo los métodos de autenticación y losalgoritmos de encriptado utilizados en ella. Para conocer una lista con todas las directivas, consultela página man número 5 de racoon.conf.

Para configurar IPsec en Fedora, puede utilizar la Herramienta Administración de Red, o editarmanualmente la red y los archivos de configuración de IPsec.

• To connect two network-connected hosts via IPsec, refer to Sección 2.7.6, “Configuración de IPsecequipo-a-equipo”.

• To connect one LAN/WAN to another via IPsec, refer to Sección 2.7.7, “Configuración IPsec red-a-red”.

Page 119: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración de IPsec equipo-a-equipo

109

2.7.6. Configuración de IPsec equipo-a-equipoIPsec puede configurarse para conectar un equipo de escritorio o estación de trabajo con otromediante una conexión de tipo equipo-a-equipo. Este tipo de conexión utiliza la red a la que cadauno de los equipos se conecta para crear un túnel seguro entre cada equipo. Los requerimientosde una conexión de equipo-a-equipo son mínimos, al igual que la configuración de IPsec. El equiponecesita solo una conexión dedicada a una red que haga de medio de transporte (como lo es Internet)y Fedora para crear la conexión IPsec.

2.7.6.1. Conexión equipo-a-equipoUna conexión de tipo equipo-a-equipo es una conexión encriptada entre dos sistemas, ambosutilizando IPsec con la misma clave de autenticación. Con la conexión IPsec activa, cualquier tráficode red entre los dos equipos es encriptada.

Para configurar una conexión IPsec de tipo equipo-a-equipo, siga los siguientes pasos para cadaequipo:

NotaDebería realizar los siguientes procedimientos en la máquina actual que estáconfigurando. Evite intentar establecer o configurar conexiones IPsec remotamente.

1. En una terminal, ingrese system-config-network para iniciar la Herramienta deadministración de red.

2. En la pestaña de IPsec, haga clic en Nuevo para iniciar el asistente de configuración de IPsec.

3. haga clic en Siguiente para iniciar la configuración de una conexión IPsec de equipo-a-equipo.

4. Ingrese un nombre único para la conexión, por ejemplo, ipsec0. Si lo necesita, tilde la casillapara activar automáticamente la conexión cada vez que encienda el equipo. Haga clic enSiguiente para continuar.

5. Seleccione Encriptado de equipo a equipo como el tipo de conexión, y luego haga clic enSiguiente.

6. Seleccione el tipo de método de encriptado a utilizarse: manual o automático.

Si selecciona encriptado manual, deberá indicar más adelante una clave de encriptado. Siselecciona encriptado automático, el demonio racoon se encarga de administrar la clave delencriptado. El paquete ipsec-tools debe estar instalado si quiere utilizar la encriptaciónautomática.

Haga clic en Siguiente para continuar.

7. Ingrese la dirección IP de equipo remoto.

Para determinar la dirección IP del equipo remoto, utilice el siguiente comando en el equiporemoto:

[root@myServer ~] # /sbin/ifconfig <device>

where <device> is the Ethernet device that you want to use for the VPN connection.

Page 120: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

110

Si solo existe una tarjeta Ethernet en el sistema, el nombre del dispositivo seguramente será eth0.El siguiente ejemplo muestra la información pertinente de este comando (recuerde que ese essólo un ejemplo):

eth0 Link encap:Ethernet HWaddr 00:0C:6E:E8:98:1D inet addr:172.16.44.192 Bcast:172.16.45.255 Mask:255.255.254.0

La dirección IP es el número siguiente a la etiqueta inet addr:.

NotaFor host-to-host connections, both hosts should have a public, routable address.Alternatively, both hosts can have a private, non-routable address (for example, fromthe 10.x.x.x or 192.168.x.x ranges) as long as they are on the same LAN.

If the hosts are on different LANs, or one has a public address while the other has aprivate address, refer to Sección 2.7.7, “Configuración IPsec red-a-red”.

Haga clic en Siguiente para continuar.

8. If manual encryption was selected in step 6, specify the encryption key to use, or click Generate tocreate one.

a. Indique una clave de autenticación o haga clic en Generar para generar una. Puede ser unacombinación de números y letras.

b. Haga clic en Siguiente para continuar.

9. Verifique la información en la página IPsec — Resumen, y luego haga clic en el botón Aplicar.

10. Click File => Save to save the configuration.

Tal vez necesite reiniciar la red para que los cambios tengan efecto. Para reiniciar la red, utilice elsiguiente comando:

[root@myServer ~]# service network restart

11. Seleccione la conexión IPsec de la lista y haga clic en el botón de Activar.

12. Repeat the entire procedure for the other host. It is essential that the same keys from step 8 beused on the other hosts. Otherwise, IPsec will not work.

After configuring the IPsec connection, it appears in the IPsec list as shown in Figura 2.10, “IPsecConnection”.

Page 121: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración de IPsec equipo-a-equipo

111

Figura 2.10. IPsec Connection

Los siguientes archivos son creados cuando la conexión IPsec es configurada:

• /etc/sysconfig/network-scripts/ifcfg-<nickname>

• /etc/sysconfig/network-scripts/keys-<nickname>

• /etc/racoon/<remote-ip>.conf

• /etc/racoon/psk.txt

Si se elige encriptación automática, entonces también se crea el archivo /etc/racoon/racoon.conf.

When the interface is up, /etc/racoon/racoon.conf is modified to include <remote-ip>.conf.

2.7.6.2. Configuración manual de una conexión IPsec de tipo equipo-a-equipoEl primer paso para crear una conexión es obtener información tanto del sistema como de la red paracada estación de trabajo. Para una conexión de tipo equipo-a-equipo, se necesita lo siguiente:

• La dirección IP de cada equipo

• Un nombre único, por ejemplo, ipsec1. Esto es utilizado para identificar la conexión IPsec y poderidentificarla de otros dispositivos o conexiones.

• Una clave de encriptado manual, o automáticamente generada por racoon.

Page 122: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

112

• Una clave de autenticación pre-compartida que es utilizada a lo largo de la etapa inicial de laconexión, y que también será utilizada luego para intercambiar claves de encriptado durante de lasesión.

Por ejemplo, suponga que la estación de trabajo A y la estación de trabajo B quieren conectarse entreellas mediante de un túnel IPsec. Quieren conectarse utilizando una clave pre-compartida con elvalor de Key_Value01, y los usuarios acuerdan la utilización de racoon para generar y compartiruna clave de autenticación entre cada equipo. Los usuarios de ambos equipos deciden referirse a suconexión como ipsec1..

NotaDebería elegir una PSK (clave pre-compartida) que utilice una mezcla de caracteres enmayúscula y en minúscula, números y signos de puntuación. Una PSK fácil de adivinarconstituye un riesgo de seguridad.

No es necesario utilizar el mismo nombre de conexión para cada equipo. Debería elegirun nombre que sea conveniente y que tenga sentido para su instalación.

A continuación mostramos un archivo de configuración IPsec en la estación de trabajo A para unaconexión IPsec de tipo equipo-a-equipo con la estación de trabajo B. El nombre único para identificarla conexión en este ejemplo es ipsec1, de modo que el archivo resultante es denominado /etc/sysconfig/network-scripts/ifcfg-ipsec1.

DST=X.X.X.XTYPE=IPSECONBOOT=noIKE_METHOD=PSK

Para la estación de trabajo A, X.X.X.X es la dirección IP de la estación de trabajo B. Para laestación de trabajo B, X.X.X.X es la dirección IP de la estación de trabajo A. Esta conexión noestá configurada para iniciarse con el arranque del equipo (ONBOOT=no) y utiliza el método deautenticación de clave pre-compartida (IKE_METHOD=PSK).

El siguiente es el contenido del archivo de clave pre-compartida (denominado /etc/sysconfig/network-scripts/keys-ipsec1) que las dos estaciones de trabajo necesitan para poderautenticarse entre ellas. El contenido de este archivo debe ser idéntico en ambas estaciones detrabajo, y solo el usuario root debería ser capaz de leer o escribir en este archivo.

IKE_PSK=Key_Value01

ImportantePara modificar el archivo keys-ipsec1 de modo que solo el usuario root pueda leerlo oeditarlo, utilice el siguiente comando luego de haberlo creado:

[root@myServer ~] # chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1

Para modificar la clave de autenticación en cualquier momento, edite el archivo keys-ipsec1 enambas estaciones de trabajo. Las dos claves de autenticación deben ser idénticas para una conexióncorrecta.

Page 123: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración de IPsec equipo-a-equipo

113

El siguiente ejemplo muestra la configuración específica de la primera fase de la conexión con elequipo remoto. El archivo es denominado X.X.X.X.conf, donde X.X.X.X es la dirección IP delequipo IPsec remoto. Fijese que este archivo es generado automáticamente cuando el túnel IPsec esactivado y no debería ser editado directamente.

remote X.X.X.X{ exchange_mode aggressive, main; my_identifier address; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key; dh_group 2 ; }}

El archivo de configuración de la etapa 1 que se ha creado por defecto cuando se inicia una conexiónIPsec, contiene las siguientes directivas utilizadas por la implementación de IPsec de Fedora:

remote X.X.X.XIndica que las siguientes líneas en este archivo de configuración se aplican solo al nodo remotoidentificado por la dirección IP X.X.X.X.

exchange_mode aggressiveLa configuración establecida por defecto en Fedora para IPsec utiliza un método de autenticaciónagresivo, que disminuye los excedentes de la conexión, permitiendo la configuración de variasconexiones IPsec con múltiples equipos.

my_identifier addressIndica el método de identificación a ser utilizado cuando se autentican nodos. Fedora utilizadirecciones IP para identificar nodos.

encryption_algorithm 3desEspecifica el cifrador de encriptación utilizado durante la autenticación. Por defecto, se usael Estándar de Encriptación de Datos Triple (3DES, por las iniciales en inglés de Triple DataEncryption Standard).

hash_algorithm sha1;Indica el algoritmo hash utilizado durante la negociación entre los nodos de la etapa 1. Pordefecto, se utiliza un algoritmo de hash seguro (SHA, por las iniciales en inglés de Secure HashAlgorithm).

authentication_method pre_shared_keyIndica el método de autenticación utilizado durante la negociación del nodo. Por defecto, Fedorautiliza una clave pre-compartida para la autenticación.

dh_group 2Indica el número de grupo Diffie-Hellman para establecer claves de sesiones generadasdinámicamente. Por defecto, se utiliza modp1024 (segundo grupo).

2.7.6.2.1. El Archivo de configuración RacoonThe /etc/racoon/racoon.conf files should be identical on all IPsec nodes except for theinclude "/etc/racoon/X.X.X.X.conf" statement. This statement (and the file it references)is generated when the IPsec tunnel is activated. For Workstation A, the X.X.X.X in the include

Page 124: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

114

statement is Workstation B's IP address. The opposite is true of Workstation B. The following shows atypical racoon.conf file when the IPsec connection is activated.

# Racoon IKE daemon configuration file.# See 'man racoon.conf' for a description of the format and entries.

path include "/etc/racoon";path pre_shared_key "/etc/racoon/psk.txt";path certificate "/etc/racoon/certs";

sainfo anonymous{ pfs_group 2; lifetime time 1 hour ; encryption_algorithm 3des, blowfish 448, rijndael ; authentication_algorithm hmac_sha1, hmac_md5 ; compression_algorithm deflate ;}include "/etc/racoon/X.X.X.X.conf";

Este archivo racoon.conf establecido por defecto incluye caminos definidos para la configuraciónde IPsec, claves pre-compartidas y certificados. Los campos de sainfo anonymous describenla etapa SA 2 entre los nodos IPsec — el tipo de conexión IPsec (incluyendo los algoritmos deencriptación utilizados soportados), y el método de intercambio de claves. La siguiente lista define loscampos de la estapa 2:

sainfo anonymousIndica que SA puede iniciarse anónimamente con cualquier par ofrecido que se corresponda conlas credenciales de IPsec.

pfs_group 2Define el protocolo de intercambio de claves Diffie-Hellman, que determina el método por el cuallos nodos IPsec establecen una clave de sesión mutua y temporal para la segunda etapa dela conectividad IPsec. Por defecto, la implementación en Fedora de IPsec utiliza el segundo (omodp1024) de los grupos Diffie-Hellman de intercambio de claves criptográficas. EL segundogrupo utiliza una exponenciación modular de 1024 bits que evita que los atacantes puedandecriptar transmisiones IPsec, aún si una de las claves privadas ha sido vulnerada.

lifetime time 1 hourEste parámetro indica el período de vida de una SA y puede ser medido o bien en unidadesde tiempo, o bien con datos. La implementación en Fedora establecida por defecto de IPsecespecifica un tiempo de vida de una hora.

encryption_algorithm 3des, blowfish 448, rijndaelIndica la cifra de encriptación soportada para la etapa 2. Fedora soporta 3DES, Blowfish de448 bits, y Rijndael (la cifra utilizada en el Estándard avanzado de encriptación, or AES, por lasiniciales en inglés de Advanced Encryption Standard).

authentication_algorithm hmac_sha1, hmac_md5Muestra los algoritmos hash soportados para la autenticación. Los módulos soportados son loscódigos de autenticación de mensajes de hash sha1 y md5 (HMAC).

Page 125: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración IPsec red-a-red

115

compression_algorithm deflateIndica el algoritmo de compresión Deflate para el soporte de IP Payload Compression (IPCOMP),que potencialmente permite transmisiones más rápidas de datagramas IP sobre conexiones máslentas.

Para iniciar una conexión, utilice el siguiente comando en cada uno de los equipos:

[root@myServer ~]# /sbin/ifup <nickname>

where <nickname> is the name you specified for the IPsec connection.

Para verificar la conexión IPsec, ejecute la herramienta tcpdump para conocer los paquetes de redque están siendo transferidos entre los equipos, y verifique que están encriptados mediante IPsec. Elpaquete debería incluir un encabezado AH y debería mostrarse como un paquete ESP. ESP significaque está encriptado. Por ejemplo:

[root@myServer ~]# tcpdump -n -i eth0 host <targetSystem>

IP 172.16.45.107 > 172.16.44.192: AH(spi=0x0954ccb6,seq=0xbb): ESP(spi=0x0c9f2164,seq=0xbb)

2.7.7. Configuración IPsec red-a-redIPsec can also be configured to connect an entire network (such as a LAN or WAN) to a remotenetwork using a network-to-network connection. A network-to-network connection requires thesetup of IPsec routers on each side of the connecting networks to transparently process and routeinformation from one node on a LAN to a node on a remote LAN. Figura 2.11, “A network-to-networkIPsec tunneled connection” shows a network-to-network IPsec tunneled connection.

Figura 2.11. A network-to-network IPsec tunneled connection

El siguiente diagrama muestra dos LANs diferentes separadas por Internet. Estas LANs utilizanenrutadores IPsec para autenticar e iniciar una conexión utilizando un túnel seguro a través deInternet. Los paquetes en tránsito entre estas dos LANs que sean interceptados, necesitarían unmétodo de decriptado de tipo fuerza bruta para poder atravesar la protección que poseen. El procesode comunicación de un nodo en el rango IP 192.168.1.0/24, con otro del rango IP 192.168.1.0/24 escompletamente transparente a los nodos, al igual que el proceso, encriptado, decriptado, y enrutadode los paquetes IPsec, es completamente manipulado por el enrutador IPsec.

La información necesaria para una conexión de tipo red-a-red incluye:

• La dirección IP externamente accesible del enrutador dedicado IPsec

Page 126: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

116

• Los rangos de dirección de red de LAN/WAN ofrecidos por los enrutadores IPsec (como porejemplo, 192.168.1.0/24 or 10.0.1.0/24)

• Las direcciones IP de los dispositivos de las puertas de enlace que enrutan los datos desde losnodos de red hacia Interne

• Un nombre único, por ejemplo, ipsec1. Esto es utilizado para identificar la conexión IPsec y poderidentificarla de otros dispositivos o conexiones.

• Una clave de encriptado generada manualmente, o automáticamente mediante la utilización deracoon

• Una clave de autenticación pre-compartida que es utilizada a lo largo de la etapa inicial de laconexión, y que también será utilizada luego para intercambiar claves de encriptado durante de lasesión.

2.7.7.1. Conexión red-a-red (VPN)Una conexión IPsec de tipo red-a-red utiliza dos enrutadores IPsec, uno para cada red, a través delos cuales es enrutado el tráfico de red para las subredes privadas.

For example, as shown in Figura 2.12, “Network-to-Network IPsec”, if the 192.168.1.0/24 privatenetwork sends network traffic to the 192.168.2.0/24 private network, the packets go through gateway0,to ipsec0, through the Internet, to ipsec1, to gateway1, and to the 192.168.2.0/24 subnet.

Los enrutadores IPsec necesitan direcciones IP públicas capaces de recibir paquetes, y un segundodispositivo Ethernet conectado a sus respectivas redes privadas. El tráfico sólo viaja a través de unenrutador IPsec si su destinatario es otro enrutador IPsec con el cual ha establecido una conexiónencriptada.

Figura 2.12. Network-to-Network IPsec

Opciones alternativas para la configuración de red pueden establecer un cortafuegos entre Internety cada enrutador IP, y un cortafuegos de intranet entre el enrutador IPsec y la puerta de enlace dela subred. En enrutador IPsec y la puerta de enlace para la subred puede ser un sistema con dosdispositivos Ethernet: uno con una dirección IP pública que actúa como un enrutador IPsec; y otro conuna dirección Ip privada que actúa como la puerta de enlace para la subred privada. Cada enrutadorIPsec puede utilizar la puerta de enlace para sus redes privadas, o una puerta de enlace pública paraenviar los paquetes al otro enrutador IPsec.

Utilice el siguiente procedimiento para configurar una conexión IPsec de tipo red-a-red:

1. En una terminal, ingrese system-config-network para iniciar la Herramienta deadministración de red.

Page 127: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración IPsec red-a-red

117

2. En la pestaña de IPsec, haga clic en Nuevo para iniciar el asistente de configuración de IPsec.

3. Haga clic en Siguiente para empezar a configurar una conexión IPsec de tipp red-a-red.

4. Ingrese un nombre de usuario único para la conexión, por ejemplo, ipsec0. Si lo necesita, tildela casilla para que automáticamente se active la conexión cuando se inicie el equipo. Haga clic enSiguiente para continuar.

5. Seleccione Encriptado de red a red (VPN) como el tipo de conexión, y luego haga clic enSiguiente.

6. Seleccione el tipo de método de encriptado a utilizarse: manual o automático.

Si selecciona encriptado manual, deberá indicar más adelante una clave de encriptado. Siselecciona encriptado automático, el demonio racoon se encarga de administrar la clave delencriptado. El paquete ipsec-tools debe estar instalado si quiere utilizar la encriptaciónautomática.

Haga clic en Siguiente para continuar.

7. En la página Red local, ingrese la siguiente información:

• Local Network Address — La direción IP del dispositivo en el enrutador IPsec conectado a lared privada.

• Local Subnet Mask — La máscara de subred de la dirección IP de la red local.

• Local Network Gateway — La puerta de enlace para la subred privada.

Haga clic en Siguiente para continuar.

Page 128: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

118

Figura 2.13. Local Network Information

8. En la página de Red remota, ingrese la siguiente información:

• Remote IP Address — La dirección IP pública capaz de recibir tráfico del enrutador IPsec parala otra red privada. En nuestro ejemplo, para ipsec0, ingrese la dirección IP pública capaz derecibir tráfico de upsec1, y viceversa.

• Remote Network Address — La dirección de red de la subred privada detrás del otroenrutador IPsec. En nuestro ejemplo, ingrese 192.168.1.0 si está configurando ipsec1, eingrese 192.168.2.0 si está configurando ipsec0.

• Remote Subnet Mask — La máscara de subred de la dirección IP remota.

• Remote Network Gateway — La dirección Ip de la puerta de enlace para la dirección de redremota.

• If manual encryption was selected in step 6, specify the encryption key to use or click Generateto create one.

Especifique una clave de autenticación o haga clic en Generar para crear una. Esta clavepuede ser cualquier combinación de números y letras.

Haga clic en Siguiente para continuar.

Page 129: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración IPsec red-a-red

119

Figura 2.14. Remote Network Information

9. Verifique la información en la página IPsec — Resumen, y luego haga clic en el botón Aplicar.

10. Select File => Save to save the configuration.

11. Seleccione la conexión IPsec de la lista, y luego haga clic en Activar para activar la conexión.

12. Habilitando reenvío IP:

a. Edite el archivo /etc/sysctl.conf y establezca net.ipv4.ip_forward a 1.

b. Use el siguiente comando para habilitar los cambios:

[root@myServer ~]# /sbin/sysctl -p /etc/sysctl.conf

El programa de red para activar la conexión IPsec automáticamente crea rutas de red para enviarpaquetes a través del enrutador IPsec, si es necesario.

2.7.7.2. Configuración manual de una conexión IPsec de tipo red-a-red.Suponga que LAN A (lana.ejemplo.com) y LAN B (lanb.ejemplo.com) quieren conectarse entre ellasmediante un túnel IPsec. La dirección de red para LAN A está en el rango 192.168.1.0/24. mientrasqye LAN B utiliza el rango 192.168.2.0/24. La dirección IP de la puerta de enlace es 192.1686.1.254para LAN A y 192.168.2.254 para LAN B. Los enrutadores IPsec están separados de cada puerta deenlace LAN y utilizan dos dispositivos de red: eth0 está asignado a una dirección IP estática accesible

Page 130: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

120

desde el exterior que tiene acceso a Internet, mientras eth1 actúa como un punto de enrutamientopara procesar y transmitir los paquetes LAN de un nodo de red a otro.

La conexión IPsec entre cada red utiliza una clave pre-compartida con el valor de r3dh4tl1nux,y los administradores de A y B están de acuerdo en permitir que racoon genere automáticamentey comparta una clave de autenticación entre cada enrutador IPsec. El administrador de LAN Adecide identificar a la conexión IPsec como ipsec0, mientras que el administrador de LAN B decideidentificarla como ipsec1.

El siguiente ejemplo muestra los contenidos del archivo ifcfg para una conexión IPsec de tipo red-a-red para LAN A. El único nombre para identificar la conexión en este ejemplo es ipsec0, de modoque el archivo resultante es /etc/sysconfig/network-scripts/ifcfg-ipsec0.

TYPE=IPSECONBOOT=yesIKE_METHOD=PSKSRCGW=192.168.1.254DSTGW=192.168.2.254SRCNET=192.168.1.0/24DSTNET=192.168.2.0/24DST=X.X.X.X

La siguiente lista describe los contenidos de este archivo:

TYPE=IPSECEspecifica el tipo de conexión.

ONBOOT=yesIndica que la conexión debería iniciarse en el arranque.

IKE_METHOD=PSKIndica que la conexión utiliza el método de clave pre-compartida para su autenticación.

SRCGW=192.168.1.254La dirección IP de la puerta de enlace origen. Para LAN A, es la puerta de enlace de LAN A, ypara LAN B, la puerta de enlace LAN B.

DSTGW=192.168.2.254La dirección IP de la puerta de enlace destino. Para LAN A, es la puerta de enlace de LAN B, ypara LAN B, la puerta de enlace de LAN A.

SRCNET=192.168.1.0/24Indica la red de origen para la conexión IPsec, que en nuestro ejemplo es el rango de red paraLAN A.

DSTNET=192.168.2.0/24Indica la red destino para la conexión IPsec, que en nuestro ejemplo, es el rango de red para LANB.

DST=X.X.X.XLa dirección IP accesible desde el exterior de LAN B.

El siguiente ejemplo es el contenido del archivo de clave pre-compartida denominado /etc/sysconfig/network-scripts/keys-ipsecX (donde X es 0 para LAN A, y 1 para LAN B), que

Page 131: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración IPsec red-a-red

121

utilizan ambas redes para autenticarse entre ellas. Los contenidos de este archivo deberían seridénticos y solo el usuario root debería ser capaz de leer o escribir sobre este archivo.

IKE_PSK=r3dh4tl1nux

ImportantePara modificar el arhivo keys-ipsecX de modo que solo el usuario root pueda leerlo oeditarlo, utilice el siguiente comando luego de haberlo creado:

chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1

Para modificar la clave de autenticación en cualquier momento, edite el archivo keys-ipsecX enambos enrutadores IPsec. Ambas claves deben ser idénticas para una conexión correcta.

En el siguiente ejemplo se muestran los contenidos del archivo de configuración /etc/racoon/racoon.conf para la conexión IPsec. Fíjese que la línea include al final del archivo es generadaautomáticamente y solo aparece si el tunel IPsec está ejecutándose.

# Racoon IKE daemon configuration file.# See 'man racoon.conf' for a description of the format and entries.path include "/etc/racoon";path pre_shared_key "/etc/racoon/psk.txt";path certificate "/etc/racoon/certs"; sainfo anonymous{ pfs_group 2; lifetime time 1 hour ; encryption_algorithm 3des, blowfish 448, rijndael ; authentication_algorithm hmac_sha1, hmac_md5 ; compression_algorithm deflate ;}include "/etc/racoon/X.X.X.X.conf"

La siguiente es la configuración específica para la conexión con la red remota. El archivo esdenominado X.X.X.X.conf (donde X.X.X.X es la dirección IP del enrutador IPsec remoto). Fíjeseque este archivo es automáticamente generado cuando el túnel IPsec es activado y no debería sereditado directamente.

remote X.X.X.X{ exchange_mode aggressive, main; my_identifier address; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key; dh_group 2 ; }}

Antes de empezar la conexión IPsec, debería ser habilitado el reenvío de IP en el kernel. Parahacerlo:

1. Edite el archivo /etc/sysctl.conf y establezca net.ipv4.ip_forward a 1.

Page 132: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

122

2. Use el siguiente comando para habilitar los cambios:

[root@myServer ~] # sysctl -p /etc/sysctl.conf

Para iniciar la conexión IPsec, utilice el siguiente comando en cada enrutador:

[root@myServer ~] # /sbin/ifup ipsec0

Las conexiones están activas, y tanto LAN A como LAN B son capaces de comunicarse entreellas. Las rutas fueron creadas automáticamente mediante la inicialización de un programa que fueactivado al ejecutarse ifup en la conexión IPsec. Para mostrar una lista de rutas para la red, utilice elsiguiente comando:

[root@myServer ~] # /sbin/ip route list

Para verificar la conexión IPsec, ejecute la herramienta tcpdump en el dispositivo enrutableexternamente (en nuestro ejemplo, eth0) para ver los paquetes de red que están siendo transferidosentre los equipos (o redes) y verifique que estén encriptados mediante IPsec. Por ejemplo, paraverificar la conectividad IPsec de LAN A, utilice el siguiente comando:

[root@myServer ~] # tcpdump -n -i eth0 host lana.ejemplo.com

El paquete debería incluir un encabezado AH y debería mostrarse como paquetes ESP. ESP significaque está encriptado. Por ejemplo (las líneas invertidas indican que la línea continúa):

12:24:26.155529 lanb.example.com > lana.example.com: AH(spi=0x021c9834,seq=0x358): \ lanb.example.com > lana.example.com: ESP(spi=0x00c887ad,seq=0x358) (DF) \ (ipip-proto-4)

2.7.8. Iniciar y detener una conexión IPsecSi la conexión IPsec no fue configurada para activarse durante el arranque del equipo, puedecontrolarla desde la línea de comandos.

Para iniciar la conexión, utilice el siguiente comando en cada uno de los equipos para una IPsec detipo equipo-a-equipo, o en cada uno de los enrutadores IPsec para una IPsec de tipo red-a-red:

[root@myServer ~] # /sbin/ifup <nickname>

where <nickname> is the nickname configured earlier, such as ipsec0.

Para detener la conexión, use el siguiente comando:

[root@myServer ~] # /sbin/ifdown <nickname>

2.8. CortafuegosLa seguridad de la información es comúnmente entendida como un proceso, y no como un producto.Sin embargo, generalmente las implementaciones estándar de seguridad utilizan alguna formade mecanismo específico para controlar los accesos privilegiados y restringir los recursos de red

Page 133: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Cortafuegos

123

a usuarios que estén debidamente autorizados para ello, y al mismo tiempo poder identificarlosy rastrearlos. Fedora incluye diferentes herramientas para ayudar a los administradores y a losingenieros en seguridad, con los diferentes problemas que puedan surgir al controlar los accesosjerarquizados a la red.

Los cortafuegos son uno de los componentes fundamentales para la implementación de la seguridaden una red. Diversos proveedores ofrecen herramientas para cortafuegos para todos los nivelesdel mercado: desde usuarios hogareños protegiendo los datos de su PC, hasta herramientas paracentros de datos que permitan proteger los datos vitales de una empresa. Los cortafuegos puedenser herramientas para un sólo equipo físico, como las aplicaciones de cortafuego que ofrecen Cisco,Nokia y Sonicwall. Proveedores como Checkpoint, McAfee y Symantec también han desarrolladoherramientas de cortafuegos de código propietario, tanto para el hogar como para los segmentoscomerciales del mercado.

Apart from the differences between hardware and software firewalls, there are also differences inthe way firewalls function that separate one solution from another. Tabla 2.2, “Tipos de cortafuegos”details three common types of firewalls and how they function:

Método Descripción Ventajas Desventajas

NAT Network AddressTranslation (NAT), colocadirecciones IP de subredesprivadas, detrás deun pequeño grupo dedirecciones IP públicas,enmascarando todaslas peticiones hacia unrecurso, en lugar de varios.El kernel de Linux tieneuna funcionalidad NATpredefinida, mediante elsubsistema del kernelNetfilter.

· Se puede configurartransparentemente paramáquinas en una LAN.· La protección de muchasmáquinas y servicios detrásde una o más direccionesIP externas simplifica lastareas de administración.· La restricción del acceso ausuarios dentro y fuera dela LAN se puede configurarabriendo o cerrando puertosen el cortafuego/puerta deenlace NAT.

· No se puede prevenir laactividad maliciosa unavez que los usuarios seconecten a un servicio fueradel cortafuegos.

FiltrosdePaquete

Un cortafuegos de filtrode paquete lee cada unode los datos que viajan através de una LAN. Puedeleer y procesar paquetessegún la información desus encabezados, y filtrarel paquete basándoseen un conjunto dereglas programablesimplementadas porel administrador delcortafuegos. El kernelde Linux tiene unafuncionalidad de filtro depaquetes predefinida,mediante el subsistema delkernel Netfilter.

· Personalizable a través delutilitario iptables.· No necesita cualquierpersonalización del lado delcliente, dado que toda laactividad de red se filtra enel nivel del ruteador en vezde a nivel de aplicación.· Debido a que los paquetesno se transmiten a través deun proxy, el rendimiento dela red es más rápida debidoa la conexión directa entreel cliente y el equipo remoto.

· No se pueden filtrarpaquetes para contenidoscomo en los cortafuegosproxy.· Procesa los paquetes en lacapa del protocolo, pero nolos puede filtrar en la capade una aplicación.· Las arquitecturas de redcomplejas pueden complicarel armado de las reglasde filtrado de paquetes,especialmente si se lohace con el enmascaradode IP o con subredeslocales y redes de zonasdesmilitarizadas.

Page 134: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

124

Método Descripción Ventajas Desventajas

Proxy El cortafuegos proxy filtratodas las peticiones delos clientes LAN de undeterminado protocolo, otipo, hacia una máquinaproxy, la que luego realizaesas mismas peticionesa Internet, en nombre delcliente local. Una máquinaproxy actúa como un búferentre usuarios remotosmaliciosos y la red internade máquinas clientes.

· Le da a losadministradores el controlsobre qué aplicaciones yprotocolos funcionan fuerade la LAN.· Algunos servidoresproxy, pueden hacercache de datos accedidosfrecuentemente en vez detener que usar la conexión aInternet para bajarlos. Estoayuda a reducir el consumode ancho de banda.· Los servicios de proxypueden ser registrados ymonitoreados más de cerca,lo que permite un controlmás estricto sobre el uso delos recursos de la red.

· Los proxies son a menudoespecíficos a una aplicación(HTTP, Telnet, etc.), orestringidos a un protocolo(la mayoría de los proxiesfuncionan sólo con serviciosque usan conexiones TCP).· Los servicios de aplicaciónno se pueden ejecutardetrás de un proxy, porlo que sus servidores deaplicación deben usaruna forma separada deseguridad de red.· Los proxies se puedenvolver cuellos de botellas,dado que todos los pedidosy transmisiones sonpasados a través de unafuente, en vez de hacerlodirectamente desde elcliente al servicio remoto.

Tabla 2.2. Tipos de cortafuegos

2.8.1. Netfilter e IPTablesEl kernel de Linux posee un poderoso subsistema de red denominado Netfilter. El subsistema Netfilterofrece filtro total o parcial de paquetes, así como servicios de enmascaramiento NAT e IP. Netfiltertambién tiene la habilidad de transformar la información de los encabezados IP para enrutamientoavanzado y administración del estado de la conexión. Netfilter es controlado mediante la utilización dela herramienta iptables.

2.8.1.1. Introducción a IPTablesThe power and flexibility of Netfilter is implemented using the iptables administration tool, acommand line tool similar in syntax to its predecessor, ipchains, which Netfilter/iptables replaced inthe Linux kernel 2.4 and above.

iptables uses the Netfilter subsystem to enhance network connection, inspection, and processing.iptables features advanced logging, pre- and post-routing actions, network address translation, andport forwarding, all in one command line interface.

This section provides an overview of iptables. For more detailed information, refer to Sección 2.9,“IPTables”.

2.8.2. Configuración básica de un cortafuegoDel mismo modo que el extintor de incendios en un edificio intenta prevenir que se propague unincendio, en una computadora, un cortafuegos intenta prevenir que algún tipo de software maliciosose propague en su equipo. También ayuda a prevenir que usuarios no autorizados accedan a sucomputadora.

Page 135: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración básica de un cortafuego

125

En una instalación por defecto de Fedora existe un cortafuegos entre su computadora o red,y cualquier otra red considerada como no segura, como por ejemplo lo es Internet. Determinaqué servicios en su computadora pueden ser accedidos por usuarios remotos. Un cortafuegoscorrectamente configurado puede incrementar enormemente la seguridad de su sistema. Serecomienda que configure un cortafuegos para cualquier sistema Fedora que tenga una conexión aInternet.

2.8.2.1. Firewall Configuration ToolEn el proceso de instalación de Fedora, en la pantalla de Configuración del Cortafuego, se leofreció la oportunidad de habilitar un cortafuego básico, así como la posibilidad de utilizar ciertosdispositivos, servicios entrantes y puertos.

Una vez finalizada la instalación, puede modificar las opciones elegidas mediante la utilización de laHerramienta de configuración de cortafuegos.

Para iniciar esta aplicación, use el siguiente comando:

[root@myServer ~] # system-config-firewall

Figura 2.15. Firewall Configuration Tool

NotaThe Firewall Configuration Tool only configures a basic firewall. If the system needsmore complex rules, refer to Sección 2.9, “IPTables” for details on configuring specificiptables rules.

Page 136: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

126

2.8.2.2. Habilitando y deshabilitando el cortafuegoSeleccione una de las opciones siguientes para el cortafuego:

• Deshabilitado — Deshabilitar el cortafuegos proporciona un acceso completo a su sistema y nose realiza ninguna verificación de seguridad. Esto debe ser seleccionado sólo si está ejecutandouna red segura (no Internet), o necesite configurar un cortafuego personalizado utilizando laherramienta de la línea de comandos iptables.

AdvertenciaLas configuraciones del cortafuego y cualquier reglas de cortafuegos personalizadas sealmacenan en el archivo /etc/sysconfig/iptables. Si elije Deshabilitado y haceclic en Aceptar, estas configuraciones y reglas del cortafuego se perderán.

• Habilitado — Esta opción configura el sistema para rechazar conexiones entrantes que no unarespuesta a peticiones que han sido realizadas, tales como respuestas DNS o peticiones DHCP.Si se necesita el acceso a servicios de esta máquina, puede elegir habilitar servicios específicos através del cortafuego.

Si está conectando su sistema a Internet, pero no planea hacerlo funcionar como servidor, esta esla opción más segura.

2.8.2.3. Servicios confiablesHabilitando opciones en la lista de Servicios confiables le permite al servicio especificado pasar através del cortafuego.

WWW (HTTP)El protocolo HTTP es utilizado por Apache (y por otros servidores Web) para ofrecer páginasweb. Si tiene pensado hacer que su servidor web esté disponible al público en general, tilde estacasilla. Esta opción no es requerida para ver páginas en forma local, o para desarrollar páginasweb. Este servicio requiere que el paquete httpd esté disponible.

Habilitando WWW (HTTP) no abrirá el puerto de HTTPS, la versión SSL de HTTP. Si se necesitaeste servicio, Elija la casilla WWW Seguro (HTTPS).

FTPEl protocolo FTP se usa para transferir archivos entre máquinas de una red. Si planea hacer suservidor FTP disponible públicamente, marque este casillero. Este servicio requiere que se instaleel paquete vsftpd.

SSHSecure Shell (SSH) es una suite de herramientas para registrarse en un equipo remoto y poderejecutar comandos en él. Para permitir acceso remoto a una máquina utilizando ssh, tilde estacasilla. Este servicio requiere que el paquete openssh-server se encuentre instalado.

TelnetTelnet es un protocolo que permite registrarse en equipos remotos. Las comunicaciones a travésde Telnet no están encriptadas y no ofrece protección ante posibles espías que se encuentren enla red. No se recomienda permitir el acceso a través de Telnet. Para permitirlo, tilde esta casilla.Este servicio requiere que el paquete telnet-server se encuentre instalado.

Page 137: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Configuración básica de un cortafuego

127

Mail (SMTP)SMTP es un protocolo que permite a equipos remotos conectarse directamente con sumáquina para enviar correos electrónicos. No necesita activar este servicio si obtiene su correoelectrónico a través de su servidor ISP, utilizando POP3 o IMAP, o si utiliza una herramienta comofetchmail. Para permitir el envío de correos electrónico hacia su máquina, seleccione estacasilla. Fíjese que una configuración incorrecta de un servidor SMTP puede permitir que otrosequipos utilicen su servidor para enviar correo basura.

NFS4El Sistema de Archivos de Red (NFS, por las siglas en inglés de Network File System), es unprotocolo para compartir archivos comúnmente utilizado en sistemas *NIX. La versión 4 de esteprotocolo es más segura que sus predecesoras. Si quiere compartir archivos y directorios de susistema con otros en red, tilde esta casilla.

SambaSamba es una implementación del protocolo de red SMB de Microsoft. Si necesita compartirarchivos, directorios o impresoras conectadas localmente con computadoras con MicrosoftWindows, marque esta casilla.

2.8.2.4. Otros PuertosLa herramienta de configuración de cortafuegos incluye una sección de Otros Puertos paraespecificar puertos IP personalizados de modo tal de considerarlos como seguros por iptables.Por ejemplo, para permitir que protocolos IRC o de impresión a través de Internet (IPP, por las siglasen inglés de Internet Printing Protocol) pasen a través del cortafuegos, añada la siguiente línea a lasección de Other ports:

194:tcp,631:tcp

2.8.2.5. Guardando la configuraciónHaga clic en OK para guardar los cambios y activar o desactivar el cortafuegos. Si fue seleccionadoActivar cortafuegos, las opciones seleccionadas serán trasladadas a los comandos iptables yescritos en el archivo /etc/sysconfig/iptables. El servicio iptables es también iniciado demodo que el cortafuegos sea activado inmediatamente luego de guardar las opciones seleccionadas.Si fue seleccionado Desactivar cortafuegos, el archivo /etc/sysconfig/iptables es eliminadoy el servicio iptables es inmediatamente detenido.

Las opciones seleccionadas son también escritas al archivo /etc/sysconfig/system-config-securitylevel para que la configuración pueda restaurarse la próxima vez que se inicie laaplicación. No edite este archivo a mano.

Even though the firewall is activated immediately, the iptables service is not configured to startautomatically at boot time. Refer to Sección 2.8.2.6, “Activando el servicio IPTables” for moreinformation.

2.8.2.6. Activando el servicio IPTablesLas reglas del cortafuego están solamente activas si el servicio iptables se está ejecutando. Parainiciar manualmente el servicio, use el siguiente comando:

[root@miServidor ~] # service iptables restart

Page 138: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

128

Para asegurarse de que iptables se inicie cuando el sistema arranque, use el siguiente comando:

[root@miServidor ~] # chkconfig --level 345 iptables on

2.8.3. Uso de IPTablesEl primer paso en el uso de iptables es iniciar el servicio iptables. Use el siguiente comandopara iniciar el servicio iptables:

[root@miServidor ~] # service iptables start

NotaEl servicio ip6tables puede ser desactivado si usted intenta utilizar solamente elservicio iptables. Si desactiva el servicio ip6tables, recuerde también desactivar lared IPv6. Nunca deje un dispositivo de red activo sin su correspondiente cortafuegos.

Para forzar a iptables para que se inicie por defecto cuando el sistema arranque, use el siguientecomando:

[root@miServidor ~] # chkconfig --level 345 iptables on

Esto fuerza a iptables a que se inicie cuando el sistema arranque en los niveles de ejecución 3, 4 o5.

2.8.3.1. Sintaxis de comando de IPTablesEl siguiente comando iptables ilustra la sintaxis básica de comandos:

[root@myServer ~ ] # iptables -A <chain> -j <target>

The -A option specifies that the rule be appended to <chain>. Each chain is comprised of one or morerules, and is therefore also known as a ruleset.

Las tres cadenas predefinidas son INPUT, OUTPUT, y FORWARD. Estas cadenas son permanentes yno se pueden borrar. La cadena especifica el punto en el que el paquete es manipulado.

The -j <target> option specifies the target of the rule; i.e., what to do if the packet matches therule. Examples of built-in targets are ACCEPT, DROP, and REJECT.

Vaya a la página man de iptables para más información sobre las cadenas, opciones y destinosdisponibles.

2.8.3.2. Políticas básicas del cortafuegoEl establecimiento de políticas básicas de cortafuego crea la base para construir reglas másdetalladas definidas por el usuario.

Cada cadena de iptables se compone de una política predeterminada, y cero o más reglas quefuncionan en conjunto con la política predeterminada para definir el conjunto de reglas del cortafuego.

La política establecida por defecto para una cadena puede ser DROP o ACCEPT. Losadministradores de sistemas orientados por la seguridad implementan una política por defecto de

Page 139: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Filtrado común de IPTables

129

DROP, y solo permiten unos pocos paquetes específicos, luego de ser analizados uno por uno. Porejemplo, las siguientes políticas bloquean todos los paquetes que lleguen a o que partan desde unapuerta de enlace:

[root@miServidor ~ ] # iptables -P INPUT DROP[root@miServidor ~ ] # iptables -P OUTPUT DROP

Es también algo recomendado que a cualquier paquete reenviado — tráfico de red que es enrutadodesde el cortafuegos hacia su nodo de destino — también le sea negada la entrada, para poder asírestringir las posibles exposiciones inadvertidas de clientes internos a Internet. Para hacerlo, utilice lasiguiente regla:

[root@miServidor ~ ] # iptables -P FORWARD DROP

Cuando haya establecido las políticas por defecto para cada cadena, puede crear y guardar las reglassiguientes para su red y requerimientos de seguridad particulares.

Las siguientes secciones describen cómo guardar las reglas iptables y delinea algunas de las reglasque puede implementar cuando construya su cortafuego con iptables.

2.8.3.3. Guardando y restaurando las reglas de IPTablesLos cambios en iptables son transitorios; si el sistema es reiniciado o si el servicio de iptableses reiniciado, las reglas son automáticamente eliminadas y reiniciadas. Para guardar las reglas demodo que sean cargadas cuando el servicio iptables sea iniciado, utilice el siguiente comando:

[root@miServidor ~ ] # service iptables save

Las reglas se guardan en el archivo /etc/sysconfig/iptables y se aplican cada vez que elservicio o la computadora se reinician.

2.8.4. Filtrado común de IPTablesLa prevención del acceso a la red de atacantes remotos es uno de los aspectos más importantes dela seguridad de la red. La integridad de la LAN debe protegerse de los usuarios remotos maliciosos através del uso de las reglas estrictas de cortafuego.

Sin embargo, con una política por defecto de bloquear todos los paquetes entrantes, salientes yreenviados, es imposible que los usuarios del cortafuego/puerta de enlace y los usuarios internos dela LAN puedan comunicarse entre ellos, o con recursos externos.

Para permitir que los usuarios realicen funciones relacionadas con la red y de que puedan usaraplicaciones de red, los administradores deben abrir ciertos puertos para la comunicación.

Por ejemplo, para permitir el acceso al puerto 80 en el cortafuego, agregar la siguiente regla:

[root@miServidor ~ ] # iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

Esto permite a los usuarios navegar sitios que se comunican usando el puerto estándar 80. Parapermitir el acceso a sitios web seguros (por ejemplo, https://www.ejemplo.com/), también necesitaproveer el acceso al puerto 443, como sigue:

[root@miServidor ~ ] # iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Page 140: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

130

ImportanteCuando se crea un conjunto de reglas de iptables, el orden es importante.

Si una regla especifica que cualquier paquete desde la subred 192.168.100.0/24 debeignorarse, y esto es seguido por una regla que permite los paquetes de 192.168.100.13(que está dentro de la subred ignorada), la segunda regla se ignora.

La regla para permitir los paquetes de 192.168.100.13 debe estar antes de la que eliminalos restantes de la subred.

Para insertar una regla en una ubicación específica en una cadena existente, use laopción -I. Por ejemplo:

[root@miServidor ~ ] # iptables -I INPUT 1 -i lo -p all -j ACCEPT

Esta regla es insertada como la primera regla en la cadena INPUT para permitir el tráficoen el dispositivo loopback local.

Pueden suceder que en determinadas oportunidades se necesite un acceso remoto a la LAN. Losservicios seguros, por ejemplo SSH, se pueden utilizar para encriptar la conexión remota a losservicios de la LAN.

Administradores con recursos basados en PPP, o accesos de tipo dial-up (como bancos de módems,o cuentas masivas de ISP), pueden ser utilizados para sortear con éxito las barreras del cortafuegos.Debido a que son conexiones directas, las conexiones de módems se encuentran típicamente detrásde un cortafuegos/puerta de enlace.

Sin embargo, pueden hacerse excepciones para los usuarios remotos con conexiones de bandaancha. Usted puede configurar iptables para aceptar conexiones de clientes remotos SSH. Porejemplo, las siguientes reglas permiten acceso remoto SSH:

[root@miServidor ~ ] # iptables -A INPUT -p tcp --dport 22 -j ACCEPT[root@miServidor ~ ] # iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

Estas reglas permiten ingreso y egreso para un sistema individual, como una PC directamenteconectada a Internet, o a un cortafuegos/puerta de enlace. Sin embrago, no permiten a los nodosdetrás de un cortafuegos/puerta de enlace que tengan acceso a estos servicios. Para permitiracceso LAN a estos servicios, puede utilizar Network Address Translation (NAT) con reglas de filtroiptables.

2.8.5. Reglas FORWARD y NATLa mayoría de los ISPs proveen sólo un número limitado de direcciones IP disponibles públicamentepara sus clientes.

Los administradores deben, por lo tanto, encontrar formas alternativas de compartir el acceso alos servicios de Internet, sin darle por ello una dirección IP pública a cada nodo de la LAN. Utilizardirecciones IP privadas es la manera más común de permitirle a todos los nodos de una LAN quetengan un acceso correcto, tanto interno como externo, a los servicios de red.

Los enrutadores de borde (como los cortafuegos) pueden recibir transmisiones entrantes desdeInternet y enrutar los paquetes hacia el nodo LAN correspondiente. Al mismo tiempo, los cortafuegos/

Page 141: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Reglas FORWARD y NAT

131

puertas de enlace pueden enrutar peticiones salientes de un nodo de la LAN hacia el servicio deInternet remoto.

Este reenvío de trafico de red puede convertirse algunas veces en algo peligroso, especialmente conla disponibilidad de herramientas de crackeo modernas que pueden espiar direcciones IP internas yhacer que el el equipo del atacante remoto actúe como un nodo de su LAN.

Para impedir esto, iptables provee políticas de ruteado y reenvío que se pueden implementar paraprevenir el uso anormal de los recursos de red.

La cadena FORWARD permite a un administrador controlar hacia dónde se pueden rutear lospaquetes dentro de la LAN. Por ejemplo, para permitir el reenvío para toda la LAN (asumiendo queel cortafuego/puerta de enlace tiene asignado una dirección IP interna en eth1), use las siguientesreglas:

[root@miServidor ~ ] # iptables -A FORWARD -i eth1 -j ACCEPT[root@miServidor ~ ] # iptables -A FORWARD -o eth1 -j ACCEPT

Esta regla le da a los sistemas detrás del cortafuego/puerta de enlace el acceso a la red interna. Lapuerta de enlace rutea los paquetes desde un nodo de la LAN a su nodo destino deseado, pasandotodos los paquetes a través del dispositivo eth1.

NotaPor defecto, la política IPv4 en kernels de Fedora deshabilita el soporte para reenvío deIP. Esto evita que máquinas que corran Fedora funcionen como un ruteador dedicado.Para habilitar el reenvío de IP, use el siguiente comando:

[root@miServidor ~ ] # sysctl -w net.ipv4.ip_forward=1

Este cambio en la configuración sólo es válido para la sesión actual; no persiste luego deun reinicio de equipo o del servicio de red. Para poner el reenvío de IP permanente, editeel archivo/etc/sysctl.conf como sigue:

Ubique la siguiente línea:

net.ipv4.ip_forward = 0

Y edítela para que se lea:

net.ipv4.ip_forward = 1

Use el siguiente comando para habilitar el cambio en el archivo sysctl.conf:

[root@miServidor ~ ] # sysctl -p /etc/sysctl.conf

2.8.5.1. Postruteado y enmascarado de IPLa aceptación de paquetes reenviados a través de la IP interna del cortafuego le permite a los nodosde la LAN comunicarse entre si; sin embargo, todavía no se pueden comunicar externamente conInternet.

Page 142: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

132

Para permitir que los nodos de una LAN con direcciones IP privadas puedan comunicarse con redespúblicas externas, configure su cortafuegos para que realice enmascaramiento de IP, que enmascaralas peticiones desde los nodos LAN con la dirección IP del cortafuegos del dispositivo externo (eneste caso, eth0):

[root@miServidor ~ ] # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Esta regla usa la tabla de comparación de paquetes NAT (-t nat) y especifica la cadena predefinidaPOSTROUTING para hacer NAT (-A POSTROUTING) en el dispositivo externo del cortafuego (-oeth0).

POSTROUTING permite que los paquetes se puedan alterar mientras están abandonando eldispositivo externo del cortafuegos.

El destino -j MASQUERADE se especifica para enmascarar la dirección IP privada de un nodo con ladirección IP externa del cortafuego/puerta de enlace.

2.8.5.2. PreruteoSi usted posee un servidor en su red interna que quiere que esté disponible desde el exterior, puedeutilizar -j DNAT, objetivo de la cadena PREROUTING de NAT para especificar una IP de destino,y un puerto donde los paquetes recibidos que pidan una conexión a su servicio interno, puedan serreenviados.

Por ejemplo, si quiere reenviar pedidos HTTP entrantes a su servidor HTTP Apache dedicado en172.31.0.23, use el siguiente comando:

[root@miServidor ~ ] # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.31.0.23:80

Esta regla especifica que la tabla nat usa la cadena predefinida PREROUTING para enviar pedidosHTTP entrantes exclusivamente al la dirección IP destino listado 172.31.0.23.

NotaSi tiene una política predeterminada de DROP en su cadena FORWARD, debe agregaruna regla para reenviar todos los pedidos HTTP entrantes para que sea posible el ruteoNAT destino. Para hacerlo, use el siguiente comando:

[root@miServidor ~ ] # iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.31.0.23 -j ACCEPT

Esta regla reenvía todos los pedidos HTTP entrantes desde el cortafuego al destinopretendido; el Servidor HTTP APache detrás del cortafuego.

2.8.5.3. IPTables y las ZDMPuede crear reglas de iptables para enrutar tráfico a ciertos equipos, como por ejemplo un servidorHTTP o FTP dedicado, en una zona desmilitarizada (DMZ, por las iniciales en inglés de DeMilitarizedZone). Un DMZ es una subred local especial dedicada a proveer servicios en un transporte público,como lo es Internet.

Page 143: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Software malicioso y suplantación de direcciones IP

133

Por ejemplo, para establecer una regla para enrutar peticiones HTTP entrantes a un servidordedicado HTTP en 10-0-4-2 (fuera del rango 192.168.1.0/24 de la LAN), NAT utiliza la tablaPREROUTING para reenviar los paquetes a la dirección apropiada:

[root@miServidor ~ ] # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.4.2:80

Con este comando, todas las conexiones HTTP al puerto 80 provenientes desde fuera de la LANson encaminadas al servidor HTTP en la red separada del resto de la red interna. Esta forma desegmentación de red puede proveer seguridad permitiendo conexiones HTTP a máquinas en la red.

Si el servidor HTTP está configurado para aceptar conexiones seguras, entonces el puerto 443 debeser reenviado también.

2.8.6. Software malicioso y suplantación de direcciones IPReglas más elaboradas pueden ser creadas para que controlen el acceso a subredes específicas,o incluso para nodos específicos, dentro de la LAN. Puede también restringir ciertas aplicaciones oprogramas de carácter dudoso como troyanos, gusanos, y demás virus cliente/servidor, y evitar queentren en contacto con sus servidores.

Por ejemplo, algunos troyanos examinan redes para ver los servicios en los puertos 31337 a 31340(llamados los puertos elite en la terminología de craqueo).

Dado que no hay servicios legítimos que se comunican vía estos puertos no estándares, su bloqueopuede disminuir efectivamente las posibilidades de que nodos infectados en su red se comuniquencon sus servidores maestros remotos.

Las siguientes reglas eliminan todo el tráfico TCP que intenta usar el puerto 31337:

[root@miServidor ~ ] # iptables -A OUTPUT -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP[root@miServidor ~ ] # iptables -A FORWARD -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP

También se puede bloquear conexiones salientes que intenten suplantar los rangos de direcciones IPprivadas para infiltrarse en su LAN.

Por ejemplo, si su red usa el rango 192.168.1.0/24, se puede diseñar una regla que instruya aldispositivo de red del lado de Internet (por ejemplo, eth0) para que descarte cualquier paquete en esedispositivo con una dirección en el rango IP de su red local.

Dado que se recomienda rechazar paquetes reenviados como una política predeterminada, cualquierotra dirección IP mentida al dispositivo del lado externo (eth0) se rechaza automáticamente.

[root@miServidor ~ ] # iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP

Page 144: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

134

NotaExiste una distinción entre los destinos DROP y REJECT cuando se trabaja con reglasagregadas.

El destino RECHAZAR niega acceso y regresa un error de conexión denegada a losusuarios que intenten conectarse al servicio. El destino ABANDONAR, como su nombre loindica, abandona el paquete sin previo aviso.

Los administradores pueden usar su propia discreción cuando usen estos destinos. Sinembargo, para evitar la confusión del usuario e intentos de continuar conectando, eldestino REJECT es recomendado.

2.8.7. IPTables y el seguimiento de la conexiónPuede inspeccionar y restringir conexiones a servicios basados en sus estados de conexión. Unmódulo dentro de iptables utiliza un método denominado rastreo de conexión para almacenardatos acerca de las conexiones recibidas. Puede permitir o negar acceso basándose en los siguientesestados de conexión:

• NEW — Un paquete que pide una nueva conexión, tal como un pedido HTTP.

• ESTABLISHED — Un paquete que es parte de una conexión existente.

• RELATED — Un paquete que está pidiendo una nueva conexión, pero que es parte de unaexistente. Por ejemplo, FTP usa el puerto 21 para establecer una conexión, pero los datos setransfieren en un puerto diferente (normalmente el puerto 20).

• INVALID — Un paquete que no es parte de ninguna conexión en la tabla de seguimiento deconexiones.

Puede utilizar toda la funcionalidad del rastreo de conexión iptables con cualquier protocolo, aúnsi él mismo se encuentra inactivo (como por ejemplo un protocolo UDP). EL siguiente ejemplo lemuestra una regla que utiliza rastreo de conexión para reenviar solamente los paquetes que estánasociados con una conexión establecida:

[root@miServidor ~ ] # iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

2.8.8. IPv6La introducción de la siguiente generación del Protocolo de Internet, llamado IPv6, expande más alláde los límites de las direcciones de 32-bit de IPv4 (o IP). IPv6 soporta direcciones de 128-bit, y lasredes transportadoras que pueden soportar IPv6 son por lo tanto capaces de manejar un número másgrande de direcciones ruteables que el IPv4.

Fedora supports IPv6 firewall rules using the Netfilter 6 subsystem and the ip6tables command. InFedora 12, both IPv4 and IPv6 services are enabled by default.

La sintaxis del comando ip6tables es idéntica a iptables en todos los aspectos menos en quesoporta direcciones de 128-bit. Por ejemplo, use el siguiente comando para habilitar conexiones SSHen un servidor de red para IPv6:

Page 145: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Recursos adicionales

135

[root@miServidor ~ ] # ip6tables -A INPUT -i eth0 -p tcp -s 3ffe:ffff:100::1/128 --dport 22 -j ACCEPT

Para más información acerca de redes IPv6, vaya a la Página de Información sobre IPv6 en http://www.ipv6.org/.

2.8.9. Recursos adicionalesHay varios aspectos de cortafuegos y del subsistema Netfilter de Linux que no pueden ser cubiertosen este capítulo. Para más información consulte las referencias que ofrecemos a continuación.

2.8.9.1. Documentación instalada del cortafuego• Refer to Sección 2.9, “IPTables” for more detailed information on the iptables command,

including definitions for many command options.

• La página man de iptables contiene un resumen de las opciones.

2.8.9.2. Sitios web útiles de cortafuego• http://www.netfilter.org/ — La página oficial del proyecto Netfilter e iptables.

• http://www.tldp.org/ — El Proyecto de Documentación de Linux contiene varias guías útiles sobre lacreación y administración de cortafuegos.

• http://www.iana.org/assignments/port-numbers — La lista oficial de puertos de servicios comunes yregistrados, según fueron asignados por IANA (Internet Assigned Numbers Authority).

2.8.9.3. Documentación relacionada• Red Hat Linux Firewalls, por Bill McCarty; Red Hat Press — un manual de referencia completo para

poder levantar cortafuegos de red o de servidores, utilizando tecnología de código abierto parafiltrado de paquetes, como por ejemplo Netfilter o iptables. Los temas que se tratan van desdeel análisis de logs de cortafuegos, desarrollo de reglas de cortafuegos, y diferentes métodos depersonalización del cortafuegos utilizando numerosas herramientas gráficas.

• Linux Firewalls, por Robert Ziegler; New Riders Press — contiene gran cantidad de informaciónpara poder levantar cortafuegos utilizando tanto ipchains de un kernel 2.2, como Netfilter oiptables. También son tratados otros temas relacionados con la seguridad, como problemas conel acceso remoto, o detección de intrusos en el sistema.

2.9. IPTablesCon Fedora están incluidas herramientas avanzadas para el filtrado de paquetes — el proceso dentrode kernel que permite controlar a los paquetes de red mientras están ingresando a nuestro entorno,mientras lo están recorriendo y cuando lo abandonan. Las versiones del kernel anteriores a la 2.4,dependían de ipchains para el filtrado de paquetes, y utilizaban listas de reglas aplicadas a lospaquetes en cada paso del proceso de filtrado. El kernel 2.4 introdujo la utilización de iptables(también llamado netfilter), que si bien es similar a ipchains, expande enormemente el rango y laposibilidad de control disponible para filtrar los paquetes de red.

This chapter focuses on packet filtering basics, explains various options available with iptablescommands, and explains how filtering rules can be preserved between system reboots.

Page 146: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

136

Refer to Sección 2.9.6, “Recursos adicionales” for instructions on how to construct iptables rulesand setting up a firewall based on these rules.

ImportanteEl mecanismo de un cortafuegos establecido por defecto con un kernel 2.4 o superiores iptables, pero iptables no puede ser utilizado si ipchains se encuentra enejecución. Si ipchains está presente en el momento del arranque, el kernel envía unmensaje de error y no puede iniciar iptables.

La funcionalidad de ipchains no es afectada por estos errores.

2.9.1. Filtrado de PaqueteEl kernel de Linux utiliza la herramienta Netfilter para filtrar los paquetes, permitiendo que alguno deellos sean recibidos por el sistema (o que pasen a través de él), y evitando que lo hagan otros. Estaherramienta está predefinida en el kernel, y posee tres tablas o listas de reglas predeterminadas de laforma siguiente:

• filter — La tabla predeterminada para el manejo de paquetes de red.

• nat — Se usa para alterar paquetes que crean una nueva conexión y para Network AddressTranslation (NAT).

• mangle — Usada para tipos específicos de alteraciones de paquetes.

Cada tabla tiene un grupo de cadenas predefinidas, que corresponden a las acciones realizadas pornetfilter sobre el paquete.

Las cadenas predefinidas para la tabla filter son las siguientes:

• INPUT — Se aplica a paquetes de red que son destinados a este equipo.

• OUTPUT — Se aplica a paquetes de red generados localmente.

• FORWARD — Se aplica a paquetes de la red ruteados a través de este equipo.

Las cadenas predeterminadas para la tabla nat son las siguientes:

• PREROUTING — Altera los paquetes de la red cuando llegan.

• OUTPUT — Altera los paquetes de la red generados localmente antes de que se envíen.

• POSTROUTING — Altera los paquetes de la red antes de ser enviados.

Las cadenas predeterminadas para la tabla mangle son:

• INPUT — Altera los paquetes de red destinados a este equipo.

• OUTPUT — Altera los paquetes de la red generados localmente antes de que se envíen.

• FORWARD — Altera los paquetes de red ruteados a través de este equipo.

• PREROUTING — Altera los paquetes que vienen de la red antes de ser ruteados.

• POSTROUTING — Altera los paquetes de la red antes de ser enviados.

Page 147: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Opciones de la línea de comandos de IPTables

137

Cada paquete de red recibido por, o enviado con un sistema Linux es sujeto de (o por) al menosuna tabla. Sin embargo, un paquete puede ser sujeto por varias reglas pertenecientes a cada tabla,antes de poder emerger al final de la cadena. La estructura y el propósito de estas reglas puedenvariar, pero por lo general lo que buscan es un paquete yendo o viniendo desde una dirección IPdeterminada (o conjunto de direcciones), cada vez que se utilice un protocolo y un servicio de reddeterminados.

NotaPor defecto, las reglas del cortafuego se graban en los archivos /etc/sysconfig/iptables o /etc/sysconfig/ip6tables.

El servicio iptables se activa antes que cualquier otro servicio relacionado con DNS,cuando el sistema Linux es iniciado. Esto significa que las reglas de cortafuegos puedensólo hacer referencia a direcciones IP numéricas (como por ejemplo, 192.168.0.1). Eneste tipo de reglas, los nombres del dominio (por ejemplo, host.example.com) producenerrores.

Dejando de lado el destino que tengan, cuando los paquetes se corresponden con una regla enparticular de una de estas tablas, una acción es aplicada a ellos. Si la regla especifica una acciónACCEPT para un paquete que se corresponde con ella, ese paquete se saltea el resto de la regla y lees permitido continuar hacia su destino, cualquiera que este sea. Si una regla especifica una acciónDROP, a ese paquete se le niega acceso al sistema y nada es devuelto al equipo que lo envió. Siuna regla especifica la acción QUEUE, el paquete es colocado en un espacio de usuario. Si una reglaespecifica la acción optativa REJECT, el paquete es abandonado, pero un paquete de error es a lavez enviado a quien lo originó.

Cada cadena posee una política por defecto para las acciones de ACCEPT, DROP, REJECT, o QUEUE.Si ninguna de estas reglas en la cadena se aplica al paquete, entonces el paquete es tratado deacuerdo a la política establecida por defecto.

El comando iptables configura estas tablas, así como crea algunas nuevas si es necesario.

2.9.2. Opciones de la línea de comandos de IPTablesLas reglas para el filtrado de paquetes se crean usando el comando iptables. Los aspectossiguientes del paquete son los más usados como criterios:

• Tipo de Paquete — Especifica el tipo de paquete que filtra el comando.

• Fuente/Destino del Paquete — Especifica qué paquete se filtra basado en el fuente/destino delpaquete.

• Destino — Especifica qué acción se toma sobre los paquetes que coinciden con el criterio de másarriba.

Refer to Sección 2.9.2.4, “Opciones de coincidencia de IPTables” and Sección 2.9.2.5, “Opciones dedestino” for more information about specific options that address these aspects of a packet.

Las opciones utilizadas con reglas específicas de iptables, para que puedan ser válidas, deben seragrupadas lógicamente, fundamentadas en el propósito y las condiciones de la regla en su totalidad.En el recordatorio de esta sección se explican opciones comúnmente utilizadas para el comandoiptables.

Page 148: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

138

2.9.2.1. Estructura de las opciones de comandos de IPTablesMuchos comandos iptables tienen la siguiente estructura:

iptables [-t <table-name>] <command> <chain-name> \ <parameter-1> <option-1> \ <parameter-n> <option-n>

<table-name> — Specifies which table the rule applies to. If omitted, the filter table is used.

<command> — Specifies the action to perform, such as appending or deleting a rule.

<chain-name> — Specifies the chain to edit, create, or delete.

<parameter>-<option> pairs — Parameters and associated options that specify how to process apacket that matches the rule.

La longitud y complejidad de un comando iptables puede cambiar significativamente, basado en supropósito.

Por ejemplo, un comando para eliminar una regla de una cadena puede ser muy corto:

iptables -D <chain-name> <line-number>

En contraste, un comando que añada una regla que filtre los paquetes provenientes de una subreddeterminada, utilizando una variedad de parámetros y opciones específicas, podría ser bastanteextenso. Cuando construya comandos iptables, es importante recordar que algunos parámetrosy opciones requieren de otros parámetros y de otras opciones para poder constituir una regla válida.Esto puede producir un efecto cascada, con los futuros parámetros pidiendo otros nuevos. La regla noserá válida hasta que no se satisfagan cada parámetro y cada opción que requiera otro conjunto deopciones y parámetros.

Con iptables -h se puede ver una lista comprensiva de la estructura de los comandos deiptables.

2.9.2.2. Opciones de comandosLas opciones de comando dan instrucciones a iptables para que realice una acción específica.Solo una opción de comando es permitida para cada comando iptables. Con la excepción delcomando help, todos los demás deben ser escritos con caracteres mayúsculos.

Los comandos de iptables son los siguientes:

• -A — Agregan una regla al final de la cadena especificada. A diferencia de la opción -I descriptamás abajo, No toma un entero como argumento. Siempre agrega la regla al final de la cadenaespecificada.

• -C — Verifica una regla determinada antes de añadirla a la cadena especificada por el usuario.Este comando puede ayudarle a construir reglas complejas de iptables al solicitarle parámetros yopciones adicionales.

• -D <integer> | <rule> — Deletes a rule in a particular chain by number (such as 5 for the fifthrule in a chain), or by rule specification. The rule specification must exactly match an existing rule.

• -E — Renombra una cadena definida por el usuario. Una cadena definida por el usuario escualquier cadena que no sea una de las ya existentes, establecidas por defecto. (Vea más abajo laopción -N para obtener información acerca de como crear cadenas definidas por el usuario). Estees un cambio de tipo estético y no afecta la estructura de la tabla.

Page 149: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Opciones de la línea de comandos de IPTables

139

NotaSi intenta renombrar alguna de las cadenas predeterminadas, el sistema informaráun error de Coincidencia no encontrada. No puede renombrar las cadenaspredeterminadas.

• -F — Limpia la cadena seleccionada, lo que efectivamente borra cada regla en la cadena. Si no seespecifica una cadena, limpia todas las reglas de cada cadena.

• -h — Provee una lista de estructuras de comando, así como un resumen rápido de los parámetrosy opciones de los comandos.

• -I [<integer>] — Inserts the rule in the specified chain at a point specified by a user-definedinteger argument. If no argument is specified, the rule is inserted at the top of the chain.

ImportanteComo se mencionó arriba, el orden de las reglas en una cadena determina cuálesreglas se aplican a qué paquetes. Esto es importante para recordar cuando seagreguen reglas que usen la opción -A o -I.

Esto es especialmente importante cuando se agregan reglas utilizando la opción -Icon un argumento entero. Si especifica un número existente cuando agregue una reglaa una cadena, iptables añade la nueva regla antes que (o sobre) la regla existente.

• -L — Muestra todas las reglas en la cadena especificada luego del comando. Para listar todas lasreglas de todas las cadenas en la tabla de filtro establecida por defecto, no especifique ni unacadena ni una tabla. De lo contrario, la siguiente sintaxis debería ser utilizada para listar las reglasde una cadena determinada, en una tabla determinada:

iptables -L <chain-name> -t <table-name>

Additional options for the -L command option, which provide rule numbers and allow more verboserule descriptions, are described in Sección 2.9.2.6, “Opciones de listado”.

• -N — Crea una nueva cadena con un nombre dado por el usuario. El nombre debe ser único, sinose mostrará un mensaje de error.

• -P — Pone la política predeterminada para la cadena especificada, para que cuando los paquetesatraviesen toda la cadena sin encontrar una regla con la que coincidan, se los envía al destinoespecificado, sea ACCEPT o DROP.

• -R — Reemplaza una regla en la cadena especificada. El número de regla debe especificarsedespués del nombre de la cadena. La primera regla en una cadena corresponde a la regla númerouno.

• -X — Borra una cadena definida por el usuario. No se puede borrar una cadena predefinida.

• -Z — Pone los contadores de bytes y de paquetes a 0 en todas las cadenas de una tabla.

Page 150: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

140

2.9.2.3. Opciones de parámetros de IPTablesCiertos comandos de iptables, incluyen aquellos para agregar, adjuntar, borrar, insertar o borrarreglas dentro de una cadena particular, que requieren varios parámetros para construir una regla defiltrado de paquetes.

• -c — Reinicia los contadores de una regla particular. Este parámetro acepta las opciones PKTS yBYTES para especificar qué contadores resetear.

• -d — Pone el destino por nombre, dirección IP o red para un paquete que coincide con la regla.Cuando se especifique una red, los siguientes formatos de dirección de IP /máscara de red sonsoportados:

• N.N.N.N/M.M.M.M — Donde N.N.N.N es el rango de direcciones IP y M.M.M.M es la máscarade red.

• N.N.N.N/M — Donde N.N.N.N es el rango de direcciones IP y M son los bits de máscara.

• -f — Aplica esta regla sólo a paquetes fragmentados.

Puede usar el signo de exclamación (!) después de este parámetro para especificar que solamentese aceptan paquetes desfragmentados.

NotaLa distinción entre paquetes fragmentados y defragmentados es deseable, sin importarque los paquetes fragmentados sean una parte estándar del protocolo IP.

Originalmente diseñada para permitir que los paquetes IP viajen a través de redes conmarcos de diferentes tamaños, hoy en día la fragmentación es comúnmente utilizadapara generar ataques DoS, mediante paquetes mal formados. Tampoco sirve de muchoque IPv6 no permita en absoluto la fragmentación.

• -i — Establece la interfaz de red entrante, como ser por ejemplo, eth0 o ppp0. Con iptables,este parámetro opcional solo puede ser utilizado con las cadenas de INPUT y FORWARD, cuandosean utilizadas con la tabla de filter, y la cadena PREROUTING con las tablas nat y mangle.

Este parámetro también da soporte a todas las siguientes opciones especiales:

• El signo de exclamación (!) — Revierte la directiva, significando que las interfaces especificadasde excluyen de esta regla.

• Signo de suma (+) — Un carácter comodín utilizado para relacionar a todas las interfaces que secorrespondan con una cadena determinada. Por ejemplo, el parámetro -i eth+ aplicaría estaregla a cualquier interfaz Ethernet, pero excluiría el resto de las interfases, como por ejemplo,ppp0.

Si el parámetro -i se usa pero no se especifica una interfaz, entonces todas las interfases sonafectadas por esta regla.

• -j — Salta al destino especificado si un paquete coincide con una regla en particular.

Los destinos estándares son ACCEPT, DROP, QUEUE, y RETURN.

Page 151: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Opciones de la línea de comandos de IPTables

141

Existen también a disposición algunas opciones extendidas, a través de módulos cargados pordefecto con el paquete RPM iptables de Fedora. Algunas de las acciones válidas de ese móduloson LOG, MARK, y REJECT, entre otras. Para obtener mayor información acerca de estas y de otrasacciones, consulte la página man de iptables.

Esta opción también puede usarse para dirigir el paquete coincidente a una regla particular enuna cadena del usuario fuera de la cadena actual, para que se le puedan aplicar otras reglas alpaquete.

Si no se especifica un destino, el paquete se mueve a la regla siguiente sin hacer nada. El contadorde esta regla, sin embargo, se incrementa por uno.

• -o — Establece la interfaz de red saliente para una regla. Esta opción sólo es válida para lascadenas OUTPUT y FORWARD en la tabla filter, y para la cadena POSTROUTING en lastablas nat y mangle tables. Este parámetro acepta las mismas opciones que el parámetro para lainterfaz de red entrante (-i).

• -p <protocol> — Sets the IP protocol affected by the rule. This can be either icmp, tcp, udp, orall, or it can be a numeric value, representing one of these or a different protocol. You can also useany protocols listed in the /etc/protocols file.

The "all" protocol means the rule applies to every supported protocol. If no protocol is listed withthis rule, it defaults to "all".

• -s — Pone el fuente de un paquete particular usando la misma sintaxis del parámetro de destino (-d).

2.9.2.4. Opciones de coincidencia de IPTablesDifferent network protocols provide specialized matching options which can be configured to match aparticular packet using that protocol. However, the protocol must first be specified in the iptablescommand. For example, -p <protocol-name> enables options for the specified protocol. Note thatyou can also use the protocol ID, instead of the protocol name. Refer to the following examples, eachof which have the same effect:

iptables -A INPUT -p icmp --icmp-type any -j ACCEPT

iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT

Las definiciones de los servicios son provistas en el archivo /etc/services. Para una mejorlectura, es recomendable que se utilice el nombre de los servicios, en lugar de los números depuertos.

Page 152: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

142

AdvertenciaAsegure el archivo /etc/services de manera de poder evitar que sea editado porusuarios no autorizados. Si este archivo es editable, los crackers pueden utilizarlo parahabilitar puertos en su equipo que de otra manera permanecerían cerrados. Para segurareste archivo, ingrese los siguiente comandos siendo usuario root:

[root@myServer ~]# chown root.root /etc/services [root@myServer ~]# chmod 0644 /etc/services[root@myServer ~]# chattr +i /etc/services

Esto previene que se pueda renombrar, borrar o crear enlaces al archivo.

2.9.2.4.1. Protocolo TCPEstas opciones de comparación están disponibles para el protocolo TCP (-p tcp):

• --dport — Pone el puerto destino del paquete.

Para configurar esta opción, use un nombre de servicio de red (tal como www o smtp); o un númerode puerto; o un rango de números de puerto.

Para especificar un rango de números de puerto, separe los dos números con dos puntos (:). Porejemplo: -p tcp --dport 3000:3200. El rango más grande aceptable es 0:65535.

Use el signo de exclamación (!) después de la opción --dport para que seleccione todos lospaquetes que no usen ese servicio de red o puerto.

Para navegar por los nombres o alias de servicios de red y sus números de puerto, vea el archivo /etc/services.

La opción --destination-port es sinónimo de --dport.

• --sport — Pone el puerto de origen del paquete y usa las mismas opciones que --dport. Laopción --source-port es sinónimo de --sport.

• --syn — Se aplica a todos los paquetes TCP diseñados para iniciar una comunicación,comúnmente llamados paquetes SYN. Cualquier paquete que lleve datos no se toca.

Use un signo de exclamación (!) después de --syn para que seleccione los paquetes no-SYN.

• --tcp-flags <tested flag list> <set flag list> — Allows TCP packets that havespecific bits (flags) set, to match a rule.

La opción de correspondencia --tcp-flags acepta dos parámetros. El primero es la máscara;una lista separada por comas de las marcas a ser examinadas en el paquete. El segundoparámetro es una lista separada por comas de las marcas que deben ser definidas en la regla conla que se pretende concordar.

Las posibles banderas son:

• ACK

Page 153: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Opciones de la línea de comandos de IPTables

143

• FIN

• PSH

• RST

• SYN

• URG

• ALL

• NONE

Por ejemplo, una regla iptables que contenga las siguientes especificaciones solo secorresponderá con paquetes TCP que tengan definida la marca SYN, y que no tengan definidas lasmarcas ACK ni FIN:

--tcp-flags ACK,FIN,SYN SYN

Use el signo de exclamación (!) después de --tcp-flags para revertir el efecto de coincidenciade la opción.

• --tcp-option — Intenta corresponderse con opciones específicas de TCP que puedanestablecerse dentro de un paquete determinado. Esta opción de correspondencia puede tambiénrevertirse con el signo de exclamación (!).

2.9.2.4.2. Protocolo UDPEstas opciones de coincidencias están disponibles para el protocolo UDP (-p udp):

• --dport — Especifica el puerto de destino del paquete UDP, utilizando el nombre del servicio,el número de puerto, o rango de números de puerto. La opción de correspondencia --destination-port es equivalente.

• --sport — Especifica el puerto de origen del paquete UDP, utilizando el nombre del servicio, elnúmero de puerto, o rango de números de puertos. La opción de correspondencia --source-port es equivalente.

Con las opciones --dport y --sport, para especificar un rango válido de puertos, separe ambosnúmeros del rango con dos puntos (:). Por ejemplo: -p tcp --dport 3000:3200. El rango válidomás extenso que puede aceptarse es 0:65535.

2.9.2.4.3. Protocolo ICMPLas siguientes opciones de coincidencias están disponibles en el Protocolo de Mensajes de Controlde Internet (ICMP) (-p icmp):

• --icmp-type — Establece el nombre y número del tipo de ICMP a corresponderse con la regla.Puede obtenerse una lista de nombres ICMP válidos al ingresar el comando iptables -p icmp-h.

Page 154: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

144

2.9.2.4.4. Módulos adicionales para opciones de coincidenciaOpciones de coincidencias adicionales están disponibles a través de los módulos cargados por elcomando iptables.

To use a match option module, load the module by name using the -m <module-name>, where<module-name> is the name of the module.

Por defecto hay disponibles muchos módulos. También puede crear módulos para proveerfuncionalidad adicional.

La siguiente es una lista parcial de los módulos más comúnmente usados:

• Módulo limit — Pone límites sobre cuántos paquetes se toman para una regla particular.

Cuando se usa junto con el destino LOG, el módulo limit puede prevenir una inundación depaquetes coincidentes que pudieran sobrecargar al sistema de log con mensajes repetitivos oacabar los recursos del sistema.

Refer to Sección 2.9.2.5, “Opciones de destino” for more information about the LOG target.

El módulo limit habilita las siguientes opciones:

• --limit — Sets the maximum number of matches for a particular time period, specified as a<value>/<period> pair. For example, using --limit 5/hour allows five rule matches perhour.

Los períodos se pueden especificar en segundos, minutos, horas o días.

Si no se utiliza un número o modificador de tiempo, se asume el valor predeterminado de 3/hora.

• --limit-burst — Pone un límite en el número de paquetes que pueden coincidir con la reglaen cada momento.

Esta opción se especifica como un entero y no se debe usar junto con la opción --limit.

Si no se especifica un valor, el valor predeterminado cinco (5) es asumido.

• Módulo state — Habilita el chequeo del estado.

El módulo state habilita las siguientes opciones:

• --state — chequea a un paquete con los siguientes estados de conexión:

• ESTABLISHED — El paquete está asociado a otros paquetes en una conexión establecida.Necesita aceptar este estado si quiere mantener una conexión entre un cliente y un servidor.

• INVALID — El paquete es chequeado no está asociado a una conexión conocida.

• NEW — El paquete chequeado es para crear una conexión nueva o es parte de una conexiónde doble vía que no fue vista previamente. Necesita aceptar este estado si quiere permitirconexiones nuevas a un servicio.

• RELATED — El paquete coincidente está iniciando una conexión relacionada de alguna maneraa otra existente. Un ejemplo de esto es FTP, que usa una conexión para el control del tráfico(puerto 21) y una conexión separada para la transferencia de datos (puerto 20).

Page 155: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Opciones de la línea de comandos de IPTables

145

Estos estados de conexión pueden ser utilizados combinados con otros, si se los separa concomas, como por ejemplo -m state --state INVALID,NEW.

• Módulo mac — Habilita el chequeo de la dirección MAC de hardware.

El módulo mac habilita la siguiente opción:

• --mac-source — Hace corresponder una dirección MAC de la tarjeta de interfaz de red quehaya enviado el paquete. Para excluir una dirección MAC de la regla, coloque un signo deadmiración (!) luego de la opción de correspondencia --mac-source.

Vea en la página man de iptables para más opciones de comparación disponibles a través demódulos.

2.9.2.5. Opciones de destinoCuando un paquete concuerde con una regla en particular, la regla puede dirigir el paquete hacia unnúmero de destinos diferentes determinados por la acción apropiada. Cada cadena tiene un objetivoestablecido por defecto, que será utilizado si ninguna de las reglas en esa cadena concuerdan con unpaquete, o si ninguna de las reglas que concuerdan con el paquete especifica un destino.

Los siguientes son los destinos estándares:

• <user-defined-chain> — A user-defined chain within the table. User-defined chain names mustbe unique. This target passes the packet to the specified chain.

• ACCEPT — Permite pasar al paquete a su destino o a otra cadena.

• DROP — Descarta el paquete sin responder. El sistema que mandó el paquete no es notificado de lafalla.

• QUEUE — El paquete es encolado para su manejo por una aplicación en el espacio del usuario.

• RETURN — Detiene el chequeo del paquete contra las reglas restantes de la cadena. Si el paquetecon un destino RETURN coincide con una regla en una cadena llamada por otra cadena, el paquetees devuelto a la primera cadena y continúa el chequeo donde quedó antes de saltar. Si la reglaRETURN se usa en una cadena predefinida y el paquete no se puede mover a una cadena previa,se usa el destino predeterminado para la cadena.

In addition, extensions are available which allow other targets to be specified. These extensions arecalled target modules or match option modules and most only apply to specific tables and situations.Refer to Sección 2.9.2.4.4, “Módulos adicionales para opciones de coincidencia” for more informationabout match option modules.

Existen numerosos módulos de destino extendidos, muchos de los cuales solo se aplican a ciertastablas o situaciones. Algunos de los más populares incluidos por defecto en Fedora son:

• LOG — Registra todos los paquetes que se correspondan con esta regla. Debido a que lospaquetes son registrados por el kernel, el archivo /etc/syslog.conf determina donde sonescritas estas entradas de registro. Por defecto, son ubicadas en el archivo /var/log/messages.

Hay opciones adicionales que se pueden usar después del destino LOG para especificar la forma enque se realiza el log:

Page 156: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

146

• --log-level — Pone la prioridad de registrado del evento. Vaya a la página man desyslog.conf para una lista de los niveles de prioridad.

• --log-ip-options — Registra todas las opciones puestas en la cabecera de un paquete IP.

• --log-prefix — Pone una cadena de hasta 29 caracteres antes de la línea de registro cuandose escribe. Esto es útil cuando se escribe filtros syslog para usar junto con el registrado depaquetes.

NotaDebido a una cuestión con esta opción, se debe agregar un espacio al final del valorlog-prefix.

• --log-tcp-options — Registra todas las opciones puestas en la cabecera de un paqueteTCP.

• --log-tcp-sequence — Escribe el número de secuencia de un paquete en el log.

• REJECT — Envía un paquete de error como respuesta al sistema remoto y descarta el paquete.

The REJECT target accepts --reject-with <type> (where <type> is the rejection type)allowing more detailed information to be returned with the error packet. The message port-unreachable is the default error type given if no other option is used. Refer to the iptables manpage for a full list of <type> options.

Otras extensiones de acción, incluidas aquellas que son útiles para el enmascaramiento de IPutilizando la tabla nat, o mediante alteración de paquete utilizando la tabla mangle, pueden serencontradas en la página man de iptables.

2.9.2.6. Opciones de listadoThe default list command, iptables -L [<chain-name>], provides a very basic overview of thedefault filter table's current chains. Additional options provide more information:

• -v — Muestra información adicional, como por ejemplo la cantidad de paquetes y los bytes que haprocesado cada cadena, la cantidad de paquetes y los bytes que se ha correspondido con cadaregla, y qué interfases se aplican a una regla determinada.

• -x — Expande los números a sus valores exactos. En un sistema activo, el número de lospaquetes y la cantidad de bytes procesados por una cadena o regla determinada puede estarabreviado en Kilobytes, Megabytes (Megabytes) o Gigabytes. Esta opción obliga a sermostrado el número entero.

• -n — Muestra las direcciones IP y los números de puerto en su formato numérico, en vez delformato predeterminado de nombre de equipo y nombre de servicio.

• --line-numbers — Muestra las reglas en cada cadena junto a su orden numérico en dichacadena. Esta opción es útil si se intenta eliminar una regla específica de una cadena, o para saberdónde insertar una regla dentro de una cadena.

• -t <table-name> — Specifies a table name. If omitted, defaults to the filter table.

Page 157: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Guardando las reglas de IPTalbes

147

2.9.3. Guardando las reglas de IPTalbesLas reglas creadas con el comando iptables son almacenadas en la memoria. Si el sistema esreiniciado antes de guardar el conjunto de reglas de iptables, estas reglas se perderán. Para quelas reglas de netfilter sigan vigentes luego de reiniciar el sistema, necesitan ser guardadas. Parasalvar reglas de netfilter, ingrese el siguiente comando como usuario root:

/sbin/service iptables save

Esto ejecuta el programa init de iptables, que a su vez ejecuta el programa /sbin/iptables-save y escribe la configuración actual de iptables a /etc/sysconfig/iptables. El archivoexistente /etc/sysconfig/iptables es guardado como /etc/sysconfig/iptables.save.

La próxima vez que el sistema se reinicie, el programa init de iptables aplica nuevamente lasreglas guardadas en /etc/sysconfig/iptables utilizando el comando /sbin/iptables-restore.

Si bien siempre es una buena idea probar una nueva regla iptables antes de incluirla en el archivo/etc/sysconfig/iptables, es posible copiar reglas iptables a este archivo desde unaversión diferente del mismo archivo. Esto permite una rápida distribución de los conjuntos de reglasiptables en diversas máquinas.

También puede grabar las reglas de iptables a un archivo separado para distribuir, respaldar u otrospropósitos. Para guardar sus reglas de iptables, ingrese el siguiente comando como root:

[root@myServer ~]# iptables-save > <filename>where <filename> is a user-defined name for your ruleset.

ImportanteSi va a distribuir el archivo /etc/sysconfig/iptables a otras máquinas, debe teclear/sbin/service iptables restart para que las nuevas reglas tengan efecto.

NotaFíjese la diferencia entre el comando iptables (/sbin/iptables), que es utilizadopara manipular las tablas y cadenas que constituyen las funcionalidades de iptables,y el servicio iptables (/sbin/iptables service), que es utilizado para activar ydesactivar el servicio de iptables en sí.

2.9.4. Programas de control de IPTablesHay dos métodos básicos de controlar iptables en Fedora:

• Firewall Configuration Tool (system-config-securitylevel) — A graphical interface forcreating, activating, and saving basic firewall rules. Refer to Sección 2.8.2, “Configuración básica deun cortafuego” for more information.

• /sbin/service iptables <option> — Used to manipulate various functions of iptablesusing its initscript. The following options are available:

Page 158: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

148

• start — Si el cortafuego está configurado (es decir, /etc/sysconfig/iptables existe), sedetienen todos los iptables completamente y se los vuelve a iniciar con el comando /sbin/iptables-restore. Esta opción funciona solamente si el módulo de kernel ipchains no escargado. Para chequear si este módulo está cargado, teclee el siguiente comando como root:

[root@miServidor ~]# lsmod | grep ipchains

Si este comando no muestra salida, significa que no está cargado. Si es necesario, use elcomando /sbin/rmmod para eliminar el módulo.

• stop — Si el cortafuego está ejecutándose, las reglas del cortafuego en la memoria sonlimpiadas y todos los módulos y ayudantes de iptables son descargados.

Si la directiva IPTABLES_SAVE_ON_STOP del archivo de configuración /etc/sysconfig/iptables-config es alterada de su valor original a yes, las reglas actuales serán guardadasen /etc/sysconfig/iptables y todas las reglas existentes serán trasladadas a /etc/sysconfig/iptables.save.

Refer to Sección 2.9.4.1, “Archivo de Configuración de los Scripts de Control de IPTables” formore information about the iptables-config file.

• restart — Si un cortafuegos está ejecutándose, sus reglas en la memoria serán eliminadas,y el cortafuegos es iniciado nuevamente si es que está configurado en /etc/sysconfig/iptables. Esta opción solo funciona si el módulo ipchains del kernel no está cargado.

Si la directiva IPTABLES_SAVE_ON_RESTART en el archivo de configuración /etc/sysconfig/iptables-config es alterada de su valor original a yes, las reglas actualesserán guardadas en /etc/sysconfig/iptables y cualquier otra regla existente serátrasladada a /etc/sysconfig/iptables.save.

Refer to Sección 2.9.4.1, “Archivo de Configuración de los Scripts de Control de IPTables” formore information about the iptables-config file.

• status — Muestra el estado del cortafuego y lista todas las reglas activas

The default configuration for this option displays IP addresses in each rule. To display domain andhostname information, edit the /etc/sysconfig/iptables-config file and change the valueof IPTABLES_STATUS_NUMERIC to no. Refer to Sección 2.9.4.1, “Archivo de Configuración delos Scripts de Control de IPTables” for more information about the iptables-config file.

• panic — Limpia todas las reglas del cortafuego. Se configura como política para todas las tablasa DROP.

Esta opción puede ser útil si se sabe que un servidor está comprometido. En vez dedesconectarlo físicamente de la red o apagarlo, puede usar esta opción para detener todo tráficoposterior, pero dejando a la computadora lista para un análisis forense.

• save — Saves firewall rules to /etc/sysconfig/iptables using iptables-save. Refer toSección 2.9.3, “Guardando las reglas de IPTalbes” for more information.

Page 159: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Programas de control de IPTables

149

NotaTo use the same initscript commands to control netfilter for IPv6, substitute ip6tablesfor iptables in the /sbin/service commands listed in this section. For moreinformation about IPv6 and netfilter, refer to Sección 2.9.5, “IPTables e IPv6”.

2.9.4.1. Archivo de Configuración de los Scripts de Control de IPTablesEl comportamiento de los scripts de inicio de iptables se controlan por el archivo de configuración /etc/sysconfig/iptables-config. La siguiente es una lista de las directivas contenidas en estearchivo:

• IPTABLES_MODULES — Especifica una lista separada por comas de los módulos iptablesadicionales a cargar cuando se active el cortafuego. Estos pueden incluir el rastreo de conexión yayudantes NAT.

• IPTABLES_MODULES_UNLOAD — Descarga los módulos al reiniciar y detener. Esta directiva aceptalos siguientes valores:

• yes — El valor por defecto. Esta opción debe ser puesta para conseguir un estado correcto deun reinicio o detenida de un cortafuego.

• no — Esta opción debe ser puesta sólo si hay problemas al descargar los módulos de netfilter.

• IPTABLES_SAVE_ON_STOP — Guarda las reglas actuales en /etc/sysconfig/iptablescuando el cortafuego es detenido. Esta directiva acepta los siguientes valores:

• yes — Guarda las reglas existentes en /etc/sysconfig/iptables cuando se detiene elcortafuego, moviendo la versión previa al archivo /etc/sysconfig/iptables.save.

• no — El valor por defecto. No guarda las reglas existentes cuando el cortafuego es detenido.

• IPTABLES_SAVE_ON_RESTART — Guarda las reglas actuales del cortafuego cuando es reiniciado.Esta directiva acepta los siguientes valores:

• yes — Guarda las reglas existentes en /etc/sysconfig/iptables cuando el cortafuego esreiniciado, moviendo la versión previa al archivo /etc/sysconfig/iptables.save.

• no — El valor predeterminado. No guarda las reglas existentes cuando se reinicia el cortafuego.

• IPTABLES_SAVE_COUNTER — Guarda y restaura todos los contadores de paquetes y de bytes entodas las cadenas y reglas. Esta directiva acepta los siguientes valores:

• yes — Guarda los valores de los contadores.

• no — El valor predeterminado. No guarda los valores de los contadores.

• IPTABLES_STATUS_NUMERIC — Muestra las direcciones IP en formato numérico en vez dedominios y nombres de equipo. Esta directiva acepta los siguientes valores:

• yes — El valor predeterminado. Solo devuelve la dirección IP dentro de una salida de estado.

• no — Devuelve el dominio o nombres de equipos en una salida de estado.

Page 160: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 2. Asegurando su Red

150

2.9.5. IPTables e IPv6Si se instala el paquete iptables-ipv6, netfilter en Fedora puede filtrar la siguiente generación delprotocolo de Internet IPv6. El comando usado para manipular el netfilter de IPv6 es ip6tables.

La mayoría de las directivas para este comando son idénticas a aquellas utilizadas para iptables,excepto que la tabla nat no es aún soportada. Esto significa que aún no es posible realizar tareasde traslados sobre direcciones de redes IPv6, como ser, por ejemplo, enmascaramiento y reenvío depuertos.

Las reglas de ip6tables se guardan en el archivo /etc/sysconfig/ip6tables. Las reglasprevias guardadas antes por los scripts de inicio de ip6tables se guardan en el archivo /etc/sysconfig/ip6tables.save.

Las opciones de configuración para el programa init ip6tables son almacenadas en /etc/sysconfig/ip6tables-config, y los nombres para cada directiva varían significativamente de loscorrespondientes en iptables.

Por ejemplo, la directiva IPTABLES_MODULES de iptables-config: el equivalente en el archivoip6tables-config es IP6TABLES_MODULES.

2.9.6. Recursos adicionalesConsulte las siguientes referencias para obtener información adicional sobre el filtrado de paquetescon iptables.

• Sección 2.8, “Cortafuegos” — Contains a chapter about the role of firewalls within an overallsecurity strategy as well as strategies for constructing firewall rules.

2.9.6.1. Documentación instalada de IPTables• man iptables — Contiene la descripción de iptables así como una lista comprensiva de los

destinos, opciones y extensiones de comparación.

2.9.6.2. Sitios web útiles sobre IPTables• http://www.netfilter.org/ — El hogar del proyecto netfilter/iptables. Contiene información ordenada

acerca de iptables, incluyendo un FAQ que describe problemas específicos, y varias guíasútiles realizadas por Rusty Russell, el encargado del cortafuegos para IP de Linux. Los diferentestutoriales del sitio abarcan diferentes temas, como ser por ejemplo, una descripción de losconceptos básicos de trabajo en redes, filtros de paquetes del kernel y configuraciones NAT.

• http://www.linuxnewbie.org/nhf/Security/IPtables_Basics.html — Una introducción acerca de cómolos paquetes se trasladan dentro del kernel de Linux, más una introducción para saber cómoconstruir comandos básicos de iptables.

Page 161: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

151

EncriptaciónExisten dos clases principales de datos que deben ser protegidos: datos en reposo y datos enmovimiento. Estas clases de datos son protegidas en forma similar utilizando tecnología similar, perola forma en que se implementa esta protección puede ser completamente diferente en un caso y enotro. Por sí solo, ningún modo de protección puede prevenir nuestro sistema de todos los posiblesmétodos en que puede llegar a ser dañado, ya que la misma información puede estar en descanso yen movimiento en diferentes lugares y al mismo tiempo.

3.1. Datos en reposoData at rest is data that is stored on a hard drive, tape, CD, DVD, disk, or other media. Thisinformation's biggest threat comes from being physically stolen. Laptops in airports, CDs goingthrough the mail, and backup tapes that get left in the wrong places are all examples of events wheredata can be compromised through theft. If the data was encrypted on the media then you wouldn'thave to worry as much about the data being compromised.

3.2. Encriptación completa del discoFull disk or partition encryption is one of the best ways of protecting your data. Not only is each fileprotected but also the temporary storage that may contain parts of these files is also protected. Fulldisk encryption will protect all of your files so you don't have to worry about selecting what you want toprotect and possibly missing a file.

Desde la liberación de Fedora 9, ésta y cualquier versión posterior tiene soporte nativo paraEncriptado LUKS. LUKS (por las iniciales en inglés de Linux Unified Key Setup-on-disk-format) vaa encriptar las particiones de su disco rígido de modo que cuando su computadora se encuentreapagada, sus datos estarán protegidos. Esto también protegerá los datos de su computadora deatacantes que intenten ingresar a su equipo en el modo de usuario único, o que hubieran conseguidoel acceso de otra forma.

Las herramientas de encriptado total del disco rígido, como LUKS, solo protegen sus datos cuandosu computadora se encuentra apagada. Una vez que la computadora se encienda, y LUKS hayadecriptado el disco, los archivos en ese disco quedarán disponibles para cualquiera que puedaacceder normalmente a ellos. Para proteger sus archivos cuando su computadora esté encendida,utilice la herramienta de encriptado total del disco combinada con alguna otra, como ser por ejemplo,el encriptado de archivos. Recuerde también bloquear su computadora siempre que se encuentrelejos de ella. Una frase de acceso protegiendo el salvapantallas, establecida para que se active a lospocos minutos de inactividad del equipo, es una buena forma de mantener a los intrusos alejados deél.

3.3. Encriptación basada en archivoGnuPG (GPG) es una versión de código abierto de PGP, que le permite firmar y/o encriptar un archivoo mensaje de correo electrónico. Esto es útil para mantener la integridad del mensaje o del archivo,y también protege la confidencialidad de la información contenida. En el caso del correo electrónico,GPG brinda una protección doble. No solo puede proveer protección para los datos en reposo, sinotambién para los datos en movimiento, luego que el mensaje ha sido enviado a través de la red.

El encriptado de archivos está orientado para proteger un archivo luego que éste haya abandonadosu computadora, como cuando, por ejemplo, envía un CD a través del correo postal. Algunas

Page 162: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 3. Encriptación

152

herramientas para encriptar archivos pueden dejar rastros de aquellos archivos que encriptan, rastrosque podrían ser recuperados en algunas circunstancias por atacantes que tengan acceso físico a suequipo. Para proteger de este tipo de ataques a los contenidos de los archivos, utilice la herramientade encriptado de archivos combinada con alguna otra, como ser por ejemplo, el encriptado total deldisco.

3.4. Datos en movimientoLos datos en movimiento son datos que están siendo transmitidos en una red. La mayor amenaza aeste tipo de datos son las intercepciones y alteraciones que puedan sufrir. Los datos de su nombre deusuario y contraseña nunca deberían ser transmitidos en una red sin que viajen protegidos, ya quepodrían ser interceptados, y de este modo permitir que alguien se haga pasar por usted, o que puedaobtener acceso a información importante. Otro tipo de información privada, como son por ejemplolos datos de una cuenta bancaria, deberían también ser protegidos cada vez que sean transmitidosa través de una red. Si lo que se encripta es la sesión entera de red iniciada, entonces no tiene quepreocuparse acerca de posibles ataques a los datos que se transmitan en ella.

Los datos en movimiento son particularmente vulnerables a los atacantes, ya que ellos no necesitanestar cerca de la computadora en donde estos datos son almacenados: simplemente necesitan estaren algún punto del camino que esos datos están recorriendo. Los túneles de encriptado puedenproteger los datos a lo largo del camino de las comunicaciones.

3.5. Redes privadas virtuales (VPNs)Las Redes Virtuales Privadas (VPNs, por las iniciales en inglés de Virtual Private Networks), proveentúneles encriptados entre computadoras o redes de computadoras a lo largo de todos los puertos.Esto significa lógicamente que tanto el cliente como el servidor están conectados a la misma red através de VPN. Las VPNs son muy comunes, y muy fáciles de configurar y de utilizar.

3.6. Shell seguro (SSH, por las iniciales en inglés de SecureShell)Shell seguro (SSH) es un protocolo de red muy poderoso que se utiliza para comunicarse con otrossistemas operativos a través de un canal seguro. Las transmisiones realizadas con SSH estánencriptadas y protegidas de cualquier tipo de intercepción. Pueden utilizarse también registros detipo criptográfico para proveer un mejor método de autenticación además del tradicional nombre deusuario y contraseña.

SSH es muy fácil de activar. Simplemente iniciando el servicio SSH, el sistema comenzará a aceptarconexiones y les permitirá acceder al sistema sólo a aquellas que, durante el proceso de conexión,indiquen correctamente tanto un nombre de usuario como una contraseña. El TCP estándar para lasconexiones SSH es 22, sin embargo esto puede cambiarse modificando el archivo de configuración/etc/ssh/sshd_config, y reiniciando el servicio. Este archivo también contiene otras opciones deconfiguración para SSH.

SSH también ofrece la posibilidad de túneles encriptados entre computadoras, pero utilizandosolamente un puerto. El reenvío de puertos puede ser realizado sobre un túnel SSH1, pero lautilización del reenvío de puertos no es tan fluido como una VPN.

1 http://www.redhatmagazine.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no-stinking-vpn-software

Page 163: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Encriptación de disco LUKS (Linux Unified Key Setup-on-disk-format)

153

3.7. Encriptación de disco LUKS (Linux Unified Key Setup-on-disk-format)La Configuración de Clave Unificada de Linux en el formato de disco (o LUKS por sus iniciales eninglés) le permite encriptar particiones en su computadora Linux. Esto es particularmente importantecuando se trata de computadores móviles y de medios removibles. LUKS le permite claves múltiplesde usuario para desencriptar una clave maestra que se usa para la encriptación de la partición.

3.7.1. Implementación de LUKS en FedoraFedora 9, and later, utilizes LUKS to perform file system encryption. By default, the option to encryptthe file system is unchecked during the installation. If you select the option to encrypt you hard drive,you will be prompted for a passphrase that will be asked every time you boot the computer. Thispassphrase "unlocks" the bulk encryption key that is used to decrypt your partition. If you choose tomodify the default partition table you can choose which partitions you want to encrypt. This is set in thepartition table settings

Fedora's default implementation of LUKS is AES 128 with a SHA256 hashing. Ciphers that areavailable are:

• AES - Advanced Encryption Standard - FIPS PUB 1972

• Twofish (A 128-bit Block Cipher)

• Serpent

• cast5 - RFC 21443

• cast6 - RFC 26124

3.7.2. Encriptación manual de directorios

AdvertenciaAl seguir este procedimiento se eliminarán todos los datos de la partición que estáencriptando. ¡Perderá toda la información! ¡Asegúrese de hacer un respaldo de sus datosen una fuente externa antes de comenzar!

Si está corriendo una versión de Fedora anterior a la 9 y quiere encriptar una partición, o si quiereencriptar una partición después de la instalación de la versión actual de Fedora, las siguientesinstrucciones son para Ud. El ejemplo que ofrecemos más abajo muestra la encriptación de unapartición /home pero puede utilizarse sobre cualquier partición.

El siguiente procedimiento borrará todos los datos existentes, de modo que es convenienteasegurarse de haber hecho un respaldo antes de comenzar. También es necesario tener unapartición separada para /home (en nuestro caso es /dev/VG00/LV_home). Todo lo que se muestraa continuación debe ser realizado como usuario root. Cualquiera de las etapas en este método nopuede realizarse a no ser que la anterior haya sido exitosa.

3.7.3. Instrucciones paso a paso1. Ingrese a nivel de ejecución 1: telinit 1

Page 164: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 3. Encriptación

154

2. Desmonte su /home actual: umount /home

3. Si falla, use fuser para identificar y eliminar los procesos que retienen a /home: fuser -mvk /home

4. Verifique que /home ya no esté montado: cat /proc/mounts | grep home

5. Llene su partición con datos al azar: dd if=/dev/urandom of=/dev/VG00/LV_home. Esteproceso necesita de muchas horas para completarse.

ImportanteEl proceso, sin embargo, es fundamental para obtener una buena protección contralos intentos de descifrado. Sólo déjelo correr toda la noche.

6. Inicie su partición: cryptsetup --verbose --verify-passphrase luksFormat /dev/VG00/LV_home

7. Abra el dispositivo nuevo encriptado: cryptsetup luksOpen /dev/VG00/LV_home home

8. check it's there: ls -l /dev/mapper | grep home

9. Genere un sistema de archivos: mkfs.ext3 /dev/mapper/home

10. Móntelo: mount /dev/mapper/home /home

11. check it's visible: df -h | grep home

12. Agregue lo siguiente a /etc/crypttab: home /dev/VG00/LV_home none

13. Edite su /etc/fstab, elimine la antigua entrada de /home, y agregue /dev/mapper/home /homeext3 defaults 1 2

14. Verifique su entrada fstab: mount /home

15. Restaure los contextos de seguridad de SELinux: /sbin/restorecon -v -R /home

16. Reinicie: shutdown -r now

17. La entrada en /etc/crypttab hace que su computadora le pida su frase de acceso luks al arrancar

18. Ingrese como root y restaure su respaldo

3.7.4. Lo que acaba de realizarFelicitaciones, ahora tiene una partición encriptada para que todos sus datos reposen en formasegura cuando su equipo se encuentre apagado.

3.7.5. Enlaces de interésPara información adicional sobre LUKS, o encriptación de discos duros bajo Fedora, por favor visitealguno de los siguientes enlaces:

• LUKS - Linux Unified Key Setup5

Page 165: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Archivos Encriptados 7-Zip

155

• HOWTO: Creating an encrypted Physical Volume (PV) using a second hard drive, pvmove, and aFedora LiveCD6

3.8. Archivos Encriptados 7-Zip7-Zip7 es una nueva herramienta de compresión multiplataforma que también puede realizarpoderosos encriptados (AES-256) para proteger los contenidos de un archivo. Esto es muy útilcuando necesite trasladar datos entre diferentes computadoras que utilicen distintos sistemasoperativos, y quiera utilizar para ello una herramienta de encriptado portátil (por ejemplo, Linux en elhogar, Windows en el trabajo).

3.8.1. Instalación de 7-Zip en Fedora7-Zip no es un paquete que venga instalado por defecto con Fedora, pero se encuentra disponiblepara descargarlo desde el repositorio. Una vez instalado, el paquete se irá actualizando cada vez quesea necesario, del mismo modo que el resto del software en su sistema, sin necesitar para ello ningúntipo de atención especial.

3.8.2. Instrucciones paso a paso para su instalación• Open a Terminal: Click ''Applications'' -> ''System Tools'' -> ''Terminal''

• Instale 7-Zip con permisos de usuario sudo: sudo yum install p7zip

• Cierre la terminal: exit

3.8.3. Instrucciones paso a paso para su utilizaciónBy following these instructions you are going to compress and encrypt your "Documents" directory.Your original "Documents" directory will remain unaltered. This technique can be applied to anydirectory or file you have access to on the filesystem.

• Open a Terminal:Click ''Applications'' -> ''System Tools'' -> ''Terminal''

• Comprima y Encripte: (ingrese una contraseña cuando le sea pedido) 7za a -mhe=on -ms=on -p Documentos.7z Documentos/

The "Documents" directory is now compressed and encrypted. The following instructions will move theencrypted archive somewhere new and then extract it.

• Cree un directorio nuevo: mkdir lugarnuevo

• Traslade el archivo encriptado: mv Documentos.7z lugarnuevo

• Posiciónese en el nuevo directorio: cd lugarnuevo

• Descomprima el archivo: (ingrese la contraseña cuando se le pida) 7za x Documentos.7z

El archivo ya ha sido descomprimido en el nuevo directorio. Las instrucciones siguientes van adeshacer los pasos realizados y devolverán a su computadora el estado anterior en el que seencontraba.

• Diríjase al directorio superior inmediato: cd ..

7 http://www.7-zip.org/

Page 166: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 3. Encriptación

156

• Borre el archivo de prueba creado y sus contenidos extraídos: rm -r lugarnuevo

• Cierre la terminal: exit

3.8.4. Elementos para prestar atención7-Zip no se encuentra instalado por defecto en los sistemas operativos Microsoft Windows o Mac OSX. Si necesita utilizar sus archivos 7-Zip en alguna de estas plataformas, necesitará instalar la versiónapropiada de 7-Zip en los equipos correspondientes. Vea la página de descargas8.

GNOME's File Roller application will recognize your .7z files and attempt to open them, but it willfail with the error "''An error occurred while loading the archive.''" when it attempts to do so. This isbecause File Roller does not currently support the extraction of encrypted 7-Zip files. A bug report([http://bugzilla.gnome.org/show_bug.cgi?id=490732 Gnome Bug 490732]) has been submitted.

3.9. Utilizando GNU Privacy Guard (GnuPG)GPG is used to identify yourself and authenticate your communications, including those with peopleyou don't know. GPG allows anyone reading a GPG-signed email to verify its authenticity. In otherwords, GPG allows someone to be reasonably certain that communications signed by you actuallyare from you. GPG is useful because it helps prevent third parties from altering code or interceptingconversations and altering the message.

3.9.1. Crear claves GPG en GNOMEInstall the Seahorse utility, which makes GPG key management easier. From the main menu, selectSystem > Administration > Add/Remove Software and wait for PackageKit to start. EnterSeahorse into the text box and select the Find. Select the checkbox next to the ''seahorse'' packageand select ''Apply'' to add the software. You can also install Seahorse at the command line with thecommand su -c "yum install seahorse".

To create a key, from the ''Applications > Accessories'' menu select ''Passwords and EncryptionKeys'', which starts the application Seahorse. From the ''Key'' menu select ''Create New Key...''then ''PGP Key'' then click ''Continue''. Type your full name, email address, and an optional commentdescribing who are you (e.g.: John C. Smith, [email protected], The Man). Click ''Create''. Adialog is displayed asking for a passphrase for the key. Choose a strong passphrase but also easy toremember. Click ''OK'' and the key is created.

AdvertenciaSi se olvida su frase de acceso, la clave no podrá ser utilizada y cualquier dato encriptadopor ella será perdido.

To find your GPG key ID, look in the ''Key ID'' column next to the newly created key. In most cases, ifyou are asked for the key ID, you should prepend "0x" to the key ID, as in "0x6789ABCD". You shouldmake a backup of your private key and store it somewhere secure.

8 http://www.7-zip.org/download.html

Page 167: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Crear claves GPG en KDE

157

3.9.2. Crear claves GPG en KDEStart the KGpg program from the main menu by selecting Applications > Utilities > Encryption Tool. Ifyou have never used KGpg before, the program walks you through the process of creating your ownGPG keypair. A dialog box appears prompting you to create a new key pair. Enter your name, emailaddress, and an optional comment. You can also choose an expiration time for your key, as well as thekey strength (number of bits) and algorithms. The next dialog box prompts you for your passphrase. Atthis point, your key appears in the main KGpg window.

AdvertenciaSi se olvida su frase de acceso, la clave no podrá ser utilizada y cualquier dato encriptadopor ella será perdido.

To find your GPG key ID, look in the ''Key ID'' column next to the newly created key. In most cases, ifyou are asked for the key ID, you should prepend "0x" to the key ID, as in "0x6789ABCD". You shouldmake a backup of your private key and store it somewhere secure.

3.9.3. Crear una clave GPG mediante la línea de comandosUse el siguiente comando: gpg --gen-key

El siguiente comando genera un par de claves consistentes en una clave pública y otra privada. Elresto de las personas utilizan su clave pública para autenticar y/o decriptar sus comunicaciones.Distribuya su clave pública lo mayor que pueda, especialmente a todos aquellos que quieran recibircomunicaciones auténticas por parte suya, como ser por ejemplo una lista de correo. El proyecto dedocumentación de Fedora, por ejemplo, le pide a sus participantes que incluyan su llave pública GPGen su correo introductorio.

Una serie de mensajes lo dirigen a lo largo del proceso. Presione la tecla Enter para indicar elvalor establecido por defecto si así lo desea. El primer mensaje le pide que elija el tipo de clave queprefiere:

Por favor elija qué tipo de clave desea: (1) DSA y ElGamal (por defecto) (2) DSA (sólo firma) (4)RSA (sólo firma) ¿Su elección? En la mayoría de los casos, la establecida por defecto es la eleccióncorrecta. Una clave DSA/ElGamal le permite no solo firmar documentos, sino también encriptararchivos.

Next, choose the key size: minimum keysize is 768 bits default keysize is 1024 bits highest suggestedkeysize is 2048 bits What keysize do you want? (1024) Again, the default is sufficient for almost allusers, and represents an ''extremely'' strong level of security.

Next, choose when the key will expire. It is a good idea to choose an expiration date instead ofusing the default, which is ''none.'' If, for example, the email address on the key becomes invalid, anexpiration date will remind others to stop using that public key.

Por favor indique por cuánto tiempo la clave debe ser válida. 0 = la calve no expira, d = la clave expiraen n días, w = la clave expira en n semanas, m = la clave expira en n meses, y = la clave expira en naños. ¿La clave es válida por? (0)

Ingresar un valor de 1y, por ejemplo, hace que la clave sea válida durante un año. (Puede modificaresta fecha de expiración luego que la clave haya sido generada, si cambió de parecer.)

Page 168: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 3. Encriptación

158

Before the gpgcode> program asks for signature information, the following prompt appears: Is thiscorrect (y/n)? Enter ycode> to finish the process.

A continuación, ingrese su nombre y dirección de correo electrónico. Recuerde que este proceso setrata de autenticarlo a usted como un individuo real. Por esta razón, incluya su verdadero nombre. Noutilice apodos o alias, ya que esto oscurece o disimula su identidad.

Ingrese su dirección de correo electrónico real para su clave GPG. Si elige una falsa o inexistente,será más difícil para los demás encontrar su clave pública. Esto hace que autenticar suscomunicaciones sea más difícil. Si está utilizando esta clave GPG para presentarse en una lista decorreo, por ejemplo, ingrese la dirección de correo electrónico que usted utiliza con esa lista.

Use the comment field to include aliases or other information. (Some people use different keys fordifferent purposes and identify each key with a comment, such as "Office" or "Open Source Projects.")

En el mensaje de confirmación, ingrese la letra O para continuar si todas las opciones son correctas,o utilice las opciones propuestas para solucionar cualquier problema. Ingrese una frase de accesopara su clave secreta. El programa GPG le pide que ingrese dos veces su frase de acceso paraasegurarse que no haya cometido errores de tipeo.

Por último, gpg genera datos aleatorios para hacer que su clave sea lo más auténtica posible. Muevasu ratón, presione teclas de manera azarosa, o realice alguna otra tarea en el sistema durante estepaso para acelerar el proceso. Una vez ha finalizado, sus claves están completas y listas para serutilizadas:

pub 1024D/1B2AFA1C 2005-03-31 John Q. Doe (Fedora Docs Project) <[email protected]>Key fingerprint = 117C FE83 22EA B843 3E86 6486 4320 545E 1B2A FA1Csub 1024g/CEA4B22E 2005-03-31 [expires: 2006-03-31]

The key fingerprint is a shorthand "signature" for your key. It allows you to confirm to others that theyhave received your actual public key without any tampering. You do not need to write this fingerprintdown. To display the fingerprint at any time, use this command, substituting your email address: gpg--fingerprint [email protected]

Your "GPG key ID" consists of 8 hex digits identifying the public key. In the example above, the GPGkey ID is 1B2AFA1C. In most cases, if you are asked for the key ID, you should prepend "0x" to thekey ID, as in "0x1B2AFA1C".

AdvertenciaSi se olvida su frase de acceso, la clave no podrá ser utilizada y cualquier dato encriptadopor ella será perdido.

3.9.4. Acerca del encriptado de la clave pública1. Wikipedia - Public Key Cryptography9

2. HowStuffWorks - Encryption10

Page 169: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

159

Principios Generales sobre laSeguridad de la InformaciónLos siguientes principios generales ofrecen una visión panorámica de algunas buenas actitudes paraadoptar relacionadas con la seguridad:

• encriptar todos los datos transmitidos por la red para ayudar a prevenir ataques de tipo hombre-en-el-medio, o escuchas. Es importante encriptar de la información de autenticación, como sercontraseñas.

• minimice la cantidad de software instalado y de servicios en ejecución.

• utilice herramientas y software destinadas a mejorar la seguridad de su equipo. Por ejemplo,Security-Enhanced Linux (SELinux) para Control de Acceso Obligatorio (MAC, por las siglas eninglés de Mandatory Acces Control), Netfilter iptables para filtrar paquetes (cortafuegos), y laProtección de Privacidad GNU (GnuPG, por las siglas en inglés de GNU Privacy Guard) para losarchivos encriptados.

• si es posible, corra cada servicio de red en un servidor separado para minimizar el riesgo de queuna debilidad en uno de los servicios, se utilice para comprometer a los demás.

• mantenga las cuentas de usuario: genere y aplique una política firme de contraseñas; borre lascuentas de usuarios que no son utilizadas.

• periódicamente consulte los archivos de registros del sistema y de las diferentes aplicaciones queutilice. Por defecto, los archivos de registros del sistema que sean pertinentes para la seguridaddel equipo, son almacenados en /var/log/secure y /var/log/audit/audit.log. Nota:enviar archivos de registros hacia un servidor dedicado ayuda a prevenir que los atacantes puedanmodificar fácilmente los archivos de registros locales, y de este modo evitar ser detectados.

• nunca ingrese como root directamente, a menos de que sea absolutamente necesario. Losadministradores deben usar sudo para ejecutar comandos como root cuando sea necesario. Lascuentas capaces de usar sudo se especifican en /etc/sudoers, que se edita con el utilitariovisudo.

4.1. Consejos, Guías y HerramientasThe United States' National Security Agency (NSA)1 provides hardening guides and tips for manydifferent operating systems, to help government agencies, businesses, and individuals secure theirsystems against attack. The following guides (in PDF format) provide guidance for Red Hat EnterpriseLinux 5:

• Hardening Tips for the Red Hat Enterprise Linux 52

• Guide to the Secure Configuration of Red Hat Enterprise Linux 53

La Agencia de Defensa de Información de Sistemas (DISA, por las siglas en inglés de DefenseInformation Systems Agency)4 ofrece documentación, evaluaciones, y listas con ítems a serverificados, que le ayudarán a asegurar su sistema (Soporte para un Entorno Seguro de la

1 http://www.nsa.gov/4 http://www.disa.mil/

Page 170: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 4. Principios Generales sobre la Seguridad de la Información

160

Información5). La GUIA DE IMPLEMENTACION TECNICA DE SEGURIDAD UNIX6 (PDF) es unaguía muy específica para la seguridad en sistemas UNIX - antes de leerla, se recomienda poseer unconocimiento avanzado tanto de UNIX como de Linux.

La Lista de Items a verificarse para la Seguridad de UNIX Version 5, Release 1.167 de DISA ofrecediferentes documentos y listas de verificación, abarcando aspectos que van desde el correctoestablecimiento de la pertenencia de los archivos del sistema, hasta el control de parches.

Al mismo tiempo, DISA ha puesto a disposición diferentes programas de UNIX SPR8 que permiten alos administradores verificar configuraciones específicas en sus sistemas. Estos programas ofrecenreportes en formato XML, en los que muestran todas las configuraciones vulnerables conocidas.

5 http://iase.disa.mil/index2.html6 http://iase.disa.mil/stigs/stig/unix-stig-v5r1.pdf7 http://iase.disa.mil/stigs/checklist/unix_checklist_v5r1-16_20090215.ZIP8 http://iase.disa.mil/stigs/SRR/unix.html

Page 171: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

161

Instalación seguraLa seguridad comienza con la primera vez que introduce un CD o DVD para instalar Fedora.Configurar su sistema en forma segura desde un principio, hace que sea más fácil implementarconfiguraciones de seguridad adicional más adelante.

5.1. Particiones del discoLa NSA recomienda crear particiones separadas para /boot, /, /home, /tmp y /var/tmp. Las razonesson diferentes y se tratará por separado para cada partición.

/boot - Esta partición es la primera partición que se lee durante el arranque. El cargador de arranquey las imágenes del kernel que se usan para arrancar su sistema Fedora se almacenan en estapartición. Esta partición no debe ser encriptada. Si esta partición se incluye en / y la misma esencriptada o de alguna forma se vuelve no disponible, entonces su sistema no podrá arrancar.

/home - Cuando los datos del usuario (/home) se almacenan en / en vez de una partición separada,la partición se puede llenar haciendo que el sistema operativo se vuelva inestable. También, cuandose actualice su sistema a la siguiente versión de Fedora, poder mantener sus datos en una partición /home hace que el proceso sea mucho más sencillo, dado que no será sobrescrita durante lainstalación. Si la partición raíz (/) se corrompe, sus datos se perderán para siempre. Usando unapartición separada hay un poco más de protección contra la pérdida de datos. También se puedeelegir esa partición para los respaldos frecuentes.

/tmp y /var/tmp - Ambos directorios /tmp y the /var/tmp se usan para almacenar datos que no senecesitan guardar por mucho tiempo. Sin embargo, si un montón de datos inundan uno de estosdirectorios, puede consumir todo el espacio libre. Si esto pasa y estos directorios se almacenan en /,entonces su sistema se puede volver inestable y colgarse. Por esta razón, mover estos directorios asus propias particiones es una buena idea.

5.2. Utilice encriptado de particiones mediante LUKSDesde Fedora 9 la implementación de Linux Unified Key Setup-on-disk-format1 (LUKS) ha permitidoque el encriptado sea algo mucho más sencillo. A lo largo del proceso de instalación se le presentauna opción al usuario que le permite encriptar sus particiones. El usuario debe suministrar una frasede acceso que será la llave para desbloquear el encriptado en masa que se utilizará para proteger losdatos de las particiones.

1 http://fedoraproject.org/wiki/Security_Guide/9/LUKSDiskEncryption

Page 172: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

162

Page 173: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

163

Mantenimiento de SoftwareUna manutención adecuada del software es extremadamente importante a la hora de asegurar unsistema. Es fundamental enmendar software que presenta un fallo en el momento inmediato a laaparición de la solución, de modo de evitar que atacantes que conocen ese fallo, lo aprovechen y seinfiltren en su sistema.

6.1. Instale el software mínimoLa mejor forma de proceder es instalando solo los paquetes que se van a utilizar, ya que cadapieza de software en su computadora posiblemente pueda contener algún tipo de debilidad. Siestá realizando una instalación desde un DVD, dese la oportunidad de elegir exactamente quépaquetes quiere instalar en este proceso. Si se da cuenta que necesita otro paquete, siempre puedeagregárselo luego al sistema.

6.2. Planifique y configure actualizaciones de seguridadTodo software contiene errores. A menudo, estos errores pueden transformarse en una debilidad quepodría dejar a su sistema expuesto a usuarios maliciosos. Sistemas no enmendados son una causafrecuente de intrusiones en las computadoras. Debería tener planificada la instalación de parches deseguridad en una forma sincronizada de manera tal de poder anular esas debilidades, y evitar así quesean aprovechadas.

Para usuarios hogareños, las actualizaciones de seguridad deberían ser instaladas lo antes posible.Configurar instalaciones automáticas de ellas es una manera de evitar el tener que recordarconstantemente hacerlo, pero podría traer aparejado el pequeño riesgo de que un determinadopaquete entre en conflicto con la configuración de su sistema, o con otro software de su equipo.

Para los comercios o para los usuarios hogareños avanzados, las actualizaciones de seguridaddeberían ser probadas y planeadas para ser instaladas. Será necesario utilizar controles adicionalespara proteger el sistema durante el lapso de tiempo existente entre el lanzamiento del parche y suinstalación definitiva. Estos controles dependen de la debilidad en cuestión, pero pueden incluir reglasde cortafuegos adicionales, o el uso de cortafuegos externos, o cambios en las configuraciones delsistema.

6.3. Ajustando las actualizaciones automáticasFedora is configured to apply all updates on a daily schedule. If you want to change the how yoursystem installs updates you must do so via '''Software Update Preferences'''. You can change theschedule, the type of updates to apply or to notify you of available updates.

In Gnome, you can find controls for your updates at: System -> Preferences -> SoftwareUpdates. In KDE it is located at: Applications -> Settings -> Software Updates.

6.4. Instale paquetes identificados desde repositoriosconocidosLos paquetes de software son publicados a través de repositorios. Todos los repositorios másconocidos tienen soporte para poder identificar sus paquetes. La identificación de los paquetes utilizatecnología de llave pública para confirmar que un paquete publicado por un repositorio, no haya sido

Page 174: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 6. Mantenimiento de Software

164

alterado desde que la identificación fue aplicada. Esto ofrece cierta protección para evitar instalarsoftware que podría haber sido alterado maliciosamente luego de haber sido creado, pero antes queusted lo haya descargado.

Si se utilizan demasiados repositorios, o que no sean confiables, o que alojen paquetes sinidentificación, se corre un gran riesgo de introducción de códigos maliciosos o que pueden llegar adebilitar su sistema. Sea precavido al agregar repositorios para actualizar su sistema.

Page 175: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

165

ReferenciasLas siguientes referencias tienen como objetivo orientar la búsqueda de información adicionalrelacionada con SELinux y Fedora pero están más allá del alcance de esta guía. Tenga en cuentaque debido al veloz desarrollo de SELinux, algunos de estos materiales podrían utilizarse sólo enversiones específicas de Fedora.

LibrosSELinux en Ejemplos

Mayer, MacMillan y Caplan

Prentice Hall, 2007

Tutoriales y asistenciaEntendiendo y personalizando la política de SELinux para HTTP de Apache

http://fedora.redhat.com/docs/selinux-apache-fc3/

Tutoriales y charlas de Russell Cokerhttp://www.coker.com.au/selinux/talks/ibmtu-2004/

Tutorial genérico para escritura de Políticas de SELinuxhttp://www.lurking-grue.org/writingselinuxpolicyHOWTO.html

Base de Conocimientos de Red Hathttp://kbase.redhat.com/

Información generalSitio web principal de SELinux de la NSA

http://www.nsa.gov/selinux/1

NSA SELinux FAQhttp://www.nsa.gov/selinux/info/faq.cfm2

Fedora SELinux FAQhttp://fedora.redhat.com/docs/selinux-faq-fc3/

Linux de seguridad mejorada de código abierto de la NSAhttp://www.oreilly.com/catalog/selinux/

TecnologíaUn repaso de las clases de objetos y permisos

http://www.tresys.com/selinux/obj_perms_help.html

Integración del soporte flexible para las Políticas de Seguridad dentro del Sistema Operativo Linux(una historia de la implementación de Flask en Linux)

http://www.nsa.gov/research/_files/selinux/papers/selsymp2005.pdf

1 http://www.nsa.gov/research/selinux/index.shtml2 http://www.nsa.gov/research/selinux/faqs.shtml

Page 176: Guía de seguridad Fedora 12docs.fedoraproject.org/es-ES/Fedora/12/pdf/Security... · 2017. 4. 8. · Focused on Fedora Linux but detailing concepts and techniques valid for all Linux

Capítulo 7. Referencias

166

Implemenetación de SELinux como un módulo de seguridad de linuxhttp://www.nsa.gov/research/_files/publications/implementing_selinux.pdf

Una Configuración de Política de Seguridad para el Linux de Seguridad Mejoradahttp://www.nsa.gov/research/_files/selinux/papers/policy/policy.shtml

ComunidadGuía del Usuario de SELinux de Fedora

http://docs.fedoraproject.org/selinux-user-guide/

Fedora SELinux Managing Confined Services Guidehttp://docs.fedoraproject.org/selinux-managing-confined-services-guide/

Página comunitaria de SELinuxhttp://selinux.sourceforge.net

IRCirc.freenode.net, #selinux, #fedora-selinux, #security

HistoriaHistoria breve de Flask

http://www.cs.utah.edu/flux/fluke/html/flask.html

Antecedentes completos sobre Flukehttp://www.cs.utah.edu/flux/fluke/html/index.html