martes, 4 de octubre de 2011

Como instalar KVM en CentOS 6

Esta es una guia práctica para instalar KVM en CenOS 6.

Vamos a asumir que al instalar CentOS se eligió la opción "instalación mínima"
Debemos tomar en cuenta que todas las herramientas de virtualización se encuentran en los siguientes grupos:
  • Vritualization
  • Virtualization client
  • Virtualization Platform
  • Virtualization Tools
Vamos a instalar los grupos mencionados:

# yum groupinstall "Virtualization*"
Si vamos a utilizar un entorno gráfico, entonces debemos instalar las fuentes para visualizar correctamente la aplicacion virt-manager:

# yum install dejavu-lgc-sans-fonts
A continuación verificamos si el moduulo KVM se ha cargado:

# lsmod | grep kvm
Debiera aparecer en el resultado kvm-intel o kvm-intel de acuerdo a la CPU utilizada por el servidor.

Ahora debemos reiniciar el servidor.

Creando un puente de red


Como queremos que cada máquina virtual sea directamente accesible desde afuera y no solamente desde el servidor, entonces debemos crear un puente de red.

Para esto, debemos tener instalado en nuestro servidor el paquete bridge-utils. Entonces debemos verificar que se encuentr instaldo:

# rpm -q bridge-utils
Si obtenemos respuesta quiere decir que el paquete está correctamente instalado. De no ser así debemos instalarlo con el siguiente comando:

# yum install bridge-utils
Antes de crear el puente, si tenemos definida un IP estática, el contenido del archivo /etc/sysconfig/network-scripts/ifcfg-eth0 debe verse similar a:

DEVICE=eth0
BOOTPROTO=static
HWADDR=00:14:5E:C2:1E:40
IPADDR=10.10.1.152
NETMASK=255.255.255.0
ONBOOT=yes

Por seguridad vamos a realizar una copia de seguridad del archivo:

# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root/ifcfg-eth0
En seguida crearemos nuestro archivo con el puente a partir dela configuracion de nuestra tarjeta de red:

# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
Debemos modificar ambos archivos, y deben quedar similar al siguiente ejemplo:

ifcfg-eth0ifcfg-br0
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:14:5E:C2:1E:40
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.10.1.152
NETMASK=255.255.255.0
ONBOOT=yes


Felicitaciones, el puente de red ya está configurado. Debemos revisar que la configuracion es corecta. En caso de haber cualquier error podríamos perder la conexión con el servidor a través de la interfaz eth0.

Para reiniciar el servicio de red:

# /etc/init.d/network restart
Finalmente podemos revisar nuestra configuración con el siguiente comando:

# ifconfig

jueves, 29 de septiembre de 2011

Rutas importantes de cPanel y apache

En este post vamos a revisar algunas rutas de archivos importantes de cPanel:

Apache

Archivos de configuracion: /usr/local/apache/conf
Archivo de configuracion apache: /usr/local/apache/conf/httpd.conf
Logs de Apache: /usr/local/apache/logs
Archivos web del servidor: /usr/local/apache/htdocs
Nota: los archivos web del servidor son accesibles directamente desde la dirección IP o desde el nombre del servidor.


lunes, 29 de agosto de 2011

Como evitar que los usuarios deshabiliten mod_security

Sabemos que mod_security es una gran forma de proteger nuestros servidores.

Sin embargo, en mod_security 1.x los usuarios podían deshabilitarlo en el archivo .htaccess. Existen algunos exploits que aprovechan esa vulnerabilidad en seguridad, como por ejemplo syrian shell.

No obstante, mod_security 2.x ya no es posible deshabilitarla desde archivos .htacess.

La recomendación es utilizar la versión 2.x lo antes posible.

viernes, 19 de agosto de 2011

Como prevenir que los usuarios modifiquen php.ini

Cuando usamos suPHP es posible que nuestros usuarios creen un archivo php.ini en la misma carpeta que su script, lo que les permite sobreescribir cualquier directiva de seguridad que tengamos.

Para terminar con este problema debemos editar el archivo configuracion de suphp:

# nano /opt/suphp/etc/suphp.conf

Y lo modificaremos de la siguiente forma:

[phprc_paths]
;Uncommenting these will force all requests to that handler to use the php.ini
;in the specified directory regardless of suPHP_ConfigPath settings.
application/x-httpd-php=/usr/local/lib/
application/x-httpd-php4=/usr/local/lib/
application/x-httpd-php5=/usr/local/lib/


Luego reiniciamos apache y asunto arreglado.


martes, 16 de agosto de 2011

Como limpiar una cuenta hackeada

Como administradores a veces nos enfrentamos a que alguna de nuestras cuentas han sido hackeadas.
Primero que todo debemos restaurar los archivos originales en caso de que haya tratado de un defacement. En un defacement, el delincuente modifica el archivo index del sitio para poner algún tipo de mensaje de su interés.

Después que restablecimos la apariencia del sitio web dañado debemos buscar los scripts que el atacante habrá dejado en la cuenta con la finalidad de repetir una y otra vez su hazaña.

Para eso utilizaremos el comando:

cd /home/cuenta_atacada/public_html
find . -mtime -1


Con el primer comando nos moveremos a la raíz de la cuenta atacada. Debemos reemplazar cuenta_atacada por el username real de la cuenta que fue atacada.

El segundo comando nos muestra una lista de todos los archivos que fueron modificados durante las últimas 24 horas. Si nuestra cuenta fue hackeada antes de un día, debemos cambiar el -1 por un -2 para dos días, -3 para tres días, y así sucesivamente.

Identificados los scripts procedemos a eliminarlos o a clasificarlos según sean las políticas de nuestra administración.

Luego debemos revisar las bases de datos para ver si nuestro atacante se creó una cuenta de usuario administrador, cosa típica para sitios con Joomla! u OsCommerce y eliminarla.

Podemos dejarlo hasta aquí, pero todavía debemos determinar cómo fue vulnerada la cuenta para poder tomar las medidas necesarias de modo de evitar que se vuelva a repetir en el futuro.


Could not fetch uid or gid for root

Es posible que alguna vez que intentamos entral al panel WHM nos encontremos con el siguiente mensaje:

Internal Server Error
Could not fetch uid or gid for : root

Por suerte la causa de este problema es muy sencilla y su solución también lo es:

Lo que pasa es que estamos tratando de ingresar como usuario root al cPanel, cuando debemos ingresar al WHM.

Probablemente estamos ingresando a:

http://www.midominio.com/cpanel

Cuando debemos ingresar a:

http://www.midominio.com/whm

Como modificar el puerto SSH

Como medida de seguridad muchos administradores quieren modificar el puerto SSH cuyo numero es 22.
Para hacerlo, basta seguir los siguientes pasos:

1. Ingrese a su servidor vía SSH

Puede utilizar un programa llamado PUTTY o bien TeraTerm. Nosotros recomendamos el segundo.

2. Modifique el puerto de acceso

Para modificar el puerto de acceso debemos ejecutar los siguientes comandos:

# nano /etc/ssh/sshd_config

En caso de que no dispongamos de la herramienta nano, podemos instalarla con el siguiente comando:

# yum install nano

Luego debemos asegurarnos de modificar los siguientes parametros:

Port 22
Protocol 2


Podemos modificar el numero de puerto al que queramos, pero no olvidemos que debe estar abierto en el firewall, o perderemos el control de nuestro servidor. Se recomienda utilizar "Protocol 2"

Finalmente tenemos que reiniciar el servicio SSH:

# service sshd restart

A partir de este momento debemos conectarnos via SSH utilizando el nuevo puerto.

Las entradas del cPanel

cPanel tiene varias entradas a las distintas zonas de trabajo.
Vamos a revisar para conocerlas para ver qué podemos hacer con nuestro cPanel:

1. Panel de control WHM

El panel de control WHM permite al usuario administrador, llamado root, o al usuario reseller, administrar las cuentas que posee dentro del servidor. Así también permite realizar y modificar todo tipo de configuraciones en los servicios de correo o de web.

Para ingresar al WHM, debemos utilizar alguna de las siguientes formas:

Forma clásica: http://www.midominio.com/whm
Forma clásica alternativa: http://whm.midominio.com
Directo al puerto sin SSL: http://www.midominio.com:2086
Directo al puerto con SSL: https://www.midominio.com:2087

Para poder ingresar al WHM debemos tener abierto el puerto 2086 o 2087 en nuestro firewall.
Si tenemos dichos puertos cerrados, debemos utilizar la forma clásica alternativa que utiliza el puerto 80.

2. Panel de control cPanel

El panel de control cPanel es la zona donde cada usuario puede administrar sus propios recursos, como sus cuentas de correo, filtros de correo, redireccionamientos, dominios adicionales, subdominios, cuentas de FTP y mucho más.

Las formas de ingreso son:


Forma clásica: http://www.midominio.com/cpanel
Forma clásica alternativa: http://cpanel.midominio.com
Directo al puerto sin SSL: http://www.midominio.com:2082
Directo al puerto con SSL: https://www.midominio.com:2083

Cuando tenemos cerrados los puertos 2082 y 2083 en nuestra red, solamente podremos utilizar la forma clásica alternativa.

3. Webmail

El webmail es la zona donde cada usuario de correo electrónico puede ingresar para leer o enviar correos, pero permite también crear autorespuestas y cambiar la contraseña.

Las formas de ingreso son:


Forma clásica: http://www.midominio.com/webmail
Forma clásica alternativa: http://webmail.midominio.com
Directo al puerto sin SSL: http://www.midominio.com:2095
Directo al puerto con SSL: https://www.midominio.com:2096

Igual que en los casos anteriores, si tenemos cerrados los puertos 2095 y 2096 solamente podremos utilizar la forma clásica alternativa.