📸 Нужно решить свою задачу?
Загрузите фото — AI решит за секунды!
schoolФизика verifiedРешено AI

Решение: Практическая работа 8 по SSH - ответы на вопросы

calendar_today
schedule8 мин. чтения
visibility1 просмотр

Изображение задачи:
Нажмите для увеличения

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

check_circle

Подробное решение

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

ПРАКТИЧЕСКАЯ РАБОТА 8. Настройка и использование SSH.

Цель:

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

Контрольные вопросы:

1. Что такое SSH, как он работает?

Ответ:

SSH (Secure Shell) – это сетевой протокол, который позволяет безопасно управлять операционной системой по сети. Он обеспечивает защищенное соединение между клиентом и сервером, шифруя весь передаваемый трафик.

Как работает SSH:

  • Установка соединения: Клиент инициирует соединение с SSH-сервером.
  • Обмен ключами: Сервер отправляет клиенту свой публичный ключ. Клиент проверяет этот ключ (если он уже известен, то сравнивает с сохраненным, если нет – предлагает принять).
  • Шифрование: Используя публичный ключ сервера, клиент генерирует сессионный ключ, который затем шифруется и отправляется серверу. Сервер расшифровывает его своим приватным ключом. После этого весь дальнейший обмен данными шифруется с помощью этого сессионного ключа.
  • Аутентификация: Клиент проходит аутентификацию на сервере. Это может быть сделано с помощью пароля или SSH-ключей.
  • Защищенный канал: После успешной аутентификации устанавливается защищенный канал, по которому можно выполнять команды, передавать файлы и т.д.

2. Как создать пару SSH-ключей? Какие алгоритмы шифрования для ключей существуют?

Ответ:

Создать пару SSH-ключей можно с помощью команды ssh-keygen в терминале Linux или macOS, а также в Git Bash или WSL в Windows.

Пример команды:

ssh-keygen -t rsa -b 4096 -C "ваш_email@example.com"

  • -t rsa: указывает тип ключа (RSA).
  • -b 4096: указывает длину ключа в битах (4096 бит – это хороший уровень безопасности).
  • -C "ваш_email@example.com": добавляет комментарий к ключу, обычно это адрес электронной почты для идентификации.

После выполнения команды система запросит место сохранения ключей (по умолчанию ~/.ssh/id_rsa для приватного и ~/.ssh/id_rsa.pub для публичного) и парольную фразу (passphrase) для защиты приватного ключа.

Основные алгоритмы шифрования для SSH-ключей:

  • RSA (Rivest-Shamir-Adleman): Один из самых распространенных и старых алгоритмов. Надежен, если используется достаточная длина ключа (например, 2048 или 4096 бит).
  • DSA (Digital Signature Algorithm): Менее распространен, чем RSA, и имеет фиксированную длину ключа (1024 бита), что делает его менее безопасным по сравнению с современными стандартами.
  • ECDSA (Elliptic Curve Digital Signature Algorithm): Основан на эллиптических кривых. Обеспечивает высокий уровень безопасности при меньшей длине ключа по сравнению с RSA, что делает его более производительным.
  • Ed25519: Современный алгоритм на основе эллиптических кривых (кривая Эдвардса). Считается очень безопасным и быстрым, часто рекомендуется как предпочтительный вариант.

3. Какая разница между SSH и Telnet/FTP?

Ответ:

Основное отличие между SSH и Telnet/FTP заключается в безопасности и шифровании данных.

  • SSH (Secure Shell):
    • Безопасность: Высокая. Весь трафик (логины, пароли, команды, передаваемые файлы) шифруется.
    • Аутентификация: Поддерживает аутентификацию по паролю и по ключам.
    • Функциональность: Используется для удаленного управления сервером (выполнение команд), безопасной передачи файлов (через SCP или SFTP, которые работают поверх SSH), туннелирования трафика.
    • Порт по умолчанию: 22.
  • Telnet:
    • Безопасность: Низкая. Весь трафик передается в открытом (незашифрованном) виде, включая логины и пароли. Это делает его уязвимым для перехвата данных.
    • Аутентификация: Только по паролю.
    • Функциональность: Используется для удаленного управления сервером (выполнение команд).
    • Порт по умолчанию: 23.
    • Применение: В настоящее время практически не используется для удаленного управления из-за отсутствия безопасности, но может применяться для тестирования сетевых служб.
  • FTP (File Transfer Protocol):
    • Безопасность: Низкая. Логины, пароли и данные передаются в открытом виде. Существуют защищенные версии (FTPS, SFTP), но сам FTP по умолчанию небезопасен.
    • Аутентификация: По паролю.
    • Функциональность: Предназначен исключительно для передачи файлов между клиентом и сервером.
    • Порты по умолчанию: 20 (для данных) и 21 (для управления).
    • Применение: Используется для передачи файлов, но для безопасной передачи рекомендуется использовать SFTP (который работает поверх SSH) или FTPS.

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

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

Ответ:

SSH по умолчанию использует порт 22.

Изменить порт при подключении можно несколькими способами:

  • При подключении через командную строку:

    Используйте опцию -p (или -P в некоторых старых версиях) с указанием нового номера порта.

    Пример:

    ssh -p 2222 user@remote_host

    Здесь 2222 – это новый порт, на котором слушает SSH-сервер.

  • Через конфигурационный файл SSH клиента (~/.ssh/config):

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

    Пример содержимого файла ~/.ssh/config:

    Host my_server
        Hostname remote_host.com
        User user
        Port 2222

    После этого можно подключаться просто командой:

    ssh my_server

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

  • На стороне сервера:

    Чтобы SSH-сервер слушал на другом порту, нужно отредактировать его конфигурационный файл /etc/ssh/sshd_config. Найдите строку #Port 22, раскомментируйте ее (удалите #) и измените номер порта на желаемый (например, Port 2222). После этого необходимо перезапустить службу SSH-сервера (например, sudo systemctl restart sshd).

    Изменение порта на сервере повышает безопасность, так как уменьшает количество автоматических атак на стандартный порт 22.

5. Что такое SSH-ключ и зачем он нужен?

Ответ:

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

Приватный ключ:

  • Хранится на клиентской машине (у пользователя).
  • Должен быть строго конфиденциальным и защищенным (обычно парольной фразой).
  • Никогда не передается по сети.

Публичный ключ:

  • Хранится на SSH-сервере в файле ~/.ssh/authorized_keys пользователя, к которому осуществляется подключение.
  • Может быть свободно передан, так как не содержит конфиденциальной информации.

Зачем нужен SSH-ключ:

  • Повышенная безопасность: SSH-ключи гораздо сложнее подобрать, чем пароль, особенно если используется длинный ключ (например, 4096 бит) и надежный алгоритм. Даже если злоумышленник перехватит публичный ключ, он не сможет получить доступ без соответствующего приватного ключа.
  • Удобство: После настройки аутентификации по ключам не нужно каждый раз вводить пароль при подключении к серверу. Это особенно удобно при частых подключениях или автоматизации задач.
  • Автоматизация: SSH-ключи позволяют автоматизировать скрипты и процессы, которые требуют подключения к удаленным серверам, без ручного ввода пароля.
  • Защита от брутфорс-атак: Использование ключей значительно снижает риск успешных атак методом перебора паролей, так как парольная аутентификация может быть отключена на сервере.

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

6. Какие основные методы аутентификации в SSH вы знаете?

Ответ:

В SSH существуют несколько основных методов аутентификации:

  • Аутентификация по паролю (Password Authentication):
    • Самый простой и распространенный метод.
    • Пользователь вводит свой логин и пароль, которые передаются на сервер в зашифрованном виде.
    • Менее безопасен по сравнению с ключами, так как пароли могут быть подобраны методом перебора (брутфорс) или скомпрометированы.
  • Аутентификация по ключам (Public Key Authentication):
    • Наиболее рекомендуемый и безопасный метод.
    • Использует пару криптографических ключей: приватный (на клиенте) и публичный (на сервере).
    • Пользователю не нужно вводить пароль (если приватный ключ не защищен парольной фразой).
    • Значительно устойчивее к брутфорс-атакам.
  • Аутентификация по хосту (Host-based Authentication):
    • Позволяет одному хосту автоматически аутентифицироваться на другом хосте без ввода пароля или использования ключей пользователя.
    • Основана на доверии между хостами, которые должны быть настроены для взаимной аутентификации.
    • Менее распространен в повседневном использовании, чаще применяется в специфических сетевых конфигурациях.
  • Аутентификация с использованием PAM (Pluggable Authentication Modules):
    • SSH может использовать PAM для аутентификации, что позволяет интегрировать его с различными механизмами аутентификации, такими как LDAP, Kerberos, двухфакторная аутентификация и т.д.
    • Это гибкий метод, позволяющий системным администраторам настраивать сложные политики аутентификации.

7. В чём преимущество аутентификации по ключам перед аутентификацией по паролю?

Ответ:

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

  • Высокий уровень безопасности:
    • Сложность подбора: SSH-ключи (особенно длиной 2048 бит и более) практически невозможно подобрать методом перебора за разумное время, в отличие от паролей, которые могут быть слабыми или скомпрометированными.
    • Отсутствие передачи секрета: Приватный ключ никогда не передается по сети. Сервер проверяет подлинность клиента, используя только публичный ключ и криптографические операции, что исключает возможность перехвата секрета.
    • Защита от фишинга: Пользователю не нужно вводить пароль, что снижает риск стать жертвой фишинговых атак, направленных на кражу учетных данных.
  • Удобство использования:
    • Без ввода пароля: После первоначальной настройки пользователю не нужно каждый раз вводить пароль при подключении к серверу, что экономит время и упрощает работу.
    • Автоматизация: Позволяет легко автоматизировать скрипты и процессы, требующие удаленного доступа, без необходимости ручного ввода пароля.
  • Гибкость и контроль:
    • Управление доступом: Можно легко отозвать доступ, удалив публичный ключ с сервера, не меняя пароль пользователя.
    • Разделение доступа: Разным пользователям можно выдавать разные ключи для доступа к одному и тому же аккаунту, что упрощает управление правами.
    • Защита приватного ключа: Приватный ключ может быть защищен парольной фразой, что добавляет дополнительный уровень безопасности: даже если злоумышленник получит доступ к приватному ключу, ему потребуется знать парольную фразу.
  • Защита от брутфорс-атак:
    • Серверы, настроенные на аутентификацию только по ключам, могут полностью отключить аутентификацию по паролю, что делает их неуязвимыми для атак методом перебора паролей.

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

listВсе задачи

Нужно решить свою задачу?

Загрузите фото или введите текст — AI решит с пошаговым объяснением!

Решите свою задачу прямо сейчас

Введите текст задачи или загрузите фото — получите ответ мгновенно

Выберите режим AI:
🚀 Pro v3
20 руб. • 99.9%
⚡ Lite v3
5 руб. • 95%
Ваш баланс:10 руб.
Пополнить
psychology
Задайте любой вопрос
Поддерживаются текст, фото и голосовой ввод
🎉
Бонус получен!
+20 ₽
Добавлено на ваш баланс