Подробный гайд: Восстановление Fly, SSH, su в Astra Linux после установки Dallas Lock - Часть 4
7. Диагностика именно влияния Dallas Lock
Ниже — универсальные команды, так как точные имена служб и файлов могут отличаться в разных версиях.
7.1. Найти компоненты СЗИ
Пакеты:
dpkg -l | grep -Ei 'dallas|dlk|lock'
Файлы и каталоги:
find /etc /opt /usr /var/log -maxdepth 4 \( -iname '*dallas*' -o -iname '*dlk*' \) 2>/dev/null
Службы:
systemctl list-units --all --no-pager | grep -Ei 'dallas|dlk|lock'
systemctl list-unit-files | grep -Ei 'dallas|dlk|lock'
find /etc/systemd/system /lib/systemd/system /usr/lib/systemd/system -iname '*dallas*' -o -iname '*dlk*' 2>/dev/null
Ядерные модули:
lsmod | grep -Ei 'dallas|dlk'
find /lib/modules/$(uname -r) -iname '*dallas*' -o -iname '*dlk*' 2>/dev/null
dmesg -T | grep -Ei 'dallas|dlk' | tail -n 50
7.2. Проверить логи СЗИ
Пути зависят от версии, но искать можно так:
find /var/log /opt /var -maxdepth 5 \( -iname '*dallas*' -o -iname '*dlk*' \) -type f 2>/dev/null
Пример просмотра:
tail -n 200 /var/log/dallaslock/*.log 2>/dev/null
tail -n 200 /var/log/dlk/*.log 2>/dev/null
tail -n 200 /opt/dallaslock/log/*.log 2>/dev/null
Ищите:
blocked
denied
policy
license
tamper
integrity
application control
network filter
pam
auth
session
7.3. Проверить изменения в PAM, sshd и автозапуске
grep -R -Ei 'dallas|dlk' \
/etc/pam.d \
/usr/share/pam-configs \
/etc/security \
/etc/ssh/sshd_config.d \
/etc/profile.d \
/etc/X11/Xsession.d \
/etc/environment \
/etc/systemd/system \
2>/dev/null
Проверить, нет ли подмен через dpkg-divert:
dpkg-divert --list | grep -Ei 'dallas|dlk|ssh|Xsession|pam' || true
Проверить dpkg-statoverride на изменение прав и setuid:
dpkg-statoverride --list | grep -E 'su|ssh|Xorg|pam' || true
7.4. Проверить, не защищает ли СЗИ свои файлы от изменения
Иногда правки не сохраняются из-за защиты от вмешательства.
lsattr -d /etc/pam.d 2>/dev/null
lsattr /etc/pam.d/common-auth /etc/pam.d/common-account /etc/pam.d/common-session /etc/pam.d/su /etc/ssh/sshd_config 2>/dev/null
Если установлен атрибут i immutable, изменять такие файлы можно только после согласованного отключения защиты или через штатные механизмы СЗИ.
8. Безопасный временный откат изменений
Этот раздел используйте только если есть понимание и разрешение на временное отключение/ослабление СЗИ.
8.1. Сделайте резервную копию
TS=$(date +%Y%m%d-%H%M%S)
mkdir -p /root/backup-$TS
cp -a /etc/pam.d /root/backup-$TS/ 2>/dev/null
cp -a /etc/security /root/backup-$TS/ 2>/dev/null
cp -a /etc/ssh /root/backup-$TS/ 2>/dev/null
cp -a /etc/X11 /root/backup-$TS/ 2>/dev/null
cp -a /etc/profile.d /root/backup-$TS/ 2>/dev/null
cp -a /etc/environment /root/backup-$TS/ 2>/dev/null
cp -a /etc/ld.so.preload /root/backup-$TS/ 2>/dev/null
cp -a /etc/systemd/system /root/backup-$TS/systemd-system 2>/dev/null
8.2. Временно отключить подозрительный PAM-модуль СЗИ
Сначала найдите строки:
grep -nE 'dallas|dlk' /etc/pam.d/common-auth /etc/pam.d/common-account /etc/pam.d/common-session /etc/pam.d/common-session-noninteractive /etc/pam.d/sshd /etc/pam.d/su 2>/dev/null
Затем вручную отредактируйте файлы и закомментируйте строки, относящиеся к СЗИ.
Например, из:
auth required pam_dallaslock.so
сделать:
# DISABLED FOR DIAGNOSTICS: auth required pam_dallaslock.so
После этого проверьте:
su - username -c 'id'
ssh -vvv username@localhost 'echo ssh-ok'
8.3. Убрать PAM-конфиг из pam-auth-update
Если СЗИ подключается через /usr/share/pam-configs:
mkdir -p /root/disabled-pam-configs
mv /usr/share/pam-configs/*dallas* /root/disabled-pam-configs/ 2>/dev/null
mv /usr/share/pam-configs/*dlk* /root/disabled-pam-configs/ 2>/dev/null
pam-auth-update --package
Если команда открывает интерактивный интерфейс, используйте консоль и аккуратно оставьте только необходимые стандартные модули.
8.4. Временно остановить службу СЗИ
Сначала узнайте точное имя:
systemctl list-units --all --no-pager | grep -Ei 'dallas|dlk|lock'
systemctl list-unit-files | grep -Ei 'dallas|dlk|lock'
Затем, если разрешено:
systemctl stop <имя-службы>
systemctl disable <имя-службы>
Не используйте вслепую шаблоны вроде dallas*, сначала получите точное имя службы.
8.5. Временно убрать скрипты из автозапуска и сессий
mkdir -p /root/disabled-hooks
mv /etc/profile.d/*dallas* /root/disabled-hooks/ 2>/dev/null
mv /etc/profile.d/*dlk* /root/disabled-hooks/ 2>/dev/null
mv /etc/X11/Xsession.d/*dallas* /root/disabled-hooks/ 2>/dev/null
mv /etc/X11/Xsession.d/*dlk* /root/disabled-hooks/ 2>/dev/null
mv /etc/xdg/autostart/*dallas* /root/disabled-hooks/ 2>/dev/null
mv /etc/xdg/autostart/*dlk* /root/disabled-hooks/ 2>/dev/null
8.6. Временно убрать LD_PRELOAD
Если есть /etc/ld.so.preload:
[ -f /etc/ld.so.preload ] && cp /etc/ld.so.preload /root/ld.so.preload.bak
[ -f /etc/ld.so.preload ] && : > /etc/ld.so.preload
Если переменные заданы в /etc/environment или /etc/profile.d, закомментируйте подозрительные строки:
grep -nE 'LD_PRELOAD|LD_LIBRARY_PATH|GTK_MODULES|QT_QPA_PLATFORM' /etc/environment /etc/profile.d/* 2>/dev/null
8.7. Временно разрешить SSH в сетевом фильтре
Если порт закрыт штатным файрволом:
ufw status verbose 2>/dev/null
iptables -S INPUT | grep -E '22|DROP|REJECT' || true
nft list ruleset 2>/dev/null | grep -E '22|drop|reject' || true
Если разрешено политикой, можно временно добавить правило:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
или для nftables:
nft add rule inet filter input tcp dport 22 accept
Но если фильтрация управляется самим СЗИ, правило надо править в политике СЗИ, а не только в системном файрволе.
8.8. Временно переключить контроль приложений в режим наблюдения
Если в логах видно, что СЗИ блокирует:
/usr/sbin/sshd;/bin/su;/usr/bin/fly*;/usr/lib/xorg/Xorg;dbus;- оболочки пользователя;
Правильное решение — не обходить защиту, а добавить разрешающие правила в политику СЗИ или перевести правило в режим аудита/наблюдения, если это допустимо.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.