cmusei.rwreceiver

rwreceiver

Eine Rolle zur Konfiguration und Verwaltung des rwreceiver-Dienstes. rwreceiver ist ein Daemon, der Dateien von einem oder mehreren rwsender-Prozessen entgegennimmt. Die empfangenen Dateien werden in einem Zielverzeichnis gespeichert. Weitere Informationen finden Sie in der Dokumentation zu rwreceiver.

Anforderungen

Wenn TLS für Verbindungen verwendet wird, müssen passende Zertifikate erstellt und sowohl an den Sender als auch an den Empfänger hochgeladen werden.

Rollen-Variablen

Verfügbare Variablen sind unten aufgeführt, zusammen mit den Standardwerten (siehe defaults/main.yml):

silk_packing_tools_loc: "/usr/local/sbin"

Der Speicherort der Silk-Packing-Tools.

silk_tls_support: False

Ob TLS für Verbindungen verwendet werden soll.

rwreceiver_myname: "rwreceiver"

Der Name des rwreceiver-Prozesses. Es ist möglich, mehrere Instanzen von rwreceiver auf einer einzelnen Maschine auszuführen, indem man ihnen unterschiedliche Namen gibt.

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 }}" 

Vorlagen und deren Speicherorte.

Variable Erklärung
rwreceiver_statedirectory: "/usr/local/var/lib/rwreceiver" Verzeichnis, in dem rwreceiver seinen Status speichert
rwreceiver_create_directories: "nein" Wenn auf "ja" gesetzt, werden die definierten Verzeichnisse automatisch erstellt, wenn sie noch nicht existieren
rwreceiver_bin_dir: "{{ silk_packing_tools_loc }}" Vollständiger Pfad des Verzeichnisses, das das "rwreceiver"-Programm enthält
rwreceiver_destination_dir: "{{ rwreceiver_statedirectory }}/destination" Der vollständige Pfad des Verzeichnisses, in dem die empfangenen Dateien abgelegt werden
rwreceiver_mode: "client" Der Modus, in dem der Empfänger läuft. Gültige Werte sind "server" und "client".
rwreceiver_id: "receiver-1" Der Name dieser Receiver-Instanz
rwreceiver_port: "" Der PORT oder HOST:PORT-Paar, auf dem der Server auf eingehende Verbindungen hört. Dies ist nur erforderlich, wenn im Servermodus gearbeitet wird. Wenn HOST nicht angegeben ist, hört der Server auf jeder Adresse. HOST kann ein Name oder eine IP-Adresse sein. Wenn HOST eine IPv6-Adresse ist, setzen Sie es in eckige Klammern und den gesamten Wert in einfache Anführungszeichen, um eine Interpretation durch die Shell zu verhindern.
rwreceiver_post_command: "" Befehl, der für jede Datei ausgeführt wird, sobald sie empfangen wurde. In dem Befehl wird "%s" durch den vollständigen Pfad zur empfangenen Datei und "%I" durch die Kennung des rwsender ersetzt, der die Datei gesendet hat. z.B.: POST_COMMAND='echo empfangene Datei %s von rwsender %I'
rwreceiver_freespace_min: "0" Die Menge an Speicherplatz (in Bytes), den rwreceiver im Dateisystem, das $DESTINATION_DIR enthält, freihalten möchte. Diese Variable kann als gewöhnliche ganze Zahl oder als reelle Zahl gefolgt von einem Suffix K, M, G oder T gesetzt werden.
rwreceiver_space_max_percent: "100" Der maximale Prozentsatz des Speichers im Dateisystem, das $DESTINATION_DIR enthält, den rwreceiver nutzen möchte.
rwreceiver_sender_servers: "" Wenn der Empfänger im Clientmodus ist, müssen die SENDER_SERVERS angegeben werden. Die Zeilen sollten das folgende Format haben: <identifier> <host>:<port>. Diese Variablen sind mehrzeilige Werte, wobei jede Zeile den Wert für einen rwsender hat.
rwreceiver_sender_clients: "" Wenn der Empfänger im Servermodus ist, müssen die SENDER_CLIENTS angegeben werden. Die Zeilen sollten das folgende Format haben: <identifier>. Diese Variablen sind mehrzeilige Werte, wobei jede Zeile den Wert für einen rwsender hat.
rwreceiver_duplicate_dirs: "" Der Empfänger kann eingehende Dateien in mehrere Zielverzeichnisse kopieren. Beachten Sie, dass, wenn das Kopieren in eines der folgenden Verzeichnisse fehlschlägt, ein Fehler protokolliert wird, die Datei jedoch als erfolgreich übertragen betrachtet wird. Diese Variable enthält einen mehrzeiligen Wert, wobei jede Zeile ein Duplikat-Zielverzeichnis auflistet. Das Format für die Zeile ist: <duplicate-dir>. Jede Zeile muss einen vollständigen Verzeichnispfad darstellen
rwreceiver_duplicate_copies: "link" Beim Kopieren von Dateien in ein Duplikat-Zielverzeichnis erstellt rwreceiver standardmäßig die Dateien als Hardlinks (wenn möglich) zueinander und zu den Dateien im Zielverzeichnis. Wenn ein Prozess jedoch eine Kopie an einem Ort verändert, wirkt sich dies auf alle Dateien aus. Um rwreceiver zu zwingen, eine vollständige Kopie zu erstellen, ändern Sie DUPLICATE_COPIES von "link" zu "copy".
rwreceiver_log_type: "syslog" Der Typ des zu verwendenden Protokollierens. Gültige Werte sind "legacy" und "syslog".
rwreceiver_log_level: "info" Die niedrigste Protokollierungsebene, die tatsächlich protokolliert wird. Gültige Werte sind: emerg, alert, crit, err, warning, notice, info, debug
rwreceiver_log_dir: "{{ rwreceiver_statedirectory }}/log" Der vollständige Pfad des Verzeichnisses, in dem die Protokolldateien geschrieben werden, wenn der LOG_TYPE "legacy" ist.
rwreceiver_pid_dir: "{{ rwreceiver_log_dir }}" Der vollständige Pfad des Verzeichnisses, in dem die PID-Datei geschrieben wird
rwreceiver_user: "root" Der Benutzer, unter dem dieses Programm läuft; Root-Rechte sind nur erforderlich, wenn rwreceiver auf einem privilegierten Port lauscht.
rwreceiver_extra_options: "" Zusätzliche Optionen, die an rwreceiver übergeben werden

Wenn die optionale GnuTLS-Unterstützung durch Setzen von silk_tls_support: True verwendet wird, muss der vollständige Pfad zur CA-Datei (TLS_CA) angegeben werden, sowie ENTWEDER der vollständige Pfad zur programmspezifischen PKCS#12-Datei (TLS_PKCS12) ODER die vollständigen Pfade zur programmspezifischen Zertifikat (TLS_CERT) und Schlüssel (TLS_KEY) Datei. Wenn die PKCS#12-Datei passwortgeschützt ist, müssen Sie die Umgebungsvariable RWRECEIVER_TLS_PASSWORD auf das Passwort setzen, bevor Sie rwreceiver starten. Wenn RWRECEIVER_TLS_PASSWORD nicht gesetzt ist, wird es als leeres Passwort behandelt; setzen Sie es auf eine leere Zeichenfolge, um ein leeres Passwort zu erlauben.

TLS Variable Erklärung
rwreceiver_tls_ca: "" Der vollständige Pfad zur Root-CA-Datei, PEM-kodiert
rwreceiver_tls_pkcs: "" Der vollständige Pfad zur programmspezifischen PKCS#12-Datei, DER-kodiert
rwreceiver_tls_key: "" Der vollständige Pfad zur programmspezifischen Schlüsseldatei, PEM-kodiert
rwreceiver_tls_cert: "" Der vollständige Pfad zur programmspezifischen Zertifikatsdatei, PEM-kodiert
rwreceiver_tls_crl: "" Der vollständige Pfad zur Zertifizierungsstellen-Sperrliste, PEM-kodiert. Optional.
rwreceiver_tls_priority: "" Die Präferenzreihenfolge (Priorität) für Chiffren, Schlüssel-Austauschmethoden, Nachrichtenauthentifizierungscodes und Kompressionsmethoden. Optional. Der Standardwert ist "NORMAL". Verfügbare Argumente hängen von Ihrer Version von GnuTLS ab.
rwreceiver_tls_security: "" Das Sicherheitsniveau, das bei der Generierung von Diffie-Hellman-Parametern verwendet werden soll. Eines von niedrig, mittel, hoch oder ultra. Optional. Der Standardwert ist "mittel".
rwreceiver_tls_debug_level: "" Die Interne zur Verwendung von GnuTLS-Bibliothek verwendete Debugging-Ebene, eine Zahl zwischen 0 (kein Debugging) und einschließlich 99. Optional.

Abhängigkeiten

  • cmusei.silk

Beispiel-Playbook

- hosts: server
  become: true
  vars:
    data_root_dir: "/data"
    # rwreceiver-Einstellungen
    silk_tls_support: True
    rwreceiver_statedirectory: "{{ data_root_dir }}/rwreceiver"
    rwreceiver_destination_dir: "{{ rwreceiver_statedirectory }}/incoming"
    rwreceiver_create_directories: "ja"
    rwreceiver_mode: "server"
    rwreceiver_port: "3737"
    rwreceiver_sender_clients: |
        sender1
        sender2
    # rwreceiver TLS-Einstellungen
    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: SSL-Zertifikate kopieren
      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' ]

Lizenz

Copyright 2020 Carnegie Mellon University. KEINE GARANTIE. DIESES MATERIAL DER CARNEGIE MELLON UNIVERSITY UND DES SOFTWARE ENGINEERING INSTITUTE WIRD IM "AS-IS"-ZUSTAND BEREITGESTELLT. DIE CARNEGIE MELLON UNIVERSITY GIBT KEINE GARANTIEN IRGENDWELCHER ART, WEDER AUSDRÜCKLICH NOCH IMPLIZIT, BEZÜGLICH IRGENDEINER ANGELEGENHEIT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIE DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK ODER DER MARKTFÄHIGKEIT, EXKLUSIVITÄT ODER ERGEBNISSE, DIE AUS DER NUTZUNG DES MATERIALS ERZIELT WERDEN. DIE CARNEGIE MELLON UNIVERSITY ÜBT KEINE GARANTIE IN BEZUG AUF DAS FREI SEIN VON PATENT-, MARKEN- ODER URHEBERRECHTSVERLETZUNG AUS. Veröffentlicht unter einer MIT (SEI)-Lizenz. Bitte sehen Sie sich die Datei license.txt an oder kontaktieren Sie permission@sei.cmu.edu für die vollständigen Bedingungen. [DISTRIBUTION STATEMENT A] Dieses Material wurde für die öffentliche Veröffentlichung und unbegrenzte Verbreitung genehmigt. Bitte siehe die Urheberrechtsanzeige für die nicht-US-Regierungsnutzung und -verbreitung. CERT® ist im US-Patent- und Markenamt von der Carnegie Mellon University eingetragen. Diese Software umfasst und/oder nutzt die folgenden Drittanbieter-Software, die ihren eigenen Lizenzbedingungen unterliegt:

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

DM20-0505

Autoreninformationen

Diese Rolle wurde 2019 von Matt Heckathorn erstellt.

Über das Projekt

A role to configure the rwreceiver service

Installieren
ansible-galaxy install cmusei.rwreceiver
GitHub Repository
Lizenz
other
Downloads
103
Besitzer
At the SEI, we research software engineering, cybersecurity, and AI engineering problems; create innovative technologies; and put solutions into practice.