Calculate Directory Server с WEB-интерфейсом управления. Ввод Ubuntu Linux и MS Windows в домен.

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Содержание

Установка и базовая настройкаCDS

Установка

  • Загружаемся с диска
  • Выбираем загрузку в режиме Live-CD. Ждем появления рутовой консоли
  • Устанавливаем сервер выполнив команду
cl-install -d /dev/sda1

естественно, раздел /dev/sda1 должен существовать перед выполнением этой команды

  • Подтверждаем намерения установить систему введя на вопрос ответ
yes
  • Процесс установки должен быть похож на это:
Run process? (yes/no): yes
* Formatting the partitions
[=========================================================>]100% Time: 00:01:03
* Unpacking the system image to the target
[=========================================================>]100% Time: 00:03:28
* Copying clt templates to the new system
* Copying configuration files to the new system
* Creating a new initrd file
* Updating the configuration
[================================================================>]100% Time: 00:00:17
* Post-install configuration
* Migrating users
* Preparing the system for reboot
* Unmounting the target system volume
* System successfully installed!
  • Выполняем команду
poweroff
  • Вытаскиваем загрузочный диск, меняем в биосе порядок загрузки, загружаем сервер

Настройка сети

Для IP адреса в одной сети

  • Настраиваем сеть выполнив команду
cl-setup-network --ip eth0:off:192.168.10.222:24 --route default:192.168.10.1:eth0:192.168.10.222 --dns 192.168.10.1

Для нескольких IP адресов в нескольких сетях

  • Выполняем предыдущий пункт
  • Открываем файл /etc/conf.d/net
  • Вписываем настройки по вкусу основываясь на содержимом:
#------------------------------------------------------------------------------
# Modified Calculate-install 3.0.2
# Processed template files:
# /var/lib/layman/calculate/profiles/templates/install-3.0/1live/openrc/conf.d/net
# For modify this file, create /etc/conf.d/net.clt template.
#------------------------------------------------------------------------------

modules="!plug"
config_eth0="192.168.10.222/24 192.168.155.222/24 192.168.156.222/24 192.168.158.222/24 192.168.159.222/24"
routes_eth0="default via 192.168.10.1"
dns_servers="192.168.10.1"
ifplugd="--no-beep"

  • Перезапускаем настройки сети командой:
/etc/init.d/net.eth0 restart
  • Подключаемся любимым способом по ssh
  • Установка завершена


Настройка VLAN командами

Подгружаем модуль ядра

modprobe 8021q

Добавляем Vlan с id 155 на интерфейс eth0

vconfig add eth0 155

при успешном выполнении команды получаем ответ

Added VLAN with VID == 155 to IF -:eth0:-

для удаления Vlan с id 155 с интерфейса eth0 выполняем

vconfig rem eth0.155


Монтирование раздела с пользовательскими данными с использованием квот для пользователей

  • Выполнить обновление сразу дерева портежей и оверлея Calculate, а также базы данных программы eix можно одной командой:
eix-sync

Для успешной работы этой команды необходимо наличие подключения к сети интернет. Команда отрабатывает достаточно долго.

  • Выполнить обновление portage
emerge portage
  • Выполнить обновление системы
emerge -uDNa world


  • Установить программу quota командой:
emerge sys-fs/quota


CDS-сервер хранит данные пользователей в директории 

/var/calculate/server-data/

Предположим, что наш раздел на жестком диске, на котором будут храниться пользовательские данные, будет называться

/dev/sdb1

и будет отформатирован в файловую систему

xfs

предполагается, что читатель знает как отформатировать раздел в эту файловую систему. Необходимо /dev/sdb1 смонтировать в директорию /var/calculate/server-data/ с поддержкой дисковых квот для пользователей.

  • Чтобы монтирование происходило всегда при запуске сервера необходимо в 
/etc/fstab

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

/dev/sdb1 /var/calculate/server-data xfs defaults,usrquota 0 1

например, после строчки, в которой указаны параметры монтирования корневой файловой системы.

Настройка LDAP UNIX SAMBA

  • Настраиваем LDAP командой:
calculate ~ # cl-setup ldap
* WARNING: Executing of the program will change the configuration files and database of LDAP service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes

* Erased LDAP Database ... [ ok ]
* Added ldif file ... [ ok ]
* LDAP service configured ... [ ok ]
  • Настраиваем UNIX командой:
calculate ~ # cl-setup unix
 * WARNING: Executing of the program will change the configuration files and database of LDAP service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes

 * Added ldif file ...                                                   [ ok ]
 * Unix service configured ...                                           [ ok ]
  • Настраиваем SABMA командой:
calculate ~ # cl-setup -n orgname -w orgname-cds samba
 * WARNING: Executing of the program will change the configuration files of Samba service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes

 * Added ldif file ...                                                   [ ok ]
 * Starting Samba ...                                                    [ ok ]
 * Added user client in Unix service
 * Added user client in Samba service
 * Added user admin in Unix service
 * Added user admin in Samba service
 * Samba service configured ...                                          [ ok ]

, где -n orgname - это NET-BIOS имя CD-сервера, а orgname-cds - это имя рабочей группы.

ВНИМАНИЕ:В СЛУЧАЕ С ВВОДОМ WINDOWS В ДОМЕН ИМЯ РАБОЧЕЙ ГРУППЫ БУДЕТ ИСПОЛЬЗОВАТЬСЯ В КАЧЕСТВЕ ИМЕНИ ДОМЕНА!

  • Для подключения unix клиентов, укажите пароль для служебного пользователя client.
calculate ~ # cl-passwd --smb client samba
New password:
Retype new password:
 * Samba password of user client is changed
  • Если Samba сервер будет выступать в качестве PDC (первичного контроллера Windows домена), вам следует задать пароль администратора сервера - пользователя с логином admin.
calculate ~ # cl-passwd --smb admin samba
New password:
Retype new password:
 * Samba password of user admin is changed
 

Особенности настройки SAMBA при работе PDC сразу в нескольких подсетях

Если на сетевом интерфейсе PDC настроено несколько сетей, то находим в /etc/samba/smb.conf строчку:

hosts allow = 192.168.10.0/24 127.

и меняем её на:

hosts allow = 192.168.10.0/24 192.168.156.0.24 127.

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

/etc/init.d/samba restart


http://www.calculate-linux.ru/main/ru/configuration_of_samba_server

Управление пользователями в ssh-консоли сервера

Информация: по данным из общения в IRC канале #calculate-ru на сервере FreeNode, интерфейсов управления пользователями, да еще и с поддержкой квот, пока нет. Это не вполне подходит для задач колледжа, т.к. здесь большая текучесть пользователей постоянно забывающих пароли, превышающих квоты, и т. д. Т.е. нам нужен вебинтерфейс, похожий на существующий LDAPER, только другой (с) лучше ;-)

Добавление пользователя user с квотой в 500 мегабайт и паролем password

cl-useradd user samba <<< 'yes'; cl-usermod -P user samba <<< 'password'; setquota -u user 512000 512000 0 0 /var/calculate/server-data/

Удаление пользователя user

cl-userdel user samba
cl-userdel user unix

Изменение проля пользователю user

cl-passwd user samba

Ввод Windows в домен Calculate

Ввод Windows XP

Настройка домашней директории и рабочего стола

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop /t REG_SZ /d "H:\ђ Ў®зЁ© бв®«" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal /t REG_SZ /d "H:\„®Єг¬Ґ­вл" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop /t REG_SZ /d "H:\ђ Ў®зЁ© бв®«" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal /t REG_SZ /d "H:\„®Єг¬Ґ­вл" /f

Отключить использование автономных файлов в проводнике

  • Создаём чистого локального пользователя
  • Кладем это в файл .reg под чистым пользователем
;Отключить использование автономных файлов в проводнике 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\NetCache] 
"GoOfflineAction"=dword:00000001 
"SyncAtLogoff"=dword:00000000 
"NoReminders"=dword:00000001
  • Запускаем файл на слияние от чистого пользователя
  • Отлогиниваемся, заходим под админом
  • Кладем это в файл .reg под админом
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\NetCache] 
"Enabled"=dword:00000000
  • Запускаем файл на слияние
  • Копируем файл NTUSER.DAT из чистого пользователя в C:\Documents and settings\Default User
  • Вводим машину в домен стандартными средствами Windows.

При выходе CDS пользователя из Windows синхронизация не должна включаться

Ввод Windows 7

Поставить заплатку

http://hotfixv4.microsoft.com/Windows%207/WindowsServer%202008%20R2/sp1/Fix323928/7600/free/416053_intl_i386_zip.exe

Добавить параметры в реестр

Для этого:

  1. создайте файл с расширением reg
  2. поместите туда следующее содержимое
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"LocalProfile"=dword:00000001
"ReadOnlyProfile"=dword:00000001

Проблему с потерей атрибута hidden файлами desktop.ini профиля решил добавлением в раздел [profiles] samba.conf строки hide files = /desktop.ini/ntuser.ini/NTUSER.*/

Ввод Ubuntu Linux в домен

Настройка локальных пользователей student и administrator

После ввода компьютера в домен CDS все домашние директории будут браться с сервера CDS. Это нехорошо, если планируется оставить нескольких локальных пользователей. В нашем случае - administrator и student. Поэтому нужно этим двум пользователям поменять расположение домашней папки. Дла этого:

  • меняем пароль руту тем самым включая его
passwd root
  • перезагружаем машину, входим по Alt+Ctrl+F1, авторизуемся под рутом
  • перемещаем домашние директории пользователей student и administrator в /var
mv /home/administrator /var
mv /home/student /var
  • меняем пользователям расположение домашней папки
usermod -d /var/administrator administrator
usermod -d /var/student student
  • перезагружаемся


Отключение вывода списка пользователей в окне авторизации

gksudo -u gdm dbus-launch gnome-apperance-properties
sudo -u gdm gconftool-2 --set /apps/gdm/simple-greeter/disable_user_list --type bool true

Настройка LDAP авторизации

  • устанавливаем пакеты
aptitude install libpam-ldap libnss-ldap
  • делаем резервные копии файлов
cp /etc/ldap.conf /etc/ldap.conf.backup
cp /etc/nsswitch.conf /etc/nsswitch.conf.backup
  • редактируем файл /etc/ldap.conf. Его содержимое должно быть следующим:
host ip_адрес_ldap_сервера_или_его_dns_имя
base ou=Services,dc=calculate
rootbinddn ou=Unix,ou=Services,dc=calculate
binddn cn=proxyuser,dc=calculate
bindpw calculate
port 389
ldap_version 3
bind_policy soft
nss_base_passwd ou=Users,ou=Unix,ou=Services,dc=calculate?one?shadowFlag=1
nss_base_shadow ou=Users,ou=Unix,ou=Services,dc=calculate?one?shadowFlag=1
nss_base_group ou=Groups,ou=Unix,ou=Services,dc=calculate?one
nss_base_group ou=Groups,ou=Samba,ou=Services,dc=calculate?one
pam_password md5

Если на вашем CDS не настроен Samba сервис, то необходимо удалить строку:

nss_base_group  ou=Groups,ou=Samba,ou=Services,dc=calculate?one
  • редактируем файл /etc/nsswitch.conf, приведя его к следующему виду:
passwd:      files ldap
shadow:      files ldap
group:       files ldap

hosts:       files dns
networks:    files dns

services:    files ldap
protocols:   files ldap
rpc:         db files
ethers:      db files
netmasks:    files
netgroup:    files ldap
bootparams:  files

automount:   files ldap
aliases:     files
  • редактируем файл /etc/pam.d/common-session. Приводим к следующему виду:
session required        pam_unix.so
session required        pam_mkhomedir.so skel=/etc/skel/
session optional        pam_ldap.so
  • проверяем правильность настройки, выполнив команду
id имя_ldap_пользователя_на_сервере

например:

id vasya_pupkin


Оригинал: http://www.calculate-linux.ru/blogs/ru/172/show

Настройка монтирования домашних директорий

На сервере

  • устанавливаем nfs-сервер
emerge net-fs/nfs-utils
  • экспортируем nfs-директорию. для этого открываем файл
/etc/exports

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

# cds users for linux clients
/var/calculate/server-data/samba/home   192.168.0.0/255.255.0.0(rw,sync,no_subtree_check)

# cds share folder for linux clients
/var/calculate/server-data/samba/share  192.168.0.0/255.255.0.0(rw,sync,no_subtree_check)
  • перезапускаем сервис
/etc/init.d/nfs restart
  • настраиваем загрузку nfs-сервера при запуске системы
 rc-update add nfs default

На клиенте

  • устанавливаем nfs-клиент
aptitude install nfs-common
  • создаём точку монтирования для share
mkdir /media/share
  • конфигурируем файл /etc/fstab добавляя в конец следующие строчки:
# mount homes for cds users
192.168.10.222:/var/calculate/server-data/samba/home	/home	nfs	rw,soft,bg,nolock	0	0
# mount shares for cds users
192.168.10.222:/var/calculate/server-data/samba/share	/media/share	nfs	rw,soft,bg,nolock	0	0

Перезагружаемся

Управление пользователями через WEB-интерфейс

Установка Apache+PHP

  • Установка apache:
emerge -av apache
  • После завершения компиляции выполняем:
dispatch-conf
  • Открываем в вашем редакторе /etc/hosts
nano -w /etc/hosts

меняем

127.0.0.1 localhost

на

127.0.0.1 localhost.localdomain localhost your_hostname

где "your_hostname" имя хоста из /etc/conf.d/hostname

  • Устанавливаем PHP
emerge -av php

Проверяем настройки

nano -w /etc/conf.d/apache2

cтрока:

APACHE2_OPTS=

должна содержать:

-D PHP5

Для тестирования PHP устанавливаем утилиту phpsysinfo

emerge -av phpsysinfo
  • Отключаем http и оставляем только https доступ на сервер
rm /etc/apache2/vhosts.d/00_default_vhost.conf

Проверка работы Apache+PHP. Каталог Apache

  • Проверяем работу Apache
идем по адресу http://server_ip_address и видим "It Works" в браузере
  • Проверяем работу PHP

устанавливаем утилиту phpsysinfo

emerge -av phpsysinfo

проверяем:

идем по адресу http://server_ip_address/phpsysinfo и видим информацию о PHP


Включение поддержки pdo_sqlite

emerge -av dev-php/PEAR-MDB2_Driver_sqlite

если попросят, то

emerge -av --autounmask-write dev-php/PEAR-MDB2_Driver_sqlite

а потом опять

emerge -av dev-php/PEAR-MDB2_Driver_sqlite

затем перезапускаем апач

/etc/init.d/apache2 restart

далее включаем в апаче поддержку pdo

echo ' dev-lang/php sqlite sqlite3 pdo' >> /etc/portage/package.use/custom
emerge dev-lang/php
/etc/init.d/apache2 restart
  • Где находится корневой каталог apache?

вот тут:

/var/www/localhost/htdocs


  • Как сделать чтобы apache запускался при старте системы?

вот так:

rc-update add apache2 default

Установка WEB-интерфейса

Настройка sudoers для запуска root-команд пользователем apache

  • Для установки sudo выполните команду:
emerge -avt app-admin/sudo
  • Далее для того, чтобы разрешить пользователю apache выполнять команды из-под sudo в директории /etc/sudoers.d создайте файл director
# for director root-login
apache	ALL = NOPASSWD: /bin/cat
apache	ALL = NOPASSWD: /bin/cp
apache	ALL = NOPASSWD: /bin/mkdir
apache	ALL = NOPASSWD: /bin/chown
apache	ALL = NOPASSWD: /usr/bin/cl-useradd
apache	ALL = NOPASSWD: /usr/bin/cl-usermod
apache	ALL = NOPASSWD: /usr/sbin/setquota
apache	ALL = NOPASSWD: /usr/sbin/repquota
apache	ALL = NOPASSWD: /usr/bin/cl-userdel
apache	ALL = NOPASSWD: /usr/bin/cl-passwd
apache	ALL = NOPASSWD: /usr/bin/cl-info
apache	ALL = NOPASSWD: /usr/bin/cl-groupadd
apache	ALL = NOPASSWD: /usr/bin/cl-groupmod
apache	ALL = NOPASSWD: /usr/bin/cl-groupdel
apache ALL = NOPASSWD: /bin/ ... продолжение следует.

После данных манипуляций PHP должен корректно выполнять команды вида.

<?php exec("sudo /bin/cat /path/to/file");?>

Установка ZendFramework

emerge -av dev-php/ZendFramework

Распаковка WEB-интерфейса

  • Загрузите архив по ссылке (тут будет ссылка, когда будет что загружать)
  • Распакуйте архив в директорию 
/var/www/localhost/htdocs
  • Зайдите браузером по адресу
http://<server_ip_address>/director

Введите root-пароль от сервера в появившемся WEB-интерфейсе.

Если все прошло успешно, то WEB-интерфейс установлен.