Для поднятия файлового хранилища на Linux требуется совсем не много времени. И сейчас, уважаемый читатель, я тебе это докажу. Я покажу, как настроить Debian Linux для работы с Active Directory, а так же поднять веб-интерфейс для администрирования.
Определимся с задачей
Пусть у нас имеется контроллер домена на Windows 2003 Server и системник под файловый сервер без ОС. Задача состоит в том, чтобы: установить ОС, ввести машину в домен, настроить аутентификацию доменных пользователей без запроса логина и пароля, поднять веб-интерфейс для управления, создать необходимые общедоступные ресурсы.
Итак, приступим-с…
Условимся, что:
Имя нашего нового файлового сервера: vr-online
Домен: mydomain
Контроллер домена: dataserver
Полное доменное имя контроллера домена (FQDN): dataserver.mydomain.local
IP контроллера домена: 192.168.0.1
IP DNS-сервера: 192.168.0.1
Debian Linux 5 под кодовым именем Lenny
Логинимся под рутом
Первым делом убираем CD/DVD привод из sources.list. В реале это позволяет физически отключить привод от нашего сервака. Ведь больше он на нём не понадобится.
# nano /etc/apt/sources.list |
Комментируем строчку, что начинается на «deb cdrom
» и сохраняем.
Теперь:
# apt-get update |
Поднимаем SSH. Ведь рулить серваком проще всего с помощью классной утилиты Putty.
# apt-get install ssh |
Т.к. сервер стоит во внутренней сети, то можно не менять настройки безопасности SSH и сразу логиниться со своего компа от имени рута. Делать так на public сервере ни в коем случае нельзя.
Теперь смотрим какой IP получил наш сервер:
# ifconfig |
Можно заходить по SSH. Открываем Putty, пишем IP. В разделе Translation указываем UTF-8. Огромное достоинство Putty заключается в том, что данные из буфера обмена вставляются с командную строку по клику правой клавиши мыши по области окна. Т.е. скопировал ранее заготовленную команду со всеми нужными параметрами, кликнул по окну Putty, данные попали в командную строку.
Куда же нам теперь без файлового менеджера? Он обязательно пригодится. Ставим Midnight Commander. Кстати в mc при работе через putty можно пользоваться даже мышкой.
# apt-get install mc |
Переходим к настройке сервера
На всякий случай добавим в hosts инфу о нашем контроллере домена:
# nano /etc/hosts |
Пишем в файл:
192.168.0.1 dataserver.mydomain.local dataserver |
Ставим ntpdate для синхронизации времени c DC(Domain Controller), это нужно для нормальной работы Kerberos.
# apt-get install ntpdate |
Настроим его.
# nano /etc/default/ntpdate |
Прописываем наш контроллер домена:
NTPSERVERS="dataserver.mydomain.local" |
Запускаем синхронизацию времени вручную:
# ntpdate –s dataserver.mydomain.local |
Для проверки запускаем:
# date |
Должны увидеть правильное время и дату.
Пришла пора уточнить сервер(ы) DNS, обслуживающий домен.
# nano /etc/resolv.conf |
Там обязательно должна быть строка:
nameserver 192.168.0.1 |
Ведь наш DC так же несёт на себе DNS
Ставим все нужные для работы пакеты.
# apt-get install samba winbind libpam-smbpass krb5-user krb5-config |
Небольшое описание того, что мы устанавливаем:
Samba — это набор программ, которые реализуют протокол SMB/CIFS в системах unix, позволяя обслуживать запросы к файлам и принтерам клиентов Windows, NT, OS/2 и DOS. Этот протокол иногда называют LanManager или NetBIOS.
Winbind — для получения информации о пользователях и группах с серверов Windows NT. Также служба может выполнять функции авторизации через PAM-модуль.
Libpam-smbpass – это модуль для PAM. Позволяет преобразовывать Unix пользователей в пользователей Samba. Т.к. у Samba своя собственная база пользователей, поэтому её обязательно нужно синхронизировать с базой Unix.
Krb5-user – позволяет производить аутентификацию пользователей в сети. Kerberos — сетевой протокол аутентификации, позволяющий безопасно передавать данные через незащищённые сети для безопасной идентификации. Обеспечивает взаимную аутентификацию — оба пользователя через сервер подтверждают личности друг друга. Сообщения, отправляемые через протокол Kerberos, защищены от прослушивания и атак повторного воспроизведения.
Krb5-conf – создаёт начальную конфигурацию пакета.
…
Всё. Установилось. Настроим сначала Kerberos.
Лёгким жестом руки удаляем всё из конфига:
# cat /dev/null > /etc/krb5.conf |
Не подумай, что я – маньяк. Просто я не люблю, когда в конфигах находится сотни строк с комментариями. Всегда удаляю всё лишнее. Теперь правим его:
# nano /etc/krb5.conf |
Вот мой начальный рабочий конфиг кербероса:
[libdefaults] default_realm = MYDOMAIN.LOCAL krb4_config = /etc/krb.conf krb4_realms = /etc/krb.realms kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } fcc-mit-ticketflags = true [realms] DATASERVER.MYDOMAIN.LOCAL = { kdc = dataserver.mydomain.local admin_server = dataserver.mydomain.local } [domain_realm] .mydomain.local = MYDOMAIN.LOCAL mydomain.local = MYDOMAIN.LOCAL [login] krb4_convert = true krb4_get_tickets = false |
Важно соблюдать регистр букв! Точно так же как и у меня!!!
Обрати внимание, что в разделе [realms] мы пишем DATASERVER.MYDOMAIN.LOCAL, а не MYDOMAIN.LOCAL !!!
Просто замени MYDOMAIN.LOCAL и DATASERVER.MYDOMAIN.LOCAL на своё и все будет работать. По факту это – и есть стандартный конфиг. Я лишь вырезал из него комментарии и realms доменов, которыми ты всё равно никогда не будешь пользоваться.
Так же безжалостно поступаем с конфигом самбы. Дропаем всё.
# cat /dev/null > /etc/samba/smb.conf |
# nano /etc/samba/smb.conf |
Вот мой рабочий конфиг, с которого я всегда начинаю настройку:
[global] workgroup = MYDOMAIN server string = File server dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d security = ads realm = MYDOMAIN.LOCAL encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u pam password change = yes socket options = TCP_NODELAY idmap uid = 1000-20000 idmap gid = 1000-20000 template shell = /bin/bash winbind use default domain = yes winbind enum groups = yes winbind enum users = yes #======================= Share Definitions ======================= [homes] comment = Home Directories browseable = no read only = no create mask = 0700 directory mask = 0700 valid users = MYDOMAIN\%S [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 |
Расписывать каждый параметр не буду. Описание можно найти без проблем в инете.
Потестим конфиг самбы:
# testparm |
Получили:
Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Loaded services file OK. Server role: ROLE_DOMAIN_MEMBER |
Отлично. Осталось совсем немного.
В файле /etc/nsswitch.conf указать, откуда брать информацию о пользователях:
passwd: compat winbind group: compat winbind shadow: compat winbind hosts: files dns winbind |
Модифицируем PAM. Наcтраиваем cиcтемную аутенфикацию и авторизацию контроллером домена.
# nano /etc/pam.d/common-account |
Пишем:
account required pam_unix.so account sufficient pam_winbind.so |
# nano /etc/pam.d/common-auth |
Пишем:
auth sufficient pam_winbind.so auth sufficient pam_unix.so nullok_secure use_first_pass |
# nano /etc/pam.d/common-password |
Пишем:
password sufficient pam_winbind.so password required pam_unix.so nullok obscure min=4 max=8 md5 |
# nano etc/pam.d/common-session |
Пишем:
session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 |
т.к. у нас объявлена в конфиге Samba одна шара (домашняя директория каждого юзера домена), то нужно создать папку MYDOMAIN в /home.
Перезапускаем winbind и samba
# /etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start |
Теперь джойнимся в домен:
# net ads join -U administrator |
Здесь administrator – логин администратора домена. Писать просто логин.
Не administrator@mydomain, и не administrator@mydomain.local . А просто administrator!
Далее вбиваем пароль. Вуяля! И мы в домене.
Делаем reload winbind, чтобы он перечитал информацию о доменных юзерах и группах:
# /etc/init.d/winbind force-reload |
Поcле чего проверяем что же получили. Отобразим доменных юзеров и группы:
# wbinfo –u # wbinfo –g |
-u отобразит cпиcки доменных пользователей
-g отобразит cпиcки доменных групп
Поздравляю, мой дорогой читатель!
Теперь можно зайти на наш файловый сервер:
\\vr-online |
Пока ты увидишь лишь одну шару – папку с именем своего пользователя. Эта личная папка создастся для каждого доменного пользователя, зашедшего по сети на файловый сервер. Доступ к папке имеет только сам пользователь, и никто более.
Дело почти сделано. Теперь нужно поставить удобную панель администрирования Samba. Ставим, конечно же, WebMin.
Webmin — это программный комплекс, позволяющий администрировать операционную систему через веб-интерфейс, в большинстве случаев, позволяя обойтись без использования командной строки и запоминания системных команд и их параметров. Используя любой браузер, администратор сервера может создавать новые учётные записи пользователей, почтовые ящики, изменять настройки служб и сервисов, например : веб-сервера Apache, DNS, файл-сервера Samba.
Официальный ресурс проекта http://www.webmin.com/
Возможности Webmin значительно шире, чем мы будем юзать. Так что если не сталкивался с ним, то обязательно посмотри остальной функционал. Тебе понравится. Уверен.
Удобней всего ставить из репозитория. Правим /etc/apt/sources.list. Добавим в него строку:
deb http://download.webmin.com/download/repository sarge contrib
Далее нужно установить GPG ключ следующими командами:
# cd /root # wget http://www.webmin.com/jcameron-key.asc # apt-key add jcameron-key.asc |
Теперь:
# apt-get update # apt-get install webmin |
Все зависимости подтянуться автоматически.
Теперь со своего рабочего места можно уже заходить на сервер через браузер:
https://vr-online:10000/ |
Логинимся под root’ом. Для начала нужно сменить язык интерфейса:
Webmin – Change Language and theme — выбираем Russian UTF-8.
Надо залогиниться заново, чтобы увидеть русскоязычный интерфейс. Кое-что всё равно останется на англицком, но это не страшно.
Вот теперь можно заняться настройкой Samba.
Идём Службы – Файл-сервер Samba.
Выбирай “Настройка автоматической синхронизации пользователей Unix и Samba”.
Ставь галочки:
— Добавлять пользователя Samba при добавлении пользователя Unix
— Изменить пользователя Samba при изменении пользователя Unix
— Удалить пользователя Samba при удалении пользователя Unix
Кликай пимпу “Применить”.
Аналогично нужно настроить синхронизацию групп Samba с группами Unix. Кнопка “Configure automatic Unix and Samba group synchronisation”
Остаётся лишь перенести всех доменных пользователей и группы в Samba. Для этого кликай “Преобразование пользователей Unix в пользователи Samba”.
Ну вот и всё. Теперь можно создавать новые файловые ресурсы и админить существующие, используя удобный веб-интерфейс.
Напоследок.
Установку и настройку я производил попутно с написанием статьи, поэтому ошибок быть не может. Но если, всё-таки, ты нашёл недочет, то пиши в личку или на мыло. Поправлю.
Как видишь, нет абсолютно ничего сверхсложного. Первый раз я копался с настройкой 2 дня. Теперь мне хватает 30-ти минут на поднятие файлового сервера на Debian Linux. Качай свой скилл и сможешь делать всё это с закрытыми глазами. Удачи!
Written by: Роман Костенко aka Lord_of_fear
E-mail: kostenko.r.khv@gmail.com
Источник