cmusei.rwreceiver

rwreceiver

Un rôle pour configurer et gérer le service rwreceiver. rwreceiver est un démon qui accepte des fichiers transférés depuis un ou plusieurs processus rwsender. Les fichiers reçus sont stockés dans un répertoire de destination. Consultez la documentation pour plus d'informations.

Exigences

Si vous utilisez TLS pour les connexions, des certificats correspondants doivent être générés et téléchargés à la fois sur l'émetteur et le récepteur.

Variables du Rôle

Les variables disponibles sont listées ci-dessous, ainsi que leurs valeurs par défaut (voir defaults/main.yml) :

silk_packing_tools_loc: "/usr/local/sbin"

Le chemin du dossier contenant les outils de packing Silk.

silk_tls_support: False

Indique si TLS doit être utilisé pour les connexions.

rwreceiver_myname: "rwreceiver"

Le nom du processus rwreceiver. Il est possible d'exécuter plusieurs copies de rwreceiver sur une seule machine en leur donnant des noms différents.

rwreceiver_conf_template: "rwreceiver.conf.j2"
rwreceiver_conf_file_loc: "/usr/local/etc"
rwreceiver_conf_file_path: "{{ rwreceiver_conf_file_loc }}/{{ rwreceiver_myname }}.conf"
rwreceiver_init_template: "rwreceiver.j2"
rwreceiver_init_file_path: "/etc/init.d/{{ rwreceiver_myname }}"

Modèles à utiliser et leurs destinations.

Variable Explication
rwreceiver_statedirectory: "/usr/local/var/lib/rwreceiver" Dossier où rwreceiver conserve son état
rwreceiver_create_directories: "no" Si réglé sur "yes", les répertoires définis seront créés automatiquement s'ils n'existent pas déjà
rwreceiver_bin_dir: "{{ silk_packing_tools_loc }}" Chemin d'accès complet du dossier contenant le programme "rwreceiver"
rwreceiver_destination_dir: "{{ rwreceiver_statedirectory }}/destination" Le chemin complet du dossier où les fichiers reçus seront placés
rwreceiver_mode: "client" Le mode dans lequel le récepteur fonctionnera. Les valeurs valides sont "server" et "client".
rwreceiver_id: "receiver-1" Le nom de cette instance de récepteur
rwreceiver_port: "" Le PORT ou la paire HOST:PORT sur laquelle le serveur écoute les connexions entrantes. Ceci est requis uniquement en mode serveur. Si HOST n'est pas fourni, le serveur écoute sur n'importe quelle adresse. HOST peut être un nom ou une adresse IP. Si HOST est une adresse IPv6, il faut l'encadrer de crochets et encadrer la valeur entière de guillemets simples pour éviter l'interprétation par le shell.
rwreceiver_post_command: "" Commande à exécuter sur chaque fichier une fois qu'il a été reçu. Dans la commande, "%s" sera remplacé par le chemin complet du fichier reçu, et "%I" sera remplacé par l'identifiant de l'rwsender qui a envoyé le fichier. Par exemple : POST_COMMAND='echo fichier reçu %s de l'rwsender %I'
rwreceiver_freespace_min: "0" La quantité d'espace (en octets) que rwreceiver tentera de laisser libre dans le système de fichiers contenant $DESTINATION_DIR. Cette variable peut être définie comme un entier ordinaire ou comme un nombre réel suivi d'un suffixe K, M, G ou T.
rwreceiver_space_max_percent: "100" Le pourcentage maximum d'espace du système de fichiers contenant $DESTINATION_DIR que rwreceiver sera prêt à utiliser.
rwreceiver_sender_servers: "" Si le récepteur est en mode client, alors SENDER_SERVERS doit être spécifié. Les lignes devraient avoir le format suivant : <identifier> <host>:<port>. Ces variables sont des valeurs multilignes, où chaque ligne a la valeur pour un rwsender.
rwreceiver_sender_clients: "" Si le récepteur est en mode serveur, alors SENDER_CLIENTS doit être spécifié. Les lignes devraient avoir le format suivant : <identifier>. Ces variables sont des valeurs multilignes, où chaque ligne a la valeur pour un rwsender.
rwreceiver_duplicate_dirs: "" Le récepteur peut copier les fichiers entrants dans plusieurs répertoires de destination. Notez que si la copie vers l'un des répertoires suivants échoue, une erreur est enregistrée mais le fichier est traité comme ayant été transféré avec succès. Cette variable contient une valeur multilignes, où chaque ligne liste un répertoire de destination dupliqué. Le format pour chaque ligne est : <duplicate-dir>. Notez que chaque ligne doit être un chemin de répertoire complet.
rwreceiver_duplicate_copies: "link" Lors de la copie de fichiers dans un répertoire de destination dupliqué, par défaut rwreceiver crée les fichiers en tant que liens durs (si possible) les uns par rapport aux autres et aux fichiers dans le répertoire de destination. Cependant, si un processus modifie in-situ une copie à un endroit, cela affectera tous les fichiers. Pour forcer rwreceiver à créer une copie complète, changez DUPLICATE_COPIES de "link" à "copy".
rwreceiver_log_type: "syslog" Le type de journalisation à utiliser. Les valeurs valides sont "legacy" et "syslog".
rwreceiver_log_level: "info" Le niveau le plus bas de journalisation à enregistrer. Valeurs valides : emerg, alert, crit, err, warning, notice, info, debug
rwreceiver_log_dir: "{{ rwreceiver_statedirectory }}/log" Le chemin complet du dossier où les fichiers journaux seront écrits lorsque LOG_TYPE est "legacy".
rwreceiver_pid_dir: "{{ rwreceiver_log_dir }}" Le chemin complet du dossier où le fichier PID sera écrit
rwreceiver_user: "root" L'utilisateur sous lequel ce programme s'exécute ; les permissions root ne sont requises que lorsque rwreceiver écoute sur un port privilégié.
rwreceiver_extra_options: "" Options supplémentaires à passer à rwreceiver

Lors de l'utilisation du support optionnel GnuTLS en configurant silk_tls_support: True, le chemin complet du fichier CA (TLS_CA) doit être spécifié, ainsi que SOIT le chemin complet du fichier PKCS#12 spécifique au programme (TLS_PKCS12) OU les chemins complets du certificat (TLS_CERT) et de la clé (TLS_KEY) spécifiques au programme. Si le fichier PKCS#12 est protégé par un mot de passe, vous devez définir la variable d'environnement RWRECEIVER_TLS_PASSWORD sur le mot de passe avant de démarrer rwreceiver. Si RWRECEIVER_TLS_PASSWORD n'est pas défini, il est traité comme un mot de passe nul ; définissez-le sur la chaîne vide pour permettre un mot de passe vide.

Variable TLS Explication
rwreceiver_tls_ca: "" Le chemin complet vers le fichier CA racine, au format PEM
rwreceiver_tls_pkcs: "" Le chemin complet vers le fichier PKCS#12 spécifique au programme, au format DER
rwreceiver_tls_key: "" Le chemin complet vers le fichier de clé spécifique au programme, au format PEM
rwreceiver_tls_cert: "" Le chemin complet vers le fichier de certificat spécifique au programme, au format PEM
rwreceiver_tls_crl: "" Le chemin complet vers la Liste de Révocation de Certificats, au format PEM. Facultatif.
rwreceiver_tls_priority: "" L'ordre de préférence (priorité) pour les chiffrements, les méthodes d'échange de clés, les codes d'authentification des messages et les méthodes de compression. Facultatif. La valeur par défaut est "NORMAL". Les arguments disponibles dépendent de votre version de GnuTLS.
rwreceiver_tls_security: "" Le niveau de sécurité à utiliser lors de la génération des paramètres Diffie-Hellman. Un des niveaux suivants : faible, moyen, élevé ou ultra. Facultatif. La valeur par défaut est "moyenne".
rwreceiver_tls_debug_level: "" Le niveau de débogage utilisé en interne par la bibliothèque GnuTLS, un nombre entre 0 (pas de débogage) et 99 inclus. Facultatif.

Dépendances

  • cmusei.silk

Exemple de Playbook

- hosts: server
  become: true
  vars:
    data_root_dir: "/data"
    # paramètres de rwreceiver
    silk_tls_support: True
    rwreceiver_statedirectory: "{{ data_root_dir }}/rwreceiver"
    rwreceiver_destination_dir: "{{ rwreceiver_statedirectory }}/incoming"
    rwreceiver_create_directories: "yes"
    rwreceiver_mode: "server"
    rwreceiver_port: "3737"
    rwreceiver_sender_clients: |
        sender1
        sender2
    # paramètres tls de rwreceiver
    tls_ca: "testcert.pem"
    tls_key: "client-key.pem"
    tls_cert: "client-cert.pem"
    rwreceiver_tls_ca: "/etc/pki/tls/{{ tls_ca }}"
    rwreceiver_tls_key: "/etc/pki/tls/private/{{ tls_key }}"
    rwreceiver_tls_cert: "/etc/pki/tls/{{ tls_cert }}"
    rwreceiver_pid_dir: "/var/run"
  pre_tasks:
    - name: Copier les certificats ssl
      copy:
        src: "{{ item.f }}"
        dest: "{{ item.d }}"
        mode: "{{ item.m }}"
        owner: "root"
        group: "root"
      with_items:
        - f: "{{ tls_ca }}"
          d: "{{ rwreceiver_tls_ca }}"
          m: '0644'
        - f: "{{ tls_key }}"
          d: "{{ rwreceiver_tls_key }}"
          m: '0600'
        - f: "{{ tls_cert}}"
          d: "{{ rwreceiver_tls_cert }}"
          m: '0644'
  roles:
    - role: cmusei.rwreceiver
      tags: [ 'rwreceiver' ]

Licence

Droits d'auteur 2020 Carnegie Mellon University.
AUCUNE GARANTIE. CE MATÉRIEL DE CARNEGIE MELLON UNIVERSITY ET DE L'INSTITUT D'INGÉNIERIE LOGICIELLE EST FOURNI "EN L'ÉTAT". CARNEGIE MELLON UNIVERSITY NE FOURNIT AUCUNE GARANTIE, EXPRESSE OU IMPLICITE, QUANT À QUOI QUE CE SOIT, Y COMPRIS, MAIS SANS S'Y LIMITER, À LA GARANTIE D'APTITUDE À UN USAGE OU DE COMMERCIALISATION, D'EXCLUSIVITÉ, OU DE RÉSULTATS OBTENUS PAR L'UTILISATION DU MATÉRIEL. CARNEGIE MELLON UNIVERSITY NE DONNE AUCUNE GARANTIE QUELCONQUE EN CE QUI CONCERNE LA LIBERTÉ DES BREVETS, DES MARQUES DÉPOSÉES OU DES DROITS D'AUTEUR.
Publié sous une licence de type MIT (SEI), veuillez consulter license.txt ou contacter permission@sei.cmu.edu pour les termes complets.
[STATEMENT DE DISTRIBUTION A] Ce matériel a été approuvé pour publication et distribution illimitée. Veuillez consulter l'avis de droits d'auteur pour une utilisation et une distribution non gouvernementales des États-Unis.
CERT® est enregistré au Bureau américain des brevets et des marques par Carnegie Mellon University.
Ce logiciel inclut et / ou utilise le logiciel tiers suivant soumis à sa propre licence :

  1. ansible (https://github.com/ansible/ansible/tree/devel/licenses) Droits d'auteur 2019 Red Hat, Inc.
  2. molecule (https://github.com/ansible-community/molecule/blob/master/LICENSE) Droits d'auteur 2018 Red Hat, Inc.
  3. testinfra (https://github.com/philpep/testinfra/blob/master/LICENSE) Droits d'auteur 2020 Philippe Pepiot.

DM20-0505

Informations sur l'Auteur

Ce rôle a été créé en 2019 par Matt Heckathorn.

À propos du projet

A role to configure the rwreceiver service

Installer
ansible-galaxy install cmusei.rwreceiver
Licence
other
Téléchargements
103
Propriétaire
At the SEI, we research software engineering, cybersecurity, and AI engineering problems; create innovative technologies; and put solutions into practice.