Título: Seguridad en Linux Mandriva Publicado por: el-brujo en 16 Enero 2004, 19:36 pm Versión 1.92
WindowsUpdate con Mandrake 9.2/10.0 Si queremos tener Mandrake 9.2 actualizado con los últimos parches, al más puro estilo "WindowsUpdate", podemos seguir estos sencillos pasos. Paso Previo) Necesitamos la herramienta "urpmi" explicada anterioramente. Debemos añadir la fuente "updates", que no es más que un directorio dónde están las actulizaciones de Mandrake 9.2 Citar urpmi.addmedia --update updates ftp://ftp.cica.es/pub/Linux/Mandrakelinux/official/updates/9.2/RPMS with ../base/hdlist.cz Para Mandrake 10.0: Citar urpmi.addmedia --update updates10 ftp://ftp.surfnet.nl/pub/os/Linux/distr/Mandrake/official/updates/10.0/RPMS with ../base/hdlist.cz Más mirrors de updates: http://www.mandrakesecure.net/en/ftp.php Nos dirijimos a la página web: Citar http://www.mandrakesecure.net/en/advisories/updates.php?dis=9.2 o Citar http://www.mandrakesecure.net/en/advisories/updates.php?dis=10.0 Miramos los últimos "advisories", para saber que paquete rpm ha sido actualizado. Si el paquete tal tiene una vulnerabilidad, procedemos a actualizarlo. Acto seguido vamos a a la consola y escribimos: Citar urpmi --media updates nombre_paquete Se actualizarán todos los paquetes vulnerables. Si falla algo, quizás tenemos que actualizar las fuentes: Citar urpmi.update --all Niveles de Seguridad en Mandrake Mandrake tiene 5 niveles de seguridad. Estos niveles de seguridad incluyen unos scripts (msec) que revisan el sistema. El nivel normal es el 3. El nivel 1 y 2 no son nada aconsejables (sería para un ordenador sin conexión a internet). El nivel 4 es para un servidor (aunque también se puede usar el 3 con algunas modificaciones) y el nivel 5 es el modo paranóico. Código: msec 3 También existe una herramienta gráfica: Código: draksec La configuración del msec se guarda en: Código: /var/lib/msec/security.conf. Más info: http://mandrakeuser.org/docs/mdoc/ref/prog-msec.html Actualizando el kernel en Mandrake Explicación de tipos de kernel en Mandrake: kernel-2.4 = Optimizado para i589, un solo procesador, soporta menos de 1GB de RAM, aproximadamente 880MB máximo. kernel-enterprise-2.4 = Optimizado para i686, con soporte SMP (multiprocesador), admite hasta 4GB de RAM. kernel-i686-up-4GB-2.4 = Optimizado para i686, un solo procesador, admite hasta 4GB de RAM. kernel-p3-smp-64GB-2.4 = Optimizado para PentiumIII, soporte SMP (multiprocesador), admite hasta 64GB de RAM. kernel-secure-2.4 = Optimizado para i586, soporte multiprocesador, no admite memorias grandes, asegurado con grsec. kernel-smp-2.4 = Optimizado para i586, soporte multiprocesador, no admite memorias grandes kernel2.4-marcelo-2.4 = Optimizado para i586, uniprocesador, no admite memorias grandes. Más info sobre esto: http://mandrake.badopi.org/node/view/1320 Tenemos que tener configurada nuestra "fuente" de "updates" Citar urpmi.addmedia --update updates10 ftp://ftp.surfnet.nl/pub/os/Linux/distr/Mandrake/official/updates/10.0/RPMS with ../base/hdlist.cz Actualizamos la fuente (aunque ya lo hemos hecho antes con el --update. Citar # urpmi.update -a Bajamos el nuevo kernel, podemos elegir entre la rama 2.4 o la nueva rama 2.6: Código: # urpmi kernel-2.4.25.4mdk-1-1mdk.i586.rpm Código: # urpmi kernel-2.6.3.9mdk-1-1mdk.i586.rpm Si te aparece un error como éste: Citar Can't call method "L" without a package or object reference at /usr/sbin/detectloader line 127. Prueba de hacer: # detectloader y te saldrá lo mismo. La manera de arreglarlo es usar -l en vez de -L: Busca el archivo /usr/sbin/detectloader Código: $return = $1 if m|^boot=(\S*)$| and not $return; quita esta linea Código: $return = readlink($return) if -L $return; y pon esta: Código: $return = readlink($return) if -l $return; lo demás igual: return $return; } Ahora solo tenemos que configurar correctamente el Lilo, para añadir el nuevo kernel, y el viejo por si algo falla. Antes de hacer el urpmi, teniamos algo así: Código: image=/boot/vmlinuz Ahora debería quedar algo así: Código: image=/boot/vmlinuz-2.4.25.4mdk-1-1mdk Este es el nuevo kernel. Recuerda que vmlinuz y initrd.img suelen ser enlaces simbólicos (así que mira su destino). Ahora añadimos el viejo (por si a caso): Código: image=/boot/vmlinuz-2.4.19-16mdk Y por últimos, lo probamos y ejecutamos el lilo claro: Código: # lilo -v Es un poco cutre, pero es sencillo y no es necesario compilar, ni bajar módulos, ni nada más. Otra manera es bajar el kernel-src.mdk y reconstruirlo: Código: rpm --rebuild --target ARCH kernel.VERSION.src.rpm Dónde ARCH puede ser: noarch, i386, i486, i586, i686, athlon, ... Código: rpm -ivh /usr/src/RPM/RPMS/ARCH/kernel.VERSION.ARCH.rpm Linux kernel patch from the Openwall Project http://www.openwall.com/linux/README.shtml Características generales Non-executable user stack area. Restricted links in /tmp. Restricted FIFOs in /tmp. Restricted /proc. Special handling of fd 0, 1, and 2 (Linux 2.0 and 2.2 only). Enforce RLIMIT_NPROC on execve(2). Destroy shared memory segments not in use Privileged IP aliases (Linux 2.0 only). Libsafe Libsafe is a middle-ware solution to format string attacks and buffer overflows. It provides a dynamically loadable LD_PRELOAD replacement. The LD_PRELOAD replacement is used to replace common functions known to have format string or BOF issues. LibSafe is an ideal solution to stop many issues in simple and basic software – for example the Linux x86 'traceroute' utility has had a history of format string issues, libsafe essentially puts a lid around most of those past/present/future issues. http://www.research.avayalabs.com/project/libsafe/ http://forums.ev1servers.net/showthread.php?s=7915a47f5ce451541ec152a7f399a085&threadid=13009 APF (Advanced Policy Firewall) http://www.r-fx.org/apf.php Entorno Chrooted (Jail) http://www.jmcresearch.com/projects/jail/howto.html # Remove SUID or SGID bits, if any exist: find . -type f -exec chmod ug-s {} \; chkrootkit + info --> http://www.chkrootkit.org/ chkrootkit es una pequeña aplicacion que sirve para detectar los rootkits más comunes. No es infalible. Instalación: Citar #necesitamos ser root su - #nos bajamos la ultima version wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz #comprobamos firma con ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.md5 md5sum chkrootkit.tar.gz #descomprimimos tar xvzf chkrootkit.tar.gz #entramos al directorio cd chkrootkit_version_tal #compilamos make sense #probamos ./chkrootkit #el resultado tiene que ser "not found", "not infected",etc. Hay más parametros para usar, consultar documentación. Otra herramienta parecida al chkrootkit: Rootkit Hunter bajar: wget http://downloads.rootkit.nl/rkhunter-1.2.8.tar.gz descomprimir: # tar zxf rkhunter-<version>.tar.gz Instalar :D # cd rkhunter # ./installer.sh rhkunter luego para hacerlo funcionar. Tiger http://www.nongnu.org/tiger/ Bastille Bastille Linux http://www.bastille-linux.org/ tar -xjvf Bastille.tar.bz2 2) Run the Install.sh script: cd Bastille && ./Install.sh Type: "bastille" to start the full custom hardening script. AIDE AIDE (Advanced Intrusion Detection Environment) Otros: Nabou, Tripwire Don't forget: Reboot the machine when you're done! Montar /tmp con noexec nosuid,noexec Instalación de Force Brute Detection BFD es un script que analiza los logs en busca de intentos fallidos de conexión y bloque las ips de los atacantes. Instalación: wget http://www.rfxnetworks.com/downloads/bfd-current.tar.gz tar xvzf bfd-current.tar.gz cd bfd-0.2 Ejecutar el instalador: ./install.sh .: BFD installed Install path: /usr/local/bfd Config path: /usr/local/bfd/conf.bfd Executable path: /usr/local/sbin/bfd Editar el archivo de configuración: pico /usr/local/bfd/conf.bfd Activar alertas contra intentos de brute force hack: Buscar: ALERT_USR="0" CAMBIALO A: ALERT_USR="1" Busca: EMAIL_USR="root" CAMBIALO A: EMAIL_USR="mi_nombre@mimail.com" Guarda los cambios: Ctrl+X then Y Evitar que te banee a ti mismo pico -w /usr/local/bfd/ignore.hosts y añade tus IPS. (con las que accedes al servidor, las de conexión a internet Ej: 192.168.1.1) BFD usa la habilidad de inserción de APF' cli y añadirá las IPS que intentan entrarte al archivo de IPS baneadas por lo que es importante añadir tus IPS al archivo de allow_hosts.rules para evitar que te blockee el acceso al servidor. Ejecutar el Programa /usr/local/sbin/bfd -s UNIX Security Checklist v2.0 http://www.auscert.org.au/render.html?it=1935&cid=1920 Falta explicar cada cosa y poner fuentes (yo sólo traduzco del inglés, pero añado alguna cosa y lo explico a mi manera.) |