50 lines
1.2 KiB
Django/Jinja
50 lines
1.2 KiB
Django/Jinja
#!/bin/bash
|
|
# Managed by Salt: PMG custom check via Kaspersky KESL.
|
|
|
|
set -u
|
|
|
|
LOG_DIR="{{ custom_check_log_dir }}"
|
|
KESL_BIN="/opt/kaspersky/kesl/bin/kesl-control"
|
|
SCAN_TARGET="${2:-}"
|
|
|
|
if [ -z "${SCAN_TARGET}" ]; then
|
|
echo "v1"
|
|
echo "ERROR: empty scan target"
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -p "${LOG_DIR}"
|
|
|
|
POLICY_NAME="$(pwgen 10 -1 -s -0)"
|
|
POLICY_FILE="${LOG_DIR}/${POLICY_NAME}.pol"
|
|
|
|
cat > "${POLICY_FILE}" <<EOF
|
|
ActionOnThreat=Inform
|
|
ReportCleanObjects=No
|
|
ScanFiles=Yes
|
|
ScanMailBases=Yes
|
|
ScanPlainMail=Yes
|
|
UseAnalyzer=Yes
|
|
HeuristicLevel=Medium
|
|
[ScanScope.item_0000]
|
|
Path=${SCAN_TARGET}
|
|
EOF
|
|
|
|
"${KESL_BIN}" --create-task "${POLICY_NAME}" --type ODS --file "${POLICY_FILE}" >/dev/null
|
|
VIRUS_NAME="$("${KESL_BIN}" --start-task "${POLICY_NAME}" -W | grep 'DetectName' | awk -F'=' '{print $2}' | head -1)"
|
|
"${KESL_BIN}" --delete-task "${POLICY_NAME}"
|
|
|
|
if [ -z "${VIRUS_NAME}" ]; then
|
|
rm -f "${POLICY_FILE}"
|
|
echo "Mail ${SCAN_TARGET} was checked successfully" >> "${LOG_DIR}/checked"
|
|
echo "v1"
|
|
echo "OK"
|
|
else
|
|
echo "In mail ${SCAN_TARGET} find ${VIRUS_NAME}" >> "${POLICY_FILE}"
|
|
echo "Mail ${SCAN_TARGET} was blocked. More info in ${POLICY_FILE}" >> "${LOG_DIR}/checked"
|
|
echo "v1"
|
|
echo "VIRUS: ${VIRUS_NAME}"
|
|
fi
|
|
|
|
exit 0
|