Inicio > Linux, Seguridad > Instalar un Servidor Web Seguro (Linux + Apache + PHP + Joomla + Tomcat/JBOSS) : P2 – Securizando Linux.

Instalar un Servidor Web Seguro (Linux + Apache + PHP + Joomla + Tomcat/JBOSS) : P2 – Securizando Linux.

Martes, 31 de mayo de 2011 Dejar un comentario Ir a comentarios

Vamos a empezar securizando un poco nuestro pinguino. Recordar que esto es un proceso diario, y las fuerzas del mal son muy oscuras y requieren de un trabajo diario. Debemos tener muy en cuenta aquello de que …. es mejor prevenir que curar.

1.- EMPEZAMOS PERSONALIZANDO NUESTRA SHELL.

Editamos /etc/bash.bashrc,

#vi  /etc/bash.bashrc

Y añadimos lo siguiente al fichero:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

alias mv=’mv -i’
alias cp=’cp -i’
alias rm=’rm -i’
alias ln=’ln -i’
export TMOUT=3600

2.- INSTALAR UN ANTIVIRUS

#sudo aptitude install clamav


3.- MODIFICAR ALGUNOS PARÁMETROS DEL KERNEL

3.1 Activar la protección contra IP spoofing:

  • sysctl -w net.ipv4.conf.default.rp_filter=1
  • sysctl -w net.ipv4.conf.all.rp_filter=1

3.2 Desactivar el reenvío de paquetes IP

  • sysctl -w net.ipv4.ip_forward=0
  • sysctl -w net.ipv6.ip_forward=0

3.3 Activar la protección contra mensajes de error mal construidos:

  • sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1

3.4 Desactivar ICMP Redirect Acceptance

  • sysctl -w net/ipv4/conf/all/accept_redirects=0
  • sysctl -w net/ipv4/conf/all/send_redirects=0
  • sysctl -w net/ipv4/conf/all/secure_redirects=1

3.5 Desactivar IP Sourcing routing

  • sysctl -w net.ipv4.conf.all.accept_source_route=0

3.6 Logear paquetes: Spoofed Packets, Source Routed Packets, Redirect Packets

  • sysctl -w net.ipv4.conf.all.log_martians=1

Para poder consultar los valores actuales:

#sysctl net.ipv4.conf.default.rp_filter
#sysctl net.ipv4.conf.all.rp_filter
#sysctl net.ipv4.tcp_syncookies
#sysctl net.ipv4.ip_forward
#sysctl net.ipv6.ip_forward
#sysctl net.ipv4.icmp_echo_ignore_broadcasts
#sysctl net.ipv4.icmp_ignore_bogus_error_responses
#sysctl net.ipv4.conf.all.accept_redirects
#sysctl net.ipv4.conf.all.send_redirects
#sysctl net.ipv4.conf.all.accept_source_route
#sysctl net.ipv4.conf.all.log_martians


4.- COMPROBAR PERMISOS DE LOS FICHEROS

Ficheros SUID/SGID
# find / -type f \( -perm -04000 -o -perm -02000 \)

Ficheros con escritura global
# find / -perm -2 -print

Ficheros sin propietario
#find / -nouser -o -nogroup –print

Ficheros .rhosts
#find /home -name .rhosts -print


5.- INSTALAR TRIPWIRE (comprobar la integridad de los archivos)

Se trata de una herramienta que nos va a permitir comprobar si la integridad de nuestros archivos ha sido comprometida.

Instalamos la herramienta

#apt-get install tripwire

Nos pedirá una par de claves. La primera de ellas para cifrar los archivos de políticas y configuración, y la segunda para cifrar la información de estado de los archivos monitorizados.

Si queremos editar la configuración, editamos el fichero twpol.txt

#vi  /etc/tripwrie/twpol.txt

Y ahora instalamos la configuración generada

#twadmin -m P /etc/tripwire/twpol.txt

Generamos la Base de datos inicial con los archivos.

#tripwire -m i 2

Y cuando queramos verificar la integridad de los mismos ejecutamos

#tripwire -m c

Podemos borrar el archivo de configuración de tal forma que personas no autorizadas no puedan ver la configuración que estamos utilizando.

#rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt

En caso de ser necesario podemos regenerar el mismo ejecutando la siguiente instruccion

#twadmin -m p > /etc/tripwire/twpol1.txt twadmin -m f > /etc/tripwire/twcfg.txt


6.- DESACTIVAR SERVICIOS QUE NO NOS INTERESEN.

Para ello podemos instalar el siguiente paquete que se ejecuta en consola.

#apt-get install sysv-rc-conf


7.- ELIMINAR AQUELLAS SHELLS QUE NO VAYAMOS A UTILIZAR.

#vi /etc/shells

Y añadimos un # para comentar las no necesarias.

# /etc/shells: valid login shells
#/bin/csh
/bin/sh
#/usr/bin/es
#/usr/bin/ksh
#/bin/ksh
#/usr/bin/rc
#/usr/bin/tcsh
#/bin/tcsh
#/usr/bin/esh
/bin/bash
#/bin/rbash


8.- ELIMINAR LA SHELL AL USUARIO QUE SE UTILIZA PARA EJECUTAR LOS PROCESOS DEL APACHE.

Por defecto el usuario que se genera es www-data

#vi /etc/passwd

En la línea donde aparece www-data…. Cambiar la Shell a /bin/false

Y ahora procedemos a bloquearle la cuenta

#passwd -l www-data

Comprobamos editando los ficheros /etc/passwd y /etc/shadow que este todo correcto.

9.- MODIFICAR LOS MENSAJES INFORMATIVOS DEL SISTEMA

Debemos advertir claramente de que se trata de un sistema privado, sobre el que cualquier operación no autorizada que se realice quedará reflejada y sujeta a acciones legales. Este tipo de mensajes son muy importantes a nivel legal.

#vi /etc/issue

***************************************************************************
NOTICE TO USERS

This computer system is for authorized use only. Use of this system
constitutes consent to security monitoring and testing. All activity is
logged with your host name and IP address.

Any or all uses of this system and all files on this system may be
intercepted, monitored, recorded, copied, audited, inspected, and disclosed to law enforcement personnel, as well as authorized officials of other agencies, both domestic and foreign.

Unauthorized or improper use of this system may result in administrative disciplinary action and civil and criminal penalties. By continuing to use this system you indicate your awareness of and consent to these terms and conditions of use. LOG OFF IMMEDIATELY if you do not agree to the conditions stated in this warning.

*****************************************************************************


10.- ELIMINAMOS INFORMACIÓN REFERENTE A NUESTRO SISTEMA

#echo > /etc/motd
#echo > /etc/motd.tail

Editamos el fichero bootmisc.sh

#vi /etc/init.d/bootmisc.sh

Y debemos comentar las siguientes líneas:

# Update motd
# uname -snrvm > /var/run/motd
#[ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd


11.- ESTABLECER LOS PERMISOS POR DEFECTO CUANDO SE GENERAN LOS ARCHIVOS

Editamos los siguientes ficheros, añadiendo al final de los mismos la información que se indica.

#vi /etc/login.defs

UMASK      022

#vi /etc/profile
umask 022

#vi /etc/pam.d/common-session
session optional pam_umask.so umask=0022

Las contraseñas deben de estar cifradas en /etc/shadow

12.- ROOTKIT

Debemos de ir comprobando la posible presencia de Rootkits instalados en nuestro sistema.

#apt-get install chkrootkit rkhunter
#sudo rkhunter –update
#sudo rkhunter –check
#sudo chkrootkit

También podemos utilizar aplicaciones como Bastille que nos van a ayudar mucho a fortificar nuestro servidor.

Bueno compañeros, que la fuerza os acompañe hasta el próximo artículo de la saga !!!

Enviar a un amigo: Share this page via Email
Categories: Linux, Seguridad Tags:
  1. Sin comentarios aún.
  1. Sin trackbacks aún.
*