REDESII

bullet1 EXPOSICIONES
bullet2 ADMINISTRACIÓN DE LA SEGURIDAD
bullet3 ADMINISTRACIÓN DE LA SEGURIDAD

bullet4 HERRAMIENTAS PARA LA ADMINISTRACIÓN DE LA SEGURIDAD

Seguridad siempre fue de lo más importante para los administradores de sistemas. Sin embargo, con la "explosión" del Internet, el riesgo de intrusión se ha vuelto aún más alto. Según la estadística, si el número de usuarios conectados crece, el número de piratas sigue el mismo incremento. Por consecuencia, el desarrollo de software de seguridad ha crecido exponencialmente. Otra vez, gracias a la comunidad del software libre, puesto que nos han proporcionado las mejores herramientas nunca vistas y con mucha documentación.

La mayoría de éstas herramientas funcionan en muchos sabores de Unix (si no todos), ya sean comerciales o libres.


HERRAMIENTAS DE MONITOREO

Desde una perspectiva estratégica, los datos obtenidos con las herramientas de monitoreo de la red constituyen la base de las revisiones y auditorías periódicas de la administración de riesgos. En un sentido cotidiano y operativo, las herramientas de monitoreo alertan al administrador de la red acerca de los intentos de violación de la seguridad. Entre los distintos tipos de herramientas de monitoreo de la red se encuentran los siguientes:

    1. Software de detección de intrusiones, que monitorea la red o el host para detectar tráficos sospechosos. Las soluciones no obstructivas para detección de intrusiones pueden comparar el tráfico "normal" con los paquetes de datos sospechosos, para alertar a los administradores de sistemas o cerrar una conexión en caso de una actividad anormal. Estas soluciones también generan reportes de registro sobre el tráfico de la red.
    2. Los firewalls proporcionan una protección central contra las personas que intentan penetrar en el sistema. La mayoría de las aplicaciones alertarán al departamento de sistemas si se detecta un intento de entrada ilegal y generarán reportes de registro acerca de estos intentos.
    3. Las protecciones antivirus analizan los sistemas para detectar los posibles virus y reparan o ponen en cuarentena los elementos sospechosos. La mayoría de los productos de protección antivirus alertan al departamento de sistemas en estos casos.
    4. Violaciones de seguridad:
      1. Internas. Las soluciones de filtrado de contenidos de correo electrónico pueden analizar los mensajes entrantes y salientes para detectar contenidos confidenciales o difamatorios. El filtrado de contenidos de Internet puede impedir que los usuarios visiten sitios Web inadecuados potencialmente peligrosos. Estos dos tipos de sistemas proporcionan al departamento de sistemas reportes de registro acerca de la actividad del usuario y las violaciones de las normas.
      2. Externas. El software de autentificación y encriptación protege la red y los datos salientes ante los posibles intrusos, al solicitar contraseñas o claves de encriptación privadas para permitir el acceso de los usuarios al material. Estas herramientas de seguridad suelen generar reportes acerca de los intentos de intrusión.

 

HERRAMIENTAS GENERICAS

Podríamos llamar ésta parte "herramientas para whitehats (los administradores) para proteger redhat contra los blackhats (los piratas)" :-) Muchas distribuciones de Linux (no solo RedHat!) llegan con muchas buenas herramientas de seguridad. Pueden usarlas para mejorar la seguridad de su ordenador. Entre ellas, podemos mencionar TCPWrappers, PAM (Pluggable Authentication Modules), shadow utilities... Puesto que forman parte de las distribuciones encontrarán mucha documentación: HOWTO, man pages, ...; de modo que no vamos a pasar mucho tiempo con ellas.

 
Empecemos con los shadow utils. Brevemente, permiten la encrypción de passwords. El fichero /etc/shadow remplaza el fichero /etc/passwd.

 
Algo más elaborado es PAM. Como lo dice su nombre, es otro modo de autentificación. PAM permite de limitar el acceso de los usuarios a los servicios. Muchas restricciones pueden ser definidas a partir de ficheros de configuración, facilitando así la administración. Normalmente, estos ficheros se encuentran en el directorio /etc/pam.d.
Respecto a los TCPWrappers, basta con decir que permiten reducir el acceso a los servicios de unas máquinas. Pueden ser autorizados o rechazados desde dos ficheros: /etc/hosts.allow y /etc/hosts.deny. Los TCPWrappers pueden ser configurados de dos maneras: sea moviendo los "daemons" o modificando el fichero /etc/inetd.conf.

Y ahora, van a entender por qué no hemos hablado mucho de esas herramientas: Hay una herramienta es capáz de manejar todo eso y al mismo tiempo enseñar al usuario. Bastille-Linux basta y sobra. De hecho, ¡¡¡tampoco diremos nada de Bastille-Linux!!! Es inútil puesto que hay un excelente artículo sobre él de mi compadre Frédéric en el número de Septiembre de LinuxFocus: lo dice todo.¡Podemos añadir que Bastille-Linux es una herramienta sin la que no se puede vivir!

Otra herramienta para mejorar la seguridad se llama xinetd. Y, perdón, pero ¡¡¡tampoco vamos a hablar de éste!!! Otra vez, Frédéric ha hecho todo el trabajo en el número de Noviembre de LinuxFocus. Esto era la sección FredFocus (no te preocupes del dinero Fred, puedo esperar).

Ahora, vamos a ver algunas herramientas específicas.

 

Firewall

Cuando se conecta una red a Internet, la mayor preocupación de los administradores de la misma es el tema de la seguridad. Un firewall es una herramienta que nos permite proteger nuestra red de posibles ataques externos. Basicamente lo que conseguimos con un firewall es poder dar acceso a los usuarios de nuestra red privada a Internet, pero en lugar de que cada usuario lo haga desde su ordenador (con lo caul tendriamos muchos puntos conflictivos por donde podrian atacar la seguridad de nuestra red) la conexión se realiza a traves de un solo host o grupo reducido de ellos con lo que todas las comunicaciones al exterior y las que llegen de fuera hacia nuestra red pasaran por ese punto, al que denominaremos Zona de Riesgo. Con ello conseguimos monitorizar las comunicaciones y solo tenemos que preocuparnos de esa pequeña zona de reiesgo en lugar de multiples puntos de la red.


Firewall a nivel de red.

Un firewall a nivel de red suele ser un encaminador de pantalla o un ordenador especial que examina las direcciones de los paquetes para determinar si el paquete debe pasar a la red local o se debe impedir el acceso. Un paquete es la información que viaja a taves del medio fisico y que contiene la información a transmitir, la dirección IP del host emisor, y la dirección IP del host receptor. Los firewals de este tipo utilizan esta información almacenada en los paquetes para controlar su acceso.

En este tipo de firewalls se elaboran una especie de lista negra con las direcciones IP cuyo acceso desea impedir, ademas puede expecificar los servicios que desea restringir su uso. Por ejemplo, puede permitir que los usiarios de Internet accedan a las paginas web de su red privada pero impedir que accedan mediante telnet o al servidor FTP. O bien hacer que se pueda acceder al servidor FTP y descargen archivos desde el, pero impedir que puedan transferir archivos a su servidor FTP. Normalmente estos seran los parametros que tendra que tener en cuenta a la hora de diseñar un firewall a nivel de red:

    1. La dirección de origen de la que provienen los datos.
    2. La dirección de destino de los datos.
    3. El protocolo de sesion de los datos; TCP, UDP, ICMP.
    4. El puerto de aplicación de origen y destino del servicio deseado.
    5. Si el paquete es el inicio de una petición de conexión.

Un firewall a nivel de red correctamente configurado sera transparente a los usuarios de su red , a no ser que intenten realizar una accion no permitida, como enviar información a una maquina que se encuentra en la lista negra. Ademas todos los usuarios externos incluidos en la lista negra, no podran enviar ni recibir paquetes a y desde su red.

Escanneres de puertos

Aquí entramos en el corazón del problema. La idea es: utilizar las herramientas de los piratas para controlar las vulnerabilidades de la red (o de la máquina). En éste área podemos beneficiar de dos herramientas muy buenas pero hay muchas otras.

La primera se llama nmap. Con nmap, pueden controlar los puertos abiertos en una máquina de la red. Claro, pueden hacer eso con comandos tales como lsof o netstat pero solamente en su propia máquina. Y, también pueden controlar su propia máquina con nmap. nmap puede dar mucha información: por ejemplo, puede decir cual es el SO funcionando, cuales son los puertos abiertos y peligrosos... Por fin, nmap es muy fácil de utilizar. Se puede arrancar desde un shell o desde un interfaz gráfico llamado nmapfe. Este GUI se basa en la librería gtk. La versión actual de nmap es 2.53. Funciona bajo muchos sabores de Unix y se encuentra en código fuente, rpm, con GUI o sin él. ¡nmap es otra herramienta sin la que los administradores no pueden vivir!


Muchas gracias Sr. Fyodor y felicitaciones por éste gran trabajo.

La segunda se llama nessus.  Nessus funciona según la arquitectura cliente/servidor y el código fuente Posix se puede usar en muchos sabores de Unix. También existe un cliente para Win32 (para que lo sepan). Nessus depende de nmap (¡vean cómo no pueden hacer nada sin él!) y de la librería gtk por su GUI. La versión actual es 1.06 y con ella pueden controlar una red completa con un parámetro, es decir las señas de la red. Por ejemplo, teclar 192.168.1.0/24 en el campo "target" controlará las 255 máquinas de ésta red. Nessus es un poco más complejo que nmap, pero es fácil de usar y tiene muchas opciones. Por ejemplo, puede crear informes, puede hacer "diffs" entre informes... Otra característica es muy interesante: nessus propone soluciones a los problemas encontrados durante un "portscan". Si se trata de máquinas Unix, las sugerencias son buenas a menudo. Serán un poco menos adecuados para otros SO. De todo modos, no es eso lo importante.


Nessus tiene otra gran particularidad: trabaja con plugins, así permitiendo una puesta al día cada vez que un nuevo agujero de seguridad se encontró en algún sitio. ¡Otra herramienta necesitada por los administradores!

 
Muy buen trabajo Mr. Deraison y "Merci beaucoup".

Las dos herramientas han sido probadas desde una máquina Linux en una red con varios SO: Linux RH 6.2, Irix 6.5.7, Solaris 2.6, NeXTStep 3.3, QNX RT, BeOS 5.0, Amiga OS 3.5, No Terminado 4.0. Los resultados son impresionantes para la mayoría de las plataformas. Claro, el Amiga OS no se identifica muy bien (¡puesto que se ve como una impresora o un router!) pero ¿quién tiene todavía éste SO en una red (aparte de mí)?

En cualquier caso, éstas herramientas parecen inevitables con las redes de hoy. Y para acabar con ésta parte, tenemos que mencionar otras herramientas tales como SARA, o su "padre" SATAN, o SAINT. No son solamente "portscanners" y pueden ser muy útiles para mejorar la seguridad de las redes.

 

Sistemas de detección

Algunas herramientas pueden detectar "portscans" o intrusiones. Un administrador "standard" (es decir, ¡paranoico!) NO puede trabajar sin ésta categoría de herramientas.

La primera serie de herramientas viene del Proyecto Abacus. Tres herramientas están disponibles: logcheck, portsentry y hostsentry. Logcheck está en versión 1.1.1, portsentry es 1.0 y hostsentry es la versión 0.0.2 alpha. Portsentry es una herramienta de detección de "portscan". Como dice su nombre, cuando un puerto es "scanned" desde alguna parte, portsentry bloquea el host en seguida, ya sea "cerrando" la ruta con el firewall (o una dirección IP no utilizada), ya sea escribiendo la dirección IP del atacante en el fichero /etc/hosts.deny si tienen TCPWrapper en su máquina. ¡El resultado es eficaz de verdad! Portsentry se basa en un fichero de configuración principal y en unos ficheros específicos. Estos últimos se usan para ignorar unos "hosts" (es decir para no bloquearlos) o para bloquear unos puertos de unos "hosts". Desde el fichero de configuración, pueden definir la manera de trabajar de portsentry. Tienen que elegir los puertos que quieren atar a portsentry, puertos TCP o UDP (o ambos). ¡Cuidado con atar el puerto 6000 si usan X11! Según el sistema Unix que usan, pueden tener dos modos de operación para vigilar los puertos. El modo avanzado sólo funciona en Linux (por el momento). Después tienen que decidir de la opción de bloqueo: no bloquean los "scans", los bloquean, o ejecutan un comando externo. Siguen eligiendo la manera de "echar" la ruta, sea redirigiendo el atacante hacia una dirección IP no utilizida en la red, sea hacia un filtro de paquetes (firewall). La etapa siguiente concierne TCPWrappers. Es decir, deciden (o no) escribir un texto DENY en el fichero /etc/hosts.deny. Por fin, pueden definir un comando externo para ejecutar y pueden elegir un valor por el scan (por defecto es 0; 1 o 2 permiten reducir alarmas falsas). ¡Es todo lo que tienen que hacer! Suponemos que ya saben todo sobre logging, puesto que, claro, todas las alarmas se escriban en los logs. Significa que pueden modificar el fichero syslog.conf si quieren que las alarmas sean dirigidas hacia otro lugar que /var/log/messages o /var/log/syslog o /var/adm/messages... Ahora pueden arrancar portsentry en tarea de fondo con la opción preferida. Las opciones disponibles dependen del sistema: podrán usar -tcp, -udp en la mayoría de los Unixes y -atcp, -audp bajo Linux ("a" por avanzado).


 Si eres un sysadmin que mira los logs una vez a la semana (mejor sería probar otro empleo) el proyecto Abacus te propone otra herramienta llamada logcheck. Se arranca desde una tarea cron y manda un correo al administrador si encuentra algo extraño en los logs.

 
La última herramienta de la serie se llama hostsentry y parece muy interesante pero no la he probado. Si quieren una herramienta buena, sencilla y eficaz, ¡usen portsentry!
Gracias Sr. Rowland: ¡un gran trabajo! A propósito, me gusta mucho su humor.

Otra herramienta sin la cual sysadmins no pueden trabajar se llama snort. snort es un IDS (sistema de detección de intrusión) y más concretamente, un IDS ligero (no una fábrica!). Funciona en cualquier plataforma capáz de usar libpcap. Este último se requiere para utilizar snort. A propósito, también tienen una versión de snort para Win32. Snort es capáz de analizar el tráfico IP y provee un logging muy fuerte. Se basa en scripts de reglas, es decir que pueden vigilar lo que quieran. Aún más, el site de snort provee un base de datos de reglas. Aquí llega la decisión importante con snort: dónde poner los sensores, o si prefieren, qué clase de tráfico quieren vigilar. Llegando, saliendo, dentro del firewall, fuera del firewall... Podríamos sugerir ¡¡¡en todas partes!!! En serio, es como quieran, pero otra vez, según los sysadmins "standard", lo más lo mejor... Ahora que han decidido dónde querían escuchar, tienen que elegir las reglas que aplicar. Snort llega con muchas reglas basicas: backdoor, ddos, finger, ftp... Estas reglas se definen en los ficheros snort-lib. Otra vez, pueden obtener nuevas reglas y reglas puestas al día desde el site de snort. Desde aquí basta con arrancar snort en tarea de fondo (por ejemplo), con las opciones elegidas. En éste caso, para ejecutar snort como un daemon, la opción sería -D. También pueden definir a donde va el logging puesto que se puede redirigir, incluso hacia otra máquina. Es imposible mencionar todas las características de snort en éste artículo. La documentación les enseñara mucho. De todo modos, snort es otra herramienta que NO se puede trabajar sin ella. Es una gran, gran herramienta.

 

Encriptación

Muchas herramientas forman parte del proceso de encriptación, funcionando en varias áreas. No podremos hablar de todas. Sin embargo, por lo menos, tenemos que decir unas palabras sobre SSH, particularmente la versión libre OpenSSH. La versión actual es 2.3.0. Este producto fue desarrollado primero para funcionar bajo OpenBSD. Hoy, funciona bajo muchos sabores de Unix. OpenSSH reemplaza telnet y los "remote commands" tales como rsh, rlogin. Incluye scp que remplaza ftp y rcp. OpenSSH permite la encriptación de los datos circulando por la red. Telnet, rsh, etc. transfieren los datos en plano ¡y eso vale para los passwords! Es decir, no tendrían que usar más dichas herramientas esas, sino OpenSSH en vez de ellas. ¡Eso tendría que ser una obligación! (A veces, tenemos que ser un poco fascistas:-)

El problema con estas herramientas viene de las leyes sobre encriptación de los diferentes los paises. Las cosas están cambiando, pero en muchos países no se pueden usar libremente éstas herramientas. Por ejemplo, hace un rato, se consideraba como espía a aquel que usaba SSH en un país tal como Francia (¡¡¡país de los Derechos Humanos, decían!!!). Por suerte, no es verdad hoy. Sin embargo, recomendamos leer un documento importante sobre la situacón en los diferentes paises. No obstante, la encriptación es una cosa importante para la seguridad y muchas herramientas tienen que ser tomadas en cuenta. Podemos mencionar OpenSSL (Secure Sockets Layer), o Strong Crypto, un VPN (red privada virtual) de fuente abierta para Linux. VPN es otra solución que merecería un artículo entero (como muchas de las herramientas mencionadas más arriba!), y por eso no hablaremos más en el asunto.
Claro, no podemos olvidar de mencionar OpenPGP (Pretty Good Privacy) o GNUpg.

 

Scripting

Aquí, no podemos hablar de herramientas. El scripting es una de las aptitudes más importantes para un sysadmin. Scripts Shell, Perl... hacen parte del trabajo diario para la gente que administra redes. Los scripts sirven para automatizar tareas pero también para vigilar la seguridad. Cada sysadmin tiene sus necesidades, entonces siempre trata de cumplir con ellas de la manera que le conviene. No es siempre tan fácil. Algo puede ayudar: ¡suscribanse a la revista Sysadmin! Esta revista esta hecha por sysadmins para sysadmins y proporciona muchos programas o scripts... Incluso, pueden obtener un CDRom conteniendo todos los números anteriores, y claro con los programas o scripts.


    Hosted by www.Geocities.ws

    1