original in en Georges Tarbouriech
en to es Georges Tarbouriech
es to es Javier Palacios
Georges es un usuario viejo de Unix (comercial y libre). Las herramientas de seguridad libres le interesan mucho y aprecia de verdad sus grandes cualidades.
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.
Encontrarán muchos enlaces interesantes en la parte referencias al final
del artículo. Claro que lo que vamos a mencionar aquí no puede ser
exhaustivo. Las herramientas elegidas son las usadas diariamente o las que han
sido probadas.
Este artículo se dedica tanto a los usuarios personales como a los
administradores de sistemas, puesto que unas herramientas conciernen la
protección de maquinas y otras sirven para mejorar la seguridad de redes.
La mayoría de éstas herramientas funcionan en muchos sabores de Unix (si
no todos), ya sean comerciales o libres. Por último, éste
artículo no es un "Cómo mejorar la seguridad de su red o de su
máquina" sino una presentación de diferentes herramientas que
pueden (tienen que) utilizar para mejorar la seguridad de dicha red o
máquina.
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.
Empezemos 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.
Si TCPWrappers no forman parte de su sabor de Unix, pueden encontrarlos en
ftp://ftp.porcupine.org/pub/security
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.
Si sólo instalan una herramienta, ¡tiene que ser ésta! No forma parte (aún?)
de las distribuciones pero pueden descargarlo desde
http://bastille-linux.sourceforge.net
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 _LF_: lo dice todo. Si todavía no lo han leido, pueden echar
un vistazo aquí.
¡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. Se
puede descargar desde http://www.xinetd.org.
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 _LF_.
Pueden leerlo aquí.
Esto era la sección FredFocus (no te preocupes del dinero Fred, puedo esperar).
Ahora, vamos a ver algunas herramientas específicas.
Los Unix libres llegan con herramientas que permiten transformar su máquina
en un firewall. El kernel 2.2 provee ipchains. El anterior (2.0)
usaba ipfwadm. Para que ipchains o ipfwadm funcionan, el kernel
tiene que ser compilado con opciones particulares. Existe mucha documentación
sobre el asunto (HOWTOs por ejemplo), y no vamos a decir mucho más.
Brevemente, un firewall es una herramienta para filtrar paquetes. Lo más
importante concierne su configuración. Es decir, un firewall mal configurado
se puede volver muy peligroso. Sin embargo, firewalls son herramientas muy importantes
y hay muchos. Por ejemplo, Bastille-Linux provee un firewall basado también en
ipchains.
Si visitan http://www.linuxapps.com y escriben "firewall" en el campo de búsqueda, obtendrán por lo menos 40 respuestas. Muchos son GUI para la administración de ipchains o ipfwadm. Otros son herramientas muy gordas con toneladas de opciones, tal como T.REX por ejemplo, disponible desde http://www.opensourcefirewall.com. Otra vez, no se dejen engañar: un firewall es una necesidad en una red, pero la seguridad de ésta red no puede SOLAMENTE depender de él. Un pirata puede romperlo en ¡alrededor de 15 minutos! Pueden darse por enterados.
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. Pueden descargarla desde
http://www.insecure.org. Aún más,
encontrarán allí mucha información, enlaces, etc. 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. Se puede descargar desde
http://www.nessus.org, con enlaces mandando hacia
ftp en differentes países. 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. Aquí
está el ejemplo de una máquina muy vulnerable:
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 http://www-arc.com/sara/, o su "padre" SATAN http://www.porcupine.org/satan/, o SAINT http://www.wwdsi.com. No son solamente "portscanners" y pueden ser muy útiles para mejorar la seguridad de las redes.
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, y pueden obtenerlas desde http://www.psionic.com. 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 depienden del sistema: podrán usar -tcp, -udp en la mayoría de los Unixes y -atcp, -audp bajo Linux ("a" por avanzado).
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!). Pueden obtener snort versión
1.6.3 desde http://www.snort.org. 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.
Muchas gracias Sr. Roesch.
Otras herramientas libres existen: podemos mencionar AIDE a http://www.cs.tut.fi/~rammer/aide.html por ejemplo.
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. Pueden obtenerla desde http://www.openssh.com. 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. Lo encontrarán en
http://www2.epic.org/reports/crypto2000/countries.html.
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)
http://www.openssl.org, o Strong
Crypto, un VPN (red privada virtual) de fuente abierta para Linux en
http://www.strongcrypto.com.
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) disponible en
http://www.ietf.org/html.charters/openpgp-charter.html
o GNUpg desde http://www.gnupg.org.
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.
Eso no es publicidad... es una manera de encontrar más soluciones para
mejorar la seguridad.
Echen un vistazo a http://www.samag.com.
Si eres un sysadmin, tendrías que probarlo. Bueno, sólo es una sugerencia.
Hay mucho que añadir sobre seguridad, pero como hemos dicho antes, éste artículo no es un "Cómo mejorar la seguridad de su red". No bastaría con un libro en el asunto. La seguridad no solo depende de herramientas, sino también es un comportamiento. Por ejemplo, con unos de estos comportamientos me vuelvo loco (claro, ¡ya lo estaba!). ¿Cuando entendrá la gente que los ficheros de M$ Office son peores que bombas? No solo tienen tamaños enormes, sino que están potencialmente llenos de macroviruses. Por favor usuarios Wintel, NO MANDEN documentos Word o Excel junto a sus correos. Aún más, si reciben algunos NO LOS ABRAN: sólo es una sugerencia, ¡pero han sido avisados! Son tan peligrosos (tendría que decir más!) como los ejecutables que reciben (o descargan). Y, a propósito, ficheros texto o HTML son mucho más pequeños que los documentos de Office, y NO son peligrosos. Claro, ya sé que el mundo Wintel trabaja de ésta manera: cuando bajan una demo, siempre es un ejecutable! Podemos suponer que se puede tener confianza en éstas empresas gordas... pero ¿saben lo que ha podido pasar con el arca que descargan? Claro que es una manera paranoica de pensar, pero ¿es esto tan loco? ¿Por qué piensan que muchos arcas tienen un checksum para averiguar autenticidad?
Lo que sigue puede "enfadar" mucha gente, pero es un hecho: JAVA es peligroso.
Los applets no son seguros, los scripts Java no son seguros. Sin embargo,
¡sería interesante saber cuantos sites web no usan Java! Aún peor,
Java es una fuente de problemas cuando visitan éstos sites: ¿cuantos entre
ellos van a helar el navegador? ¿Es este el objetivo de un site web?
Y no hablemos de ActiveX, del ejército de Redmond!
Sugerencia: usen Rebol en su lugar
(http://www.rebol.com)
Puesto que hablamos del asunto: por favor, nuevos "profesionales" de Internet,
¡paren de crear sites web dedicados al mundo Wintel y IE5! Ya sé que estas cosas son
muy generalizadas, no obstante mucha gente se conecta al Internet con muchos SO
y navegadores diferentes. Trabajando como lo hacen, impiden que estos usuarios
visitan sus sites web. El objetivo de Internet es compartir. Usar cosas
propietarias es absurdo. En mi humilde opinión, cuando se crea un site
web, la primera cosa que hacer es probarlo con varios SO y diferentes
navegadores... pero solo es mi opinión. Una información: si se
conectan sobre tal site con una máquina Unix y por ejemplo Netscape, ¡no
pueden visualizar ni la página de indice!
Perdón por la digresión.
Otro punto importante es de recordar que la seguridad no alcanzará el 100%.
Estamos muy lejos de eso. Pueden mejorarla, pero eso es todo. Por ejemplo,
pueden usar todas las herramientas mencionadas aquí y dejar una puerta de
atrás muy abierta! No se dejen burlar: los piratas no van a tratar primero de
romper una clave de 128bit, sino que van a buscar un pequeño agujero en alguna
parte. Así cuidado con programas SUID o SGID, con derechos de acceso, con
servicios inútiles, con accounts cancelados, etc.
Si bien los sabores de Unix tienen muchas semejanzas, son muy diferentes por lo que
concierne seguridad. ¡Unos parecen coladores! También tienen que saberlo. No
hablemos de otros SO o asimilados. Por ejemplo, tener una conexión a
Internet con el cable usando una máquina Winalgo standard es estupendo:
es decir que pueden tener el icono de la máquina del pirata en la
vecindad de red... y pronto M$ proveerá la foto del pirata! (Es broma...)
El camino hacia la seguridad de redes y ordenadores es muy largo. Si le
interesa ése asunto, aprenderán cada día. Por suerte, tenemos
muchas fuentes de información. Aquí tienen algunas.
http://www.linuxsecurity.com es la
primera mina de oro. ¡Allí encontrarán casi todo!
http://www.sans.org es un lugar dónde encontrar
ayuda e información sobre seguridad. Un site que tendrían que
consultar regularmente.
http://www.infosyssec.org es otro lugar
para obtener toneladas de información sobre la seguridad.
http://www.securityfocus.com es la casa
de Bugtraq, y proporciona mucha información sobre seguridad.
http://www.cs.purdue.edu/coast/hotlist/
¡Este es EL site que hay que visitar!
Arriba de ésta página encontrarán un boton llamado "Enlaces": pínchenlo
para obtener las señas de muchos distribuidores. Consultar sus sites es
una obligación para saber todo sobre los parches de seguridad. ¡Eso vale
para cada editor de Unix! Muchos de ellos proponen parches de seguridad o
simplemente recomendados regularmente.
Algunos artículos anteriores de _LF_ merecen una lectura (aparte de
los ya mencionados):
Añadir seguridad a las
distribuciones Linux
TCPD y Firewalls usando IPFWADM
VXE, una herramienta de seguridad para Linux
Se puede encontrar mucha más documentación y no podemos dar todos
los enlaces disponibles. Tampoco podemos mencionar todas las herramientas de
seguridad como ya lo hemos dicho. En cada site mencionado aquí,
encontrarán más enlaces hacia aún más
enlaces, y así sucesivamente... como las muñecas Rusas.
El hecho que unas herramientas o unos sites no figuren en este artículo
no significa que no tengann interés. Sólo significa que las herramientas no han
sido probadas. Por supuesto, tienen que hacer una selección arbitraria
entre la centena disponible.
El objetivo de éste artículo es de proporcionar a los lectores con lugares de
donde empezar. Esperamos que podrá ayudarlos.