Настройка SSH-сервера

Настройка SSH-сервера #

Документация #

Типичные задачи #

  • Установка и настройка автоматического запуска службы
  • Настройка сервера
    • Умение проверять качество конфигурации SSH-сервера
    • Управление портом, на котором запущена служба
    • Управление сертификатом, который идентифицирует сервер
    • Управление списком поддерживаемых протоколов шифрования
    • Управление списком пользователей или групп, которым разрешён доступ
    • Настройка аутентификации по ключу
  • Настройка клиента
    • Создание и управление идентификационными ключами
    • Установка пользовательских сертификатов в учётную запись
    • Настройка параметров SSH-клиента
    • Настройка параметров подключения для конкретных серверов
  • Выполнение типичных задач
    • Поднятие Socks-прокси
    • Проброс портов
    • Подключение через промежуточный компьютер
    • Обратное подключение
  • Передача файлов между сервером и хостом с помощью
    • scp
    • sftp
    • sshfs

Задача. Настройка сервера #

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

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

  • Адрес сервера: localhost
  • Порт сервера: 2022
  • Имя пользователя: user
  1. Настройка OpenSSH в ALT Linux.
    1. В каком пакете поставляется SSH-сервер?
    2. Как называется systemd-служба, которая управляет запуском сервиса?
    3. К какой стадии инициализации операционной системы относится данная служба?
    4. По какому порту запущена SSH-служба?
    5. Откройте руководство по системному конфигурационному файлу службы удалённого доступа sshd: sshd_config. В каком месте находится конфигурационный файл службы в дистрибутиве ALT Linux?
  2. Снижение безопасности сервера.
    1. Может ли пользователь root подключиться к серверу?
    2. Если не может, то внесите настройки, чтобы удалённое подключение было разрешено.
    3. Проверьте, что можете подключиться к серверу с правами суперпользователя.
    4. Может ли это являться альтернативой приложениям su и sudo?
  3. Ограничьте доступ к серверу выделенными пользователями.
    1. Ограничьте доступ только пользователем user.
    2. Удостоверьтесь, что только данный пользователь может выполнить подключение к серверу. Пользователь root не должен иметь возможности подключения к серверу.
    3. Отмените данные ограничения.
    4. Удостоверьтесь, что можете подключиться к серверу с правами пользователя root.
  4. Ограничение доступа к серверу группой.
    1. Создайте группу remote-connections.
    2. Предоставьте только данной группе права на подключение.
    3. Примените данные настройки.
    4. Могут ли пользователи user и root подключиться к серверу?
    5. Добавьте пользователя user в группу remote-connections.
    6. Смог ли данный пользователь подключиться к системе?
    7. Может ли пользователь root подключиться к системе?
    8. Разрешите всем пользователям аутентифицироваться в системе.
  5. Аутентификация по ключу.
    1. Как называется файл для сохранения публичной части ключа для аутентификации на сервере?
    2. Где располагается данный файл?
    3. На основной системе создайте RSA-ключ, защищённый с помощью пароля. В качестве пароля можете использовать простую фразу. Не используйте пароль учётной записи user!
    4. С использованием приложения scp скопируйте публичную часть ключа с основного компьютера на виртуальную машину.
    5. Поместите публичную часть ключа в файл с сохранением авторизованных ключей пользователя user.
    6. Удостоверьтесь, что на сервере включена авторизация по ключу.
    7. Попытайтесь подключится к серверу. Какой пароль запросили: от ssh-ключа или учётной записи на сервере?
    8. Отключите на сервере возможность подключаться с авторизацией по паролю.
    9. Попытайтесь подключиться к учётной записи user. Какой пароль подошёл? Ssh-клиент как-то сообщил какой пароль он ожидает получить от пользователя?
    10. Попытайтесь подключиться к учётной записи root. Какой пароль подошёл?
    11. Разрешите аутентификацию по паролю.
  6. Аутентификация по ключу, продолжение.
    1. Создайте нового пользователя ad на сервере. Установите удобный пароль для данной учётной записи.
    2. Создайте на основном компьютере новый ключ ed25519. При создании ключа установите пустой пароль.
    3. С помощью приложения ssh-copy-id установите данный ключ для пользователя ad.
    4. Подключитесь к серверу под учётной записью ad. Какой пароль спросили при подключении?

Настройка клиента #

  1. Откройте руководство по конфигурационному файлу клиента ssh: ssh_config. В каком месте находится системный конфигурационный файл?
  2. Откройте системный конфигурационный файл. Какие настройки установлены явно при использовании SSH-клиента?
  3. Создайте конфигурационный файл клиента на основном компьютере.
  4. Добавьте в локальный конфигурационный файл клиента описание виртуальной машины playground.
    1. В качестве псевдонима используйте play-vm.
    2. Укажите IP-адрес виртуальной машины.
    3. Укажите порт для подключения к виртуальной машине.
    4. Укажите имя пользователя для подключения, user.
    5. Используя данный псевдоним выполните подключение к виртуальной машине. Удостоверьтесь, что подключение произошло верно, установлено соединение с нужным компьютером и под нужной учётной записью.
    6. В каком случае стоит добавлять новые определения в конфигурационный файл?
  5. Добавьте в локальный конфигурационный файл клиента псевдоним для подключения к учётной записи пользователя ad.
    1. В качестве псевдонима используйте play-ad
    2. Скопируйте настройки для подключения из описания play-vm.
    3. Измените имя пользователя на ad.
    4. Укажите путь к приватной части идентификационного ключа ed25519.
    5. Подключитесь к виртуальной машине. Удостоверьтесь, что подключение произошло с нужной учётной записью.
  6. Добавление сломанного конфигурационного файла.
    1. Скопируйте описание предыдущего псевдонима для подключения.
    2. Измените название псевдонима на broken-play.
    3. Создайте пустой файл empty-key в домашнем каталоге пользователя.
    4. В качестве пути к приватному ключу укажите путь к созданному пустому файлу.
    5. Попытайтесь подключиться к серверу с использованием псевдонима broken-play.

Задачи на передачу файлов #

  1. Создайте пустой файл data.txt в домашнем каталоге.
    1. С помощью приложения scp скопируйте данный файл в домашний каталог на сервер с использованием псевдонима play-vm.
    2. С помощью приложения scp скопируйте данный файл на сервер без использования псевдонимов.
      1. Какой ключ используется для указания порта севрера?
      2. Совпадает ли он с соответствующим ключом, который используется в приложении ssh?
  2. Создайте следующую структуру файлов и каталогов в домашнем каталоге пользователя.
    data/
    ├── source/
    │   ├── some.pdf
    │   └── text.doc
    └── target/
        └── processed-today.txt
  3. С помощью приложения scp скопируйте данный каталог в каталог /tmp на сервер без использования псевдонимов.
    1. С помощью какого ключа указывается необходимость копирования каталога целиком?
    2. Повторите копирование каталога так, чтобы в целевом каталоге на сервере произошло обновление файлов, но не появился подкаталог data.
    3. Что нужно сделать, чтобы появился подкаталог data в целевом каталоге?
  4. С помощью приложения scp скопируйте каталог /var/log в домашний каталог пользователя на основном компьютере.
  5. Повторите предыдущие операции с помощью приложения sftp.

© A. M. Васильев, 2022, CC BY-SA 4.0, andrey@crafted.su