8.2.11.2.2. Configuration / fichiers utiles

Les fichiers de configuration sont gérés par les procédures d’installation ou de mise à niveau de l’environnement VITAM. Se référer au DIN.

Les fichiers de configuration sont définis sous /vitam/conf/ingest-external.

8.2.11.2.2.1. Fichier ingest-external.conf

path: {{ vitam_folder_data }}
jettyConfig: jetty-config.xml
authentication: false
tenantFilter : true
antiVirusScriptName: scan-{{ vitam_struct.antivirus }}.sh
timeoutScanDelay: {{ vitam_struct.scantimeout | default(1200000) }}
baseUploadPath: {{ vitam_struct.upload_dir | default('/vitam/data/ingest-external/upload') }}
successfulUploadDir: {{ vitam_struct.success_dir | default('/vitam/data/ingest-external/upload/success') }}
failedUploadDir: {{ vitam_struct.fail_dir | default('/vitam/data/ingest-external/upload/failure') }}
fileActionAfterUpload: {{ vitam_struct.upload_final_action | default('MOVE') }}
allowSslClientHeader: {{ vitam_defaults.trust_client_certificate_header | default(false) | bool }}

Ce fichier contient un appel au shell d’antivirus (par défaut, ClamAV) ; se reporter au DIN.

Il est possible, dans le cas de fichiers SIP volumineux, d’héberger des fichiers directement dans ingest-external (valeur de la directive baseUploadPath). Ces fichiers doivent être accessibles et utilisables par le user système vitam.

Les options associées à cette fonctionnalité peuvent être paramétrées dans le fichier deployment/environment/group_vars/all/advanced/vitam_vars.yml avant installation de Vitam.

La directive fileActionAfterUpload accepte les valeurs :

  • NONE : le fichier reste
  • MOVE : déplace le fichiers vers les valeurs des directives successfulUploadDir (en cas de succès de l’ingest) et failedUploadDir (en cas de non-succès de l’ingest)
  • DELETE : le fichier est supprimé en cas de succès de l’ingest uniquement

A charge à l’exploitant de bien gérer l’espace disque de ces répertoires (il faut penser aux ingests en échecs par exemple).

Se reporter au manuel de développement pour l’appel d’API associé.

8.2.11.2.2.2. Fichier ingest-internal-client.conf

serverHost: {{ vitam.ingestinternal.host }}
serverPort: {{ vitam.ingestinternal.port_service }}

8.2.11.2.2.3. Fichier internal-security-client.conf

serverHost: {{ vitam.security_internal.host }}
serverPort: {{ vitam.security_internal.port_service }}
secure: {{ vitam.security_internal.https_enabled }}

8.2.11.2.2.4. Fichier format-identifiers.conf

siegfried-local:
  type: SIEGFRIED
  client: http
  host: localhost
  port: {{ siegfried.port }}
  rootPath: {{ vitam_folder_data }}/
  versionPath: {{ vitam_folder_data }}/version/folder

8.2.11.2.2.5. Fichier functional-administration-client.conf

serverHost: {{ vitam.functional_administration.host }}
serverPort: {{ vitam.functional_administration.port_service }}

8.2.11.2.2.6. Fichier scan-clamav.sh

Ce script de scan appelle l’antivirus (par défaut, clamAV ; ce paramètre est surchargeable à l’installation ; se référer au :term`DIN` pour plus de précisions) pour détecter les virus.

#!/bin/sh

##########################################################################
# Role:                                                                  #
# Scan a single file using clamav anti-virus                             #
##########################################################################
# Args:                                                                  #
# - file to scan                                                         #
##########################################################################
# Return:                                                                #
# - 0: scan OK - no virus                                                #
RET_NOTVIRUS=0
# - 1: virus found and corrected                                         #
RET_VIRUS_FOUND_FIXED=1
# - 2: virus found but not corrected                                     #
RET_VIRUS_FOUND_NOTFIXED=2
# - 3: Fatal scan not performed                                          #
RET_FAILURE=3
# stdout : names of virus found (1 per line) if virus found ;            #
#          failure description if failure                                #
# stderr : full ouput of clamav                                          #
##########################################################################

# Default return code : scan NOK
RET=3
OUTPUT_DIR=$(mktemp -d)
if [ $# -ne 1 ]; then # Argument number must be one
  echo "ERROR : $# parameter(s) provided, only one parameter is needed"
else # one argument, let's go
  if [ ! -f "$1" ];then # if the file wich will be scan is existing, keep going
    echo "ERROR : \"$1\" doesn't exit"
  else
    clamdscan -z --stream "$1" 1> ${OUTPUT_DIR}/stdout 2> ${OUTPUT_DIR}/stderr # scanning the file and store the output OUTPUT
    RET=$? # return code of clamscan

    # Always output clamscan outputs to our own stderr
    (>&2 cat ${OUTPUT_DIR}/stdout  ${OUTPUT_DIR}/stderr)

    if [ ${RET} -eq ${RET_VIRUS_FOUND_FIXED} ] ; then
      RET=2 # if virus found clamscan return 1; the script must return 2
      (>&1 cat ${OUTPUT_DIR}/stdout  | grep `basename ${1}` | cut -d ' ' -f 2) # sending the list of virus to our own stdout
    elif [ ${RET} -eq 2 ] ; then
      RET=3 # if scan not performed clamscan return 2; the script must return 3
      (>&1 cat ${OUTPUT_DIR}/stdout  | grep `basename ${1}` | cut -d ' ' -f 2-) # sending the failure reason to our own stdout
    fi

    if [ -f "${OUTPUT_DIR}/stdout" ]
    then
      rm ${OUTPUT_DIR}/stdout
    fi
    if [ -f "${OUTPUT_DIR}/stderr" ]
    then
      rm ${OUTPUT_DIR}/stderr
    fi
  fi
fi
rmdir ${OUTPUT_DIR}
exit ${RET}