Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

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

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

Информация
iconfalse
Имя - dc
Домен – dev.local
ОС - Windows Server 2008 R2. Настроен как контроллер домена
ip - 192.168.1.1

Веб-сервер:

Информация
iconfalse
Имя – ws3
ОС - Astra Linux 1.5 SE. Установлена без ALD и без режима киоска. Из дополнительного ПО на этапе установки выбрано: базовые средства, рабочий стол Fly, средства работы в сети, сетевые сервисы, СУБД.
ip - 192.168.1.3

1. Разблокирование суперпользователя (root)

Для более удобной работы разблокируем учётную запись root:

Command

$sudo passwd –u root


Назначим пароль для учётной записи root:

Command

$sudo passwd root


root разблокирован. Можно использовать su или перезайти root-ом. Можно не использовать учётную запись root, а команды выполнять с использованием sudo. По завершении настроек учётную запись root необходимо заблокировать!

...

В начало файла /etc/hosts добавить строки:

Блок кода
languagec#
title/etc/hosts
192.168.1.3	ws3.dev.local ws3

...


127.0.0.1	localhost


Строку с 127.0.1.1 ws3 удалить.

Убедиться, что в файле /etc/hostname правильно указано имя машины:

Блок кода
title/etc/hostname
ws3

Назначим статический ip-адрес. В файл /etc/network/interfaces добавить строки:

Блок кода
languagepy
title/etc/network/interfaces
auto eth0

...


iface eth0 inet static

...


address 192.168.1.3

...


gateway 192.168.1.1

...


netmask 255.255.255.0


Создать файл /etc/resolv.conf и добавить строки:

Блок кода
title/etc/resolv.conf
domain dev.local

...


search dev.local

...


nameserver 192.168.1.1


Перезапустим сетевую службу:

Command
service networking restart


Просмотреть доступные сетевые интерфейсы и назначенные адреса:

Command
ip a


с ws3 можно проверить отклик контроллера домена по протоколу icmp по имени:

Command
ping dc.dev.local


Синхронизируем время с контроллером домена:

Command
ntpdate dc.dev.local

3. Установка требуемых пакетов

Проверить установлены ли samba, winbind, ntp, apache2 и postgresql:

Command
dpkg -l samba winbind ntp apache2 postgresql


Установить дополнительные пакеты (потребуется диск с дистрибутивом):

Command
apt-get install nscd nslcd libpam-winbind libpam-krb5 libapache2-mod-auth-kerb php5 php5-pgsql php5-sybase php5-ldap libsasl2-modules-ldap libsasl2-modules-gssapi-mit krb5-user


Выполнить команду:

Command

ldconfig

4. Настройка конфигурационных файлов

Редактируем файл /etc/krb5.conf и добавляем недостающую информацию в соответствующие разделы:

Блок кода
languagebash
[libdefaults]
    default_realm = DEV.LOCAL
    krb4_config = /etc/krb.conf
    krb4_realms = /etc/krb.realms
    kdc_timesync = 1
    ccache_type = 4
    forwardable = true
    proxiable = true
    v4_instance_resolve = false
    v4_name_convert = {
        host = {
            rcmd = host
            ftp = ftp
        }
        plain = {
            something = something-else
        }
    }
    fcc-mit-ticketflags = true
    [realms]
    DEV.LOCAL = {
        kdc = dc.dev.local
        admin_server = dc.dev.local
        default_domain = dev.local
    }
    [domain_realm]
    .dev.local = DEV.LOCAL
    dev.local = DEV.LOCAL
    [login]
    krb4_convert = true
    krb4_get_tickets = false

...


Проверим нет ли ошибок в конфигурации samba, выполнив команду:

Command
testparm


Редактируем файл /etc/security/limits.conf. Добавляем в конец:

Блок кода
languagebash
title/etc/security/limits.conf
* - nofile 65536

...


root - nofile 65536


Выполнить команду:

Command
ulimit -n 65536


Радактируем файл /etc/nsswitch.conf:

Блок кода
passwd: compat winbind

...


group: compat winbind

...


shadow: compat

...


hosts: files dns

...


networks: files

...


protocols: db files

...


services: db files

...


ethers: db files

...


rpc: db files

...


netgroup: nis


Редактируем файл /etc/pam.d/common-session. Добавляем в конец:

Блок кода
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077


Перезапустим службы:

Command
service samba restart
service winbind restart
service ntp restart
service nscd restart
service nslcd restart


Вводим Astra Linux в домен windows (требуется учётная запись администратора домена):

Command
net ads join -U Administrator


В результате успешного выполнения предыдущей команды должен появиться файл /etc/krb5.keytab. Просмотреть список принципалов в этом файле можно командой:

Command
net ads keytab list


Позволим остальным читать файл /etc/krb5.keytab:

Command
chmod 0744 /etc/krb5.keytab


Добавим в автозапуск:

Command
insserv -v /etc/init.d/apache2
insserv -v /etc/init.d/samba



Проверить установлен ли Postgresql в автозагрузку:

Command
chkconfig --list postgresql


Перезагрузим ОС:

Command
reboot


Проверим загрузились ли требуемые службы:

Command
service samba status
service winbind status
service nscd status
service nslcd status
service apache2 status
service postgresql status


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

Command
net ads testjoin
wbinfo –p
wbinfo –t
wbinfo –u
getent passwd | grep DEV


Проверим Kerberos. Попробуем получить tgt для доменного пользователя:

Command
kinit Administrator
klist
kdestroy

5. Настройка Apache и Postgresql на работу с Kerberos

Редактируем файл /etc/apache2/sites-available/default. Настраиваем директорию на использование Kerberos:

Блок кода
<Directory /var/www/>

...


    AuthType Kerberos
    KrbServiceName host/ws3.dev.local@DEV.LOCAL
    Krb5Keytab /etc/krb5.keytab
    KrbMethodK5Passwd off
    KrbLocalUserMapping on
    KrbSaveCredentials on
    Require valid-user

...


</Directory>


Принципал, задаваемый параметром KrbServiceName, должен быть в файле таблицы ключей /etc/krb5.keytab. Проверить можно командой:

Command
net ads keytab list


Назначим права для пользователя www-data, от имени которого работает Apache, для доступа к macdb и к файлу таблицы ключей:

Command
usermod -a -G shadow www-data
setfacl -d -m u:www-data:r /etc/parsec/macdb
setfacl -R -m u:www-data:r /etc/parsec/macdb
setfacl -m u:www-data:rx /etc/parsec/macdb
setfacl -m u:www-data:r /etc/krb5.keytab


Всем доменным пользователям, которым требуется доступ к веб-серверу, необходимо назначить мандатные метки и уровни:

Command
pdpl-user -z domain_user


Перезапустим Apache:

Command
service apache2 restart


Редактируем файл /etc/postgresql/9.4/main/postgresql.conf.:

Блок кода
listen_addresses = '*'

...


krb_server_keyfile = '/etc/krb5.keytab'

...


krb_caseins_users = off


Редактируем файл /etc/postgresql/9.4/main/pg_hba.conf:

Блок кода
local all all peer

...


host all all 192.168.1.0/24 gss


Назначим права для пользователя postgres, от имени которого работает Postgresql, для доступа к macdb и к файлу таблицы ключей:

Command
usermod -a -G shadow postgres
setfacl -d -m u:postgres:r /etc/parsec/macdb
setfacl -R -m u:postgres:r /etc/parsec/macdb
setfacl -m u:postgres:rx /etc/parsec/macdb
setfacl -m u:postgres:r /etc/krb5.keytab


Перезапустим Postgresql:

Command
service postgresql restart


На контроллере домена dc нужно добавить принципала к учётной записи машины ws3, для чего выполнить команду от имени администратора:

Command
setspn -A postgres/ws3.dev.local ws3


Если пользователь root был разблокирован, то его необходимо заблокировать выполнив команду:

Command
usermod –e 1 root