Журнал LinuxFormat - перейти на главную

LXF170:Samba

Материал из Linuxformat
Версия от 11:03, 17 ноября 2018; Olkol (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Тан­цы с Windows

Стан­дарт­ный па­кет взаи­мо­дей­ст­вия Windows и Linux до­рос до вер­сии 4 и мо­жет по­хва­стать­ся под­держ­кой Active Directory.

При всей на­шей люб­ви к Linux, боль­шин­ст­ву из нас иногда при­хо­дит­ся со­су­ще­ст­во­вать в се­ти с ма­ши­на­ми Windows; тут мы и уз­на­ем, что имен­но Samba обес­пе­чи­ва­ет со­вме­ст­ный доступ Linux и Windows к фай­ло­вым сис­те­мам.

Од­на­ко Samba уме­ет на­мно­го боль­ше, и в вер­сии 4 достиг­ла пол­ной со­вмес­ти­мо­сти с Microsoft Active Directory. Это очень важ­но. Дол­гое вре­мя Samba мог­ла вы­сту­пать в ро­ли кон­трол­ле­ра до­ме­на Windows NT 4.0, или при­сое­динить­ся к су­ще­ст­вую­ще­му до­ме­ну та­ко­го ти­па, но с вы­хо­дом Windows 2000 Microsoft на­чал от­хо­дить от до­ме­нов NT к сво­ей но­вой Active Directory, рас­ши­ряя про­пасть ме­ж­ду эко­си­сте­ма­ми Linux и Windows. Samba вер­сии 4 яв­ля­ет со­бой дол­го­ждан­ное сред­ст­во ре­шения этой про­бле­мы. Она пол­но­стью реа­ли­зу­ет все функ­ции кон­трол­ле­ра до­ме­на Active Directory, ста­но­вясь эф­фек­тив­ной за­ме­ной со­от­вет­ст­вую­щих функ­ций в линии про­дук­тов Microsoft Windows Server. Samba – от­кры­тая реа­ли­за­ция про­то­ко­ла Server Message Block, или SMB. Это се­те­вой про­то­кол уров­ня при­ло­жения, из­на­чаль­но раз­ра­бо­тан­ный в IBM для обес­пе­чения рас­пре­де­лен­но­го досту­па к фай­лам и прин­те­рам. Microsoft рас­ши­рил эту реа­ли­за­цию SMB, вклю­чив в нее под­держ­ку ау­тен­ти­фи­ка­ции с по­мо­щью соб­ст­вен­но­го NT LAN Manager (NTLM) и, позднее, про­то­ко­лов NTLMv2. Эту реа­ли­за­цию на­зва­ли Common Internet File System [Об­щей фай­ло­вой сис­те­мой Ин­тернет], или CIFS. Дальней­шие рас­ши­рения, вклю­чая под­держ­ку сим­во­ли­че­­ских ссы­лок, вы­шли как SMB2 в Windows Vista. Samba под­дер­жи­ва­ет SMB2, на­чи­ная с вер­сии 3.6. Microsoft ввел SMB2.1 в Windows 7, а SMB3 – в Windows 8. Они име­ну­ют раз­ные вер­сии про­то­ко­ла «диа­лек­та­ми», так что CIFS и SMB2 яв­ля­ют­ся диа­лек­та­ми про­то­ко­ла SMB. Хо­тя эти диа­лек­ты про­прие­тар­ные, их спе­ци­фи­ка­ции доступ­ны для об­ще­ст­вен­но­сти: одним из ре­зуль­та­тов со­гла­шения Microsoft с Ев­ро­пей­ским су­дом в 2004 го­ду стал вы­пуск пол­ной до­ку­мен­та­ции для се­те­вой ау­тен­ти­фи­ка­ции в Active Directory. Это при­ве­ло к раз­ра­бот­ке Samba вер­сии 4, при­чем Microsoft принимал уча­стие в тес­ти­ро­вании.

Active Directory (из­вест­ный как AD) – глав­ный ме­ханизм ад­минист­ри­ро­вания со­единен­ных в сеть ком­пь­ю­те­ров Windows. Сер­ве­ры, на кото­рых ра­бо­та­ет Active Directory, име­ну­ют­ся кон­трол­ле­ра­ми до­ме­на. Кон­трол­лер до­ме­на Active Directory (ко­то­рый мы бу­дем со­кра­щен­но на­зы­вать ADDC) ау­тен­ти­фи­ци­ру­ет и ав­то­ри­зу­ет всех поль­зо­ва­те­лей и все ком­пь­ю­те­ры в се­ти Windows, на­зна­ча­ет по­ли­ти­ку безо­пас­но­сти для всех ком­пь­ю­те­ров, а так­же по­зво­ля­ет уста­нав­ли­вать или об­нов­лять про­грам­мы. На­при­мер, когда поль­зо­ва­тель за­хо­дит на ком­пь­ю­тер, вхо­дя­щий в до­мен Windows, ADDC про­ве­ря­ет вве­ден­ный па­роль и оп­ре­де­ля­ет, яв­ля­ет­ся ли поль­зо­ва­тель ад­минист­ра­то­ром сис­те­мы или обыч­ным поль­зо­ва­те­лем. AD ис­поль­зу­ет Lightweight Directory Access Protocol (LDAP) вер­сии 2 и 3, Kerberos и DNS. Samba ис­поль­зу­ет соб­ст­вен­ную реа­ли­за­цию LDAP под на­званием ldb; она не под­дер­жи­ва­ет ис­поль­зо­вание OpenLDAP для Active Directory.

Итак, те­перь есть два спо­со­ба ис­поль­зо­ва­ния Samba: один – применять ее как обыч­но («клас­си­че­­ская» Samba), в ка­че­­ст­ве чле­на до­ме­на или от­дель­но, и, соб­ст­вен­но, это все, что вам нуж­но для на­строй­ки ба­зо­вой ра­бо­ты. Дру­гой спо­соб – применять Samba в ка­че­­ст­ве пол­но­функ­цио­наль­но­го ADDC. Как испо­льзо­вать Samba, за­ви­сит от ва­ших по­треб­но­стей, од­на­ко пер­вое, что вам при­дет­ся сде­лать – уста­но­вить ее. В боль­шин­ст­ве ди­ст­ри­бу­ти­вов она долж­на при­сут­ст­во­вать в ре­по­зи­то­ри­ях, хо­тя оп­ци­ей по умол­чанию мо­жет быть Samba 3.6. Дру­гой ва­ри­ант – ском­пи­ли­ро­вать ее из ис­ходника, ска­чав с www.samba.org/samba/download.

По­сле уста­нов­ки файл на­строй­ки Samba име­ну­ет­ся smb.conf и обыч­но рас­по­ла­га­ет­ся в под­ди­рек­то­рии, на­при­мер, /etc/samba. Про­стей­шая на­строй­ка для ис­поль­зо­вания в ка­че­­ст­ве ре­сур­са об­ще­го досту­па –

[global]

server string = Samba Server Version %v

# Treat unknown users as a guest (where permitted) [Считать неизвестных пользователей гостями (если разрешено)]

security = user

map to guest = Bad User

[tmp]

path = /tmp

read only = No

browsable = Yes

guest ok = Yes

force user = nobody

force group = nobody

create mask = 0755

directory mask = 0755

Это сде­ла­ет /tmp на сер­ве­ре доступ­ным как ре­сур Samba че­рез TCP/IP. Ис­поль­зо­вание security = user и map to guest по­зво­ля­ет госте­вым ре­сур­сам по­доб­ным же об­ра­зом ра­бо­тать в уста­рев­шем ре­жи­ме security = share, с ко­то­рым со­вре­мен­ные ад­минист­ра­то­ры Samba мо­гут быть не зна­ко­мы. Поль­зо­ва­те­лям с именем поль­зо­ва­те­ля Windows, не рас­по­зна­вае­мым Samba, не при­дет­ся пре­достав­лять свою ау­тен­ти­фи­ка­ци­он­ную ин­фор­ма­цию для досту­па к ре­сур­су: они бу­дут ау­тен­ти­фи­ци­ро­вать­ся как гости. Лю­бые фай­лы, ко­то­рые они на­пи­шут, бу­дут иметь их поль­зо­ва­тель­ский и груп­по­вой ID на­стро­ен­ным на ‘nobody’. Од­на­ко ес­ли имя поль­зо­ва­те­ля из­вест­но Samba, то поль­зо­ва­те­лю бу­дет пред­ло­же­но вве­сти па­роль. Это мо­жет по­ка­зать­ся стран­ным, но вполне со­гла­су­ет­ся с тем, как ра­бо­та­ет Windows.

За­пусти­те де­мон Samba, smbd, что­бы по­лу­чить доступ к это­му ре­сур­су в Windows. Для досту­па к нему ис­поль­зуй­те Windows Explorer в ка­че­­ст­ве брау­зе­ра сер­ве­ра Samba (ис­поль­зуй­те или его имя, или IP-ад­рес).

Есть еще один се­те­вой про­то­кол, ко­то­рый дол­гое вре­мя ас­со­ции­ро­вал­ся с се­те­вой ра­бо­той в Windows и по­это­му яв­ля­ет­ся неотъ­ем­ле­мой ча­стью па­ке­та Samba – NetBIOS. В на­стоя­щее вре­мя он счи­та­ет­ся уста­рев­шим, а ра­бо­та осу­ще­ст­в­ля­ет­ся по TCP/IP. NetBIOS пред­ла­га­ет раз­ре­шение имен и рас­пре­де­лен­ный доступ к фай­лам и прин­те­рам для уст­ройств, не имею­щих за­пи­сей в DNS. Рань­ше он был основ­ным в се­тях Windows, но в этом боль­ше нет необ­хо­ди­мо­сти, ес­ли не ис­поль­зу­ют­ся ста­рые вер­сии Windows; и все же он вам по­на­до­бит­ся, ес­ли вы хо­ти­те, что­бы кли­ен­ты, ис­поль­зую­щие опе­ра­ци­он­ные сис­те­мы стар­ше Windows 2000, име­ли доступ к ва­шим ре­сур­сам.

Ес­ли вам не ну­жен NetBIOS, то сле­дую­щие до­полнения к раз­де­лу [global] в smb.conf сде­ла­ют это выраженным явно:

[global]

# disable NetBIOS [Отключить NetBIOS]

disable netbios = yes

smb ports = 445

Но ес­ли на­до вклю­чить NetBIOS, при­дет­ся вне­сти сле­дую­щие из­ме­не­ния в smb.conf:

[global]

# NetBIOS identification

workgroup = WORKGROUP

netbios name = MYHOST

wins support = Yes

Данные настройки ве­лят Samba ис­поль­зо­вать NetBIOS, что­бы рас­по­зна­вать­ся в се­ти Windows в сво­ей ра­бо­чей груп­пе по умол­чанию (ма­ши­ны Windows по умол­чанию от­но­сят­ся к ра­бо­чей груп­пе с именем WORKGROUP) и дей­ст­во­вать как сер­вер WINS. На­звание NetBIOS яв­ля­ет­ся эк­ви­ва­лен­том имени хоста – совпадать с именем хоста ему не обя­за­тельно, но это довольно обыч­ная прак­ти­ка. WINS – это Windows Internet Name Service, реа­ли­за­ция Microsoft NetBIOS Name Service, и он пре­достав­ля­ет та­кой же сер­вис для имен NetBIOS, ка­кой DNS пре­достав­ля­ет для до­мен­ных имен (раз­ме­щая име­на хостов по се­те­вым ад­ре­сам). Пре­об­ра­зо­вание имени про­ис­хо­дит без сер­ве­ра WINS, но толь­ко внут­ри локаль­ной под­се­ти – ес­ли кли­ент не мо­жет раз­ре­шить имя NetBIOS, ис­поль­зуя сер­вер WINS, то оно бу­дет раз­ре­ше­но по­сред­ст­вом транс­ля­ции по се­ти со­об­щений «ты где?». Это од­на из при­чин, по ко­то­рой сис­тем­ные ад­минист­ра­то­ры нена­ви­дят NetBIOS и по ко­то­рой вам сле­ду­ет от­клю­чить его, по­ка он вам по-настоящему не по­на­до­бит­ся. Кро­ме то­го, в Се­ти вы най­де­те нема­ло при­ме­ров то­го, на­сколь­ко небезо­па­сен NetBIOS.

Ес­ли вам все же не обойтись без NetBIOS, то по­следнее, что тре­бу­ет­ся сде­лать для его под­держ­ки, это за­пустить про­цесс Samba – nmbd и про­цесс smbd. Имен­но nmbd обес­пе­чи­ва­ет пре­достав­ление имен NetBIOS и сер­ви­сы WINS.

Сто­ит по­нять, как осу­ще­ст­в­ля­ет­ся со­единение со сто­ро­ны кли­ен­та. До Windows 2000 со­единения осу­ще­ст­в­ля­лись толь­ко че­рез NetBIOS, со­еди­няе­мый с пор­том 139 на сер­ве­ре. На­чи­ная с Windows 2000, со­единения осу­ще­ст­в­ля­ют­ся с ис­поль­зо­ванием и NetBIOS, и TCP/IP; по­следний со­еди­ня­ет­ся с пор­том 445 на сер­ве­ре. Кли­ент за­кры­ва­ет свое со­единение NetBIOS с пор­том 139, ес­ли сер­вер от­ве­ча­ет на со­единение с TCP/IP. Как и сле­ду­ет ожи­дать, ре­сур­сы мож­но на­стро­ить так, что­бы для досту­па к ним тре­бо­ва­лась ау­тен­ти­фи­ка­ция. Это пер­вая об­ласть, в ко­то­рой на­строй­ка Active Directory от­ли­ча­ет­ся от клас­си­че­­ской. Клас­си­че­­ская Samba ис­поль­зу­ет соб­ст­вен­ную ба­зу поль­зо­ва­те­лей, со­дер­жа­щую за­шиф­ро­ван­ные па­ро­ли, и эти учет­ные за­пи­си не име­ют ника­ко­го от­но­шения к поль­зо­ва­те­лям Linux. В клас­си­че­­ской Samba поль­зо­ва­тель до­бав­ляется следующим образом:

smbpasswd -a myuser

New SMB password:

Retype new SMB password:

Forcing Primary Group to ‘Domain Users’ for myuser

Forcing Primary Group to ‘Domain Users’ for myuser

Added user myuser.

За­меть­те, что как толь­ко поль­зо­ва­тель бу­дет до­бав­лен в Samba, Windows по­тре­бу­ет вве­сти его па­роль – да­же для госте­вых ре­сур­сов. До­ба­вить ре­сурс для поль­зо­ва­те­ля, так же, как и до­маш­нюю ди­рек­то­рию, мож­но, ес­ли вве­сти в smb.conf сле­дую­щее:

[myuser]

comment = %U home directory

writable = yes

valid users = myuser

path = %H

или, что яв­ля­ет­ся бо­лее об­щей прак­ти­кой, с по­мо­щью спе­ци­аль­но­го ре­сур­са [homes], ко­то­рый соз­да­ет до­машний ре­сурс для ка­ж­до­го поль­зо­ва­те­ля. При по­пыт­ке поль­зо­ва­те­ля со­единить­ся с ре­сур­сом Samba ищет от­кры­тое оп­ре­де­ление ре­сур­са, по­доб­ное при­ве­ден­но­му вы­ше. Ес­ли ниче­го не об­на­ру­жи­ва­ет­ся, но ре­сурс [homes] су­ще­ст­ву­ет, то он бу­дет ис­поль­зо­ван как шаб­лон для соз­дания ре­сур­са, нуж­но­го поль­зо­ва­те­лю. Со­от­вет­ст­вую­щий при­мер при­ве­ден ниже; запись browsable не по­зво­ля­ет по­ка­зы­вать [homes] при про­смот­ре се­те­во­го ок­ру­жения.

[homes]

comment = %U home directory

writable = yes

browsable = no

Еще один спе­ци­аль­ный ре­сурс – [printers]. Как и сле­ду­ет ожи­дать, он по­зво­ля­ет кли­ен­там Windows ис­поль­зо­вать прин­те­ры, со­единен­ные с сер­ве­ром Samba. Он ис­поль­зу­ет CUPS, что­бы по­мес­тить в оче­редь за­да­чи на пе­чать, и кли­ен­ту нуж­но рас­по­ла­гать со­от­вет­ст­вую­щим драй­ве­ром прин­те­ра, по­то­му что имен­но тот кон­вер­ти­ру­ет пе­ча­тае­мый файл в дан­ные raw, ко­то­рые умеет об­ра­ба­тывать прин­тер. Пе­чать тре­бу­ет на­ли­чия ди­рек­то­рии spool и воз­мож­но­сти за­пи­си в нее:

# mkdir /var/spool/samba
# chmod 1777 /var/spool/samba

Не­об­хо­ди­мая на­строй­ка Samba на­страи­ва­ет пе­чать CUPS и раз­ре­ша­ет рас­пре­де­лен­ный доступ к сво­им прин­те­рам на раз­де­ляе­мом ре­сур­се [printers]:

[global]

load printers = yes

printing = cups

printcap name = cups

[printers]

comment = Printers

path = /var/spool/samba

browsable = yes

writable = yes

printable = yes

[print$]

comment = Printer Drivers

path = /usr/share/samba/print

writable = yes

До­полнитель­ный ре­сурс [print$] яв­ля­ет­ся оп­цио­наль­ным и слу­жит для раз­ме­щения драй­ве­ров прин­те­ров. Он по­зво­ля­ет ад­минист­ра­то­ру за­гру­жать драй­ве­ры на сер­вер, что­бы поль­зо­ва­те­лям, ко­то­рые уста­нав­ли­ва­ют прин­тер, не при­шлось ис­кать их са­мим. Ди­рек­то­рия для ре­сур­са [print$] долж­на соз­да­вать­ся вме­сте с под­ди­рек­то­рия­ми для под­дер­жи­вае­мой ар­хи­тек­ту­ры:

# mkdir -p /usr/share/samba/print/{COLOR,IA 64,W32ALPHA,W32MIPS,W32PPC,W32X86, WIN40,x64}

Про­стей­ший спо­соб за­гру­зить драй­вер прин­те­ра – вой­ти от имени ад­минист­ра­то­ра в кли­ент Windows. В Windows 7 на­до пе­рей­ти на сер­вер (на­при­мер, \\MYHOST) и за­тем щелк­нуть по View Remote Printers. На­жми­те на Tab, что­бы ото­бра­зить панель ме­ню, за­тем вы­бе­ри­те File > Server Properties. Пе­рей­ди­те во вклад­ку Drivers и щелк­ните по Add. За­пустит­ся мас­тер Add Printer Driver для сер­ве­ра. По­сле за­груз­ки драй­ве­ра тре­бу­ет­ся ас­со­ции­ро­вать его с прин­те­ром: пе­рей­ди­те в прин­тер и от­крой­те его страницу Properties. Во вклад­ке Advanced вы­бе­ри­те за­гру­жен­ный драй­вер из всплы­ваю­ще­го спи­ска.

Кли­ент Windows мо­жет до­ба­вить прин­тер (на­при­мер, в Windows 7 пе­рей­ди­те в Start > Devices и Printers > Add Printer, что­бы до­ба­вить се­те­вой прин­тер). Ес­ли драй­вер за­дан в [print$], он уста­но­вит­ся ав­то­ма­ти­че­­ски; в про­тив­ном слу­чае поль­зо­ва­те­лю при­дет­ся оп­ре­де­лять ме­сто­по­ло­жение и уста­нав­ли­вать нуж­ный драй­вер са­мо­стоя­тель­но.

Те­перь рас­смот­рим реа­ли­за­цию Active Directory в Samba 4. Луч­ше все­го бу­дет при­знать, что, хо­тя Samba 4 мо­жет ра­бо­тать и в ка­че­­ст­ве Standalone/NT Domain Member, и в ка­че­­ст­ве Active Directory Domain Controller, эти две на­строй­ки со­вер­шен­но раз­ные и до неко­то­рой сте­пени несо­вмес­ти­мые.

Од­на­ко на­строй­ка Samba в ка­че­­ст­ве кон­трол­ле­ра до­ме­на Active Directory про­ста, по­то­му что здесь име­ет­ся спе­ци­аль­ный ин­ст­ру­мент инициа­ли­за­ции, ре­шаю­щий за­да­чи на­строй­ки:

# samba-tool domain provision

Realm [MYDOMAIN.CO.UK]:

Domain [MYDOMAIN]:

Server Role (dc, member, standalone) [dc]:

DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:

DNS forwarder IP address (write ‘none’ to disable forwarding) [10.0.0.138]:

Administrator password:

Retype password:

Па­ро­ли долж­ны быть доста­точ­но слож­ны­ми: од­на за­глав­ная бу­к­ва, од­на циф­ра, и не менее вось­ми сим­во­лов. Под­хо­дя­щий при­мер – “Pa$$w0rd”, имен­но его мы ис­поль­зо­ва­ли в на­ших тес­тах, хо­тя он небезо­па­сен. По за­вер­шении инициа­ли­за­ции вам со­об­щат, что сгенери­ро­ва­на кон­фи­гу­ра­ция Kerberos, под­хо­дя­щая для Samba 4. Вам нуж­но бу­дет ско­пи­ро­вать этот файл в ссоответствующее ме­сто:

# cp /var/lib/samba/private/krb5.conf /etc

Да­лее нуж­но на­стро­ить кли­ент DNS, что­бы он ука­зы­вал на Samba, по­то­му что это то­же DNS для но­во­го до­ме­на Windows. Это мож­но сде­лать, или от­ре­дак­ти­ро­вав /etc/resolv.conf, или, ес­ли ваш хост по­лу­ча­ет се­те­вые на­строй­ки по DHCP, под­пра­вив кон­фи­гу­ра­цию это­го сер­ви­са. В лю­бом слу­чае, /etc/resolv.conf дол­жен вы­гля­деть та­ким об­ра­зом:

domain mydomain.co.uk

nameserver 127.0.0.1

Samba пе­ре­на­прав­ля­ет за­про­сы, ко­то­рые не в состоянии раз­ре­шить са­ма, на ад­рес пе­ре­ад­ре­са­ции DNS, ко­то­рый ука­зы­ва­ет­ся на ста­дии инициа­ли­за­ции. Она ис­поль­зу­ет соб­ст­вен­ный внут­ренний сер­вер DNS, но его мож­но на­стро­ить на ис­поль­зо­вание внешнего BIND.

За­вер­шив на­строй­ку, мы мо­жем за­пустить кон­трол­лер до­ме­на и вы­полнить неко­то­рые тес­ты. Ре­жим Active Directory ис­поль­зу­ет но­вый ис­пол­няе­мый файл samba вме­сто привыч­но­го smbd. Итак, мы за­пуска­ем его вруч­ную, од­но­вре­мен­но про­водя тес­ты:

# samba -i -M single mydomain

Copyright Andrew Tridgell and the Samba

Team 1992-2012

samba: using ‘single’ process model

# host -t SRV _ldap._tcp.mydomain.co.uk

_ldap._tcp.mydomain.co.uk has SRV record 0 100 389 myhost.mydomain.co.uk.

# host -t SRV _kerberos._udp.mydomain.co.uk

_kerberos._udp.mydomain.co.uk has SRV record 0 100 88 myhost.mydomain.co.uk.

# host -t A myhost.mydomain.co.uk

host -t A myhost.mydomain.co.uk

Да­лее, тес­ти­ру­ем Kerberos (по за­про­су, вве­ди­те па­роль ад­ми­ни­ст­ра­то­ра):

# kinit administrator@MYDOMAIN.CO.UK

Password for administrator@MYDOMAIN.CO.UK:

# klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: administrator@MYDOMAIN.CO.UK

Valid starting Expires Service principal

08/02/13 16:25:31 09/02/13 02:25:31 krbtgt/MYDOMAIN.CO.UK@MYDOMAIN.CO.UK

renew until 09/02/13 16:25:21

Здесь вы долж­ны уви­деть ре­сур­сы Samba и по­лу­чить дос­туп к ним:

$ smbclient -L localhost -U%

Domain=[MYDOMAIN] OS=[Unix]

Server=[Samba 4.0.3]

Sharename Type Comment

[Имя ресурса] [Тип] [Комментарий]


----- ----------

netlogon Disk

sysvol Disk

IPC$ IPC IPC Service (Samba 4.0.3)

$ smbclient //localhost/netlogon -UAdministrator%’Pa$$w0rd’ -c ‘ls’

Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.3]

. D 0 Thu Feb 7 20:06:55 2013

. D 0 Thu Feb 7 20:08:44 2013

Еще один сер­вис, пре­достав­ляе­мый Active Directory Domain Controller – это син­хрониза­ция вре­мени. Хо­тя она и не обя­за­тель­на, эта оп­ция на­стоя­тель­но ре­ко­мен­ду­ет­ся, по­то­му что Kerberos ис­клю­чи­тель­но чу­ток к разнице во вре­мени ме­ж­ду кли­ен­та­ми и сер­ве­ром.

Так на­зы­вае­мый Windows Time Service, пре­достав­ляе­мый кон­трол­ле­ром до­ме­на, это сер­вер Network Time Protocol (NTP) с рас­ши­рения­ми для ау­тен­ти­фи­ка­ции. В Linux име­ет­ся ряд реа­ли­за­ций NTP, на­при­мер, ntpd и open-ntpd, но толь­ко ntpd вер­сии 4.2.6 под­дер­жи­ва­ет необ­хо­ди­мые рас­ши­рения ау­тен­ти­фи­ка­ции, и толь­ко тогда, когда ском­пи­ли­ро­ва­на под­держ­ка Samba (про­верь­те сов­па­дение ва­шей вер­сии ntpd по ntpd --version). Долж­ным об­ра­зом на­стро­ен­ный ntpd про­сит Samba про­из­ве­сти необ­хо­ди­мую ау­тен­ти­фи­ка­цию. На­строй­ка ntpd про­ис­хо­дит в /etc/ntpd.conf. Вот со­от­вет­ст­вую­щий при­мер:

server 127.127.1.0

fudge 127.127.1.0 stratum 12

ntpsigndsocket /var/lib/samba/ntp_signd/

restrict default mssntp

Са­мые важ­ные стро­ки, ко­то­рых мо­жет не быть в имею­щем­ся ntpd.conf – две по­следних. Запись ntpsigndsocket оп­ре­де­лея­ет путь к ди­рек­то­рии, где Samba раз­ме­ща­ет файл со­ке­та, че­рез ко­то­рый по­лу­ча­ет за­про­сы на ау­тен­ти­фи­ка­цию. Запись restrict со­об­ща­ет ntpd, что нуж­но ау­тен­ти­фи­ци­ро­вать вхо­дя­щие за­про­сы. Путь со­ке­та оп­ре­де­лят­ся на­строй­кой Samba, и вы мо­же­те под­твер­дить пра­виль­ный путь с по­мо­щью

# samba-tool testparm --verbose --suppress-prompt | grep “ntp signd socket directory”

ntp signd socket directory = /var/lib/samba/ntp_signd

Samba соз­да­ет ди­рек­то­рию со­ке­та, од­на­ко очень важ­но, что­бы в ней мог пи­сать ntpd. Ес­ли ntpd ра­бо­та­ет с uid:gid из ntp:ntp, на­до так­же из­менить груп­пу ди­рек­то­рии на ntp.

Пе­ре­за­пусти­те ntpd, что­бы все из­менения в на­строй­ке всту­пи­ли в си­лу, и за­тем про­верь­те лог-файл на пред­мет на­ли­чия пре­ду­пре­ж­дения о том, что ntpd был на­стро­ен без оп­ции на­строй­ки во вре­мя ком­пи­ля­ции --enable-ntp-signd. Ес­ли вы ви­ди­те это пре­ду­пре­ж­дение, зна­чит, ваш ntpd не под­дер­жи­ва­ет нуж­но­го ме­ханиз­ма ау­тен­ти­фи­ка­ции. Вам при­дет­ся най­ти ис­ходники для ntpd и пе­ре­ком­пи­ли­ро­вать его, что­бы он вклю­чил вы­ше­упо­мя­ну­тую оп­цию на­строй­ки во вре­мя ком­пи­ля­ции.

К со­жа­лению, ин­ст­ру­мен­та для тес­ти­ро­вания ау­тен­ти­фи­ка­ции NTP из Linux нет. Что­бы про­тес­ти­ро­вать ее с ком­пь­ю­те­ра Windows, яв­ляю­ще­го­ся чле­ном до­ме­на, от­крой­те ок­но команд­ной стро­ки как Administrator (щелкните по кноп­ке Пуск, вве­ди­те cmd и щелкните пра­вой кноп­кой по команд­ной стро­ке в окне ре­зуль­та­та по­ис­ка, что­бы вы­де­лить Run as administrator) и вве­ди­те

C:\> w32tm /resync

Sending resync command to local computer

The command completed successfully.

Пе­ред со­единением кли­ен­та Windows с но­вым до­ме­ном из­мените его се­те­вые на­строй­ки, что­бы он ис­поль­зо­вал DNS Samba. Так­же непло­хо вруч­ную на­стро­ить ча­сы кли­ен­та, что­бы разница с кон­трол­ле­ром до­ме­на не пре­вы­ша­ла несколь­ких се­кунд. Ес­ли ча­сы не син­хронизи­ро­ва­ны, вы мо­же­те по­лу­чать со­об­щения об ошиб­ках, не имею­щие ника­ко­го от­но­шения к ре­аль­ной про­бле­ме. Служ­ба вре­мени Windows бу­дет по­сто­ян­но син­хронизи­ро­вать ча­сы, когда кли­ент станет чле­ном до­ме­на.

Что­бы до­ба­вить кли­ент к до­ме­ну, пе­рей­ди­те в Start > Computer > Right-Click > Properties > Change settings. Поя­вит­ся диа­ло­го­вое ок­но Computer Name/Domain Changes, где на­до вы­брать Domain в раз­де­ле Member Of и вве­сти имя до­ме­на Samba (на­при­мер, mydomain), а за­тем на­жать OK. Та­ким об­ра­зом бу­дут за­про­ше­ны ад­минист­ра­тор­ские па­роль и ло­гин (имя поль­зо­ва­те­ля – Administrator, а па­роль – Pa$$w0rd, ес­ли вы сле­до­ва­ли на­шим на­строй­кам, при­ве­ден­ным в при­ме­ре).

Ад­минист­ри­рование до­ме­на мож­но вы­пол­нить либо локаль­но на сер­ве­ре при посредстве ути­литы команд­ной стро­ки samba-tool, либо уда­лен­но с ком­пь­ю­те­ра Windows, со­единен­но­го с до­ме­ном. Ад­минист­ра­тор, ис­поль­зуя пра­виль­но на­стро­ен­ный ПК, мо­жет за­пустить ин­ст­ру­мент Active Directory Users and Computers. Он пре­доста­вит пол­ный кон­троль над поль­зо­ва­те­ля­ми и ком­пь­ю­те­ра­ми, и ра­бо­та­ет в точ­но­сти так же, как ес­ли бы он осу­ще­ст­в­лял ад­минист­ри­ро­вание Microsoft Active Directory.

До­бав­ление поль­зо­ва­те­лей к AD из клас­си­че­­ской Samba (ко­то­рая ис­поль­зу­ет smbpasswd) де­ла­ет­ся по-дру­го­му, но так бу­дет бо­лее гиб­ко, по­то­му что это мож­но сде­лать из команд­ной стро­ки с по­мо­щью samba-tool или уда­лен­но из Windows с по­мо­щью Active Directory Users and Computers.

Когда соз­да­ют­ся поль­зо­ва­те­ли AD, они не име­ют от­но­шения к су­ще­ст­вую­щим поль­зо­ва­те­лям в /etc/passwd, по­то­му что им при­сваи­ва­ют­ся дру­гие но­ме­ра uid. При­сво­ен­ный uid мож­но из­менить, и это де­ла­ет­ся до­воль­но про­сто:

# wbinfo --name-to-sid myuser

S-1-5-21-4099219672-1275272411-291422405-1104 SID_USER (1)

# ldbedit -H idmap.ldb cn=S-1-5-21-

4099219672-1275272411-291422405-1104

Это по­зво­ля­ет ре­дак­ти­ро­вать запись из ба­зы дан­ных поль­зо­ва­те­лей Samba с по­мо­щью ре­дак­то­ра по умол­чанию, что­бы вы мог­ли из­менить uid поль­зо­ва­те­ля (рас­по­ло­жение idmap.ldb за­ви­сит от то­го, что у вас уста­нов­ле­но, но это бу­дет нечто вро­де /var/lib/samba/private или /usr/local/samba/private):

0 # editing 1 records

1 # record 1

2 dn: CN=S-1-5-21-4099219672-1275272411- 291422405-1105

3 cn: S-1-5-21-4099219672-1275272411-291422405-1105

4 objectClass: sidMap

5 objectSid:: AQUAAAAAAAUVAAAA2CB V9NscA0zFwF4RUQQAAA==

6 type: ID_TYPE_BOTH

7 xidNumber: 3000020

8 distinguishedName: CN=S-1-5-21- 4099219672-1275272411-291422405-1105

Ве­ли­чи­на, ко­то­рую здесь требуется из­менить – xidNumber; ее мож­но за­менить на пра­виль­ный uid поль­зо­ва­те­ля Linux. Из­менения бу­дут со­хранены в ба­зе дан­ных по­сле вы­хо­да из сес­сии ре­дак­ти­ро­вания.

На­строй­ка фай­ло­вых ре­сур­сов мо­жет про­из­во­дить­ся тем же спо­со­бом, что и в клас­си­че­­ской Samba – до­бав­лением со­от­вет­ст­вую­щих бло­ков в smb.conf. Вы мо­же­те сде­лать доступ­ным [homes], как в клас­си­че­­ской Samba, но мо­же­те пой­ти на шаг даль­ше и пред­ло­жить пе­ре­ме­щае­мые про­фи­ли с по­мо­щью раз­де­ляе­мо­го ре­сур­са [profiles]:

[profiles]

comment = Roaming Profiles

path = /var/lib/samba/profiles

writable = yes

browsable = no

Что­бы на­стро­ить поль­зо­ва­те­ля с пе­ре­ме­щае­мым про­фи­лем, ис­поль­зуй­те ин­ст­ру­мент Active Directory Users and Computers для ре­дак­ти­ро­вания на­стро­ек поль­зо­ва­те­ля и на­строй­ки пу­ти его про­фи­ля к \\mydomain\profiles\ %USERNAME %. В со­от­вет­ст­вии с этим, про­филь поль­зо­ва­те­ля бу­дет ко­пи­ро­вать­ся ме­ж­ду локаль­ным дис­ком и об­ла­стью Profiles на сер­ве­ре, когда он бу­дет вхо­дить и вы­хо­дить с лю­бо­го кли­ен­та до­ме­на.

Для лю­бых по­треб­но­стей, на­чи­ная с обыч­ных фай­ло­вых ре­сур­сов и за­кан­чи­вая пол­ной сре­дой Active Directory, Samba 4 да­ет жизнеспо­соб­ную аль­тер­на­ти­ву с от­кры­тым ко­дом до­ро­гим про­прие­тар­ным аль­тер­на­ти­вам. |

Персональные инструменты
купить
подписаться
Яндекс.Метрика