Debian + Samba + Windows 10 + Android(ES Проводник) + Fail2Ban(защита от перебора паролей)

Это Вам так же может быть интересно!

Делитесь с друзьями в социальных сетях! Оставляйте комментарии!

Share/Save
test
В этом материале я покажу как настроить Samba на сервере Debian, а так же подключить клиенты в Windows 10 и Android. В конце материала мы так же настроим доп. защиту для Samba с помощью fail2ban от перебора паролей. добавление сетевого диска в Windows 10

Если на устройствах не всегда хватает памяти для хранения книг, видео, прочего или же нужен доступ с разных устройств, можно взять платный аккаунт на Google Drive или Dropbox. Множество других сервисов предоставляет свой кусочек места в интернете на 1Тб данных и больше начиная с 9.у.е. в месяц. Но если у Вас есть тестовый какой-нибудь сервер в интернете, как например у меня, то можно на нем разместить. Сервер можно взять например на Hetzner-е по достаточно дешевой цене. Это б/у сервера но их гораздо проще себе позволить и часто они стоят как средний VPS. Отзывы о них разные, но мне в принципе нравиться все. Но статья не о том.

Настраиваем Samba

Устанавливаем Samba apt-get install samba

Добавляем системного пользователя:
adduser smbuser
Если не добавить системного пользователя выдаст ошибку: "Failed to add entry for user"

добавляем пользователя Samba:
smbpasswd -a smbuser
вводим пароль и запоминаем его.

добавляем директорию для наших данных:
mkdir -p /home/smb/smbuser


не сильно заморачиваясь даем права на запись в эту папку всем
chmod a+rw /home/smb/smbuser


дописываем в конфиг нашей SAMBA(/etc/samba/smb.conf) следующие строки:
[smbuser]
path = /home/smb/smbuser
read only = No
guest ok = No
security = user
valid users = smbuser


Перезапускаем самбу:
/etc/init.d/samba-ad-dc restart
На этом вопрос на стороне с сервером решен.

Добавление сетевого диска в Windows 10

Это достаточно просто, жмем Пуск и на проводнике жмем правой кнопкой мыши. Дальше в контекстном меню выбираем "Подключить сетевой диск" и вводим IP сервера и название ресурса(\\111.111.111.111\smbuser), как на картинке:
добавление сетевого диска в Windows 10 Вместо 111.111.111.111 вводим IP своего сервера.
Жмем "Готово", вводим пользователя smbuser и его пароль и попадаем в папку сервера.
На этом с подключением диска в Windows 10 все. Как-то аналогично должно быть и в других версиях.

Подключение к сетевому диску из Android.

Я установил в Google Play приложение ES Проводник, так как сталкивался уже с ним, он достаточно удобен и не напоминает приложение слепленное на коленке, тем более какой-то не безопасный китайский софт для кражи паролей. Вы же можете выбрать то что вам больше подходит. Но тут я опишу процесс настройки именно его.

Запускаем ES Проводник.
Вызываем левое меню->Сеть->LAN->Создать.
Адрес сервера прописываем подобным образом: 111.111.111.111/smbuser
Пользователь smbuser, пароль который задавали при создании пользователя.
Жмем ОК и попадаем в наше хранилище.
Как минус этого клиента то что чтобы использовать протокол SMB2, нужно установить достаточно жирную предлагаемую ими игру из Google Play. Фиговей если игры вообще не играешь.

Вы можете выбрать другой клиент, подключение в нем будет подобным.

Усиливаем защиту SAMBA с помощью fail2ban

Если вы никогда не сталкивался с fail2ban то вы не понимаете даже на сколько это Must Have простой но достаточно эффективный сервис защиты от перебора паролей. Он читает логи и при достижении лимита записей в лог о неудачных авторизациях блокирует IP атакующего. Это не панацея, но часть атак отсеивает.

Добавляем следующие строки в секцию [global] файла /etc/samba/smb.conf:
full_audit: failure = none
full_audit: success = pwrite write rename
full_audit: prefix = IP =% I | USER =% u | MACHINE =% m | VOLUME =% S
full_audit: facility = local7
full_audit: priority = NOTICE
log level = 3


Так же в секцию которую мы прописывали раньше добавляем строку:
[smbuser]
...
vfs objects = full_audit


В том же файле находим строки:
syslog only = no
log file = /var/log/log.%m
и меняем no на yes, а 0 на что-нибудь повыше, например 3 строку log file меняем на:
   log file = /var/log/samba/log
Так как по умолчанию он создает для каждого айпи свой файл лога, и выбирать из такого количества файлов проблематично. По этому для лога у нас будет только этот один файл

Если не установлен fail2ban то ставим командой:
apt-get install fail2ban


Создаем и заполняем файл настроек для него:
nano /etc/fail2ban/filter.d/samba.conf
со следующим содержимым:
[Definition]
failregex = NT_STATUS_NO_SUCH_USER.*\[ipv4:<HOST>:.*$
            NT_STATUS_WRONG_PASSWORD.*\[ipv4:<HOST>:.*$
Нужно ориентироваться по логу в который пишем, так как регулярка зависит от формата записи в лог. В своем Debian я прописал именно такую, работает, проверено.

Так же создаем файл: /etc/fail2ban/jail.d/samba.conf со следующим содержимым:
[samba]
filter = samba
enabled = true
action = iptables-allports[name = samba, port = "135,139,445,137,138" protocol = tcp]
mail [name = samba, [email protected]]
logpath = /var/log/samba/log
maxretry = 3
find time = 60
bantime = 24400
Вы можете поиграть с параметрами по своему усмотрению.

Перезапускаем SAMBA:
/etc/init.d/samba-ad-dc restart


После перезапускаем fail2ban:
/etc/init.d/fail2ban restart


Для проверки работоспособности просто уменьшите число bantime для fail2ban и введите не правильно. Из-под линукса это можно сделать с помощью smbclient.
Сперва устанавливаем:
apt-get install smbclient


После установки для того чтобы подключиться к нашему серверу достаточно выполнить команду:
smbclient \\\\88.198.22.172\\smbuser -U smbuser
Вводите пароль и попадаете на сервер. Так же можно протестировать и защиту.

На этом все, материал получился достаточно обьемным, но не сложным. И главное, надеюсь полезным.

P.S. В дополнение хотелось бы сказать что стоит отключать службу самбы когда она не используется. И включать тогда когда нужно что-то сохранить или скачать. Так как у самбы есть определенные проблемы с безопасностью и так же ее можно проексплуатировать так чтобы ваш сервер атаковал некий третий ресурс.
Категория: 
Share/Save