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 :
- ansible (https://github.com/ansible/ansible/tree/devel/licenses) Droits d'auteur 2019 Red Hat, Inc.
- molecule (https://github.com/ansible-community/molecule/blob/master/LICENSE) Droits d'auteur 2018 Red Hat, Inc.
- 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.
A role to configure the rwreceiver service
ansible-galaxy install cmusei.rwreceiver