Исчерпывающее руководство: Номер порта 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
Если вы столкнулись с ошибкой «Нет такого файла или каталога», это означает, что на вашем компьютере отсутствует ключ SSH. В таком случае переходите к следующему шагу. Сгенерируйте пару ключей SSH на клиентской машине Ubuntu, выполнив следующую команду для создания новой пары ключей длиной 4096 бит, используя адрес электронной почты пользователя в качестве комментария:
$ ssh-keygen
или
$ ssh-keygen -t rsa -b 4096 -C «[email protected]»
Выполнение команды «ssh-keygen», как указано выше, создаст 3072-битную пару ключей RSA по умолчанию. Чтобы сохранить ключ SSH по умолчанию в подкаталоге '.ssh/', просто нажмите клавишу «Enter».
Впоследствии вам будет предложено ввести парольную фразу, что добавит дополнительный уровень безопасности. Однако имейте в виду, что вам нужно будет вводить эту фразу каждый раз, когда вы будете входить на удаленный компьютер. Если вы хотите оставить это поле пустым по умолчанию, нажмите «Enter». После этого на терминале отобразится весь экран вывода, как показано ниже:
Убедитесь в успешном создании пары ключей SSH на клиентской машине с помощью следующей команды:
$ ls ~/.ssh/id_*
Сгенерированная пара ключей SSH должна отобразиться на терминале. Это означает, что вы успешно сгенерировали пару ключей SSH на клиентской машине Ubuntu.
Шаг 3: Подключение к удаленному серверу
Затем передайте сгенерированный открытый ключ SSH на удаленный сервер Ubuntu, которым вы собираетесь управлять. Используйте инструмент «ssh-copy-id», поскольку это рекомендуемый метод копирования открытого ключа на удаленный сервер. Выполните приведенную ниже команду на клиентском компьютере, чтобы легко скопировать открытый ключ на ваш удаленный сервер Ubuntu:
$ ssh-copy-id имя_пользователя@ IP-адрес_сервера
Замените этот IP-адрес сервера на IP-адрес вашей системы.
После первого подключения к системе вы можете увидеть несколько запросов в вашем терминале. Введите «да» и нажмите «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 на удаленном сервере, используйте следующую команду:
$ ssh имя пользователя @ IP-адрес сервера
Если вы не установили безопасную парольную фразу для приватного ключа, вы можете сразу войти на удаленный сервер. В противном случае, если вы установили безопасную парольную фразу, вам будет предложено ввести ее при входе.
Шаг 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 имя пользователя@удаленный хост или 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/sshd_backup_config
Приведенная выше команда создаст копию этого файла в том же каталоге.
Шаг 2: Изменение порта SSH по умолчанию 22
Чтобы изменить порт SSH по умолчанию 22, откройте файл «ssh_config» и выполните следующую команду:
$ sudo nano /etc/ssh/sshd_config
Приведенная выше команда откроет этот конфигурационный файл в окне терминала в редакторе nano. Найдите следующую строку кода:
#Port 22
Закомментируйте эту строку, удалив начальный символ «#» и изменив этот порт на другой номер. Например, мы хотим изменить номер порта SSH на 45571.
Порт 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