#!/bin/bash
# setup_mp10_client.sh - настройка клиента для отправки логов auditd в MP10
set -e
if [ $# -lt 1 ]; then
echo "Usage: $0 <MP10_AGENT_IP> [<audit_rules_file>]"
exit 1
fi
AGENT_IP="$1"
RULES_FILE="$2"
echo "=== Настройка клиента для отправки логов в MP10 Agent $AGENT_IP ==="
# 1. Резервное копирование существующих конфигов
BACKUP_SUFFIX=".backup_$(date +%Y%m%d_%H%M%S)"
cp /etc/audit/auditd.conf "/etc/audit/auditd.conf$BACKUP_SUFFIX" 2>/dev/null || true
cp /etc/audisp/plugins.d/syslog.conf "/etc/audisp/plugins.d/syslog.conf$BACKUP_SUFFIX" 2>/dev/null || true
cp /etc/syslog-ng/conf.d/10-siem.conf "/etc/syslog-ng/conf.d/10-siem.conf$BACKUP_SUFFIX" 2>/dev/null || true
# 2. Настройка auditd.conf
echo "Настройка /etc/audit/auditd.conf..."
cat > /etc/audit/auditd.conf <<EOF
log_file = /var/log/audit/audit.log
log_format = enriched
name_format = hostname
disp_qos = lossless
write_logs = no
EOF
# 3. Установка правил auditd
if [ -n "$RULES_FILE" ] && [ -f "$RULES_FILE" ]; then
echo "Копирование правил auditd из $RULES_FILE"
cp "$RULES_FILE" /etc/audit/rules.d/00-siem.rules
else
echo "Файл правил не указан. Создаю базовый набор правил (минимальный)."
cat > /etc/audit/rules.d/00-siem.rules <<'EOF'
# Базовые правила для MP10 (упрощённые)
-D
-b 8192
-a always,exit -F arch=b64 -S execve -k pt_siem_execve
-a always,exit -F arch=b64 -S open,openat -F path=/etc/shadow -F perm=r -k pt_siem_etc_read
-w /etc -p wa -k pt_siem_etc_modify
EOF
fi
# 4. Отключение systemd-journald-audit.socket
echo "Отключение systemd-journald-audit.socket..."
systemctl disable --now systemd-journald-audit.socket 2>/dev/null || true
systemctl mask systemd-journald-audit.socket 2>/dev/null || true
systemctl restart systemd-journald
systemctl restart auditd
# 5. Настройка audisp syslog plugin
echo "Настройка /etc/audisp/plugins.d/syslog.conf..."
cat > /etc/audisp/plugins.d/syslog.conf <<EOF
active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_LOCAL6
format = string
EOF
# 6. Настройка syslog-ng
echo "Создание /etc/syslog-ng/conf.d/10-siem.conf с IP агента $AGENT_IP..."
cat > /etc/syslog-ng/conf.d/10-siem.conf <<EOF
@define allow-config-dups 1
filter f_audit {
program("audit")
or program("audispd")
or program("audisp-syslog");
};
filter f_messages {
level(info,notice,warn)
and not facility(auth,authpriv,cron,daemon,mail,news)
and not filter(f_audit);
};
filter f_syslog3 {
not facility(auth, authpriv, mail)
and not filter(f_debug)
and not filter(f_audit);
};
filter pt_siem_filter {
(facility(local6) or priority(info))
and not facility(mail, lpr, news, uucp, cron);
};
destination siem_agent_udp {
udp("$AGENT_IP" port(514));
};
log {
source(s_src);
filter(pt_siem_filter);
destination(siem_agent_udp);
};
EOF
# 7. Перезапуск служб
echo "Перезапуск auditd и syslog-ng..."
systemctl restart auditd
systemctl restart syslog-ng
echo "=== Настройка завершена. ==="
echo "Проверьте статус служб:"
echo " systemctl status auditd syslog-ng"
echo "Проверьте отправку логов:"
echo " journalctl -u syslog-ng -f | grep '10.8.10.25'"