Youtubezilla.ru

Мастер бытовой техники
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

What Is Samba Server And How To Setup Samba Server In Ubuntu Linux

What Is Samba Server And How To Setup Samba Server In Ubuntu Linux

setup samba server in ubuntu

Samba is an open-source software suite that runs on Unix/Linux based platforms but is able to communicate with Windows clients like a native application. So Samba is able to provide this service by employing the Common Internet File System (CIFS).

  • File & print services
  • Authentication and Authorization
  • Name resolution
  • Service announcement (browsing)

Samba can be run on many different platforms including Linux, Unix, OpenVMS and operating systems other than Windows and allows the user to interact with a Windows client or server natively. It can basically be described as the Standard Windows interoperability suite of programs for Linux and Unix.

Настройка iptables

Разрешим же необходимые порты:

# iptables -A INPUT -p udp -m udp —dport 137 -j ACCEPT
# iptables -A INPUT -p udp -m udp —dport 138 -j ACCEPT
# iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 139 -j ACCEPT
# iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 445 -j ACCEPT

Затем перезапустим службу Samba:

# service iptables restart

В некоторых случаях есть хосты, которые не должны иметь доступа к серверу Samba. Вы можете ограничить диапазон IP-адресов, которые могут успешно подключаться к серверу Samba. Вот пример команд, вместо приведенных выше:

# iptables -A INPUT -p udp -m udp -s 192.168.0.0/24 —dport 137 -j ACCEPT
# iptables -A INPUT -p udp -m udp -s 192.168.0.0/24 —dport 138 -j ACCEPT
# iptables -A INPUT -m state —state NEW -m tcp -p tcp -s 192.168.0.0/24 —dport 139 -j ACCEPT
# iptables -A INPUT -m state —state NEW -m tcp -p tcp -s 192.168.0.0/24 —dport 445 -j ACCEPT

Этот пример позволит только хостам с IP-адресами между 192.168.0.1 и 192.168.0.254 связаться с сервером Samba.

Если требуется ограничить доступ только с одного хоста, используйте эти команды:

# iptables -A INPUT -p udp -m udp -s 192.168.0.1/32 —dport 137 -j ACCEPT
# iptables -A INPUT -p udp -m udp -s 192.168.0.1/32 —dport 138 -j ACCEPT
# iptables -A INPUT -m state —state NEW -m tcp -p tcp -s 192.168.0.1/32 —dport 139 -j ACCEPT
# iptables -A INPUT -m state —state NEW -m tcp -p tcp -s 192.168.0.1/32 —dport 445 -j ACCEPT

Эта конфигурация позволит только хосту с IP-адресом 192.168.0.1 связаться с сервером Samba.

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

Подключение к папке Windows из Ubuntu. Вариант 1

Тут мы будем использовать cifs-utils для монтирования сетевой папки в любую папку на Ubuntu.

Устанавливаем пакет командой sudo apt install cifs-utils

Подключение к папке Windows из Ubuntu

Затем командой mkdir mount создаем папку в домашней директории пользователя /home/<user>, куда будем монтировать сетевую папку.

Читайте так же:
Как лучше назвать канал на ютубе — варианты

Командой ls проверяем, создалась ли папка.

Подключение к папке Windows из Ubuntu

Далее воспользуемся командой sudo mount -t cifs -o username=<имя пользователя Windows>,password=<пароль>,uid=1000,iocharset=utf8 //<домен компьютера>/директория (у меня открыт доступ к диску D, как просто папка D) /директория где создали папку (/home/yodo/mount в нашем случае).

Подключение к папке Windows из Ubuntu

Названия папок замазаны, т.к это мой личный ПК и мои персональные данные.

Установка и настройка Samba, Winbind

Устанавливаем необходимые пакеты:

Конфигурационный файл Samba (/etc/samba/smb.conf) приводим к виду:

Так как в Linux по-умолчанию установлен лимит на 1024 одновременно открытых файлов, а в Windows он 16384, поэтому увеличим лимит в Debian до значения 16384.

В файле (/etc/security/limits.conf) дописываем в самый конец строки:

Перезагружаем систему для применения изменений:

Выполним проверку конфигурации на ошибки, командой:

Проверка заданной конфигурации Samba правильная, ошибок и предупреждений нет, а поэтому можно вводить систему в домен, выполняем команду:

Вывод об успешном присоединении к домену:

Теперь чтобы система использовала winbind для поиска пользователей и групп в файле (/etc/nsswitch.conf) к параметрам passwd, group добавляем параметр winbind:

Перезапускаем службы Samba и Winbind для применения изменений:

Проверим, что Winbind установил доверительные отношения с Active Directory, выполним команду:

Для проверки видит ли Winbind пользователей и группы из Active Directory, выполним команды:

Если в ходе выполнения данных команд в консоль были выведены пользователи и группы из Active Directory, то это значит что Winbind работает правильно.

Так же удостоверится в корректной работе Winbind можно запросив данные по доменному пользователю (прим. ранее созданного пользователя datastore1):

Требования

Давайте сначала сформулируем задачу, которая может потребоваться от такого устройства. Несмотря на то, что решение подойдет для любой конфигурации, но из-за мелочей мало смысла заморачиваться. Проще реально взять по дешевке какой-нибудь сервер или даже арендовать VPS.

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

файловое хранилище с доступом по популярным протоколам;

подходящая программная среда, позволяющая дать доступ устройствам с разнообразными операционными системами.

Задача не сложная, нам требуется только сервер с контроллером, подходящим для построения RAID 10 и немного знаний. Учтите, чтобы разжевать все, что здесь будет написано, потребуется накатать целую книгу.

Итак, нам понадобится следующее:

Файловый сервер с контроллером.

Операционная система Ubuntu, желательно самую новую версию.

Программный комплекс Samba.

На старт! Внимание! Марш!

Создание сетевого файлового сервера на SAMBA

В первую очередь уточню, что при установке Ubuntu можно установить пакет Samba сразу. Смотрите скриншот.

Установка SAMBA

Но если это не было сделано, поступаем так:

Открываем терминал комбинацией клавиш Ctrl + Alt + T.

Выполняем команду sudo apt-get update. После sudo apt-get upgrade, если есть проблемы с обновлением, то dist-upgrade.

Читайте так же:
Как подключить эндоскоп к Андроиду

Выполняем команду sudo apt install samba samba-common python-dnspython

Дожидаемся установки, после чего переходим к следующему этапу.

Теперь настраиваем программный комплекс. Сделать это проще всего по официальной инструкции: https://help.ubuntu.ru/wiki/samba Рекомендую вместо

Рекомендую установить GUI для настройки в графическом интерфейсе в wiki-ubuntu об этом немного сказано. Но, если есть знания английского либо сможете разобрать кривой перевод, то вот ссылка на официальный сайт: https://www.samba.org/samba/GUI/ Информация дана довольно подробная, разъяснить лучше даже при желании не смогу.

Вы все настроили, пробросили порты, но возникает ошибка при удаленном доступе. И эта проблема многих ставит в тупик. Сейчас объясню, в чем она заключается.

SAMBA для файлового хранилища

Проблема удаленного доступа Samba

Для подключения через интернет потребуются рабочие порты:

И может получиться так, что одни люди могут подключиться к сетевому файловому серверу удаленно, другие нет. Не ищите проблему у себя в конфигурации, возможно она есть, но целесообразнее обратиться к провайдеру.

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

Первый, конечно же, смена провайдера, но, например, во многих офисных центрах альтернативы попросту нет. В таком случае сразу стоит перейти ко второму варианту.

Решаем задачу

Для начала устанавливаем и настраиваем OpenVPN по инструкции: https://help.ubuntu.ru/wiki/openvpn

Если в дальнейшем не поможет, то в файле конфигурации маску подсети заменяйте на свою. Не забудьте указать все порты.

Теперь установим iptables, конечно, если этого комплекса надстроек нет. Вводим команду:

Далее в терминал вводим такую команду:

Это для примера, параметры server и внешний IP указывайте свои. Таким образом открываем доступ к каждому порту через VPN. Не забудьте включить NAT: https://help.ubuntu.ru/wiki/sharing_internet

Вроде бы все, коротко, но ясно. Да, отнимет время, но нет ничего невозможного. Так что дерзайте. Успехов вам!

Conclusion

And there you have it, SMBv1 disabled on a Linux or Unix samba server to avoid security issues. Please read our comment section below for detailed discussion.

Get the latest tutorials on Linux, Open Source & DevOps via

CategoryList of Unix and Linux commands
Documentationhelp • mandb • man • pinfo
Disk space analyzersdf • duf • ncdu • pydf
File Managementcat • cp • less • mkdir • more • tree
FirewallAlpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04
Linux Desktop AppsSkype • Spotify • VLC 3
Modern utilitiesbat • exa
Network UtilitiesNetHogs • dig • host • ip • nmap
OpenVPNCentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
Package Managerapk • apt
Processes Managementbg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop
Searchingag • grep • whereis • which
Shell builtinscompgen • echo • printf
Text processingcut • rev
User Informationgroups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w
WireGuard VPNAlpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04

Comments on this entry are closed.

man smb.conf:
SMB2: Re-implementation of the SMB protocol. Used by Windows Vista and later versions of Windows. SMB2 has sub protocols available.

You will prevent Windows 7 machines from connecting..

Hello
Thanks for this, it seems to create problems with Windows 10 clients:
[2017/05/18] smbd/negprot.c:694(reply_negprot)
No protocol supported !
We use port 139, this may be the problem or the old samba version we have. I have to check further
I had to revert this and can’t find another solution for the moment. (Still searching)

Hello.
I followed this, however, there’s a problem.

I have a samba server. I added the line on the smb.conf file.
After that, I could connect the server from Windows 10 machine, but not from Ubuntu(16.04/17.04) file manager and Android(using Total commander) machines.

It works find without “min protocol = SMB2”.
Any help?

I’ve found the following to work. It raises the bar i little extra, but so far, no complaints have been heard (SMB2_10 should be fine, unless you have Windows XP or older clients).

The client stuff is to make smbclient (if you use that) skip SMB 1 in negotiations. The client max protocol may appear weird, but if it’s not included, then its value will defaul to something lower than 2.1, and then it will conflict with “client min protocol = SMB2_10”.

server min protocol = SMB2_10
client max protocol = SMB3
client min protocol = SMB2_10

After appending “min protocol = SMB2” in global section on my smb.conf server, I no longer connect from my linux laptop. Error displayed: “Error: Connection timed out. Please select another viewer and try again.” in my caja file manager.
Am using Linux Mint 18.1 Mate as client, with Ubuntu 14.04.5 as server using samba 4.3.11.
Same error for setting “min protocol = SMB3”.

1) Kaspersky and Symantec have indicated that WannaCry can spread via SMBv2 as well:

2) SMBv2 has consequences — there aren’t POSIX/Unix Extensions for it, so it may not be suitable depending on what clients use your Samba server.

Depending on your needs, this is easy and did the trick for my network:
protocol = SMB3

Ugh, nevermind, that just sets the max protocol.

You saved my life!
Thanks so much…

How to do it for nethserver 6.9?

Server:
min protocol = SMB2
Client:
smbclient -U=username -N –command=”dir Directory/*” //192.168.0.1/Directory

Error:
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

Worked for me with Windows 10 and linux client

Sorry for dual posting, but i will not change the server settings. Can i use smbclient with SMB2?
thank you!
anouke@isurfer.de

For all those who had problems with SMB2 in Vista clients and above: the kernel version included in your system may contains an older cifs.ko kernel module that only supports SMB1 protocol. SMB2 (and later) protocols require a later cifs.ko and thus a later kernel. Try update kernel to support for SMB2 protocol in the cifs.ko kernel module and so can act as a SMB2 client.

cifs.ko kernel module and so can act as a SMB2 server.

Sorry, my text was confusing and incomplete. Please remove it so I can include a better text.

On RHEL6/RHEL7 system,
default: max protocol = NT1 (SMB1)

So “min protocol = SMB2” can be over max protocol? or which one is higher priority?

I tested on RHEL6 system (samba server 3.6). One of the windows client was unable to connect to samba server on linux. SMB1 was disabled on windows server because of security concerns like wannacry. And “max protocol” was not set explicitly on samba server. So “max protocol” was NT1(SMB1) as default.
I set “min protocol = SMB2” on samba server but client couldn’t negotiate with server on protocol (smbd[…]: No protocol supported !)

Finally we solved the problem by setting “max protocol = SMB2”

Note: SMB3 protocol is supported by samba server over 4.x

This seems to work and prevent the security scanner from barking on SMBv1 support

###
server min protocol = SMB2_10
client min protocol = SMB2
client max protocol = SMB3

Hello
I m trying to print from linux to windows Printer ( in Win10 version 1709) with samba protocol without using smbv1 activated ..

My Windows is used in administrator user

Can you help me ?

I’m tryning several things with client /server protocol but dont work ;-(

Thanks best regards….

Stefan’s reply is what fixed months of a headache for me

to /etc/samba/smb.conf
service smb restart; service winbind restart
(RHEL 6 server)

Fixed it’s connection to a hardened 2012 Server as well as a hardened Windows 10 Computer. I’m testing a RHEL6 client now!

When using IPA server the smb.conf contains config backend = registry so any changes to smb.conf will be ignored. You can view the current settings with net conf list and remove SMBv1 with net conf setparm global “server min protocol” SMB2

I had just performed a Samba server fresh install on Ubuntu 12.04 LTS. Samba version is 3.6.25, according to $smbstatus.
By default, any host connected is detecting SMB v1. The only way I found to be able to run SMB v2 on the server is adding the following line to the config file:
protocol = SMB2

Finally, it can be checked by running $testparm that this is the same than writing
max protocol = SMB2

Thanks to all for your help.

Thanks so much for this article. While things have moved on since 2017 the problems around Linux SMB still exist in 2021, and this gave me the clues I needed to fix and secure my installation.

Short version:
Servers – Ubuntu 20.04.2 LTS 5.8.0-53-generic #60

20.04.1-Ubuntu SMP
Clients a mixture of:
– Ubuntu 20.04.2 LTS 5.8.0-53-generic #60

20.04.1-Ubuntu SMP
– Ubuntu 20.04.2 LTS 5.4.0-72-generic #80-Ubuntu SMP
– Ubuntu Mate 20.04.2 LTS 5.4.0-73-generic #82-Ubuntu SMP
– Windows 10 Pro 20H2

Originally none of the devices could see remote shares on any other machine, with the Linux machines giving the error message “Ubuntu 20.04 failed to retrieve share list from server: Invalid argument”.

I added the following lines to /etc/samba/smb.conf in all Linux machines (servers and clients), and it all worked perfectly – all servers can now see shares on all clients, and vice-versa.

[global]
workgroup = MYHOUSE
client min protocol = SMB3
server min protocol = SMB3

The underlying issue seems to be the Linux SAMBA negotiation around the version of SMB to use, which fails to agree a protocol. If you restrict the Linux boxes to any of SMB1, 2, or 3 they all work fine with each other and with Windows 10. In more detail, it seems to be that excluding SMB1 (using your min – SMB2, max – SMB3 config) also solves the problem, but I opted to force SMB3 so I’m not relying on any part of the protocol negotiation, in case it breaks in the future!

Доступ к принтеру с компьютера Windows

В Windows нажмите сочетание клавиш Win+R. Откроется окно «выполнить«, введите адрес сервера или имя сервера для получения доступа к серверу печати.

Настройка сервера печати Samba в CentOS Linux

Настройка сервера печати Samba в CentOS Linux

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector