сеть на линуксе. Алексей Старовойтов СанктПетербург бхвпетербург 2006 удк 681 06 ббк 32. 973. 202 С77
Скачать 7.49 Mb.
|
Несмотря на сложность анализа, пакет Samba постоянно обновляется, обес- печивая надежный механизм совместного использования ресурсов в сети. По сути, пакет Samba представляет Linux-машинам доступ в сеть, используя протоколы Microsoft. Прелесть такого решения состоит в том, что про- граммное обеспечение устанавливается только на сервере. На рабочих мес- тах с Windows ничего устанавливать не надо. В ASPLinux 7.3 Server Edition используется версия Samba 2.27 как наиболее стабильная и отлаженная. Сервер Samba состоит из нескольких программ. Состав программ и выпол- няемые ими роли приведены в табл. 10.1. Конфигурирование Samba может осуществляться вручную либо при помощи графических утилит администрирования. В любом случае все сводится к изменению конфигурационных файлов. У Samba их несколько (табл. 10.2). Ãëàâà 10. Íàñòðîéêà Samba 195 Òàáëèöà 10.1. Ñîñòàâ ïàêåòà Samba Ïàêåò Îïèñàíèå smbd Äåìîí Samba, îáåñïå÷èâàþùèé ñåðâèñ SMB nmbd Äåìîí, îáåñïå÷èâàþùèé ðàáîòó ñåðâèñà èìåí NetBIOS. Ýòî ïîçâîëÿåò óçëàì â ñåòè ïîëó÷àòü ðåïëèêàöèþ ñåòåâûõ èìåí íà IP-àäðåñà smbclient Óòèëèòà, ïîçâîëÿþùàÿ óçëàì íà Linux ïîëó÷èòü äîñòóï â ñåòü Microsoft testparam Ñàìî íàçâàíèå ýòîé óòèëèòû ãîâîðèò çà ñåáÿ. Îíà èñïîëüçóåòñÿ äëÿ ïðîâåðêè ïðàâèëüíîñòè íàïèñàíèÿ ôàéëà êîíôèãóðàöèè smb.conf Swat Ñðåäñòâî àäìèíèñòðèðîâàíèÿ ïðè ïîìîùè web-èíòåðôåéñà. Óòèëèòà âêëþ÷åíà â ïàêåò Webmin Òàáëèöà 10.2. Êîíôèãóðàöèîííûå ôàéëû Samba Ôàéë Îïèñàíèå /etc/samba/smb.conf Îñíîâíîé êîíôèãóðàöèîííûé ôàéë. Áîëüøèíñòâî íàñòðî- åê êàñàåòñÿ îáùèõ ôàéëîâûõ ðåñóðñîâ, îáùèõ ïðèíòåðîâ, ïðàâ ïîëüçîâàòåëåé /etc/samba/smbpasswd Çäåñü ñîäåðæèòñÿ èíôîðìàöèÿ äëÿ èäåíòèôèêàöèè ïîëü- çîâàòåëåé /etc/samba/lmhosts Çäåñü ñîäåðæèòñÿ èíôîðìàöèÿ äëÿ îáåñïå÷åíèÿ îòðàæå- íèÿ èìåí íà IP-àäðåñà /etc/init.d/smb Ôàéë, îïðåäåëÿþùèé ïîðÿäîê çàïóñêà, îñòàíîâêè è ïåðå- çàïóñêà ñåðâåðà /etc/sysconfig/samba Ñèñòåìíûé êîíôèãóðàöèîííûé ôàéë /etc/pam.d/samba Îáåñïå÷èâàåò èäåíòèôèêàöèþ ïîëüçîâàòåëåé ïðè ïîìîùè ÐÀÌ Предпочтительнее на первых парах использовать Swat с последующим ана- лизом файла /etc/samba/smb.conf. Необходимо помнить, что демон smbd работает с полномочиями root. Так что при неправильной настройке конфигурационного файла пользователи могут получить не предназначавшиеся им права суперпользователя. Даже если это было без злого умысла, система может пострадать. Всю самую свежую информацию о проекте Samba можно получить на до- машней странице проекта http://www.samba.org. Здесь же можно скачать готовые к установке новые версии пакета. 196 ×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè 10.2. Îäíîðàíãîâàÿ ñåòü. Îñíîâíîé ôàéë êîíôèãóðàöèè Samba /etc/smb.conf Как уже упоминалось, основным файлом конфигурации является файл /etc/samba/smb.conf. В нем хранится описание основных сетевых ресурсов и правил доступа к ним. Большинство комментариев будем приводить прямо по тексту файла (листинг 10.1). Ëèñòèíã 10.1. Ôàéë /etc/samba/smb.conf [global] ; Эту строку раскомментируйте, если хотите дать доступ гостю ;guest account = nobody ; Строка привязки к определенной сетевой ; карте, если их больше одной ; ;interfaces=192.168.0.5/24 ;Задаем расположение log logfile=/var/log/sambalo-log.%m lock directory = /var/lock/samba share modes = yes ; Строки приказывают Linux использовать шифрованные пароли, ; по умолчанию это не делается encrypt passwords = Yes smb passwd file = /etc/samba/smbpasswd ; Строка синхронизирует Linux и Samba-пароли unix password sync = Yes ; последующие две строки избавят вас от проблем с русскими ; именами в файловой системе client code page = 866 character set = KOI8-R [homes] comment = Home Directoryes broweable = no read only = no creat mode = 0750 [printers] Ãëàâà 10. Íàñòðîéêà Samba 197 comment = Printers patch = /var/spool/samba browseable = no printable = yes public = yes writable = no create mode = 0700 ; пример публичного каталога [public] comment = Public Stuff path = /home/public public = yes printtable = no ;write list = @stuff – на запись имеют право только ;пользователи группы stuff, остальным чтение [buch] ; подготавливаем ресурс для бухгалтерии comment = Buchgalter files path = /buch public = yes printtable = no write list = @stuff ;на запись имеют право только ;пользователи группы stuff, остальным чтение [kb] ; подготавливаем ресурс для конструкторского бюро comment = konstuktor path = /kb public = yes printtable = no write list = @stuff ; на запись имеют право только ; пользователи группы stuff, остальным чтение ;По такой же схеме создается и ресурс для временных файлов [tmp] 198 ×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè comment = Temporary file space path = /tmp read only = no public = yes Файл состоит из разделов (табл. 10.3). Каждый раздел начинается заголов- ком в квадратных скобках. Òàáëèöà 10.3. Ðàçäåëû ôàéëà smb.conf Ðàçäåë Îïèñàíèå [global] Çäåñü ñîäåðæàòñÿ äèðåêòèâû, ïðèìåíÿåìûå êî âñåì ðåñóðñàì [homes] Äèðåêòèâû, îïðåäåëÿþùèå äîñòóï ê íà÷àëüíûì êàòàëîãàì ïîëü- çîâàòåëåé íà Linux-ìàøèíå [printers] Çäåñü ñîäåðæàòñÿ äèðåêòèâû, ïðèìåíÿåìûå ê îáùèì ïðèíòåðàì Приведенный в листинге 10.1 файл конфигурации позволит пользователям Samba иметь доступ к своим домашним директориям и писать во времен- ную директорию. Необходимо также немного сказать о шифровании паролей. По умолчанию Samba не шифрует пароли, а Windows шифрует. В целях безопасности лучше, чтобы пароли шифровались. Однако в некоторых случаях, если возникают проблемы на стадии отладки, шифрование паролей можно отключить. Для это- го необходимо подправить системный реестр Windows следующим образом. При использовании Windows 98 в разделе HKEY_Local_Machine\system\ CurrentControlSet\Services\VxD\VNetsup добавить • тип DWORD; • имя EnablePlainTextPassword; • данные 0 × 01. При использовании Windows NT в разделе HKEY_Local_Machine\system\ CurrentControlSet\Services\ Rdr\Parametrs добавить • тип DWORD; • имя EnablePlainTextPassword; • данные 0 × 01. При использовании Windows 2000 в разделе HKEY_Local_Machine\ system\CurrentControlSet\Services\ LanmanWorkStation\Parametrs добавить • тип DWORD; • имя EnablePlainTextPassword; • данные 0 × 01. Ãëàâà 10. Íàñòðîéêà Samba 199 Теперь немного по поводу ресурсов дискового пространства, выделяемых пользователю. Если доступ к каталогу для пользователя закрыт в Linux, то даже если вы разрешите его в Samba, пользователь все равно доступ не по- лучит. Каталог-то увидит, но зайти не сможет. Это проблема особенно касается монтируемых к Samba дисков с Fat32. По- скольку разграничение прав не предусмотрено параметрами файловой сис- темы, то по умолчанию диски монтируются только для чтения (это в файле fstab). Для того чтобы открыть доступ к монтируемым DOS-дискам, в файле fstab один из параметров должен иметь umask=0 (листинг 9.6). 10.3. Samba â êà÷åñòâå PDC Вначале немного теории. Все узлы имеют кодовое значение уровня опера- ционной системы. Роль компьютера в сети Microsoft определяется уровнем его операционной системы (по числу, определяющему уровень, определяет- ся ведущий узел в сети). В частности, для первичного контроллера домена это число равно 64. Этот момент необходимо учесть при настройке Samba в качестве PDC (Primari Domain Controller — первичный контроллер домена). Естественно, превращение Samba в PDC осуществляется редактированием файла smb.conf (листинг 10.2). Основной режим безопасности — это user. Единственный режим безопасности, который не будет работать по техническим причинам — share. Два других ре- жима (domain и server) — это просто разновидности режима user. Если вы хотите повысить степень защиты, то имеет смысл пароли для Samba и Linux сделать разными: unix password sync = No Ëèñòèíã 10.2. Ôàéë /etc/samba/smb.conf äëÿ Samba â êà÷åñòâå PDC [global] ; Здесь заданы имя домена и сетевое имя сервера workgroup = SAMBA netbios name = SAMBASERVER ; Эти параметры определяют первичный контроллер домена, для вас ; они меняться не будут os level = 64 preferred master = yes domain master = yes 200 ×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè local master = yes ;Уровень доступа тоже должен быть только таким security = user ; Устанавливаем шифрованные пароли encrypt passwords = yes ; Обработка входа в домен domain logons = yes ; Здесь будут сохраняться профили пользователей ; Такая комбинация позволит хранить профили в домашних каталогах logon path = \\%N\%U\profiles logon home = \\%L\%U\.profiles ; Домашние каталоги пользователей монтируются на диск Н: logon drive = H: ; logon script = logon.cmd character set = KOI8-R client code page = 866 ; Информационная строка, выводимая в сетевом окружении server string = Windows 3000 Server ; Здесь расположены файлы log для каждой машины, если ; что-то не получается, анализируйте эти файлы log file = /var/log/samba/%m.log ; Если хотите, чтобы был сервером времени, раскомментируйте ; time server = Yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 ; Эту строку раскомментируйте, если ваша программа добавления пользователя ; позволяет добавлять пользователей, содержащих символ $ ; add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u ; Этот ресурс необходим контроллеру домена [netlogon] path = /usr/local/samba/lib/netlogon read only = yes write list = root ; Ресурс для профилей пользователей [profiles] path = /export/smb/ntprofile Ãëàâà 10. Íàñòðîéêà Samba 201 read only = no create mask = 0600 directory mask = 0700 [homes] comment = Home Directories path = /home/%U ; write list = user11,user12,user14,root ; force user = user11,user12,user14,root writeable = Yes guest ok = Yes browseable = No available = No [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No ; А это уже наши ресурсы, которые мы планировали для отделов [Kb] path = /kb comment = Konstruktor write list = user11,user12,user14,root [buch] path = /buch write list = user21,user22,user24,root Сценарий входа для пользователей представлен в листинге 10.3. Ëèñòèíã 10.3. Ñîäåðæàíèå ôàéëà logon.cmd ; Установка времени net time \\SambaServer /set /yes ;Подключение дисков net use Y: \\ SambaServer\kb net use Z: \\ SambaServer\buch Кстати, команда net use правильно работает тоже только в версии 2.2. 202 ×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè Если имя задать как %u.cmd?, то можно установить отдельный сценарий для каждого пользователя. После того как вы настроили Samba, необходимо создать пользователей, для которых будут доступны ресурсы Samba. Делается это в два этапа: 1. Создаете пользователей в Linux (см. главу 9). 2. Создаете пользователей в Samba. Для этого с клавиатуры вводим: #smbpasswd –a Имя_пользователя Пароль_пользователя Также это можно сделать в Swat или в Webmin (об этом чуть позже). Обра- тите внимание на то, что вначале пользователь создается в системе, а затем только в Sambа. При этом имена в Sambа и Linux должны совпадать. По соображениям безопасности лучше, чтобы пароли не совпадали. Если вы все-таки установили синхронизацию паролей unix password sync = yes , то, соответственно, пароли должны совпадать. 10.4. Íàñòðîéêà âõîäà â äîìåí äëÿ Windows 98 Íàñòðîéêà âõîäà Здесь предполагается, что сетевая карта уже установлена и IP-адрес введен. Откройте Пуск | Панель Управления | Пароли и выберите вкладку Профили пользователей (рис. 10.1). Выберите нужный уровень установок профилей (рис. 10.2). 1. После сделанных изменений потребуется перезагрузка системы. Выпол- ните ее. 2. После перезагрузки вас попросят указать имя пользователя и пароль (рис. 10.3). Пользователя можно указать реального, а пароль оставьте пустым, поскольку эти данные попадают в pwl-файлы, которые не обла- дают высокой степенью защиты и позволяют легко вскрыть пароли. 3. На вопрос, создавать ли на локальном компьютере учетную запись поль- зователя, отвечайте Да. Теперь вы создали локальную учетную запись (рис. 10.4). У вас свой собственный вид рабочего стола и элементов меню. Однако необходимо помнить, что это локальная копия, на сервере пока ее нет. В домен Samba вы еще не вошли, хотя и создали профиль пользователя. Только что созданный вами профиль будет впоследствии перенесен на сервер. Ãëàâà 10. Íàñòðîéêà Samba 203 Ðèñ. 10.1. Âõîäèì â ïàíåëü óïðàâëåíèÿ Ðèñ. 10.2. Êàæäûé ïîëüçîâàòåëü ñî ñâîèì ïðîôèëåì 204 ×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè Ðèñ. 10.3. Ñîçäàíèå íîâîãî ïîëüçîâàòåëÿ â Windows 98 Ðèñ. 10.4. Ñîçäàíèå ëîêàëüíîé ó÷åòíîé çàïèñè 4. Открываем Пуск | Панель Управления. Выбираем элемент Сеть. В от- крывшемся окне назначаем способ входа в сеть Клиент для сетей Microsoft, в противном случае компьютер не будет входить в сеть, и бу- дут загружены локальные профили (рис. 10.5). 5. Здесь же выберите в верхнем окне Клиент для сетей Microsoft. Нажмите кнопку Свойства и выберите пункт Входить в домен Windows NT (рис. 10.6). 6. Сохраняем сделанные изменения, нажав кнопку ОК. 7. Перезагрузите компьютер, появится окно входа в сеть, содержащее поля Имя, Пароль, Домен (рис. 10.7). 8. Введите данные и попытайтесь зарегистрироваться. Если имя и пароль не распознаны, причиной, кроме очевидных ошибок, могут быть: • неправильный формат файла, ссылка на который задана в файле smb.conf; • пользователю, под именем которого вы входите, закрыт доступ; • пользователь не существует; • неправильно выставлены IP-адрес и маска сети. Ãëàâà 10. Íàñòðîéêà Samba 205 Ðèñ. 10.5. Âûáîð ñïîñîáà âõîäà â ñåòü Ðèñ. 10.6. Íàñòðîéêà èìåíè äîìåíà 206 ×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè Ðèñ. 10.7. Âõîä â äîìåí 9. Теперь осталось настроить доступ к этому компьютеру со стороны чле- нов сети (рис. 10.8). Открываем Пуск | Панель Управления. Выбираем элемент Сеть. В открывшемся окне назначаем Управление доступом. Доступ к ресурсам установите на уровне пользователей. Ðèñ. 10.8. Âûáîð ðàçãðàíè÷åíèÿ ðåñóðñîâ Ãëàâà 10. Íàñòðîéêà Samba 207 10. Жмем ОК. На вопрос об изменении режима доступа отвечаем Да (рис. 10.9). Ðèñ. 10.9. Âîïðîñ îá èçìåíåíèè ðåæèìà äîñòóïà 11. Затем перезагружаем компьютер. Все готово. В домен вы попали, можно назначать права доступа. Óñòðàíåíèå ïðîáëåì â Windows 98 1. Откажитесь от входа в сеть, нажав кнопку Отмена. 2. Запустите Пуск | Выполнить, наберите regedit.exe. В параметре HKEY__ LOCAL_MACHINE\Windows\CurrentVersion\ProfileList удалите ключ ProfilePath для требуемого пользователя. В некоторых версиях положение ключа ProfilePath может отличаться. В этом случае воспользуйтесь поис- ком. 3. Удалите файл с расширением pwl пользователя в каталоге c:\windows (как правило, он похож по имени на пользователя, имя pwl-файла для конкретного пользователя можно уточнить в sistem.ini). 4. Завершите сеанс работы Windows. 5. Удалите файлы user.dat или user.man из Linux, они расположены в ката- логе, указанном в logon_path. 6. Теперь попробуйте повторить настройку входа сначала 10.5. Íàñòðîéêà âõîäà â äîìåí äëÿ Windows NT/2000 Рабочие станции под управлением Windows NT/2000 используют машинные учетные записи. Пароль этой учетной записи служит ключом для защищен- ного соединения с контроллером домена, в целях предотвращения не- санкционированного присоединения машин с именем NetBIOS, уже заре- гистрированным в домене, и получения доступа к учетным записям 208 ×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè групп/пользователей. Рабочие станции под управлением Windows 9x/Me таких учетных записей не используют, поэтому не могут считаться полноправны- ми членами домена. Существуют следующие методы создания учетной записи: 1. Заранее. Для этого, обозначив machine_name имя NetBIOS, последова- тельно вводим команды: root# /usr/sbin/useradd -g 100 -d /dev/null -c "комментарий" -s /bin/false machine_name $ root# passwd -l machine_name $ root# smbpasswd -a -m machine_name 2. С помощью скриптов. В глобальную секцию добавим строку add user script = /usr/bin/useraddscript %u В каталоге /usr/bin должен быть скрипт useraddscript следующего содер- жания: #!/bin/sh /usr/bin/useradd -d /dev/null -g 100 -s /bin/false -M $1 3. Можно это сделать и одной строкой в секции [global] : add user script = /usr/bin/useradd -d /dev/null -g 100 -s /bin/false -M %u К сожалению, программа useradd, используемая в ASPLinux Server 7.3, не позволяет создавать имена, содержащие спецсимволы. Это значит, что на лету создание учетной записи не получится, система не сможет самостоя- тельно добавить пользователя, имя которого заканчивается символом $. Выход — в поиске другой программы, позволяющей добавлять такие име- на, или в ручном создании имени без знака $ и последующем редактиро- вании файлов /etc/passwd и /etc/shadow и добавлении в конец имени сим- вола $. Поскольку подключать машины к домену может только root, то в Samba необходимо добавить пользователя root. Причем пароли Linux и Samba для root должны различаться по соображениям безопасности. Проще всего задать нового пользователя для Samba из командной строки (рис. 10.10). Ðèñ. 10.10. Ñîçäàíèå ïîëüçîâàòåëÿ root äëÿ Samba В реальности пароль, конечно, необходимо задавать более сложный, чем в приведенном примере. Ãëàâà 10. Íàñòðîéêà Samba 209 Ñîçäàíèå ó÷åòíûõ çàïèñåé âðó÷íóþ Пусть нам необходимо создать учетную запись для машины с сетевым име- нем kb_01. Из названия понятно, что это первая машина в конструкторском бюро. В этом случае последовательность команд будет, как на рис. 10.11. |