Настройка SSH-сервера #
Документация #
- OpenSSH на ArchWiki (Русский)
- SSH на ALT Linux Wiki
- OpenSSH на ArchWiki
- OpenSSH Manual Pages
- Насторйка OpenSSH
- SSH-сервер OpenSSH, презентация
- SCP and SFTP
- Копирование файлов scp
- Как использовать команду SFTP для передачи файлов
Типичные задачи #
- Установка и настройка автоматического запуска службы
- Настройка сервера
- Умение проверять качество конфигурации SSH-сервера
- Управление портом, на котором запущена служба
- Управление сертификатом, который идентифицирует сервер
- Управление списком поддерживаемых протоколов шифрования
- Управление списком пользователей или групп, которым разрешён доступ
- Настройка аутентификации по ключу
- Настройка клиента
- Создание и управление идентификационными ключами
- Установка пользовательских сертификатов в учётную запись
- Настройка параметров SSH-клиента
- Настройка параметров подключения для конкретных серверов
- Выполнение типичных задач
- Поднятие Socks-прокси
- Проброс портов
- Подключение через промежуточный компьютер
- Обратное подключение
- Передача файлов между сервером и хостом с помощью
scp
sftp
sshfs
Задача. Настройка сервера #
При редактировании настроек SSH-сервера необходимо быть аккуратным, т.к. он зачастую является единственным средством связи между локальным компьютером и удалённым сервером.
Для выполнения задания запустите виртуальную машину. Настройки sshd-службы необходимо производить внутри виртуальной машины. Параметры для подключения к виртуальной машине:
- Адрес сервера: localhost
- Порт сервера: 2022
- Имя пользователя: user
- Настройка OpenSSH в ALT Linux.
- В каком пакете поставляется SSH-сервер?
- Как называется systemd-служба, которая управляет запуском сервиса?
- К какой стадии инициализации операционной системы относится данная служба?
- По какому порту запущена SSH-служба?
- Откройте руководство по системному конфигурационному файлу службы удалённого доступа
sshd
:sshd_config
. В каком месте находится конфигурационный файл службы в дистрибутиве ALT Linux?
- Снижение безопасности сервера.
- Может ли пользователь
root
подключиться к серверу? - Если не может, то внесите настройки, чтобы удалённое подключение было разрешено.
- Проверьте, что можете подключиться к серверу с правами суперпользователя.
- Может ли это являться альтернативой приложениям
su
иsudo
?
- Может ли пользователь
- Ограничьте доступ к серверу выделенными пользователями.
- Ограничьте доступ только пользователем
user
. - Удостоверьтесь, что только данный пользователь может выполнить подключение к серверу. Пользователь
root
не должен иметь возможности подключения к серверу. - Отмените данные ограничения.
- Удостоверьтесь, что можете подключиться к серверу с правами пользователя
root
.
- Ограничьте доступ только пользователем
- Ограничение доступа к серверу группой.
- Создайте группу
remote-connections
. - Предоставьте только данной группе права на подключение.
- Примените данные настройки.
- Могут ли пользователи
user
иroot
подключиться к серверу? - Добавьте пользователя
user
в группуremote-connections
. - Смог ли данный пользователь подключиться к системе?
- Может ли пользователь
root
подключиться к системе? - Разрешите всем пользователям аутентифицироваться в системе.
- Создайте группу
- Аутентификация по ключу.
- Как называется файл для сохранения публичной части ключа для аутентификации на сервере?
- Где располагается данный файл?
- На основной системе создайте RSA-ключ, защищённый с помощью пароля. В качестве пароля можете использовать простую фразу. Не используйте пароль учётной записи
user
! - С использованием приложения
scp
скопируйте публичную часть ключа с основного компьютера на виртуальную машину. - Поместите публичную часть ключа в файл с сохранением авторизованных ключей пользователя
user
. - Удостоверьтесь, что на сервере включена авторизация по ключу.
- Попытайтесь подключится к серверу. Какой пароль запросили: от ssh-ключа или учётной записи на сервере?
- Отключите на сервере возможность подключаться с авторизацией по паролю.
- Попытайтесь подключиться к учётной записи
user
. Какой пароль подошёл? Ssh-клиент как-то сообщил какой пароль он ожидает получить от пользователя? - Попытайтесь подключиться к учётной записи
root
. Какой пароль подошёл? - Разрешите аутентификацию по паролю.
- Аутентификация по ключу, продолжение.
- Создайте нового пользователя
ad
на сервере. Установите удобный пароль для данной учётной записи. - Создайте на основном компьютере новый ключ ed25519. При создании ключа установите пустой пароль.
- С помощью приложения
ssh-copy-id
установите данный ключ для пользователяad
. - Подключитесь к серверу под учётной записью
ad
. Какой пароль спросили при подключении?
- Создайте нового пользователя
Настройка клиента #
- Откройте руководство по конфигурационному файлу клиента
ssh
:ssh_config
. В каком месте находится системный конфигурационный файл? - Откройте системный конфигурационный файл. Какие настройки установлены явно при использовании SSH-клиента?
- Создайте конфигурационный файл клиента на основном компьютере.
- Добавьте в локальный конфигурационный файл клиента описание виртуальной машины
playground
.- В качестве псевдонима используйте
play-vm
. - Укажите IP-адрес виртуальной машины.
- Укажите порт для подключения к виртуальной машине.
- Укажите имя пользователя для подключения,
user
. - Используя данный псевдоним выполните подключение к виртуальной машине. Удостоверьтесь, что подключение произошло верно, установлено соединение с нужным компьютером и под нужной учётной записью.
- В каком случае стоит добавлять новые определения в конфигурационный файл?
- В качестве псевдонима используйте
- Добавьте в локальный конфигурационный файл клиента псевдоним для подключения к учётной записи пользователя
ad
.- В качестве псевдонима используйте
play-ad
- Скопируйте настройки для подключения из описания
play-vm
. - Измените имя пользователя на
ad
. - Укажите путь к приватной части идентификационного ключа ed25519.
- Подключитесь к виртуальной машине. Удостоверьтесь, что подключение произошло с нужной учётной записью.
- В качестве псевдонима используйте
- Добавление сломанного конфигурационного файла.
- Скопируйте описание предыдущего псевдонима для подключения.
- Измените название псевдонима на
broken-play
. - Создайте пустой файл
empty-key
в домашнем каталоге пользователя. - В качестве пути к приватному ключу укажите путь к созданному пустому файлу.
- Попытайтесь подключиться к серверу с использованием псевдонима
broken-play
.
Задачи на передачу файлов #
- Создайте пустой файл
data.txt
в домашнем каталоге.- С помощью приложения
scp
скопируйте данный файл в домашний каталог на сервер с использованием псевдонимаplay-vm
. - С помощью приложения
scp
скопируйте данный файл на сервер без использования псевдонимов.- Какой ключ используется для указания порта севрера?
- Совпадает ли он с соответствующим ключом, который используется в приложении
ssh
?
- С помощью приложения
- Создайте следующую структуру файлов и каталогов в домашнем каталоге пользователя.
data/ ├── source/ │ ├── some.pdf │ └── text.doc └── target/ └── processed-today.txt
- С помощью приложения
scp
скопируйте данный каталог в каталог/tmp
на сервер без использования псевдонимов.- С помощью какого ключа указывается необходимость копирования каталога целиком?
- Повторите копирование каталога так, чтобы в целевом каталоге на сервере произошло обновление файлов, но не появился подкаталог
data
. - Что нужно сделать, чтобы появился подкаталог
data
в целевом каталоге?
- С помощью приложения
scp
скопируйте каталог/var/log
в домашний каталог пользователя на основном компьютере. - Повторите предыдущие операции с помощью приложения
sftp
.