Гайд: 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/MACConnection reset by peer→ брандмауэр/сетевое оборудованиеFailed publickey/password→ права на~/.ssh,authorized_keys, или настройки sshdparseclabel 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. Рекомендации по безопасности
- Не оставляйте
PermitRootLogin yesв продуктивной среде. Используйте ключи иsudo. - В Astra SE всегда проверяйте соответствие меток целостности пользователей и процессов.
- Регулярно обновляйте систему:
sudo apt update && sudo apt upgrade. - Для централизованного управления доступом используйте
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"