Гайд: SSH в Astra Linux 1.7: установка, конфигурация, брандмауэр, Parsec и диагностика проблем

Подробное руководство по настройке SSH в Astra Linux 1.7: установка, конфигурация, брандмауэр, Parsec, диагностика и решение проблем подключения

2026.05.10                  


Гайд: SSH в Astra Linux 1.7: установка, конфигурация, брандмауэр, Parsec и диагностика проблемГайд: SSH в Astra Linux 1.7: установка, конфигурация, брандмауэр, Parsec и диагностика проблем

Важно:

Astra Linux 1.7 официально снята с поддержки. Рекомендации ниже основаны на архитектуре Debian-совместимых выпусков Astra 1.x и актуальны для CE (Common Edition) и SE (Special Edition). Если возможно, рассмотрите обновление до 1.8/2.12+.


1. Проверка установки и состояния службы SSH

# Проверка наличия пакета
dpkg -l | grep openssh-server

# Если не установлен
sudo apt update
sudo apt install openssh-server

# Проверка статуса службы (в 1.7 обычно называется ssh.service)
sudo systemctl status ssh
# Если служба не найдена, попробуйте sshd.service:
sudo systemctl status sshd

Запуск и автозагрузка:

sudo systemctl enable ssh
sudo systemctl start ssh

Ожидаемый результат: Active: active (running)


2. Проверка конфигурации /etc/ssh/sshd_config

Откройте файл:

sudo nano /etc/ssh/sshd_config

Убедитесь, что следующие параметры не закомментированы и имеют корректные значения:

Port 22
ListenAddress 0.0.0.0          # или конкретный IP интерфейса
PermitRootLogin yes            # временно для отладки, лучше prohibit-password или no
PasswordAuthentication yes     # если входите по паролю
PubkeyAuthentication yes
UsePAM yes

Если меняли файл:

# Проверка синтаксиса
sudo sshd -t
# Перезапуск
sudo systemctl restart ssh

3. Брандмауэр (iptables / nftables)

Astra Linux 1.7 по умолчанию использует iptables.

Проверьте правила:

sudo iptables -L INPUT -n -v --line-numbers

Если нет правила для порта 22, добавьте:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Сохраните правила (зависит от системы сохранения в вашей сборке)
sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo systemctl restart iptables   # или netfilter-persistent

Если используется ufw (реже в 1.7):

sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status

4. Специфика безопасности Astra Linux (SE / CE)

В Special Edition доступ по SSH контролируется мандатным уровнем (Parsec) и политиками PDP.

4.1. Проверка уровня безопасности

cat /etc/astra_version
# или
pdpl-info 2>/dev/null || echo "Мандатный контроль не активен"

Если включён режим "Повышенный" или "Максимальный", SSH может требовать:

  • Корректной метки целостности у пользователя
  • Явного разрешения на сетевой вход

4.2. Разрешение входа по SSH для пользователя (SE)

# Проверить текущие ограничения
pdp-user -l <имя_пользователя>

# Разрешить сетевой вход (требует прав администратора безопасности)
sudo pdp-usermod --allow-network-login <имя_пользователя>
# или через графическую утилиту: astra-security → Пользователи → Разрешить вход по сети

4.3. PAM и доступ

Проверьте /etc/pam.d/sshd и /etc/security/access.conf.

Убедитесь, что нет строк вроде:

-:ALL:ALL

или ограничений по pam_nologin.so, pam_time.so.


5. Сетевая диагностика

# Проверка IP и состояния интерфейса
ip a
ip route

# Проверка слушает ли sshd порт 22
sudo ss -tlnp | grep :22
# или
sudo netstat -tlnp | grep :22

Если порт не в состоянии LISTEN:

  • Служба не запущена
  • sshd_config содержит ListenAddress с неверным IP
  • Блокировка на уровне AppArmor/Parsec (см. логи)

Проверьте доступность с клиента:

nc -zv <IP_астры> 22
# или
telnet <IP_астры> 22
  • Connection refused → служба не слушает или фаервол
  • No route to host → маршрут/маршрутизатор
  • Timeout → фаервол/маршрутизатор блокирует ICMP/TCP

6. Логи и отладка

Включите подробный лог в /etc/ssh/sshd_config:

LogLevel DEBUG3

Перезапустите службу и мониторьте:

sudo systemctl restart ssh
sudo journalctl -u ssh -f
# или
sudo tail -f /var/log/auth.log

С клиента запустите:

ssh -vvv пользователь@IP_астры

Ищите в логах ключевые слова:

  • Access denied → аутентификация/PAM/MAC
  • Connection reset by peer → брандмауэр/сетевое оборудование
  • Failed publickey/password → права на ~/.ssh, authorized_keys, или настройки sshd
  • parseclabel mismatch / pdpl denied → мандатный контроль

7. Частые проблемы и решения

Симптом Причина Решение
Connection refused Служба не запущена / порт не слушает systemctl start ssh, проверить ListenAddress
Permission denied (publickey,password) Запрет паролей, неверные права на ключи PasswordAuthentication yes, chmod 600 ~/.ssh/authorized_keys
Host key verification failed Сменился хост-ключ ssh-keygen -R <IP>
Access denied by PAM Ограничения в /etc/security/access.conf или pam.d/sshd Проверить PAM, временно закомментировать restrictive правила
parseclabel denied MAC блокирует процесс sshd или пользователя pdpl-info, проверить метки через pdp-user, при необходимости снизить уровень или назначить корректную метку

8. Рекомендации по безопасности

  1. Не оставляйте PermitRootLogin yes в продуктивной среде. Используйте ключи и sudo.
  2. В Astra SE всегда проверяйте соответствие меток целостности пользователей и процессов.
  3. Регулярно обновляйте систему: sudo apt update && sudo apt upgrade.
  4. Для централизованного управления доступом используйте astra-control или pdpl-admin (если развернуты).

Итоговый чек-лист

  • [ ] openssh-server установлен и запущен
  • [ ] sshd_config корректен, синтаксис проверен (sshd -t)
  • [ ] Порт 22 открыт в iptables/брандмауэре
  • [ ] Пользователь имеет право сетевого входа (в SE)
  • [ ] Нет блокировок в PAM / Parsec / access.conf
  • [ ] Логи не содержат denied/reset/label mismatch

Если после всех шагов проблема сохраняется, сохраните вывод:

sudo systemctl status ssh
sudo ss -tlnp | grep :22
sudo journalctl -u ssh --no-pager -n 50
sudo iptables -L INPUT -n -v
pdpl-info 2>/dev/null || echo "Parsec inactive"