05-29-2005, 12:39 PM
Introducción:
Este artículo no es, ni pretende ser, un manual de seguridad, es simplemente una guía en el "arte" de la Seguridad Informática.
• Generalmente se suele usar AutoRPM (Red Hat, Mandrake, etc) y apt-get (Debian) para instalar o actualizar paquetes de software en un sistema. Tenes que usarlos con "cuidado" y no utilizarlos para actualizar automáticamente Servidores en producción. La recomendacón es que bajes los paquetes y verifiques la firma antes de instalarlos.
• Instalá nmap para determinar potenciales canales de comunicación o conexiones "no autorizadas". nmap es un potente port-scanner que puede determinar remotamente el SO de un equipo (mediante finger-print), hacer "stealth" scans (escaneos heurísticos) manipulando paquetes ICMP, TCP y UDP, y puede llegar a determinar el nombre del servicio y versión que esta corriendo del mismo.
• En servidores instalados en ambientes "no seguros" o con acceso de personal no especializado protegé con password a LILO para requerir autentificación cuando se pasen parámetros al Kernel en el momento de Boot. Agregá un password en el /etc/lilo.conf de la siguiente manera:
image = /boot/vmlinuz-2.6.10
label = Linux
read-only
restricted
password = pone-aca-tu-password
ahora ejecutá lilo para fijar los cambios.
• Instalá el OpenWall kernel patch que agrega al Kernel opciones de seguridad que permiten, entre otras cosas, prevenir buffer overflows, restingir información del /proc que en general está disponible para cualquier usuario, etc.
NOTA: Para su instalación se requiere re-compilar el Kernel (reconozco que no es para newbies
).
• Siempre asegurate que la fecha y hora de los equipos estén sincronizadas. Esto es importante ya que en caso de un ataKe es mas fácil trazar una "linea de tiempo y eventos" que pueden llegar a determinar el origen de los mismos mediante el análisis de los archivos de log (En seguridad a esto se lo llama Análisis Forense)
Esto lo podés hacer agregando una línea como ésta al crontab:
0-59/30 * * * * root /usr/sbin/ntpdate -su servidor_en_hora
• En lo posible instalá y ejecutá una herramienta como Bastille Linux Hardening Tool. Bastille está compuesto por una serie de shell scripts que eliminan muchas de las vulnerabilidades producto de las instalaciones Linux por default.
• Configurá sudo (superuser do) para ejecutar comandos privilegiados como un usuario normal en lugar de su. De esta manera el usuario usará su propio password para ejecutar comando específicos que de otra manera requerirían acceso root.
En el archivo /etc/sudoers se determina que usuarios y cuáles programas pueden ejecutar. Por ej.:, usando el programa /usr/sbin/visudo (editor vi para configurar /etc/sudoers) podemos permitir a pepito usar la impresora instalada en magneto:
Cmnd_Alias LPCMDS = /usr/sbin/lpc, /usr/bin/lprm
pepito magneto = LPCMDS
Pepito debe ejecutar sudo con el/los comando/s autorizados con su propio password:
pepito$ sudo /usr/sbin/lpc
Password: <contraseña_de_pepito>
lpc>
• Elegí contraseñas con cierta duficultad y con combinaciones alfanuméricas y educá a los usuarios para que hagan lo mismo. Obtener acceso a una cuenta de usuario es relativamente fácil (suelen dejar sus contraseñas pegadas en el monitor, debajo del pad del mouse, etc). Conseguir acceso como root está solo a un paso!!. Ejecutá programas como John The Ripper regularmente en aquellos sistemas donde la seguridad sea crítica y deshabilitá las cuentas no utilizadas usando /usr/bin/passwd -l. En lo posible siempre usá MD5 para tus passwords
• El filtrado de paquetes no es solo para los firewalls. Usando IPTABLES podés aumentar la protección de un equipo significativamente de ataKes externos. Podés bloquear el acceso a uno o varios servicios desde fuera de la red (internet) o dentro de la misma LAN. Leete el HOWTO de IPTABLES para implementar un filtrado efectivo.
Espero que les sea útil.
Saludos!!
Este artículo no es, ni pretende ser, un manual de seguridad, es simplemente una guía en el "arte" de la Seguridad Informática.
• Generalmente se suele usar AutoRPM (Red Hat, Mandrake, etc) y apt-get (Debian) para instalar o actualizar paquetes de software en un sistema. Tenes que usarlos con "cuidado" y no utilizarlos para actualizar automáticamente Servidores en producción. La recomendacón es que bajes los paquetes y verifiques la firma antes de instalarlos.
• Instalá nmap para determinar potenciales canales de comunicación o conexiones "no autorizadas". nmap es un potente port-scanner que puede determinar remotamente el SO de un equipo (mediante finger-print), hacer "stealth" scans (escaneos heurísticos) manipulando paquetes ICMP, TCP y UDP, y puede llegar a determinar el nombre del servicio y versión que esta corriendo del mismo.
• En servidores instalados en ambientes "no seguros" o con acceso de personal no especializado protegé con password a LILO para requerir autentificación cuando se pasen parámetros al Kernel en el momento de Boot. Agregá un password en el /etc/lilo.conf de la siguiente manera:
image = /boot/vmlinuz-2.6.10
label = Linux
read-only
restricted
password = pone-aca-tu-password
ahora ejecutá lilo para fijar los cambios.
• Instalá el OpenWall kernel patch que agrega al Kernel opciones de seguridad que permiten, entre otras cosas, prevenir buffer overflows, restingir información del /proc que en general está disponible para cualquier usuario, etc.
NOTA: Para su instalación se requiere re-compilar el Kernel (reconozco que no es para newbies
).• Siempre asegurate que la fecha y hora de los equipos estén sincronizadas. Esto es importante ya que en caso de un ataKe es mas fácil trazar una "linea de tiempo y eventos" que pueden llegar a determinar el origen de los mismos mediante el análisis de los archivos de log (En seguridad a esto se lo llama Análisis Forense)
Esto lo podés hacer agregando una línea como ésta al crontab:
0-59/30 * * * * root /usr/sbin/ntpdate -su servidor_en_hora
• En lo posible instalá y ejecutá una herramienta como Bastille Linux Hardening Tool. Bastille está compuesto por una serie de shell scripts que eliminan muchas de las vulnerabilidades producto de las instalaciones Linux por default.
• Configurá sudo (superuser do) para ejecutar comandos privilegiados como un usuario normal en lugar de su. De esta manera el usuario usará su propio password para ejecutar comando específicos que de otra manera requerirían acceso root.
En el archivo /etc/sudoers se determina que usuarios y cuáles programas pueden ejecutar. Por ej.:, usando el programa /usr/sbin/visudo (editor vi para configurar /etc/sudoers) podemos permitir a pepito usar la impresora instalada en magneto:
Cmnd_Alias LPCMDS = /usr/sbin/lpc, /usr/bin/lprm
pepito magneto = LPCMDS
Pepito debe ejecutar sudo con el/los comando/s autorizados con su propio password:
pepito$ sudo /usr/sbin/lpc
Password: <contraseña_de_pepito>
lpc>
• Elegí contraseñas con cierta duficultad y con combinaciones alfanuméricas y educá a los usuarios para que hagan lo mismo. Obtener acceso a una cuenta de usuario es relativamente fácil (suelen dejar sus contraseñas pegadas en el monitor, debajo del pad del mouse, etc). Conseguir acceso como root está solo a un paso!!. Ejecutá programas como John The Ripper regularmente en aquellos sistemas donde la seguridad sea crítica y deshabilitá las cuentas no utilizadas usando /usr/bin/passwd -l. En lo posible siempre usá MD5 para tus passwords
• El filtrado de paquetes no es solo para los firewalls. Usando IPTABLES podés aumentar la protección de un equipo significativamente de ataKes externos. Podés bloquear el acceso a uno o varios servicios desde fuera de la red (internet) o dentro de la misma LAN. Leete el HOWTO de IPTABLES para implementar un filtrado efectivo.
Espero que les sea útil.
Saludos!!
