PHP seguridad web, securizar aplicación

Algunas veces debemos administrar aplicaciones PHP que para nuestra sorpresa han sido hackeadas, han sustituido la página de inicio, añadido código en la cabecera de la página, insertado código malicioso entre los ficheros de la aplicación (por ejemplo para enviar email spam), etc…

Dejo algunas imágenes:

ataque 405 email sender ataque islamic ghosts team Ataque merdeka

Este tipo de ataques es más probable sufrirlos si nuestra aplicación es algo relativamente popular, WordPress, Joomla, Drupal, etc…

El plan de mejora de seguridad incluye los procesos:

Vamos por partes:

Continue reading

Instalar versiones java, uso de diferentes versiones en Linux

Esto puede parecer una trivialidad, pero he visto a mucha gente no tener nada claro como tener en una misma máquina, varios servidores de aplicaciones Java ejecutando sobre diferentes versiones.

Para comenzar por cuestiones de seguridad lo más recomendable es que por cada servidor de aplicaciones que tengamos en ejecución, el propietario de la instalación sea un usuario diferente, este mismo usuario es el que ejecuta el servidor de aplicaciones.

En resumidas cuentas, para cada usuario podemos configurar su entorno de ejecución por defecto, de tal forma que no es necesario tocar nada en los servidores de aplicaciones para indicar que Java debe usar.

Pongamos el ejemplo de que queremos ejecutar Tomcat 8, con Java 8 y Tomcat 6 con Java 1.5.

Continue reading

Apache SSL JBoss, securizar canal de comunicación Apache y JBoss mediante SSL

Recientemente un cliente ha pedido una instalación securizada en en todo el cirtucito de información, es decir:

todo sslUsualmente lo que se hace el configurar Apache con SSL y la comunicación interna entre Apache y JBoss se realiza con el protocolo AJP, de esta forma:

no todo sslEl protocolo AJP tiene como ventaja frente al http, que es una comunicación binaria en lugar de texto, este reduce el ancho de banda necesario para transmitir la misma información (se estima que se reduce el ancho de banda necesario en un 25%).

Continue reading

Apache SSL certificado cliente, configurar Apache para permitir solo accesos SSL con certificado instalado en cliente

Vamos a configurar Apache (sobre un Ubuntu 12) para permitir el acceso de clientes que tengan un certificado SSL personal instalado, primero tenemos que crear algunas estructuras para poder más tarde trabajar con listas de revocación.

Lo primero es tener instalado openssl:

ubuntu@ip-10-112-31-82:~$ sudo aptitude install openssl

Crearemos una estructura de directorios que se ajuste a las rutas esperadas por el fichero de configuración openssl.cnf:

Source   
ubuntu@ip-10-112-31-82:~$ mkdir -p /vol/apache2_certs
ubuntu@ip-10-112-31-82:~$ cd /vol/apache2_certs/
ubuntu@ip-10-112-31-82:/vol/apache2_certs$ sudo cp /etc/ssl/openssl.cnf .

El fichero openssl.cnf define una estructura de directorios para poder trabajar entre otras cosas con listas de denegación de certificados, vamos a editarlo y moficicar la linea:

Continue reading

Apache 2.2 autenticación básica contra un LDAP

La autenticación más básica que podemos configurar en un Apache es el acceso mediante fichero, pero en esta entrada vamos  a ver como configurar Apache para que autentique los usuarios contra un LDAP.

Las ventajas son evidentes, podemos usar un directorio centralizado de autenticación LDAP, ya sea para validarnos en aplicaciones o para acceder a los servicios web de la empresa.

Para los ejemplos se ha usado un Ubuntu 12.04, lo primero que tenemos que hacer es instalar los módulos de Apache necesarios y activarlos:

Source   
sudo aptitude install libapache2-mod-ldap-userdir
sudo a2enmod authnz_ldap

Continue reading

JBoss 7 ampliación dominio (nuevo servidor en máquina externa al controlador)

Esta entrada es la continuación de Instalación Dominio JBoss 7.

Partiendo de la base del anterior artículo, vamos a ampliar el dominio con un nuevo servidor en otra máquina aumentando la disponiblidad del servicio.

La nueva máquina se llamará clu02 (IP 192.168.128.221), se conectará a clu01 (Domain Controller (DC) en IP 192.168.128.220) y la estructura final será:

Pasos seguir:

Continue reading

Instalación Dominio JBoss 7 (varios servers en la misma máquina)

Aunque tengo bastante experiencia en servidores de aplicaciones (Weblogic sobretodo y Apache Tomcat), este es la primera entrada que voy a hacer sobre esto.

La versión 7 de JBoss podemos decir que es impresionante (http://www.jboss.org/jbossas), respecto a la versión 6. Todo está mucho más organizado y permite la creación de dominios y grupos de servidores donde desplegar/mantener de forma centralizada las aplicaciones.

En este caso vamos a montar un dominio en JBoss 7, preparado para alta disponiblidad y replicación de sesiones (más adelante configuraremos un balanceador para probar todo esto).

La documentación oficial se encuentra en:

Continue reading