Intégration manuelle au serveur de messagerie Exim

3 juillet 2024

ID 56941

Si lors de la configuration initiale de l'application vous avez manqué l'intégration automatique de l'application avec le serveur de messagerie, vous devez intégrer manuellement l'application KSMG avec le serveur de messagerie.

Vous pouvez intégrer manuellement KSMG au serveur de messagerie Exim à l'aide de la méthode d'intégration avant la file d'attente à l'aide d'une bibliothèque chargée dynamiquement (dlfunc). Dans ce cas, les messages sont soumis à l'analyse de l'application KSMG avant la mise en file d'attente sur le serveur de messagerie Exim. L'intégration après la file d'attente (intégration after-queue) n'est pas prise en charge.

En fonction de la distribution du système d'exploitation, vous devez apporter des modifications dans un ou plusieurs fichiers de configuration du serveur de messagerie Exim :

  • Sur les systèmes d'exploitation Red Hat Enterprise Linux et Rocky Linux, des modifications sont apportées au fichier de configuration principal /etc/exim/exim.conf.
  • Sur les systèmes d'exploitation Ubuntu :
    • Si le fichier de configuration est généré à partir d'un modèle monolithique, les modifications sont apportées au fichier modèle /etc/exim4/exim4.conf.template.
    • Si le fichier de configuration est généré à partir d'un modèle fractionné, les modifications sont apportées au fichier modèle /etc/exim4/conf.d/acl/40_exim4-config_check_data ou similaire.

Pour effectuer l'intégration avant la file d'attente de KSMG avec Exim :

  1. Assurez-vous que le serveur de messagerie Exim prend en charge les fonctions de la bibliothèque de chargement dynamique dlfunc. Pour ce faire, exécutez la commande :

    exim -bV

    Le serveur de messagerie Exim prend en charge les fonctions de bibliothèque chargées dynamiquement dlfunc si la section Support for contient la ligne Expand_dlfunc.

  2. Faites une copie de sauvegarde des fichiers de configuration Exim.
  3. Apportez des modifications dans la liste du contrôle de l'accès pour acl_smtp_data. Pour ce faire, localisez dans le fichier (les fichiers) de configuration Exim la ligne du type

    acl_smtp_data = acl_check_data (il peut y avoir une autre variable ou macro au lieu de acl_check_data)

    et après la ligne du type

    acl_check_data : (ou une ligne contenant une autre variable ou macro)

    ajoutez les lignes suivantes :

    # Manually added block ksmg-exim-filter-dflunc begin

    warn set acl_m_ksmg_input_directory = ${spool_directory}/input

      set acl_m_ksmg_lookup_result = ${lookup {$message_id-D} dsearch {$acl_m_ksmg_input_directory}}

    warn condition = ${if eq {$acl_m_ksmg_lookup_result}{}{yes}{no}}

      set acl_m_ksmg_input_directory = ${spool_directory}/input/${substr{5}{1}{$message_id}}

    warn set acl_m_ksmg_answer = ${dlfunc{DLFUNC_LIBRARY_FULLPATH}{scan}{$acl_m_ksmg_input_directory}}

    defer condition = ${if match {$acl_m_ksmg_answer}{^[245]}{no}{yes}}

      log_message = KSMG check failed, unexpected answer: $acl_m_ksmg_answer

    defer condition = ${if match {$acl_m_ksmg_answer}{^4}{yes}{no}}

      log_message = KSMG check defer: $acl_m_ksmg_answer

    deny condition = ${if match {$acl_m_ksmg_answer}{^5}{yes}{no}}

      log_message = KSMG check reject: $acl_m_ksmg_answer

      message = This message is blocked due to security reason

    warn condition = ${if match {$acl_m_ksmg_answer}{^2}{yes}{no}}

      logwrite = KSMG check accept: $acl_m_ksmg_answer

    # Manually added block ksmg-exim-filter-dlfunc ends here

    où DLFUNC_LIBRARY_FULLPATH est le chemin d'accès à la bibliothèque dlfunc. Le chemin d'accès à la bibliothèque dépend de la version d'Exim et peut ressembler à ceci :

    • pour Exim de la version 4.86 à la version 4.90 non incluse – /opt/kaspersky/ksmg/lib/libklms-exim-abi20-1.so
    • pour Exim de la version 4.90 à la version 4.93 non incluse – /opt/kaspersky/ksmg/lib/libklms-exim-abi20-2.so
    • pour Exim de la version 4.93 à la version 4.94 non incluse – /opt/kaspersky/ksmg/lib/libklms-exim-abi31.so
    • pour Exim de la version 4.94 à la version 4.96 non incluse – /opt/kaspersky/ksmg/lib/libklms-exim-abi41.so
    • pour Exim à partir de la version 4.96 et supérieure – /opt/kaspersky/ksmg/lib/libklms-exim-abi60.so
  4. Si nécessaire, après avoir terminé les modifications du fichier de configuration, régénérez le fichier de configuration principal d'Exim.
  5. Ajoutez l'utilisateur kluser au groupe contenant l'utilisateur qui exécute le processus exim.

    Par défaut, dans les systèmes d'exploitation Red Hat Enterprise Linux et Rocky Linux, ce groupe est appelé exim, dans les systèmes d'exploitation Ubuntu - Debian-exim.

  6. Ajoutez l'utilisateur sous lequel le processus Exim est exécuté aux groupes klusers et kl_var_users.

    Par défaut, sur les systèmes d'exploitation Red Hat Enterprise Linux et Rocky Linux, ce nom d'utilisateur est exim, sur les systèmes d'exploitation Ubuntu, il s'agit de Debian-exim.

  7. Dans le fichier de paramètres de filtre /etc/opt/kaspersky/ksmg/filters.conf dans la section [global], définissez les valeurs de paramètres suivantes :

    scanner=unix:/var/run/ksmg/klms_scanner_sock

    header-guard=false

    • Si le fichier Exim Unit a le paramètre PrivateTmp défini sur false ou non spécifié :

      workdir=/tmp

    • Si le fichier Exim Unit a le paramètre PrivateTmp défini sur true :

      workdir=/var/opt/kaspersky/ksmg/tmp

  8. Dans le fichier /var/opt/kaspersky/ksmg/installer.dat, définissez les valeurs de paramètre suivantes :

    MTA_INTEGRATION_METHOD=dlfunc

    MTA_INTEGRATION_MODE=prequeue

    filters_workdir=<valeur du paramètre workdir de l'étape 7>

    mta=manual

    START_SMTP_PROXY =0

    START_MILTER=0

  9. Relancez le service ksmg.
  10. Relancez le serveur de messagerie Exim.

L'intégration avec Exim sera terminée.

Cet article vous a-t-il été utile ?
Que pouvons-nous améliorer ?
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.