La seguridad en Linux es hoy por hoy una gran preocupación, a medida que va ampliando su volumen de usuarios, tanto de escritorio como en servidores. Ultimamente, están apareciendo muchísimas vulnerabilidades en Linux, espero que esto cambie (Sept-2015), pero está claro que el eslabón más débil es el usuario. Ante un usuario negligente en sus decisiones, no hay defensa posible. Este artículo está dirigido a usuarios noveles en la administración de sistemas linux. Partimos de la base de que nuestro sistema está limpio de virus y rootkits.
Para verificar ésto, haremos chequeos de rutina básicos desde la consola, habiendo iniciado sesión como root.

# aptitude install rkhunter chkrootkit unhide lsof iptraf ufw ntop nano

Activamos el firewall si no lo tenemos activado, para ello, hacemos lo siguiente:


-------------
# ufw enable

Para abrir algún puerto en nuestro equipo, utilizamos el siguiente comando:

# ufw allow <numero de puerto>

Para banear una ip o rango de ips:

# ufw deny to <ip/cidr>

-------------

# rkhunter -c

Si vemos que tenemos instalado algún rootkit, nos aseguramos googleando de que no se trata un falso positivo.
En el caso de los ejecutables, podría ser que al instalar algo tras la instalación de rkhunter, hayamos cambiado los ejecutables por otros. Revisamos las cuentas de usuario con password y shell válida.


# chkrootkit


En este comando, actuamos de similar forma a como hicimos con rkhunter.

# unhide-linux brute

# unhide-linux sys

Si detectamos un proceso que se repite en los diferentes chequeos, posiblemente tengamos instalado algun proceso oculto. No está de más repetir el chequeo varias veces, en caso de detectar algo, para asegurarnos de que el proceso no es temporal.


# unhide-tcp


Si no está limpio nuestro sistema, habría que formatear y reinstalar el sistema operativo completo, dependiendo de la gravedad de la infección o hackeo y hasta qué punto sepamos manejarlo. Es lo mejor, pues podría ser muy difícil detectar hasta que punto llegó dicha intrusión. No os olvideis de hacer copias de seguridad de información sensible, por si ésto llegara a ocurrir.


# lsof -i 4


Estos dos comandos, nos dan las conexiones actuales y puertos abiertos tcp y udp. En el primer caso, las conexiones ocultas, en el segundo, las reales.
No estaría de más cerrar nuestro navegador web para verificar por un momento, las conexiones que se realizan desde nuestro equipo repitiendo la ejecución de dichos comandos.

Acto seguido, deberemos verificar las direcciones IP de cada conexión y banear las que, googleando, veamos que no tienen buena reputación o no nos inspiran confianza.


Para hacer esto, como os dije antes:


# ufw deny to <ip/cidr>


Esto banea todo el trafico a dicho host o rango de ips (cidr).


Si tenemos algún servicio publicado en internet o en nuestra LAN, comprobamos la versión de éste y nos aseguramos de que no existen vulnerabilidades publicadas para dicho servicio. Si existen, podríamos haber sido hackeados.


Sitios para comprobar si existen vulnerabilidades publicadas serían, por citar alguno:


http://www.securityfocus.com/

http://www.cvedetails.com/

http://www.exploit-db.com/


Hay muchos más y muy buenos, pero de momento, podría valer con éstos.

Ahora nos corresponde actualizar los servicios a una versión recomendada, que se piensa que no tiene bugs.

Si tenemos activos servicios que no usamos, los paramos y evitamos que arranquen al inicio.
Comprobad siempre para qué sirve dicho servicio. Si parais un servicio importante, podríais tener problemas.
Esto en Debian y Ubuntu (apt) se haría de la siguiente forma:


# /etc/init.d/<nombre del servicio> stop
# update-rc.d -f <nombre del servicio> remove


Si tenemos nuestro repositorio de paquetes en buen estado de salud, podemos activar actualizaciones automáticas de la siguiente forma:


# nano /etc/cron.d/userupdates

ponemos ahi lo siguiente:


#-----------------
# /etc/cron.d/userupdates: actualizaciones automaticas

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

30 7    * * *   root    apt-get update && apt-get --yes upgrade
#-----------------


Salvarmos y salimos.
Le damos permisos:


# chmod 0755 /etc/cron.d/userupdates


Aseguraos antes, de no tener repositorios de dudosa reputación en apt. Revisad vuestro /etc/apt/sources.list y /etc/apt/sources.list.d/


Ahora vamos por el navegador web, que debe ser basado en Firefox, por cuestión de preferencia. Lo abrimos e instalamos las siguientes extensiones:

Flagfox
IP Address and Domain Information
NoScript Suite Lite
Safe Preview
WOT

Con cada página que visitemos, comprobamos con WOT, IP Address and Domain Inf. y Safe Preview su reputación y si nos convence la web, la añadimos a NoScript Suite Lite.

Así pues, la primera regla y más importante, sería "Cuidado con lo que instalas y visitas".
Comentaros, que ésto tiene un alcance básico. No es de mucho efecto ante exploits in the wild o sitios web con hackeos no detectados. Al igual que tampoco sirve ante rootkits "in the wild". Estad al día de las vulnerabilidades que van apareciendo y parchead vuestros paquetes con apt cuanto antes. Ese consejo os puedo dar.

Hasta aquí la primera entrega de nuestro happy linux series.

Espero que os haya gustado a pesar de lo básico que es éste tutorial, pero tampoco es mi objetivo hacer algo muy elitista, por el momento.

Gracias por la lectura y hasta otra.

Happy Linux!!



Currently unrated
  • Share

Comments

There are currently no comments

New Comment

* Please fill all required form field, thanks!