miércoles, 12 de diciembre de 2012

Medida contra el "hotlink"

Seguramente, más de una vez nos hemos encontrado en algún servidor web que hemos montado, que otros usuarios hacen uso de archivos que tenemos alojados en nuestra máquina, normalmente imágenes o archivos multimedia.

Si nuestra intención no es evitar dicha práctica discutible, no tendríamos problemas si no fuese porque no están usando indirectamente nuestra capacidad de almacenamiento de forma fraudulenta, y lo que es peor, nuestro ancho de banda que como sabemos, es vital en la red.

Para evitar el "hotlink", podemos usar el conocido .htaccess de Apache, con el siguiente código:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

sábado, 17 de noviembre de 2012

Entorno gráfico mínimo en Linux


Son necesarios los siguientes paquetes:

     ix-window-system
     xorg

A partir de aqui, debemos añadir diferentes paquetes para que el entorno gráfico pueda funcionar correctamente:
  • Gestor de ventanas  (Window Manager):          
            OpenBox; Ligero pero difícil de configurar.
            IceWM
            FluxBox
            FVWM-Crystal
            XFCE; Más pesado, pero más simple de configurar. Tiene una variante para Ubuntu: Xubuntu, el cual instala un entorno gráfico prácticamente completo.
  • Gestor de login: Para poder logarse en el entorno gráfico:
            GDM; Muy pesado.
            KDM; También muy pesado.
            XDM; El más básico, la estética no es su punto fuerta, pero resulta igual de útil que los anteriores.

  • Navegadores (Browsers):
            Firefox
            Dillo
  • Gestores de archivo:
            Nautilus; Propio de Gnome.
            Konqueror; Propio de KDE.
            Thunar; El que trae por defecto Xubuntu y los basados en XFCE.
            XFE; Parecido al Explorador de Windows.
  • Gestor de Paquetes, sustitutos gráficos de apt-get o aptitude para gestionar software:
             Synaptic -> El más popular y potente.

domingo, 7 de octubre de 2012

Importar una máquina virtual a VMware SX

Ejecutamos el "VMware Infrastructure Client", y seleccionamos el ítem de menú "File > Virtual Appliance > Import"

Aparecerá una ventana con el título "VMWare Infrastructure Client Wizard" donde seleccionamos la segunda opción "Import form file", pulsamos el botón "Browse" que tenemos justo a la derecha de la opción.

Aparecerá una ventana que nos permite navegar por nuestro equipo local, asi que nos dirigimos a la ubicación donde tenemos nuestra maquina virtual "Manual", por ejemplo:

             G:\Proyectos\Racks\GestorTIC\

Seleccionamos el archivo con la extensión .ovf , ósea:

             G:\Proyectos\Racks\GestorTIC\Manual.ovf

Pulsamos el botón "Abrir" de la ventana una vez seleccionado el archivo Manual.ovf. Ahora pulsamos el botón "Next" que tenemos en la parte inferior derecha de la ventana.

Nos mostrará información acerca de la maquina que vamos a importar, si la información es correcta volvemos a pulsar el botón "Next".

Nos indicara que introduzcamos un nombre para la maquina, se trata del nombre VMware, indicaremos preferiblemente el mismo nombre que la carpeta y la maquina virtual, ósea Manual.

Pulsamos de nuevo el botón siguiente, nos mostrará un resumen de las acciones de importación a realizar, si estamos conforme pulsamos el botón "Finish" que aparece en la parte inferior derecha de la ventana.

Aparecerá una ventana con una barra horizontal que nos indica el porcentaje completado del proceso de importación. Una vez haya finalizado, la maquina aparecerá en la lista de VMware.

La carpeta con los archivos de la maquina virtual la podemos localizar en la ruta:

            /vmfs/volumes/VMHost_12:storage1/

Normalmente VMware crea la carpeta de la maquina virtual con el mismo nombre que hemos introducido para la maquina virtual, por ejemplo si hemos indicado "Manual", la maquina entrará localizada en:

            /vmfs/volumes/VMHost_12:storage1/Manual

martes, 25 de septiembre de 2012

Codificación UTF8 para Jboss

Seguramente, en nuestra trabajo más de una vez nos hemos encontrado con el problema de la codificación de caracteres. Bien en sesiones SSH, en archivos de configuración, en la presentación de las mismas aplicaciones.

A continuación expongo unas notas para corregir esto en el caso del servidor de aplicaciones Jboss.

    En el server.xml de jbossweb.sar/, añadir al conector "8080":
   
        URIEncoding="UTF-8"
       
    En las opciones de arranque de run.conf, añadir en el JAVA_OPTS:
   

        Dfile.encoding=UTF-8
       
    En el components.xml de la aplicación:
   
        <web:character-encoding-filter encoding="UTF-8" override-client="true" url-pattern="*.seam" />

domingo, 23 de septiembre de 2012

Como instalar OpenOffice en modo servidor

  1. Introducción.

Vamos a describir la instalación en un entorno Linux, concrétamente para la distribución de Red Hat, aunque es extrapolable a cualquier distribución que utilice los paquetes RPM.


  1. Descarga del Software

OpenOffice es software libre.La instalación en modo servidor es básicamente la instalación estándar del OpenOffice, pero arrancándolo con unos parámetros especiales, en lugar de como lo haríamos para iniciarlo en modo mono-usuario.
La distribución que nos ocupa se presenta en un archivo comprimido, con la extensión .tar.gz.

  1. Instalación de OpenOffice

Copiamos el paquete en un directorio cualquiera. Conviene copiarlo en /opt, ya que será donde se instalará el producto por defecto.

            # cp [nombre_paquete] /opt

 Luego lo descomprimimos, desde la ruta donde lo hayamos copiado, con el siguiete comando:
           
            # cd /opt
            # tar -xvzf [nombre_paquete]

 Esto nos habrá creado una carpeta con un nombre extraño (OOH_....).
 Entramos en la ruta, y accedemos a una carpeta de nombre "RPMS":

            # cd [nombre_carpeta]/RPMS

Procedemos a instalar todos los paquetes '.rpm' contenidos en esta carpeta.

Debemos instalar todos a la vez (esto es, en la misma línea), debido a que tienen dependencias unos con otros. Podemos hacerlo de dos maneras:

A) Escribiendo en la misma línea los nombres de todos los paquetes:

                        # rpm -ivh [paquete_1] [paquete_2] ... [paquete_N]

B) O ejecutar los siguientes comandos, que nos facilitarán la tarea de copiar y pegar todos los nombres de paquetes:

                        # for I in `ls -l | grep rpm | awk '{print $9}'`; do PAQS="$PAQS $I"; done
                        # rpm -ivh $PAQS

Esto nos instalará todos los paquetes, y habrá instalado la aplicación en la siguiente carpeta:

            /opt/openoffice.org2.4

A partir de ahora, esta ruta la conoceremos como "OPENOFFICE_HOME".


  1. Configuración de OpenOffice para funcionar en modo Servidor

Debemos realizarle unos cuantos ajustes a la instalación, con el fin de que pueda funcionar en modo Servidor.

 A) Renombramos un archivo de nombre 'javaldx':

            - Vamos a la carpeta "program":

                        # cd $OPENOFFICE_HOME/program

            - Renombramos el archivo:
           
                        # mv javaldx javaldx.OLD

 B) Editamos el archivo "Setup.xcu", ubicado en

"$OPENOFFICE_HOME/share/registry/data/org/openoffice".

Hay que modificar bastantes etiquetas de este archivo. Para no listarlas y asegurarnos que la configuración es correcta, conviene pegar directamente el archivo "Setup.xcu" que adjuntamos con este manual:

     - Accedemos a la carpeta:

                        # cd $OPENOFFICE_HOME/share/registry/data/org/openoffice

      - Renombramos el archivo existente:

                        # mv Setup.xcu Setup.xcu.OLD

      - Copiamos el archivo Setup.xcu proporcionado (previamente lo debemos haber copiado en alguna ruta conocida, a la que llamaremos aquí INTERCAMBIO):

                        # cp $INTERCAMBIO/Setup.xcu $OPENOFFICE_HOME/share/registry/data/org/openoffice


  1. Revisión del sistema

Para que OpenOffice pueda arrancar en modo Servidor, hay algunas configuraciones del sistema que deben estar correctas.

A) Archivo /etc/hosts con 'localhost' bien definido:

            Editamos el archivo y comprobamos que, además del resto de definiciones, no falta esta:

                        127.0.0.1   localhost


  1. Arranque de OpenOffice en modo Servidor

Una vez que tenemos OpenOffice instalado y correctamente configurado, vamos a proceder a arrancarlo para comprobar que está bien instalado y que puede aceptar conexiones entrantes en modo Servidor.

   - Procedemos a arrancar el OpenOffice con los parámetros adecuados:

            # $OPENOFFICE_HOME/program/soffice -accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &

   - Comprobamos que el proceso se ha ejecutado correctamente:
           
            # ps -ef | grep office | grep -v grep

Lo que nos debe dar como resultado que están corriendo dos procesos.

   - Comprobar que el puerto se ha levantado, y que OpenOffice está funcionando en modo Servidor.

            # netstat -anlp | grep 8100

Debe aparecer una línea, con un formato parecido al siguiente:

                tcp        0      0 127.0.0.1:2002              0.0.0.0:*                   LISTEN      18109/soffice.bin

Si no se muestra ninguna línea, significaría que el puerto no está levantado, por lo que OpenOffice no estaría funcionando de la manera requerida.


  1. Parada de OpenOffice

OpenOffice no dispone de ningún comando para parar su funcionamiento.
Por tanto, no nos queda más remedio que matar los procesos de OpenOffice que están corriendo:

            - Primero obtenemos el número de los procesos que están corriendo:

                        # ps -ef | grep office | grep -v grep
             
Esto nos dará como resultado los dos procesos de OpenOffice que ya comentamos en el arranque. A modo de ejemplo, mostramos una salida típica de este comando:

root     18099     1  0 Feb03 ?        00:00:00 /bin/sh /opt/openoffice.org2.4/program/soffice -accept=socket,host=localhost,port=2002;urp;StarOffice.ServiceManager -nologo -headless -nofirststartwizard
root     18109 18099  0 Feb03 ?        00:00:22 /opt/openoffice.org2.4/program/soffice.bin -accept=socket,host=localhost,port=2002;urp;StarOffice.ServiceManager -nologo -headless -nofirststartwizard

           
Debemos quedarnos con los números que aparecen en la segunda columna (a continuación de "root"). Esto números representan los PID de los procesos.
             
            - Una vez que tenemos estos dos números localizados (PID_1 y PID_2), procedemos a matar los procesos, con el siguiente comando:

                        # kill -9 [PID_1] [PID_2]

** OJO: Cuidado al obtener lod PID, pues si no son los correctos, se pueden matar otros procesos, lo que provocaría que algunos servicios no funcionasen, o que el sistema se volviese inestable. **



  1. Ejecutar OpenOffice como Servicio

Con el fin de que OpenOffice esté siempre disponible, para que cuando arranque la máquina OpenOffice se levante solo, y por comodidad para parar/arrancar el servicio de OpenOffice en modo Servidor, vamos a colocarlo como servicio.

Para ello, hemos creado un script llamado "OpenOfficeServidor", el cual se adjunta también junto con este manual.

            - Copiamos el archivo "OpenOfficeServidor" en '/etc/init.d'

                        # cp OpenOfficeServidor /etc/init.d

            - Lo editamos, para asegurarnos que la ruta donde hemos instalado es la correcta:

                        # vi OpenOfficeServidor

              Comprobamos la línea "BASEDIR", asegurándonos que la ruta que pone es donde realmente se encuentran instalados los archivos correspondiente al OpenOffice (por defecto     debe haberse instalado en /opt/openoffice.org2.4)

Nos aseguramos también que el puerto de escucha es el mismo con el que vamos a arrancarlo en modo servidor.
Por defecto en este manual y en el servicio, suponemos que vamos a levantar el puerto 2002. Si se va a utilizar otro puerto, debemos buscar este valor en el archivo 'OpenOfficeServidor' y modificarlo por el número adecuado.

Recordemos que hemos de asignar permiso de ejecución al script OpenOfficeServidor (chmod 755 OpenOfficeServidor).

Es necesario tener en cuenta que debe de existir la carpeta logs dentro de BASEDIR. En caso de no existir, debería de crearse:

# /etc/init.d # cd /opt/openoffice.org2.4/
# /opt/openoffice.org2.4 # mkdir logs

Asimismo, si a la hora de ejecutar el script da errors del tipo:

….^M

Nos está indicando que el script tiene retornos de DOS. Habríamos de convertirlo a formato UNIX. Para ello utilizaríamos el comando:

dos2unix <nombre fichero>

En el caso de Red Hat, sólo restaría ejecutar el chkconfig –list OpenOfficeServidor

[root@jaen59 openoffice.org2.4]# chkconfig --list OpenOfficeServidor
El servicio OpenOfficeServidor soporta chkconfig, pero no esta registrado (ejecute
'chkconfig -- añada OpenOfficeServidor')
[root@jaen59 openoffice.org2.4]# cd /etc/init.d/
[root@jaen59 init.d]# chkconfig --add OpenOfficeServidor
[root@jaen59 init.d]# chkconfig --list OpenOfficeServidor
OpenOfficeServidor      0:desactivado   1:desactivado   2:desactivado   3:activo        4:activo        5:activo        6:desactivado

En este momento ya lo tendríamos como servicio. Sólo debemos, para finalizar, arrancarlo.

Podemos ver la evolución del arranque en el directorio de logs, previamente definido.

lunes, 4 de junio de 2012

Codificación de caracteres

Ya hemos hablado anteriormente de los problemas con los que nos podemos encontrar a la hora de tratar la codificación de caracteres, principalmente en archivos de configuración.

Vamos a ver un comando que nos permite convertir entre formatos de codificación, el comando iconv. Con iconv se puede pasar de ISO8859-* a UTF-8 y viceversa.

Si queremos cambiar el contenido de un fichero de UTF-8 a ISO8859-15

$iconv -f UTF-8 -t ISO8859-15 -o fichero_de_salida fichero_de_entrada

Si no ponemos la opción -o, el resultado se muestra por la salida estandar.

Si queremos cambiar el nombre de un fichero de ISO8859-15 a UTF-8:

$FITX=fichero_de_entrada
$FITX2=`echo $FITX|iconv -f iso8859-1 -t utf-8 -`
$mv $FITX $FITX2

$iconv mi_fichero -f iso-8859-15 -t utf8 -o temp_utf; cat temp_utf > mi_fichero