☆ Linux Mint ☆

вторник, 22 марта 2011 г.

Samba - Настройка

Samba: что это такое и с чем его едят?

Сегодня различные дистрибутивы операционной системы GNU/Linux всё активнее теснят Windows и не только в серверных системах, но и на персональных компьютерах. Вместе с тем продукты Microsoft не собираются сдавать позиции без боя. В результате многие пользователи и системные администраторы вынуждены решать многочисленные проблемы согласования Linux(Unix) и Windows. Лучшим решением этих проблем является Samba – контактная среда между Microsoft и Unix.


Возможности пакета “SAMBA”

— предоставлять файлы и принтеры Linux/Unix–сервера для использования под Windows 9x/NT/2k/XP;
— непосредственно управлять пользователями NT;
— оптимально комбинировать безопасность данных и стабильную работу, которые предлагает Unix–сервер, с операционными системами Microsoft на рабочих станциях;
— поддерживать (не полностью) доменную структуру NT DOMAIN;
— функции первичного контроллера NT
— функции участника NT DOMAIN;
— обеспечивать сервисы WINS (клиент и сервер), TIME-server и т.д.;
— SAMBA придаёт Unix–системе свойства сети NT.

Применение пакета “SAMBA”

SAMBA осуществляет связь между Unix- и Windows-системами в сети (расширяя сетевые возможности ОС Unix). Пакет SAMBA представляет собой интерфейс, который обеспечивает связь компьютеров с Microsoft и компьютеров с Unix.
Благодаря SAMBA пользователь, работая на Unix–системе, может разрешить доступ к сетевым дискам и принтерам Windows. Для клиентов это выглядит таким образом, будто продолжает работать NT-сервер. Клиенты могут использовать сетевое окружение Windows, подсоединять и отсоединять сетевые диски, а также использовать данные на сетевом сервере, не ощущая, работает сервер под Unix или Windows. Клиенты могут обращаться к Unix–файлам, изменять и удалять их (если позволяют права). Таким образом, SAMBA фактически исполняет функции NT–сервера.



На рисунке представлена схема взаимодействия Unix–сервера с установленным пакетом “SAMBA” и четырёх клиентов с ОС Windows.

Протокол SMB/CIFS:
Пользователи не могут распознать различие между NT-сервером и SAMBA-сервером при обращении к серверу по сети. В техническом отношении SAMBA является SMB-сервером для Unix. SMB представляет собой протокол, который предлагается или используется всеми операционными системами Microsoft и средами для разрешения доступа по сети. Если применить сетевой дисковод под MS Windows, то в этом случае используется SMB-протокол. Но SAMBA имеет значительно большие возможности. Начиная с версии 2.0, он может осуществлять функции доменного контроллера.
Кроме пакета “SAMBA”, имеются ещё несколько других SMB-серверов для Unix. Но все они платные и обладают меньшими возможностями.
Также для переноса данных между Windows и Unix платформами существует не только протокол SMB/CIFS, но и FTP, NFS и другие.

Операционные системы поддерживаемые «SAMBA»:
SAMBA-серверу безразлично, под какой версией Unix работать. Поэтому список поддерживаемых операционных систем достаточно велик. Для компиляции SAMBA на Unix-системе необходимы, помимо исходного кода, GNU-autoconf, GNU-make и компилятор языка C.

Согласно веб сайту samba.org, он поддерживает следующие операционные системы:
A/UX 3.0;Altos Series 386/1000;
Apollo Domain/OS sr 10.3;Bull OS;
Cray Unicos 8.0;DNIS;
HP-UX;Linux (все дистрибутивы);
MachTch;Mac OS X;
Nextstep;AIX;
AMIGA;BSDI;
Convex;DGUX;
FreeBSD;Intergraph;
Lynx;NetBSD;
OpenBSD;OS/2 с EMX 0.9;
OSFI;RiscIX;
SCO OpenServer;Sequent;
Sony NEWS-OS;Sun OS (Solaris);
Ultrix;UXP/DS;
QNX;RISCOS;
SCO Unix;SGI Irix;
SVR4;Unixware;


Список поддерживаемых клиентов также достаточно велик. Поскольку SAMBA не является улицей с односторонним движением, он, дополнительно к серверу, содержит ещё одного или несколько клиентов, что позволяет применять все платформы, на которых работает сервер, в качестве SAMBA-клиентов:
MSClient с TCP/IP под DOS;
MS Windows 3.11 с TCP/IP;
MS Windows 95/98/98SE/ME;
MS Windows NT 3.5 — 4.0;
DAVE для Macintosh;
OS/2 Warp;
Windows 2000 (с некоторыми условиями);
Windows XP;
Windows Server (с версии 2003);
Windows Vista;
Windows 7;

При использовании операционных систем Windows 2000, как клиента для SAMBA–сервера нужно соблюдать некоторые условия. Windows2000 должен работать в режиме совместимости с Windows NT4, чтобы обеспечить возможность собственного добавления в домен SAMBA.



Условия сети для работы пакета “SAMBA”:
Для рационального использования пакета “SAMBA” в первую очередь требуется наличие сети. При этом особой роли не играет применяемый тип сетевой технологии, будь это Ethernet, Token-Ring или Arcnet. “SAMBA” можно использовать через аналоговые линии или через ISDN-линию. Важно лишь, что в качестве протокола сети можно использовать только TCP/IP.
Даже в случае, если ОС Microsoft могут использовать разрешения сети через другие протоколы, “SAMBA” эти протоколы не поддерживает. К таким протоколам относятся как NetBeui – протокол от Microsoft и IBM, так и разработанный Novell протокол IPX/SPX.

Установка пакета “SAMBA” для ОС Linux:
Большинство дистрибутивов Linux содержат версию “SAMBA”. Если пакет “SAMBA” поставлен вместе с дистрибутивом, то он встроен в систему, что исключает проблемы, которые могут возникнуть при компиляции. Если же такого пакета в системе не оказалось, то можно, либо установить “SAMBA” с помощью пакетов автоматической установки – rpm пакетов (разработанных Red Hat и работающих только на дистрибутивах совместимых с Red Hat Linux – таких, как Mandrake(Mandriva), SuSe, ASP и т.д. и т.п.), либо скомпилировать вручную. Пакет “SAMBA” занимает примерно 30 mb на жёстком диске, а в оперативной памяти основной сервис – smbd занимает около 10 340 Kbyte. Для того, что бы скомпилировать пакет “SAMBA” вручную на ОС Mandrake Linux-10.0, нужно: распаковать исходный код “SAMBA”, который находится в файле Samba*.tar.gz. Это можно сделать в каталог /usr/src/, но можно и в любом другом месте каталога. Для распаковки файлов в текущем каталоге используем команду:

tar –xvzf / …/samba*.tar.gz
Далее, заходим в каталог /usr/src/samba*/source/, и для автоматического создания makefile на основе найденных ./configure-сценариев, вводим команду:
./configure
(Но ./configure не знает, в какие каталоги требуется инсталлировать “SAMBA”, поэтому указывается ряд параметров – для справки набрать команду ./configure -help).
После создания makefile’а, переходим непосредственно к компиляции. Применяем, команду make, которая создаёт в результате бинарные файлы, и make install, что бы разместить эти бинарные файлы по своим каталогам (команда make uninstall отменяет все процессы инсталляции).
Теперь можно запустить “SAMBA”. Если проведено обновление существующей системы, не нужно обрабатывать сценарии запуска, и можно сразу запустить “SAMBA”. Если же сценарий запуска “SAMBA” отсутствует, так как “SAMBA” полностью скомпилирован заново, то выбирается один из следующих методов: inetd или обособленный сервер.
Но прежде чем выбирать один из методов, следует сообщить Linux-системе номера портов “SAMBA”-сервера. Для этого необходимо добавить в файл /etc/services следующие записи:

Netbios-ns 137/tcp #NETBIOS Name Service
Netbios-ns 137/udp
Netbios-dgm 138/tcp #NETBIOS Datagram Service
Netbios-dgm 138/udp
Netbios-ssn 139/tcp #NETBIOS Session Service
Netbios-ssn 139/udp


Теперь рассмотрим возможности запуска “SAMBA”. Первый из случаев – это запуск через inetd–демон — сетевой сервис, выполняющий администрирование сетевых серверов. Он принимает приходящие на определённый порт запросы и запускает соответствующий сервер. Преимущество данного метода состоит в том, что редко используемый сервер постоянно не занимает ресурсы, а запускается только при необходимости. Но если сервер должен работать постоянно, то, естественно, происходит определённая задержка, которая длится тем больше, чем больше нагрузка на него. Второй из случаев – запуск “SAMBA” в качестве самостоятельных демонов (сервисов). Обычно “SAMBA”-серверы запускают как самостоятельные сервисы. Это значит, что они работают и постоянно “слушают” на соответствующем порту поступающие запросы. Преимущество этого метода заключается в том, что программа не запускается только в момент поступления запроса. Запуск может осуществляться вручную или через сценарий. Рассмотрим запуск вручную. При наличии root-прав нужно ввести следущие команды:
/usr/sbin/nmbd –D
/usr/sbin/smbd –D

Для того, что бы остановить “SAMBA”-сервер вручную нужно ввести команды:
killall smbd
killall nmbd


Элементы «SAMBA»:
SAMBA состоит из множества отдельных частей:

-smbd
Session-Message-Block – это процесс, который выполняет основные действия.

-nmbd
NetBIOS-Name-Server – предназначен для работы с именами. Он отвечает за сообщение локального имени по сети, а также может работать как WINS-сервер/клиент.

-smbclient
Smbclient представляет собой более простой и хорошо конфигурируемый SMB-клиент.

-testprn
Эта программа выполняет только одну задачу: проверка принтера SAMBA-средствами наличия запрошенного принтера в файле /etc/printcap.

-testparm
Программа проверяет конфигурационный файл на наличие синтаксических и лексических ошибок.

-SWAT
Samba Web Administration Tool – программа для Web-администрирования.

-smbstatus
Данная программа определяет актуальный статус SAMBA.

-smbpasswd
-addtosmbpass
Awk – сценарий предназначен для внесения пользователей в SAMBA-файлы паролей.

-nmblookup
Поиск по NetBIOS-именам.

P.S. Ну, и, конечно же, в комментариях хотелось бы увидеть с какими трудностями можно столкнуться при установке новой версии Самбы (если будет время — обязательно про нее напишу), а так же какие либо подводные камни, которые, вы, хабраюзеры, с успехом устранили + всяческие вкусности, которые эта среда позволяет, которые вы используете, но не очень много людей об этом знает.
P.P.S. Это моя первая статья, поэтому, просьба не забрасывать автора камнями, а просто, в случае чего, минуснуть=)




Обсудить на форуме

0 Коментарии::

Отправить комментарий

Написать комментарий

Подписаться

Twitter Delicious Facebook Digg Stumbleupon Favorites More