Подробный гайд по установке и безопасной настройке OpenSSH в Astra Linux
Шаг 1: Подготовка и установка OpenSSH-сервера
По умолчанию в Astra Linux установлен только SSH-клиент. Для возможности удалённого подключения необходимо установить серверную часть.
1. Откройте терминал и обновите списки пакетов:
sudo apt update
Примечание:
Если система запрашивает установочный диск, отредактируйте файл /etc/apt/sources.list, закомментировав строку с cdrom, и убедитесь, что подключены актуальные сетевые репозитории.
2. Установите пакет openssh-server (метапакет ssh установит и клиент, и сервер):
sudo apt install openssh-server
Шаг 2: Запуск службы и добавление в автозагрузку
После установки служба обычно запускается автоматически, но это стоит проверить.
# Проверка статуса службы
sudo systemctl status ssh
# Включение автозагрузки при старте системы
sudo systemctl enable ssh
# Запуск службы (если она не активна)
sudo systemctl start ssh
В Astra Linux Special Edition версий 1.7 и новее служба SSH стартует автоматически после перезагрузки системы.
Шаг 3: Базовая настройка безопасности (/etc/ssh/sshd_config)
Откройте конфигурационный файл в текстовом редакторе:
sudo nano /etc/ssh/sshd_config
Рекомендуемые параметры для повышения безопасности:
# Смените стандартный порт для снижения количества автоматических атак
Port 22345
# Запретите прямой вход под пользователем root
PermitRootLogin no
# Отключите аутентификацию по паролю (используйте только ключи)
PasswordAuthentication no
# Ограничьте количество попыток ввода и время ожидания
MaxAuthTries 3
LoginGraceTime 30s
# Разрешите аутентификацию по публичным ключам
PubkeyAuthentication yes
# Отключите проброс X11 и TCP-туннелей, если они не требуются
X11Forwarding no
AllowTcpForwarding no
После внесения изменений обязательно проверьте синтаксис файла, чтобы не потерять доступ:
sudo sshd -t
Если ошибок нет, перезапустите службу:
sudo systemctl restart ssh
Шаг 4: Настройка аутентификации по ключам
Этот шаг выполняется на клиентской машине, с которой вы будете подключаться.
1. Сгенерируйте пару ключей (если её ещё нет):
ssh-keygen -t rsa -b 4096
2. Скопируйте публичный ключ на сервер Astra Linux (укажите новый порт, если меняли его):
ssh-copy-id -p 22345 пользователь@IP_адрес_сервера
3. Проверьте подключение:
ssh -p 22345 пользователь@IP_адрес_сервера
Шаг 5: Специфика безопасности Astra Linux Special Edition (Parsec и мандатный контроль)
В версии Special Edition (SE) доступ по SSH дополнительно контролируется мандатным уровнем целостности и политиками безопасности (Parsec). Даже при идеальной настройке sshd_config вход может быть заблокирован на уровне ядра.
1. Проверка уровня безопасности:
cat /etc/astra_version
pdpl-info 2>/dev/null || echo "Мандатный контроль не активен"
2. Разрешение сетевого входа для пользователя:
В режимах "Повышенный" или "Максимальный" пользователю требуется явное разрешение на вход по сети.
Выполните от имени администратора безопасности:
sudo pdp-usermod --allow-network-login <имя_пользователя>
Альтернативный способ: использовать графическую утилиту: Пуск → Панель управления → Безопасность → Пользователи → снять галочку "Запретить сетевой вход".
3. Проверка меток целостности:
Убедитесь, что уровень целостности пользователя соответствует требованиям для запуска сетевых служб.
Шаг 6: Настройка брандмауэра и ограничение доступа по IP
Для дополнительной защиты рекомендуется ограничить доступ на уровне сети.
1. Через hosts.allow и hosts.deny (TCP Wrappers):
В файле /etc/hosts.deny запретите все подключения:
sshd: ALL
В файле /etc/hosts.allow разрешите только доверенные IP-адреса или подсети:
sshd: 192.168.1.0/24
sshd: 10.0.0.5
2. Через iptables (используется в Astra Linux по умолчанию):
# Разрешить подключения к новому порту (замените 22345 на ваш)
sudo iptables -A INPUT -p tcp --dport 22345 -j ACCEPT
# Сохранить правила
sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo systemctl restart netfilter-persistent
Если в вашей системе используется ufw, команда будет проще: sudo ufw allow 22345/tcp.
Шаг 7: Диагностика и проверка работы
Если подключение не проходит, выполните следующие шаги для поиска проблемы:
1. Убедитесь, что порт слушается:
sudo ss -tlnp | grep ssh
2. Проверьте логи аутентификации в реальном времени:
sudo journalctl -u ssh -f
# или
sudo tail -f /var/log/auth.log
3. Запустите клиент с подробным выводом для отладки:
ssh -vvv -p 22345 пользователь@IP_адрес_сервера
Ищите в выводе ошибки вроде parseclabel mismatch или pdpl denied, которые прямо указывают на блокировку со стороны мандатного контроля Astra Linux SE.
Чек-лист
- [ ] Пакет
openssh-serverустановлен и служба добавлена в автозагрузку. - [ ] Стандартный порт 22 изменён на нестандартный.
- [ ] Вход под пользователем
rootзапрещён (PermitRootLogin no). - [ ] Аутентификация по паролям отключена, настроен вход по ключам.
- [ ] Для Astra Linux SE: пользователю выдано разрешение на сетевой вход (
pdp-usermod). - [ ] Доступ ограничен по IP-адресам через
hosts.allowили брандмауэр. - [ ] Синтаксис конфигурации проверен командой
sshd -tбез ошибок.
Важно:
Всегда тестируйте изменения конфигурации SSH в новой сессии терминала, не закрывая текущее активное подключение. Это позволит откатить изменения, если что-то пойдёт не так, и вы не потеряете доступ к серверу.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.