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 http://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 http://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
o
Citar
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 http://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;
}
close F;
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
label="linux"
root=/dev/hda7
initrd=/boot/initrd.img
read-only
Ahora debería quedar algo así:
Código:
image=/boot/vmlinuz-2.4.25.4mdk-1-1mdk
label=2419-24
root=/dev/hda1
read-only
optional
initrd=/boot/initrd-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
label="linux-oldkernel"
root=/dev/hda7
initrd=/boot/initrd-2.4.19-16mdk.img
read-only
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 http://ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
#comprobamos firma con http://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.
su -
#nos bajamos la ultima version
wget http://ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
#comprobamos firma con http://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
# 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.)