Как ограничить использование определенного алгоритма HMAC клиентом при подключении по протоколу SFTP?

Как настроить SSH сервер так, чтобы он принимал подключения только с использованием алгоритмов hmac-sha2-256 и hmac-sha2-512, и как убедиться, что клиент использует именно эти алгоритмы при подключении, несмотря на предложения клиента использовать другие алгоритмы?
  • 16 января 2024 г. 16:08
Ответы на вопрос 1
Для того чтобы ограничить использование определенного алгоритма HMAC при подключении по протоколу SFTP, необходимо настроить конфигурацию SSH сервера. SSH (Secure Shell) и SFTP (SSH File Transfer Protocol) используют одинаковый механизм аутентификации и шифрования, поэтому настройка SSH также повлияет на SFTP.

Вам нужно изменить конфигурационный файл SSH сервера, который обычно находится в `/etc/ssh/sshd_config` в Unix-подобных системах. Выполните следующие шаги для настройки сервера:

1. Откройте файл конфигурации SSH сервера (обычно `/etc/ssh/sshd_config`) с правами суперпользователя.

   ```bash
   sudo nano /etc/ssh/sshd_config
   ```

2. Найдите или добавьте директиву `MACs`, которая определяет используемые алгоритмы HMAC. Отредактируйте её так, чтобы остались только желаемые алгоритмы, в вашем случае `hmac-sha2-256` и `hmac-sha2-512`:

   ```
   MACs hmac-sha2-256,hmac-sha2-512
   ```

   Это позволит SSH серверу принимать подключения только с использованием этих алгоритмов HMAC.

3. Сохраните изменения и закройте редактор.

4. Перезапустите SSH сервер для применения изменений:

   ```bash
   sudo systemctl restart sshd
   # Или используя следующую команду на системах без systemctl:
   sudo service sshd restart
   ```

5. Чтобы убедиться, что настройки применены, можно использовать команду `ssh -Q mac`, которая покажет список поддерживаемых SSH сервером алгоритмов MAC:

   ```bash
   ssh -Q mac
   ```

Относительно клиента, если сервер настроен должным образом, он не сможет подключиться, используя алгоритмы, не указанные в конфигурации сервера. Если клиент все же предпочитает указать алгоритмы явно, это можно сделать с помощью параметра `-o` в команде SSH при подключении:

```bash
sftp -o MACs=hmac-sha2-256,hmac-sha2-512 user@server
```

Учитывайте, что принудительное указание алгоритмов на стороне клиента может быть реализовано по-разному, в зависимости от программного обеспечения SFTP клиента, которое вы используете.
Похожие вопросы