Главная страница
Навигация по странице:

  • 6.1. Конфигурирование Samba

  • Листинг 6.1. Фрагмент конфигурационного файла smb.conf

  • 6.1.1. Основные настройки

  • Description

  • 6.1.2. Безопасность

  • 6.1.4. Замена сервера Windows

  • 6.1.5. Поддержка WINS и DNS

  • 6.1.6. Отображение файлов

  • 6.2. Описание объектов

  • 6.2.1. Пора домой

  • 6.2.2. Доменный вход

  • 6.2.3. Распечатка

  • 6.2.4. Общий доступ

  • 6.2.5. Личные директории

  • 6.3. Управление пользователями

  • 6.4. Использование Samba

  • 6.5. Развитие Samba

  • Михаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69


    Скачать 3.69 Mb.
    НазваниеМихаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69
    Дата13.03.2022
    Размер3.69 Mb.
    Формат файлаpdf
    Имя файлаlinux_glazami_xakera_3-e_izd.pdf
    ТипДокументы
    #394477
    страница19 из 35
    1   ...   15   16   17   18   19   20   21   22   ...   35
    Глава 6
    В стиле Samba
    Изначально для обмена файлами между компьютерами использовался прото- кол
    FTP (об этом мы подробно поговорим в главе 10). Но он неудобен, так как использует технологию "клиент-сервер". Чтобы вы могли получить с
    компьютера друга файл, он должен запустить у себя FTP-сервер, а вы с по- мощью специальной программы, называемой FTP-клиентом, должны под- ключиться к этому серверу и скачать нужный файл. Сложность заключается не только в необходимости установки и настройки различных программ, но и
    в контроле доступа.
    Чтобы не утруждать себя настройками FTP-сервера, многие стали использо- вать специализированные обменники в своих локальных сетях. Для этого вы- делялся
    FTP-сервер с открытым доступом, который быстро превращался в
    мусорную корзину.
    В
    Windows появился более удобный способ публиковать свои файлы —
    "Сетевое окружение", с помощью которого удаленный пользователь может зайти на любой компьютер и использовать его открытые ресурсы. Это дейст- вительно хорошая возможность, и пользователи привыкли к ней, несмотря на то
    , что работа с открытыми ресурсами была небезопасной.
    Чтобы пользователи Windows могли видеть сервер Linux в своем сетевом окружении и работать с ним как с Windows-машиной, был разработан пакет
    Samba (часто можно встретить сокращение smb), который состоит из двух программ
    . Сервер позволяет публиковать локальные папки для всеобщего просмотра
    , а с помощью клиента вы можете подключаться к другим компью- терам и работать с их открытыми ресурсами.
    С
    помощью Samba можно сделать легкодоступный и удобный в использова- нии файловый сервер. Раньше у меня на работе для этих целей использовался сервер
    Windows 2000, который параллельно работал как сервер баз данных.

    Глава
    6
    220
    Но файловый архив занимает слишком много места, отнимает ресурсы сети и
    сервера, а также понижает безопасность. К тому же, использовать дорого- стоящую
    ОС Windows как файловое хранилище просто глупо.
    Поэтому было принято решение перенести файловый архив на отдельный физический сервер с бесплатной ОС. Использовать для этого Windows 2000 слишком дорого и неэффективно — это то же самое, что вывозить мусор из дома на расстояние 20 метров на Ford Mondeo. Ну зачем графический интер- фейс файловому хранилищу? Для этих целей лучше подойдет Linux, который обходится дешевле, если вы знаете его и умеете использовать. Именно так мы и поступили.
    Одно из мощнейших преимуществ Samba — возможность удаленного управ- ления через SSH или SWAT (Samba WEB-based Administrative Tool, набор администратора через WEB для Samba).
    6.1.
    Конфигурирование
    Samba
    Основным конфигурационным файлом для Samba является smb.conf, кото- рый можно найти в директории /etc/samba/ (в некоторых дистрибутивах это может быть каталог /etc). Кроме него в этой директории можно найти файл lmhosts, с помощью которого происходит сопоставление IP-адресов и имен компьютеров аналогично /etc/hosts в Linux и Диск:\Windows\System32\ drivers\etc\lmhosts.sam в Windows.
    Дополнительно в этой же директории можно создать следующие файлы (не- которые из них могут существовать):
    ˆ
    smbusers — список пользователей, которым разрешено подключаться к
    серверу Samba;
    ˆ
    smbpasswd — пароли пользователей из файла smbusers;
    Как видите, у Samba свои конфигурационные файлы для хранения списка пользователей
    . Если вы создаете их вручную, то убедитесь, что права на чтение и запись установлены правильно. Файл должен быть доступен толь- ко администратору, то есть владельцем может быть только root и никто иной
    Конфигурационный файл smb.conf содержит не так много директив, поэто- му для удобства восприятия я привел в листинге 6.1 небольшой пример, который поможет вам увидеть общую структуру такого файла. В дальней- шем нам предстоит рассматривать другие серверы Linux, где настроек на- много больше.

    В
    стиле
    Samba
    221
    Листинг
    6.1.
    Фрагмент
    конфигурационного
    файла
    smb.conf
    [global]
    # Основные директивы workgroup = MYGROUP server string = Samba Server
    ; hosts allow = 192.168.1. 192.168.2. 127. load printers = yes printing = lprng
    ; guest account = pcguest
    # Директивы журнала log file = /var/log/samba/%m.log max log size = 0 syslog only = no
    # Директивы безопасности security = user
    ; password server =
    ; password level = 8
    ; username level = 8 encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd
    ; usershare max shares = 100 unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n
    *passwd:*all*authentication*tokens*updated*successfully* pam password change = yes
    ; username map = /etc/samba/smbusers
    ; include = /etc/samba/smb.conf.%m obey pam restrictions = yes
    # Настройка сокета socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    ; interfaces = 192.168.12.2/24 192.168.13.2/24

    Глава
    6
    222
    ; bind interfaces only = yes
    # Настройка просмотра
    ; remote browse sync = 192.168.3.25 192.168.5.255
    ; remote announce = 192.168.1.255 192.168.2.44
    ; local master = no
    ; os level = 33
    ; domain master = yes
    ; preferred master = yes
    # Работа с сервером
    ; domain logons = yes
    ; logon script = %m.bat
    ; logon script = %U.bat
    ; logon path = \\%L\Profiles\%U
    ; wins support = yes
    # WINS сервер wins support = no wins server = w.x.y.z dns proxy = no name resolve order = lmhosts host wins bcast
    # Отображение файлов
    ; preserve case = no
    ; short preserve case = no
    ; default case = lower
    ; case sensitive = no
    Реальный файл в вашей системе будет намного больше, потому что он со- держит множество комментариев с описаниями и примерами конфигуриро- вания открытых директорий. Я все это удалил, чтобы вам проще было ориен- тироваться
    , когда мы будем рассматривать назначение команд.
    В
    большинстве конфигурационных файлов Linux и его программах для опи- сания директив используется формат:
    ИмяДирективы Значение
    Имя директивы в данном случае должно состоять из одного слова и не может содержать пробелы. После имени ставится пробел, за которым идет значение директивы

    В
    стиле
    Samba
    223
    В
    Samba-сервере используется несколько иной формат, приближенный к фай- лам настроек Windows:
    ИмяДирективы=Значение
    Значение директивы ставится после знака равенства. Таким образом, имя ди- рективы может состоять из нескольких слов, содержать пробелы и различные символы
    (кроме знака равенства). Строки, начинающиеся с точки с запятой
    (
    ;
    ) или с диеза (
    #
    ), рассматриваются как комментарии.
    6.1.1.
    Основные
    настройки
    Конфигурационный файл разбит на секции. Самой первой идет
    [global]
    , в
    которой описываются глобальные настройки сервера. В ней можно увидеть следующие директивы:
    ˆ
    workgroup = имя
    — имя группы, в которую входит сервер. Когда в Win- dows вы входите в сетевое окружение, то можно увидеть все доступные ресурсы
    , разбитые на категории. В каждой группе могут быть свои ком- пьютеры или серверы;
    ˆ
    netbios name = имя
    — имя, которое пользователи будут видеть в сетевом окружении для данного сервера, оно не должно совпадать с именем рабо- чей группы;
    ˆ
    server string = описание
    — свободный текст, который можно будет увидеть в поле Description (Комментарий) свойств сервера или окне сете- вого окружения в режиме Details (Таблица). В этом поле вы можете по- местить комментарий, описывающий содержимое сервера, например,
    "Файловый архив Сергея";
    ˆ
    hosts allow = адреса
    — перечисление (через пробел) IP-адресов или се- тей
    , которым разрешен доступ к Samba-серверу. Например, чтобы открыть доступ всем компьютерам сети 192.168.1.x и одному компьютеру с адре- сом
    192.168.2.2 из другой сети надо написать следующую строку: hosts allow = 192.168.1. 192.168.2.2
    ˆ
    printcap name = файл
    — файл описания принтеров, подключенных к систе- ме
    . По умолчанию это /etc/printcap;
    ˆ
    load printers = yes
    — установка режима (yes) автоматического вклю- чения принтеров в список открытых ресурсов. Если в этом нет надобно- сти
    , то укажите no
    ;
    ˆ
    printing = система
    — тип системы печати. Здесь можно использовать одно из следующих значений: bsd
    , sysv
    , plp
    , lprng
    , aix
    , hpux или qnx

    Глава
    6
    224
    6.1.2.
    Безопасность
    В
    этом разделе мы рассмотрим директивы, которые напрямую или косвенно влияют на безопасность:
    ˆ
    guest account = имя
    — указывает учетную запись, с правами которой пользователь сможет входить в систему. Если ваш сервер не содержит секретной информации и используется для открытого обмена файлами, то можно завести гостевую учетную запись, иначе такой вход не безопасен;
    ˆ
    log file = файл
    — задает название файла-журнала, например, можно написать
    /var/log/samba/%m.log. Обратите внимание, что в имени присут- ствует символ процента, за которым следует буква m. Эта комбинация во время работы будет заменена именем пользователя, активность которого сохраняется
    . Так, например, для пользователя robert будет создан журнал
    /var/log/samba/robert.log;
    ˆ
    max log size = n
    — определяет максимальный размер журнала в кило- байтах
    . Укажите значение
    0
    , если ограничения не должно быть;
    ˆ
    syslog only
    — инструктирует использовать только syslog для журнали- рования
    ;
    ˆ
    security = уровень
    — определяет степень доступа. Параметр уровень может принимать одно из следующих значений:

    user
    — доступ на уровне пользователя;

    share
    — аутентификация на основе имени и пароля;

    server
    — проверка пароля производится сторонним smb-сервером.
    Имя сервера, на котором хранятся пароли, задается с помощью дирек- тивы password server = ИмяСервера
    , что позволяет держать пароли на другом smb-сервере, который и будет осуществлять проверку пароля;

    domain
    — включает сервер в домен Windows NT, а пароль для доступа указывается в файле, определенном с помощью директивы smb passwd file = ИмяФайла
    ;
    ˆ
    encrypt passwords
    =
    yes
    — позволяет шифровать пароли, передаваемые по сети. Данная опция требует пояснений, потому что могут возникнуть проблемы при авторизации с компьютеров с системой Windows.
    Суть в том, что Windows 95 вообще не шифровал пароли, и они передава- лись в открытом виде. Начиная с Windows 98 по умолчанию система стала шифровать пароли. Зашифрованный пароль передается по сети, и на сер- вере происходит дешифровка. Если система ожидает зашифрованного па- роля
    , а клиент посылает незашифрованный, то с соединением возникают серьезные проблемы.

    В
    стиле
    Samba
    225
    Современные версии Windows шифруют пароль, но вы можете отключить эту возможность. Для этого в реестре нужно изменить параметр
    EnablePlainTextPassword
    , установив в нем значение
    1
    . В Windows 9x этот параметр находится в реестре по адресу:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\
    VNETSUP
    Для
    Windows NT это:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\
    Parameters
    В
    Windows 2000 и более поздних версиях:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
    LanmanWorkstation\Parameters
    Если соответствующего параметра не существует, его следует создать. Он должен иметь тип Dword.
    Если возникли проблемы с входом в систему, то переключите систему в
    режим работы с незашифрованными паролями. В этом случае Samba ис- пользует для авторизации файлы /etc/passwd и /etc/shadow. Полученный открытый пароль шифруется по алгоритму MD5 и сравнивается со значе- ниями из этого файла.
    Если вы используете шифрованный пароль, то при авторизации будет ис- пользоваться файл /etc/samba/smbpasswd (это можно изменить с помощью директивы smb passwd file
    ). Этот файл необходим из-за отличий в шиф- ровании
    Windows и Linux.
    Не применяйте открытые пароли без особой надобности. Не забывайте о
    существовании программ-снифферов, которые анализируют сетевой трафик и позволяют найти пароли, передаваемые по сети. Если они не за- шифрованы
    , то злоумышленник сможет проникнуть в вашу систему;
    ˆ
    smb passwd file = файл
    — указывает на расположение файла с пароля- ми
    . По умолчанию он находится в той же директории, где расположены конфигурационные файлы Samba;
    ˆ
    ssl CA certFile = файл
    — задает файл сертификата, необходимый для работы протокола SSL, гарантирующего безопасность передачи данных;
    ˆ
    unix password sync = yes
    — разрешает пользователям Windows менять пароль
    Samba, одновременно обновляя системные пароли в Linux. Если в
    этом нет необходимости, установите значение параметра no
    . Для работы этой директивы нужно указать программы, которые будут изменять паро-

    Глава
    6
    226
    ли
    (параметр passwd program
    ) и сообщения, появляющиеся перед пользо- вателем
    (параметр passwd chat
    ). Приведу пример использования: unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n
    *passwd:*all*authentication*tokens*updated*successfully*
    Помимо этого, необходимо использовать директивы encrypt passwords и
    smb passwd file
    ;
    ˆ
    username map = файл
    — указание на файл, где хранится список пользова- телей сервера Samba для клиентов Windows 9x (о нем подробнее мы пого- ворим в разд. 6.3);
    ˆ
    usershare max shares
    — максимальное количество пользовательских директорий
    , которые могут быть открыты для общего доступа;
    ˆ
    usershare allow guests = yes
    — если этот параметр включен, то гости системы смогут получить доступ к открытым ресурсам. По умолчанию этот параметр отключен, чтобы доступ к открытым ресурсам получали только авторизованные пользователи.
    6.1.3.
    Сеть
    В
    этом разделе мы изучим директивы настройки сетевого протокола:
    ˆ
    include =
    файл
    — позволяет подключить дополнительный конфигураци- онный файл, например, с другого компьютера, или содержащий настройки для конкретного подключающегося компьютера. В последнем случае имя файла обычно задается в формате путь.%m
    . В данном случае путь
    — это начало полного имени файла, а
    %m
    — это NetBIOS-имя компьютера.
    Например
    : /etc/samba/smb.conf.robert;
    ˆ
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    — за- дает параметры протокола и размер входного и выходного буфера. В дан- ном случае:

    TCP_NODELAY
    — позволяет быстрее (без задержек) передавать данные;

    SO_RCVBUF
    — размер принимающего буфера;

    SO_SNDBUF
    — размер передающего буфера;
    ˆ
    interfaces = интерфейсы
    — если у вас установлены две сетевые карты, которые направлены на разные сети, то с помощью этой директивы можно позволить работать с Samba пользователям из какой-то конкретной или из обеих сетей;

    В
    стиле
    Samba
    227
    ˆ
    bind interfaces only
    — позволяет привязаться только к именованным интерфейсам или сетям, перечисленным в параметре interfaces
    . Если ваша сеть не защищена сетевым экраном, то настоятельно рекомендуется использовать этот параметр, чтобы доступ к серверу Samba имели только компьютеры из вашей сети, а не любой удаленный пользователь из Ин- тернета
    6.1.4.
    Замена
    сервера
    Windows
    Если посмотреть на параметры, которые мы рассматриваем в этом разделе, можно увидеть, что Samba способна полностью заменить Windows-сервер, и
    рабочие станции на базе Windows не заметят неудобств:
    ˆ
    local master = yes
    — позволяет сделать Samba-сервер основным брау- зером сети;
    ˆ
    domain master = yes
    — дает возможность сделать Samba-сервер главным браузером домена. Не устанавливайте значение yes
    , если в вашей сети уже есть контроллер домена Windows NT;
    ˆ
    domain logons = yes
    — позволяет серверу Samba работать как серверу для входа в систему компьютеров с ОС Windows 95. При загрузке компь- ютера с Windows можно будет вводить пароли, хранящиеся в Samba;
    ˆ
    logon script = файл
    — если директива domain logons включена, то в этом параметре можно указать файл bat-сценария, который будет выполняться на компьютере клиента при входе в систему. Сценарий может, например, задаваться в виде
    %m.bat
    (заменяется именем компьютера) или
    %u.bat
    (подменяется на имя пользователя);
    ˆ
    logon path = путь
    — определяет место хранения пользовательских про- филей
    . При использовании этой директивы необходимо убрать коммента- рии с секции
    [Profiles]
    , которую можно найти в файле конфигурации по умолчанию
    6.1.5.
    Поддержка
    WINS
    и
    DNS
    WINS (Windows Internet Naming Service, служба имен Интернет для Windows) — это сервис для сопоставления имен компьютеров и IP-адресов. База данных
    WINS чем-то напоминает DNS (Domain Name Service), только в ней хранятся
    NetBIOS-имена компьютеров, а DNS обслуживает доменные имена.
    Для настройки работы через WINS используются следующие директивы:
    ˆ
    wins support
    = yes
    — разрешить использование WINS-сервера;
    ˆ
    wins server = w.x.y.z
    — IP-адрес WINS-сервера;

    Глава
    6
    228
    ˆ
    DNS Proxy = yes
    — если эта опция разрешена, то не распознанные Net-
    BIOS-имена можно попытаться определить через DNS-сервер;
    ˆ
    name resolve order
    — последовательность, в которой будет произво- диться поиск адреса хоста по его имени. В конфигурационном файле можно найти следующий пример: name resolve order = lmhosts host wins bcast
    Если использовать это значение, то при поиске адреса система сначала будет искать имя хоста в файле lmhosts, потом в hosts, потом будет задей- ствован wins, и последним будет использоваться bcast (broadcast или ши- роковещательный запрос).
    6.1.6.
    Отображение
    файлов
    В
    Linux и Windows используются разные правила именования файлов. На- пример
    , в Linux названия чувствительны к регистру, а в Windows — нет. Это значит
    , что файлы DATA.TXT и data.txt в Windows будут восприняты как один и тот же файл. Для решения этой проблемы есть несколько команд:
    ˆ
    case sensitive = no
    — не принимать во внимание различие в регистре;
    ˆ
    default case = lower
    — отображать все файлы в нижнем регистре;
    ˆ
    preserve case = no и short preserve case = no
    — запретить сохранение имен файлов с учетом регистра.
    Если у вас в сети работают пользователи Windows-систем, то рекомендуется оставить указанные выше значения. Для однородной Linux-сети можно раз- решить сохранять регистр.
    6.2.
    Описание
    объектов
    После того как вы определили основные параметры Samba-сервера, можно описывать объекты, к которым может получать доступ пользователь. Это де- лается в отдельных секциях, которые идут после секции
    [Global]
    , рассмот- ренной в разд. 6.1.
    6.2.1.
    Пора
    домой
    Конечно же, любой пользователь захочет работать со своей директорией. Для этого он должен иметь учетную запись в Linux, с которой и будет связан его каталог
    . Обращение к такой директории будет выглядеть как
    \\сервер\имя
    , где сервер
    — это имя сервера или его IP-адрес, а имя
    — это имя пользовате- ля
    , домашнюю директорию которого необходимо увидеть.

    В
    стиле
    Samba
    229
    Для того чтобы разрешить пользователям работать с собственными директо- риями
    , нужно описать раздел
    [homes]
    . Рассмотрим пример такой секции:
    [homes] comment = Home Directories browseable = no writable = yes valid users = %S ; %S - строка с перечислением пользователей create mode = 0664 directory mode = 0775
    В
    этой секции могут присутствовать следующие директивы:
    ˆ
    comment
    — текстовый комментарий, который не влияет на работу;
    ˆ
    browseable = no
    — режим отображения ресурса в списке просмотра. Если указать yes
    , то в сетевом окружении будут видны папки пользователей;
    ˆ
    writable = yes
    — предикат записи в домашнюю директорию. При значе- нии no создание и изменение файлов станет невозможным;
    ˆ
    create mode = 0750
    — права доступа для создаваемых файлов. В данном случае владелец файла имеет полные права, пользователи группы могут чи- тать и выполнять его, а остальные — бесправные. Иногда следует понизить значение параметра до 740, чтобы пользователи группы могли только читать;
    ˆ
    directory mode = 0775
    — права доступа для создаваемых каталогов. В дан- ном случае у пользователей группы тоже слишком высокие права, и я бы понизил их до 755, чтобы запретить им создавать в новой директории файлы
    . Остальные могут только просматривать каталог, но и это может ока- заться лишним, и для большей безопасности лучшим решением будет зна- чение
    750;
    ˆ
    valid users = пользователи
    — список пользователей, которым разре- шен доступ к домашним директориям. Значения разделяются пробелом.
    По умолчанию доступ имеют все, но в реальных условиях это необходимо только некоторым. Поэтому я рекомендую в явном виде прописать имена тех пользователей
    , которые нуждаются в работе со своим домашним каталогом.
    6.2.2.
    Доменный
    вход
    Если вы настроили сервер Linux так, чтобы пользователи Windows могли входить в систему через smb, используя его как сервер домена, то необходи- мо убрать комментарии с секции
    [netlogon]
    :
    ; [netlogon]
    ; comment = Network Logon Service

    Глава
    6
    230
    ; path = /usr/local/samba/lib/netlogon
    ; guest ok = yes
    ; writable = no
    В
    этой секции также присутствуют комментарий и директива writable
    Пользователи не должны иметь право записи в эту директорию, потому что здесь хранятся сценарии, которые выполняются при входе в систему. Файлы из этого каталога должен изменять только администратор.
    Помимо этого, есть еще две команды:
    ˆ
    path = путь
    — полный путь к директории netlogon;
    ˆ
    guest ok = yes
    — разрешение гостевого входа.
    Помимо этого, нужно убрать комментарии в секции
    [Profiles]
    , которая вы- глядит следующим образом:
    ;[Profiles]
    ; path = /usr/local/samba/profiles
    ; browseable = no
    ; guest ok = yes
    В
    этой директории хранятся профили пользователей, и она не должна быть видна в сетевом окружении Windows, поэтому директива browseable = no запрещает отображение.
    6.2.3.
    Распечатка
    Для того чтобы пользователям стали доступны принтеры, подключенные к
    Linux-серверу, нужно настроить следующую секцию:
    [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes
    Обратите внимание, что по умолчанию секция открыта и зарегистрирован- ные пользователи уже имеют доступ к принтерам. Если вы хотите, чтобы "гости" смогли использовать принтер, то добавьте строку public = yes
    . Я не рекомендую этого делать, потому что это предоставит пользователям лиш- нюю возможность для подшучивания. Например, в моей сети был случай, когда сотрудник рассылал через принтер разные картинки на все принтеры с
    общим доступом. Вроде безобидно, а работу тормозит, и бесполезно расхо- дуется картридж.

    В
    стиле
    Samba
    231
    6.2.4.
    Общий
    доступ
    Чаще всего на сервере необходима директория, через которую любой поль- зователь сможет обмениваться файлами с другими участниками сети. Для настройки такой папки используется секция
    [tmp]
    :
    ;[tmp]
    ; comment = Temporary file space
    ; path = /tmp
    ; read only = no
    ; public = yes
    По умолчанию секция закрыта, и для разрешения доступа к ней необходимо убрать комментарии. Обратите внимание на путь к открытому каталогу. Это
    /tmp — каталог для хранения временных файлов пользователей. С помощью директив read only
    (значение no
    ) и public
    (значение yes
    ) мы указываем сер- веру
    Samba, что директория открытая, и в нее могут записывать файлы и чи- тать все пользователи.
    Несмотря на удобства, которые предоставляет этот каталог, я рекомендую использовать его только в закрытых сетях. Если у вас есть выход в Интернет, то с помощью сетевого экрана необходимо ограничить доступ к Samba. Так как в директорию могут писать любые пользователи, то злоумышленник мо- жет записать в нее свои файлы, которые помогут ему получить на сервере права администратора.
    6.2.5.
    Личные
    директории
    Все разделы, которые мы рассматривали выше, имеют устоявшиеся имена и предназначены для решения определенных задач. Но в некоторых случаях вы можете изменить имя раздела, и на работе сервера это не скажется. Однако я не рекомендую этого делать, потому что в одной версии Samba все будет ра- ботать хорошо, а при обновлении программ сервера все может измениться, и
    потом трудно будет найти ошибку, из-за которой Samba работает неверно.
    Но вы можете создавать собственные разделы, в которых будете описывать права
    . Например, пусть вам нужно организовать общую директорию, в кото- рой файлы будут доступны всем пользователям, но записывать туда смогут только пользователи определенной группы. Допустим, что в этом каталоге должны храниться какие-то картинки. Для решения этой задачи можно соз- дать раздел
    [shareimages]
    следующим образом:
    [shareimages] comment = Share Images path = /home/samba/images

    Глава
    6
    232
    public = yes writable = yes write list = @staff printable = no
    Для данного раздела задаются следующие директивы:
    ˆ
    path = /home/samba/images
    — директория, которую мы хотим открыть;
    ˆ
    public = yes
    — признак доступности;
    ˆ
    writable = yes
    — запись в каталог разрешена;
    ˆ
    write list = @staff
    — определяет группу staff
    , которая может записы- вать файлы. Для всех остальных директория открыта только для чтения.
    В
    таких объявлениях директорий можно использовать любые директивы, ко- торые мы рассматривали в данной главе.
    6.2.6. CD-ROM
    Отдельным разделом в файле конфигурации идут настройки прав доступа к
    CD-ROM. Пример этих настроек показан ниже:
    ;[cdrom]
    ; comment = Samba server's CD-ROM
    ; read only = yes
    ; path = /cdrom
    ; guest ok = yes
    Обратите внимание, что в начале каждой строки стоит символ точки с запя- той
    . Я не случайно оставил их на месте, чтобы указать, что по умолчанию они есть (по крайней мере у меня). Если у вас их нет, то срочно подумайте о
    том, чтобы проштудировать всю систему очень подробно, мало ли что еще ваш производитель разрешил по умолчанию.
    Итак
    , все отключено, а значит компакт-диск не будет виден по сети. Если нужно открыть к нему доступ, настройте следующие параметры:
    ˆ
    comment = Samba server's CD-ROM
    — комментарий;
    ˆ
    read only = yes
    — файлы доступны только для чтения;
    ˆ
    path = /cdrom
    — путь к диску. Если у вас два и более дисков, нужно ука- зать
    , какой из них вы хотите расшарить, если же только один, то все равно нужно указать путь, куда он смонтирован;
    ˆ
    guest ok = yes
    — разрешить ли доступ к диску для гостей (неавторизо- ванных в системе пользователей).

    В
    стиле
    Samba
    233
    6.3.
    Управление
    пользователями
    Для начала разберемся с именами пользователей. По умолчанию для доступа к
    серверу Samba используются имена из системного файла /etc/passwd. Но вы можете завести отдельные записи Samba-сервера, которые будут соответст- вовать реальным, но их можно будет использовать только для подключения к
    Samba, а не к системе.
    Имена
    Samba описываются в файле /etc/samba/smbusers, расположение и
    название которого могут быть изменены директивой username map файла smb.conf. Содержимое файла /etc/samba/smbusers может быть, например, таким
    :
    # Unix_name = SMB_name1 SMB_name2 root = administrator admin nobody = guest pcguest smbguest
    У
    списка имен несколько предназначений. Во-первых, с его помощью вы можете отразить имена, привычные для пользователей DOS и Windows, на учетные записи Linux. Например, в Windows максимальные права принадле- жат пользователю Administrator, а в Linux это root. Во второй строке приве- денного выше примера устанавливается соответствие имени Administrator пользователю root.
    Во
    -вторых, использование этого файла позволяет аккумулировать несколько имен на одной учетной записи. Например, у вас есть группа пользователей, которым должны быть назначены одинаковые права. Для этого заводим в
    Linux только одну учетную запись nobody
    (под ней будут работать пользо- ватели
    ), а в smb будет несколько пользователей guest
    , pcguest и smbguest
    (под этими именами они будут входить в систему).
    Несмотря на то, что мы отразили имена пользователей administrator и admin, и
    это разные учетные записи, для них будет использоваться один пароль — назначенный пользователю root.
    Информация о пользователях, которым разрешен доступ, хранится в файле
    /etc/samba/smbpasswd. Его расположение и имя могут быть изменены с по- мощью директивы smb passwd file файла smb.conf. Рассмотрим пример со- держимого файла: flenov:0:813D6593C11F1173ED98178CA975D79:[UX ]:LCT-41FA818F robert:500:813D6593C11F1173ED98178CA975D79:[UX ]:LCT-41FA818F
    Сразу видно, что файл чем-то похож на /etc/passwd. Он также разделен двое- точиями на несколько колонок. Наиболее интересны из них первые три — имя пользователя, его UID в системе Linux и пароль.

    Глава
    6
    234
    Но добавлять пользователей вручную не очень удобно, потому что нужно зашифровать и прописать пароль, что не так уж и просто. Чтобы облегчить задачу
    , в пакет Samba включена утилита smbpasswd
    , которая принимает сле- дующие параметры:
    ˆ
    -a
    — добавить пользователя в систему. Учетная запись должна уже суще- ствовать в /etc/passwd. Например, давайте пропишем Роберта, с которым мы уже не раз работали: smbpasswd –a robert
    В
    ответ на это программа попросит вас дважды ввести пароль. Указанная вами комбинация никак не влияет на системный пароль и используется только для доступа к Samba. Таким образом, пароли могут отличаться.
    Я
    даже рекомендую сделать их различными. ОС Windows умеет запоми- нать пароли и хранить в своей системе, и версии Windows 9x делают это небезопасным способом. Если злоумышленник сможет украсть пароль на
    Samba, то он проникнет и в систему;
    ˆ
    -x
    — удалить пользователя. Чтобы исключить Роберта из системы, вы- полните команду smbpasswd –x robert
    ;
    ˆ
    -d
    — деактивировать пользователя. Если необходимо временно отклю- чить доступ для пользователя, не удаляя его из системы, выполните команду smbpasswd –d robert
    . Давайте посмотрим на строку, соответст- вующую
    Роберту, после выполнения этой команды: robert:500:813D6593C11F1173ED98178CA975D79:[DUX ]:LCT-41FA818F
    Обратите внимание, что в четвертой колонке в квадратных скобках поя- вилась буква D. Она как раз и указывает на то, что запись деактивирована.
    Таким образом вы легко можете определить, какие записи активны, а ка- кие нет;
    ˆ
    -e
    — активировать пользователя. С помощью этой команды можно под- ключить деактивированного ранее пользователя: smbpasswd –e robert
    Дополнительные параметры этой утилиты можно посмотреть, используя справочную систему man.
    Напоминаю
    , что файл /etc/samba/smbpasswd используется, если пароли пере- даются по сети в зашифрованном виде. В этом случае, чтобы предоставить доступ к Samba всем пользователям системы, необходимо для каждого вы- полнить команду smdpasswd
    . Есть сценарии, которые автоматизируют работу, но их использование не очень эффективно, потому что они не задают пароля и
    , чаще всего, перетаскивают всех пользователей, даже тех, кто не должен иметь доступа в систему. К таким пользователям относятся системные учет- ные записи типа bin, adm, deamon и др.

    В
    стиле
    Samba
    235
    6.4.
    Использование
    Samba
    Сервис
    Samba в основном создавался для пользователей Windows, но и по- клонники
    Linux тоже оценили все преимущества этой технологии, тем более что
    ОС Linux управляет совместным доступом к файлам по сети не хуже
    Windows, а в чем-то даже лучше. Для работы с Samba из ОС Linux использу- ется команда smbclient
    Чтобы подключиться к серверу необходимо указать как минимум два ключа:
    -L
    (адрес сервера) и
    -U
    (имя пользователя). В ответ на это программа запро- сит ввести пароль. Если вы не используете шифрование, то необходимо вве- сти системный пароль, в противном случае воспользуйтесь тем, который вы указали при переносе пользователя в файл /etc/samba/smbpasswd (при запуске команды smbpasswd
    ).
    Итак
    , выполните следующую команду для тестирования сервера: smbclient –L localhost –U root
    После ввода пароля пользователя root вы должны увидеть все открытые ре- сурсы сервера. Результат выглядит примерно следующим образом:
    Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.3a]
    Sharename Type Comment
    --------- ---- ----------
    IPC$ IPC IPC Service (Samba Server)
    ADMIN$ Disk IPC Service (Samba Server)
    Server Comment
    --------- ----------
    FLENOVM Samba Server
    Workgroup Master
    --------- ----------
    MYGROUP FLENOVM
    Вы должны учитывать, что в данном списке находятся не все директории.
    Например
    , у домашних директорий из раздела
    [homes]
    файла конфигурации директива browseable установлена в значение no
    (см. разд. 6.2.1). Это значит, что таких каталогов не будет видно. Это вполне логично, потому что зло- умышленнику нельзя давать возможность лицезреть имена директорий, осо- бенно если они соответствуют именам пользователей или содержат конфи- денциальные данные. Никогда не изменяйте этот параметр, чтобы хакер не знал
    , что он должен сломать.

    Глава
    6
    236
    Для подключения к открытому ресурсу сервера нужно подать команду smbclient
    , передав ей имя ресурса, которое задается в формате UNC (Universal
    Naming Convention, универсальное именование объектов) с применением следующего синтаксиса:
    \\ИмяСервера\ресурс
    Например
    , вы хотите подключить домашнюю директорию пользователя flenov. Ее адресом будет \\192.168.1.1\flenov.
    Но здесь надо сделать одно замечание — в Linux обратная косая черта (
    \
    ) является служебным символом, поэтому каждый такой знак должен заме- няться двумя символами
    \\
    . Так как в начале UNC-имени идет
    \\
    , то они за- меняются на четыре обратных косых черты, и адрес, приведенный выше, должен вводиться как
    \\\\192.168.1.1\\flenov
    Итак
    , для подключения к ресурсу выполняем команду: smbclient \\\\192.168.1.1\\flenov
    Если вы обращаетесь к ресурсу, который требует авторизации, необходимо указать имя пользователя, обладающего правами: smbclient \\\\192.168.1.1\\flenov –U flenov
    При удачном подключении к открытому ресурсу вы увидите такое пригла- шение
    :
    Smb: \>
    Теперь можно выполнять различные операции над файлами. Чтобы узнать, какие команды доступны, введите директиву help или знак вопроса (
    ?
    ).
    Команды
    , которые вы увидите, очень похожи на FTP (более подробно с FTP мы познакомимся в главе 10, см. также Приложение 1). Для отключения от ресурса необходимо выполнить команду exit
    Большинство дистрибутивов Linux включают стандартный пакет Samba и
    ничего больше. А ведь в Интернете есть сторонние разработки, которые позволяют монтировать открытые в Samba ресурсы в файловую систему
    Linux так же, как дискету или CD-ROM, или работать с общими ресурсами в
    графическом режиме, как это делается в Windows. Однако имейте в виду, что это не всегда безопасно.
    6.5.
    Развитие
    Samba
    Хотя
    Samba имеет давнюю историю и вполне устойчивый код, он продолжа- ет развиваться. Во время написания этой книги последняя стабильная версия программы имеет номер 3.5. Все версии начиная с 3.0 имеют возможность

    В
    стиле
    Samba
    237
    подключаться к домену Active Directory, то есть к службе каталогов, продви- гаемой и развиваемой фирмой Microsoft со времени выпуска Windows 2000
    Server. Однако в качестве контроллера домена Active Directory сервер Samba пока выступать не может. В настоящее время разрабатывается версия 4.0 сервера
    Samba, которая будет лишена этого недостатка, и тогда можно будет полностью доверить Linux серверную часть сети, клиентские компьютеры которой работают под Windows.
    Текущее состояние разработки Samba можно узнать на сайте проекта
    www.samba.org.

    1   ...   15   16   17   18   19   20   21   22   ...   35


    написать администратору сайта