Linux глазами хакера - Михаил Флёнов
Шрифт:
Интервал:
Закладка:
□ username map = файл — указание на файл, где хранится список пользователей Samba-сервера для Windows 9x-клиентов (о нем подробнее мы поговорим в разд. 6.3).
6.1.3. Сеть
В этом разделе нам предстоит рассмотреть директивы настройки сетевого протокола:
□ include = файл — позволяет подключить конфигурационный файл smb.conf с другого компьютера. Имя файла задается в формате путь.%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 пользователям из обеих сетей.
6.1.4. Как домен
Если проанализировать все параметры, которые мы будем рассматривать в этом разделе, то станет очевидно, что 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
WINS (Windows Internet Naming Service, служба имен Интернета для Windows) — это сервис для сопоставления имен компьютеров и IP-адресов. База данных WINS чем-то напоминает DNS (Domain Name Service), только в ней хранятся NetBIOS-имена компьютеров, a DNS использует доменные имена.
Для настройки работы через WINS используются следующие директивы:
□ wins support = yes — разрешить использование WlNS-сервера;
□ wins server = w.x.y.z — адрес WINS-сервера;
□ DNS Proxy = yes — если эта опция разрешена, то не распознанные NetBIOS-имена можно попытаться определить через DNS-сервер.
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-адрес, а имя — это имя пользователя, домашнюю директорию которого необходимо увидеть.
Для того чтобы разрешить пользователям работать с собственными директориями, нужно описать раздел [homes]. Рассмотрим пример такой секции:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %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
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
В этой секции так же присутствует комментарий и директива writable. Пользователи не должны иметь право записи в эту директорию, потому что здесь хранятся их сценарии, которые выполняются при входе в систему. Файлы из этого каталога должен изменять только администратор.
Помимо этого, есть еще две команды:
□ path = путь — полный путь к директории netlogon;
□ guest ok = yes — такую же директиву мы рассматривали в разд. 6.1. В данном случае она позволяет гостевой вход. Помимо этого, нужно убрать комментарии в секции [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. Я не рекомендую этого делать, потому что это предоставит пользователям лишнюю возможность для подшучивания. Например, в моей сети был случай, когда сотрудник рассылал через принтер разные картинки на все компьютеры. Вроде безобидно, а работу тормозит, и идет бесполезный расход картриджа.
6.2.4. Общий доступ
Чаще всего, на сервере необходима директория, через которую любой пользователь сможет обмениваться файлами с другими участниками сети. Для настройки такой папки используется секция [tmp]:
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
По умолчанию секция закрыта, и для разрешения доступа к ней необходимо убрать комментарии. Обратите внимание на путь к открытому каталогу. Это /tmp — каталог для хранения временных файлов пользователей. С помощью директив read only (значение no) и public (значение yes) мы указываем серверу Samba, что директория открытая, и в нее могут записывать и читать файлы все пользователи.