Подробный гайд: Установка и настройка openssh 8.0 для Alt Linux
Важное замечание:
OpenSSH версии 8.0 (вышел в 2019 году) на сегодняшний день считается устаревшим. В официальных репозиториях современных версий ALT Linux (p10, Sisyphus) уже используются более новые и безопасные версии (8.8, 9.x и выше).
Поэтому в гайде я рассмотрю два сценария:
- Стандартная установка из репозиториев ALT Linux (рекомендуется для безопасности).
- Сборка из исходного кода строго версии 8.0p1 (если эта версия требуется по жестким условиям совместимости или регламентам).
Сценарий 1: Стандартная установка из репозиториев (Рекомендуется)
Если вам не критична именно версия 8.0, а нужен просто рабочий и безопасный SSH-сервер, используйте штатные пакеты.
1. Обновите списки пакетов и установите сервер и клиент:
su -
apt-get update
apt-get install openssh-server openssh-clients
2. Перейдите к Части 3 (Настройка конфигурации).
Сценарий 2: Установка строго OpenSSH 8.0p1 (Сборка из исходников)
Если вам необходима именно версия 8.0, ее нужно скомпилировать вручную, так как в репозиториях ее уже нет.
Шаг 2.1: Подготовка системы и установка зависимостей
Установите необходимые инструменты и библиотеки для компиляции:
apt-get update
apt-get install gcc make zlib-devel libopenssl-devel pam-devel wget
Шаг 2.2: Создание пользователя и директорий
OpenSSH требует непривилегированного пользователя для разделения привилегий (privilege separation):
# Создаем пользователя sshd, если его нет
id sshd &>/dev/null || useradd -r -d /var/lib/sshd -s /sbin/nologin sshd
# Создаем директорию для privsep
mkdir -p /var/lib/sshd
chown root:sys /var/lib/sshd
chmod 755 /var/lib/sshd
Шаг 2.3: Скачивание и компиляция
1. Скачайте архив с исходным кодом OpenSSH 8.0p1:
cd /usr/src
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
tar -xzf openssh-8.0p1.tar.gz
cd openssh-8.0p1
2. Настройте сборку (флаги оптимизированы под ALT Linux):
./configure \
--prefix=/usr \
--sysconfdir=/etc/ssh \
--with-pam \
--with-privsep-path=/var/lib/sshd \
--with-privsep-user=sshd \
--with-md5-passwords \
--with-ssl-engine
3. Скомпилируйте и установите:
make
make install
Примечание:
Если вы устанавливаете это на рабочую машину, где уже есть SSH, make install перезапишет бинарные файлы. Убедитесь, что у вас есть альтернативный доступ (например, через консоль провайдера/гипервизора) на случай, если что-то пойдет не так.
Шаг 2.4: Генерация хост-ключей
Если ключи не сгенерировались автоматически:
ssh-keygen -A
Часть 3: Настройка конфигурации (/etc/ssh/sshd_config)
Независимо от того, как вы устанавливали OpenSSH, конфигурационный файл находится по пути /etc/ssh/sshd_config.
Откройте его в текстовом редакторе (например, nano или vim):
nano /etc/ssh/sshd_config
Вот рекомендуемые параметры для безопасной и корректной работы (найдите эти строки и раскомментируйте/измените их):
# 1. Сетевые параметры
Port 2222 # Рекомендуется сменить стандартный порт 22 на другой (например, 2222) для снижения шума от ботов
ListenAddress 0.0.0.0 # Слушать все IPv4 интерфейсы
# ListenAddress :: # Раскомментируйте, если нужен IPv6
# 2. Аутентификация
PermitRootLogin no # Запретить прямой вход под root (ОЧЕНЬ ВАЖНО)
PasswordAuthentication no # Отключаем вход по паролям (только по ключам!)
PubkeyAuthentication yes # Включаем вход по SSH-ключам
PermitEmptyPasswords no # Запретить пустые пароли
# 3. Ограничения и безопасность
MaxAuthTries 3 # Максимальное количество попыток ввода пароля/ключа
MaxSessions 5 # Максимальное количество сессий на одно соединение
LoginGraceTime 60 # Время на успешную аутентификацию (в секундах)
ClientAliveInterval 300 # Проверка "живости" клиента каждые 5 минут
ClientAliveCountMax 2 # Количество проверок перед разрывом соединения
# 4. Доступ (опционально, но рекомендуется)
# AllowUsers denis admin # Разрешить вход только конкретным пользователям
# AllowGroups sshusers # Или только участникам группы sshusers
# 5. Логирование
LogLevel VERBOSE # Подробное логирование для аудита
Совет:
Если вы отключаете PasswordAuthentication, обязательно убедитесь, что вы уже добавили свой публичный ключ в ~/.ssh/authorized_keys на сервере, иначе вы потеряете доступ!
Часть 4: Управление службой в ALT Linux
В ALT Linux используется systemd. Проверьте, запущен ли сервис и добавьте его в автозагрузку.
1. Перезапустите службу, чтобы применить новые настройки:
systemctl restart sshd
2. Включите автозапуск при загрузке системы:
systemctl enable sshd
3. Проверьте статус (убедитесь, что нет ошибок Active: active (running)):
systemctl status sshd
Часть 5: Настройка межсетевого экрана (Firewall)
В ALT Linux по умолчанию используется iptables. Если вы сменили порт (например, на 2222), его нужно открыть.
1. Добавьте правило в iptables:
# Если порт 22:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Если вы сменили порт на 2222:
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
2. Сохраните правила iptables, чтобы они не сбросились после перезагрузки (стандартный механизм ALT Linux):
iptables-save > /etc/sysconfig/iptables
Часть 6: Генерация SSH-ключей (на стороне клиента)
Так как мы отключили вход по паролю, вам нужно сгенерировать ключи на вашем рабочем компьютере (не на сервере).
В Linux/macOS или Windows (PowerShell):
# Генерация современного и безопасного ключа Ed25519
ssh-keygen -t ed25519 -C "des.ser@work"
# Или RSA 4096, если нужна совместимость со старыми системами
ssh-keygen -t rsa -b 4096 -C "des.ser@work"
Копирование ключа на сервер:
# Замените user и IP/порт на свои
ssh-copy-id -p 2222 user@server_ip
После этого вы сможете подключаться без ввода пароля:
ssh -p 2222 user@server_ip
Важно
После выполнения этих шагов ваш SSH-сервер будет полностью настроен. Для финальной проверки не закрывайте текущую сессию SSH. Откройте новое окно терминала и попробуйте подключиться с новыми настройками. Если все работает — можно закрывать старую сессию.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.