Настройка контролера домена на FreeBSD

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка контролера домена на FreeBSD

Сообщение RomA »

Контролер домена на samba4 показал сложную повторяемость и некорректную работу (отсутствие некоторых вещей, которые нам нужны) в связи с чем пока его не допилят использовать мы его не будем. Статья заморожена. Как настроить samba3 - следующая статья

В этой статье я расскажу о том, как настроить контролер домена на Юниксе, а заодно и попытаюсь ответить чем юниксовый контролер домена отличается от виндового, и как с этим жить. В качестве основы под контролер я выбрал samba4, которая не смотря на свою alpha11 всё же работает вполне стабильно. Итак, идём в /usr/ports/net/samba4-devel и начинаем устанавливать make install clean

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │               Options for samba4-devel 4.0.0.a11_1                 │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │    [ ] DEBUG    With debug info                                │ │  
                      │ │    [X] UTILS    Build userland utils(conflicts with Samba3)    │ │  
                      │ │    [X] THREADS  With pthreads                                  │ │  
                      │ │    [ ] GNUTLS   With SSL (via GnuTLS) for SWAT support         │ │  
                      │ │    [X] POPT     With system-wide POPT library                  │ │  
                      │ │    [ ] PCH      With precompiled headers                       │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

в процессе у меня самба спросила следующее

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                     Options for m4 1.4.15,1                        │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │     [ ] LIBSIGSEGV  Use libsigsegv for better diagnostics      │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

ответил... но дальше она ставить не захотела...

Код: Выделить всё

Writing Makefile for Locale::gettext
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command.  <==
false
*** Error code 1

Stop in /usr/ports/devel/p5-Locale-gettext/work/gettext-1.05.
*** Error code 1
а я не захотел разбираться и сделал

Код: Выделить всё

hotel# fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/p5-Locale-gettext-1.05_3.tbz
p5-Locale-gettext-1.05_3.tbz                  100% of   14 kB   21 kBps
hotel# pkg_add p5-Locale-gettext-1.05_3.tbz
после чего продолжил сборку самбы, продолжая отвечать на вопросы

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                 Options for cyrus-sasl 2.1.23_3                    │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │   [ ] BDB           Use Berkeley DB                            │ │  
                      │ │   [X] MYSQL         Use MySQL                                  │ │  
                      │ │   [ ] PGSQL         Use PostgreSQL                             │ │  
                      │ │   [ ] SQLITE        Use SQLite                                 │ │  
                      │ │   [ ] DEV_URANDOM   Use /dev/urandom                           │ │  
                      │ │   [ ] ALWAYSTRUE    Enable the alwaystrue password verifier    │ │  
                      │ │   [ ] KEEP_DB_OPEN  Keep handle to Berkeley DB open            │ │  
                      │ │   [X] AUTHDAEMOND   Enable use of authdaemon                   │ │  
                      │ │   [X] LOGIN         Enable LOGIN authentication                │ │  
                      │ │   [X] PLAIN         Enable PLAIN authentication                │ │  
                      │ │   [ ] CRAM          Enable CRAM-MD5 authentication             │ │  
                      │ │   [ ] DIGEST        Enable DIGEST-MD5 authentication           │ │  
                      │ │   [ ] OTP           Enable OTP authentication                  │ │  
                      │ │   [X] NTLM          Enable NTLM authentication                 │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  
Дальше у меня всё поставилось без проблем.
разрешаем автозапуск - добавляем в /etc/rc.conf следующее samba4_enable="YES" Но запускать ещё рано. Сначало создадим группу

Код: Выделить всё

hotel#  
hotel# pw groupadd -n users -g 2001 -M roman
hotel#
после чего попробуем создать конфиг самы

Код: Выделить всё

hotel# /usr/local/sbin/provision 
Realm: hotel.stniva.ru
 Domain [hotel]: HOTEL
 Server Role (dc, member, standalone) [dc]: 
Administrator password: 
 Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=hotel,DC=stniva,DC=ru
pdc_fsmo_init: no domain object present: (skip loading of domain details)

Adding configuration container
naming_fsmo_init: no partitions dn present: (skip loading of naming contexts details)

Setting up sam.ldb schema
Reopening sam.ldb with new schema
naming_fsmo_init: no partitions dn present: (skip loading of naming contexts details)

Setting up sam.ldb configuration data
Setting up display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up sam.ldb users and groups
Setting up self join
Setting up sam.ldb rootDSE marking as synchronized
See /var/db/samba4/private/named.conf for an example configuration include file for BIND
and /var/db/samba4/private/named.txt for further documentation required for secure DNS updates
A Kerberos configuration suitable for Samba 4 has been generated at /var/db/samba4/private/krb5.conf
Please install the phpLDAPadmin configuration located at /var/db/samba4/private/phpldapadmin-config.php into /etc/phpldapadmin/config.php
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           domain controller
Hostname:              hotel
NetBIOS Domain:        HOTEL
DNS Domain:            hotel.stniva.ru
DOMAIN SID:            S-1-5-21-2001272745-725605068-3228053258
Admin password:        123123123

hotel#  

Думаю тут итак всё понятно и никаких пояснений не нужно - мы создали домен HOTEL, о чем система нас и предупредила... но ещё она сказала что подготовила конфиги... их настройкой мы и займемся
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Контролер домена на samba3

Сообщение RomA »

Создадим контролер домена. За основу берем http://www.lissyara.su/articles/freebsd ... ddns+dhcp/ и приступаем (туда только для справки смотреть - делать как написано тут!)

Код: Выделить всё

cd /usr/ports/net/openldap23-server/
make install clean
Отвечаем на вопросы

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                Options for openldap-server 2.3.43                  │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │ [ ] SASL              With (Cyrus) SASL2 support               │ │  
                      │ │ [ ] PERL              With Perl backend                        │ │  
                      │ │ [ ] SHELL             With Shell backend (disables threading)  │ │  
                      │ │ [ ] ODBC              With SQL backend                         │ │  
                      │ │ [ ] SLP               With SLPv2 (RFC 2608) support            │ │  
                      │ │ [ ] SLAPI             With Netscape SLAPI plugin API           │ │  
                      │ │ [X] TCP_WRAPPERS      With tcp wrapper support                 │ │  
                      │ │ [X] BDB               With BerkeleyDB support                  │ │  
                      │ │ [ ] ACCESSLOG         With In-Directory Access Logging overlay │ │  
                      │ │ [ ] AUDITLOG          With Audit Logging overlay               │ │  
                      │ │ [ ] DENYOP            With Deny Operation overlay              │ │  
                      │ │ [ ] DYNGROUP          With Dynamic Group overlay               │ │  
                      │ │ [ ] DYNLIST           With Dynamic List overlay                │ │  
                      │ │ [ ] LASTMOD           With Last Modification overlay           │ │  
                      │ │ [ ] PPOLICY           With Password Policy overlay             │ │  
                      ├─└─────v(+)───────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                Options for openldap-server 2.3.43                  │  
                      │ ┌─────^(-)───────────────────────────────────────────────────────┐ │  
                      │ │ [ ] DYNGROUP          With Dynamic Group overlay               │ │  
                      │ │ [ ] DYNLIST           With Dynamic List overlay                │ │  
                      │ │ [ ] LASTMOD           With Last Modification overlay           │ │  
                      │ │ [ ] PPOLICY           With Password Policy overlay             │ │  
                      │ │ [ ] PROXYCACHE        With Proxy Cache overlay                 │ │  
                      │ │ [ ] REFINT            With Referential Integrity overlay       │ │  
                      │ │ [ ] RETCODE           With Return Code testing overlay         │ │  
                      │ │ [ ] RWM               With Rewrite/Remap overlay               │ │  
                      │ │ [ ] SYNCPROV          With Syncrepl Provider overlay           │ │  
                      │ │ [ ] TRANSLUCENT       With Translucent Proxy overlay           │ │  
                      │ │ [ ] UNIQUE            With attribute Uniqueness overlay        │ │  
                      │ │ [ ] VALSORT           With Value Sorting overlay               │ │  
                      │ │ [ ] ACI               With per-object ACIs (experimental)      │ │  
                      │ │ [X] DYNAMIC_BACKENDS  Build dynamic backends                   │ │  
                      │ │ [X] SLURPD            Build slurpd replication daemon          │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  
                                                                                              
Теперь поставим ставиться самбу

Код: Выделить всё

cd /usr/ports/net/samba35
make install clean
Выбираем опции

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                   Options for samba35 3.5.6_1                      │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │  [X] LDAP         With LDAP support                            │ │  
                      │ │  [ ] ADS          With Active Directory support                │ │  
                      │ │  [X] CUPS         With CUPS printing support                   │ │  
                      │ │  [X] WINBIND      With WinBIND support                         │ │  
                      │ │  [ ] SWAT         With SWAT WebGUI                             │ │  
                      │ │  [ ] ACL_SUPPORT  With ACL support                             │ │  
                      │ │  [ ] AIO_SUPPORT  With Asyncronous IO support                  │ │  
                      │ │  [ ] FAM_SUPPORT  With File Alteration Monitor                 │ │  
                      │ │  [ ] SYSLOG       With Syslog support                          │ │  
                      │ │  [X] QUOTAS       With Disk quota support                      │ │  
                      │ │  [X] UTMP         With UTMP accounting support                 │ │  
                      │ │  [ ] PAM_SMBPASS  With PAM authentication vs passdb backends   │ │  
                      │ │  [ ] DNSUPDATE    With dynamic DNS update(require ADS)         │ │  
                      │ │  [ ] AVAHI        With Bonjour service discovery support       │ │  
                      │ │  [ ] EXP_MODULES  With experimental modules                    │ │  
                      ├─└──────v(+)──────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                   Options for samba35 3.5.6_1                      │  
                      │ ┌──────^(-)──────────────────────────────────────────────────────┐ │  
                      │ │  [ ] SWAT         With SWAT WebGUI                             │ │  
                      │ │  [ ] ACL_SUPPORT  With ACL support                             │ │  
                      │ │  [ ] AIO_SUPPORT  With Asyncronous IO support                  │ │  
                      │ │  [ ] FAM_SUPPORT  With File Alteration Monitor                 │ │  
                      │ │  [ ] SYSLOG       With Syslog support                          │ │  
                      │ │  [X] QUOTAS       With Disk quota support                      │ │  
                      │ │  [X] UTMP         With UTMP accounting support                 │ │  
                      │ │  [ ] PAM_SMBPASS  With PAM authentication vs passdb backends   │ │  
                      │ │  [ ] DNSUPDATE    With dynamic DNS update(require ADS)         │ │  
                      │ │  [ ] AVAHI        With Bonjour service discovery support       │ │  
                      │ │  [ ] EXP_MODULES  With experimental modules                    │ │  
                      │ │  [ ] POPT         With system-wide POPT library                │ │  
                      │ │  [ ] IPV6         With IPv6 support                            │ │  
                      │ │  [ ] MAX_DEBUG    With maximum debugging                       │ │  
                      │ │  [ ] SMBTORTURE   With smbtorture                              │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                  Options for cups-client 1.4.6                     │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │             [X] GNUTLS  Build with GNUTLS library              │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  


Самба долго ставится, так что пока заходим второй консолью и начинаем конфигурировать лдап - идём в файл /usr/local/etc/openldap/slapd.conf и правим его - я добавил следующее (тут только то, что я добавил - остальное как было в конфиге)

Код: Выделить всё

include><------>/usr/local/etc/openldap/schema/cosine.schema
include><------>/usr/local/etc/openldap/schema/inetorgperson.schema
include><------>/usr/local/etc/openldap/schema/misc.schema
include><------>/usr/local/etc/openldap/schema/nis.schema
include><------>/usr/local/etc/openldap/schema/openldap.schema
include><------>/usr/local/etc/openldap/schema/samba.schema

# Вот тут внимательно - спереди табуляция - сзади ничего лишнего - не знаю как сейчас, но раньше из-за лишних пробелов нефига не работало
access to attrs=userPassword
    by self write
    by anonymous auth
    by * none
access to *
    by self write
    by anonymous read
    by * none

# Тут вы конечно же подставляете свои данные. Если ваш домен 3-го уровня, то добавляете ещё один dc
suffix         "dc=stoilyanka,dc=ru"
rootdn        "cn=root,dc=stoilyanka,dc=ru"

rootpw      {SSHA}F1iNurGgP2QqQbWPI+hHkQeamTK4Op0/

index	cn		eq
Пароль рута я получил так

Код: Выделить всё

hotel# slappasswd
New password: 
Re-enter new password: 
{SSHA}F1iNurGgP2QqQbWPI+hHkQeamTK4Op0/
hotel#
Тем временем у меня собралась самба, что дало возможность скопировать недостающий файлик

Код: Выделить всё

hotel# cp /usr/local/share/examples/samba35/LDAP/samba.schema /usr/local/etc/openldap/schema/samba.schema
После чего можно приступить к дальнейшему конфигурированию домена.
Резрешаем запуск Ldap сервера - для этого в файл /etc/rc.conf дописываем (где 192.168.0.15 - это ИП адрем моего домена)

Код: Выделить всё

slapd_enable="YES"
slapd_flags="-h 'ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://192.168.0.15/ ldap://127.0.0.1/'"
slapd_sockets="/var/run/openldap/ldapi"
Запустим и проверим как он полетел

Код: Выделить всё

hotel# /usr/local/etc/rc.d/slapd start
Starting slapd.

hotel# ps -ax | grep slap
92053  ??  Ss     0:00.02 /usr/local/libexec/slapd -h ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://192.168.0.1
hotel# 
Всё получилось. Двинемся дальше. Создадим структуру БД - для этого сначало подготовим файлик

Код: Выделить всё

hotel# mkdir /usr/local/etc/openldap/diff
hotel# cd /usr/local/etc/openldap/diff
hotel# touch main.ldif
а затем пропишем в него

Код: Выделить всё

dn: dc=stoilyanka,dc=ru
objectClass: dcObject
objectClass: organization
objectClass: top
dc: stoilyanka
o: stoilyanka

dn: ou=users,dc=stoilyanka,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: users

dn: ou=groups,dc=stoilyanka,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: groups

dn: ou=computers,dc=stoilyanka,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: computers

Внимательно прочтите этот файл - слово stoilyanka вы должны заменить на своё название домена - оно меняется 3 раза!!!
добавляем структуру в БД (где 123123123 - это пароль который мы генерировали выше для записи в файл slapd.conf)

Код: Выделить всё

hotel# ldapadd -x -D "cn=root,dc=stoilyanka,dc=ru" -w 123123123 -f main.ldif
adding new entry "dc=stoilyanka,dc=ru"
adding new entry "ou=users,dc=stoilyanka,dc=ru"
adding new entry "ou=groups,dc=stoilyanka,dc=ru"
adding new entry "ou=computers,dc=stoilyanka,dc=ru"
hotel# 
У нас всё добавилось. Радует.
Пошли дальше. заранее создадим нужные нам директории, которые нам понадобятся и будут потом прописаны в файле smb.conf

Код: Выделить всё

mkdir /usr/home/samba
mkdir /usr/home/samba/homes
mkdir /usr/home/samba/netlogon
mkdir /usr/home/samba/profiles

Код: Выделить всё

hotel# cd /usr/ports/net/nss_ldap/
hotel# make install clean
он спросит, а вы ответите

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                   Options for nss_ldap 1.265_4                     │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │ [X] LCLASS  Enable login classes via the loginClass attribute  │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  
берем образец

Код: Выделить всё

hotel# cp /usr/local/etc/nss_ldap.conf.sample nss_ldap.conf
и меняем параметры - тут написано только то, что трогал

Код: Выделить всё

host 127.0.0.1
uri ldap://127.0.0.1/
ldap_version 3
port 389
bind_timelimit 30
nss_connect_policy persist
idle_timelimit 3600
nss_paged_results yes
pagesize 1000
nss_base_passwd          ou=users,dc=stoilyanka,dc=ru?one
nss_base_group            ou=groups,dc=stoilyanka,dc=ru?one
nss_base_passwd          ou=computers,dc=stoilyanka,dc=ru?one
nss_base_shadow         ou=users,dc=stoilyanka,dc=ru?one
дальше пойдем в /etc/nsswitch.conf и приведем его к такому виду

Код: Выделить всё

group: files ldap
hosts: files dns
networks: files
passwd: files ldap
shadow: files ldap
shells: files
Теперь надо поставить скриптики управления

Код: Выделить всё

hotel# cd /usr/ports/net/ldapscripts/
hotel# make install clean
и редактируем /usr/local/etc/ldapscripts/ldapscripts.conf (тут только то, что я правил!!!!)

Код: Выделить всё

SERVER="ldap://localhost"

SUFFIX="dc=stoilyanka,dc=ru" # Global suffix
GSUFFIX="ou=groups"        # Groups ou (just under $SUFFIX)
USUFFIX="ou=users"         # Users ou (just under $SUFFIX)
MSUFFIX="ou=computers"      # Machines ou (just under $SUFFIX)

BINDDN="cn=root,dc=stoilyanka,dc=ru"
BINDPWD="123123123"

USHELL="/usr/sbin/nologin"
UHOMES="/usr/home/samba/homes/%u"     # You may use %u for username here
CREATEHOMES="yes"      # Create home directories and set rights ?

PASSWORDGEN="head -c8 /dev/random | uuencode -m - | sed -n -e '2s|=*$||;2p' | sed -e 's|+||g' -e 's|/||g'"

RECORDPASSWORDS="yes"

ICONVBIN="/usr/local/bin/iconv"
ICONVCHAR="CP1251"
теперь пробуем дабавлять

Код: Выделить всё

hotel# rehash
hotel# ldapaddgroup admins
You must set ICONVCHAR before running these scripts
hotel# ldapaddgroup admins
Warning : using command-line passwords, ldapscripts may not be safe
Successfully added group admins to LDAP
hotel# ldapaddgroup users
Warning : using command-line passwords, ldapscripts may not be safe
Successfully added group users to LDAP
hotel# ldapaddgroup computers
Warning : using command-line passwords, ldapscripts may not be safe
Successfully added group computers to LDAP
hotel# ldapadduser admin admins
Warning : using command-line passwords, ldapscripts may not be safe
Successfully added user admin to LDAP
Successfully set password for user admin
Successfully created home directory for user admin
hotel# 
Нас предупредили что мы ослы, но всё работает. Мы добавили первого пользователя и самое время проверить как система видит этого пользователя

Код: Выделить всё

hotel# id admin
uid=10001(admin) gid=10001(admins) groups=10001(admins)
hotel#  
Система видит нашего пользователя, значит пока всё делается верно. продолжаем в том же духе

Теперь конфигурируем самбу - тут я удаляю всё и пишу своё - привожу ПОЛНЫЙ конфиг

Код: Выделить всё

# это для того что бы самба понимала символические ссылки. По преданию должно быть в самом верху
unix extensions = no
wide links = yes
follow symlinks = yes

# имя домена
workgroup = stoilyanka

# типа коментарий самба сервера
server string = hotel.stoilyanka.ru

#имя компа с самбой в сетевом окружении
netbios name = SERVER
enable privileges = yes

security = user

load printers = no
log file = /var/log/samba/log.%m
max log size = 50
acl compatibility = win2k

encrypt passwords = yes
admin users = admin
passdb backend = ldapsam:ldap://127.0.0.1/

ldap suffix = dc=stoilyanka,dc=ru
ldap user suffix = ou=users
ldap group suffix = ou=groups
ldap machine suffix = ou=computers
ldap admin dn = "cn=root,dc=stoilyanka,dc=ru"
ldap delete dn = no
ldap ssl = off
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind separator = @
winbind use default domain = yes

socket options = TCP_NODELAY
local master = yes
os level = 64
domain master = yes 
preferred master = yes
domain logons = yes

logon script = logon.bat
logon drive = X:
logon path =

client NTLMv2 auth = No

wins support = yes
dns proxy = yes

# перекодировка, что бы в файловой системе отображалось всё корректно
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866

# компы смогут синхронизировать своё время с samba
time server = yes

load printers = no

# скрипты для добавления юзеров и групп (юзается в usermgr от nt4)
add machine script = /usr/local/sbin/ldapaddmachine '%u' computers
add user script = /usr/local/sbin/ldapadduser '%u' users
add group script = /usr/local/sbin/ldapaddgroup '%g'
add user to group script = /usr/local/sbin/ldapaddusertogroup '%u' '%g'
delete user script = /usr/local/sbin/ldapdeleteuser '%u'
delete group script = /usr/local/sbin/ldapdeletegroup '%g'
delete user from group script = /usr/local/bin/ldapdeleteuserfromgroup '%u' '%g'
set primary group script = /usr/local/sbin/ldapsetprimarygroup '%u' '%g'
rename user script = /usr/local/sbin/ldaprenameuser '%uold' '%unew'

# делаем шару на хомяки
[homes]
comment = Home directories
browseable = No
writable = yes
public = no
valid users = %S
vfs object = recycle
directory mask = 0777
create mask = 0666
veto files = /*.mp3/*.wma/*.bmp/*.swa/*.vob/*.mp4/
recycle:repository = recycle/homes/.Корзина
recycle:keeptree = Yes
recycle:touch = Yes
recycle:version = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp|*.jpg|*.mp3|*.gif|*.tbi|*.temp|~$*|*.~??

# делаем шару на нетлогон (для запуска скриптов)
[netlogon]
comment = Network Logon Service
path = /usr/home/samba/netlogon
guest ok = yes
writable = no
share modes = no
browseable = no

# делаем шару на перемещаемые профили
[profiles]
create mask = 0600
directory mask = 0700
path = /usr/home/samba/profiles/%u
writeable = yes
browseable = no
locking = no

[public]
comment = Общий ресурс
path = /home/samba/public
valid users = @"Domain Admins", @"Domain Users"
browseable = yes
guest ok = yes
read only = no
directory mask = 0777
veto files = /*.mp3/*.wma/*.bmp/*.swa/*.vob/*.mp4/
create mask = 0666 

разрешаем автозапуск в файле /etc/rc.conf

Код: Выделить всё

samba_enable="YES"
winbindd_enable="YES"

Теперь расскажем самбе о нашем домене

Код: Выделить всё

hotel# smbpasswd -w 123123123
Setting stored password for "cn=root,dc=stoilyanka,dc=ru" in secrets.tdb
hotel# 
и добавляем первого пользователя

Код: Выделить всё

hotel# smbpasswd -a admin
New SMB password:
Retype new SMB password:
Added user admin.
hotel# 
Теперь группы

Код: Выделить всё

hotel# net groupmap add ntgroup="Domain Admins" unixgroup=admins rid=512 type=domain
Successfully added group Domain Admins to the mapping db as a domain group
hotel# net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=domain
adding entry for group Domain Users failed!
hotel# net groupmap add ntgroup="Domain Computers" unixgroup=computers rid=515 type=domain
Successfully added group Domain Computers to the mapping db as a domain group
hotel# net groupmap add ntgroup="Domain Computers" unixgroup=computers rid=515 
Как видите, у меня не добавилась группа users - судя по всему я где-то накосячил... У меня на машине оказалось 2 группы users - наверное наследие того, как я самбу4 собирал - тогда у вас такая ошибка не должна встретиться, но если встретилась - вот как я боролся.
Удалил одну группу

Код: Выделить всё

hotel# pw group del users
после чего добавил то что не добавилось

Код: Выделить всё

hotel# net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=domain
Successfully added group Domain Users to the mapping db as a domain group
Ну и на всякий случай давайте посмотрим что у нас получилось

Код: Выделить всё

hotel# net groupmap list
Domain Admins (S-1-5-21-140538057-3516990979-2561421677-512) -> admins
Domain Computers (S-1-5-21-140538057-3516990979-2561421677-515) -> computers
Domain Users (S-1-5-21-140538057-3516990979-2561421677-513) -> users
hotel# 
Вроде как всё правильно... пошли дальше

запустим самбу

Код: Выделить всё

/usr/local/etc/rc.d/samba start
и введём сервер на котором всё это настраиваем в домен

Код: Выделить всё

hotel# net rpc join -W STOILYANKA -S hotel -I 192.168.0.15 -U admin%123456
Joined domain STOILYANKA.
hotel# 
Итак, мы удачно ввели в домен первую машину.

Код: Выделить всё

hotel# net rpc join -W STOILYANKA -S hotel -I 192.168.0.15 -U admin%123456
Joined domain STOILYANKA.
hotel# 
У нас всё получилось. Компьютер вошёл в домен и первоначально всё отлично. Базисная настройка домена закончена.
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Ввод компьютера в домен

Сообщение RomA »

Немного теории, или зачем нужен домен:
1) все компьюторы, которые под управление домена имеют одинаковую учётку админа, что весьма приятно и полезно для ленивого админа
2) включенный в домен компьютер лучше работает и реже збоит. не тормозит при обращении к сетевым сервисам
3) появляется возможность автоматизировать многие процессы
Это в кратце, потому что дискутировать на эту тему можно много.

Теперь к практике - ввод Windows XP SP3 в домен.
Винда установленна и подключена к сети. Если какие-то проблемы, то попробуйте прописать в DNS и WINS ИП вашего домена. Приступим.
Пуск->Мой компьютер ->(правой кнопкой мышки)Свойства -> (вкладка)Имя компьютера -> (кнопка)Изменить ставим галочку "является членом домена", а рядом вводим имя домена.
1.jpg
1.jpg (70.57 КБ) 17707 просмотров
2.jpg
2.jpg (85.4 КБ) 17707 просмотров
3.jpg
3.jpg (81.58 КБ) 17707 просмотров
Компьютер просит перегрузиться, и мы его перезагружаем. Когда он загружается вновь он уже просит ввести Ctrl+Alt+Del - нажимаем и выбираем из появившегося списка наш домен
4.jpg
4.jpg (47.33 КБ) 17707 просмотров
5.jpg
5.jpg (48.41 КБ) 17707 просмотров
6.jpg
6.jpg (25.48 КБ) 17707 просмотров
Ну и проверяем что у нас получилось
7.jpg
7.jpg (78.26 КБ) 17707 просмотров
Ну и на последок не забываем сменить пароли на локальных пользователей, которые были до этого в компьютере, ибо с одной стороны пользователи смогут зайти в комп, а с другой стороны вы забудете и когда выведите машину из домена - не сможете на нё войти. Потому отнеситесь к этой процедуре ответственно.
Для изменения пароля идём в Пуск->Мой компьютер ->(правой кнопкой мышки)Управление -> (левая колоночка)Локальные пользователи -> Пользователи -> В правой колонку выбираем пользователя и либо меняем пароль на всех активных, либо блокируем всех, кроме одного и на него и меняем пароль
8.jpg
8.jpg (116.76 КБ) 17702 просмотра
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Управление доменом на samba3

Сообщение RomA »

У нас есть домен и теперь нам надо как-то им управлять. Для этого существует несколько способов, которые мы и рассмотрим

1) Управление при помощи утилиты (быстро, легко, но мало настроек)
Итак, когда домены были маленькие, а деревья большие, был доменчик на базе ОС NT4, и была у него утилитка для управления...
1.jpg
1.jpg (3.1 КБ) 17701 просмотр
Запускаем, осматриваемся, и пробуем создать нового пользователя
2.jpg
2.jpg (79.64 КБ) 17701 просмотр
Заполняем поля
3.jpg
3.jpg (77.14 КБ) 17701 просмотр
по умолчанию пользователь попадает в группу доменных пользователей, но сейчас я создаю пользователя, который бы мог управлять доменом - для этого я добавляю пользователя в группу админов
4.jpg
4.jpg (42.19 КБ) 17701 просмотр
На самом деле править пользователя можно и потом - все эти кнопки будут действовать, так что если вы ошиблись в момент добавления - ничего страшного. Всё что вам надо правильно написать - это логин пользоваетля, который, по корпоративным стандартам, должен содержать букву_имени+фамилия и иметь латинское начертание
Пошли дальше. Сохраняем и проверяем
5.jpg
5.jpg (72.5 КБ) 17701 просмотр
Давайте попробуем зайти на компьютер под этим пользователем
6.jpg
6.jpg (45.28 КБ) 17701 просмотр
Кога мы создавали пользователя то поставили галочку на пункте "изменить пароль при следующем входе в домен" - вот нам эта галочка и аукнулась
7.jpg
7.jpg (23.13 КБ) 17701 просмотр
попробуем отмазаться, изменив пароль на такой же
8.jpg
8.jpg (43.56 КБ) 17701 просмотр
не прокатило
9.jpg
9.jpg (33.4 КБ) 17701 просмотр
ну что же - впишем пароль отвечающий корпоративным стандартам
10.jpg
10.jpg (44.56 КБ) 17701 просмотр
Получилось
11.jpg
11.jpg (12.57 КБ) 17701 просмотр
Система загрузилась
12.jpg
12.jpg (67.01 КБ) 17701 просмотр
Итак, мы создали пользователя, и вошли под этим пользователем в систему. Можно работать

2) Управление через вебинтерфейс(надо подстроить под себя и будет очень удобно)
В предыдущем случае мы работали через самбу, но ведь в конечном итоге все данные хранятся в Ldap - следовательно их можно там править напрямую. Для этого существует специальный инструмент - LDAP Account Manager. Я не буду рассказывать как ставить вебсервер и прочее - это уже есть на форуме и мы подразумеваем что вебсервер и пхп у вас уже настроены.
Ставим

Код: Выделить всё

cd /usr/ports/sysutils/ldap-account-manager
make install clean
Он спрашивает

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                 Options for p5-Authen-SASL 2.15                    │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │             [X] KERBEROS  Enable Kerberos support              │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

После установки надо немного допилить конфиг - для этого идём в файл /usr/local/www/lam/config/lam.conf где правим следующее (тут приведены только те параметры, которые я тррогал)

Код: Выделить всё

admins: cn=admin,dc=stoilyanka,dc=ru
treesuffix: dc=stoilyanka,dc=ru
defaultLanguage: ru_RU.utf8:UTF-8:п═я.я.я.п╨п╦п╧ (п═п╬я.я.п╦я.)
types: suffix_user: ou=users,dc=stoilyanka,dc=ru
types: suffix_group: ou=groups,dc=stoilyanka,dc=ru
types: suffix_host: ou=computers,dc=stoilyanka,dc=ru
types: suffix_smbDomain: dc=stoilyanka,dc=ru
Ну это если трогать руками, но можно сконфигурировать и через вебинтерфейс, не забыв дать пользователю www права на перезапись файла ../config/lam.conf, например такой командой chown -R www:www lam
Дальше я приведу картинки как это сделать через вебинтерфейс - на них всё написано и думаю что комментарии тут только запутают. Переходим на нашу вебморду (у меня это http://192.168.0.15/lam/)
1.jpg
1.jpg (97.91 КБ) 17700 просмотров
2.jpg
2.jpg (77.13 КБ) 17700 просмотров
3.jpg
3.jpg (59.58 КБ) 17700 просмотров
4.jpg
4.jpg (101.68 КБ) 17700 просмотров
5.jpg
5.jpg (116.34 КБ) 17700 просмотров
6.jpg
6.jpg (125.02 КБ) 17700 просмотров
7.jpg
7.jpg (175.37 КБ) 17700 просмотров
8.jpg
8.jpg (96.94 КБ) 17700 просмотров
9.jpg
9.jpg (138.2 КБ) 17700 просмотров
Ну а теперь давайте заведём пользователя - покажу только самые минимальные настройки
1.jpg
1.jpg (94.57 КБ) 17699 просмотров
2.jpg
2.jpg (140.5 КБ) 17699 просмотров
3.jpg
3.jpg (106.72 КБ) 17699 просмотров
4.jpg
4.jpg (65.84 КБ) 17699 просмотров
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Организация дисков и файлов

Сообщение RomA »

У нас есть домен, и теперь нам надо извлеч из него выгоду. Первое что хочется - это позакрывать шары на компах и сделать цивильные хранилищя файлов. Для начала рассмотрим структуру того, что будем делать:
1) у каждого пользователя при входе в домен подключается диск X
1.1) всё место на диске Х - личное место пользователя - сюда он может писать всё что хочет
1.2) на диске есть предустоновленные папки - такие как:
1.2.1) Файлообменник - это папка в которую могут писать все пользователи без исключения. она есть у каждого. Особенность этой папки в автоматическом обнулении каждые сутки
1.2.2) Папка отдела - к ней имеет доступ ограниченный круг лиц - по велению начальника данного отдела
1.2.3) другие папки - например папка с документами, нормативными актами, бланками

Реализация:
За основу мы берём тот конфиг самбы, который был приведён выше. Таким образом у нас уже есть домашняя папка.
Рассмотрим реальный пример. у нас есть 2 пользователя (ltarakanova и nkaramysheva), которые находят в одном отделе - бухгалтерии. Мы ввели компьютеры в домен. пользователи работают под своими именами. Обеспечим им инфраструктуру:
Для начала создадим папку отдела

Код: Выделить всё

hotel# mkdir /usr/home/samba/otdel

hotel# mkdir /usr/home/samba/otdel/buh

hotel# chmod -R 777 /usr/home/samba/otdel
теперь подключим эту папку пользователям

Код: Выделить всё

cd /usr/home/samba/homes/ltarakanova
ln -s /usr/home/samba/otdel/buh buh
Таким образом у пользователя ltarakanova поздалась папочка buh - не очень красиво выглядит на английском, потому вы переименуйте папку русскими символами, я же для примера останусь на латинице. После переименования копируем этут папочту другому пользователю

Код: Выделить всё

cp -R /usr/home/samba/homes/ltarakanova/buh /usr/home/samba/homes/nkaramysheva
Итак, теперь оба пользователя смогут одновременно использовать эту папку для хранения документов своего отдела, которые должны быть видны всем сотрудникам отдела, но не должны быть видны другим работникам компании

Аналогично создадим и файлообменник

Код: Выделить всё

ln -s /usr/home/samba/public public 
При добавлении новых пользователей в домен я обычно копирую уже созданные алиасы от других пользователей, кто уже есть в этом отделе

Ну и пара картинок
1.jpg
1.jpg (104.02 КБ) 17673 просмотра
2.jpg
2.jpg (79.6 КБ) 17673 просмотра
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка файловой шары

Сообщение RomA »

Как говорится - мы в ответе за тех, кого приручили и еперь, когда у нас уже работает домен и мы можем управлять всеми пользователями, нам следует озаботиться сохранностью их данных. При входе в домен пользователям монтируется диск Х - это единственная шара, которая должна быть смонтирована у пользователя. Находится она на сервере ASUS под управлением FreeBSD и физически располагается на втором зеркале. Копия этого раздела делается не реже одного раза в неделю, а так же перед каждым серьёзным изменением конфигурации сервера.
Стректура диска Х выглядит так:
1) общая папка (симлинк)
2) папка отдела (симлинк)
3) папка портейбл-софта (симлинк)
4) всё остальное - личное место пользователя

Теперь немного практики.
второй дикс у меня примонтирован а папку /usr/home/samba

Код: Выделить всё

/dev/da1s1d              2031156 1515673  352990    81%    /usr/home/samba/
и имеет такую структуру

Код: Выделить всё

arhiv# ls /usr/home/samba/
docs     netlogon	otdely	homes	profiles    program	public	
где:
docs - папка с регламентами, бланками и так далее
netlogon - папка скрипта нетлогона
otdely - папка отделов
homes - папка домашних директорий пользователей
profiles - перемещаемые профили пользователей
program - папка портейбл-софта
public - общая папка
Теперь всё это добро надо показать пользователю. Как известно при входе в домен у пользователя появляется его личная папка - вот в неё мы и будем вставлять символические ссылки - команда не сложная ls -n откуда куда Хотя чаще всего уже есть готовые ярлики у представителей такого же отдела и новому сотруднику проще скопировать эти симлинки.
Скриншот как это видит пользователь показан в предыдущем посте, потому повторяться не буду. примечательным тут является то, что для нас на unix это просто символическая ссылка, а вот пользователь на windows видит это просто как папку, даже не догадываясь о её реальном расположении. Таким образом папки можно быстро менять, не трогая пользователя.
Итак, ещё раз всё то же самое:
1) К пользователю должна подключаться юниксовая шара, отображаемая как диск Х. ничего другого быть не должно
2) Именно на этом диске Х пользователь должен хранить все свои файлы. на компьютере их быть не должно
3) названия у всех на всех заводах должны быть единообразные, так
- диск называется - "X"
- общая папка - "ФайлоОбменник"
- папка отдела - "Отдел Бухгалтерия" (или название ващего отдела - обязательна приставка Отдел)
- папка с программами остаётся без изменения - она так и осталась program на английском
- папка с документами - "Руководящие Документы"
4) на юниксе всё эти оригинальные папки, а не ссылки должны быть английские и как можно короче. Так, например, мои папки отделов состоят из 3х букв
ABuhtiyarov
Сообщения: 3
Зарегистрирован: 18 окт 2011, 15:13

Re: Настройка контролера домена на FreeBSD

Сообщение ABuhtiyarov »

Для ввода в домен Samba ПК на Windows 7 требуется

Под администратором
добавить 2 строки в реестр:
HKLM\System\CCS\Services\LanmanWorkstation\Parameters

Код: Выделить всё

DWORD DomainCompatibilityMode = 1
DWORD DNSNameResolutionRequired = 0
Чтобы можно было входить с доменной учеткой меняем 3 параметра в Локальной политики безопасности:
Запускаем Пуск — Выполнить (win R) — gpedit.msc
Конфигурация Компьютера — Конфигурация Windows — Параметры безопасности — Локальные политики — Параметры безопасности:
- Сетевая безопасность: уровень проверки подлиности LAN Manager
Выбрать: Отправлять LM и NTLM - использовать сеансовую безопасность NTL...
- Сетевая безопасность: Минимальная сеансовая безапасность для клиетов на баще NTLM SSP
Выключить: Требовать 128-битное шифрование
- Сетевая безопасность: Минимальная сеансовая безапасность для серверов на баще NTLM SSP
Выключить: Требовать 128-битное шифрование

Для переноса локального профиля в доменный
1. Войти под новой учеткой
2. Выйти под новой учеткой
3. Войти под учеткой админа
4. Запустить программу User Profile Wizard 3.6
использовал программу http://www.forensit.com/downloads.html
меняется реест и пути, время на копирование не тратится
5. Перезагрузится

Данные перенесены в доменную учетку и доступны только с неё на этом ПК
Vitamin
Сообщения: 14
Зарегистрирован: 02 мар 2010, 13:50
Контактная информация:

Re: Настройка контролера домена на FreeBSD

Сообщение Vitamin »

ABuhtiyarov писал(а):Для ввода в домен Samba ПК на Windows 7 требуется

Под администратором
добавить 2 строки в реестр:
HKLM\System\CCS\Services\LanmanWorkstation\Parameters

Код: Выделить всё

DWORD DomainCompatibilityMode = 1
DWORD DNSNameResolutionRequired = 0
Чтобы можно было входить с доменной учеткой меняем 3 параметра в Локальной политики безопасности:
Запускаем Пуск — Выполнить (win R) — gpedit.msc
Конфигурация Компьютера — Конфигурация Windows — Параметры безопасности — Локальные политики — Параметры безопасности:
- Сетевая безопасность: уровень проверки подлиности LAN Manager
Выбрать: Отправлять LM и NTLM - использовать сеансовую безопасность NTL...
- Сетевая безопасность: Минимальная сеансовая безапасность для клиетов на баще NTLM SSP
Выключить: Требовать 128-битное шифрование
- Сетевая безопасность: Минимальная сеансовая безапасность для серверов на баще NTLM SSP
Выключить: Требовать 128-битное шифрование

Для переноса локального профиля в доменный
1. Войти под новой учеткой
2. Выйти под новой учеткой
3. Войти под учеткой админа
4. Запустить программу User Profile Wizard 3.6
использовал программу http://www.forensit.com/downloads.html
меняется реест и пути, время на копирование не тратится
5. Перезагрузится

Данные перенесены в доменную учетку и доступны только с неё на этом ПК
Две строки в реестре мало, кину файл reg для правки реестра.
Только если будете пользоваться свой домен туда вбейте, ну и естественно смените расширение.
Вложения
wsrv7.reg.txt
(758 байт) 886 скачиваний
Ответить