SMB cервер с помощью python на Linux

SMB cервер с помощью python на Linux

  Когда мне нужно было быстро поднять smb сервер, чтобы разово перекинуть какие-то файлы, раньше я устанавливал samba и делал для неё простейший конфиг. Потом в Linux появилась поддержка протокола smb и сервера на его основе в ядре в виде пакета ksmbd. Стал использовать его. Хотя принципиально ни по времени настройки, ни по удобству он особо не выигрывает у самбы. Настройка плюс-минус такая же. В нём основное преимущество в скорости по сравнению с samba, что для разовых задач непринципиально.

На днях в комментариях поделились информацией о том, что есть простой smb сервер на базе python. Попробовал – на 10-ке Debian  все делается через Ж. на 12 Debiane все решается без проблем.  Решил его попробовать. Он реализован в отдельном пакете python3-impacket.

Это довольно обширный набор сетевых утилит, которые обычно используют пентестеры. В том числе там есть и smb сервер. Запустить его можно в одну строку примерно так:

  • share – имя шары
  • /mnt/share – директория для smb сервера, не забудьте на неё сделать права 777, так как доступ анонимный
  • smb2support – использовать 2-ю версию протокола, если это не добавить, то с Windows 11 подключиться не получится.

Запуск сервера реально простой и быстрый. Не нужны ни конфиги, ни службы. Запускаем в консоли команду, делаем свои дела и завершаем работу сервера. Для разовых задач идеально, если бы не довольно жирный сам пакет impacket.

Если нужна аутентификация, то её можно добавить:

Только учтите, что винда по какой-то причине не предлагает ввести имя пользователя и пароль, а пытается автоматически подключиться, используя имя пользователя и пароль, под которыми вы находитесь в системе в данный момент. Я не очень понял, почему так происходит. Если кто-то знает, поделитесь информацией. По идее, должно вылезать окно аутентификации. Но по логам smbserver вижу, что винда автоматически случится под той учёткой, от которой пытаешься подключиться.

Если подключаться с Linux, то таких проблем нет. Смотрим информацию о сетевых папках сервера:

Подключаемся к настроенной шаре:

Такой вот инструмент. В принципе, удобно. Можно использовать наравне с веб сервером:

Постоянно использую этот веб сервер для разовой передачи файлов. Запустил из нужной директории, скачал и завершил работу сервера.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *