Configuration Simple

Principes Généraux

Il existe 4 fichiers de configurations:

  • client.xml, détail le fonctionnement du moniteur en mode client

  • logback-client.xml, configuration des logs client

  • server.xml, détail le fonctionnement du moniteur en mode serveur

  • logback-server.xml, configuration des logs serveur

En plus de ces 4 fichiers 2 autres fichiers sont consommés par l’instance pour alimenter sa configuration en base de données (si applicable)

  • authent.xml, détails d’authentification des moniteurs authorisés

  • rules.xml, règles de transfert utilisable par le mooniteur

client.xml

Le tableau ci-dessous détail les groupes utilisés dans la configuration d’un client WaarpR66. La description de ces groupes est détaillée plus bas.

Balise

Status

identity

Obligatoire

ssl

Si utilisation de SSL

directory

Recommandé

db

Si utilisation d’une base de données

extendTaskFactory

Si nécessité d’ajouter des extensions de tâches

server.xml

Le tableau ci-dessous détail les groupes utilisés dans la configuration d’un serveur WaarpR66. La description de ces groupes est détaillée plus bas.

Balise

Description

identity

Obligatoire

ssl

Si utilisation de SSL

server

Obligatoire

network

Recommandé

directory

Recommandé

db

Obligatoire

extendTaskFactory

Si nécessité d’ajouter des extensions de tâches

pushMonitor

Si nécessaire pour un monitoring en mode PUSH REST Json vers un serveur tiers

Note

Pour les balises indiquées ci-dessus, les fichiers valeurs renseignées dans les fichiers server.xml et client.xml doivent être identiques. À défaut, deux instances distinctes seront configurées.

Détails

Identity

Le groupe <identity> des configurations client et serveur permet de définir l’identité du moniteur (hostids et mot de passe)

Balise

Description

identity

hostid

Identifiant de l’instance utilisé pour les connections en clair

sslhostid

Identifiant de l’instance utilisé pour les connexions chiffrées

cryptokey

Chemin d’accès à la clef DES utilisée pour chiffrer les mots de passe

Server

Le groupe <server> de la configuration serveur permet de préciser les informations nécéssaire au fonctionement du serveur.

Balise

Description

server

serveradmin

Login pour l’accès administrateur

serverpasswd

Mot de passe pour l’accès administrateur chiffré par <cryptokey>

usenossl

Le serveur accepte les connections non SSL

usessl

Le serveur accepte les connections ssl

usehttpcomp

Utilisation de la compréssion HTTP pour l’interface d’administration

uselocalexec

Utilisation du LocalExec R66 au lieu du

httpadmin

Chemin d’accès au serveur

admkeypath

Chemin d’accès au keystore pour l’authentification https

admkeystorepass

Mot de passe d’accès au keystore

admkeypass

Mot de passe d’accès à la clef

Network

Par defaut un serveur WaarpR66 utilise les ports suivants:

  • 6668: Communications R66 en clair

  • 6669: Communications R66 chiffrées

  • 8066: Interface web de suivi (désactivée par défaut)

  • 8067: Interface web d’administration (désactivée par défaut)

  • 8088: Interface REST des serveurs WaarpR66 autonomes (désactivée par défaut)

Cependant ces ports sont configurables via le groupe network.

Balise

Description

network

serverport

Communications R66 en clair

serveraddresses

Adresses utilisées pour le protocole R66 (séparées par des virgules)

serversslport

Communications R66 chiffrées

serverssladdresses

Adresses utilisées pour le protocole R66 en SSL (séparées par des virgules)

serverhttpport

Interface web de suivi (désactivée par défaut)

serverhttpaddresses

Adresses utilisées pour l’interface web de supervision (séparées par des virgules)

serverhttpsport

Interface web d’administration (désactivée par défaut)

serverhttpsaddresses

Adresses utilisées pour l’interface web HTTPS d’administration (séparées par des virgules)

serverrestport

Interface REST des serveurs WaarpR66 autonomes (désactivée par défaut)

SSL

Afin d’utilisé des connexions chiffrées le groupe <ssl> doit etre configuré avec les catalogues de certificats authorisés et leurs mots de passe d’accès.

Balise

Description

ssl

keypath

Chemin d’accès au keystore d’authentification de l’instance.

keystorepass

Mot de passe d’accès au keystore

keypass

Mot de passe d’accès à la clef

trustkeypath

Chemin d’accès au keystore des certificats de confiance de l’instance

trustkeystorepass

Mot de passe d’accès au trustkeystore

trustuseclientauthenticate

Si vrai, R66 n’acceptera que les clients authorisés via SSL

Directory

Le groupe <directory> permet de définir les dossiers utilisés par les moniteurs WaarpR66 pour l’émission et la réception de fichiers.

Balise

Description

directory

serverhome

Dossier racine de WaarpR66. Les autres dossiers paramétrables sont définis relativement à celui-ci

in

Dossier de dépôt des fichiers reçus

out

Dossier où sont cherchés les fichiers à transférer

work

Dossier tampon où sont stockés les fichiers en cours de réception

arch

Dossier d’export XML de l’historique des transferts

conf

Dossier d’export XML de la configuration de l’instance

DB

WaarpR66 utilise une base de données pour stocker les informations nécessaires aux transferts (Moniteurs authorisés et règles de transferts). Le groupe <db> permet de configurer les accès à la base de données utilisé par le moniteur.

Balise

Description

db

dbdriver

Driver JDBC à utiliser pour se connecter à la base de données (postgresql)

dbserver

URI JDBC de connection à la base de données (ex : jdbc:postgresql://localhost:5433/waarp)

dbuser

L’utilisateur à utiliser pour se connecter à la base de données

dbpasswd

Le mot de passe de l’utilisateur

Note

Il est possible de faire fonctionner les moniteurs sans base de données. Les fichiers authent.xml et rules.xml seront utilisés comme source de configuration.

ExtendTaskFactory

Nouveau dans la version 3.6.0: Ajout du sous-ensemble extendTaskFactory qui contient l’option extendedtaskfactories : pour la Factory org.waarp.openr66.s3.taskfactory.S3TaskFactory, si la classe est dans le claspath, il n’est pas nécessaire de l’ajouter.

Le groupe <extendTaskFactory> permet de définir des Task Factories additionnelles pour étendre les capacités de R66.

Balise

Description

extendTaskFactory

extendedtaskfactories

Liste (séparée par des virgules) des TaskFactory en tant qu’extension pour ajouter des tâches à WaarpR66 (implicite pour la Factory org.waarp.openr66.s3.taskfactory.S3TaskFactory, si la classe est dans le claspath).

PushMonitor

Cette section décrit comment monitorer R66 via des appels REST HTTP(s) vers un serveur tiers (en mode PUSH).

Nouveau dans la version 3.6.0: Ajout du sous-ensemble pushMonitor qui contient les options communes url, delay, intervalincluded, transformlongasstring, token, apiKey, les options spécifiques``endpoint``, keepconnection et basicAuthent sont liées à une API REST en destination, les options spécifiques``index``, prefix, username, paswd et compression sont liées à Elasticsearch en destination.

Le groupe <pushMonitor> permet de définir les parammètres pour que le serveur R66 envoie son monitoring des transferts vers un serveur tiers en mode API REST Json.

Balise

Description

pushMonitor

Partie commune

url

URL de base pour les exports du moniteur en mode POST HTTP(S) JSON

delay

Délai entre deux vérifications de changement de statuts sur les transferts

intervalincluded

Si « True », les informations de l’intervalle utilisé seront fournies

transformlongasstring

Si « True », les nombres « long » seront convertis en chaîne de caractères, sinon ils seront numériques

token

Spécifie si nécessaire le token dans le cadre d’une authentification via Token

apiKey

Spécifie si nécessaire le password dans le cadre d’une authentification via ApiKey (format apiId:apiKey)

Partie API REST

endpoint

End point à ajouter à l’URL de base

keepconnection

Si « True », la connexion HTTP(S) sera en Keep-Alive (pas de réouverture sauf si le serveur la ferme), sinon la connexion sera réinitialisée pour chaque appel

basicAuthent

Spécifie si nécessaire l’authentification basique

Partie Elasticsearch

index

Contient le nom de l’index avec de possibles substitutions, dont %%WARPHOST%% pour le nom du host concerné, et les %%DATETIME%%, %%DATEHOUR%%, %%DATE%%, %%YEARMONTH%%, %%YEAR%% pour des substitutions de date et heure partiellement (yyyy.MM.dd.HH.mm à yyyy)

prefix

Spécifie si nécessaire un prefix global dans le cas d’usage d’un Proxy devant Elasticsearch

username

Spécifie si nécessaire le username (et son password) dans le cadre d’une authentification basique

paswd

Spécifie si nécessaire le password dans le cadre d’une authentification basique

compression

Spécifie si les flux sont compressés (par défaut True)

logback-{client,server}.xml

Les fichiers logback*.xml permettent de paramétrer les écritures de log. Veuillez vous référer au manuel en ligne de Logback pour configurer la façon dont les logs sont générés et écrits dans un fichier et/ou vers syslog.

Il est à noter qu’il est conseillé d’avoir les éléments suivants dans le fichier de configuration de Logback.

<configuration>
  <statusListener class="org.waarp.common.logging.PrintOnlyWarningLogbackStatusListener" />

  <appender name=... class=...><!-- Voir la documentation Logback -->
  </appender>

  <root level="warn">
    <appender-ref ref=... /><!-- Voir la documentation Logback -->
  </root>

  <logger name="ch.qos.logback" level="WARN"/>
  <logger name="org.apache.http" level="WARN"/>
  <logger name="io.netty" level="WARN"/>
  <logger name="io.netty.util.internal.PlatformDependent" level="DEBUG"/>
</configuration>

authent.xml

Le fichier d’authent permet de renseigner les paramètres de connections des instances WaarpR66. Ce fichier est consommé par la commande loadauth ou loadconf (voir utilisation). Une fois consommé ce fichier n’est plus utilisé (vous pouvez le mettre à jour pour le recharger plus tard).

Le fichier liste un moniteurs dans une balise <entry> détaillée ci-dessous. Ces balises sont regroupées au sein d’une balise <authent>.

Balise

Description

entry

hostid

L’hostid du moniteur

address

Addresse ou entrée DNS du moniteur

port

Si le moniteur est un serveur, le port de destination

isssl

Le moniteur utilise SSL

admin

Le moniteur authorise les accès Admin via R66

isclient

Le moniteur n’est pas un serveur

key

Mot de passe du moniteur

Au minimum le fichier doit renseigner le moniteur qui l’utilise.

rules.xml

Les fichiers de règles permettent de détailler les règles utilisées par le moniteur ainsi que leur contenu. Ce fichier est consommé par la commande loadauth ou loadrules (voir utilisation). Une fois consommé ce fichier n’est plus utilisé (vous pouvez le mettre à jour pour le recharger plus tard).

Le fichier décrit une règle dans une balise <rule> détaillée ci-dessous. Ces balises sont regroupées au sein d’une balise <rules>.

Balise

Description

rule

idrule

Nom de la règle

comment

Commentaire

hostids

Liste des moniteurs authorisés à utiliser la règle

mode

Le mode de la règle

rpretasks

Tâches executées par le receveur avant le transfert

rposttasks

Tâches executées par le receveur après le transfert

rerrortasks

Tâches executées par le receveur en cas d’erreur du transfert

spretasks

Tâches executées par l’envoyeur avant le transfert

spoststasks

Tâches executées par l’envoyeur après le transfert

serrortasks

Tâches executées par l’envoyeur en cas d’erreur du transfert

Les hostids de la balises hostids sont présentés comme suit:

<hostids>
  <hostid>hostid1</hostid>
  <hostid>hostid2</hostid>
</hostids>

Le mode de la règle peut etre un des suivant

  • 1: SEND, Envoie le fichier client -> serveur

  • 2: RECV, Demande le fichier serveur -> client

  • 3: SEND+MD5

  • 4: RECV+MD5

  • 5: SENDTHROUGHMODE

  • 6: RECVTHROUGHMODE

  • 7: SENDMD5THROUGHMODE

  • 8: RECVMD5THROUGHMODE

Les listes de tâches (rpretasks, rposttasks, rerrortasks, spretasks, sposttasks, serrortasks). sont présentées comme suit:

<rpretasks>
  <tasks>
    <task></task>
    <task></task>
    <task></task>
    ...
  </tasks>
</rpretasks>

Le contenue d’une balise <task> est détaillé ci-dessous:

Balise

Description

task

type

Le type de tâche

path

Les options de cette tâche

delay

Temps (ms) accordé avant l’envoie d’un Time Out

Cryptographie

cryptokey

Cette clef DES est utilisée par les instances WaarpR66 pour chiffrer les mots de passe pour s’identifier sur les autres instances. Pour générer une nouvelle cryptokey:

$ cat /dev/urandom | head -c 8 > cryptokey.des

Pour régénérer le mot de passe {pwd} dans le fichier {output} avec la clé {key}:

./bin/waarp-password.sh -ki {key} -pwd {pwd} -po {output}

keystore

Le keystore contient la clef privée d’identification de l’instance WaarpR66 pour les communication SSL. Il s’agit d’un Java KeyStore de type keystore.

truststore

Le truststore contient les certificats des instances autorisés à communiquer via SSL avec l’instance WaarpR66. Il s’agit d’un Java KeyStore de type truststore.

adminstore

Le keystore contient la clef privée pour accéder à l’interface d’administration de l’instance WaarpR66 en https. Il s’agit d’un Java KeyStore de type keystore. Pour générer une nouveau keystore:

$ keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048

Pour générer un nouveau truststore depuis un keystore existant

$ keytool -export -keystore keystore.jks -alias selfsigned -file cert.crt
$ keytool -import -alias selfsigned -file cert.crt -keystore truststore.jks

restsignkey

La clef REST est utilisée par Waarp Manager pour communiquer avec les serveurs Waarp afin de récupérer l’historiques des transferts. Pour générer une nouvelle clef de signature REST

$ cat /dev/urandom | head -c 64 > restsignkey.key

Attention: Dans le cadre d’une utiilisation de Waarp Manager, les clefs cryptokey et restsignkey doivent être partagé par toute les instances serveur WaarpR66 du parc et connu de Waarp Manager.

Les sections suivantes présentent:

  1. Un exemple de fichier des configurations

  2. Le détail complet des fichiers de configuration

La section d’après détaille le lancement d’un serveur WaarpR66.