Astra Linux Удаленное подключение по SSH

Astra Linux Удаленное подключение по SSH

Для обеспечения входа на удалённые серверы без лишних рисков необходимо изменить параметры демона OpenSSH. В конфигурационном файле /etc/ssh/sshd_config следует отключить аутентификацию по паролю и разрешить вход только по ключам.

Измените или добавьте следующие строки:


PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

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


systemctl restart ssh

Генерация пары ключей выполняется командой:


ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519

Открытый ключ необходимо добавить в файл ~/.ssh/authorized_keys на сервере. Убедитесь, что права доступа к каталогу и файлам настроены корректно:


chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

По умолчанию в системе действует политика запрета аутентификации от имени root через удалённое соединение. Если требуется доступ с привилегиями, используйте sudo или включите вход от root, изменив параметр PermitRootLogin на prohibit-password.

В дистрибутиве предусмотрены дополнительные механизмы контроля доступа, включая Mandatory Access Control (MAC). Если включены модули безопасности, убедитесь, что для sshd задан корректный контекст SELinux или AppArmor:


ls -Z /usr/sbin/sshd

Рекомендуется ограничить доступ по IP, добавив в /etc/hosts.allow:


sshd: 192.168.1.0/24

Аналогично, в /etc/hosts.deny можно запретить все остальные соединения:


sshd: ALL

Для дополнительной защиты можно настроить двухфакторную аутентификацию с использованием Google Authenticator. Установите пакет:

Читайте также:  Как решить ошибку PowerShell Запуск скриптов отключен в этой системе


apt install libpam-google-authenticator

Дальнейшая настройка выполняется через PAM и требует правки /etc/pam.d/sshd. Если требуется подробная инструкция по интеграции, обратитесь к документации системы.

Установка и запуск SSH-сервера в Astra Linux

Для корректной работы удаленного доступа необходимо установить пакет openssh-server. Используйте команду:

sudo apt install openssh-server -y

После завершения установки убедитесь, что служба активирована:

systemctl is-enabled ssh
sudo systemctl enable ssh

Запуск выполняется командой:

sudo systemctl start ssh

Проверить текущее состояние можно так:

systemctl status ssh

Если порт 22 используется другим процессом, выполните:

sudo netstat -tulnp | grep :22

Для смены порта редактируйте /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

Измените строку:

#Port 22

Например:

Port 2222

После сохранения изменений перезапустите сервис:

sudo systemctl restart ssh

Проверить корректность конфигурации:

sudo sshd -t

Для работы через файрволл откройте нужный порт:

sudo ufw allow 22/tcp

Для другого порта:

Читайте также:  Как установить браузер Google Chrome на Ubuntu 22.04 пошаговая инструкция

sudo ufw allow 2222/tcp

Проверить открытые порты:

sudo ufw status

Если используется iptables, выполните:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Для применения перезагрузите правила:

sudo netfilter-persistent save

Список базовых команд:

Команда Описание
systemctl restart ssh Перезапуск службы
systemctl stop ssh Остановка сервиса
systemctl disable ssh Отключение автозапуска

Настройка аутентификации по ключам SSH

Генерация пары ключей осуществляется командой:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""

Параметры:

  • -t ed25519 – алгоритм шифрования (Ed25519 предпочтителен по скорости и безопасности);
  • -f ~/.ssh/id_ed25519 – путь к файлу ключа;
  • -N "" – пустая парольная фраза (опционально).

Добавление открытого ключа на сервер:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host

Если ssh-copy-id отсутствует:

cat ~/.ssh/id_ed25519.pub | ssh user@host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Отключение входа по паролю в конфигурации сервера:

sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

Перезапуск службы:

sudo systemctl restart ssh

Проверка входа по ключу:

ssh user@host

Если клиент запрашивает пароль, проверьте:

  • права на ~/.ssh (700) и ~/.ssh/authorized_keys (600);
  • наличие строки PubkeyAuthentication yes в /etc/ssh/sshd_config;
  • соответствие пути ключа в ~/.ssh/config:

Host host
IdentityFile ~/.ssh/id_ed25519

Тестирование сервера на разрешенные методы входа:

Читайте также:  Скрипт Python для резервного копирования базы данных MySQL

ssh -o PreferredAuthentications=none -v user@host
sudo journalctl -u ssh --no-pager | tail -n 20

Основные параметры сервера:

Параметр Значение Описание
PubkeyAuthentication yes Разрешает вход по ключу
PasswordAuthentication no Отключает пароли
PermitRootLogin no Запрещает вход root

Ограничение доступа и управление пользователями SSH

Запрет входа под root: Отключите прямой доступ суперпользователя в файле /etc/ssh/sshd_config. Измените строку:

PermitRootLogin no

После внесения изменений выполните перезапуск службы:

systemctl restart ssh

Ограничение списка пользователей: Укажите разрешённых пользователей с помощью директив AllowUsers или AllowGroups:

AllowUsers user1 user2
AllowGroups sshusers

Запрещённые аккаунты можно задать через DenyUsers и DenyGroups.

Принудительное использование ключей: Включите параметр PasswordAuthentication no, чтобы запретить вход с паролем:

PasswordAuthentication no

Убедитесь, что у всех пользователей есть открытые ключи в ~/.ssh/authorized_keys.

Контроль времени сессии: Ограничьте простои с помощью:

ClientAliveInterval 300
ClientAliveCountMax 2

Ограничение числа подключений: Установите лимиты:

MaxAuthTries 3
MaxSessions 5

Дополнительные меры: Используйте /etc/security/access.conf для более гибкого контроля.

Параметр Описание Пример
AllowUsers Разрешает доступ только указанным пользователям AllowUsers admin
PermitRootLogin Запрещает вход под root PermitRootLogin no
MaxAuthTries Ограничивает число попыток входа MaxAuthTries 3

Видео по теме статьи [Настройка SSH-подключения в Astra Linux]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *