viernes, junio 19, 2009

Error during STOR/APPE epilogue

Uno de los posibles motivos por los que no haya llegado un fichero a un servidor FTP es que el servidor esté lleno. Este caso aparecerá reflejado en la herramienta de visualización de mensajes de XI (XI Message Display Tool), informando un log similar al siguiente:


Error during communication with SLD: User credentials are invalid or user is denied access

Este error aparece cuando se intenta acceder al "Runtime Workbench" del repositorio de XI, en este caso, tras introducir las credenciales de usuario, aparece el error "Following error occurred while executing the application: Error during communication with System Landscape Directory: User credentials are invalid or user is denied access". El problema puede estar en que el usuario de XI "XIRWBUSER" o "PIRWBUSER" (dependiendo de la versión de XI) está bloqueado.

En la entrada Usuario PIRWBUSER bloqueado frecuentemente se indica cómo solucionar este problema.

Más información:

http://sap.ittoolbox.com/groups/technical-functional/sap-basis/error-during-communication-with-system-landscape-directory-user-credentials-are-invalid-or-user-is-denied-access-1718332

martes, junio 16, 2009

Cliente FTP multiprotocolo y multiplataforma

En ocasiones, existen servidores FTP que hacen uso del protocolo TLS. Esto requiere configurar de la manera adecuada el firewall tras el que se encuentra el servidor XI para que se pueda conectar de manera correcta con dicho servidor FTP.

Para comprobar si el firewall estaba bien configurado, busqué un cliente FTP multiprotocolo disponible para varios sistemas operativos (UNIX, AIX, Linux, Windows,...) de manera que me permitiera realizar una prueba de conexión desde un equipo, en mi caso con Windows, exterior a la red y, una vez logrado conectar con el servidor FTP, reproducir los mismos comandos, pero esta vez desde el cliente FTP instalado en el servidor XI.

El cliente utilizado fue el Curl y el enlace de descarga es http://curl.haxx.se/download.html (recomiendo usar el wizard de descarga para obtener la últiva versión: http://curl.haxx.se/dlwiz/).

El cliente funciona por comandos. En Windows no necesita instalación, basta descomprimir el archivo en una carpeta local y seguidamente ejecutar los comandos. La versión que utilicé fue la curl-7.19.5-ssl-sspi-zlib-static-bin-w32.zip.

El servidor FTP requería:
  • Protocolo: TLS
  • Puerto: 990
  • Conexión: pasiva

    Para las pruebas de conexión basta con que funcione algunos de los siguientes comandos:

    Comandos que muestran el contenido de la carpeta raíz del servidor de pruebas:

    C:\curl>curl -k -u <user>:<pass> --ftp-ssl -1 ftp://ftp.server.com:990

    C:\curl>curl -k -u <user>:<pass> --ftp-ssl-reqd -1 ftp://ftp.server.com:990

    C:\curl>curl -k -u <user>:<pass> --ftp-pasv --ftp-ssl -1 ftp://ftp.server.com:990


    Resultado:

    drwxrwxr-x   5 (?)      (?)          4096 Mar 31 13:14 dir

    Comandos que muestran un listado del directorio /DIR/:

    C:\curl>curl -k -u <user>:<pass> --ftp-pasv --ftp-ssl -1 ftp://ftp.server.com:990/dir/

    Resultado:

    drwxrwxr-x   2 (?)      (?)          4096 Jun  8 16:27 input
    drwxrwxr-x   2 (?)      (?)          4096 Jun  8 16:28 output



    A continuación indico el significado de las opciones utilizadas:

    -k/--insecure
    (SSL) This option explicitly allows curl to perform "insecure" SSL connections
    and transfers. All SSL connections are attempted to be made secure by using the
    CA certificate bundle installed by default. This makes all connections considered
    "insecure" fail unless -k/--insecure is used.

    -u/--user <user:password>
    Specify the user name and password to use for server authentication. Overrides
    -n/--netrc and --netrc-optional.
    If you just give the user name (without entering a colon) curl will prompt for
    a password.
    If you use an SSPI-enabled curl binary and do NTLM authentication, you can
    force curl to pick up the user name and password from your environment by simply
    specifying a single colon with this option: "-u :".
    If this option is used several times, the last one will be used.

    --ftp-ssl
    (FTP) Try to use SSL/TLS for the FTP connection. Reverts to a non-secure
    connection if the server doesn’t support SSL/TLS. See also --ftp-ssl-control and
    --ftp-ssl-reqd for different levels of encryption required. (Added in 7.11.0)

    --ftp-ssl-reqd
    (FTP) Require SSL/TLS for the FTP connection. Terminates the connection if the
    server doesn’t support SSL/TLS. (Added in 7.15.5)

    -1/--tlsv1
    (SSL) Forces curl to use TLS version 1 when negotiating with a remote TLS server.


    Lo único que falta es probar que estos mismos comandos funcionan desde el servidor de XI con la configuración actual del firewall.