Foros del Web » Administración de Sistemas » Cloud Computing »

Hardening/Optimización de Servidores

Estas en el tema de Hardening/Optimización de Servidores en el foro de Cloud Computing en Foros del Web. Guía de hardening y optimización de servidores dedicados cPanel: Petición: Estimado lector, debido a que esto es un trabajo en desarrollo y voy a requerir ...
  #1 (permalink)  
Antiguo 22/09/2010, 19:09
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Hardening/Optimización de Servidores

Guía de hardening y optimización de servidores dedicados cPanel:


Petición:
Estimado lector, debido a que esto es un trabajo en desarrollo y voy a requerir de bastante espacio en este tema, por favor si tienes alguna duda o comentario no lo coloques aquí, puedes abrir un nuevo tema con link a este o contactarme directamente vía correo o mensaje privado.

Gracias por tu colaboración !

Objetivo:
Asegurar tanto como sea posible el servidor y a la vez incrementar el rendimiento del mismo.

Requisitos:
  • Servidor Dedicado cPanel (NO VPS)
  • Acceso root vía SSH al servidor
  • Conocimientos básicos de Linux

    Enviarme la IP del servidor que va a optimizar para autorizar las descargas y actualizaciones desde esa IP (debe ser la IP del servidor)
Advertencia:
Los comandos aquí mostrados han sido probados en servidores cPanel sin embargo no ofrezco ningúna garantía o asumo ninguna responsabilidad sobre los daños que el usuario pueda causar.
  1. Desintalación de paquetes no usados
  2. Seguridad y Optimización sysctl.conf
  3. Instalación Cloudlinux
  4. Actualización de Paquetes
  5. Actualización de Kernel
  6. Instalación de Ksplice
  7. Seguridad sshd
  8. Seguridad de /tmp y /var/tmp
  9. Seguridad de memoria virtual
  10. Optimización de Discos
  11. Seguridad /etc/resolv.conf
  12. Seguridad /etc/host (hosts, host.conf, hosts.allow y hosts.deny)
  13. cPanel Tweaks
  14. Recompilación de Apache (mod_security, eaccelerator, suphp, etc)
  15. EasyApache
  16. Permisos de /home/user/public_html
  17. Seguridad PHP
  18. Instalación de Htscanner
  19. Instalación de mytop
  20. Instalación mod_security + gotroot rules
  21. Instalación Plugins cPanel
  22. Optimización Exim
  23. Seguridad FTP
  24. Instalación ossec
  25. Instalación de LMD
  26. Instalación de Lynix
  27. Instalación de CSF Firewall
  28. Optimización MySQL

Última edición por JoshMex; 24/09/2010 a las 08:59 Razón: Solicitud de Datacenter1
  #2 (permalink)  
Antiguo 24/09/2010, 07:23
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Desintalación de paquetes no usados

Copia y pegar los siguientes comandos como root:

Este bloque de comandos desactivará muchos servicios no requeridos en servidores cPanel, es normal que muestre errores si los servicios no están activos o instalados.

Nota: Estos comandos desactivarán nfs, si requiere nfs debido a que usa alguna partición remota comente los comandos nfs y nfslock

Código:
service NetworkManager stop
service NetworkManagerDispatacpid stop
service apmd stop
service autofs stop
service avahi-daemon stop
service avahi-dnsconfd stop
service bluetooth stop
service conman stop
service cpuspeed stop
service cups stop
service dc_client stop
service dc_server stop
service dhcdbd stop
service dund stop
service firstboot stop
service gpm stop
service haldaemon stop
service hidd stop
service ibmasm stop
service ip6tables stop
service ipmi stop
service irda stop
service irqbalance stop
service kdump stop
service kudzu stop
service mcstrans stop
service mdmonitor stop
service mdmpd stop
service microcode_ctl stop
service netfs stop
service netplugd stop
service nfs stop
service nfslock stop
service nscd stop
service oddjobd stop
service pand stop
service pcscd stop
service portmap stop
service rdisc stop
service restorecond stop
service rpcgssd stop
service rpcidmapd stop
service rpcsvcgssd stop
service saslauthd stop
service setroubleshoot stop
service smartd stop
service smb stop
service squid stop
service tux stop
service winbind stop
service wpa_supplicant stop
service xfs stop
service ypbind stop
service yum-updatesd stop
chkconfig NetworkManager off
chkconfig NetworkManagerDispatacpid off
chkconfig apmd off
chkconfig autofs off
chkconfig avahi-daemon off
chkconfig avahi-dnsconfd off
chkconfig bluetooth off
chkconfig conman off
chkconfig cpuspeed off
chkconfig cups off
chkconfig dc_client off
chkconfig dc_server off
chkconfig dhcdbd off
chkconfig dund off
chkconfig firstboot off
chkconfig gpm off
chkconfig haldaemon off
chkconfig hidd off
chkconfig ibmasm off
chkconfig ip6tables off
chkconfig ipmi off
chkconfig irda off
chkconfig irqbalance off
chkconfig kdump off
chkconfig kudzu off
chkconfig mcstrans off
chkconfig mdmonitor off
chkconfig mdmpd off
chkconfig microcode_ctl off
chkconfig netfs off
chkconfig netplugd off
chkconfig nfs off
chkconfig nfslock off
chkconfig nscd off
chkconfig oddjobd off
chkconfig pand off
chkconfig pcscd off
chkconfig portmap off
chkconfig rdisc off
chkconfig restorecond off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig rpcsvcgssd off
chkconfig saslauthd off
chkconfig setroubleshoot off
chkconfig smartd off
chkconfig smb off
chkconfig squid off
chkconfig tux off
chkconfig winbind off
chkconfig wpa_supplicant off
chkconfig xfs off
chkconfig ypbind off
chkconfig yum-updatesd off
  #3 (permalink)  
Antiguo 24/09/2010, 07:31
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Seguridad y Optimización sysctl.conf

El archivo sysctl.conf es un importante archivo en Linux que configura parámetros del kernel y red

En el proceso de optimización simplemente realizaremos un backup y actualizaremos el archivo con una versión optimizada:

Ejecutar como root:

Código:
mv /etc/sysctl.conf /etc/sysctl.conf.datacenter1 # crea una copia del archivo
cd /etc/
wget http://datacenter1.com/private/etc/sysctl.conf
sysctl -p
  #4 (permalink)  
Antiguo 24/09/2010, 07:43
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Instalación de Cloudlinux

Cloudlinux es una nueva distro totalmente compatible con RedHat/Centos, ofrece avanzadas características de seguridad y rendimiento.

Adicionalmente es la única distro que incorpora el uso de LVE (containers virtuales de aplicaciones)

Por ejemplo con Cloudlinux Usted puede asignar cuotas de CPU a cada usuario tal como lo hacen empresas como Hostgator, adicionalmente existen plugins para extender la funcionalidad de Cloudlinux, por ejemplo para que el usuario vea en su panel el uso del cpu asignado.

Cloudlinux resuelve el problema del abuso de recursos.

Cloudlinux requiere una licencia, recomiendo solicitar una licencia de prueba 30 días (puedo ayudar con licencias de prueba y/o comerciales)

La instalación de Cloudlinux es muy sencilla:

Ejecutar como root:
Código:
cd /usr/local/src
wget http://repo.cloudlinux.com/cloudlinux/sources/cln/centos2cl 
sh centos2cl -k [key]
Sustituir[key] por la licencia y reinicar el servidor

Luego de reiniciado, ejecutar los siguientes comandos como root:
Código:
cd /usr/local/src
wget http://repo.cloudlinux.com/cloudlinux/sources/install-lve 
sh install-lve -a
echo "CentOS release 5.5" > /etc/redhat-release
Más información acerca de cloudlinux en http://www.cloudlinux.com
  #5 (permalink)  
Antiguo 24/09/2010, 07:45
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Actualización de Paquetes

Mantener los paquetes y kernel actualizados es un paso que no toma casi ningún esfuerzo y ayudará enormemente a mantener nuestros servidores en buen estado

La forma más fácil y sencilla de actualizar el servidor es ejecutando el siguiente comando como root:
Código:
yum -y update 

Última edición por Datacenter1; 24/09/2010 a las 12:23
  #6 (permalink)  
Antiguo 24/09/2010, 12:34
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Actualizar el Kernel - Ksplice

En el pasado era necesario reiniciar el servidor cada vez actualizábamos el kernel, esto representa problemas y había que hacer un compromiso entre la seguridad y el uptime.

Hoy en día y gracias a ksplice es posible actualizar el kernel sin necesidad de reiniciar el servidor.

Ksplice es funciona bajo modelo de suscripción pero es sumamente económico de 3.95 a 2.95 dólares al mes por servidor que bien valen la pena por el aumento de seguridad y uptime, por ejemplo recientemente hubo un famoso exploit que ha afectado a todos los sistemas linux de 64 bits (ver http://www.comunidadhosting.com/asun...10-3081-a.html) Ksplice sacó un parche antes de Redhat y los usuarios de ksplice contamos con protección sin necesidad de reiniciar.

La instalación es bastante sencilla:

Ir al sitio de ksplice y obtener una licencia de prueba por 30 días
ejecutar como root:
Código:
cd /usr/local/src 
wget https://www.ksplice.com/yum/uptrack/centos/ksplice-uptrack-release.noarch.rpm 
rpm -i ksplice-uptrack-release.noarch.rpm 
yum -y install uptrack 
mv /etc/uptrack/uptrack.conf /etc/uptrack/uptrack.conf.datacenter1
cd /etc/uptrack
vi uptrack.conf #Introducir la key de ksplice y guardar
uptrack-upgrade -y
  #7 (permalink)  
Antiguo 24/09/2010, 12:41
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Seguridad de SSHD

Para asegurar SSH solo reemplazaremos el archivo original por una versión con seguridad mejorada, es posible incrementar más aún la seguridad cambiando el puerto de conexión, evitando que root haga login directo o forzando al ingreso únicamente con ssh keys.

En mi versión root es permitido, el puerto 22 es el de conexión

Para actualizar sshd ejecutar como root:
Código:
mv /etc/ssh/sshd_config /etc/ssl/sshd_conf.datacenter1 #renombramos el archivo origial
cd /etc/ssh
wget http://datacenter1.com/private/etc/sshd_config
service sshd restart
  #8 (permalink)  
Antiguo 24/09/2010, 12:53
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Seguridad de /tmp y /var/tmp

En esta apartado crearemos una nueva partición /tmp de 5 GB y será creada de forma segura, la he creado de 5 GB debido a que por defecto cPanel coloca al cache de eaccelerator en esta partición

NOTA: Si deseas un máximo rendimiento coloca /tmp en un disco SSD dedicado.

Primero que nada y como ya es costumbre realizamos el backup del archivo a modificar:

Código:
cp /etc/fstab /etc/fstab.datacenter1
y luego ejecutamos:
Código:
cp -aR /tmp /tmp_backup # creamos un backup del contenido de /tmp
service mysql stop # detenemos mysql
service httpd stop # detenemos apacje
umount -l /var/tmp # desmontamos /var/tmp
umount -l /tmp # desmontamos /tmp
rm -Rf /usr/tmpDSK #/borramos /usr/tmpDSK
cd /usr
dd if=/dev/zero of=tmpDSK bs=1024 count=5120000
/sbin/mkfs -t ext3 /usr/tmpDSK # Creamos un sistema de archivos ext3
mount -o loop,noexec,nosuid,nodev,rw /usr/tmpDSK /tmp #montamos /tmp con la seguridad requerida
cp -aR /tmp_backup/* /tmp/ # reestablecemos el contenido de /tmp
chmod 1777 /tmp
rm -Rf /tmp_backup # borramos el backup
Ya tenemos un nuevo /tmp de 5 GB y montado con noexec,nosuid,nodev y rw ahora solo basta con modificar el archivo /etc/fstab para que los cambios se mantengan al reiniciar el servidor:

Abrir el archivo /etc/fstab y buscar la línea que carga a /tmp (si no existe es seguro agregarla)

La línea debe verse como está, si no está asó modificarla:
Código:
/usr/tmpDSK /tmp     ext3     loop,rw,noexec,nosuid,nodev    0 0
Adicionalmente ya que estamos en el archivo /etc/fstab, buscar cualquier referencia a /var/tmp y eliminar la línea

Guardar los cambios.

Ahora vamos a convertir a /var/tmp en un link simbólico de /tmp
Código:
mv /var/tmp /var/vartmp
ln -s /tmp /var/tmp
cp /var/vartmp/* /tmp/
rm -Rf /var/vartmp
  #9 (permalink)  
Antiguo 24/09/2010, 12:58
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Respuesta: Hardening/Optimización de Servidores

Esta guía continuará...

Estimado lector, debido a que esto es un trabajo en desarrollo y voy a requerir de bastante espacio en este tema, por favor si tienes alguna duda o comentario no lo coloques aquí, puedes abrir un nuevo tema con link a este o contactarme directamente vía correo o mensaje privado
  #10 (permalink)  
Antiguo 15/01/2011, 07:39
 
Fecha de Ingreso: marzo-2002
Mensajes: 338
Antigüedad: 22 años
Puntos: 0
Respuesta: Seguridad de /tmp y /var/tmp

Hola,

Estoy tratando de asegurar /tmp siguiendo tu guia, pero en el paso:

Cita:
mount -o loop,noexec,nosuid,nodev,rw /usr/tmpDSK /tmp
me da este error:
root@server [/usr]# mount -o loop,noexec,nosuid,nodev,rw /usr/tmpDSK /tmp
mount: no permission to look at /dev/loop#

Puedes ayudarme?

Gracias.
  #11 (permalink)  
Antiguo 15/01/2011, 09:15
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Respuesta: Seguridad de /tmp y /var/tmp

Cita:
Iniciado por War77 Ver Mensaje
Hola,

Estoy tratando de asegurar /tmp siguiendo tu guia, pero en el paso:



me da este error:
root@server [/usr]# mount -o loop,noexec,nosuid,nodev,rw /usr/tmpDSK /tmp
mount: no permission to look at /dev/loop#

Puedes ayudarme?

Gracias.
Es un VPS virtuozzo u openvz?
  #12 (permalink)  
Antiguo 15/01/2011, 12:10
 
Fecha de Ingreso: marzo-2002
Mensajes: 338
Antigüedad: 22 años
Puntos: 0
Respuesta: Seguridad de /tmp y /var/tmp

Cita:
Iniciado por Datacenter1 Ver Mensaje
Es un VPS virtuozzo u openvz?
Hola, corre bajo SolusVM (CENTOS 5)

Saludos.
  #13 (permalink)  
Antiguo 16/01/2011, 08:12
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Respuesta: Hardening/Optimización de Servidores

Ok, debes tener un openvz. ello no tienen un sistema de archivos real, por lo que el tips de hardening para /tmp no funcionará en VPS con virtuozzo/openvz

No estoy seguro si es posible hacerlo sin acceso al nodo, probablemente tu proveedor podrá decirte la forma de hacerlo

Etiquetas: hardering, optimización
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 22:29.