Настройка файлового сервера Samba в корпоративной сети

от автора


Продолжая цикл статей про бюджетное резервное копирование данных в корпоративной сети, хочу предложить вашему вниманию, очередную статью по настройке файлового сервера Samba.
Для восстановления данных с сервера резервного копирования приходилось идти на сервер через веб-интерфейс и выкачивать оттуда необходимый архив с файлами, это удобно когда необходимая папка или файл не очень большая, но когда надо восстановить папку, объем которой превышает пару Гигабайт, например после крипто-вируса, это не так удобно. Для того чтобы нам получить прямой доступ к копиям данных мы и поднимем сервер Samba на нашем бекап сервере.

Так же Samba нам понадобится для настройки резервного копирования MS SQL и Exchange на этот сервер, но об этом в следующих статьях. А пока, настроим сам сервер(в качестве которого мы используем уже настроенный сервер резервного копирования из статьи в шапке, все тот же CentOS6):

  • Устанавливаем необходимые пакеты
    yum install samba samba-client ntp acl krb5-workstation -y 

  • Запускаем ntp клиент (время лучше всего получать с контроллера домена, чтобы оно сильно не расходилось с нашим сервером)
    chkconfig ntpd on service ntpd start 

  • Подправим файл /etc/hosts, чтобы он имел примерно такой вид:
    # cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 10.0.0.2 server-name.domain.local server-name 

    где 10.0.0.2 IP-адрес нашего бекап-сервера

  • Настроим kerberos для добавления сервера в домен
    cat /etc/krb5.conf

    [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log  [libdefaults] default_realm = DOMAIN.LOCAL ticket_lifetime = 24h forwardable = yes  [realms] DOMAIN.LOCAL = {    default_domain = domain.local    kdc = dc1.domain.local        #контроллер домена    admin_server = dc1.domain.local }  [domain_realm] domain.local = DOMAIN.LOCAL .domain.local = DOMAIN.LOCAL 

  • Конфигурируем Samba. Приводим файл /etc/samba/smb.conf к такому виду:
    cat /etc/samba/smb.conf

    [global]  load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes   workgroup = DOMAIN password server = dc1.domain.local netbios name = server-name server string = Samba Server Version %v security = ads realm = DOMAIN.LOCAL domain master = no local master = no preferred master = no socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 use sendfile = true  idmap config *:backend = tdb idmap config *:range = 11000-20000 idmap config DOMAIN:backend = rid idmap config DOMAIN:range = 100000-199000  template shell = /sbin/nologin  winbind enum users = yes winbind enum groups = yes winbind use default domain = no winbind nested groups = yes winbind refresh tickets = yes  client use spnego = yes client ntlmv2 auth = yes encrypt passwords = yes restrict anonymous = 2  log file = /var/log/samba/log.%m max log size = 50 #log level = 3  vfs objects = acl_xattr map acl inherit = Yes store dos attributes = Yes   [disk1$] comment = disk1 path = /media/disk1 public = yes writable = yes  

  • Настраиваем nsswitch, для того чтобы он мог использовать данные AD с помощью winbind-сервиса
    # cat /etc/nsswitch.conf ... passwd: files winbind shadow: files winbind group: files winbind ... 

  • Запускаем сервисы
    chkconfig smb on chkconfig winbind on chkconfig nmb on service smb start service nmb start service winbind start 

  • Теперь мы можем вводить наш сервер в домен
    # net ads join -U administrator administrator's password: Using short domain name -- DOMAIN Joined 'SERVER-NAME' to realm 'DOMAIN.LOCAL' 

    Если все прошло удачно, то перезапускаем сервис winbind и проверяем подключение к домену

    #service winbind restart  # wbinfo -t checking the trust secret for domain DOMAIN via RPC calls succeeded 

  • Чтобы мы могли работать с правами из Windows нам необходимо перемонтировать нашу файловую систему с поддержкой ACL
    для этого идем в /etc/fstab и добавляем опцию acl для нашего диска
    # cat /etc/fstab ...  /dev/VolGroup00/LogVol00 /media/disk1 ext4 defaults,acl 1 2 ... 

    перемонтируем раздел и раздаем диску права на корень, после чего мы сможем управлять правами папок прямо из Windows

    # mount -o remount /media/disk1 # setfacl -m g:"DOMAIN\domain admins":rwx /media/disk1 # setfacl -d -m g:"DOMAIN\domain admins":rwx /media/disk1 

  • ну и конечно же не забываем про iptables
    cat /etc/sysconfig/iptables

    # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT # правило для urbackup -A INPUT -m state --state NEW -m tcp -p tcp --dport 55414 -j ACCEPT #правила для samba -A INPUT -s 10.0.0.0/8 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT -A INPUT -s 10.0.0.0/8 -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT -A INPUT -s 10.0.0.0/8 -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT -A INPUT -s 10.0.0.0/8 -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT -A INPUT -s 10.0.0.0/8 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT 

    # service iptables restart 

Готово. Теперь мы можем работать с нашими резервными копиями из любимого файл-менеджера в Windows.

ссылка на оригинал статьи http://habrahabr.ru/post/262581/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *