Начиная знакомство с 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
Комментариев нет:
Отправить комментарий