Подробный гайд: Восстановление Fly, SSH, su в Astra Linux после установки Dallas Lock - Часть 5

Подробный гайд по восстановлению работы Fly, SSH и su в Astra Linux после установки СЗИ Dallas Lock. Разбор PAM, политик и сетевых фильтров.

2026.10.06                  


Подробный гайд: Восстановление Fly, SSH, su в Astra Linux после установки Dallas Lock - Часть 5Подробный гайд: Восстановление Fly, SSH, su в Astra Linux после установки Dallas Lock - Часть 5

9. Если нет доступа: восстановление через rescue

Если ни SSH, ни su, ни локальный вход не работают, используйте аварийную загрузку.


9.1. Через GRUB в rescue

В GRUB:

  1. Нажмите e на нужном пункте.

2. В строке ядра добавьте:

systemd.unit=rescue.target

3. Загрузитесь.

Если попросит пароль администратора, введите его.

Если нужно перемонтировать корень на запись:

mount -o remount,rw /

9.2. Через init=/bin/bash



Если rescue не помогает или пароль недоступен:

В строке ядра GRUB временно укажите:

init=/bin/bash

После загрузки:

mount -o remount,rw /

Дальше можно:

- сменить пароль root:

passwd root

- разблокировать пользователя:

passwd username
  • отредактировать PAM;
  • убрать /etc/nologin;
  • восстановить конфиги из резервной копии.

После изменений:

sync
exec /sbin/init

Или принудительная перезагрузка, если система не переходит в нормальный режим:

reboot -f

Внимание: если используется шифрование, вам всё равно нужен пароль/ключ шифрования. Если включён пароль на GRUB или безопасная загрузка ограничивает редактирование, могут потребоваться другие процедуры.


9.3. Через Live-носитель и chroot

Для зашифрованных/LVM-систем общий порядок такой:

# Открыть шифрованный раздел
cryptsetup open /dev/XXXX cryptroot

# Активировать LVM
vgchange -ay

# Смонтировать корневой раздел
mount /dev/mapper/XXXX /mnt

# Подготовить окружение
for d in dev proc sys run; do mount --bind /$d /mnt/$d; done

# Войти
chroot /mnt

Дальше выполняете диагностику и правки как в обычной системе.


10. Проверка после исправлений

После каждого изменения проверяйте не один, а несколько сценариев.

10.1. Проверка учётки

U=username
id "$U"
chage -l "$U"
passwd -S "$U"
faillock --user "$U" 2>/dev/null || true

10.2. Проверка su

su - "$U" -c 'id; echo HOME=$HOME; echo SHELL=$SHELL'

Если su не нужен по политике, используйте:

runuser -l "$U" -c 'id'
sudo -u "$U" id

10.3. Проверка SSH

ssh -vvv "$U"@localhost 'echo ssh-ok'
ssh -vvv -o PreferredAuthentications=password -o PubkeyAuthentication=no "$U"@localhost 'echo password-ok'

Если нужно проверить ключ:

ssh -vvv -o PreferredAuthentications=publickey -o IdentitiesOnly=yes "$U"@localhost 'echo key-ok'

10.4. Проверка пользовательского окружения

runuser -u "$U" -- env | grep -E 'DISPLAY|XAUTHORITY|DBUS_SESSION_BUS_ADDRESS|XDG_RUNTIME_DIR|LD_PRELOAD|LD_LIBRARY_PATH'
runuser -u "$U" -- id
runuser -u "$U" -- dbus-launch true

10.5. Проверка графики

Перезапустите дисплейный менеджер, если это допустимо:

systemctl restart display-manager

Или перезагрузите систему, если менялись:

  • /etc/ld.so.preload;
  • переменные окружения;
  • ядро/модули;
  • PAM;
  • службы безопасности.

Проверьте:

systemctl status display-manager --no-pager
loginctl list-sessions
journalctl -b -p warning..err --no-pager | tail -n 100

10.6. Создать тестового пользователя

Очень полезный шаг. Если тестовый пользователь работает, а реальный нет — проблема в профиле/домашнем каталоге/группах/метках конкретного пользователя.

useradd -m -s /bin/bash diaguser
passwd diaguser

id diaguser
su - diaguser -c 'id'
ssh diaguser@localhost 'echo ok'

После диагностики удалите:

userdel -r diaguser

11. Типовые ошибки и решения

11.1. Permission denied (publickey,password)

Причины:

  • неверный пароль;
  • аккаунт заблокирован;
  • пароль истёк;
  • PasswordAuthentication no;
  • AllowUsers/DenyUsers;
  • PAM-модуль СЗИ запрещает вход;
  • ключ не подходит;
  • неверные права на ~/.ssh.

Что делать:

passwd -S username
chage -l username
faillock --user username 2>/dev/null || true
/usr/sbin/sshd -T | grep -Ei 'passwordauthentication|pubkeyauthentication|allowusers|denyusers|allowgroups|denygroups|authenticationmethods'
ls -ld /home/username/.ssh /home/username/.ssh/authorized_keys

11.2. Connection closed by authenticating user

Причины:

  • сессия открывается и сразу закрывается;
  • ForceCommand;
  • пользовательский профиль завершает работу;
  • pam_exec скрипт СЗИ падает;
  • оболочка отсутствует;
  • блокировка со стороны СЗИ.


Проверка:

ssh username@localhost /bin/true
ssh username@localhost 'echo ok'
getent passwd username | cut -d: -f7
grep -R 'ForceCommand' /etc/ssh/sshd_config /etc/ssh/sshd_config.d 2>/dev/null
grep -R 'pam_exec' /etc/pam.d 2>/dev/null

11.3. Your account has expired / Password expired

chage -l username
passwd username
chage -E -1 username

11.4. Authentication failure в su

Проверка:

tail -n 100 /var/log/auth.log | grep su
grep -n 'pam_rootok' /etc/pam.d/su
grep -n 'pam_wheel' /etc/pam.d/su
SU_BIN=$(readlink -f "$(command -v su)")
ls -l "$SU_BIN"

11.5. su: Authentication service cannot retrieve authentication info

Возможные причины:

  • NSS/LDAP/SSSD недоступны;
  • повреждён /etc/passwd или /etc/shadow;
  • PAM не может получить данные.

Проверка:

timeout 5 getent passwd username; echo rc=$?
timeout 5 id username; echo rc=$?
systemctl status sssd --no-pager || true
pwck -r
grpck -r

11.6. Fly возвращается в экран входа

Проверка:

tail -n 200 ~/.xsession-errors
journalctl _UID=$(id -u username) -b --no-pager | tail -n 200
journalctl -u display-manager -b --no-pager | tail -n 200
dmesg -T | grep -Ei 'segfault|denied|blocked|apparmor|parsec' | tail -n 50

11.7. Чёрный экран после входа

Проверка:

grep -E '\(EE\)|\(WW\)' /var/log/Xorg.0.log 2>/dev/null
grep -E '\(EE\)|\(WW\)' ~/.local/share/xorg/Xorg.0.log 2>/dev/null
runuser -u username -- env | grep -E 'DISPLAY|XAUTHORITY|LD_PRELOAD|LD_LIBRARY_PATH|QT_QPA_PLATFORM|GTK_MODULES'

Что можно временно попробовать:

sudo -u username bash -lc '
mkdir -p ~/fly-config-backup
mv ~/.config/fly* ~/fly-config-backup/ 2>/dev/null
mv ~/.config/Fly* ~/fly-config-backup/ 2>/dev/null
mv ~/.Xauthority ~/fly-config-backup/ 2>/dev/null
mv ~/.ICEauthority ~/fly-config-backup/ 2>/dev/null
'

11.8. Fly вообще не отображается в списке сессий

ls -l /usr/share/xsessions/
grep -E 'Exec|TryExec' /usr/share/xsessions/*.desktop 2>/dev/null
dpkg -l | grep -Ei 'fly'

Если файл сессии отсутствует, возможно, пакет окружения был удалён или установка СЗИ привела к конфликту пакетов.

11.9. Порт 22 не слушается

systemctl status ssh sshd --no-pager || true
ss -ltnp | grep ':22'
systemctl cat ssh.service ssh.socket 2>/dev/null | grep -E 'ExecStart|Listen'

Проверьте:

  • служба запущена;
  • не используется socket activation;
  • не изменён порт;
  • нет другого процесса на порту 22.

11.10. Ошибка конфигурации sshd

/usr/sbin/sshd -t

Исправьте файл, на который ругается вывод.

Обычно это:

/etc/ssh/sshd_config
/etc/ssh/sshd_config.d/*.conf

После правки:

/usr/sbin/sshd -t
systemctl reload ssh || systemctl restart ssh

Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта