Yvision.kzYvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
0
05:07, 04 июня 2013

Установка Samba 4 на CentOS 6.7 x32

Blog post image

В данной короткой записке написано, как установить Samba 4 на операционную систему CentOS 6.7 x32. Этот пакет поможет организовать аналог доменного контроллера Windows 2003 на Linux системе.

Из записки вы узнаете, как настроить первичный контроллер домена PDC (primary domain controller). Плюс будет описано как сделать вторичный доменный контроллер BDC (Backup domain controler).

Samba 4 как доменный контроллер

 

Краткое содержание:

1. Настройка сетевого адаптера и имения хоста (сервера)

2. Отключаем SELINUX и iptables

3. Уставка зависимостей

4. Загрузка и установка Samba 4 из исходников

5. Создание нового домена

6. Настройка DNS

7. Настройка Kerberos

8. Установка и настройка NTP

9. Выставляем права на каталоги Samba

10. Редактируем скрипты запуска Samba и NTP

 

Исходные данные:

Домен -                   company.ru

Имя хост машины - company-pdc

ip-адрес сервера - 192.168.0.10

1. Настройка сетевого адаптера и имени хоста сервера

# vi /etc/sysconfig/ifcfg-eth0

DEVICE=eth0

HWADDR=08:00:27:04:5A:BD

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.0.10                   # IP-адрес контроллера домена

NETMASK=255.255.255.0

GATEWAY=192.168.0.1                  # адрес роутера - выход в Интернет

DNS1=8.8.8.8                               # Google public DNS

# vi /etc/sysconfig/network

hostname=company-pdc

# service network restart

 

2. Отключаем SELINUX и iptables

 

# vi /etc/selinux/config

selinux=disabled

# setenforce 0

# chkconfig iptables off

# service iptables stop

 

3. Уставка зависимостей

 

# yum install gcc make wget python-devel gnutls-devel openssl-devel libacl-devel krb5-server krb5-libs krb5-workstation bind bind-libs bind-utils perl openldap-devel -y

 

4. Загрузка и установка Samba 4 из исходников

 

# wget http://ftp.samba.org/pub/samba/samba-4.3.0.tar.gz

# tar -xzvf samba-4.3.0.tar.gz

# cd samba-4.3.0/

# ./configure --enable-selftest

# make && make install

 

5. Создание нового домена

 

# /usr/local/samba/bin/samba-tool domain provision --realm=company.ru --domain=COMPANY --adminpass 'MyPassword123' --server-role=dc --dns-backend=BIND9_DLZ

 

6. Настройка DNS

 

# rndc-confgen -a -r /dev/urandom

# vi /etc/named.conf

options {

listen-on port 53 { any; };

forwarders {8.8.4.4; }; # Google public DNS server

allow-query { any; };

tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";

};

include "/usr/local/samba/private/named.conf";

# vi /etc/resolv.conf

nameserver 127.0.0.1

domain company.ru

# vi /etc/sysconfig/ifcfg-eth0

DEVICE=eth0

HWADDR=08:00:27:04:5A:BD

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.0.10      # IP-адрес контроллера домена

NETMASK=255.255.255.0

GATEWAY=192.168.0.1     # адрес роутера - выход в Интернет

#DNS1=8.8.8.8  # Удаляем Google public DNS, теперь он прописан в /etc/named.conf

# service network restart

# service named restart

 

7. Настройка Kerberos

 

# vi /etc/krb5.conf

[libdefaults]

default_realm = COMPANY.RU

dns_lookup_realm = false

dns_lookup_kdc = true

 

8. Установка и настройка NTP

 

# wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p5.tar.gz

# tar -xzvf ntp-4.2.6p5.tar.gz

# cd ntp-4.2.6p5

# ./configure --enable-ntp-signd

# make && make install

 

Настройка NTP

# vi /etc/ntp.conf

server 127.127.1.0

fudge 127.127.1.0 stratum 10

server 0.pool.ntp.org iburst prefer

server 1.pool.ntp.org iburst prefer

driftfile /var/lib/ntp/ntp.drift

logfile /var/log/ntp

ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/

restrict default kod nomodify notrap nopeer mssntp

restrict 127.0.0.1

restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery

restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery

 

9. Выставляем права на каталоги Samba

 

# chown named:named /usr/local/samba/private/dns

# chown named:named /usr/local/samba/private/dns.keytab

# chmod 775 /usr/local/samba/private/dns

 

10. Редактируем скрипты запуска Samba и NTP

 

# vi /etc/init.d/samba4

#! /bin/bash

#

# samba4 Bring up/down samba4 service

#

# chkconfig: - 90 10

# description: Activates/Deactivates all samba4 interfaces configured to

# start at boot time.

#

### BEGIN INIT INFO

# Provides:

# Should-Start:

# Short-Description: Bring up/down samba4

# Description: Bring up/down samba4

### END INIT INFO

# Source function library.

. /etc/init.d/functions

if [ -f /etc/sysconfig/samba4 ]; then

. /etc/sysconfig/samba4

fi

CWD=$(pwd)

prog="samba4"

start() {

# Attach irda device

echo -n $"Starting $prog: "

/usr/local/samba/sbin/samba

sleep 2

if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then success $"samba4 startup"; else failure $"samba4 startup"; fi

echo

}

stop() {

# Stop service.

echo -n $"Shutting down $prog: "

killall samba

sleep 2

if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then failure $"samba4 shutdown"; else success $"samba4 shutdown"; fi

echo

}

status() {

/usr/local/samba/sbin/samba --show-build

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status irattach

;;

restart|reload)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

esac

exit 0

 

 

# chmod 755 /etc/init.d/samba4

# vi /etc/init.d/ntp

#! /bin/bash

#

# ntp Bring up/down ntp service

#

#chkconfig: - 99 30

#description: Bring up/down ntp

#

### BEGIN INIT INFO

# Provides:

# Should-Start:

# Short-Description: Bring up/down ntp

# Description: Bring up/down ntp

### END INIT INFO

# Source function library.

. /etc/init.d/functions

CWD=$(pwd)

NTPD=/usr/local/bin/ntpd

prog="ntp"

start() {

# Attach irda device

echo -n $"Starting $prog: "

$NTPD -p /var/run/ntpd.pid

sleep 2

if ps ax | grep -v "grep" | grep -q $NTPD ; then success $"ntp startup"; else failure $"ntp startup"; fi

echo

}

stop() {

# Stop service.

echo -n $"Shutting down $prog: "

kill -9 `cat /var/run/ntpd.pid` > /dev/null 2>&1

sleep 2

if ps ax | grep -v "grep" | grep -q $NTPD ; then failure $"ntp shutdown"; else success $"ntp shutdown"; fi

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

restart|reload)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart}"

exit 1

esac

exit 0

 

 

Стартуем демон Samba, ntp и named:

# chmod 755 /etc/init.d/ntp

# /etc/init.d/named start

# /etc/init.d/ntp start

# /etc/init.d/samba4 start

 

Ставим автозагрузку службы Samba, ntp и named:

# chkconfig --levels 235 samba4 on

# chkconfig --levels 235 ntp on

# chkconfig --levels 235 named on

 

Проверка ответственных демонов:

# service samba4 status

# service ntp status

# service named status

 

Samba 4 как резервный доменный контроллер

 

Здесь все тоже самое что и выше.

 

Краткое содержание:

1. Настройка сетевого адаптера и имения хоста (сервера)

2. Отключаем SELINUX и iptables

3. Уставка зависимостей

4. Загрузка и установка Samba 4 из исходников

5. Создание нового домена

6. Настройка DNS

7. Настройка Kerberos

8. Установка и настройка NTP

9. Выставляем права на каталоги Samba

10. Редактируем скрипты запуска Samba и NTP

 

Исходные данные:

Доменная зона  - company.ru

Главный доменный контроллер  -                 pdc.company.ru

Резервный доменный контроллер  -                 bdc.company.ru

ip-адрес главного контролера - 192.168.0.10

ip-адрес резервного контроллера -192.168.0.11

 

В моем случае главный контроллер на Windows 2003, вторичный на CentOS 6.

 

1. Настройка сетевого адаптера и имени хоста (сервера)

 

# vi /etc/sysconfig/ifcfg-eth0

DEVICE=eth0

HWADDR=08:00:27:04:5A:BD

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.0.11                   # IP-адрес резервного контроллера домена

NETMASK=255.255.255.0

GATEWAY=192.168.0.1                  # выход в Интернет

# vi /etc/sysconfig/network

hostname=bdc

 

2. Отключаем SELINUX и iptables

 

# vi /etc/selinux/config

selinux=disabled

# setenforce 0

# chkconfig iptables off

# service iptables stop

 

3. Уставка зависимостей

 

# yum install gcc make wget python-devel gnutls-devel openssl-devel libacl-devel krb5-server krb5-libs krb5-workstation bind bind-libs bind-utils perl openldap-devel -y

 

4. Настройка DNS

 

# vi /etc/resolv.conf

nameserver 192.168.0.11

nameserver 192.168.0.10

domain company.ru

# vi /etc/named.conf

Удалить include "/usr/local/samba/private/named.conf";

 

5. Загрузка и установка Samba 4 из исходников

 

# wget http://ftp.samba.org/pub/samba/samba-4.0.6.tar.gz

# tar -xzvf samba-4.0.6.tar.gz

# cd samba-4.0.6/

# ./configure --enable-selftest

# make && make install

 

6. Установка и настройка NTP

 

# wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p5.tar.gz

# tar -xzvf ntp-4.2.6p5.tar.gz

# cd ntp-4.2.6p5

# ./configure --enable-ntp-signd

# make && make install

 

Настройка NTP

 

# vi /etc/ntp.conf

server 127.127.1.0

fudge 127.127.1.0 stratum 10

server 0.pool.ntp.org iburst prefer

server 1.pool.ntp.org iburst prefer

driftfile /var/lib/ntp/ntp.drift

logfile /var/log/ntp

ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/

restrict default kod nomodify notrap nopeer mssntp

restrict 127.0.0.1

restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery

restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery

 

7. Выставляем права на каталоги Samba

 

# chown named:named /usr/local/samba/private/dns

# chown named:named /usr/local/samba/private/dns.keytab

# chmod 775 /usr/local/samba/private/dns

 

8. Редактируем скрипты запуска Samba и NTP

 

# vi /etc/init.d/samba4

#! /bin/bash

#

# samba4 Bring up/down samba4 service

#

# chkconfig: - 90 10

# description: Activates/Deactivates all samba4 interfaces configured to

# start at boot time.

#

### BEGIN INIT INFO

# Provides:

# Should-Start:

# Short-Description: Bring up/down samba4

# Description: Bring up/down samba4

### END INIT INFO

# Source function library.

. /etc/init.d/functions

if [ -f /etc/sysconfig/samba4 ]; then

. /etc/sysconfig/samba4

fi

CWD=$(pwd)

prog="samba4"

start() {

# Attach irda device

echo -n $"Starting $prog: "

/usr/local/samba/sbin/samba

sleep 2

if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then success $"samba4 startup"; else failure $"samba4 startup"; fi

echo

}

stop() {

# Stop service.

echo -n $"Shutting down $prog: "

killall samba

sleep 2

if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then failure $"samba4 shutdown"; else success $"samba4 shutdown"; fi

echo

}

status() {

/usr/local/samba/sbin/samba --show-build

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status irattach

;;

restart|reload)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

esac

exit 0

 

 

# chmod 755 /etc/init.d/samba4

# vi /etc/init.d/ntp

#! /bin/bash

#

# ntp Bring up/down ntp service

#

#chkconfig: - 99 30

#description: Bring up/down ntp

#

### BEGIN INIT INFO

# Provides:

# Should-Start:

# Short-Description: Bring up/down ntp

# Description: Bring up/down ntp

### END INIT INFO

# Source function library.

. /etc/init.d/functions

CWD=$(pwd)

NTPD=/usr/local/bin/ntpd

prog="ntp"

start() {

# Attach irda device

echo -n $"Starting $prog: "

$NTPD -p /var/run/ntpd.pid

sleep 2

if ps ax | grep -v "grep" | grep -q $NTPD ; then success $"ntp startup"; else failure $"ntp startup"; fi

echo

}

stop() {

# Stop service.

echo -n $"Shutting down $prog: "

kill -9 `cat /var/run/ntpd.pid` > /dev/null 2>&1

sleep 2

if ps ax | grep -v "grep" | grep -q $NTPD ; then failure $"ntp shutdown"; else success $"ntp shutdown"; fi

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

restart|reload)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart}"

exit 1

esac

exit 0

Запускаем Samba, ntp и named:

# chmod 755 /etc/init.d/ntp

# /etc/init.d/named start

# /etc/init.d/ntp start

# /etc/init.d/samba4 start

 

Ставим в автозагрузку нужные демоны:

# chkconfig --levels 235 samba4 on

# chkconfig --levels 235 ntp on

# chkconfig --levels 235 named on

 

9. Настройка Kerberos

 

# rm /usr/local/samba/etc/smb.conf

# vi /etc/krb5.conf

[libdefaults]

default_realm = COMPANY.RU

dns_lookup_realm = true

dns_lookup_kdc = true

 

Проверка соединения с главным контроллером:

# kinit Administrator

Password: *********

# klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: Administrator@COMPANY.RU

Valid starting     Expires            Service principal

06/09/13 02:13:41  06/09/13 12:13:45  krbtgt/COMPANY.RU@COMPANY.RU

renew until 06/16/13 02:13:41

# service samba4 restart

# service named restart

# Перезапускаем первый контроллер домена Windows AD или CentOS Samba4

 

10. Добавляем резервный контроллер BDC к существующему PDC

 

# cd /usr/local/samba/bin/

# ./samba-tool domain join company.ru DC -UAdministrator --realm=company.ru

# ./samba-tool domain join company.ru DC -UAdministrator --realm=company.ru --dns-backend=BIND9_DLZ

 

11. Проверка требуемых DNS записей нового хоста BDC

# vi /usr/local/samba/etc/smb.conf

Добавить DNS сервер первичного DC:

[global]

dns forwarder = 192.168.0.10

# host -t A bdc.company.ru.

Если нет записи, добавляем с помощью команды:

# ./usr/local/samba/sbin/samba-tool dns add 192.168.0.11 company.ru BDC A 192.168.0.11 -UAdministrator

# ./ldbsearch -H /usr/local/samba/private/sam.ldb '(invocationid=*)' --cross-ncs objectguid

# host -t CNAME 737506d0-bfe6-40c8-815d-08c3dff7a67f._msdcs.company.ru.

# ./samba-tool dns add 192.168.0.10 _msdcs.company.ru 737506d0-bfe6-40c8-815d-08c3dff7a67f CNAME BDC.company.ru -UAdministrator

 

12. Репликация

# ./samba-tool drs kcc -UAdministrator pdc.company.ru

Password for [COMPANY\Administrator]:

Consistency check on pdc.company.ru successful.

# ./samba-tool drs showrepl

 

13. Проверка

 

Для проверки создайте любую учетную запись на первичном контроллере, после отключите его.

Попытайтесь зайти в клиентский компьютер используя резервный контроллер домена, все должно работать!

ИСТОЧНИКИ:

http://opentodo.net/2013/01/samba4-as-ad-domain-controller-on-centos-6/

http://wiki.samba.org/index.php/Samba4/HOWTO/Join_a_domain_as_a_DC

http://alexwyn.com/computer-tips/centos-samba4-active-directory-domain-controller

 
0
2380
0