Overview of file sharing using the smb 3 protocol in windows server

Оглавление

Настройка двунаправленной репликации sysvol и netlogon с помощью Unison

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

Во втором работает в обе стороны. Используем для этого Rsync и Unison (программа двунаправленной синхронизации файлов).

Установка:

eсли вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:

# yum install rsync unison

eсли вы используете РЕД ОС версии 7.3 и старше, выполните команду:

# dnf install rsync unison

Создание для ssh rsa ключей и копирование публичного ключ на DC2:

# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@DC2.skynet.murom

Теперь без ввода пароля можно попасть по ssh с DC1 на DC2 выполнив команду:

ssh dc2.skynet.murom

При низких скоростях в сети, unison может некорректно работать, поэтому при повторной его работе будет использоваться ранее созданное подключение по ssh, для этого:

mkdir ~/.ssh/ctl
cat << EOF > ~/.ssh/ctl/config
Host *
ControlMaster auto
ControlPath ~/.ssh/ctl/%h_%p_%r
ControlPersist 1
EOF

Лог файл репликации (следим за размером лога!)

# touch /var/log/sysvol-sync.log
# chmod 640 /var/log/sysvol-sync.log

Создайте файла конфигурации unison, для этого создадим каталог .unison:

# mkdir /root/.unison

а теперь создадим в нем файл конфигурации:

# nano /root/.unison/default.prf

с содержимым:

root = /var/lib/samba
# Note that 2 x / behind DC2, it is required
root = ssh://root@DC2.skynet.murom//var/lib/samba 
# Путь синхронизации
path = sysvol
#ignore = Path stats  ## ignores /var/www/stats
auto=true
batch=true
perms=0
rsync=true
maxthreads=1
retry=3
confirmbigdeletes=false
servercmd=/usr/bin/unison
copythreshold=0
copyprog = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --inplace --compress
copyprogrest = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --partial --inplace --compress
copyquoterem = true
copymax = 1
logfile = /var/log/sysvol-sync.log

Установка rsync и unison на DC2:

для РЕД ОС версии 7.1 или 7.2:

# yum install rsync unison

для РЕД ОС версии 7.3 и старше:

# dnf install rsync unison

Сделайте backup sysvol, потом запустите команду синхронизации:

/usr/bin/rsync -XAavz --log-file /var/log/sysvol-sync.log --delete-after -f"+ */" -f"- *" /var/lib/samba/sysvol root@dc2.skynet.murom:/var/lib/samba && /usr/bin/unison
&> /dev/null

в этой строке программа rsync создает структуры каталогов с расширенными атрибутами, а затем программа Unison копирует только эти расширенные атрибуты файлов.

Межсайтовая синхронизации настраивается через оснастку(mmc) «Active Directory Sites and Services» в Windows. Оснастка входит в пакет RSAT.

Рабочая группа

Рабочая группа должна быть одинаковой на всех устройствах. Как правило, так и есть. Но желательно проверить. Для этого откройте свойства компьютера «Система» и перейдите в «Дополнительные параметры системы».

Там будет указана «Рабочая группа». Чтобы изменить ее, нужно нажать на кнопку «Изменить».

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

Если у вас проблема с доступом к сетевому накопителю (к флешке через маршрутизатор), то в настройках общего доступа на том же роутере ASUS так же указана рабочая группа. Можете посмотреть на скриншоте выше в статье. Она должна быть такой же, как на компьютере.

Настройка samba в CentOS 8

Сперва перед началом настройки переименуйте конфигурационный файл Samba для сохранения его резервной копии. Выполняется это действие следующей командой:

1. Общий  ресурс с анонимным доступом

Теперь создайте на сервере общий ресурс в котором будут хранится файлы и папки с предоставленным к ним анонимным доступом. Для этого вам необходимо создать папку к которой будет предоставлен анонимный доступ:

Затем настройте права и разрешения selinux на доступ к этой папке при помощи следующих команд:

Теперь создадим новый файл конфигурации Samba следующей командой:

Добавьте в созданный файл следующие строки:

Проверьте настройки Samba запустив следующую команду:

Теперь вам необходимо добавить службу Samba в брандмауэр и запустить её. Для этого выполните следующие команды:

Запустите и добавьте в автозагрузку сервис Samba:

Теперь на вашей windows машине откройте строку Выполнить находящуюся в меню Пуск или при помощи сочетания клавиш Win+R. В открывшейся строке наберите следующую команду и нажмите ОК либо Enter:

У вас откроется сетевая папка расположенная на вашем CentOS 8 сервере настроенная для анонимного доступа.

Теперь вы можете добавлять требуемые файлы и папки в эту папку предоставляя другим пользователям доступ к ним.

Настройка Samba CentOS 8 для анонимного доступа к данным завершена.

2. Общий ресурс с приватным доступом

Для предоставления доступа к файлам и папкам определенным пользователям создайте защищенную папку Samba. Сперва создайте защищенную группу с пользователями. Для этого выполните следующую команду:

Теперь добавьте пользователя в группу securedgroup от имени которого будет осуществляться вход в защищенную папку:

Теперь создайте защищенную общую папку Samba и добавьте к ней необходимые разрешения выполнив следующие команды:

Теперь добавьте пользователя в базу данных и установите для него пароль:

Добавьте в файл конфигурации Samba следующие строки:

Затем перезапустите Samba следующей командой:

Теперь для того, чтобы получить доступ к защищенной папке вашего CentOS 8 сервера из вашей windows машины откройте строку Выполнить из пункта меню Пуск или при помощи комбинации клавиш Win+R и наберите:

Затем нажмите ОК или клавишу Enter.

При попытке входа в защищенную папку у вас появится окно с требованием ввести имя пользователя и пароль для получения доступа к файлам находящимся в защищенной папке.

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

Проверка параметров общего доступа в Windows 10

Возможно, конечно, на вашем компьютере отключен, или неправильно настроен общий доступ. Из-за чего Windows 10 не может обнаружить другие компьютеры и накопители в локальной сети. Сейчас покажу, как проверить эти настройки.

Открываем меню «Пуск» (или нажав на кнопку поиска) и пишем «общего доступа». Открываем «Управление расширенными параметрами общего доступа».

Или можно открыть это окно в параметрах «Сеть и Интернет» – «Параметры общего доступа».

Дальше для текущего профиля (скорее всего это будет частная сеть) установите переключатель возле «Включить сетевое обнаружение» и «Включить общий доступ к файлам и принтерам». А так же поставьте галочку возле «Включить автоматическую настройку на сетевых устройствах».

Нажмите на кнопку «Сохранить изменения».

Если это не поможет – попробуйте установить такие настройки для вкладки «Все сети».

Но не рекомендую составлять такие настройки, особенно если вы часто подключаетесь к общественным Wi-Fi сетям.

Еще несколько решений:

  • Убедитесь, что ваш компьютер и другие компьютеры с которыми вы хотите настроить локальную сеть подключены через один роутер.
  • Отключите антивирус (встроенный в нем брандмауэр) и защитник Windows. Если это не решит проблему – включите обратно.
  • Если ваш компьютер с Windows 10 (который не видит общие папки и компьютеры в локальной сети) подключен к роутеру по Wi-Fi, то присвойте этой беспроводной сети статус частной (домашней).
  • Убедитесь, что на других компьютерах в локальной сети правильно заданы настройки общего доступа. Или на роутере настроен общий доступ к подключенному USB-накопителю.

Буду рад видеть ваши комментарии с другими решениями и вопросами по теме данной статьи!

Привет! Для тех кто не в теме, начну из далека. На компьютерах и ноутбуках с установленной Windows в проводнике есть отдельная вкладка «Сеть». На этой вкладке отображаются устройства из сетевого окружения. То есть, открыв вкладку «Сеть» мы там можем наблюдать компьютеры, сетевые хранилища (NAS), устройства мультимедиа (DLNA), флешки и внешние диски, которые подключены к роутеру и к которым настроен общий доступ. Проще говоря, те устройства, которые подключены через один роутер (находятся в одной сети) и на которых включена функция сетевого обнаружения (устройства, которые могут быть обнаружены в локальной сети). Там так же может отображаться наш маршрутизатор (раздел «Сетевая инфраструктура») и другие устройства.

Сейчас поясню что и как, и почему я вообще решил написать эту статью. У меня роутер ASUS, к которому я подключил USB флешку, и настроил общий доступ к этой флешке для всех устройств в сети. И что вы думаете, в разделе «Сеть» на всех компьютерах появился этот сетевой накопитель (он там отображается как «Компьютер»), а на моем компьютере он не отображался. То есть, мой компьютер не видел ни флешку подключенную к роутеру, ни другие компьютеры в этой сети. Зато отображался DLNA-сервер запущен на том же роутере. Но это ничего не меняет, так как мне нужен обычный сетевой доступ к накопителю.

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

Такая проблема, когда Windows 7, Windows 8, или Windows 10 не видит сетевые устройства – не редкость. Это не обязательно должна быть флешка, или внешний HDD, который вы подключили к своему маршрутизатору, как в моем случае. Чаще всего настраивают общий доступ между компьютерами в локальной сети. И точно так же сталкиваются с проблемой, когда компьютеры подключены к одной сети (к одному роутеру), настройки общего доступа выставлены правильно, а на вкладке «Сеть» пусто. Или отображается только маршрутизатор и ваш компьютер.

Так как причин и соответственно решений может быть много, то я наверное начну с самых простых (которые мне не помогли) и в конце этой статьи поделюсь решением, которое помогло в моем случае. В итоге мой ноутбук все таки увидел все устройства в сети. В том числе сетевой накопитель и другой компьютер, который так же подключен к этой сети.

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

Не открываются общие сетевые SMB папки в Windows 10

Если вы из Windows 10 не можете открыть сетевые папки на других сетевых устройствах (NAS, Samba сервера Linux) или на компьютерах со старыми версиями Windows (Windows 7/ XP /2003), скорее всего проблема связана с тем, что в вашей новой версии Windows 10 отключена поддержка устаревших и небезопасных версий протокола SMB (используется в Windows для доступа к общим сетевым папкам и файлам). Так, начиная с Windows 10 1709, был отключен протокол SMBv1 и анонимный (гостевой) доступ к сетевым папкам по протоколу SMBv2.

Конкретные действия, которые нужно предпринять зависят от ошибки, которая появляется в Windows 10 при доступе к общей папке и от настроек удаленного SMB сервера, на котором хранятся общие папки.

Организация доступа к Windows с помощью клиента smbclient

В первую очередь, нам необходимо убедиться в том, может ли наш Linux взаимодействовать с Windows с помощью Samba. Самый простой способ, это воспользоваться FTP-подобным клиентом . C помощью которого, можно отправить запрос системе Windows и получить информацию о том, какие ресурсы Windows являются доступными.

samba:~# smbclient -L host -U%
Domain= OS= Server=

 Sharename       Type      Comment
 ---------       ----      -------
Error returning browse list: NT_STATUS_ACCESS_DENIED
Domain= OS= Server=

 Server               Comment
 ---------            -------
 HOST

 Workgroup            Master
 ---------            -------
 WORKGROUP            HOST
samba:~# smbclient -L host -UАдминистратор%12345
Domain= OS= Server=

 Sharename       Type      Comment
 ---------       ----      -------
 IPC$            IPC       Удаленный IPC
 print$          Disk      Драйверы принтеров
 SharedDocs      Disk
 PrinterHP3005   Printer   HP3005
 share           Disk
 ADMIN$          Disk      Удаленный Admin
 share_ware      Disk
 C$              Disk      Стандартный общий ресурс
Domain= OS= Server=

 Server               Comment
 ---------            -------

 Workgroup            Master
 ---------            -------

Из листинга видно, как мы с помощью smbclient и параметра -L запросили список доступных ресурсов на машине host от имени анонимного пользователя (параметр -U%). В ответ Windows нам сказал, что Error returning browse list: NT_STATUS_ACCESS_DENIED, то есть анонимный доступ запрещен. Далее, мы попробовали подключиться к машине от имени пользователя Администратор с паролем 12345, который зарегистрирован в системе. Мы получили ответ со списком расшаренных ресурсов. Это не может не радовать. Давайте попробуем подключиться к шаре share:

samba:~# cd smb/
samba:~/smb# smbclient //host/share -UАдминистратор%12345
Domain= OS= Server=
smb: \> dir
 .                                   D        0  Fri Mar 18 17:36:56 2011
 ..                                  D        0  Fri Mar 18 17:36:56 2011
 ime                                 D        0  Fri Mar 18 17:36:43 2011
 Мои рисунки              DR        0  Fri Mar 18 17:36:56 2011
 Моя музыка                DR        0  Fri Mar 18 17:36:56 2011

 40915 blocks of size 262144. 24388 blocks available
smb: \> cd ime
smb: \ime\> dir
 .                                   D        0  Fri Mar 18 17:36:43 2011
 ..                                  D        0  Fri Mar 18 17:36:43 2011
 chsime                              D        0  Fri Mar 18 17:36:43 2011
 CHTIME                              D        0  Fri Mar 18 17:36:43 2011
 imejp                               D        0  Fri Mar 18 17:36:43 2011
 imejp98                             D        0  Fri Mar 18 17:36:43 2011
 imjp8_1                             D        0  Fri Mar 18 17:36:43 2011
 imkr6_1                             D        0  Fri Mar 18 17:36:43 2011
 mscandui.dll                        A   220160  Tue Apr 15 16:00:00 2008
 shared                              D        0  Fri Mar 18 17:36:43 2011
 SOFTKBD.DLL                         A   130048  Tue Apr 15 16:00:00 2008
 SPGRMR.dll                          A    62976  Tue Apr 15 16:00:00 2008
 SPTIP.dll                           A   272384  Tue Apr 15 16:00:00 2008

 40915 blocks of size 262144. 24388 blocks available
smb: \ime\> get SPTIP.dll
getting file \ime\SPTIP.dll of size 272384 as SPTIP.dll (11565,2 KiloBytes/sec) (average 11565,2 KiloBytes/sec)
smb: \ime\> quit
samba:~/smb# ls -l
итого 269
drwxr-xr-x  2 root root   1024 Мар 18 19:00 .
drwxr-xr-x 13 root root   1024 Мар 18 18:50 ..
-rw-r--r--  1 root root 272384 Мар 18 19:00 SPTIP.dll

Итак, в приведенном листинге нам удалось подключиться к шаре \\host\share от пользователя Администратор с паролем 12345. Мы получили содержимое каталога (причем русские символы прекрасно отображаются), перешли в подкаталог ime, получили его содержимое и получили на локальную машину файл SPTIP.dll, командой get (команда как и у FTP клиента). Вы, наверно, заметили, что в утилите smbclient путь к шаре указывается с прямым слешем, хотя в Windows принято задавать путь с обратным слешем. Утилита smbclient довольно гибка и используется как часть утилиты smbprint, для передачи потока данных, отправленных на принтер.

Безопасность

За прошедшие годы в реализации протокола или компонентов Microsoft, на которые она напрямую полагается, обнаружилось множество уязвимостей. Уязвимости системы безопасности других производителей заключаются в основном в отсутствии поддержки новых протоколов аутентификации, таких как NTLMv2 и Kerberos, в пользу таких протоколов, как NTLMv1, LanMan или паролей в виде открытого текста . Отслеживание атак в режиме реального времени показывает, что SMB является одним из основных векторов атак для попыток вторжения, например, атака Sony Pictures в году и атака вымогателя WannaCry в 2017 году. В 2020 году две уязвимости SMB высокой степени опасности были обнаружены и названы SMBGhost

Авторизация с Active Directory

Разберем пример конфигурирования файлового сервера samba в домене Windows и настроим авторизацию пользователей на базе LDAP Active Directory.

Подключение к Active Directory

Введем наш сервер в домен. Сначала необходимо убедиться, что сервер доступен по своему доменному имени. Если серверу так и не было задано вменяемого имени, вводим команду:

hostnamectl set-hostname samba.dmosk.local

* где samba — имя сервера; dmosk.local — домен.

После добавляем в DNS наш сервер samba. Ждем минут 15, если у нас используется доменная инфраструктура с несколькими сайтами.

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

dnf install samba-client samba-winbind samba-winbind-clients krb5-workstation

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В разделе редактируем следующие опции:

workgroup = DMOSK
security = ads

* где DMOSK — NETBIOS имя домена; ads — указывает, что для samba будет использоваться модель безопасности LDAP Active Directory.

Также в добавим следующие строки:

kerberos method = secrets and keytab
realm = DMOSK.LOCAL
winbind enum groups = Yes
winbind enum users = Yes
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid

* где:

  • kerberos method — метод проверки kerberos. В данном примере сначала используется secretts.tdb, а затем системная таблица ключей.
  • realm — сервер Active Directory. В нашем примере прописан домен, так как по нему можно обратиться к любому из серверов AD.
  • winbind enum groups — задает пределы перечисления групп через setgrent(), getgrent() и endgrent().
  • winbind enum users — задает пределы перечисления пользователей через setpwent(), getpwent()и endpwent().
  • idmap config * : rangesize — определяет количество доступных uids и gids в каждом доменном диапазоне.
  • idmap config * : range — определяет доступные совпадающие диапазоны uid и gid, для которых серверная часть является авторитетной.
  • idmap config * : backend — задает idmap плагин для использования в качестве SID/uid/gid подсистемы

Вводим сервер в домен: 

net ads join -U Administrator@dmosk.local

* где Administrator — учетная запись пользователя AD с правами на ввод компьютеров в домен; dmosk.local — наш домен.

Мы должны увидеть, примерно, следующее:

Using short domain name — DMOSK
Joined ‘SAMBA’ to dns domain ‘dmosk.local’

Разрешаем автозапуск winbind и стартуем его:

systemctl enable winbind —now

Выбираем профиль для аутентификации:

authselect select winbind —force

Проверяем, что наш сервер может получить список пользователей Active Directory:

wbinfo -u

… и групп:

wbinfo -g

Если мы увидели список пользователей и групп, то присоединение сервера к домену завершено.

Настройка шары

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

Создаем шару:

    comment = Folder for AD users
    path = /data/ad
    public = no
    writable = yes
    read only = no
    guest ok = no
    valid users = «@DMOSK\Domain Users» «@DMOSK\Domain Admins»
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777
    inherit owner = yes

* в данном примере мы будем шарить папку на сервере /data/ad; мы предоставим доступ всем пользователям групп Domain Users и Domain Admins домена DMOSK.

Создаем каталог и задаем права:

mkdir /data/ad

chmod 777 /data/ad

Теперь можно перезапустить самбу:

systemctl restart smb

Пробуем подключиться к серверу. У нас должна появиться еще одна папка ad. 

Права ACL

И в продолжение разговора о интеграции с AD, попробуем настроить ACL для более тонкого предоставления прав доступа.

Для этого снова открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В раздел добавим:

acl compatibility = auto

… и создадим новую шару:

    comment = Folder for AD ACL
    path = /data/adacl
    public = no
    writable = yes
    read only = no
    guest ok = no
    admin users = «@DMOSK\Domain Admins»
    inherit acls = yes
    inherit owner = yes
    inherit permissions = yes
    map acl inherit = yes

* где admin users — пользователи, которые могут менять права папки; inherit acls — наследование acl прав; inherit permissions — наследование прав от папки родителя; map acl inherit — использовать ли схему контроля доступа, хранимую в Windows ACL.

Создаем каталог и задаем права:

mkdir /data/adacl

chmod 777 /data/adacl

Перезапускаем самбу:

systemctl restart smb

Подключаемся к нашей созданной общей папке. Кликаем по ней правой кнопкой мыши — выбираем свойства. На вкладке «Безопасность» мы можем менять права:

Решение проблем

Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory

Известная ошибка Windows 7 «mount error(12): cannot allocate memory» может быть исправлена установкой пары ключей в реестре системы Windows:

  • (установить значение )
  • (установить значение )

В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f

Выполните одно из следующих действий, чтобы изменения вступили в силу:

  • Перезагрузите Windows
  • Перезапустите службу на сервере через services.msc
  • Выполните в командной строке и ; после остановки служба может перезапуститься автоматически

Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер «IRPStackSize». Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его

Проблемы получения доступа к ресурсам, защищенным паролем, из Windows

Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера

# lanman fix
client lanman auth = yes
client ntlmv2 auth = no

Диалоговое окно появляется с большой задержкой

У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:

[2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
Unable to connect to CUPS server localhost:631 - Interrupted system call

Эта опция предотвращает поиск cups и файла /etc/printcap:

printing = bsd
printcap name = /dev/null

Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf:

load printers = No
printing = bsd
printcap name = /dev/null
disable spoolss = Yes

Перезапустите samba:

systemctl restart smbd

…проверьте ваши логи:

cat /var/log/samba/smbd.log

и больше ошибка не должна появляться.

Не удается предоставить общий доступ к папке

Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

Для решения проблемы включите пользовательские общие ресурсы, как это описано в разделе .

И вы используете firewall (iptables), поскольку не доверяете вашей локальной (школа, университет, отель) сети. Это может происходить по следующей причине: когда smbclient просматривает локальную сеть, он посылает широковещательный запрос на udp-порт 137. Затем серверы сети отвечают вашему клиенту, но, поскольку исходный адрес ответа отличается от адреса назначения, который видел iptables при отправке запроса, iptables не признает ответ как «установленное соединение» или «относящийся к запросу», и, следовательно, пакет отбрасывается. Возможное решение — добавление:

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

в вашу конфигурацию iptables.

Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)

Вероятно, вы указываете неправильное имя сервера. Чтобы узнать его, запустите на сервере команду и найдите строку «Transient hostname».

Как подключиться к сетевой папке в Windows по SMB

На компьютерах, которые должны подключаться к общей сетевой папке, перейдите в «Изменение расширенных параметров общего доступа» и выберите опцию «Включить сетевое обнаружение»:

С недавнего времени, после очередного обновления Windows 10 в некоторых случаях перестали открываться сетевые папки. Дело в том, что теперь вход без ввода пароля нужно настраивать не только на компьютерах, где находится сетевая папка, но и на компьютерах, с которых выполняется подключение. Это довольно странное решение объясняется тем, чтобы вы случайно не подключились к папке злоумышленника и не скачали с неё вредоносное ПО. Вам НЕ НУЖНО делать настройку в gpedit.msc если вы подключаетесь к сетевой шаре по паролю. Если же вы настроили вход в общую папку без пароля, то для исправления ситуации нажмите Win+r (Пуск->Выполнить) и запустите

gpedit.msc

Далее необходимо перейти по следующему пути «Конфигурация компьютера» → «Административные шаблоны» → «Сеть» → «Рабочая станция Lanmann»:

Теперь выставите параметр «Включить небезопасные гостевые входы» в положение «Включено»:

Описание в документации:

Этот параметр политики определяет, разрешит ли клиент SMB небезопасные гостевые входы на сервер SMB.

Если этот параметр политики включён или не настроен, клиент SMB разрешит небезопасные гостевые входы.

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

Небезопасные гостевые входы используются файловыми серверами для разрешения доступа без проверки подлинности к общим папкам. Небезопасные гостевые входы обычно не используются в среде предприятия, однако часто используются потребительскими запоминающими устройствами, подключёнными к сети (NAS), которые выступают в качестве файловых серверов. Для файловых серверов Windows требуется проверка подлинности, и на них по умолчанию не используются небезопасные гостевые входы. Поскольку небезопасные гостевые входы не проходят проверку подлинности, важные функции безопасности, такие как подписывание и шифрование SMB-пакетов отключены. В результате этого клиенты, которые разрешают небезопасные гостевые входы, являются уязвимыми к различным атакам с перехватом, которые могут привести к потере данных, повреждению данных и уязвимости к вредоносным программам. Кроме того, какие-либо данные, записанные на файловый сервер с использованием небезопасного гостевого входа, являются потенциально доступными для любого пользователя в сети. Майкрософт рекомендует отключить небезопасные гостевые входы и настроить файловые серверы на требование доступа с проверкой подлинности.»                      

Наконец-то, можно подключиться к общей папке (share) в локальной сети. Для этого откройте проводник и перейдите в раздел «Сеть»:

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

Примечание для Windows Server: в серверных версиях Windows даже когда разрешено подключаться без пароля, всё равно появляется окно запроса:

Достаточно ввести произвольные данные и, моём случае, сетевая папка успешно открывалась. При подключении к этой же папке с обычного Windows 10, запрос на ввод пароля не появлялся. Видимо, для сервера настроены какие-то более строгие политики.

При клике на имя компьютера вы увидите доступные сетевые папки. При переходе в папку вы увидите её содержимое:

Вы можете открывать файлы по сети, то есть не нужно предварительно копировать их на свой компьютер. Можете копировать файлы из общей папки, добавлять туда новые или удалять существующие — с сетевой папкой можно работать как с обычной локальной папкой.

В Windows сетевые папки можно сделать доступными в качестве дисков с буквой. Для этого правой кнопкой мыши кликните по слову «Сеть» и выберите пункт «Подключить сетевой диск»:

Выберите букву для диска, введите путь до папки, поставьте галочку «Восстанавливать подключение при входе в систему»:

Теперь вы будете видеть сетевую папку как диск в любом файловом менеджере:

Регистрация компьютера в Active Directory домене

Убедитесь что Samba не запущена. Если запущена, ее нужно остановить:

service smb stop; service winbind stop

Чтобы включить компьютер в домен, выполните команду:

net ads join -U administrator

где administrator — имя пользователя домена, имеющего право создавать новые учетные записи.

Если не было выдано сообщение об ошибке, то машина успешно зарегистрирована в домене — иначе проверьте правильность задания параметров в /etc/samba/smb.conf и /etc/krb5.conf. Убедитесь, что пользователь, указанный после -U в net ads join, имеет необходимые права на создание новых учетных записей.

Теперь можно запустить необходимые службы:

# service smb start; service winbind start

Установка Samba

Samba 3.0, в отличие от более ранних версий Samba, имеет возможность работать в сетях Wndows, работающих в режиме Active Directory (или Windows 2000 native mode). Если требуется эта функциональность, следует установить samba3 samba2.

Active Directory имеет другую схему именования доменов, компьютеров и пользователей, основанную на DNS. Допустим, существует сеть с именем my.firm.com и компьютерами host1.my.firm.com, host2.my.firm.com, host3.my.firm.com; тогда домен Active Directory будет называться my.firm.com, а пользователи Active Directory будут иметь имена вида user@my.firm.com.

Некоторые особенности работы в Active Directory

В отличие от доменов Windows NT, авторизация в Active Directory производится не по имени и паролю, а c помощью билетов протокола Kerberos. Из-за этого работа с smbclient может поначалу показаться необычной.

Во-первых, при вызове smbclient нужно указывать опцию -k. Во-вторых, билеты Kerberos даются на определенное время (обычно на сутки, но это зависит от настроек сервера). Поэтому их нужно периодически обновлять с помощью команды kinit:

# kinit username@realm

где username — ваше имя в Active Directory домене REALM.

Так что если smbclient вдруг перестает подключаться к доменным ресурсам, попробуйте обновить билет — скорее всего, дело именно в этом.

Как подключиться к сетевой папке в Windows (SMB)

На компьютерах, которые должны подключаться к общей сетевой папке, перейдите в «Изменение расширенных параметров общего доступа», для этого нажмите правой кнопкой мыши на значок сетевого соединения и нажмите «Открыть параметры сети и Интернет»:

В открывшемся окне нажмите на «Параметры общего доступа»:

На компьютерах, которые должны подключаться к общей сетевой папке, перейдите в «Изменение расширенных параметров общего доступа» и выберите опцию «Включить сетевое обнаружение»:

С недавнего времени, после очередного обновления Windows 10 в некоторых случаях перестали открываться сетевые папки. Дело в том, что теперь вход без ввода пароля нужно настраивать не только на компьютерах, где находится сетевая папка, но и на компьютерах, с которых выполняется подключение. Это довольно странное решение объясняется тем, чтобы вы случайно не подключились к папке злоумышленника и не скачали с неё вредоносное ПО. Вам НЕ НУЖНО делать настройку в gpedit.msc если вы подключаетесь к сетевой шаре по паролю. Если же вы настроили вход в общую папку без пароля, то для исправления ситуации нажмите Win+r (Пуск->Выполнить) и запустите:

Далее необходимо перейти по следующему пути «Конфигурация компьютера» → «Административные шаблоны» → «Сеть» → «Рабочая станция Lanmann»:

Теперь выставите параметр «Включить небезопасные гостевые входы» в положение «Включено»:

Описание в документации:

Этот параметр политики определяет, разрешит ли клиент SMB небезопасные гостевые входы на сервер SMB.

Если этот параметр политики включён или не настроен, клиент SMB разрешит небезопасные гостевые входы.

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

Небезопасные гостевые входы используются файловыми серверами для разрешения доступа без проверки подлинности к общим папкам. Небезопасные гостевые входы обычно не используются в среде предприятия, однако часто используются потребительскими запоминающими устройствами, подключёнными к сети (NAS), которые выступают в качестве файловых серверов. Для файловых серверов Windows требуется проверка подлинности, и на них по умолчанию не используются небезопасные гостевые входы. Поскольку небезопасные гостевые входы не проходят проверку подлинности, важные функции безопасности, такие как подписывание и шифрование SMB-пакетов отключены. В результате этого клиенты, которые разрешают небезопасные гостевые входы, являются уязвимыми к различным атакам с перехватом, которые могут привести к потере данных, повреждению данных и уязвимости к вредоносным программам. Кроме того, какие-либо данные, записанные на файловый сервер с использованием небезопасного гостевого входа, являются потенциально доступными для любого пользователя в сети. Майкрософт рекомендует отключить небезопасные гостевые входы и настроить файловые серверы на требование доступа с проверкой подлинности.»

Наконец-то, можно подключиться к общей папке (share) в локальной сети. Для этого откройте проводник и перейдите в раздел «Сеть»:

Обратите внимание на глючность этой службы — в левой части проводника мы видим 4 компьютера, а в главном разделе окна — только два. Примечание для Windows Server: в серверных версиях Windows даже когда разрешено подключаться без пароля, всё равно появляется окно запроса:

Примечание для Windows Server: в серверных версиях Windows даже когда разрешено подключаться без пароля, всё равно появляется окно запроса:

Достаточно ввести произвольные данные и, моём случае, сетевая папка успешно открывалась. При подключении к этой же папке с обычного Windows 10, запрос на ввод пароля не появлялся. Видимо, для сервера настроены какие-то более строгие политики.

При клике на имя компьютера вы увидите доступные сетевые папки. При переходе в папку вы увидите её содержимое:

Вы можете открывать файлы по сети, то есть не нужно предварительно копировать их на свой компьютер. Можете копировать файлы из общей папки, добавлять туда новые или удалять существующие — с сетевой папкой можно работать как с обычной локальной папкой.

В Windows сетевые папки можно сделать доступными в качестве дисков с буквой. Для этого правой кнопкой мыши кликните по слову «Сеть» и выберите пункт «Подключить сетевой диск»:

Выберите букву для диска, введите путь до папки, поставьте галочку «Восстанавливать подключение при входе в систему»:

Теперь вы будете видеть сетевую папку как диск в любом файловом менеджере: