пятница, 4 сентября 2015 г.

Файловый сервер на Linux в домене Windows (CentOS 6.7 + Samba + AD)

В данной заметке описывается процесс как подключить Linux-сервер (CentOS 6.7) к существующему Windows-домену под управлением Microsoft Windows 2008-R2 и сделать из него файловый сервер на базе Samba (Version 3.6.23-20.el6) c разграничением прав доступа доменных пользователей.


Условия, при которых выполнялись шаги, описанные в заметке:
  • В качестве аппаратной платформы используется виртуальная машина VMware (version 11) на гипервизоре VMware ESXi, 6.0.0, 2494585.
  • Контроллер домена на базе Microsoft Windows Server 2008 R2
    Домен: filial.work.corp (Краткое название домена WORK-FILIAL)
    Контроллер домена: dc301.filial.work.corp (IP 10.58.96.4)
  • Цель - получить файловый сервер с именем fserver1.filial.work.corp (IP 10.58.96.24)
  1. Устанавливаем CentOS-minimal. (Я устанавливал, имеющийся на тот момент, CentOS 6.5 (i386), обновленный впоследствии на втором шаге до версии 6.7)
    P.S. В веб-консоле VMware мышь не работает, все делаем с клавиатуры – перемещение между кнопками – «TAB», подтвердить выбор – «Пробел»)
    При установке были заданы следующие параметры:
    • Язык Русский
    • Раскладка клавиатура – Английская (США)
    • Стандартные накопители
    • Имя узла задаем полностью fserver1.filial.work.corp
    • Настраиваем сеть:
      IP:10.58.96.24
      Маска:255.255.255.0
      Шлюз: 10.58.96.1
      Серверы DNS: 10.58.96.4
      Домены поиска: FILIAL.WORK.CORP
      Ставим галку "Подключаться автоматически"
    • Часовой пояс должен быть Европа/Москва
    • Задаём пароль ROOT
    • Всё пространство
    • Сохранить изменения на диск
    • Установка пакетов
    • Перезагрузка
  2. Подключаемся к серверу по SSH (Я использовал PuTTY)
  3. Обновим все необходимы модули в системе на актуальные версии::
    yum update -y
  4. Перезагружаем сервер (команда reboot). После перезагрузки снова подключаемся по SSH.
  5. Для удобства установим MC
    yum install mc -y
  6. Если используется виртуальная машина, то ставим VmWare Tools, если нет – переходим к шагу 8.
    Подготовка к установке пакета VmWare Tools
  7. Устанавливаем VmWare Tools:
    yum install vmware-tools-esx-nox -y
    Проверяем, что VmWare tools установлен и запущен:
    initctl list | grep vmware-tools
    Вывод:vmware-tools start/running
    Чтобы узнать версию vmware-tools, выполните :
    vmware-toolbox-cmd -v
  8. Устанавливаем пакеты Samba:
    yum install samba samba-client samba-common –y
  9. Добавляем Samba в автозагрузку:
    chkconfig smb on
    chkconfig nmb on
  10. Отключаем SELinux.
    Редактируем файл /etc/selinux/config. Находим строку SELINUX, меняем значение с enforcing на disabled:
    SELINUX=disabled
  11. Чтобы ресурсы Samba были доступны по сети, необходимо добавить правила в iptables. Вводим по очереди следующие строки:
    iptables -I INPUT 4 -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
    iptables -I INPUT 5 -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
    iptables -I INPUT 6 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
    service iptables save
    service iptables restart
  12. В корне создаем каталог data (его мы и будем для начала расшаривать):
    mkdir /data
    chmod -R 0777 /data
  13. Предварительная настройка Samba:
    • Переместим файл /etc/samba/smb.conf в папку /home.
    • Создадим новый файл smb.conf
    • Внесём в него следующие строки:
      [global]
      workgroup = WORKGROUP
      security = share
      map to guest = bad user
      [data]
      path = /data
      browsable =yes
      writable = yes
      guest ok = yes
      read only = no
      
    • Проверим конфигурацию Samba командой testparm
      Должны получить следующее:
      Load smb config files from /etc/samba/smb.conf
      rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
      Processing section "[data]"
      WARNING: The security=share option is deprecated
      Loaded services file OK.
      Server role: ROLE_STANDALONE
      Press enter to see a dump of your service definitions
      
      На предупреждения о «security = share» и «rlimit_max» внимание не обращаем.
    • Перезапустим Samba
      service smb restart
      service nmb restart
    • Пробуем подключиться
  14. Для правильной работы в домене требуется настроить автоматическую синхронизацию времени с доменом:
    a) yum install ntp -y
    b) В файл /etc/ntp.conf добавляем информацию о сервере времени:
    server filial.work.corp
    (перед остальными серверами типа server X.servet.pool.ntp.org поставим знак "#")
    c) После чего перезапустим демон ntpd:
    service ntpd start
    d) Добавляем сервис в автозагрузку
    chkconfig ntpd on
    e) Проверяем как работает синхронизация командой:
    ntpq -p
    Должны увидеть примерно такое:
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *dc301.filial.wo 10.58.96.4       4 u  129  128  377    0.324   -3.265  10.328
    
  15. Устанавливаем пакет krb5-workstation и добавляем сервис winbind в автозагрузку:
    yum install krb5-workstation -y
    chkconfig winbind on
  16. Добавляем в начало файла /etc/hosts строку
    127.0.0.1 fserver1.filial.work.corp fserver1
  17. Устанавливаем лимит одновременно открытых файлов:
    В конец файла (перед #End of file) /etc/security/limits.conf вписываем строку
    * - nofile 16384
  18. Перезагружаем сервер (команда reboot). После перезагрузки снова подключаемся по SSH.
  19. Добавление Winbind в качестве источника пользователей и групп.
    В файле /etc/nsswitch.conf внесём следующие изменения (отмечены жирным):
    passwd:     compat winbind
    group:      compat winbind
    hosts:    files dns winbind
  20. Настройка Samba.
    Для работы в домене, необходимо прописать правильные настройки в файле /etc/samba/smb.conf.
    Ниже – рабочий пример части файла конфигурации (Обратите внимание на то, что название и короткое наименование домена вводятся ПРОПИСНЫМИ БУКВАМИ):
    workgroup = WORK-FILIAL
    realm = FILIAL.WORK.CORP
    security = ADS
    auth methods = winbind
    allow trusted domains = no
    domain master = no
    local master = no
    preferred master = no
    os level = 0
    domain logons = no
    
    # Отключаем принтеры
    load printers = no
    show add printer wizard = no
    printcap name = /dev/null
    disable spoolss = yes
    
    smb ports = 139
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    
    idmap config * : range = 10000-20000
    idmap config * : backend = tdb
    winbind enum groups = yes
    winbind enum users = yes
    winbind use default domain = yes
    #Автоматическое обновление билета Kerberos
    winbind refresh tickets = yes
    #Возможность авторизации доменных пользователей когда домен недоступен (включить после тестирования)
    #winbind offline logon = yes
    
  21. Проверим конфигурацию 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
    
  22. Введем сервер в домен. Для этого введите команду:
    net ads join -U administrator -D FILIAL.WORK.CORP,где administrator - пользователь домена с правами ввода компьютеров в домен, название домена вводятся ПРОПИСНЫМИ БУКВАМИ.
    И в случае успеха вы увидите что-то похожее на:
    Using short domain name – WORK-FILIAL
    Joined 'FSERVER1' to dns domain 'filial.work.corp'
    Так же можно набрать команду:
    net ads testjoin
    Если все хорошо, можно увидеть:
    Wbinfo Join is OK
  23. Перезагружаем сервер (команда reboot). После перезагрузки снова подключаемся по SSH.
  24. После перезагрузки проверим, что Winbind установил доверительные отношения с доменом командой:
    wbinfo -t
    Если всё нормально, то увидим:
    checking the trust secret for domain DCN via RPC calls succeededКроме того, можно посмотреть кол-во пользователей и групп, должно быть больше 0:
    wbinfo –u |wc –l
    wbinfo –g |wc –l
  25. В файл /etc/samba/smb.conf добавляем строки:
    [data]
    path = /data
    valid users = @WORK-FILIAL\Администраторы домена
    write list = WORK-FILIAL\MainAdmin
    read only = yes
    browseable = yes
    create mask = 0666
    directory mask = 0777
    Пояснения:
    valid users - пользователи и/или группы, которым разрешен доступ в каталог
    write list - пользователи и/или группы, которым разрешена запись в каталог
    В строках, где значение параметра начинается с @ означит, что это правило применяется не к одному пользователю, а к группе. Т.е. в примере доступ в каталог data разрешён только пользователям, входящим в группу "Администраторы домена", а вносить изменения (создавать, удалять, изменять данные) в каталоге может только пользователь "MainAdmin". Если нужно дать права нескольким пользователям или группам, то их нужно указать через запятую:
    write list = WORK-FILIAL\MainAdmin, WORK-FILIAL\backupAdmin
    create mask = 0666 - задаёт маску прав создаваемых пользователями файлов
    directory mask = 0777 - задаёт права на создание каталогов и подкаталогов
    У расшариваемого каталога, в нашем случае /data, у "прочих" пользователей должны быть права rwx.
    Чтобы установить требуемые права на паку (в нашем случае /data), можно воспользоваться командой:
    chmod 0777 /data
    
    
  26. После внесения изменений в настройки Samba, перезапустим службу
    service smb restart
  27. ...

При работе над заметкой были использованы следующие материалы:

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

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