LinuxForum.Fans
Тема

[решено]Коллеги, помогите с самбой

Автор: Cruiser78 8 сообщений 4433 просмотров
#181394

Привет всем!

Итак возникла проблема с настройкой самбы. А именно - готовлю сервер для удаленной площадки.
Дано:
1. В лавке стоит самба PDC. IP адрес - 192.168.43.5, назовем его FileServer. Работает на сеть 192.168.43.0/24.
Конфигурационный файл (глобальная секция) этой самбы:

Показать
[global]
workgroup = MYCORP
server string = Samba Server Version %v
netbios name = fileserver
interfaces = lo eth0 eth0:0 192.168.43.5
bind interfaces only = yes
socket address = 192.168.43.5
hosts allow = 127. 192.168.43. 192.168.53.
name resolve order = lmhosts host bcast
smb ports = 139

log level = 3
log file = /var/log/samba/log.%m
max log size = 50

security = user
passdb backend = tdbsam
null passwords = yes
username map = /etc/samba/smbusers
admin users = root, admin, administrator

add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/bin/gpasswd -a %u %g
delete user from group script = /usr/bin/gpasswd -d %u %g
add machine script = /usr/sbin/useradd -g computers -s /bin/false -d /dev/null %u
set primary group script = /usr/sbin/usermod -g %g %u

logon path =
logon drive =
logon home =
logon script = %G.bat
domain logons = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind cache time = 10
socket options = TCP_NODELAY SO_SNDBUF=8196 SO_RCVBUF=8196 IPTOS_LOWDELAY SO_KEEPALIVE
time server = yes
preferred master = yes
domain master = yes
local master = yes
os level = 255
wins support = yes
oplocks = yes
kernel oplocks = no
level2 oplocks = yes
use sendfile = yes
deadtime = 120 ; разрывать соединение с юзером после 120 минут бездействия
nt acl support = yes

2. На ремутной площадке устанавливаю самба-сервер, как член домена, который обслуживается PDC FileServer. Его IP адрес - 192.168.53.1. Обслуживать он будет сеть 192.168.53.1.
Глобальная секция конфига этого сервера:

Показать
[global]
workgroup = MYCORP
server string = File Server Proizv
netbios name = ProizvServer

interfaces = lo p2p1 192.168.53.1
bind interfaces only = yes
socket address = 192.168.53.1
hosts allow = 127. 192.168.43. 192.168.53.
name resolve order = lmhosts host bcast
smb ports = 139

security = DOMAIN
password server = 192.168.43.5
# passdb backend = smbpasswd
max log size = 10
time server = Yes
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
os level = 65
domain master = No
wins server = 192.168.43.5
admin users = root, administrator, admin

log level = 3
log file = /var/log/samba/log.%m

oplocks = yes
kernel oplocks = no
level2 oplocks = yes
use sendfile = yes
;locking = no
deadtime = 120 ; разрывать соединение с юзером после 120 минут бездействия
nt acl support = yes

Testparm на втором сервере замечаний не находит и определяет его конфигурацию, как domain member.
Сети связаны через openVPN через пару шлюзов, трафик форвардится между ними тотально, без ограничений. На указанных самбовых серверах в настройках iptables доступ на порты 137,138,139 и 445 открыт без ограничений. Юзерский ремутный компьютер (из сети 192.168.53.0/24) регистрируется на центральном сервере (FileServer, 192.168.43.5) без проблем.

Однако, имеем проблемы с новым, ремутным сервером:
1. Проблема ввода нового сервера:
[console]#net rpc join -U ХХХХХ%ХХХХХ
Unable to find a suitable server for domain MYCORP
Unable to find a suitable server for domain MYCORP
[/console]
Если задавать явно имя сервера или его адрес, то:
[console]# net rpc join -U ХХХХХ%ХХХХХ -S fileserver
Connection failed: NT_STATUS_BAD_NETWORK_NAME
Could not connect to server fileserver
Connection failed: NT_STATUS_BAD_NETWORK_NAME
[/console]
Хотя один раз оно, вроде, сработало и написало, что сервер в домен введен. Однако - повторить сие еще раз не могу.
2. Далее, на ремутном компьютере (сеть 192.168.53.0/24) юзер из обозревателя видит (иконки) как центрального сервера, так и нового, ремутного. При попытке регистрации юзера на ремутном сервере - юзер получает отлуп. В регистрационном журнале удаленного сервера имеем запись:

Показать
[2011/08/02 11:10:16.096880, 3] libsmb/ntlmssp.c:747(ntlmssp_server_auth)
Got user=[Evstafiev] domain=[MYCORP] workstation=[PROD-DZ] len1=24 len2=24
[2011/08/02 11:10:16.098282, 3] auth/auth.c:216(check_ntlm_password)
check_ntlm_password: Checking password for unmapped user [MYCORP]\[Evstafiev]@[PROD-DZ] with the new password interface
[2011/08/02 11:10:16.098384, 3] auth/auth.c:219(check_ntlm_password)
check_ntlm_password: mapped user is: [MYCORP]\[Evstafiev]@[PROD-DZ]
[2011/08/02 11:10:16.098448, 3] smbd/sec_ctx.c:210(push_sec_ctx)
push_sec_ctx(0, 0) : sec_ctx_stack_ndx = 1
[2011/08/02 11:10:16.098501, 3] smbd/uid.c:429(push_conn_ctx)
push_conn_ctx(0) : conn_ctx_stack_ndx = 0
[2011/08/02 11:10:16.098547, 3] smbd/sec_ctx.c:310(set_sec_ctx)
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 1
[2011/08/02 11:10:16.099036, 3] smbd/sec_ctx.c:418(pop_sec_ctx)
pop_sec_ctx (0, 0) - sec_ctx_stack_ndx = 0
[2011/08/02 11:10:16.099126, 2] auth/auth.c:314(check_ntlm_password)
check_ntlm_password: Authentication for user [Evstafiev] -> [Evstafiev] FAILED with error NT_STATUS_NO_LOGON_SERVERS
[2011/08/02 11:10:16.099205, 3] smbd/error.c:80(error_packet_set)
error packet at smbd/sesssetup.c(111) cmd=115 (SMBsesssetupX) NT_STATUS_NO_LOGON_SERVERS
[2011/08/02 11:10:16.099621, 3] smbd/sec_ctx.c:310(set_sec_ctx)
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0
[2011/08/02 11:10:16.099725, 3] smbd/connection.c:31(yield_connection)
Yielding connection to
[2011/08/02 11:10:16.099975, 3] smbd/server.c:902(exit_server_common)
Server exit (failed to receive smb request)

То есть ремутная самба говорит, что не находит сервера для авторизации (NO_LOGON_SERVERS). То же самое говорится и на попытки командой net посмотреть что либо в домене. Нету logon-сервера. Чешем репу:
[console] # nmblookup fileserver
added interface lo ip=127.0.0.1 bcast=127.255.255.255 netmask=255.0.0.0
added interface p2p1 ip=192.168.53.1 bcast=192.168.53.255 netmask=255.255.255.0
add_interface: not adding duplicate interface 192.168.53.1
Socket opened.
querying fileserver on 127.255.255.255
querying fileserver on 192.168.53.255
name_query failed to find name fileserver [/console]
Но ведь в конфиге явно указано, где искать сервер - совсем не в сети 192.168.53.0...
Задаем поиск явно:
[console]# nmblookup -B 192.168.43.5 fileserver
added interface lo ip=127.0.0.1 bcast=127.255.255.255 netmask=255.0.0.0
added interface p2p1 ip=192.168.53.1 bcast=192.168.53.255 netmask=255.255.255.0
add_interface: not adding duplicate interface 192.168.53.1
Socket opened.
querying fileserver on 192.168.43.5
Got a positive name query response from 192.168.43.5 ( 192.168.43.5 )
192.168.43.5 fileserver<00>
[/console]
И получаем правильный результат. Самое интересное, что в логах nmb после запуска пишутся вполне корректные сообщения, что nmb сходил в лавку и законнектился там с центральным сервером...

Коллеги, помигите разобраться и правильно настроить сервера

#181554

Откуда компьютеры в сети 192.168.53.0/24 знают IP-адрес сервера FileServer?

Но ведь в конфиге явно указано, где искать сервер
Где указано?
#181646
remedy написал:
Откуда компьютеры в сети 192.168.53.0/24 знают IP-адрес сервера FileServer?

Но ведь в конфиге явно указано, где искать сервер
Где указано?

1. Проблем с регистрацией на FileServer (192.168.43.5), сервере центрального оффиса, из ремутной сети 192.168.53.0 нет никаких. А адрес прекрасно узнается из DNS.
2. Проблема зарылась в сервере удаленной площадки. Причем даже не на уровне NETBIOS, а на уровне smb. А именно:
2.1. Копфигурация этого сервера как одиночного сервера рабочей группы. Юзера сети 192.168.53.0 его видят и регистрируюся на нём без проблем.
2.2. Конфигурация сервера, как DOMAIN MEMBER'а. Пытаюсь ввести его в самбовый домен, где PDC - FileServer (192.168.43.5): получаю сообщения или, что нет подходящего сервера для PDC (если не указать PDC явно в командной строке net rpc join'а), или, если указать - WRONG_NETWORK_NAME.
2.2.1. Помню, что однажды у меня нормально прошёл net join. Пытаюсь юзером ремутной полощадки зарегистрироваться на этом сервере. В ответ получаю, что не найден логон-сервер. Который прямо указан в конфиге. Или по имени, или по IP-адресу.
2.3. Но мне нужен на ремутной площадке скорее даже BDC. Настраиваю самбу на BDC, пытаюсь ввести его в домен, получаю то же самое.
Ощущение такое, что несмотря на то, что сервис nmb нормально работает и сервера по нему коннектится между собой (это видно по регистрационным журналам log.nmbd), как только мы выходим на уровень smb - самба начинает искать сервера только в своей локальной сети. И, естественно, ничего не находит.
А юзерским компам под вынью - это фиолетово, они получают перечень хостов по NETBIОS'у, тот работает правильно и имена все транслирует.

#181654

Cruiser78, а что у вас в секции global отсутсвует параметр: domain logins = yes ?
а сам сервер как вводили? smbpasswd -j имя_домена -r сервер_pdc так?

#181667
i2ks написал:
Cruiser78, а что у вас в секции global отсутсвует параметр: domain logins = yes ?
а сам сервер как вводили? smbpasswd -j имя_домена -r сервер_pdc так?

1. В тех руководствах, что я читал - про этот параметр ничего не сказано. И в приводимых конфигах, что для DOMAIN_MEMBER, что для BDC его нет. Поэтому и не вписано.
2. Ввод в домен осуществляю командой net rpc join -S IP-PDC -U user%password, либо без явного указания адреса PDC.
кроме этого:
[console]# smbpasswd -j DOMAIN -r 192.168,43.5 -U user%password
See 'net join' for this functionality[/console]
Так что - только net join. А там:
[console]#net rpc join -S 192.168.43.5 -U user%password
Connection failed: NT_STATUS_BAD_NETWORK_NAME
Could not connect to server 192.168.43.5
Connection failed: NT_STATUS_BAD_NETWORK_NAME
[/console]
Если указать не адрес, а имя - ответ будет идентичный. То есть - не хочет оно выходить за рамки своей локальной сети. Я так думаю.

#181672
Cruiser78 написал:
net rpc join -S IP-PDC -U user%password

Не усмотрел, в доке то же это есть.

Будем дальше разбираться тогда.

#181677
Cruiser78 написал:
Connection failed: NT_STATUS_BAD_NETWORK_NAME

из faq по samba

A message that warns of an invalid or bad network name could mean that the tmp service on the Samba server isn't correctly configured.
Messages related to bad passwords could mean that the user's account doesn't exist, that their smbpasswd wasn't created, or that the password entered is incorrect.

а smbclient проходит?

#181996
i2ks написал:
а smbclient проходит?

[console]# smbclient -L fileserver -U user%password
session request to FILESERVER failed (Not listening for calling name)
session request to *SMBSERVER failed (Not listening for calling name)
[/console]

При этом имеем в log.nmbd ремутного компьютера:

Показать
[2011/08/03 22:40:05.257592, 2] nmbd/nmbd_browsesync.c:151(sync_with_dmb)
sync_with_dmb:
Initiating sync with domain master browser FILESERVER<20> at IP 192.168.43.4 for workgroup XXXXX
[2011/08/03 22:40:05.258522, 2] nmbd/nmbd_synclists.c:184(sync_browse_lists)
Initiating browse sync for XXXXX to FILESERVER(192.168.43.4)
[2011/08/03 22:40:05.259619, 3] lib/util_sock.c:979(open_socket_out_send)
Connecting to 192.168.43.4 at port 139
[2011/08/03 22:40:05.267907, 2] nmbd/nmbd_synclists.c:302(complete_sync)
sync with FILESERVER(192.168.43.4) for workgroup XXXXX completed (0 records)

То есть нетбиос как-то работает, вяжется с центральным сервером. Правда синхронизация странаая... Всего 0 записей принимает...
И еще - малопонятно в логе winbind'а, сплошняком идут записи, что соединения нет:

Показать
[2011/08/03 22:52:45.968957, 3] libsmb/namequery.c:1880(get_dc_list)
get_dc_list: preferred server list: ", 192.168.43.5"
[2011/08/03 22:52:45.969240, 3] lib/util_sock.c:979(open_socket_out_send)
Connecting to 192.168.43.5 at port 445
[2011/08/03 22:52:45.974716, 3] lib/util_sock.c:979(open_socket_out_send)
Connecting to 192.168.43.5 at port 139
[2011/08/03 22:52:45.982002, 3] lib/util_sock.c:979(open_socket_out_send)
Connecting to 192.168.43.5 at port 139
[2011/08/03 22:53:16.001452, 3] winbindd/winbindd_cm.c:1601(connection_ok)
connection_ok: Connection to for domain XXXXX is not connected

Завтра поисследую, почему на открытые порты центрального сервера ремутный комп достучаться не может... Пока непонятно. Все маршруты прописаны, разрешения в IPTABLES и в smb.conf поставлены. Что мешает - непонятно.
===========================
Блин... Ларчик просто открывался. У меня самба и openVPN-шлюз на одном компьютере (на ремутной площадке) установлены. При этом в конфиге самбы явно указан адрес, интерфейс (p2p1), к которому надо прибиндить эту самбу. Казалось бы, он и должен там сидеть и работать с этого адреса. Ан нет. Запросы на центральный сервер шли не p2p1-интерфейса (физического, LAN), а с VPN-интерфейса, с tun0. А тот имеет совсем иной адрес. Прописал ему разрешение в конфигу центральной самбы и оно, вроде, заработало. По крайней мере net join подумал пару секунд и сказал, что к домену присоединился. Наверное и все остальное заработало. Завтра проверю.

Войдите или зарегистрируйтесь, чтобы ответить.