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 :
- 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 ligneExpand_dlfunc
. - Faites une copie de sauvegarde des fichiers de configuration Exim.
- 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 typeacl_smtp_data = acl_check_data
(il peut y avoir une autre variable ou macro au lieu deacl_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
- Si nécessaire, après avoir terminé les modifications du fichier de configuration, régénérez le fichier de configuration principal d'Exim.
- 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.
- Ajoutez l'utilisateur sous lequel le processus Exim est exécuté aux groupes
klusers
etkl_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.
- 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 surfalse
ou non spécifié :workdir=/tmp
- Si le fichier Exim Unit a le paramètre
PrivateTmp
défini surtrue
:workdir=/var/opt/kaspersky/ksmg/tmp
- Si le fichier Exim Unit a le paramètre
- 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
- Relancez le service ksmg.
- Relancez le serveur de messagerie Exim.
L'intégration avec Exim sera terminée.