среда, 1 февраля 2012 г.

Настройка Samba для работы с Active Directory


Начиная знакомство с linux самое первое что мы пытаемся поставить это прокси-сервер squid и файл-сервер samba. Не смотря на обилие документации установка и настройка samba не редко вызывает множество проблем, как на старте, так и в процессе эксплуатации.
В этой статье я постараюсь описать процесс установки и настройки samba файл-сервера для функционирование в домене Windows.

1. Установка и настройка kerberos

Устанавливаем необходимы пакеты:
[root@srv-smb ~]# yum install krb5-workstation ntp
Для правильной работы kerberos необходима точная синхронизация времени с контроллером домена. Открываем файл /etc/ntp.conf, комментируем все теги server и добавляем наш контроллер домена:
server srv-dc.mydomain.local
Добавляем в автозапуск и запускаем сервис ntpd:
[root@smb-srv etc]# chkconfig ntpd on
[root@smb-srv etc]# service ntpd start
Starting ntpd:                                             [  OK  ]
Открываем файл /etc/hosts и проверяем соответствие IP-адресов и имен, не правильно заполненный /etc/hosts может стать причиной множества ошибок:
127.0.0.1            localhost
# IP сервера         NetBios-имя DNS-имя
192.168.10.25        srv-smb  srv-smb.mydomain.local
Приводим файл /etc/krb5.conf к следующему виду:
[libdefaults]
    default_realm = MYDOMAIN.LOCAL             # имя нашего домена
 
[realms]
    MYDOMAIN.LOCAL = {
        kdc = srv-dc.mydomain.local
        admin_server = srv-dc.mydomain.local
        default_domain = mydomain.local
    }
 
[domain_realm]
    .mydomain.local = MYDOMAIN.LOCAL
    mydomain.local = MYDOMAIN.LOCAL
Получаем тикет от контроллера домена:
[root@srv-smb etc]# kinit administrator
Password for administrator@MYDOMAIN.LOCAL:
Проверяем полученный тикет:
[root@srv-smb etc]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@MYDOMAIN.LOCAL
 
Valid starting     Expires            Service principal
02/05/11 11:50:58  02/05/11 21:51:00  krbtgt/MYDOMAIN.LOCAL@MYDOMAIN.LOCAL
          renew until 02/06/11 11:50:58
 
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached

2. Установка и настройка samba

Устанавливаем необходимые пакеты:
[root@srv-smb etc]# yum install samba3x samba3x-common samba3x-winbind
Приводим файл /etc/samba/smb.conf к следующему виду:
[global]
dos charset = cp866                     # Кодировка для работы с DOS-клиентами
unix charset = utf-8                    # Кодировка для преобразования текстовых
                                        # имен файлов, пользователей и групп между
                                        # сервером и клиентом
display charset = utf-8                 # Должен быть таким же как unix charset
workgroup = MYDOMAIN                    # Имя рабочей группы
realm = MYDOMAIN.LOCAL                  # Имя домена
netbios name = SRV-SMB                  # Имя сервера для NetBios
server string = Test File Server        # Описание сервера
security = ADS                          # Указываем режим работы samba-сервера,
                                        # как члена домена.
auth methods = winbind                  # Аутентификация через winbind
allow trusted domains = No              # Запрещаем доступ к нашему серверу из
                                        # других доменов и рабочих групп
password server = srv-dc.mydomain.local # Список контроллеров домена
time server = No                        # Не использовать samba как сервер времени
domain master = No                      # Не использовать samba как мастер-браузер
                                        # для домена
dns proxy = Yes                         # Если имя не найдено в WINS, разрешаем его
                                        # поиск на DNS-сервере
ldap ssl = no
idmap uid = 10000-20000                 # Определяем диапазон uid для сопоставления
                                        # с SID пользователей домена
idmap gid = 10000-20000                 # Определяем диапазон gid для сопоставления
                                        # с группами домена
winbind enum users = Yes                # Разрешаем Winbind перечислять пользовате-
                                        # лей домена
winbind enum groups = Yes               # Разрешаем Winbind перечислять доменные
                                        # группы
winbind use default domain = Yes        # Не использовать доменное имя при аутенти-
                                        # фикации доменных пользователей.
winbind refresh tickets = Yes           # Разрешаем winbind обновлять тикеты
case sensitive = No                     # Отключаем чувствительность файлов к
                                        # регистру
 
# для каждой расшаренной папки необходимо составить свою секцию описания
[data]
 path = /mnt/data                               # Путь к папке на сервере, у поль-
                                                # зователя должны быть права на эту
                                                # папку, чтобы он мог получить дос-
                                                # туп к ней через samba
 valid users = "@MYDOMAIN\Пользователи домена"  # Список пользователей или групп
                                                # которые могут подключаться к
                                                # папке, по умолчанию это любой
                                                # пользователь
 
 read list = "@MYDOMAIN\Пользователи домена"    # Cписок пользователей или групп
                                                # с разрешением только на чтение
 write list = "@MYDOMAIN\Администраторы домена" # Список пользователей или групп
                                                # с разрешением на чтение и запись
 
 read only = No                                 # Разрешаем запись
 create mask = 0644
 guest ok = Yes                                 # Разрешаем подключение анонимных
                                                # пользователей
Для проверки правильности конфигурационного файла у самбы есть замечательная утилита testparm:
[root@srv-smb samba]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[data]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
Вводим сервер в домен:
[root@srv-smb samba]# net ads join -U Administrator
Enter Administrator's password:
Using short domain name -- MYDOMAIN
Joined 'SRV-SMB' to realm 'mydomain.local'
Включаем в автозапуск и запускаем сервисы smb и winbind:
[root@smb-srv ~]# chkconfig winbind on
[root@smb-srv ~]# service winbind start
Starting Winbind services:                                 [  OK  ]
[root@smb-srv ~]# chkconfig smb on
[root@smb-srv ~]# service smb start
Starting SMB services:                                     [  OK  ]
Редактируем файлик /etc/nsswitch.conf и добавляем после следующих строчек слово winbind. Этим действием мы указываем в каком порядке и где системе искать имена-пароли пользователей и групп.
passwd:     files winbind
shadow:     files winbind
group:      files winbind
Теперь сервер готов к работе.

Источник http://www.alsigned.ru/?p=1052

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

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