Simplificando los despliegues en Jboss con Ansible

Existen diversas maneras de organizar los despliegues en Jboss como habíamos visto: fabric, interactuando con la API REST o con scripts personalizados que nos montemos al uso. Ansible dispone de un módulo para Jboss que podemos añadir a la lista de métodos.

Su uso es muy sencillo, aunque la limitación que tiene al menos de momento es que no permite desplegar en dominios, por lo que sólo nos servirá para instancias standalone.

En el entorno dispongo de:

  • Nodo central (mi máquina) desde donde voy a lanzar el despliegue. Tengo una relación de confianza con clave pública con el nodo remoto para poder conectar por SSH sin contraseña.
  • Nodo remoto con IP 192.168.1.154 donde está la instancia de Jboss EAP 7.1 en la que se realizará el despliegue. Esta instancia se ejecuta con el usuario jota y tiene el deployment-scanner habilitado (necesario para que funcione el despliegue con Ansible)

Sigue leyendo

Cómo excluir reglas de fase 1 en mod_security

Existen diversas casuísticas en la exclusión de reglas de mod_security. Un procedimiento habitual suele ser limitar el ámbito de exclusión a un determinado contexto en el que por diversas razones estamos obteniendo falsos positivos de una serie de reglas problemáticas, ejemplo:

<Location /aplicacion>
    SecRuleRemoveById 920320 942200 942330 942430 980130
</Location>

Suponemos que dicha directiva excluiría las reglas 920320, 942200, 942330, 942430 y 980130 para el contexto /aplicacion. Pues bien, si estas reglas saltan en la fase 1 de procesado de mod_security la exclusión que pretendemos no va a funcionar, ya que dicha información de request aún no habrá llegado a Apache y por tanto no podrá aplicar la directiva Location para el contexto mencionado… ¡mod_security habrá bloqueado antes la request!

Sigue leyendo

Supervisión del sistema con psacct/acct y audit

Las herramientas audit y psacct/acct son de gran utilidad para tener controlado qué ocurre en nuestro sistema: qué usuarios han entrado a la máquina, acciones realizadas, procesos lanzados, etc… Aunque por el nombre puedan parecer lo mismo no lo son:

  • Audit mediante un componente integrado como subsistema del Kernel Linux se encarga de capturar las llamadas a sistema de las aplicaciones para posteriormente mandar la información de dichas llamadas al demonio auditd. Éste se encarga de procesar dicha información y generar los logs de auditoría que podemos consultar con comandos como aureport, ausearch, aulast…
  • La segunda herramienta tiene un nombre distinto según la distribución: psacct (Process Accounting) en RHEL/derivadas y acct (Accounting) en Debian/derivadas. Con esta herramienta podemos ver fácilmente qué usuarios entran a la máquina, qué comandos lanzan, etc… pudiendo detectar acciones u operaciones que comprometan la integridad del sistema.

Sigue leyendo

Clúster JGroups independiente para cada Server Group en Jboss EAP 6.x+ modo dominio

Si utilizamos Jboss en modo dominio seguramente tengamos aplicaciones agrupadas en distintos Server Groups. Éstos a su vez estarán asociados a un Profile en concreto. En caso de ser HA podría ser:

<server-groups>
    <server-group name="server-group-1" profile="ha">                                                                                                                                                     
        <jvm name="default">
            <heap size="1000m" max-size="1000m"/>
        </jvm>
        <socket-binding-group ref="ha-sockets"/>
    </server-group>
    <server-group name="server-group-2" profile="full-ha">
        <jvm name="default">
            <heap size="1000m" max-size="1000m"/>
        </jvm>
        <socket-binding-group ref="full-ha-sockets"/>
    </server-group>
</server-groups>

Sigue leyendo