======Установка и настройка SSH в Ubuntu 22.04====== =====Введение===== SSH (англ. Secure Shell — «безопасная оболочка»[1]) — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем. SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры)[2]. Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удалённого запуска клиентов X Window System. Большинство хостинг-провайдеров за определённую плату предоставляет клиентам доступ к их домашнему каталогу по SSH. Это может быть удобно как для работы в командной строке, так и для удалённого запуска программ (в том числе графических приложений). В этом материале вы узнаете, как установить и настроить SSH в системе Ubuntu 22.04 LTS. Это руководство также совместимо с системами Ubuntu 20.04 LTS и Ubuntu 18.04 LTS. =====Предварительные условия===== Сначала войдите в Ubuntu 22.04 через консоль. Затем обновите кэш Apt и обновите текущие пакеты системы с помощью следующей команды: sudo apt update && sudo apt upgrade При появлении запроса нажмите «Y» , чтобы подтвердить установку. =====Установите SSH в Ubuntu 22.04===== OpenSSH не предустанавливается в системе, поэтому выполним его установку вручную. Чтобы это сделать, в окне терминала вводим: Выполните следующие шаги, чтобы завершить установку SSH в Ubuntu: Установите несколько зависимостей, необходимых для этого руководства, с помощью приведенной ниже команды: sudo apt install openssh-server {{:software:linux_server:ssh_install_1.png?|}} Как только команда будет выполнена, начнется установка всех необходимых компонентов в систему, как показано на картинке ниже. {{:software:linux_server:ssh_install_2.png?|}} На все предложения системы в момент установки отвечаем утвердительно. Установка прошла успешно. Теперь перейдем к запуску службы =====Запуск SSH===== sudo systemctl enable --now ssh При успешном запуске вы увидите следующее системное сообщение. {{:software:linux_server:ssh_install_3.png?|}} Ключ **--now** в команде выше отвечает за одновременный запуск программы и добавление ее в автозагрузку. Теперь проверим, что служба включена и успешно функционирует. Для этого вводим: sudo systemctl status ssh В результате система выдаст следующее сообщение: {{:software:linux_server:ssh_install_4.png?|}} Как видно по картинке выше, установленная служба успешно функционирует. Об этом говорит строка Active: active (running). Если необходимо выключить службу и убрать ее из автозагрузки, в окне терминала введите: sudo systemctl disable ssh =====Настройка брандмауэра===== Перед подключением к серверу через протокол SSH проверим состояние брандмауэра. Хотя во время установки службы и происходит настройка файрвола, повторная проверка поможет убедиться, что он настроен правильно. В нашем случае установлен интерфейс UFW, поэтому воспользуемся следующей командой: sudo ufw status Результат команды представлен на картинке ниже. {{:software:linux_server:ssh_install_5.png?|}} Как видно по картинке, трафик по протоколу SSH разрешен. Если у вас он отсутствует в списке, то необходимо разрешить входящие SSH-соединения. В этом поможет команда: sudo ufw allow ssh {{:software:linux_server:ssh_install_6.png?|}} =====Подключение к серверу===== После выполнения всех предыдущих шагов можно наконец переходить ко входу на сервер, используя протокол SSH и программу PuTTy. {{:software:linux_server:ssh_install_7.png?|}} Для подключения к серверу пользователю понадобятся его IP-адрес или доменное имя. ===== Настройка конфигурации SSH===== Основные настройки OpenSSH-сервера хранятся в главном конфигурационном файле – sshd_config (расположение: /etc/ssh). Перед тем, как приступать к редактированию, необходимо создать резервную копию данного файла: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.initial Теперь в случае возникновения ошибок после редактирования конфигурационного файла, пользователь без проблем сможет вернуть его к первоначальному виду. После создания резервной копии можно переходить непосредственно к редактированию конфигурационного файла. Для этого откроем его, используя терминал и редактор Nano: sudo nano /etc/ssh/sshd_config В открывшемся файле сразу изменим значение порта на более безопасное. Лучше всего устанавливать значения из динамического диапазона портов (49152 — 65535), при этом использовать набор отличных друг от друга цифр для дополнительной безопасности. Например, отредактируем значение порта на 49532. Для этого разкомментируем соответствующую строку в файле и изменим значения порта, как показано на картинке ниже. {{:software:linux_server:ssh_install_8.png?|}} Кроме данной настройки, необходимо изменить режим аутентификации по паролю на более безопасный по ключу. Для этого раскомментируем соответствующую строку, значение которой должно быть “Yes”, как показано на картинке ниже. {{:software:linux_server:ssh_install_9.png?|}} Аутентификацию по ключу разрешена. О том, как сгенерировать и использовать пару SSH-ключей, было подробно рассказано в соответствующей статье. Теперь запретим вход на сервер под суперпользователем. Для этого также изменим значение соответствующей строки, как показано на рисунке ниже. {{:software:linux_server:ssh_install_10.png?|}} Кроме внесенных выше изменений, перечислим ниже основные директивы конфигурационного файла, которые отвечают за безопасность сервера: * **UseDNS** – отвечает за проверку соответствия имени хоста с его IP -адресом. Значение “Yes” включает этот параметр. * **PermitEmptyPasswords** – данный параметр запрещает использовать пустые пароли при аутентификации, если в качестве значения указано “No”. * **MaxAuthTries** – ограничение на количество неудачных попыток подключения к серверу в рамках одного сеанса связи. В качестве значения передается число. * **AllowUsers и AllowGroups** – данные параметры отвечает за список пользователей и групп соответственно, которым разрешен доступ к серверу. # AllowUsers Пользователь1, пользователь2, пользователь3 # AllowGroups Группа1, группа2, группа3 * **Login GraceTime** – параметр, отвечающий за время, предоставляемое для успешной авторизации. Рекомендуем уменьшить значение данного параметра в 4 раза. * **ClientAliveInterval** – ограничение на время бездействия пользователя. При выходе за указанную границу происходит отключение пользователя. После внесения всех изменений в главный конфигурационный файл, необходимо их сохранить и закрыть редактор. После перезагружаем службу, чтобы все изменения вступили в силу: sudo systemctl restart ssh =====Заключение===== В данной статье была продемонстрирована подробная инструкция по установке и настройке SSH в Ubuntu 22.04. Также был описан процесс внесения изменений в главный файл конфигурации для повышения безопасности. Благодаря данной инструкции пользователь сможет выполнить безопасное удаленное подключение к серверу и не беспокоиться о потере или краже передаваемых данных. =====Ссылки и Дополнения===== * [[https://timeweb.cloud/tutorials/ubuntu/kak-ustanovit-i-nastroit-ssh-v-ubuntu-22-04|Ссылка на оригинальную статью]] * [[https://tecadmin.net/linux-update-alternatives-command/|Команда Update-alternatives: подробное руководство для пользователей Linux]]