Archivos de la categoría ‘Linux’

No existe un día en el que no escuchemos al menos una par de ataques a diferentes sitios. Como podemos suponer en general los administradores de sistemas tienen que estar al pendiente de todas las posibles vulnerabilidades para tratar de subsanarlas (XSS, SQLi, Bugs, CVE’s, etc). Un atacante solo necesita una. Al día de hoy que se escribe este artículo, el 25% de los ataques a los sistemas web, y el robo de información se produce mediante SQL Injection (SQLi).

Un ataque de SQLi, sucede generalmente cuando se hace un chequeo incorrecto de las variables usadas en los formularios o los campos de entrada de texto de las diferentes aplicaciones (por lo general Aplicaciones WEB). Un ataque de SQLi, puede ir desde lo más simple (obtener accesos a una aplicación), hasta obtener un dump completo de la base de datos o información restringida, en general se puede hacer un simple query como:
' HAVING 'x'='x'--
hasta un
a' AND (SELECT CAST(CHAR(10) + COUNT + CHAR(10) AS INT) FROM (SELECT CAST(COUNT(name) AS VARCHAR) AS COUNT FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'clientes' ) ) NataS ) = 1 OR 'perro' = 'gato' AND ID_Cliente = 'a (por decir poco).

Database Firewall es la primer linea de defensa de Oracle para protección de las Bases de datos (es una solución heterogénea). Su aparición se debe a que las actuales herramientas de aseguramiento no son funcionales contra ataques de este tipo.

Database firewall, funciona como un firewall de redes normal… a diferencia que únicamente se encarga de validar las sentencias SQL que pasan por la caja. Que es lo que hace a DBFW diferente:

  • Implementación medianta listas blancas, listas negras y de excepción. A diferencia de otras herramientas que trabajan mediante listas negras para bloquear sentencias que no son válidas, lo que vuelve complejo la protección debido a que existen miles de formas de generar el mismo resultado.
  • Puede trabajar inline y offline, ademas de generar monitoreo y bloqueo.
  • Alertas en tiempo real
  • Soporte para múltiples bases de datos: Oracle, MSSQL, Sybase y DB2
  • Es un software que se instala en equipo común, y que para que este soporte mayor cantidad de TPS, solo necesita mayor cantidad de RAM y CPU

A diferencia de otros proveedores de seguridad de bases de datos que identifican eventos fuera de la política de seguridad mediante expresiones regulares, DBFW entiende el significado y las intenciones de las sentencias.

DBFW implementa un enfoque basado en whitelists que sólo permite que se envíen a la base de datos las sentencias SQL correctas, y aprende de las sentencias SQL que desea controlar. El algoritmo de DBFW va más allá de la sintaxis y se acerca al significado antes de que se envíe a la base de datos. Cuando la sentencia se analiza, se clasifica en un “cluster” según la estructura de la sentencia y se proporciona un valor hash único que identifica de manera eficiente si el SQL se ha registrado o puesto en la whitelist. Mediante la comprensión de la gramática, el ataque de inyección y otras sentencias que no cumplan con las políticas se detectan como anomalías.

DBFW esta compuesto por tres partes:

  • DBFW Server, es el encargado de aplicar las políticas, generar el monitoreo, accionar las alertas, etc. Si lo vemos en una infraestructura de red común, este se convierte en el FW que filtra todas las peticiones de red (solo que en este caso únicamente son sentencias SQL).
  • DBFW Management Server, es el servidor que guarda los reportes sobre la base de datos, y aplica las configuraciones a los diferentes DBFW Servers que tengamos en la infraestructura. También genera los reportes que se le soliciten
  • DBFW Analyzer, se encarga de analizar el conjunto de sentencias inicial y de gestionar las diferentes políticas, crearlas, generar las listas negras, blancas, etc

En las siguientes entradas, aprenderemos a instalar, configurar, gestionar y crear un sizing adecuado en base a nuestra infraestructura.

Happy Hacking!

—–
Entrada generada por:
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio

Anuncios

Actualmente mantener seguro un sistema se vuelve una necesidad mas que impecable.

Rara vez pasa un día sin noticias sobre un nuevo exploit para alguna vulnerabilidad, un método más eficaz de distribuir SPAM o algún robo de datos personales y/o confidenciales de una empresa y/o organismo gubernamental (vamos todos podemos recordar ahora que esta presente el caso de PSN-Sony, RSA, el RENAUT, etc).

La seguridad es un reto permanente (y seguramente imposible), no hay escasez de tecnología diseñada para frustrar los asaltos a la informática, y sin embargo se siguen poniendo en peligro (y con mucho éxito) los sistemas y las redes… y claro el factor común en todos es el “Error o descuido” humano… desde el propio código que se genera, hasta la administración que realizan los “Sysadmins”.

El parche que les presento es para el kernel de linux en su versión 2.6.38.5 y  combina las funcionalidad des dos grandes de la seguridad RSBac  y PAX. Para todos aquellos que no conozcan estos proyectos les doy una introducción, sin embargo los exhorto a conocerlos desde sus páginas.

RSBAC (Rule Set Based Access Control), es a grandes rasgos un framework para el control de acceso. Su característica principal es su modularidad y se puede decir que es una implementación de la Estructura Generalizada para el Control de Acceso (GFAC) de Abrams y LaPadula. Las decisiones para validar la operación que se solicita, se basan en el tipo de acceso, el motivo del mismo, los atributos del solicitante y el objetivo. Esto implica que hasta los accesos a la red pueden ser controlados por individuo y/o por aplicación.

PAX es un parche hacia el kernel que introduce mecanismos adicionales de protección contra bugs en el software protegiendonos de ataques de corrupción de memoria. Para realizar esta protección hace uso de dos “técnicas”:

  1. NOEXEC, que marca los segmentos de memoria donde residen la pila y el heap como no ejecutables, de forma de forma que aquellos exploits que se alojen en estás áreas simplemente fallarán.
  2. ASLR(Address Space Layout Randomization), que asigna de manera aleatoria las direcciones dadas a peticiones de accesos de memoria, haciendo inútiles los exploits que dependen del manejo contiguo de direcciones para saber donde están situadas las regiones de memoria de las tareas.

Es importante saber que el principal objetivo de PAX no es descubrir o arreglar bugs en los desarrollos, sino protegernos contra ataques hacia estas deficiencias de programación.

La instalación del parche es muy sencilla, solo debemos descargar la versión del kernel 2.6.38.5 desde aquí y seguidamente obtener el parche desde aquí o desde aquí. Ahora bien la aplicación del parche, configuración del kernel y la instalación (a la debian), la describo a continuación:

  • Descomprimimos el kernel en una ruta, digamos $KERNEL_SOURCE_DIR
  • Copiamos el parche dentro de $KERNEL_SOURCE_DIR
  • Aplicamos el parche: patch -p0 < patch_linux2.6.38.5_pax_rsbac_1.4.5.patch
  • Entramos a la carpeta que tiene los fuentes del kernel, carpeta que denominaremos $KERNEL_SOURCE.
  • Limpiamos el kernel, para ello podemos hacer un make clean o make-kpkg clean, este último lo podemos encontrar en los repositorios de Debian y es la herramienta que usaremos para instalar el kernel. Si desean mas información sobre este comando pueden consultar su manual o este excelente tutorial
  • Hacemos un make menuconfig para configurar las opciones del kernel. Si poseen un kernel anterior pueden copiar el .config. La configuración de PAX y RSbac se encuentran en la sección Security, y pueden tomar como base las siguientes configuraciones, para PAX:

    # PaX Control
    #
    CONFIG_PAX_SOFTMODE=y
    CONFIG_PAX_EI_PAX=y
    CONFIG_PAX_PT_PAX_FLAGS=y
    # CONFIG_PAX_NO_ACL_FLAGS is not set
    CONFIG_PAX_HAVE_ACL_FLAGS=y
    # CONFIG_PAX_HOOK_ACL_FLAGS is not set
    #
    # Non-executable pages
    #
    CONFIG_PAX_NOEXEC=y
    CONFIG_PAX_PAGEEXEC=y
    CONFIG_PAX_SEGMEXEC=y
    CONFIG_PAX_EMUTRAMP=y
    CONFIG_PAX_MPROTECT=y
    CONFIG_PAX_ELFRELOCS=y
    #
    # Address Space Layout Randomization
    #
    CONFIG_PAX_ASLR=y
    CONFIG_PAX_RANDKSTACK=y
    CONFIG_PAX_RANDUSTACK=y
    CONFIG_PAX_RANDMMAP=y
    #
    # Miscellaneous hardening features
    #
    CONFIG_PAX_MEMORY_SANITIZE=y
    # CONFIG_PAX_MEMORY_STACKLEAK is not set
    CONFIG_PAX_REFCOUNT=y

    Y para RSbac:

    # Security options
    #
    CONFIG_RSBAC=y
    #
    # General RSBAC options
    #
    # CONFIG_RSBAC_INIT_THREAD is not set
    CONFIG_RSBAC_PROC=y
    CONFIG_RSBAC_INIT_CHECK=y
    # CONFIG_RSBAC_NO_WRITE is not set
    # CONFIG_RSBAC_MSDOS_WRITE is not set
    CONFIG_RSBAC_AUTO_WRITE=5
    CONFIG_RSBAC_RCU_RATE=1000
    CONFIG_RSBAC_LIST_MAX_HASHES=128
    CONFIG_RSBAC_LIST_CHECK_INTERVAL=1800
    CONFIG_RSBAC_LIST_STATS=y
    CONFIG_RSBAC_LIST_TRANS=y
    CONFIG_RSBAC_LIST_TRANS_MAX_TTL=3600
    CONFIG_RSBAC_LIST_TRANS_RANDOM_TA=y
    # CONFIG_RSBAC_FD_CACHE is not set
    CONFIG_RSBAC_DEBUG=y
    # CONFIG_RSBAC_DEV_USER_BACKUP is not set
    CONFIG_RSBAC_SECOFF_UID=666
    # CONFIG_RSBAC_INIT_DELAY is not set
    CONFIG_RSBAC_GEN_NR_P_LISTS=4
    CONFIG_RSBAC_UM=y
    CONFIG_RSBAC_UM_DIGEST=y
    CONFIG_RSBAC_UM_USER_MIN=2000
    CONFIG_RSBAC_UM_GROUP_MIN=2000
    CONFIG_RSBAC_UM_EXCL=y
    CONFIG_RSBAC_UM_MIN_PASS_LEN=6
    CONFIG_RSBAC_UM_NON_ALPHA=y
    CONFIG_RSBAC_UM_PWHISTORY=y
    CONFIG_RSBAC_UM_PWHISTORY_MAX=8
    CONFIG_RSBAC_UM_ONETIME=y
    CONFIG_RSBAC_UM_ONETIME_MAX=100
    CONFIG_RSBAC_UM_VIRTUAL=y
    CONFIG_RSBAC_UM_VIRTUAL_ISOLATE=y

    #
    # RSBAC networking options
    #
    CONFIG_RSBAC_NET=y
    CONFIG_RSBAC_NET_DEV=y
    # CONFIG_RSBAC_NET_DEV_VIRT is not set
    CONFIG_RSBAC_IND_NETDEV_LOG=y
    CONFIG_RSBAC_NET_OBJ=y
    # CONFIG_RSBAC_NET_OBJ_RW is not set
    CONFIG_RSBAC_IND_NETOBJ_LOG=y
    # CONFIG_RSBAC_MAINT is not set
    #
    # Decision modules (policy) options
    #
    CONFIG_RSBAC_REG=y
    CONFIG_RSBAC_REG_SAMPLES=y
    CONFIG_RSBAC_AUTH=y
    CONFIG_RSBAC_AUTH_AUTH_PROT=y
    CONFIG_RSBAC_AUTH_OTHER_PROT=y
    CONFIG_RSBAC_AUTH_UM_PROT=y
    # CONFIG_RSBAC_AUTH_DAC_OWNER is not set
    # CONFIG_RSBAC_AUTH_ALLOW_SAME is not set
    # CONFIG_RSBAC_AUTH_GROUP is not set
    # CONFIG_RSBAC_AUTH_LEARN is not set
    CONFIG_RSBAC_RC=y
    CONFIG_RSBAC_RC_AUTH_PROT=y
    CONFIG_RSBAC_RC_UM_PROT=y
    CONFIG_RSBAC_RC_GEN_PROT=y
    # CONFIG_RSBAC_RC_BACKUP is not set
    CONFIG_RSBAC_RC_NET_DEV_PROT=y
    CONFIG_RSBAC_RC_NET_OBJ_PROT=y
    CONFIG_RSBAC_RC_NET_OBJ_UNIX_PROCESS=y
    CONFIG_RSBAC_RC_LEARN=y
    CONFIG_RSBAC_RC_LEARN_TA=0
    CONFIG_RSBAC_RC_NR_P_LISTS=8
    CONFIG_RSBAC_RC_KERNEL_PROCESS_TYPE=999999
    CONFIG_RSBAC_ACL=y
    # CONFIG_RSBAC_ACL_SUPER_FILTER is not set
    CONFIG_RSBAC_ACL_AUTH_PROT=y
    CONFIG_RSBAC_ACL_UM_PROT=y
    CONFIG_RSBAC_ACL_GEN_PROT=y
    # CONFIG_RSBAC_ACL_BACKUP is not set
    CONFIG_RSBAC_ACL_LEARN=y
    CONFIG_RSBAC_ACL_LEARN_TA=0
    CONFIG_RSBAC_ACL_NET_DEV_PROT=y
    CONFIG_RSBAC_ACL_NET_OBJ_PROT=y
    CONFIG_RSBAC_MAC=y
    CONFIG_RSBAC_MAC_DEF_INHERIT=y
    CONFIG_RSBAC_MAC_SMART_INHERIT=y
    CONFIG_RSBAC_MAC_AUTH_PROT=y
    CONFIG_RSBAC_MAC_UM_PROT=y
    CONFIG_RSBAC_MAC_GEN_PROT=y
    # CONFIG_RSBAC_MAC_LIGHT is not set
    CONFIG_RSBAC_MAC_TRUSTED_READ=y
    # CONFIG_RSBAC_MAC_RESET_CURR is not set
    CONFIG_RSBAC_MAC_LOG_LEVEL_CHANGE=y
    CONFIG_RSBAC_MAC_NET_DEV_PROT=y
    CONFIG_RSBAC_MAC_NET_OBJ_PROT=y
    CONFIG_RSBAC_MAC_NR_P_LISTS=4
    CONFIG_RSBAC_PAX=y
    CONFIG_RSBAC_PAX_DEFAULT=y
    CONFIG_RSBAC_PAX_PAGEEXEC=y
    CONFIG_RSBAC_PAX_EMUTRAMP=y
    CONFIG_RSBAC_PAX_MPROTECT=y
    CONFIG_RSBAC_PAX_RANDMMAP=y
    CONFIG_RSBAC_PAX_RANDEXEC=y
    CONFIG_RSBAC_PAX_SEGMEXEC=y
    CONFIG_RSBAC_DAZ=y
    CONFIG_RSBAC_DAZ_SELECT=y
    CONFIG_RSBAC_DAZ_CACHE=y
    CONFIG_RSBAC_DAZ_TTL=86400
    # CONFIG_RSBAC_DAZ_PERSIST is not set
    CONFIG_RSBAC_DAZ_DEV_MAJOR=250
    CONFIG_RSBAC_CAP=y
    CONFIG_RSBAC_CAP_PROC_HIDE=y
    CONFIG_RSBAC_CAP_AUTH_PROT=y
    CONFIG_RSBAC_CAP_LOG_MISSING=y
    CONFIG_RSBAC_CAP_LEARN=y
    CONFIG_RSBAC_CAP_LEARN_TA=0
    CONFIG_RSBAC_JAIL=y
    CONFIG_RSBAC_JAIL_NET_ADJUST=y
    CONFIG_RSBAC_JAIL_NET_DEV_PROT=y
    CONFIG_RSBAC_JAIL_NR_P_LISTS=4
    CONFIG_RSBAC_JAIL_LOG_MISSING=y
    CONFIG_RSBAC_RES=y
    CONFIG_RSBAC_FF=y
    CONFIG_RSBAC_FF_AUTH_PROT=y
    CONFIG_RSBAC_FF_UM_PROT=y
    CONFIG_RSBAC_FF_GEN_PROT=y
    CONFIG_RSBAC_PM=y
    CONFIG_RSBAC_PM_AUTH_PROT=y
    CONFIG_RSBAC_PM_GEN_PROT=y
    #
    # Softmode and switching
    #
    CONFIG_RSBAC_SOFTMODE=y
    CONFIG_RSBAC_SOFTMODE_SYSRQ=y
    CONFIG_RSBAC_SOFTMODE_IND=y
    CONFIG_RSBAC_SWITCH=y
    # CONFIG_RSBAC_SWITCH_ON is not set
    CONFIG_RSBAC_SWITCH_BOOT_OFF=y
    CONFIG_RSBAC_SWITCH_REG=y
    CONFIG_RSBAC_SWITCH_AUTH=y
    CONFIG_RSBAC_SWITCH_RC=y
    CONFIG_RSBAC_SWITCH_ACL=y
    CONFIG_RSBAC_SWITCH_MAC=y
    CONFIG_RSBAC_SWITCH_PAX=y
    CONFIG_RSBAC_SWITCH_DAZ=y
    CONFIG_RSBAC_SWITCH_CAP=y
    CONFIG_RSBAC_SWITCH_JAIL=y
    CONFIG_RSBAC_SWITCH_RES=y
    CONFIG_RSBAC_SWITCH_FF=y
    CONFIG_RSBAC_SWITCH_PM=y
    #
    # Logging
    #
    CONFIG_RSBAC_IND_LOG=y
    CONFIG_RSBAC_IND_USER_LOG=y
    CONFIG_RSBAC_IND_PROG_LOG=y
    CONFIG_RSBAC_LOG_PROGRAM_FILE=y
    CONFIG_RSBAC_LOG_FULL_PATH=y
    CONFIG_RSBAC_MAX_PATH_LEN=512
    # CONFIG_RSBAC_LOG_PSEUDO is not set
    CONFIG_RSBAC_SYSLOG_RATE=y
    CONFIG_RSBAC_SYSLOG_RATE_DEF=1000
    CONFIG_RSBAC_RMSG=y
    CONFIG_RSBAC_RMSG_MAXENTRIES=200
    CONFIG_RSBAC_RMSG_NOSYSLOG=y
    # CONFIG_RSBAC_LOG_REMOTE is not set
    # CONFIG_RSBAC_SYM_REDIR is not set
    # CONFIG_RSBAC_ALLOW_DAC_DISABLE is not set
    #
    # Other RSBAC options
    #
    # CONFIG_RSBAC_SECDEL is not set
    CONFIG_RSBAC_RW=y
    CONFIG_RSBAC_IPC_SEM=y
    CONFIG_RSBAC_DAC_OWNER=y
    CONFIG_RSBAC_DAC_GROUP=y
    CONFIG_RSBAC_PROC_HIDE=y
    CONFIG_RSBAC_FSOBJ_HIDE=y
    CONFIG_RSBAC_FREEZE=y
    CONFIG_RSBAC_FREEZE_UM=y
    # CONFIG_RSBAC_SYSLOG is not set
    CONFIG_RSBAC_IOCTL=y
    CONFIG_RSBAC_USER_CHOWN=y
    CONFIG_RSBAC_DAT_VISIBLE=y
    # CONFIG_RSBAC_NO_DECISION_ON_NETMOUNT is not set
    # CONFIG_RSBAC_ENFORCE_CLOSE is not set
    CONFIG_RSBAC_USER_MOD_IOPERM=y
    CONFIG_RSBAC_FAKE_ROOT_UID=y
    CONFIG_RSBAC_XSTATS=y

  • Una vez configurado solo resta compilarlo, que en el caso de hacerlo sobre debian la forma más sencilla es: make-kpkg --initrd kernel_image kernel_headers kernel_source kernel_doc o si poseen varios procesadores pueden subir el número de trabajos concurrentes siendo el máximo (N*2) donde N es el número de procesadores que poseen, de forma que la linea seria: make-kpkg -j N --initrd kernel_image kernel_headers kernel_source kernel_doc , lo cual genera los correspondientes archivos .deb para su instalación con dpkg

Happy Hacking… y buena suerte… todos la necesitamos 😉

Entrada generada originalmente para InsecureMX

—–
Entrada generada por:
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio <mschejtman@nekasys.com> <natashell@esdebian.org>

Soy un amante a utilizar eficientemente los recursos de las computadoras. En general nunca instalalo cosas que puedan ocupar mas RAM de lo debido solo porque se ven “bonitas”, por ejemplo, el reproductor de audio que tiene la Laptop del trabajo es vía comandos y funciona por un demonio (MPD), mi entorno gráfico usa IceWM y en general para cada aplicación trato de usar lo necesario y solo eso. Dicho eso pasemos al tema en cuestion.

Si bien las máquinas virtuales nos permiten portar de un lado a otro todo un ambiente, también es cierto que implican un desperdicio en recursos, más aun cuando estamos hablando de que se montan en computadoras con “moderados” recursos. Citado lo anterior y puesto que me disponía a realizar toda una demo de lo que es Oracle IDM11g, sus características e integración en un todo (para más información visita aquí), me ví en la tarea de realizar la instalación sobre mi sistema Operativo (AKA Debian GNU/Linux). Las siguientes son las características del entorno y de lo que instale:

  • Procesador: 2 Intel i7
  • RAM: 8GB
  • Sistema Operativo: Debian GNU/Linux sid-experimental
  • Base de datos: Oracle Database 11.2.0.1.0
  • Weblogic: Weblogic 10.3.3
  • SOA Suite: Ver. 11.1.1.3
  • IDM: Ver. 11.1.1.3
  • IAM: Ver. 11.1.1.3

Sin más preámbulos vamos a los pasos necesarios:

  1. Preparación del Entorno, debemos hacer algunas configuraciones previas en nuestro sistema para albergar la instalación, las siguientes son los comandos y/o modificaciones que se deben realizar:
    • Crear el archivo que marca el release de Redhat en el que estamos (estaríamos):
      echo "Red Hat Enterprise Linux Server release 5.4 (Tikanga)" > /etc/redhat-release
    • Ejecutar el siguiente comando para instalar las dependencias necesarias:
      aptitude install pdksh odbcinst1debian2 unixodbc-dev unixodbc unixodbc-bin libaio1 libaio-dev sysstat isag elfutils libelf1 binutils-dev binutils libstdc++5 cpp-4.1 gcc-4.1 gcc-4.1-multilib
    • Agregar las siguientes líneas en el archivo de configuración de /etc/sysctl.conf (o generar algún archivo dentro de /etc/sysctl.d):
      ###############################3
      # Oracle Parameters
      kernel.shmall = 2097152
      kernel.shmmax = 2147483648
      kernel.shmmni = 4096
      kernel.sem = 250 32000 100 128
      fs.file-max = 6815744
      net.ipv4.ip_local_port_range = 9000 65500
      net.core.rmem_default = 4194304
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 1048576
      fs.aio-max-nr = 1048576

      Finalmente para que el sistema tome los cambios ejecutamos: sysctl -p
    • Crear los grupos de sistema necesarios para la base de datos:
      addgroup --system oinstall
      addgroup --system dba
    • Obviamente debemos agregar a nuestro usuario a los grupos generados:
      usermod -a -G dba,oinstall $USER
    • Ejecutar los siguientes comandos para generar los enlaces necesarios por el instalador de Oracle:
      ln -s /usr/bin/awk /bin/awk
      ln -s /usr/bin/rpm /bin/rpm
      ln -s /usr/bin/basename /bin/basename
    • Agregar las siguientes líneas al archivo /etc/security/limits.conf:
      @dba soft nproc 2047
      @dba hard nproc 16384
      @dba soft nofile 1024
      @dba hard nofile 65536
    • Asegurarnos de usar (de preferencia) el compilador de C (AKA gcc4.1)
    • Reiniciar sesión con el usuario para que tome los cambios.
  2. Instalación de la base de datos. Notaremos que saltarán varios errores respecto a las dependencias de paquetes, podemos omitirlos y seleccionar las opciones de instalación de la base de datos.
  3. Crearemos una base de datos que tenga una distribución asignada de 2.5GB (SGA), ademas de ampliar a 500 el numero de procesos y cursores abiertos.
  4. Utilizamos el RCU para crear los esquemas que necesitemos. En este caso se ocuparon todos los de Identity Management, lo que en automático instalo algunos otros como el de SOA.
  5. Instalamos el servidor de weblogic (debe ser exactamente la versión 10.3.3).
  6. Instalamos la SOA Suite 11.1.1.2, esto creará el home $SOA_HOME
  7. Instalamos el Patch-Set 11.1.1.3 de SOA Suite
  8. Instalamos IDM 11.1.1.2, esto creara el home $IDM_HOME
  9. Instalamos el Patch-Set de IDM 11.1.1.3
  10. Instalamos la IAM 11.1.13, esto creará el home $IAM_HOME
  11. Configuramos las opciones de Identity Management según las necesitemos, para ello usamos el script $IDM_HOME/bin/config.sh, cabe destacar que debemos seleccionar la opción de crear un nuevo dominio, puesto que no lo hemos creado hasta este momento.
    El script creará y extenderá el dominio, además de configurar una instancia de OID, OVD, ODSM y OIF.
  12. Ahora es el turno de configurar el IAM, para ello ejecutaremos el script $IAM_HOME/common/bin/config.sh, y puesto que queremos instalar todo sobre el mismo dominio, solo es necesario extenderlo.
    Finalizado el script, deberemos reiniciar todo el Weblogic (osea el dominio generado en el paso anterior), para que tome los cambios.

Les recomiendo generar el archivo boot.properties para no depender de introducir manualmente el password y el usuario del administrador de weblogic (esto claro excepto la primer vez que es obligatorio para que se generen los directorios de los servidores nuevos). Como se pueden dar cuenta, los pasos estan explicados a grandes rasgos, esto es porque prácticamente la instalación en un escenario donde se usarán todos los productos en un solo dominio, sin H-A, etc, sigue un esquema siguiente-siguiente y no es necesario deternos a explicar algún paso intermedio.

Finalmente, para arrancar los servicios, pueden usar cualquiera de las siguientes opciones:

  1. Método usando Enterprise Manager:
    #Arrancar el listener de la base de datos
    lsnrctl start
    sqlplus "/as sysdba" < ../servers/$ADMINSVR_NAME/logs/consoleAdmin.log 2>&1 &

    #Arrancar el nodeManager:
    cd $WLS_HOME/server/bin
    nohup ./startNodeManager.sh > $DOMAIN_HOME/logs/nodeManager.log 2>&1 &

    #Iniciar los diferentes ManagedServers desde el EM
    http://$HOST:$PORT/em

    #Si instalaron todo IDM, notarán que deben levantar los siguientes: oaam_admin_server1, oaam_server_server1, oam_server1, oim_server1, soa_server1, wls_ods1, wls_oif1.

  2. Método usando linea de comandos:
    #Arrancar el listener de la base de datos
    lsnrctl start
    sqlplus "/as sysdba" < ../servers/$ADMINSVR_NAME/logs/consoleAdmin.log 2>&1 &

    #Arrancar los managed Servers, si instalaron todo IDM, notarán que deben levantar los siguientes: oaam_admin_server1, oaam_server_server1, oam_server1, oim_server1, soa_server1, wls_ods1, wls_oif1.:
    cd $WLS_HOME/server/bin
    nohup ./startManagedWebLogic.sh $SERVER_NAME http://$HOST:$PORT > ../servers/$SERVER_NAME/logs/console.log 2>&1 &

Y listo, tenemos todo #IDM11g instalado y configurado en nuestro flamante Debian GNU/Linux. Consumiendo solo los recursos necesarios para ello.
Dudas, quejas y/o aclaraciones son bien recibidas.

Happy Hacking!

—–
Entrada generada por:
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio <mschejtman@nekasys.com>

Debido a unos adaptadores que tuve que realizar para facilitar la tarea de gestionar tareas repetitivas sobre Oracle Identity Manager (AKA OIM), me hice la tarea de abrir Jdeveloper (version 11.1.1.3) que tenía instalada, cuando mi sorpresa es que ya no se veía nada excepto una fea pantalla gris.
Las características de mi entorno gráfico son:
Display: 1600*900
Driver: ATI propietario
Xserver ver. 7.5
Distribucion: Debian GNU/Linux Sid-Experimental

Temiendo que todo se debía al nuevo driver de ATI (y puesto que no lo iba a desisntalar) hice el upgrade a la última versión del JDeveloper. Los resultados fueron similares.

Buscando en foros, recomendaban exportar la siguiente variable:
AWT_TOOLKIT=MToolkit
La cual tampoco tuvo resultados exitosos.

El problema radica en la resolución de mi monitor, que por alguna razón no es soportada por el JDeveloper, por ello, la solución se reduce en instalar xserver-xephyr de forma que podamos generar un Xserver con una menor resolución sobre la cual se ejecute JDeveloper. Para ello después de instalar Xephyr, debes agregar las siguientes lineas en el archivo <JDEVELOPER_HOME>/jdev/bin/jdev, justo antes de la ultima línea:

Xephyr :2 -ac -screen 1280x768 &
metacity --display :2 &
export DISPLAY=:2

Recomiendo iniciar con metacity, puesto que icewm no gestiona adecuadamente los bordes del jdeveloper.

Happy Hacking!

————-
Entrada generada por:
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio <mschejtman@nekasys.com>