openssh server ubuntu что это

Установка SSH в Ubuntu

Довольно часто может понадобиться получить доступ к удаленному компьютеру или серверу через интернет. В персслучае сональным компьютером, это может понадобиться для срочного решения какой-либо проблемы, а в случае с сервером это вообще очень распространенная практика. В Linux наиболее часто для решения таких задач используется протокол SSH.

Служба SSH позволяет получить доступ к терминалу удаленного компьютера и выполнить там все необходимые вам команды. При своей простоте она достаточно безопасна, чтобы использоваться для решения серьезных коммерческих задач, так и задач обычных пользователей. В этой статье мы рассмотрим как выполняется установка SSH в Ubuntu 20.04, а также поговорим о начальной настройке SSH сервера.

Что такое SSH?

За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.

Установка OpenSSH в Ubuntu

Установить SSH на Ubuntu будет очень просто, программа считается стандартной и используется почти везде. Хотя по умолчанию в дистрибутиве её нет, но зато она есть в официальных репозиториях.

Поэтому для установки откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

sudo apt install openssh-server

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Будет загружено несколько пакетов, а когда установка ssh сервера Ubuntu завершится, программа будет готова к работе. Если вы хотите чтобы служба запускалась автоматически нужно добавить его в автозагрузку. Поэтому чтобы включить SSH в Ubuntu 20.04 выполните:

sudo systemctl enable sshd

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:

sudo systemctl disable sshd

Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному ssh серверу просто набрав:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

В одной из предыдущих статей мы рассматривали что означает адрес 0.0.0.0, сейчас вы можете убедиться что в пределах этой машины он значит локальный адрес:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Точно таким способом вы можете получить ssh доступ ubuntu к любому другому компьютеру из сети. Для этого достаточно указать вместо localhost его ip адрес и имя пользователя в таком формате:

$ ssh имя_пользователя @ ip_адрес

Настройка SSH в Ubuntu

С параметрами по умолчанию сервер SSH не очень безопасен поэтому перед тем, как программа будет готова к полноценному использованию ее нужно немного настроить. Все настройки сервера SSH хранятся в конфигурационном файле sshd_config, который находится в папке /etc/ssh.

Перед тем как вносить изменения в этот конфигурационный файл рекомендуется сделать его резервную копию, для этого можете использовать такую команду:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

Дальше вы можете перейти к настройке конфигурационного файла:

sudo vi /etc/ssh/sshd_config

Первым делом желательно сменить порт, на котором работает ssh, возможный злоумышленник не знал включен ли у вас этот сервис. Найдите в конфигурационном файле строчку Port и замените ее значение на любое число, например, Port 2222:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Как настроить авторизацию по ключу в SSH читайте здесь. После того как все настройки будут завершены, сохраните изменения нажав :w и перезапустите службу SSH:

sudo systemctl restart ssh

Более подробно про настройку и использование различных тонкостей ssh рассказано в статье как использовать ssh.

Если вы изменили порт, то при подключении в клиенте тоже нужно указать новый порт, так как по умолчанию будет использоваться 22, например:

К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:

sudo ufw allow 2222

Даже если служба ssh находится на порту по умолчанию, его тоже нужно открыть в брандмауэре если вы собираетесь подключаться к компьютеру через интернет:

Настройка ssh Ubuntu 20.04 полностью завершена.

Выводы

Теперь, когда установка SSH в Ubuntu 20.04 завершена, вы можете получить удаленный доступ к своему компьютеру через интернет и быть уверенными что он находится в безопасности. Если у вас остались вопросы, спрашивайте в комментариях.

На завершение видео, где подробно рассказано о том, что такое SSH:

Источник

OpenSSH Server

Introduction

OpenSSH is a powerful collection of tools for the remote control of, and transfer of data between, networked computers. You will also learn about some of the configuration settings possible with the OpenSSH server application and how to change them on your Ubuntu system.

OpenSSH is a freely available version of the Secure Shell (SSH) protocol family of tools for remotely controlling, or transferring files between, computers. Traditional tools used to accomplish these functions, such as telnet or rcp, are insecure and transmit the user’s password in cleartext when used. OpenSSH provides a server daemon and client tools to facilitate secure, encrypted remote control and file transfer operations, effectively replacing the legacy tools.

The OpenSSH server component, sshd, listens continuously for client connections from any of the client tools. When a connection request occurs, sshd sets up the correct connection depending on the type of client tool connecting. For example, if the remote computer is connecting with the ssh client application, the OpenSSH server sets up a remote control session after authentication. If a remote user connects to an OpenSSH server with scp, the OpenSSH server daemon initiates a secure copy of files between the server and client after authentication. OpenSSH can use many authentication methods, including plain password, public key, and Kerberos tickets.

Installation

Installation of the OpenSSH client and server applications is simple. To install the OpenSSH client applications on your Ubuntu system, use this command at a terminal prompt:

To install the OpenSSH server application, and related support files, use this command at a terminal prompt:

Configuration

There are many directives in the sshd configuration file controlling such things as communication settings, and authentication modes. The following are examples of configuration directives that can be changed by editing the /etc/ssh/sshd_config file.

Prior to editing the configuration file, you should make a copy of the original file and protect it from writing so you will have the original settings as a reference and to reuse as necessary.

Copy the /etc/ssh/sshd_config file and protect it from writing with the following commands, issued at a terminal prompt:

Furthermore since losing an ssh server might mean losing your way to reach a server, check the configuration after changing it and before restarting the server:

The following are examples of configuration directives you may change:

After making changes to the /etc/ssh/sshd_config file, save the file, and restart the sshd server application to effect the changes using the following command at a terminal prompt:

Many other configuration directives for sshd are available to change the server application’s behavior to fit your needs. Be advised, however, if your only method of access to a server is ssh, and you make a mistake in configuring sshd via the /etc/ssh/sshd_config file, you may find you are locked out of the server upon restarting it. Additionally, if an incorrect configuration directive is supplied, the sshd server may refuse to start, so be extra careful when editing this file on a remote server.

SSH Keys

SSH allow authentication between two hosts without the need of a password. SSH key authentication uses a private key and a public key.

To generate the keys, from a terminal prompt enter:

During the process you will be prompted for a password. Simply hit Enter when prompted to create the key.

By default the public key is saved in the file

/.ssh/id_rsa is the private key. Now copy the id_rsa.pub file to the remote host and append it to

/.ssh/authorized_keys by entering:

Finally, double check the permissions on the authorized_keys file, only the authenticated user should have read and write permissions. If the permissions are not correct change them by:

You should now be able to SSH to the host without being prompted for a password.

Import keys from public keyservers

These days many users have already ssh keys registered with services like launchpad or github. Those can be easily imported with:

The prefix lp: is implied and means fetching from launchpad, the alternative gh: will make the tool fetch from github instead.

Two factor authentication with U2F/FIDO

OpenSSH 8.2 added support for U2F/FIDO hardware authentication devices. These devices are used to provide an extra layer of security on top of the existing key-based authentication, as the hardware token needs to be present to finish the authentication.

Once the keypair is generated, it can be used as you would normally use any other type of key in openssh. The only requirement is that in order to use the private key, the U2F device has to be present on the host.

For example, plug the U2F device in and generate a keypair to use with it:

Now just transfer the public part to the server to

/.ssh/authorized_keys and you are ready to go:

Источник

SSH в Ubuntu

Установка openssh-server

К хосту можно подключиться по ssh если на нём установлен ssh сервер.

В Ubuntu стандартный вариант ssh сервера называется openssh-server

Установить его можно командой

Подключение по SSH

Подключение происходит с помощью команды ssh + имя_пользователя + хост

Если вы подключаетесь к хосту впервые, появится предупреждение

The authenticity of host ‘192.168.56.101 (192.168.56.101)’ can’t be established. ECDSA key fingerprint is SHA256:db8az/qbrWOJWvNRv2d9UHaDBnnUHanJ9Svca9vFx7c. Are you sure you want to continue connecting (yes/no/[fingerprint])?

Если выбрать yes то в терминале вы увидите сообщение

Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-27-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 updates can be applied immediately. Your Hardware Enablement Stack (HWE) is supported until April 2025. The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

И одновременно с этим, незаметно для вас в файл

/.ssh/known_hosts добавится похожая строка:

|1| abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567

Обычно файл known_hosts имеет следующий формат (записи идут через пробел)

Это хэш от имени сервера.

Здесь через пробел записаны три элемента: хэш от имени сервера, название используемого ассиметричного алгоритма и публичный ключ сервера. Разберём их по очереди.

Сгенерировать пару ключей

Чтобы сгенерировать ключ в /home/$(whoami)/.ssh

Чтобы сгенерировать ключ в /home/root/.ssh

Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):

Нужно придумать имя ключа.

Я назову ключ andrei-key101 а сохранять буду в текущую директорию.

Enter file in which to save the key (/root/.ssh/id_rsa): andrei-key101 Enter passphrase (empty for no passphrase): Enter same passphrase again:

Нужно два раза ввести пароль. Если он вам нужен. Обычно нет.

Ключи готовы. Я сохранил их в текущую директорию поэтому увижу их сделав ls

Важно помнить, что если вы генерируете ключ для другого пользователя нужно позаботиться о правильных правах доступа к этому ключу.

Какой ключ куда?

.pub ключ отправляйте на удалённую машину

приватный ключ храните на своём клиенте

Передать ключ на удалённый хост

Сделать это можно несколькими способами начнём с утилиты ssh-copy-id

ssh-copy-id

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: «/home/andrei/.ssh/andrei-key.pub» The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established. ECDSA key fingerprint is SHA256:abcdefgh1234567890abcdefgh1234567890abc+def. Are you sure you want to continue connecting (yes/no/[fingerprint])?

Number of key(s) added: 1 Now try logging into the machine, with: «ssh ‘andrei@192.168.0.2′» and check to make sure that only the key(s) you wanted were added.

Теперь на хосте 192.168.0.2 в файле /home/andrei/.ssh/authorized_keys появилась новая запись вида

ssh-rsa AAAAB3NzaC1y … lseP/jXcq … Uydr/2CwQ &hellip ++TpY19pHqD/AnhL … Az62T/Ipyx … 8U2T andrei@host.andrei.com

Знак … заменяет длинные последовательности случайных символов для экономии места.

Проверить ключ можно командой

Если вы не задавали пароль для ключа, то попадёте на удалённый хост без лишних движений

Last login: Sun Jan 10 16:48:27 2021 from 192.168.0.1

Узнать версию OpenSSH в Linux

Чтобы узнать версию OpenSSH в вашем дистрибутиве Linux выполните

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

Выполнить команду из скрипта на удалённом компьютере

#!/bin/bash ssh andrei@192.168.0.2 «ls;cd /home/andrei/bash_scripts;ls;ip a;cal»

known_hosts

Список известных хостов находится в файле known_hosts

Обычно файл known_hosts имеет следующий формат (записи идут через пробел) ( подробнее )

Примеры алгоритмов: ssh-rsa, ssh-dss, ssh-ed25519, ecdsa-sha2-nistp256

|1| abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567

Это хэш от имени сервера.

Это алгоритм шифрования

Это публичный ключ хоста

Создать SSH туннель

Туннели обычно создают для перенаправления траффика. SSH tunnel это то же самое что и SSH port forwarding.

На удалённом хосте у вас есть пользователь с именем andrei и вы знаете его пароль.

Сперва нужно определиться с портами на локальном хосте и на удалённом.

Предположим, вы выбрали 9119 для локального и 9200 для удаленного хостов.

То есть вы хотите, чтобы всё, что идёт на localhost:9119 было перенаправлено на 192.168.0.2 : 9200

The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDA …

andrei@192.168.0.2’s password:
Last login: Sun Jan 31 13:23:00 2021

Проверьте ip выполнив

Демонстрация

Туннель создан, не закрывайте терминал. Откройте два новых терминала или две новые вкладки в старом.

У вас два пустых терминала, оба на локальном хосте. Назовём их 1 и 2.

Из терминала 2 подключимся к удалённому хосту 192.168.0.2 по ssh и будем слушать на порту 9200 с помощью nmap

На терминале 1 с помощью nmap отправим сообщение на порт 9119 локального хоста. Это тот порт, который мы настроили на проброс.

nmap localhost 9119

Введём любой текст

Откройте терминал 2 там дожен появиться тот же текст

Список всех открытых SSH туннелей

Чтобы получить список туннелей открытых именно ssh выполните

ssh 14695 andrei 3u IPv4 230080 0t0 TCP 192.168.0.1:46356->192.168.0.2:ssh (ESTABLISHED) ssh 14695 andrei 4u IPv6 230103 0t0 TCP [::1]:9119 (LISTEN) ssh 14695 andrei 5u IPv4 230104 0t0 TCP 127.0.0.1:9119 (LISTEN)

Вывод этой команды при практически идентичных условиях почему-то разный.

ssh 15151 andrei 3u IPv4 239364 0t0 TCP 192.168.0.1:46464->192.168.0.2:ssh (ESTABLISHED) ssh 15151 andrei 4u IPv6 239380 0t0 TCP [::1]:mxit (LISTEN) ssh 15151 andrei 5u IPv4 239381 0t0 TCP 127.0.0.1:mxit (LISTEN) ssh 15151 andrei 9u IPv6 239428 0t0 TCP [::1]:mxit->[::1]:54306 (ESTABLISHED)

Закрыть все SSH туннели

Чтобы закрыть всё, что связано с ssh можно выполнить

sudo killall ssh sshd

Этот метод хорош только если вы работаете один, например на какой-то виртуальной машине.

Запустить SSH в фоновом режиме

-L, screen, tmux, nohup

Мне запустить ssh фоном из скрипта помог nohup, поэтому начнём с него

Для чего это было нужно: Python скрипт сначала открывал одно ssh соединение из subprocess там выполнялась команда для запуска мониторинга потребления памяти и больше от этого соединения ничего было не нужно, зато необходимо было выполнять новые соединения с нагрузкой из другого скрипта.

Чтобы уйдя из первого подключения не оборвать мониторинг потребления памяти перед ssh нужно было добавить nohup, а в самом конце поставить &

SSH_MSG_USERAUTH_BANNER

Клиенту, подключившемуся к ssh серверу можно показать баннер SSH_MSG_USERAUTH_BANNER

sudo vi /etc/issue.net

И отредактируйте файл добавив свой баннер

Откройте sshd_config и укажите путь до баннера

sudo vi /etc/ssh/sshd_config
/banner

# no default banner path #Banner none

Этот баннер будет показан ДО авторизации, то есть во время ввода пароля

Чтобы создать баннер, который будет показан после успешного входа выполните

После редактирования файлов перезапустите sshd

sudo systemctl restart sshd.service

Конвертация сертификатов

Сертификат, конечно, длиннее, я поставил троеточие для экономии места и вашего времени.

——BEGIN CERTIFICATE——
MIIC4jC … 7A6Rpt8V9Q==
——END CERTIFICATE——

Источник

Сервер OpenSSH

Содержание

Сервер OpenSSH

Введение

Эта секция руководства по Ubuntu Server представляет мощную коллекцию инструментов для удаленного контроля и обмена данными с сетевыми компьютерами, названная OpenSSH. Вы также изучите некоторые конфигурационные настройки, доступные для серверного приложения OpenSSH, и то как изменять их на вашей Ubuntu системе.

Серверный компонент OpenSSH, sshd, постоянно ожидает клиентские подключения от любого клиентского приложения. Когда обнаруживается запрос на соединение, sshd устанавливает корректное соединение в зависимости от соединяющегося клиентского приложения. Например, если удаленный компьютер подсоединяется с помощью клиентского приложения ssh, сервер OpenSSH устанавливает сессию удаленного управления после авторизации. Если удаленный пользователь подсоединяется к серверу OpenSSH с помощью scp, сервис OpenSSH на сервере инициирует защищенное копирование файлов между сервером и клиентом после авторизации. OpenSSH может использовать много методов аутентификации, включая простой пароль, открытый ключ и билеты Kerberos.

Установка

Установка клиента и сервера OpenSSH очень простая. Для установки клиентского приложения OpenSSH на вашей системе Ubuntu используйте команду в терминале:

Для установки серверного приложения OpenSSH и связанных файлов используйте такую команду в терминале:

Пакет openssh-server может быть выбран для установки во время процесса установки Ubuntu Server Edition.

Конфигурация

Вы можете настроить поведение по умолчанию серверного приложения OpenSSH, sshd, редактируя файл /etc/ssh/sshd_config. Для информации по конфигурационным директивам, используемым в этом файле, вы можете посмотреть соответствующую страницу руководства, задав следующую команду в терминале:

Существует множество директив в конфигурационном файле sshd, управляющих такими вещами, как настройки соединений и способы авторизации. Далее примеры конфигурационных директив, которые могут быть изменены редактированием файла /etc/ssh/sshd_config.

Скопируйте файл /etc/ssh/sshd_config и защитите его от записи с помощью следующих команд в терминале:

Далее примеры конфигурационных директив, которые вы можете изменить:

Чтобы установить TCP порт прослушивания для вашего OpenSSH 2222 вместо стандартного 22, измените директиву Port таким образом:

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

Если строка уже присутствует, убедитесь, что она не закомментирована.

Чтобы позволить вашему OpenSSH серверу показывать содержимое файла /etc/issue.net в качестве шапки пред авторизацией, просто добавьте или измените строку:

Все изменения производятся в файле /etc/ssh/sshd_config.

После изменений в /etc/ssh/sshd_config, сохраните файл и перестартуйте серверное приложение sshd для применения изменний, используя команду в терминале:

Ключи SSH

Для создания ключей введите в терминале клиента:

Это сгенерирует ключи использующие метод цифрового алгоритма подписи (DSA). В процессе у вас спросят пароль. Просто нажмите Enter на запрос о создании ключа. По умолчанию открытый ключ сохраняется в файл

/.ssh/id_dsa.pub, в то время как секретный в

/.ssh/id_dsa. Теперь скопируйте файл id_dsa.pub на удаленный компьютер и добавьте его к

В конце дважды проверьте права доступа файла authorized_keys, чтобы только авторизованные пользователи имели права на чтение и запись. Если права установлены некорректно, измените их:

Теперь у вас есть возможность соединиться по SSH с этим узлом без ввода пароля.

Источник

Установка и настройка SSH на сервере с Ubuntu

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

В этой статье мы создадим виртуальную машину с Ubuntu 18.04 LTS 64-bit и выполним настройки для безопасного взаимодействия с сервером.

SSH (Secure Shell) — протокол с шифрованием для безопасного обмена данными между элементами ИТ-инфраструктуры. Чаще всего SSH используется для управления серверами с операционными системами семейства Linux и различным сетевым оборудованием.

Чтобы создать сервер, откроем панель управления Selectel и перейдем в меню Облачная платформа, затем выберем подходящий дата-центр и создадим нужный сервер.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

В нашем примере используется виртуальный сервер с фиксированной конфигурацией в виде 1 ядра CPU, 1 Гб оперативной памяти, 10 Гб пространства на жестком диске и операционной системой Ubuntu 18.04 LTS 64-bit.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Далее нажимаем Создать и уже через несколько минут сервер готов к работе. Для удобства доступа к серверу, также был заказан плавающий внешний IP-адрес.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

После успешного создания сервера, можно запускать консоль и настроить подключение по SSH. В Ubuntu за это отвечает утилита OpenSSH. В статье мы рассмотрим настройку доступа по ключам, настройку firewall, отключение аутентификации по паролю и проделаем некоторые другие вещи.

Как установить OpenSSH

OpenSSH — это бесплатный SSH-сервер, дающий возможность интерактивного управления сервером. Для установки SSH на сервер воспользуемся встроенным в Ubuntu пакетным менеджером apt:

В большинстве дистрибутивов OpenSSH-сервер уже присутствует в системе и его установка не требуется. В случае отсутствия OpenSSH, вышеуказанная команда выполнит установку.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Теперь добавим SSH-сервер в автозагрузку. При следующем запуске сервера, операционная система выполнит автоматический запуск SSH-сервера. Как и в случае с другими сервисами systemd позволяет управлять параметрами запуска, автозагрузки и рестарта демона OpenSSH. Включим автозапуск:

В результате получим:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Проверим работоспособность утилиты:

И убедимся, что всё корректно работает:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Как настроить SSH

Настройка SSH на Ubuntu необходима для улучшения защищенности системы. Например, можно отключить возможность входа от имени пользователя root или изменить порт подключения со стандартного 22 на произвольный. Лучше использовать порты из верхнего диапазона (50000-65000). Напомним, что в стеке протоколов TCP/IP доступно 65536 портов.

Настройка выполняется выполняется в конфигурационном файле. Перед его модификацией, создадим резервную копию.

Вот теперь можно менять порт. Все изменения конфигурации SSH выполняются в файле /etc/ssh/sshd_config. Откроем его на редактирование:

Раскомментируем строку Port 22 и изменим значение на 55555. Но мы должны вас предостеречь, боты прежде всего сканируют порты с одинаковыми цифрами, поэтому в промышленных средах лучше использовать номер порта с отличными друг от друга цифрами.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Далее нужно отключить возможность входа на сервер учетной записи суперпользователя (root) и добавить возможность входить через ключи. Для этого изменим значения параметров PermitRootLogin на no и PubkeyAuthentication на yes:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

После этого следует перезагрузить демон SSH. Соединение при этом будет разорвано и подключиться можно будет через новый порт и пользовательскую учетную запись (она должны быть предварительно создана).

Переподключимся от обычной учетной записи и по другому порту:

После успешного подключения можно продолжать работу с сервером.

Как создать пару ключей RSA

Еще один способ аутентификации на сервере — пара ключей RSA: открытый и закрытый. Открытый хранится на сервере, к которому будет выполняться подключение, а закрытый на удаленном компьютере (или другом сервере) откуда выполняется подключение.

На схеме ниже иллюстрация безопасного обмена ключами между Алисой и Бобом. Злоумышленник Ева может читать сообщения, если они не зашифрованы. Здесь Алиса или Боб шифруют сообщение при помощи открытого ключа принимающей стороны, которая его дешифрует при помощи своего закрытого ключа.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Чтобы сгенерировать такую пару ключей, достаточно выполнить команду:

Команду нужно выполнять на своей рабочей станции от имени пользователя, который будет в дальнейшем подключаться к удаленному компьютеру. Путь к хранению ключей можно оставить по умолчанию:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Ключи созданы, можно переходить к следующему шагу — копированию открытого ключа на удаленный сервер. Предварительно убедитесь, что на том сервере создана учетная запись, от имени которой вы будете подключаться.

Как скопировать открытый ключ на сервер

Чтобы скопировать ключ на удаленный сервер, выполним следующую команду:

В этом примере 95.213.154.235 — это IP-адрес удаленного сервера. После ввода пароля, ключ копируется папку .ssh домашней директории пользователя.

Вывод обеих команд на скриншоте ниже.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Как пройти аутентификацию на сервере через созданный ключ

Сразу же после выполнения копирования, проверим доступ при помощи созданной пары ключей:

Если подключение по SSH будет успешным — все настройки были выполнены корректно.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Как выполнить отключение аутентификации по паролю

Для отключения возможности входа по паролю необходимо в файле /etc/ssh/sshd_config отредактировать значение PasswordAuthentication и присвоить no.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

После изменения настроек перезагружаем службу SSH:

Теперь при попытке подключения пользователем, для которого не определена пара ключей, будет выдаваться ошибка подключения.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

При этом подключение при помощи ключа будет успешным.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Отключение доступа паролю — верная стратегия повышения безопасности сервера. Особенно в публичных облаках. Однако, если ключ будет утерян, это станет серьезной проблемой. Поэтому важно его хранить в надежном месте или пользоваться специализированными инструментами, например, аппаратным устройством Yubikey.

Как настроить стандартный firewall

В Ubuntu есть встроенный фаервол Netfilter, который может управляться как непосредственно вызовом утилиты iptables с параметрами так и специальной утилитой UFW (Uncomplicated Firewall). Мы разберем оба варианта.

Iptables на нашем демо-стенде уже установлен, но если в вашем дистрибутиве его нет — можно воспользоваться пакетным менеджером apt:

При работе с iptables можно настроить три типа правил: INPUT — для входящих соединений, OUTPUT — для исходящих и forward для транзитных (используется для маршрутизаторов). Для сервера актуальны первые два.

При обработке пакетов возможно выполнение следующих действий: ACCEPT — разрешить прием пакета, DROP — удалить пакет, REJECT — отклонить пакет и отправил уведомление об отклонении отправителю, LOG — записать пакет в лог и QUEUE — отправить пакет приложению.

В iptables доступны следующие функции управления:

Например, чтобы посмотреть настроенные правила можно выполнить команду

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Теперь попробуем заблокировать все пакеты от узла 10.10.10.10:

При помощи комбинаций перечисленных выше опций можно настроить любую требуемую логику работы с сетевыми пакетами.

Если перечисленные выше опции показались сложными, можно упростить задачу настройки фаервола и воспользоваться утилитой ufw. Перед началом работы, установим ее при помощи пакетного менеджера apt:

После установки можно начинать работать с правилами. Разрешим все исходящие соединения и запретим все входящие:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

В примерах выше мы меняли порт для доступа по SSH на 55555. Создадим правило для доступа по этому порту:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Теперь включим сам фаервол.

Обратите внимание на предупреждение системы об отключении SSH-подключений, если вдруг вы забыли добавить соответствующее правило. Но мы его добавили, поэтому смело включаем фаервол.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

После включения фаервола, проверим его настройки командой:

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Дополнительно можно настроить доступ с определенного IP-адреса (или диапазона адресов), на определенный порт.

При помощи правил UFW можно также применять правила к определенным сетевым интерфейсам сервера.

Как настройки подключения по SSH влияют на безопасность

В этом разделе разберем основные настройки для повышения уровня безопасности SSH. Все настройки выполняются в уже известном конфигурационном файле /etc/ssh/sshd_config.

Первая настройка — проверка соответствия DNS-имени IP-адресу клиента. За это отвечает параметр UseDNS.

Следующий шаг к безопасности — запрет пустых паролей. Задается в параметре PermitEmptyPasswords.

Дополнительно можно ограничить количество неудачных попыток подключения:

Еще один подход к ограничению несанкционированных подключений — задание пользователей и групп, которым разрешен доступ по SSH. Они перечисляются в параметрах AllowUsers и AllowGroups.

Дополнительно, можно задать время, в течении которого система ожидает от пользователя ввода пароля. По умолчанию это две минуты, но лучше уменьшить до 30 секунд.

Отключение пользователя при бездействии позволит предотвратить доступ злоумышленника, если пользователь вдруг отлучился от своего рабочего места. Значение задается в секундах

Мы перечислили основные параметры для повышения безопасности SSH-соединений, однако, можно выполнять и более тонкую настройку. Полный список команд можно найти в официальной документации.

Нельзя не упомянуть про эффективный инструмент борьбы с попытками аутентификации — утилите fail2ban. Это сервис, который читает лог безопасности и блокирует злоумышленников по IP. Штатно устанавливается при помощи apt:

После установки появляются два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Первый отвечает за настройки запуска fail2ban, а второй за настройки защиты конкретных сервисов.

Заключение

Мы рассказали об основных настройках протокола SSH, которые помогут уберечь Ubuntu-сервер от несанкционированного доступа. Особенно важно их использовать при расположении сервера в публичных облаках с публичным IP-адресом. На скриншоте ниже вы видите журнал безопасности системы, на которой мы проводили перечисленные в этой статье настройки. В нем видно, что попытки авторизаций под разными пользователями (root, system и другими) происходят регулярно.

openssh server ubuntu что это. Смотреть фото openssh server ubuntu что это. Смотреть картинку openssh server ubuntu что это. Картинка про openssh server ubuntu что это. Фото openssh server ubuntu что это

Перечисленных в этой статье настроек достаточно для обеспечения базовой безопасности сервера и предотвращения его вовлечения в бот-сети.

Источник

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

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