Блокировка подключений SSHFS/Fuse от сервера SSHd

Вопрос или проблема

У меня есть сервер, к которому подключаются несколько пользователей через SSH, они используют либо SSH напрямую, SFTP, либо rSync для подключения. Я хочу, чтобы это продолжало функционировать. Но я хотел бы заблокировать возможность монтирования удаленных файловых систем с помощью SSHFS, чтобы они не могли монтировать директорию пользователя на свою локальную файловую систему и использовать ее как часть файловой системы без прерывания нормального использования SFTP или SSH. С нашей файловой системой ZFS и снимками использование их как SSHFS монтирования вызывает значительные затраты ресурсов, и это не нужно. Есть ли способ в конфигурационном файле SSHd, или, возможно, другим способом, заблокировать удаленное монтирование и использование SSHfs?

Я пробовал изменять /dev/fuse на chmod 000, но это ничего не дает. Я также пробовал следующее, но это не работает:

Match all
    PermitUserEnvironment no
    AllowTcpForwarding no
    PermitOpen none

Это невозможно. Для сервера это выглядит как обычная SFTP-сессия.

Fuse используется только на стороне клиента, а не на стороне сервера. sshfs выглядит как sftp для сервера.

Однако я полностью не понимаю, почему это должно быть менее эффективно по сравнению с другими режимами… Это звучит немного как проблема X-Y.

Ответ или решение

Теория

SSHFS (SSH Filesystem) — это удобный инструмент, который позволяет пользователю монтировать удаленные файловые системы через SSH. Эта возможность бывает особенно полезной для пользователей, которые хотят получить доступ к файлам и каталогам на удаленной машине, как если бы они находились локально. Однако этот метод может вызвать значительную нагрузку на сервер, особенно если он используется в сочетании с файловыми системами, такими как ZFS, которые активно используют снимки и другие ресурсоемкие методы управления данными. В случаях, когда нагрузка становится чрезмерной, от SSHFS подключения может потребоваться отказаться без нарушения доступа через простые SSH, SFTP или rSync.

Пример

Рассмотрим сценарий, когда системный администратор управляет сервером с несколькими пользователями, каждый из которых использует разный способ доступа. В то время как SFTP и rSync позволяют передавать файлы и синхронизировать данные, SSHFS создает дополнительную нагрузку, представляя собой неявное дополнительное использование ресурсов сервера. В результате чрезвычайные ситуации приводят к спаду производительности и увеличению времени отклика, особенно если уже задействованы ресурсы ZFS.

Администратор может предпринять несколько попыток снизить этот эффект. В числе этих попыток могут быть изменения прав доступа к конкретным устройствам, тестирование настроек SSHd в целях ограничения, таких как запрещение перенаправления TCP или использование переменных окружения. Однако SSHFS функционирует через стандартные команды SFTP, из-за чего сервер не видит разницы между этими протоколами и просто пропускает попытки ограничения.

Применение

Итак, как можно решить эту задачу? Рассмотрим несколько стратегий, которые можно использовать для предотвращения SSHFS подключений без потери доступа через SSH и SFTP:

  1. Ограничение по времени использования: Это потребует настройки пределов на использование соединений типа SSHFS. Используя такие утилиты, как iptables или прокси-защиту, можно заблокировать или замедлить определенные порты и типы подключений на уровне пользователя.

  2. Мониторинг аномальной активности: Разработайте и внедрите систему для мониторинга аномального использования системных ресурсов. Например, настроенные ленсеры или собственные скрипты на базе netstat и lsof помогут отслеживать и анализировать сетевую активность.

  3. Использование фаерволов и правил: Если сервер обрабатывает большое количество соединений, фаерволы, такие как UFW или csf, могут использоваться для введения временных блокировок на ненужные активности или IP-адреса.

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

  5. Обновление архитектуры доступа: Если количество пользователей достаточно велико, стоит рассмотреть вопрос о разделении ролей доступа по отдельным серверам или виртуальным машинам, чтобы разграничить функции и снизить нагрузку.

  6. Переход на альтернативные методы: Если возможны альтернативы, как другие инструменты для обмена файлами, их также стоит рассмотреть.

Эти подходы помогут вам не только уменьшить нагрузку на сервер от ненужных SSHFS соединений, но и сохранить функциональность нужных сценариев использования для пользователей. Главное — в конечном итоге добиться состояния, при котором система функционирует оптимально как для администраторов, так и для всех пользователей без потерь в производительности и функциональности.

Оцените материал
Добавить комментарий

Капча загружается...