Подробный гайд: номер порта SSH и работа SSH

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

Что такое SSH?

SSH означает Secure Shell (безопасная оболочка) и представляет собой безопасный и надежный сетевой протокол, который обеспечивает безопасный доступ к удаленным серверам и управление ими. Протокол SSH заменяет небезопасные протоколы, такие как FTP и Telnet. Основная роль SSH заключается в установлении безопасного канала связи для доступа к удаленным устройствам.

Основные функции протоколов SSH — это шифрование данных, проверка целостности и аутентификация личности, которые мы кратко описали ниже:

1. SSH шифрует данные во время передачи, чтобы защитить их от злоумышленников.

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

3. SSH гарантирует, что данные не были изменены во время связи, подтверждая целостность передаваемых данных.

Системные администраторы обычно используют SSH для безопасного управления удаленными серверами и выполнения различных административных задач. Он также помогает в передаче файлов через SFTP (SSH File Transfer Protocol), который обеспечивает безопасную передачу данных между системами. Кроме того, он позволяет пользователям устанавливать безопасные каналы для нескольких приложений, таких как доступ к базе данных или просмотр веб-страниц.

Что такое порт в SSH?

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

Хорошо известные порты в диапазоне от 0 до 1023 называются «зарезервированными портами» для определенных служб, таких как HTTP (порт 80), HTTPS (порт 443), FTP (порт 21) и SSH (порт 22). Эти стандартизированные назначения помогают обеспечить согласованность между сетями.

Порт SSH служит специфической конечной точкой для подключений по протоколу Secure Shell на компьютере. По умолчанию SSH использует порт 22 при запуске команд в Linux для связи между двумя серверами по сети.

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

Как работает SSH (Secure Shell) на порту 22?

SSH работает по модели «клиент-сервер» и обеспечивает безопасную и зашифрованную связь через сетевые соединения. Он широко используется в инструментах командной строки, таких как приложения для удаленного входа и терминалы. Пользователи Linux предпочитают использовать порт SSH для удаленного доступа и задач администрирования сервера. Таким образом, возникает следующий вопрос: как работает SSH на порту 22?

SSH использует порт 22 для установления безопасного и зашифрованного канала связи между клиентом и сервером. Давайте подробно обсудим работу SSH!

Шаг 1: Установка соединения

Первый шаг — инициировать запрос на соединение между клиентом и сервером. Когда пользователь или клиент желает установить SSH-соединение с сервером, он запускает процесс, отправляя запрос на соединение серверу.

В ответ сервер настраивается и прослушивает запросы на порту 22 для входящих SSH-соединений. Далее он подтверждает и отвечает на запрос клиента.

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

Шаг 2: Аутентификация пользователя

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

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

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

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

Шаг 3: Установка безопасного канала и запуск сеанса

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

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

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

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

Как сгенерировать ключ SSH?

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

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

Если вы используете аутентификацию на основе ключа SSH, вы можете сгенерировать ключ SSH в своей системе Linux, выполнив следующие действия:

Шаг 1: Проверьте старый файл ключа SSH

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

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

$ ls -l ~/.ssh/id_*.pub

Шаг 2: Создайте пару ключей SSH

Если вы столкнулись с ошибкой «No such file or directory» (Такого файла или каталога нет), это означает, что на вашем компьютере нет ключа SSH. В таком случае перейдите к следующему шагу. Создайте пару ключей SSH на клиентском компьютере Ubuntu, выполнив следующую команду для создания новой пары ключей с длиной 4096 бит, используя адрес электронной почты пользователя в качестве комментария:

$ ssh-keygen

или

$ ssh-keygen -t rsa -b 4096 -C «[email protected]»

Выполнение команды «ssh-keygen», как указано выше, создает стандартную пару ключей RSA длиной 3072 бита. Чтобы сохранить ключ SSH в стандартном месте в подкаталоге «.ssh/», просто нажмите «Enter».

Затем вам будет предложено ввести парольную фразу, что добавит дополнительный уровень безопасности. Однако имейте в виду, что вам нужно будет вводить эту парольную фразу при каждом входе на удаленный компьютер. Если вы предпочитаете оставить поле пустым с настройками по умолчанию, нажмите «Enter». После этого на терминале отобразится весь экран вывода, как показано ниже:

Проверьте успешное создание пары ключей SSH на клиентском компьютере с помощью следующей команды:

$ ls ~/.ssh/id_*

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

Шаг 3: Подключитесь к удаленному серверу

Затем перенесите сгенерированный открытый ключ SSH на удаленный сервер Ubuntu, которым вы планируете управлять. Используйте инструмент «ssh-copy-id», так как это рекомендуемый метод копирования открытого ключа на удаленный сервер. Выполните приведенную ниже команду на клиентском компьютере, чтобы легко скопировать открытый ключ на удаленный сервер Ubuntu:

$ ssh-copy-id user_name@server_IPaddress

Замените IP-адрес этого сервера на IP-адрес вашей системы.

При первом подключении к системе в терминале может появиться несколько запросов. Введите «yes» и нажмите «Enter», чтобы продолжить процесс. Сервер проверит и подтвердит SSH-ключ, ранее сгенерированный на клиентском компьютере. Вы также можете вручную скопировать сгенерированный открытый ключ SSH на сервер, используя следующую команду:

$ cat ~/.ssh/id_rsa.pub | ssh username@serverip «mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys»

Повторно измените или замените имя пользователя и IP-адрес сервера на данные вашего сервера.

Шаг 4: Войдите с помощью ключа SSH на удаленный сервер

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

$ ssh username@serverIP

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

Шаг 5: Отключите аутентификацию по паролю SSH

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

$ sudo nano /etc/ssh/sshd_config

Теперь перейдите к следующей строке и установите для нее аргумент «no».

PasswordAuthentication no

Сохраните этот файл конфигурации и закройте его.

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

$ sudo systemctl restart ssh

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

Команды для управления SSH в системе Linux

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

$ sudo apt install openssh-server

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

$ sudo systemctl start ssh
$ sudo systemctl stop ssh

Чтобы проверить состояние службы SSH, работает ли она в вашей системе или нет, используйте:

$ sudo systemctl status ssh

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

$ sudo systemctl enable ssh

Чтобы перезагрузить или перезапустить службу SSH, выполните эту команду:

$ sudo systemctl restart ssh

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

$ ssh username@remotehost или IP-адрес

Как настроить номер порта SSH 22 в брандмауэре UFW?

Убедитесь, что UFW (Uncomplicated Firewall) включен и активен в вашей системе Ubuntu. Если он не включен, используйте следующую команду, чтобы включить UFW:

$ sudo ufw enable

После включения UFW предоставьте разрешение для трафика SSH на порту 22 в брандмауэре UFW с помощью следующей команды:

$ sudo ufw allow 22/tcp

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

$ sudo ufw deny 22/tcp

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

$ sudo systemctl stop ssh --now
$ sudo systemctl disable ssh --now

Реализации SSH для Linux и Windows

Различные реализации и клиенты SSH широко используются в различных операционных системах:

- OpenSSH (системы на базе Unix): OpenSSH служит в качестве реализации SSH по умолчанию для систем на базе Unix, таких как Linux и macOS. Известный своей надежностью и безопасностью, OpenSSH поставляется предустановленным на большинстве платформ на базе Unix.

- PuTTY (Windows): PuTTY — популярный SSH-клиент, разработанный для Windows.

Он предлагает удобный интерфейс для безопасного подключения к удаленным серверам. Кроме того, PuTTY предоставляет вспомогательные инструменты, такие как PuTTYgen, для управления ключами SSH.

- SSH в PowerShell (Windows): в последние годы Microsoft интегрировала OpenSSH в Windows PowerShell. Эта интеграция упрощает использование SSH для пользователей Windows, устраняя необходимость в сторонних приложениях.

Каков номер порта SSH по умолчанию?

Как мы уже обсуждали ранее, SSH использует порт 22 по умолчанию. Каждое SSH-соединение инициализируется через SSH-порт 22. Использование порта 22 по умолчанию упрощает настройку для пользователей и обеспечивает стандартизированный подход к SSH-соединениям.

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

Для установления соединения между устройствами доступно 65 536 портов связи. Вы можете выбрать один из них, если хотите изменить номер порта SSH. Это разумный подход для защиты ваших серверов от атак методом перебора.

Как изменить порт SSH 22 по умолчанию на другой номер порта?

Если вы занимаетесь важной коммуникацией, требующей безопасности, рекомендуется изменить номер порта SSH по умолчанию, чтобы снизить риск атак методом перебора. Поскольку все злоумышленники знают, что порт 22 является номером порта SSH по умолчанию, он становится главной целью атак, открывая хакерам доступ к предоставляемым вами данным. Используя другой порт SSH, вы можете эффективно применять протокол SSH для повышения безопасности.

Чтобы изменить номер порта SSH 22 на другой порт, необходимо выполнить следующие действия:

Шаг 1. Создайте резервную копию файла sshd_config

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

$ cp /etc/ssh/sshd_config /etc/ssh/sshd_backup_config

Вышеуказанная команда создаст копию этого файла в том же каталоге.

Шаг 2: Изменение порта SSH по умолчанию 22

Чтобы изменить порт SSH по умолчанию 22, откройте файл «ssh_config» и выполните следующую команду:

$ sudo nano /etc/ssh/sshd_config

Вышеуказанная команда откроет этот файл конфигурации в окне терминала в редакторе nano. Найдите следующую строку кода:

#Port 22

Удалите комментарий из этой строки, удалив символ «#» в начале и заменив этот порт другим номером. Например, мы хотим изменить номер порта SSH на 45571.

Port 45571

Важно разрешить или добавить этот порт в брандмауэр.

Шаг 3: Перезапустите службу SSH

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

$ sudo service sshd restart

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

Шаг 4: Протестируйте порт SSH

После изменения порта SSH по умолчанию 22 вы будете указывать номер порта при установлении соединения с сервером с клиентского компьютера.

$ ssh username@userIP -p 45571

Теперь ваш порт SSH по умолчанию изменен и установлен на порт 45571.

Заключение

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

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

Blog