Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
- Astra Linux Common Edition 2.12
Установка пакетов
Пакеты SSH (служба sshd — пакет openssh-server и клиент ssh — пакет openssh-client) входят в дистрибутивы Astra Linux. При установке ОС по умолчанию устанавливается только клиент (openssh-client).
Установку сервера можно выполнить:
- при установке ОС, отметив соответствующий пункт в диалоге выбора программного обеспечения. При этом будет установлен пакет openssh-server;
после установки ОС с помощью графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки:
sudo apt install sshПри установке пакета ssh устанавливаются и клиент и сервер.
Установленная с помощью графического менеджера пакетов или из командной строки служба запускается автоматически, а также сразу включается перезапуск службы после перезагрузки ОС.
Служба, установленная при установке ОС:
- в Astra Linux Common Edition начиная с обновления 2.12.12 и в Astra Linux Special Edition x.7 сервер SSH запускается после перезагрузки автоматически;
в более ранних обновлениях автоматический запуск сервера SSH по умолчанию отключен. Автоматический запуск нужно разрешить отдельно командой:
sudo systemctl enable sshа также для включения службы SSH без перезагрузки запустить службу:sudo systemctl start ssh
Настройка службы ssh
Проверить состояние службы:
Чтобы изменения конфигурации вступили в силу требуется перезапуск службы:
Если значения параметров конфигурации содержат пробелы, то эти значения должны быть заключены в кавычки, например:
AllowGroups "group name@domain.name"
Описание синтаксиса конфигурации доступно в справочной системе man:
Простейшие меры безопасности
Из соображений повышения безопасности рекомендуется изменить некоторые значения по умолчанию:
- Port - номер IP-порта, который слушает сервис (по умолчанию — 22) — изменить значение на любое другое и в дальнейшем использовать этот номер порта;
- MaxAuthTries - количество попыток подключения (по умолчанию — 6) — уменьшить, например, до 3;
- LoginGraceTime - время, дающееся для подключения — уменьшить, например, до 30s (30 секунд);
исключить использование слабых алгоритмов (алгоритм защитного преобразования (cipher) grasshopper-cbc и алгоритмы выработки имитовставки (mac) umac-64-etm@openssh.com, umac-64@openssh.com), для чего добавить в конфигурационный файл строки с перечислением разрешенных алгоритмов:
ciphers grasshopper-ctr128,chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com macs hmac-gost2012-256-etm,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
Проверить список поддерживаемых алгоритмов защитного преобразования (параметр cipher) и выработки имитовставки (параметр mac) можно командами:
ssh -Q cipher
ssh -Q mac
Дополнительно, можно ограничить IP-адреса, с которых возможно подключение, например:
в файле /etc/hosts.deny запретить все подключения:
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#
# The PARANOID wildcard matches any host whose name does not match its
# address.
#
# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
# ALL: PARANOIDSSHD: ALL
а в файле /etc/hosts.allow разрешить только необходимые подключения:
# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#SSHD: 192.168.1.1
SSHD: 192.168.0.0/16
Аутентификация по ключам
См. раздел "В помощь администратору"
Настройка клиента
Конфигурация клиента хранится в файле /etc/ssh/ssh_config. Клиент работоспособен сразу после установки ОС с настройками "по-умолчанию".
Монтирование удаленной файловой системы по ssh
SSHFS (Secure Shell FileSystem) - программа, позволяющая монтировать удаленную файловую систему и взаимодействовать с удаленными файловыми ресурсами как с обычными файлами.
Для монтирования SSHFS использует SSH File Transfer Protocol (SFTP) — безопасный протокол передачи данных, обеспечивающий полный доступ к файловым ресурсам через протокол Secure Shell.
От сервера, предоставляющего удалённый ресурс для монтирования, требуется только работающий сервис SSH.
При стандартной установке Astra Linux пакет sshfs устанавливается автоматически, при необходимости может быть установлен с помощью графического менеджера пакетов или из командной строки:
Команда монтирования:
- -o - ключ, указывающий, что далее следуют параметры подключения/монтирования;
- allow_other - разрешить доступ к примонтированному ресурсу непривилегированным пользователям (необязательный параметр);
- IdentityFile=~local_user/.ssh/id_rsa - файл с ключом доступа (необязательный параметр, если его нет - будет запрошен пароль);
- remote_user@server:/home/remote_user - указание на ресурс, который будем монтировать;
(в данном случае на сервере server от имени пользователя remote_user монтируем домашний каталог этого пользователя /home/remote_user) - /mnt - локальная точка монтирования
Автоматическое монтирование может быть задано в файле /etc/fstab:
Для выполнения автоматического монтирования без запроса пароля должна быть настроена авторизация по ключам (см. выше).
Демонтировать ресурс можно обычной командой umount с указанием точки монтирования:
Использование алгоритмов защитного преобразования данных ГОСТ
Сервер и клиент ssh, входящие в состав дистрибутивов Astra Linux, имеют встроенную поддержку работы с алгоритмами защитного преобразования ГОСТ,
причем, если такие алгоритмы поддерживаются и клиентом и сервером, то они используются по умолчанию.
Некоторые подробности про эти алгоритмы можно прочитать в описании библиотеки libgost-astra.
Проверка используемого алгоритма защитного преобразования
Проверку используемого при подключении алгоритма защитного преобразования можно производить как на стороне клиента, так и на стороне сервера.
В обоих случаях для этого нужно включить вывод отладочной информации.
На стороне сервера:
в файле конфигурации сервера /etc/ssh/sshd_config раскомментировать строчки SyslogFacility и LogLevel, заменить уровень отладки INFO на DEBUG
SyslogFacility AUTH
LogLevel DEBUG
После внесения изменений перезапустить сервер:
При выполнении подключения использовать опцию -v для вывода отладочной информации:
debug1: kex: client->server cipher: grasshopper-ctr MAC: hmac-gost2012-256-etm compression: none