Предположим, что сервер с Centos у нас уже есть. Достаточно самой минимальной комплектации. Вообще я устанавливаю Centos с помощью netinstall, убрав абсолютно все галочки в разделе "выбор пакетов для установки". В таком случае ставится около двухсот тридцати пакетов. После этого вычищаю еще несколько, связанных с графической системой X (yum erase $(rpm -qa|grep libX)) и т.д. Сразу же ставлю vim-enhanced, man и полностью обновляю, подключив репозитории Centos Plus и Extras.
Начнем.
# yum install samba
Установится samba-сервер и всё необходимое.
Большинство руководств, посвященных установке samba-сервера на Centos содержат указание отключить selinux. Я этого делать не буду. Более того, selinux "из коробки" - это одна из причин, по которой я использую Centos.
Проверяем политики selinux:
# getsebool -a|grep samba
Из появившегося списка нам понадобятся две политики, активируем их:
# setsebool -P samba_domain_controller on # setsebool -P samba_enable_home_dirs on
Теперь приступаем непосредственно к настройке samba. Для этого в файл /etc/samba/smb.conf внесем следующие изменения (крайне рекомендуется ознакомиться с man-страницей smb.conf):
; имя домена workgroup = oper777 ; имя сервера server string = pdc ; для контролера домена необходимо параметр security поставить в user. security = user ; пароли будут храниться в базе tdbsam, это, конечно, не ldap, но и не простой текстовый файл passdb backend = tdbsam domain master = yes domain logons = yes local master = yes os level = 33 preferred master = auto ; далее команды для различных действий. Используемые переменные можно посмотреть по ссылке ; http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#id2532525 logon script = %u.bat logon path = \\%L\Profiles\%U add user script = /usr/sbin/useradd %u -n -g nt_users add group script = /usr/sbin/groupadd %g add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false %u delete user script = /usr/sbin/userdel %u delete user from group script = /usr/sbin/userdel %u %g delete group script = /usr/sbin/groupdel %g ; если в сети нет DNS-сервера, то windows-машины могут определять имена ; друг друга по протоколу WINS. При необходимости можно назначить наш pdc ; wins-сервером: wins support = yes ; не забываем про кодировки dos charset = cp866 unix charset = utf8 ; Далее нужно объявить два общих каталога. ; В каталог netlogon можно помещать bat-файлы с именем пользователя ; (или с тем именем, которое задано параметром logon script). Эти ; скрипты будут принудительно запускаться на клиентских машинах. [netlogon] path = /var/lib/samba/netlogon read only = yes guest ok = yes browseable = no ; Во втором будут храниться перемещаемые профили пользователей [Profiles] path = /var/lib/samba/profiles readonly = no create mask = 0600 directory mask = 0700
Для проверки правильности конфигурационного файла можно воспользоваться командой
# testparm
Запускаем samba и добавляем в автозапуск:
# service smb start # chkconfig smb on
Самое время создать доменные группы пользователей
# groupadd nt_admins # groupadd nt_users # groupadd nt_computers
Можно создать групп столько, сколько нужно для разделения доступа пользователей.
Теперь необходимо создать указанные в конфиге samba каталоги:
# mkdir -p /var/lib/samba/{netlogon,profiles}
Нужно сообщить selinux, что к этим каталогам должен быть общий доступ:
# chcon -t samba_share_t /var/lib/samba/profiles # chcon -t samba_share_t /var/lib/samba/netlogon
Эти же каталоги должны быть доступными на запись для пользователей домена.
# chown root:nt_users /var/lib/samba/{netlogon,profiles} # chmod g+w /var/lib/samba/{netlogon,profiles}
Следующим шагом будет задание соответствия unix-групп группам из домена Windows. В домене NT есть несколько групп/пользователей со стандартными значениями. Их можно посмотреть в таблице:http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/groupmapping.html#WKURIDS
# net groupmap add ntgroup="Domain Admins" unixgroup=nt_admins rid=512 type=d # net groupmap add ntgroup="Domain Computers" unixgroup=nt_computers rid=515 type=d # net groupmap add ntgroup="Domain Users" unixgroup=nt_users rid=513 type=d # net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d
Для задания собственной группы команда будет без указания параметра rid (relative identifiers), например
# net groupmap add ntgroup="Designers" unixgroup=nt_designers type=d
Параметр type=d указывает, что эта группа - доменная.
Соответствия групп можно посмотреть командой
# net groupmap list
Теперь создадим первого пользователя:
# useradd -G nt_admins,nt_users -d /nohome -s /bin/false administrator # passwd -l administrator
Добавим его в samba и зададим пароль одной командой:
# smbpasswd -a administrator
Добавляя других пользователей, наряду с основной группой, необходимо добавлять их в группу nt_users.
Пользуясь паролем нового администратора, добавим наш pdc в собственный же домен:
# net join oper777 -U administrator
Чтобы клиенты могли начать подключаться к серверу, необходимо открыть определенные порты в межсетевом экране. Для протокола wins используется порт 137 (как tcp, так и udp), для работы samba нужны udp:137,138, tcp:139 (http://support.microsoft.com/kb/150543/ru)
# iptables -I RH-Firewall-1-INPUT -s 192.168.2.0/24 -p udp --dport 137 -j ACCEPT # iptables -I RH-Firewall-1-INPUT -s 192.168.2.0/24 -p udp --dport 138 -j ACCEPT # iptables -I RH-Firewall-1-INPUT -s 192.168.2.0/24 -p tcp --dport 137 -j ACCEPT # iptables -I RH-Firewall-1-INPUT -s 192.168.2.0/24 -p tcp --dport 139 -j ACCEPT # service iptables save
Сервер готов.
Комментариев нет:
Отправить комментарий