Como mejorar con poco esfuerzo la seguridad en tu sistema

Imagen de Epe

Visperas de navidad todos tenemos la cabeza en otro lugar.. yo tambien.. pero no quiero dejar pasar una semana sin dar algun tip.
Este tip es breve y a muchos les parecera simple y risible.

En realidad el que se rie de sistemas instalados soy yo.
Parece mentira que la gente piense que linux es meter un CD y apretar NEXT.

1- Actualizar los paquetes - Aunque parezca mentira, linux no es tan fuerte como pensamos, tambien tiene fallas de seguridad que deben ser corregidas. Los autores de las distribuciones emiten cada cierto tiempo, actualizaciones a fallas criticas del sistema. Y debemos estar atentos a estas si tenemos un servicio en linea que no pueda ser bajado por ataques al sistema por parte de script kiddies o gusanos o hackers.

Les aseguro que si tenemos nuestros paquetes actualizados es poco probable que se nos cuele un gusano en nuestro sistema. No es que sea la panacea, pero en realidad ayuda muchisimo.

Muchas empresas del pais, sencillamente instalan linux y lo dejan asi por meses, o por annos. Y para ellas es super natural el que se les cuele un gusano.. y consideran algo de rutina instalar una y otra vez el sistema porque se les colo un gusano. Pues no, no es natural, no es de rutina.

Otras consideran que teniendo un super Cxxxx Pxx Firewall todo esta resuelto y nada les pasara. El tener un firewall global es una seguridad y a la vez una falla pues si el firewall cae caera toda la red.. Ademas, la persona tiende a pensar que no hay problemas de seguridad cuando si los hay, y graves. Un firewall no elimina la necesidad de tener puertos abiertos hacia nuestros servidores.. y por ahi nos pueden atacar. Un firewall no conoce todos los ataques posibles y por ahi nos pueden atacar.

Es por esto, que explicare una forma de actualizar los sistemas basados en rpm (redhat, suse, openna, etc):

Openna:

Bajar el autoupdate de www.openna.com instalarlo y llamar una vez al dia a: autodld

Esta utileria se encargara de actualizar nuestro sistema con cualquier parche que salga.

Redhat:

1- ejecutar el up2date (previo pago del servicio)

o


2- entrar a http://distro.ibiblio.org/


buscar la distribucion de redhat, entrar al directorio updates y bajar los updates (son una serie de .rpm) para la version de redhat que tenemos.

Por ejemplo, para bajar los updates de redhat 9 yo haria:

wget -m -np -c http://distro.ibiblio.org/pub/linux/distributions/redhat/updates/9/en/os/i386

Usando el wget bajo todo el directorio i386 (-m: mirror, -np: no subir al directorio padre,, -c: continuar si se interrumpe)

Una vez bajados los rpm, Hay que tener un poquito de paciencia para verificar que paquete tengo instalado, por ejemplo, pensemos que hay un update de apache:



httpd-2.0.40-21.5.i386.rpm

Lo primero que tengo que verificar es si ese paquete existe en mi sistema, si no existe, me olvido de el, lo borro.

Verifiquemos si existe:

rpm -q httpd

(solo puse httpd no los numeros)

Si me dice que no existe ese paquete, borro el httpd-2.0.40-21.5.i386.rpm


.

Si me dice algo asi como:

httpd-2.0.36-8.5

Entonces significa que tengo una version 2.0.36 y por supuesto; la que acabo de bajar 2.0.40 es mas moderna, sencillamente la actualizo:

rpm -Uvh httpd-2.0.40-21.5.i386.rpm

y listo.. actualizara a esta version mas moderna.. me puedo sentir un poquito mas tranquilo porque tengo una version mas moderna con varios parches corregidos.

Asi sigo revisando paquete por paquete de los que acabo de bajar y actualizando a los que tenga en mi sistema.. es super simple.. lo que eso si.. es super pesado escribir tantas rayitas y numeritos.. pero sennores.. a veces por eso nos pagan!!

Si, realmente es una pesadez eso de tener que revisar paquetes, pero ayuda hacerloi al menos una vez al mes, lo mas pesado es la primera vez, despues es solo revisar que paquetes han salido en los ultimos 15 a 30 dias y actualizarlos... con eso basta para tener un sistema bastante seguro y no pasemos los apuros que siempre pasamos cuando alguien entra a nuestra maquina.

Una ultima cosita: hay paquetes que dependen de otros para instalarse, lo que hay que hacer es instalarlos los dos a la vez, por ejemplo si tenemos el httpd-devel en nuestro sistema, hay que actualizarlo conjuntamente con el httpd pues sino el rpm dara un error y se negara a actualizar:

rpm -Uvh httpd-2.0.40-21.5.i386.rpm rpm -Uvh httpd-devel-2.0.40-21.5.i386.rpm

En una sola linea, mando a actualizar estos dos paquetes.. el uno se niega a actualizarse si el otro, comprobado esta.. por lo tanto los mando a los dos a la vez. A veces no son dos, sino 6 o 7 paquetes que debes actualizar a la vez.. pero ya ahi se los dejo a ustedes.

El kernel es super simple de actualizar... sencillamente:

uname -a

Vemos que kernel tenemos y actualizamos exactamente a ese mismo (solo que con los numeros de version cambiados por una superior).

Para otras distribuciones, existen sus paginas de actualizaciones, busquen en ellas.

2- Bajar servicios innecesarios del sistema.

Lo mismo de siempre, meten el CD, aprietan NEXT y piensan que ya pueden cobrar por instalar linux.. pero no.. no nos llamemos a enganno. Una demostracion de que sabemos CERO sobre linux es cuando dejamos servicios innecesarios. Cada servicio innecesario corriendo en nuestra maquina puede ser usado como puerta de entrada para un gusano.

Si tenemos un servidor web.. que sentido tiene que tengamos abierto el puerto de portmap (111) a la internet? Eso es como salir encueros a la calle. Es sencillamente darle el culo al mundo.

Como bajar servicios innecesarios? chkconfig

chkconfig --list

nos listara todos los servicios del sistema. Sencillamente bajemos los que no hacen falta:

chkconfig --level 2345 apmd off

esto apagara al servicio apmd para siempre. Normalment eno hace falta apmd para un servidor.

chkconfig --leverl 2345 portmap off

apagara el portmap muy util para los que usan NFS.. no recomiendo que se use NFS a no ser que exista una buena razon.

Otros servicios que sugiero se bajen:

telnetd

ftpd

fingerd

netfs

nfs

nfslock

portmap

nmdb (samba)

smbd (samba)

En resumen, los unicos servicios que normalmente valen la pena tener activos son:

named

httpd

sendmail

pop3

imap

Pero igual, deben de bajarse si no se necesitan. Es importante, asi aun haya una falla no descubierta.. como no tenemos el servicio activo, esta no podra ser explotada.

Una ultima: Muichos de estos servicios que TENEMOS que dejar activos son solo utiles para nuestra intranet, no para la internet (named por ejemplo, solo lo usamos como dns de cache en la mayor parte del tiempo). Por lo que sugiero que pongan un firewall localizado (en el linux) de forma tal que no permita que esos servicios sean visibles para la internet pero si para la intranet.

Un firewall muy sencillo es technion firewall:

http://orbital.wiretapped.net/~technion/iptables

Solo tienen que ajustar estas lineas, y tendran un firewall bien bonito y simple:

# Network information you will need to adjust
INTERNALIF="eth0"
INTERNALNET="192.168.0.0/16"
INTERNALBCAST="192.168.0.255"
EXTERNALIF="ppp0"
#MYADDR="1.2.3.4" # Only needed for DNAT, leave out otherwise

Repito, estas dos cositas que puse parecen muy tontas, pero muchas personas las dejan pasar y es por ahi por donde les atacan. Tomense la molestia de asegurar asi su servidor y podran estar un poquito mas tranquilos.. y comprenderan que no solo es meter el CD y apretar NEXT.

Saludos y feliz navidad

Epe