Вопрос или проблема
Windows 7, подключение к Samba-ресурсам
У меня есть уточняющий вопрос из вышеуказанной ссылки.
Я запускаю Samba 3.0.23d на FreeBSD версии 7.1
Я изменил политики, как описано выше, но все равно не могу подключиться к серверу Samba с Windows 7 или Server 2008. Кажется, проблема заключается в распознавании новых машин в сети. Windows-машины видят сервер Samba, но не могут подключиться к нему или просмотреть какие-либо файлы. После изменения политик безопасности сервер Samba запросил сетевой идентификатор и пароль, но не разрешил машинe подключиться, сказав, что имя пользователя неизвестно или неверный пароль.
Вот мой текущий конфигурационный файл. Нигде нет признаков шифрования, мне просто нужно добавить строку? Не уверен, как это повлияет на другие места.
Workgroup = WWOFFSET
server string = WWO File Server (%v)
security = server
username map = /usr/local/etc/smb.users
hosts allow = 10. 127.
# Если вы хотите автоматически загрузить список своих принтеров
# вместо того, чтобы настраивать их индивидуально, вам нужно это
; load printers = yes
# Возможно, вам захочется переопределить местоположение файла printcap
; printcap name = /etc/printcap
# В системе SystemV установка имени printcap на lpstat должна позволить
# вам автоматически получить список принтеров из системы спуллинга SystemV
; printcap name = lpstat
# Не следует указывать тип системы печати, если он стандартный.
# Поддерживаемые на данный момент системы печати включают:
# bsd, cups, sysv, plp, lprng, aix, hpux, qnx
; printing = cups
# Уберите комментарий, если хотите учетную запись гостя, вы должны добавить это в /etc/passwd
# в противном случае используется пользователь "nobody"
; guest account = pcguest
# это заставляет Samba использовать отдельный файл журнала для каждой машины
# которая подключается
log file = /var/log/samba/log.%m
# Ограничьте размер файлов журнала (в Kb).
max log size = 50
# Используйте параметр сервера пароля только с security = server
# Список аргументов может включать:
# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
# или для автоматического определения контроллера домена/ов
# password server = *
; password server = <NT-Server-Name>
password server = SERVER0
# Используйте параметр realm только с security = ads
# Указывает домен Active Directory, частью которого является хост
; realm = MY_REALM
# База данных для хранения информации о пользователях. Новые установки должны
# использовать либо tdbsam, либо ldapsam. smbpasswd доступен для обратной
# совместимости. tdbsam не требует дополнительной настройки.
; passdb backend = tdbsam
; passdb backend = smbpasswd
# Использование следующей строки позволяет настроить вашу конфигурацию
# на основе каждой машины. %m заменяется на netbios имя
# машины, которая подключается.
# Замечание: внимательно рассмотрите место в конфигурационном файле
# этой строки. Включенный файл читается в этот момент.
; include = /usr/local/etc/smb.conf.%m
# Большинство людей обнаружат, что этот параметр обеспечивает лучшую производительность.
# См. главу 'Проблемы производительности Samba' в Коллекции Samba HOWTO
# и страницы руководства для получения подробностей.
# Вы можете захотеть добавить следующее на системе Linux:
# SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY
# Настройте Samba для использования нескольких интерфейсов
# Если у вас несколько сетевых интерфейсов, их необходимо перечислить
# здесь. См. страницу мануала для получения подробностей.
; interfaces = 192.168.12.2/24 192.168.13.2/24
# Опции управления браузером:
# установите local master в no, если не хотите, чтобы Samba стал мастером
# браузером в вашей сети. В противном случае применяются обычные правила выборов
; local master = no
# Уровень ОС определяет приоритет этого сервера в выборах мастера браузера.
# Значение по умолчанию должно быть разумным
; os level = 33
# Domain Master указывает, что Samba является мастер-браузером домена. Это
# позволяет Samba составлять списки браузинга между подсетями. Не используйте это,
# если у вас уже есть контроллер домена Windows NT, выполняющий эту работу
; domain master = yes
# Preferred Master заставляет Samba принудительно проводить выборы локального браузера
# при запуске и дает ему немного более высокие шансы на победу в выборах
; preferred master = yes
# Включите это, если хотите, чтобы Samba была сервером входа в домен для
# рабочих станций Windows95.
; domain logons = yes
# если вы включаете вход в домен, то вам может понадобиться входной скрипт для каждой машины или
# для пользователя
# запустить определенный файл пакетного входа для каждой рабочей станции (машины)
; logon script = %m.bat
# запустить определенный файл пакетного входа для каждого имени пользователя
; logon script = %U.bat
# Где хранить профили roaming (только для Win95 и WinNT)
# %L подставляется вместо имени netbios этого сервера, %U - имя пользователя
# Вы должны убрать комментарий из общей папки [Profiles] ниже
; logon path = \\%L\Profiles\%U
# Поддержка Windows Internet Name Serving:
# Поддержка WINS - говорит компоненту NMBD Samba включить свой WINS сервер
; wins support = yes
# WINS Server - говорит компонентам NMBD Samba быть клиентом WINS
# Примечание: Samba может быть либо WINS сервером, либо WINS клиентом, но не обоими
; wins server = w.x.y.z
# Вопрос прокси WINS - говорит Samba отвечать на запросы разрешения имен на
# имя клиента, не поддерживающего WINS, для этого должно быть
# хотя бы один WINS сервер в сети. По умолчанию NO.
; wins proxy = yes
# DNS Proxy - сообщает Samba, следует ли пытаться разрешать имена NetBIOS
# через DNS nslookups. По умолчанию NO.
dns proxy = no
# параметры набора символов
; display charset = ASCII
; unix charset = ASCII
; dos charset = ASCII
# Эти скрипты используются на контроллере домена или автономной
# машине для добавления или удаления соответствующих unix-учетных записей
; add user script = /usr/sbin/useradd %u
; add group script = /usr/sbin/groupadd %g
; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
; delete user script = /usr/sbin/userdel %u
; delete user from group script = /usr/sbin/deluser %u %g
; delete group script = /usr/sbin/groupdel %g
unix extensions = no
Я узнал, что SAMBA иногда бывает удачным и неудачным. Я настроил его на своем сервере ubuntu и постоянно находил трудности с подключением к нему через машину под управлением Windows 7.
Вы можете начать с просмотра журналов Samba, чтобы увидеть, что именно происходит, когда вы пытаетесь ввести имя пользователя/пароль с компьютера с Windows.
В зависимости от версии протокола SMB, с которым подключается Windows, вы можете захотеть переключить опцию client use spnego = no
в вашем smb.conf (добавьте ее, если ее нет).
Ответ или решение
Если вы столкнулись с проблемой подключения к Samba-серверу с Windows 7 или Windows Server 2008 на FreeBSD, вот подробное руководство по диагностике и решению данной проблемы, учитывая все ваши исходные параметры.
1. Анализ конфигурации Samba
Ваш файл конфигурации Samba (/usr/local/etc/smb.conf
) имеет следующие важные параметры:
security = server
username map = /usr/local/etc/smb.users
password server = SERVER0
unix extensions = no
Обратим внимание на несколько ключевых моментов:
1.1. Режим безопасности
Параметр security = server
предполагает, что Samba будет использовать учетные данные для аутентификации от другого сервера. Это может быть причиной того, что ваши Windows 7 и Server 2008 не могут пройти аутентификацию, так как они могут не иметь правильных учетных данных. Рассмотрите возможность изменения на security = user
, если вы хотите, чтобы Samba управлял учетными данными сам.
1.2. Шифрование паролей
Как вы сами отметили, в вашей конфигурации не упоминается шифрование паролей. Это может быть причиной проблемы с аутентификацией. Добавьте следующие строки в секцию [global]
вашего файла:
encrypt passwords = yes
Это позволит использовать шифрованные пароли, что является стандартной практикой для современных компьютеров с Windows.
2. Перезапуск Samba
После внесения изменений в конфигурационный файл, необходимо перезапустить услуги Samba. Выполните одну из следующих команд с правами суперпользователя:
/etc/rc.d/samba restart
или
/etc/rc.d/smbd restart
3. Проверка прав доступа
Убедитесь, что учетные записи пользователей, которые вы используете в Windows для подключения, существуют на Samba-сервере. Для этого проверьте файл /usr/local/etc/smb.users
, чтобы подтвердить наличие нужных записей.
4. Диагностика через журналы
Один из самых удобных способов диагностики — это посмотреть журналы Samba. Журналы могут дать вам представление о том, что именно происходит при попытке аутентификации. Ваша конфигурация уже включает строку журнала:
log file = /var/log/samba/log.%m
Посмотрите содержимое соответствующего журнала после неудачной попытки подключения. Это может помочь вам понять, какие ошибки происходят.
5. Настройка WINS и DNS
Если вы используете WINS, убедитесь, что настройки верные. Попробуйте также установить параметр wins support = yes
, если это подходит вашей сетевой архитектуре.
Кроме того, стоит убедиться, что Windows-клиенты правильно разрешают имена хостов Samba. В некоторых случаях изменение порядка разрешения имен может помочь:
name resolve order = lmhosts wins bcast host
6. Дополнительные параметры конфигурации
Если проблемы продолжаются, попробуйте добавить следующее в ваш файл конфигурации убрать возможные конфликты с аутентификацией:
client use spnego = no
7. Заключение
Учтите, что Samba иногда требует тщательной настройки для корректной работы с разными версиями Windows. После каждого изменения конфигурации всегда перезапускайте Samba и тестируйте подключение с клиента. Если проблемы продолжаются, рассматривайте возможность использования таких инструментов, как Webmin
, для упрощенной настройки и управления.
Следуйте этим шагам, и это должно помочь вам добиться успешного подключения к Samba-серверу. Если у вас остались вопросы или возникли сомнения, не стесняйтесь их задавать.