Контроллер домена на Linux. (Подробный HowTo), MDS, Ldap, Samba, Postfix, SQUID Печать
Автор: Administrator   
03.06.10 08:16

Контроллер домена на Linux. (Подробный HowTo), MDS, Ldap, Samba, Postfix, SQUID


Глава I – Настройка сервера и домена.

Добрый вечер. Хотелось бы поделиться с вами одним интересным моим проектом – Контроллер домена на Linux. В данной теме реализован подробный мануал (Howto) по настройке и внедрению рабочего домена с консолью управления – Mandriva Directory Server.

Последнее редактирование - 17.04.09


Немного истории:
Вообще я далеко не профи в *nix системах, но всё таки активно интересуюсь и изучаю их. По поводу домена на linux я слышал множество упрёков и похвал. И вот около года назад задался вопросом поднятия домена на Linux. Во первых просто интересно, а во вторых он абсолютно бесплатен, что и требовала компания где я работал. За год перебрал кучу вариантов, кучу сборок С подобной реализацией на сомнительных диструбутивах, поднял несчётное количество ПАКетов ldap SAmba. Но мне казалось что всё это не то. Либо безумно неудобное управление, либо куча лишнего. Куча лишнего было в готовых дистрибутивах (аля-домен за одну минуту.). Было боязно внедрять их в мою не большую и не маленькую компанию(Более 100 рабочих станций в одном только офисе). Во первых неизвестно что и как разработчики делали с дистрибутивом, во вторых поддержка на иностранном языке ))) А самому разгребать последствия не хочется.

Не так давно, наткнулся на статью Oliver Meyer. По сборке и настройке домена на Debian ИСПользуя консоль управления Mandriva Directory Server. Оказалось то что нужно. Ничего лишнего, простота управления доменом. Есть конечно свои минусы и багги.
Статья Оливера была отличной, но имела свои минусы (да и вообще она была на немецком). На основе этой статьи я начал писать свой проект.

Собственно мой проект - это перевод статьи Оливера (безумно спасибо ему!) + я добавил что то своё, поправил некоторые моменты из за которых могли возникнуть большие проблемы, и написал несколько дополнений (групповые политики для настройки рабочих сред пользователей, дополнительные модули для консоли и т.д.)
В итоге получилось . Довольно удачный проект который позволяет, даже мало знающему в Linux человеку, поднять рабочий стабильный PDC с удобной консолью управления, а так же в перспективе написания к этой консоли своих собственных модулей на уровне phyton ИЛИ PHP.

Автор проекта - HidX Максим.
Оригинал статьи Оливера - тут.
Смежная тема во флуде - тут.



Заранее прошу прощения за грамматические ошибки и возможный бред в тексте. Писал по ночам. Буду по возможности что то добавлять и исправлять.

Сам процесс

Итак. Для начала ставим сам Debian. У меня под рукой оказался debian-40r5 - я ставлю его. Стандартная установка. При установке выбрал Русский язык и вбил вручную настройки сети.
В ходе проделанной работы по этому мануалу мы получим:

• OpenLdap сервер.
• Samba сервер в качестве первичного контроллера домена (PDC), а так же файлсервера.
• DNS сервер (Bind).
• Корпоративный DHCP сервер.
• Административная консоль управления службами Mandriva Directory Server.
• Групповые политики для автоматической настройки рабочих станций на Windows (начиная c XP).!
• Корпоративный кэширующий прокси сервер (SQUID).
• Расширенный почтовый сервер Postfix, с поддержкой Imap и POP3 сервера (Dovecot), с проверкой на вирусы и фильтрации почты (Amavis, Spamassassin, ClamAV), SMTP сервером, с поддержкой квот, SSL и TSL.
• Сервер синхронизации времени.
• Сервер печати Cups.
• NFS сервер.
• MMC php плагины.


Планы на ближайшее время. Реализовать

• BDC – Дополнительный (резервный) контроллер домена.
• SQUID - Проверка на вирусы, аутентификация по группам домена, модуль статистики для MDS (на основе lightsquid) - УжЕ готово.



Установки сервера

Имя компьютера – pdc
Имя домена Samba – adsl.com
Хостнэйм сервера – pdc.adsl.com
Ip адрес сервера – 192.168.50.237
Ip адрес шлюза – 192.168.50.235
Мой админский пароль – example



1. Настройка Debian.

Предполагается что установка Debian прошла без сюрпризов и сервер полностью готов для настройки. Первоначально я буду пользоваться текстовым редактором vim, он в отличие от vi более удобен, но чуть позже, когда мы обновим репозитарии, я поставлю редактор ee т.к. он на мой взгляд самый удобный ( и вообще напоминает о freebsd rolleyes.gif ). Единственное, в Debian редактор ee немного глючит: может не правильно вставить скопированный текст. Так что лучше проверять конфиги после переноса.. или продолжать пользоваться редактором vim.
Для начала проверим сетевые настройки. А именно файлы hosts, hostname, interfaces, resolv.conf

vim /etc/hosts
Код
127.0.0.1       localhost
192.168.50.237  pdc.adsl.com     pdc

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts


vim /etc/hostname
Код
pdc.adsl.com


vim /etc/network/interfaces
Код
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.50.237
netmask 255.255.255.0
network 192.168.50.0
broadcast 192.168.50.255
gateway 192.168.50.235
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 192.168.50.231
# dns-search adsl.com


vim /etc/resolv.conf
Код
#my lan DNS
nameserver 192.168.50.231


Что бы не было конфликтов при установке пакетов, идём в ребут.

reboot

После перезагрузки проверяем что бы хост нэйм был правильным.

hostname
Код
pdc.adsl.com


Сеть настроили, теперь приступим за обновления репозитариев для Debian. Собственно настройка производится путём редактирования файла /etc/apt/sources.list. В нём нужно вписать путь к серверу с пакетами.

vim /etc/apt/sources.list

По умолчанию там стоит ссылка на пакеты с CD диска установки Debian и ссылка на сервера с обновлениями безопасности для Debian.
Т.к. у меня установочный диск с Debian не постоянно в Cd-Rom приводе, комментируем эту строку, путём добавления вперёд значка # (удалять не буду, малоли пригодится.)
Далее добавляем ниже ссылки на стандартные сервера с пакетами Dibian. Оттуда будут устанавливаться стандартное программное обеспечение:

# Стандартные репозитарии для Debian
deb http://ftp2.de.debian.org/debian/ etch main
deb-src http://ftp2.de.debian.org/debian/ etch main

Ещё ниже добавляем ссылку на сервер Mandriva Directory Server. Оттуда будет ставиться сама главная консоль управления доменом и службами:

# Mandriva Directory Server
deb http://mds.mandriva.org/pub/mds/debian etch main

Ниже добавляем ссылку на сервер с которого будет ставиться такие пакеты как ClamAV & Spamassassin. Ну и + обновления для них от туда же будет подтягиваться:

# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

Ниже добавляем ссылку на сервер бэкпорт с которого будет ставиться самый свежий пакет Devecot:

# Debian Etch Backports
deb http://www.backports.org/debian etch-backports main

Сохраняем и выходим из редактирования файла.

В итоге у меня получился вот такой файл репозитариев /etc/apt/sources.list

Код
# deb cdrom:[Debian GNU/Linux 4.0 r5 _Etch_ - Official i386 DVD Binary-1 20081023-23:00]/ etch contrib main

#deb cdrom:[Debian GNU/Linux 4.0 r5 _Etch_ - Official i386 DVD Binary-1 20081023-23:00]/ etch contrib main

deb http://ftp2.de.debian.org/debian/ etch main
deb-src http://ftp2.de.debian.org/debian/ etch main

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

deb http://mds.mandriva.org/pub/mds/debian etch main
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

deb http://www.backports.org/debian etch-backports main


Обновляем репозитарии командой:

apt-get update

В конце обновления, система может написать ошибку. Что то вроде этого:
Цитата
Чтение списков пакетов... Готово
W: GPG error: http://www.backports.org etch-backports Release: Следующие подписи не могут быть проверены, так как недоступен общий ключ: NO_PUBKEY EA8E8B2116BA136C
W: Вы можете запустить 'apt-get update' для исправления этих ошибок


Предлагаю не обращать внимания на это, пакеты всё равно будут устанавливаться с проблемных серверов.

Далее настраиваем поддержку ACL, это необходимо для шар самбы, что бы корректно сохранялись права виндовых машин, что бы эти права наследовались, что бы профиль пользователя Windows перемещался корректно ну и т.д.

vim /etc/fstab

В этом файле добавляем опцию ”acl” между опциями defaults,acl,errors=remount-ro, в раздел где будут храниться шары самбы сервера. В моём случае это раздел ”/”.

Код
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    defaults,acl,errors=remount-ro 0       1
/dev/sda5       none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0


Далее нужно перемонтировать этот раздел:

mount -o remount /

Проверяем:
mount -l

После исполнения этой команды должен появиться список разделов с различными опциями. В моём разделе должна стоять опция acl, это означает что поддержка acl включена.
/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)

2. Установка необходимого программного обеспечения.

Для начала установим простые утилиты для удобства настройки сервера. Их у меня будет три – это текстовый редактор ee, файловый менеджер Midnight commander и SSH сервер для удобства администрирования. Midnight commander – что то вроде Norton Commander, с ним легко и быстро можно перемещаться по файловой системе сервера, хоть в данном мануале использовать его я практически не буду, тем не менее я считаю что его нужно поставить.

apt-get install ee
apt-get install mc
apt-get install ssh openssh-server

Далее буду редактировать файлы через ee.

После простых утилит, ставим ntp сервер. Он нужен для синхронизации времени. У сервака будет точное время, а так же все рабочии станции пользователей будут синхронизировать часы с этим сервером.

apt-get install ntp

Итак, теперь пришло время установки основного программного обеспечения сервера. На этих программах и будет всё держаться.

Ставим пакеты:

apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2 libsasl2-modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free unzoo arj spamassassin libnet-dns-perl razor pyzor slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server dhcp3-server-ldap bind9 samba smbclient smbldap-tools cupsys cupsys-client foomatic-db-engine foomatic-db foomatic-db-hpijs foomatic-db-gutenprint foomatic-filters foomatic-filters-ppds fontconfig hpijs-ppds linuxprinting.org-ppds make mkisofs

К слову – пакет mkisofs нужен для утилиты бэйкапа шар самбы, так что важно его поставить.

Ставим пакеты dovecot

apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3d

При установке нужно будет ответить на несколько вопросов. Нужно ввести ответы, без кавычек:
• LDAP попросит ввести пароль админа, вначале я написал, что буду везде использовать пароль «example», его и ввожу.
• SAMBA спросит имя домена у меня это «ADSL». Вторым она спросит про smb.conf файл. Отвечаем «No».
• При установке почтовых пакетов будет задан ряд вопросов. Тут в принципе всё по умолчанию должно быть нормально. Конфигурация «Internet Site», имя почты «pdc.adsl.com».
• Затем идёт конфигурация Libnss-LDAP. В Сервер URI LDAP вводим «ldap://127.0.0.1/», имя базы поиска вводим «dc=adsl,dc=com», версию Ldap указываем «3», Ldap акаунт для рута вводим «cn=admin,dc=adsl,dc=com», пароль для Ldap админа – example.
• Ну и наконец Libpam-LDAP. Выберите «Да», когда Вас спросят, должен ли локальный root быть админом базы данных. На вопрос о логине Ldap базы данных вводим «Нет». Ldap акаунт для рута вводим «cn=admin,dc=adsl,dc=com». И последнее вводим пароль от Ldap «example»


Так, далее ставим пакет dcc-client. Т.к. я его не нашёл в репозитариях Dibian, будем ставить его же от Ubuntu. Я ставил его на рабочий домен, вроде всё подходит, конфликтов не возникало. Для этого находим его на сайте поиска пакетов для Ubuntu. (http://packages.ubuntu.com).
Итак, создаём у себя папку для хранения закаченных пакетов пакетов.

mkdir /webpkg

Далее входим на страницу с найденным пакетом http://packages.ubuntu.com/ru/dapper/dcc-client. В разделе Загрузка пакета выбираем вашу архитектуру сервера, у меня это i386. Откроется страница с серверами. Выбираем любой и копируем ссылку на пакет.
Входим в нашу папку и закачиваем туда выбранный пакет.

cd /webpkg
wget http://www.ftp.uni-erlangen.de/pub/mirrors...2.74-2_i386.deb

Тут есть одна тонкость, пакет dcc-client, зависит от пакета dcc-common. Так что его тоже нужно закачать и установить. Находим его на том же сайте (http://packages.ubuntu.com/ru/dapper/dcc-common) и так же закачиваем с любого сервера.

wget http://ftp.oleane.net/pub/ubuntu/pool/univ...2.74-2_i386.deb
В итоге в директории webpkg у нас будут два скаченных пакета.

pdc:/webpkg# ls
dcc-client_1.2.74-2_i386.deb dcc-common_1.2.74-2_i386.deb

Устанавливаем их:

dpkg -i dcc-client_1.2.74-2_i386.deb dcc-common_1.2.74-2_i386.deb

3. Конфигурация домена.

Slapd

Всё, все пакеты и компоненты установлены. Теперь необходимо их настроить. Сначало будем настраивать самое трудное это slapd, samba, nss и т.д. от них зависит работоспособность сервера.

Переносим схемы MMC, которые мы будем прописывать в LDAP. Всего их 6, это схемы dns, dhcp, samba, mail, mmc, printer. По их названию можно понять для чего каждая схема служит.

cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/printer.schema.gz > /etc/ldap/schema/printer.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema

Далее пропишем в конфиге Ldap эти схемы

ee /etc/ldap/slapd.conf

там прямо ниже уже прописанных схем (include /etc/ldap/schema/inetorgperson.schema) вставляем следующее:

Код
include     /etc/ldap/schema/mmc.schema
include     /etc/ldap/schema/samba.schema
include     /etc/ldap/schema/printer.schema
include     /etc/ldap/schema/mail.schema
include     /etc/ldap/schema/dnszone.schema
include     /etc/ldap/schema/dhcp.schema

Schemacheck        on


Сохраняем и выходим из файла.
Далее нужно получить наш админский пароль от LDAP в шифрованном виде. Шифруем с помощью SSHA.

slappasswd -s example

Я получил вот такую строчку {SSHA}zgbmt9l5XDohI+3FquZbTRLWsJD2+3Pg (у вас он будет другой) открываем блокнот, и сохраняем эту строчку туда, она нам понадобиться. Далее мы снова открываем конфиг Ldap.

ee /etc/ldap/slapd.conf

Находим строчку - #rootdn "cn=admin,dc=ads,dc=com" (у вас она будет другой). И раскоментируем её, убирая спереди знак #. Ниже неё добавляем переменную rootpw с нашим шифрованным паролем. В итоге получим:

Код
rootdn          "cn=admin,dc=adsl,dc=com"
rootpw          {SSHA}zgbmt9l5XDohI+3FquZbTRLWsJD2+3Pg


В этом же файле находим строчку # Indexing options for database #1 нижеё строка index objectClass eq удаляем её. И в место неё вставляем следующие строки

Код
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq


Находим в этом же файле строку access to attrs=userPassword,shadowLastChange и изменяем её на следующее:

Код
access to attrs=userPassword,sambaLMPassword,sambaNTPassword


Далее находим строчку loglevel 0 и вписываем вместо 0 число 256. Это нужно что бы работал журнал в mmc.
В итоге у меня получился вот такой конфиг файла slapd.conf - Сверьте со своим конфигом!:

CODE
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
#######################################################################
# Global Directives:
# Features to permit
#allow bind_v2
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema

schemacheck on

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values
loglevel 256

# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_bdb

# The maximum number of entries that is returned for a search operation
sizelimit 500

# The tool-threads parameter sets the actual amount of cpu's that is used
# for indexing.
tool-threads 1

#######################################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend bdb
checkpoint 512 30

#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend <other>

#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database bdb

# The base of your directory in database #1
suffix "dc=adsl,dc=com"

# rootdn directive for specifying a superuser on the database. This is needed
# for syncrepl.
rootdn "cn=admin,dc=adsl,dc=com"
rootpw {SSHA}81j6KSScr/yFQVdqKYt4DzbKtYfCG2hn

# Where the database file are physically stored for database #1
directory "/var/lib/ldap"

# For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0

# Sven Hartge reported that he had to set this value incredibly high
# to get slapd running at all. See http://bugs.debian.org/303057
# for more information.
# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500

# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500

# Number of lockers
dbconfig set_lk_max_lockers 1500

# Indexing options for database #1
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq

# Save the time that the entry gets modified, for database #1
lastmod on

# Where to store the replica logs for database #1
# replogfile /var/lib/ldap/replog
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by dn="cn=admin,dc=adsl,dc=com" write
by anonymous auth
by self write
by * none

# Ensure read access to the base for things like
# supportedSASLMechanisms. Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work
# happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else
# can read everything.
access to *
by dn="cn=admin,dc=adsl,dc=com" write
by * read

# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=adsl,dc=com" write
# by dnattr=owner write

#######################################################################
# Specific Directives for database #2, of type 'other' (can be bdb too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database <other>

# The base of your directory for database #2
#suffix "dc=debian,dc=org"


Теперь правил файл /etc/ldap/ldap.conf добавляя в самый его низ две строчки:

Код
host 127.0.0.1
base dc=adsl,dc=com


Настройка ldap окончена, рестартим его:

/etc/init.d/slapd restart

Да, кстати по поводу журналов в mmc. Мы так же должны добавить в файл /etc/syslog.conf следующее (Где то в середине, я думаю вы поймёте куда добавлять):

Код
local4.*                        /var/log/ldap.log




SAMBA

Теперь перейдём к настройке SAMBA:
Стапаем самбу что бы не было конфликтов.
/etc/init.d/samba stop

Копируем конфиг самбы который идёт в состав mmc:
cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/

И переходим к его редактированию:
ee /etc/samba/smb.conf

Конфиг должен быть таким (подставьте свои значения) - Сверьте со своим конфигом! Обязательно проследите что бы последовательность строчек была такой же как в эталоном конфиге (иначе могут быть проблемы.):
CODE
[global]
workgroup = ADSL
netbiosname = PDC-SRV-ADSL
preferred master = yes
os level = 65
wins support = yes
enable privileges = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
log level = 3
null passwords = yes
security = user
# unix charset = ISO8859-1
name resolve order = bcast host
domain logons = yes
domain master = yes
printing = cups
printcap name = cups
logon path = \\%N\profiles\%U
logon script = logon.bat
logon drive = H:
map acl inherit = yes
nt acl support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = no
ldap admin dn = cn=admin,dc=adsl,dc=com
ldap suffix = dc=adsl,dc=com
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users
ldap passwd sync = yes
# ldap delete dn = yes
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n
add user script = /usr/sbin/smbldap-useradd -m "%u"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add machine script = /usr/lib/mmc/add_machine_script '%u'
delete user script = /usr/sbin/smbldap-userdel "%u"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
# acl group control = yes


[homes]
comment = Home directories
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
hide files = /Maildir/

[public]
comment = Public share
path = /home/samba/shares/public
browseable = yes
public = yes
writeable = yes

[archives]
comment = Backup share
path = /home/samba/archives
browseable = yes
public = no
writeable = no

[printers]
comment = Printers
path = /tmp
browseable = no
public = yes
guest ok = yes
writeable = no
printable = yes

[print$]
comment = Drivers
path = /var/lib/samba/printers
browseable = yes
guest ok = yes
read only = yes
write list = Administrator,root,@lpadmin

[netlogon]
path = /home/samba/netlogon
public = yes
writeable = yes
browseable = no

[profiles]
path = /home/samba/profiles
writeable = yes
create mask = 0700
directory mask = 0700
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/

[partage]
comment = aucun
path = /home/samba/partage
browseable = yes
public = no
writeable = yes

[www]
path = /usr/share/mmc
writeable = yes
admin users = Administrator, ADSL\Administrator
create mask = 0777
directory mask = 0777
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/

Сохраняем конфиг и выходим.

Теперь нужно протестировать конфиг самбы на ошибки командой testparm:

Код
pdc:~# testparm
Load smb config files from /etc/samba/smb.conf
…..
Processing section "[partage]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

Всё хорошо. Идём дальше.
Теперь дадим самбе права на чтение ldap базы.
smbpasswd -w example
сервер ответит
Код
Setting stored password for "cn=admin,dc=ads,dc=com" in secrets.tdb


Теперь получим SID нашего домена:

net getlocalsid ADSL

В ответ он мне выдаст номер Sid’a. Сохраните его в какой ни будь файл. Он нам понадобится очень скоро.

Код
SID for domain ADSL is:  S-1-5-21-1867216969-3838886759-4012667054


Проверяем регистрацию сида в Ldap:
slapcat | grep sambaDomainName
В ответ что то типа:
Код
dn: sambaDomainName=ADSL,dc=adsl,dc=com
sambaDomainName: ADSL


Запускаем Samba:

/etc/init.d/samba start

Ура, самба закончилась. Перейдём к конфигурации smbLdap tools. Это так же важная часть домена:
Для начала созданим файлы конфигурации для smbldap-tools.

ee /etc/smbldap-tools/smbldap_bind.conf

Код
slaveDN="cn=admin,dc=adsl,dc=com"
slavePw="example"
masterDN="cn=admin,dc=adsl,dc=com"
masterPw="example"


Сейчас будем настраивать главный файл конфиграции smbldap-tools. В него нужно вставить номер нашего SID, котопрый мы получили чуть выше… А так же подставить свои значения.

ee /etc/smbldap-tools/smbldap.conf

Код
SID="S-1-5-21-3159899821-123882392-54881133"
sambaDomain="ADSL"
ldapTLS="0"
suffix="dc=adsl,dc=com"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=ADSL,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\PDC-SRV-ADSL\%U"
userProfile="\\PDC-SRV-ADSL\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="adsl.com"
smbpasswd="/usr/bin/smbpasswd"


Ставим права на конфиг файлы smbldap-tools:

chmod 0644 /etc/smbldap-tools/smbldap.conf
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf

Так. Всё готово. Теперь нужно наполнить нашу ldap базу. А так же создать глобальный аканут администратора ldap. (Administrator).

smbldap-populate -m 512 -a Administrator

Вас попросят ввести пароль администратора. Я ввёл example. Так же, в будующем, нужно будет изменить uid номер учётной записи администратора. Иначе будут проблемы с почтой для этого акаунта.

Дополнительно мы добавим Administrator в группу Domain Users.

smbldap-usermod -u 3000 -G "Domain Users" Administrator

Так. Теперь конфигурируем NSS LDAP. Что бы иметь позможность получать списки и данные Ldap.
Копируем предорженый файл mmc в /etc/nsswitch.conf

cp /usr/share/doc/python-mmc-base/contrib/ldap/nsswitch.conf /etc/nsswitch.conf

После этого создадим необходимые директории для samba. Которые мы указывали в её конфиге:

mkdir -p /home/samba/shares/public/
mkdir /home/samba/netlogon/
mkdir /home/samba/profiles/
mkdir /home/samba/partage/
mkdir /home/samba/archives/

И зададим им соответствующие права:
chown -R :"Domain Users" /home/samba/
chmod 777 /var/spool/samba/ /home/samba/shares/public/
chmod 755 /home/samba/netlogon/
chmod 770 /home/samba/profiles/ /home/samba/partage/
chmod 700 /home/samba/archives/

PAM Ldap

Сделали почти половину. Сейчас займёмся Конфигурацией PAM LDAP. Тут нужно будет добавить поддержку ldap в Pam, путём добавления некоторых строк в файлы pam. Эти файлы должны иметь примерно следующий вид:

ee /etc/pam.d/common-account
Код
#
# /etc/pam.d/common-account - authorization settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system.  The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
account required        pam_unix.so
account sufficient      pam_ldap.so


ee /etc/pam.d/common-auth

Код
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
auth    sufficient      pam_unix.so nullok_secure
auth    sufficient      pam_ldap.so use_first_pass
auth    required        pam_deny.so


ee /etc/pam.d/common-password

Код
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define  the services to be
#used to change user passwords.  The default is pam_unix
# The "nullok" option allows users to change an empty password, else
# empty passwords are treated as locked accounts.
#
# (Add `md5' after the module name to enable MD5 passwords)
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs. Also the "min" and "max" options enforce the length of the
# new password.
password        sufficient      pam_unix.so nullok obscure min=4 max=8 md5
password        sufficient      pam_ldap.so use_first_pass use_authtok
password        required        pam_deny.so
# Alternate strength checking for password. Note that this
# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
#
# password required       pam_cracklib.so retry=3 minlen=6 difok=3
# password required       pam_unix.so use_authtok nullok md5


ee /etc/pam.d/common-session

Код
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).  The default is pam_unix.
#
session required        pam_unix.so
session optional        pam_ldap.so


После этой надстроки. Мы должны ОБЯЗАТЕЛЬНО перезагрузиться.

reboot

Итак. Кульминационный момент. После перезагрузки. Мы должны дать право группе Domain Admins добавлять машины в домен (обязательно в команде замените имя домена на свой.):

net -U Administrator rpc rights grant 'ADSL\Domain Admins' SeMachineAccountPrivilege

Если после выполнения команды ошибок не обнаружилось, то всё хорошо. Настройка домена прошла успешно, теперь остались мелочи… настройка вспомогательных служб сервера.
Если же были выявлены ошибки. То советую не продолжать дальнейшие действия, а искать проблему вашей ошибку. Скорей всего что то не правильно в конфиге samba и slapd. Обязательно проверте каждую строчку конфига и сравните её с этой же строчкой моего мануала.


4. Конфигурация дополнительных служб домена.


Mail

Так. Домен мы настроили, это уже пол дела. Теперь будем настраивать дополнительные службы домена. Это почта, прокси сервер, антивирус, антиспам и т.д. А начнём мы пожалуй с почтового сервера.
Настроим протокол безопасности SSL. Для этого создадим файл конфигурации:

ee /etc/ssl/mail.cnf

Код
[ req ]
default_bits            = 2048
default_keyfile         = privkey.pem
distinguished_name      = req_distinguished_name
prompt                  = no
string_mask             = nombstr
x509_extensions         = server_cert
[ req_distinguished_name ]
countryName             = DE
stateOrProvinceName     = Niedersachsen
localityName            = Lueneburg
organizationName        = Projektfarm GmbH
organizationalUnitName  = IT
commonName              = pdc.adsl.com
emailAddress            = [email protected]
[ server_cert ]
basicConstraints        = critical, CA:FALSE
subjectKeyIdentifier    = hash
keyUsage                = digitalSignature, keyEncipherment
extendedKeyUsage        = serverAuth, clientAuth
nsCertType              = server
nsComment               = "mailserver"


Теперь создадим наш SSL сертификат, используя наш файл конфигурации:
openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout /etc/ssl/private/mail.key -days 365 -nodes -batch
Так. Наш ключик создан. Теперь поставим на него права. Что бы только root имел право его читать:
chmod 600 /etc/ssl/private/mail.key

Далее, настраиваем пакет аутентификации SASL. Его настройка нужна т.к. почтовый сервер Postfix использует его для атентификации юзеров в LDAP.

mkdir -p /var/spool/postfix/var/run/saslauthd/
ee /etc/default/saslauthd

Код
START=yes
MECHANISMS="ldap"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"


ee /etc/saslauthd.conf

Код
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=Users,dc=adsl,dc=com
ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))


ee /etc/postfix/sasl/smtpd.conf

Код
pwcheck_method: saslauthd
mech_list: plain login


Добавим юзера Postfix в группу SASL. И перезапустим Sasl:

adduser postfix sasl
/etc/init.d/saslauthd restart

С безопасностью и аутентификацией разобрались. Теперь настраиваем сам почтовый сервер Postfix. Настройка будет без «наворотов», самая обычная. Единственное что мы добавим – это поддержку виртуальных доменов. Для начала скопируем файл конфигурации по умолчанию из директории mmc в директорию Postfixa:
cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-domains/* /etc/postfix/

Теперь отредактируем главный файл конфигурации. Он будет выглядеть примерно так:

ee /etc/postfix/main.cf

CODE
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_at_myorigin = yes
append_dot_mydomain = no

myhostname = pdc.adsl.com
#alias_maps = hash:/etc/aliases
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = pdc.adsl.com,adsl.com,localhost.localdomain,localhost
mail_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN"
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
luser_relay =

# Virtual Domains Control
virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cf
virtual_mailbox_base = /
virtual_alias_domains =
virtual_minimum_uid = 100
virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cf
virtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf

# Use Maildir
home_mailbox = Maildir/
# Wait until the RCPT TO command before evaluating restrictions
smtpd_delay_reject = yes
# Basics Restrictions
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
# Requirements for the connecting server
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client list.dsbl.org,
permit
# Requirements for the HELO statement
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_invalid_hostname,
permit
# Requirements for the sender address
smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit
# Requirement for the recipient address
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
permit
# Enable SASL authentication for the smtpd daemon
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# Fix for outlook
broken_sasl_auth_clients = yes
# Reject anonymous connections
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
# SSL/TLS
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /etc/ssl/certs/mail.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
# Amavis
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings


Редактируем остальные файлы конфигурации которые находятся в папке /etc/postfix, заменяя в них единсвенный параметр «search_base» :

ee /etc/postfix/ldap-accounts.cf
ee /etc/postfix/ldap-domains.cf
ee /etc/postfix/ldap-maildrop.cf
ee /etc/postfix/ldap-uid.cf
ee /etc/postfix/ldap-aliases.cf
ee /etc/postfix/ldap-gid.cf
ee /etc/postfix/ldap-transport.cf

Код
search_base = ou=Users,dc=adsl,dc=com


Последний этак конфигурации почтового сервера. Настраиваем мастер конфигурации:

ee /etc/postfix/master.cf

В этом файле находим закоментируемую строчку #SMTPS, ниже добавляем следующие строки:

Код
# SMTPS
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d $recipient
# Mail to Amavis
amavis unix - - - - 10 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
# Mail from Amavis
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks


И рестартим Postfix:

/etc/init.d/postfix restart

C Postfix закончили. Теперь установим комплектующие к нему . Первым делом мы настроим IMAP, POP3 сервер, а так же квоты. Все эти функции обеспечивает один пакет – это Devcot который мы устанавливали в начале.
Редактируем файлы конфигурации Devcot, избавляясь от стандартных настроек:

echo "" > /etc/dovecot/dovecot.conf
ee /etc/dovecot/dovecot.conf

CODE
protocols = imap imaps pop3 pop3s
listen = 0.0.0.0
login_greeting = adsl.com mailserver ready.
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/private/mail.key
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.log
# IMAP configuration
protocol imap {
mail_plugins = quota imap_quota
}
# POP3 configuration
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}

# LDA configuration
protocol lda {
postmaster_address = postmaster
auth_socket_path = /var/run/dovecot/auth-master
mail_plugins = quota
}

# LDAP authentication

auth default {
mechanisms = plain login

passdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}

userdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}

socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = dovecot
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}


echo "" > /etc/dovecot/dovecot-ldap.conf

ee /etc/dovecot/dovecot-ldap.conf

Код
hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=adsl,dc=com
scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:storage
user_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
default_pass_scheme = CRYPT
user_global_gid = mail


Настроим права для devcot. И рестартнем его:

dpkg-statoverride --update --add root dovecot 4755 /usr/lib/dovecot/deliver
/etc/init.d/dovecot restart


ClamAV & Spamassassin

Так. С почтой почти всё. Теперь настроим антивирус и антиспам, а именно Amavisd иSpamassassin.

ee /etc/amavis/conf.d/15-content_filter_mode

Код
use strict;
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1;


ee /etc/amavis/conf.d/50-user

Код
use strict;
$pax='pax';
1;


Добавим юзера clamav в группу amavis. И рестартнем все демоны clamav и amavis.

adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart

Теперь Spamassassin.

ee /etc/spamassassin/local.cf

и добавим вверху следующие строчки:

Код
# dcc
use_dcc 1
dcc_path /usr/bin/dccproc
#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf
#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1


ee /etc/spamassassin/v310.pre

В этом файле нужно раскоментировать следующие строки. Некоторые строки там уже будут раскоментированы.

Код
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop
loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags


Теперь конфигурируем spamassassin, что бы запускать его как демон.

ee /etc/default/spamassassin

Код
ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
PIDFILE="/var/run/spamd.pid"
#NICE="--nicelevel 15"
CRON=0


И рестартим spamassassin а затем amavis:

/etc/init.d/spamassassin start
/etc/init.d/amavis restart

Антивирус и анти-спам настроен. Сейчас проведём одну надстройку. Т.к. профиль пользователя подвержен опасности со стороны вирусов больше всего (были подлянки в практике моей работы сисадмина), настроем проверку папки с профилями юзеров, антиврусом ClamAV. Это позволит снизить вероятность заражения и распространения мерзких вирусов, ну и вообще просто полезно ). Для этого открываем crontab:

ee /etc/crontab

и вставляем в нём где ни будь в низу следующую строчку:

Код
0 9,19 * * * root clamdscan /home/samba/profiles


Сохраняем и выходим. Таким образом папка со всеми профилями будет проверяться каждый день в 9:00 и 19:00. Для просмотров результатов проверки нужно смотреть логи. Можно так же сделать отправку логов на почту.


BIND
Переходим к неменее важному процессу настройки Bind – dns сервера.

Сначало скопируем настройки по умолчанию в папку bind.

cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/

Изменим точку старта slapd

update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6 .

Впишем себя в качестве dns сервера в resolv.conf

ee /etc/resolv.conf

Код
#Мой DNS
nameserver 127.0.0.1
#Мой локальный DNS.
nameserver 192.168.0.2



DHCP

Настраиваем DHCP сервер. Опять же скопируем предложеный mmc конфиг dhcp сервера.

cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/
ee /etc/dhcp3/dhcpd.conf

отредактируем файл настройки dhcp, в нём должны быть следующие строки:

Код
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=adsl, dc=com";
ldap-password "example";
ldap-base-dn "dc=adsl, dc=com";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";



Squid

Сейчас мы переходим к настройке прокси сервера Squid. Настройка будет немного специфическая. Авторизации тут пока не будет. Интернет будет раздавать только ип адресам локальной сети.

Чуть попозже я напишу дополнение как сделать настройку Squid для авторизации пользователей через ntlm по группам. С разграничением прав и проверкой трафика на вирусы. Так же чуть позже выложу статью с мануалом по созданию плагина для MMC о подсчёту трафика пользователей.

Так же мы настроим SquidGuard который будет резать нежелательные сайты. Начнём со SquidGuard. Перенесём файл конфигурации по умолчанию в папку squid, а так же создадим файл базы данных.

cp /usr/share/doc/python-mmc-base/contrib/proxy/squidGuard.conf /etc/squid/

touch /var/lib/squidguard/db/bad.destdomainlist

Отредактируем конфиг squidguard.

ee /etc/squid/squidGuard.conf

Заменим ссылку, напротив параметра redirect, на свою:

Код
redirect http://blocked.example.com/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u


Теперь перейдём к конфигурации Squid прокси сервера. В этой статье будет рассмотрена простая настройка. Сложную настройку с утентификацией пользователей по группам, учётом трафика и проверкой трафика на вирусы я выложу позже. Смотрите ниже...
Для начала скопируем конфиг по умолчанию и очистим его от комментариев, что было удобно редактировать его:

cd /etc/squid/

mv squid.conf squid.conf.orig
cat squid.conf.orig | egrep "^[^#]" > squid.conf

Редактируем конфиг squid, он должен выглядить примерно так:

ee squid.conf

CODE
acl all src all
acl manager proto cache_object
redirect_program /usr/bin/squidGuard
acl our_networks src 192.168.50.0/24
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 3128
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow our_networks
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid


Рестартим squid:

/etc/init.d/squid restart

Теперь нужно настроить редикет. Что бы когда юзер зайдёт на запрещённый сайт ему бы вылезала спец страница с ошибкой:

mkdir /var/www/squidguard/
zcat /usr/share/doc/squidguard/examples/squidGuard.cgi.gz > /var/www/squidguard/squidGuard.cgi
chmod +x /var/www/squidguard/squidGuard.cgi

После этого создадим файл виртуально хоста:

ee /etc/apache2/sites-available/http

И добавим туда следующее:

Код
NameVirtualHost 192.168.50.237:80

<VirtualHost 192.168.50.237:80>

ServerName blocked.adsl.com
ServerAdmin [email protected]
DocumentRoot /var/www/squidguard/

AddHandler cgi-script .cgi

<Directory /var/www/squidguard/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from 192.168.50.0/24
</Directory>

ErrorLog /var/log/apache2/squidguard_error.log
CustomLog /var/log/apache2/squidguard_access.log combined
LogLevel warn

</VirtualHost>



5. Настройка Web- интерфейсов.

Для начала создадим специальный SSL сертификат который будут использовать сервер печати Cups и консоль управления доменом MMC:

mkdir /etc/apache2/ssl/
openssl req -new -x509 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt -days 365 -nodes

Система предложит заполнить сертификат. Это не принципиально можно пропустить настройку нажимая Enter, а можно попотвечать на вопросы.

chmod 600 /etc/apache2/ssl/server.key
cp /etc/apache2/ssl/* /etc/cups/ssl/


CUPS
Сервер печати Cups

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

apt-get install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core

Настроим Cups, что бы можно было работать с ним из нашей сети.

ee /etc/cups/cupsd.conf

Заменим в этом файле несколько строчек:
Listen localhost:631 заменим на Listen 192.168.50.237:631

Далее найдём следующий кусок:

Код
#Restrict access to the server...
<Location />
Order allow,deny
Allow localhost
</Location>
# Restrict access to the admin pages...
<Location /admin>
Encryption Required
Order allow,deny
Allow localhost
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
</Location>


И заменим этот кусок на следующее:

Код
# Restrict access to the server...
<Location />
Order allow,deny
Allow localhost
Allow 192.168.50.0/24
</Location>
# Restrict access to the admin pages...
<Location /admin>
Encryption Required
Order allow,deny
Allow localhost
Allow 192.168.50.0/24
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
Allow 192.168.50.0/24
</Location>


Сохраняем и рестартим Cups:

/etc/init.d/cupsys restart

Настройка сервера печати закончена. Теперь вы можите управлять вашими принтерами через удобный web интерфейс. Зайдя на сервер под 631 портом https://192.168.50.100:631/
После добавления нового принтера в Cups, необходимо добавить его в самбу, что бы юзеры тоже имели доступ к нему. Добавляем командой:
cupsaddsmb -a


NFS

Этот пункт является не обязательным. Но может кому нибудь пригодится. Для начала установим необходимые пакеты:

Пропустите этот пункт. Идёт тестирование.
Настройку клиента я опишу чуть позже.

MMC

Теперь настраиваем web морду управления доменом MMC. Сначала создадим два виртуальных хоста, http и https. (http нужен для перенаправления на https).

ee /etc/apache2/sites-available/http

Добавим туда следующие строки:
Код
<VirtualHost 192.168.50.237:80>

ServerName pdc.adsl.com

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>


Теперь тоже самое для https. Добавим туда следующее:

ee /etc/apache2/sites-available/https

Код
NameVirtualHost 192.168.50.237:443

<VirtualHost 192.168.50.237:443>

ServerName pdc.adsl.com
ServerAdmin [email protected]
DocumentRoot /usr/share/mmc/

SSLEngine on
SSLCertificateKeyFile ssl/server.key
SSLCertificateFile ssl/server.crt
SSLProtocol all
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

<Directory /usr/share/mmc/>
AllowOverride None
Order allow,deny
Allow from 192.168.50.0/24
php_flag short_open_tag on
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</Directory>

ErrorLog /var/log/apache2/mmc_error.log
CustomLog /var/log/apache2/mmc_access.log combined
LogLevel warn

</VirtualHost>


Теперь откроем https порт в апаче, добавив туда следующую строчку:

ee /etc/apache2/ports.conf

Код
Listen 443


Теперь нужно включить модули апача. Это http, https, rewrite и ssl. А после перезапустим сам апач.

a2ensite http
a2ensite https
a2enmod rewrite
a2enmod ssl

/etc/init.d/apache2 restart

Последний пункт консольной настройки нашего сервера. Консоль MMC делится на несколько составляющих – это web морда и плагины написанные на pyton. У плагинов есть файлы настройки, которые необходимо настроить. На данный момент их 4-е, но вроде как разработчики делают ещё парочку…

Отойдя от темы скажу: Сам плюс консоли в том что можно самому писать плагины для неё. В моём случае я не знаю pyton, но я знаю php. Поэтому я пишу плагины на php и подключаю их к морде напрямую. В принципе это будет считаться как плагин. Но это не очень правильно со стороны безопасности и самой архитектуры mmc. Но я выбрал именно этот вариант, т.к. это удобно для меня.

Чуть позже мы напишем примерный плагин на php и подключим его в консоль.

А сейчас будем настраивать стандартные плагины:

Плагин Base.

В нём редактируем параметр baseDN, ldap пароль, путь к архивам и добавляем параметр baseComputersDN. Выглядить он должен так:

ee /etc/mmc/plugins/base.ini

CODE
[ldap]
# LDAP we are connected to
host = 127.0.0.1
# LDAP base DN
baseDN = dc=adsl, dc=com
# Users location in the LDAP
baseUsersDN = ou=Users, %(basedn)s
# Groups location in the LDAP
baseGroupsDN = ou=Groups, %(basedn)s
# Computers Locations
baseComputersDN = ou=Computers, %(basedn)s
# LDAP manager
rootName = cn=admin, %(basedn)s
password = example
# If enabled, the MMC will create/move/delete the home of the users
# Else will do nothing, but only write user informations into LDAP
userHomeAction = 1
# Skeleton directory to populate a new home directory
skelDir = /etc/skel
# If set, all new users will belong to this group when created
defaultUserGroup = Domain Users
# Default home directory for users
defaultHomeDir = /home
# user uid number start
uidStart = 10000
# group gid number start
gidStart = 10000
# LDAP log file path
logfile = /var/log/ldap.log
# FDS log file path
# logfile = /opt/fedora-ds/slapd-hostname/logs/access

# you can specify here where you can authorized creation of your homedir
# default is your defaultHomeDir
# example:
# authorizedHomeDir = /home, /home2, /mnt/depot/newhome

[backup-tools]
# Path of the backup tools
path = /usr/lib/mmc/backup-tools
# Where are put the archives
destpath = /home/samba/archives


Mail плагин. Тут так же редактируем vDomainDN. Должно получиться что то типа этого:

ee /etc/mmc/plugins/mail.ini

Код
[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 1
# If vdomain enabled, OU where the domain are stored
vDomainDN = ou=mailDomains, dc=adsl, dc=com

[userDefault]
# For Postfix delivery
mailbox = maildir:%homeDirectory%/Maildir/
# For Dovecot delivery
# mailbox = maildir:%homeDirectory%/Maildir/
# Default quota (200 MBytes) set for user
mailuserquota = 204800


Плагин Network (Сеть). Тут редактируем имя домена. Файл должен выглядеть примерно так:

ee /etc/mmc/plugins/network.ini

Код
[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=adsl,dc=com
pidfile = /var/run/dhcpd.pid
init = /etc/init.d/dhcp3-server
logfile = /var/log/daemon.log
leases = /var/lib/dhcp3/dhcpd.leases
[dns]
dn = ou=DNS,dc=example,dc=com
pidfile = /var/run/bind/run/named.pid
init = /etc/init.d/bind9
logfile = /var/log/daemon.log
bindroot = /etc/bind/
binduser = bind
bindgroup = bind
# dnsreader = DNS Reader
# dnsreaderpassword = DNSReaderPassword


Плагин Samba. Там изменяем параметр baseComputersDN. Будет что то типа этого:

ee /etc/mmc/plugins/samba.ini

Код
[main]
disable = 0
# Computers Locations
baseComputersDN = ou=Computers, dc=adsl, dc=com
sambaConfFile = /etc/samba/smb.conf
sambaInitScript = /etc/init.d/samba
sambaClamavSo = /usr/lib/samba/vfs/vscan-clamav.so
# Default SAMBA shares location
defaultSharesPath = /home/samba
# You can specify authorized paths for share creation
# Default value is the defaultSharesPath value
# authorizedSharePaths = /shares, /opt, /srv

# Default value when adding samba attributes to an user
# DELETE means the attibute is removed from the user LDAP entry
[userDefault]
sambaPwdMustChange = DELETE


Так же там имеется плагин proxy. Его мы трогать не будем, там настройки по умолчанию вполне подходят.
Всё. Настройка в консоле окончена, остаётся запустить mmc-agent и bind сервер:

/etc/init.d/mmc-agent start

При запуске mmc. Произойдёт регистрация ldap и загрузка модулей mmc. Проследите что бы модули загрузились все. Ниже я приведу строки нормальной загрузки модулей. Если есть ошибки то смотрим логии.
Код
Plugin base loaded, API version: 6:0:2 build(620)
Plugin samba loaded, API version: 5:1:4 build(620)
Plugin network loaded, API version: 1:1:0 build(620)
Plugin mail loaded, API version: 6:1:4 build(620)
Plugin proxy loaded, API version: 1:0:0 build(620)


/etc/init.d/bind9 restart


6. MMC – Знакомство с web интерфейсом.

Если всё успешно прошло, то вы можете зайти через web интерфейс к консоли управления по адресу https://192.168.50.237 (в моём случае). Позже когда мы настроим dns сервер, то сможем зайти по адресу http://pdc.adsl.com он перенаправит нас на https (для этого и делали редикет).
Вход в панель управления происходит через пользователя root. В моём случае Логин root пароль example.



Познакомьтесь с интерфейсом mmc. Как мы говорили чуть выше, панель разделена на плагины, которые мы настраивали. Кстати если вы входите через IE, то там есть небольшие проблемы с отображением страниц (ещё бы).



Вверху жмём на ссылку переключения в режим ЭКСПЕРТА! В этом режиме доступен журнал с логами (там можно быстро смотреть ошибки), а так же доступны несколько ключевых функций (такие например как указание перемещаемых профилей у юзера и т.д. )

Сейчас необходимо настроить DNS зону, службу DHCP, псевдоним blocked для squid и добавить нового пользователя.

Настраиваем DNS Zone: В mmc переходим в «Сеть => Добавить DNS зону => и заполняем»:
Код
FQDN DNS-зоны - adsl.com
Описание  - любое.
Имя сервера имен  - pdc (имя хоста вашего сервера)
IP-адрес сервера имен  - 192.168.50.237 (ip адрес сервера)

Сетевой адрес  - 192.168.50.0 (ваша сеть)
Маска подсети  -  24 (у меня)
Also manage a reverse DNS zone - галочка
Также создать связанную DHCP-подсеть   - галочка


Теперь добавим псевдоним к нашему серверу, для редикета.
Псевдоним: В mmc переходив в «Сеть => DNS зоны =>Посмотреть записи зоны (иконка лупы) => Изменить запись (иконка блокнотика) => В Hostname alias вписываем: blocked и затем Добавить, затем Подтвердить.»

Теперь настроим DHCP подсеть. Что бы юзеры получали автоматические сетевые настройки.
Настройка DHCP: В mmc переходим в «Сеть => DHCP подсети => Изменить подсеть (иконка блокнотика) => и заполняем»:
Код
#Адрес DHCP-подсети 192.168.50.0
Маска -24
Описание - adsl.com
Авторитетный  галочка
#DHCP options related to clients network parameters  
Broadcast address  - 192.168.50.255
Имя домена - adsl.com

Маршрутизаторы - 192.168.50.235
Сервера доменных имен - 192.168.50.237 (если у вас в сети есть ещё dns сервера, можно указать ещё)
Серверы NTPNetwork  - 192.168.50.237  
Серверы WINS
WINS разрешения и метод - Auto
#Другие параметры DHCP  
Initial boot file name
Path to the root filesystem
Следующий сервер
Имя TFTP-сервера
#DHCP client lease time (in seconds)  
Minimum lease time  - 3600
Default lease time - 57600
Maximum lease time -  605800
Dynamic pool for non-registered DHCP clients  - галочка

Начало IP-диапазона  - 192.168.50.100 (по вашему желанию)
Конец IP-диапазона  - 192.168.50.199 (по вашему желанию)


После заполнения жмём «подтвердить». Далее идём в «Сеть => Управления службами сети» и включаем там DHCP службу. (если она включена то перезапускаем её).

Далее заходим в раздел "Почта" и создаём почтовый домен (имя домена должно быть идентично samba домену.) adsl.com

Настройка служб готова. В принципе домен теперь полностью работоспособен. Осталось несколько штрихов. Это включить почтовый ящик администратора и завести первого юзера.

Включаем почтовый ящик для админа: переходим в mmc «Пользователи => Список => на против акаунта администратора щёлкаем «Изменить (иконка блокнотика)». Откроется панель редактирования профиля. В графе "Почтовый ящик" вписываем [email protected], затем в самом низу нужно внести следеющие изменения: поставить галочку на «Доступность почты» и поставить на против размера квоты почтового ящика галочку «неограниченно». Далее «Подтвердить».

Добавляем первого юзера в домен:

Вообще добавить можно и в ручную. Но раз уж мы выбрали удобство управления доменом в качестве консоли mmc, то будем заводить юзеров через неё:

Идём в Пользователи=>Добавить => и заполняем - Я приведу только несколько параметры которые заполнить обязательно нужно. Остальные параметры можно и не заполнять (на ваше усмотрение):

Код
Имя пользователя  - maks
Пароль  - password
Подтвердите пароль  - password
Имя  - Maksim
Имя  - HidX
Почтовый адрес  - [email protected]
Доступность SAMBA  галочка
Доступность почты  галочка
Квота почтового ящика (kB) – 10240
Сброс почты - maks


Отмечу что я не заполнял красные поля (Путь к профилю пользователя Открытие сессии скрипта Путь основного каталога Подключить основной каталог на сетевом диске Домашний каталог Создать домашнюю папку Оболочка входа в систему Общее имя Preferred name to be used) т.к. они в принципе заполнятся сами после создания юзера.

Ну вот и всё. Домен настроен и функционирует. Первый пользователь создан. Сетевые службы работают. Теперь пришло время внести какую нибудь рабочую станцию (или потестить на виртуальной машине) в наш новый домен.

Что бы завести машину в наш домен (на примере Xp SP3 pro):
• Включить на рабочей станции DHCP и получить автоматические настройки. (или можно вбить их в ручную, первичный DNS сервер обязательно должен быть ip адрес нашего домена!!!).
• Войти в свойства «Моего компьютера» и перейти на вкладку «Имя компьютера». Затем нажать кнопку «Изменить»
• В открывшемся окошечке ввести наш новый домен adsl (в моём случае). И нажать кнопку «Ок»
• Когда предложат ввести логин и пароль. Вводим имя и пароль от пользователя Administrator (в моём случае пароль будет
example) т.к. именно этот пользователь может регистрировать машины в домене. Жмём Ок. Должна появиться надпись «Добро пожаловать в домен adsl.

Теперь перезагружаемся и входим в систему от нашего первого тестового юзера. Проверяем подключилась ли личная папка пользователя (в разделе Мой Компьютер), проверяем права юзера (он не должен иметь доступ к системным настройкам, например не сможет сменить ip адрес или отключить сеть). Далее пробуем зайти на шару сервера \\PDC-SRV-ADSL . Важно знать что профиль при первом входе в систему сохранится только после первого выхода из системы, нужно так же это проверить.

Ну вот вроде и всё. Дальше будем заниматься работой над ошибками, написанием и добавлением модулей для mmс. И самое главное это созданием групповых политик для настройки рабочих станций пользователей. А так же я продемонстрирую работу самой консоли mmc и работу домена и рабочих станций в целом. Всё это будет описываться в других сообщениях. Удачи smile.gif
Эскизы прикрепленных изображений
Уменьшено до 86%
Прикрепленное изображение
692 x 432 (171.07 килобайт)
Уменьшено до 92%
Прикрепленное изображение
1194 x 684 (229.8 килобайт)
Уменьшено до 92%
Прикрепленное изображение
1194 x 684 (244.41 килобайт)
Уменьшено до 92%
Прикрепленное изображение
1194 x 546 (269.67 килобайт)


Уменьшено до 92%
Прикрепленное изображение
1194 x 546 (198.9 килобайт)
Уменьшено до 92%
Прикрепленное изображение
1216 x 550 (238.29 килобайт)








Глава II – Групповые политики.


Чуть истории

Когда вы управляете большим количеством рабочих станций под управлением Windows и количество рабочих мест растёт и растёт. Очень важно грамотно и точно настроить рабочую среду, каждого компьютера. Важно не упустить даже мелкие детали настройки. Настройка каждого компьютера отнимает много времени. И вы всё больше и больше задумываетесь об автоматизации процесса настройки некоторых настроек операционной системы. Таким решением является групповые (системные) политики. Благодаря им, мы можем создавать набор правил, в соответствии с которыми рабочая среда каждого компьютера будет настраиваться автоматически.

Групповые политики хорошо реализованы в службе каталогов Active Directory. В *nix подобных контроллерах домена ничего похожего нет. Но был найден довольно интересный выход из ситуации. Конечно, этот самый выход, не сравнится с полным аналогом групповых политик в AD т.к. мы будем использовать древний стандарт доменной политики windows nt 4.0, но всё таки это довольно неплохой способ автоматизировать настройку рабочих станций в *.nix доменах.


Немного о решении:

Что бы настроить рабочую среду, нам больше всего нужно что? Правильно – реестр каждого компьютера. Именно там и прописываются основные правила настройки среды. Путём внесения туда изменений, можно манипулировать этими правилами. Вносить изменения будем программой «Редактор системных правил (Poledit)» от Microsoft. C помощью неё, мы создадим правила которые нам нужны. Правила можно создать для пользователя, доменной группы или же компьютера. Все правила умещаются в один файл «NTConfig.POL», который помещается в папку netlogon нашего домена и при загрузке учётной записи доменного пользователя подгружается на его компьютер настраивая рабочую среду.


Где взять программу:

Вообще на сайте Microsoft говорится что программа есть к официальном Sp4 к Windows 2000 и предлагается распоковать её от туда.
Но осмыслев всю проблематичность данной операции, решил погуглить. Погуглив наткнулся на несколько ftp серверов:

К примеру на официальном ftp Microsoft лежит сама программа:

Цитата


А вот тут, лежат темы к политикам. Их тоже нужно скачать. Потом расскажу зачем:

Цитата


Скачиваем на какую ни будь свободную Windows XP и переходим к настройке.


Сам процесс:

Итак. Для начала нужно что бы Poledit заработал. Для этого кидаем все темы (файлы с расширением «.adm») в папку «C:\Windows\inf». Обязательно проследите что бы файлы common.adm и winnt.adm скопировались, без них программа не будет работать.
Далее запускаем POLEDIT.EXE. И мы видим довольно симпатичный понятный интерфейс программы. Теперь нам нужно смоделировать какое ни будь правильно. Представим что домен, который мы поднимали в прошлой части, уже настроен и работает, в нём уже есть несколько пользователей. Пользователю maks, нужно ограничить рабочую среду. А именно сделать так что бы у него не было доступа к диспетчеру задач и что бы он не мог менять себе пароль (к примеру).
Жмём на File -> New Policy. Появится политика по умолчанию. Она разделена на две части, политика компьютера и политика пользователя. Политики с префиксом Default действуют для всех (по умолчанию там нет активных правил, отмечу что на администраторов эти политики не распространяются). Нам нужно ограничить только юзера maks. Для этого жмём на иконку с головой человечка (Add user) и вводим в окошко имя пользователя – maks.



Создалась политика специально для пользователя maks. Щёлкаем на неё. Откроется древовидное меню со списком настроек которые можно использовать (для политики компьютера настройки будут другие).
Нам нужен раздел «Windows NT System». В нём ставим галочки на Disable task Manager и Disable Change Password.



Теперь нам нужно сохранить (File -> Save As) политику под именем «NTConfig.POL» и поместить в папку «netlogon» нашего домена. Важно знать, что у юзеров должны быть права на хотя бы на чтение папки «netlogon» и файла «NTConfig.POL», иначе правила не будут работать.
В принципе это всё. Теперь после того как пользователь maks залогинится в домене на его компьютер погрузится наша политика и настроит ему рабочую среду. По аналогии можно сделать политики для групп и компьютеров в домене.
Done.

Дополнение - Как переконвектировать существующий локальный профиль Windows в профиль Samba домена?

Для этой операции необходимо использовать утилиту от MS "Moveuser.exe". Саму утилиту можно скачать тут - (11 mb).

Утилита работает в консоли Windows. Установим её и обратимся к справке:

Код
C:\>moveuser/?

Command Line Syntax:

moveuser <user1> <user2> [/y] [/c:computer] [/k]

Arguments:

user1 Specifies a user who has a local profile.
user2 Specifies the user who will own user1's profile. This account must exist.
/y Allow overwrite of existing profile.
/c Specifies the computer to make the changes to.
/k Specifies if user1 is a local user, then the user account should be kept.


Таким образом к примеру я могу с машины на которой стоит Windows, с профилем user1, переконвектировать в samba домен, командой:

Код
moveuser user1 DOMAIN\user1 /y /k
оригинал: http://unixforum.org/index.php?showtopic=84474

Последнее обновление 03.06.10 08:31