Найти тему
Nikita Bubnov

Ввод Astra Linux Special Edition 1.6 в Active Directory с настройкой SSO в PostgreSQL.

Оглавление

Настроим ОС Astra Linux SE 1.6 и введем в домен MS Active Directory. В процессе настроим SMABA, WINBIND и POSTGRESQL, а также настроим в POSTGRESQL SSO через GSSAPI.

Данная настройка проводилась с обновлением ОС Astra Linux SE 1.6 - 20191029SE16. Процесс обновления ОС не описан в процессе конфигурации.

Вводные данные

Контроллеры домена Active Directory

Имя - dc1,dc2
Домен- -test.local
ОС - MS Windows Server 2012R2
IP – 192.168.0.1, 192.168.0.2

Сервер c базой данных Postgresql

Имя – bd1
ОС – Astra Linux SE 1.6. Установлена без ALD и без режима киоска. Дополнительное ПО выбрано базовые средства, рабочий стол Fly, средства работы в сети, СУБД.
IP – 192.168.0.100

Разблокировка учетной записи ROOT

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

$ sudo passwd –u root

Зададим пароль

$ sudo passwd root

Для безопасности по окончанию работ требуется заблокировать учетную запись ROOT!

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

Приведем файл /etc/hosts к виду

192.168.0.100 bd1.test.local bd1
127.0.0.1 localhost
192.168.0.1 test.local
192.168.0.2 test.local

Проверим правильность имени машины в /etc/hostname

bd1

Настроим статический IP-адрес, для этого внесем строки в файл /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.0.0
gateway 192.168.0.101
dns-domain test.local
dns-nameservers 192.168.0.1 192.168.0.2

Для автоматической генерации файла /etc/resolv.conf установим пакет resolvconf.

apt-get install resolvconf

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

service networking restart

Проверим, должен появиться интерфейс eth0 с назначенным нами адресом 192.168.0.100

Ifconfig

Проверим доступность контроллеров домена Active Directory

ping dc1.test.local
ping dc2.test.local

Настроим синхронизацию времени с контроллерами домена, для этого в файле /etc/ntp.conf добавим в секцию «You do need to talk to an NTP server or two (or three)»

server TEST.local

Синхронизируем время

ntpdate dc1.test.local

Установим требуемые пакеты

Сначала проверим установлены ли пакеты SAMBA, WINBIND, NTP и POSTGRESQL

dpkg – l samba winbind ntp postgresql

Произведем до установку пакетов которые нам потребуются далее (потребуется диск с дистрибутивом ОС)

apt-get install nscd nslcd libpam-winbind libpam-krb5 libsasl2-modules-gssapi-mit krb5-user libnss-winbind

Чтобы установить следующий пакет потребуется диск разработчика

apt-get install libsasl2-modules-ldap

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

ldconfig

Настройка конфигурационных файлов для работы с доменом Active Directory.

Отредактируем конфигурационный файл Kerberos /etc/krb5.conf и приведем его к виду

[libdefaults]
default_realm = TEST.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]
TEST.LOCAL = {
kdc = dc1.test.local
kdc = dc2.test.local
admin_server = dc1.test.local
default_domain = test.local
}
[domain_realm]
.test.local = TEST.LOCAL
test.local = TEST.LOCAL
[login]
krb4_convert = true
krb4_get_tickets = false
[logging]
kdc = SYSLOG:INFO:DAEMON
kdc = FILE:/var/log/kdc.log
admin_server = FILE:/var/log/krb5.log
Отредактируем конфигурационный файл SAMBA /etc/samba/smb.conf и приведем его к виду
[global]
workgroup = TEST
realm = TEST.LOCAL
os level = 0
invalid users = root
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
dns proxy = no
security = ads
kerberos method = secrets and keytab
dedicated keytab file = /etc/krb5.keytab
encrypt passwords = true
domain logons = no
socket options = TCP_NODELAY
local master = no
domain master = no
preferred master = no
idmap config * : range = 10000-20000
idmap comfig * : backend = tdb
template shell = /bin/bash
template homedir = /home/%D/%U
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
winbind offline logon = yes
winbind refresh tickets = yes

Проверим файл конфигурации SAMBA на наличие ошибок, выполнив команду

testparm

Отредактируем файл лимитов /etc/security/limits.conf, добавив в конец

* - nofile 65536
root - nofile 65536

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

ulimit –n 65536

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

passwd: compat winbind
group: compat winbind
shadow: compat winbind
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

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

service smbd restart
service winbind restart
service ntp restart
service nscd restart
service nslcd restart

Введем наш сервер Astra Linux в домен MS Active Directory, потребуется учетная запись администратора домена.

net ads join –U Administrator

После ввода у нас должен появиться файл /etc/krb5.keytab. Просмотрим список принципалов в файле

net ads keytab list

Изменим права для обеспечения возможности чтения файла /etc/krb5.keytab

chmod 0644 /etc/krb5.keytab

Включим автозагрузку SAMBA (если автоматически не загружается)

systemctl enable smbd

Включим автозагрузку POSTGRESQL (если автоматически не загружается)

systemctl enable postgresql

Перезагрузим ОС Astra Linux

reboot

Проверим стату служб

service smbd status
service winbind status
service nscd status
service nslcd status
service postgresql status

Проверим связь с доменом Active Directory и связанных служб

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

Проверим Kerberos, работоспособность авторизации пользователя

kinit Administrator
klist
kdestroy

Настроим POSQTGRESQL c прозрачной(SSO) авторизацией через GSSAPI.

Отредактируем строки конфигурационного файла POSTGRESQL /etc/postgresql/9.6/main/postgresql.conf

listen_addresses = '*'
krb_server_keyfile = '/etc/krb5.keytab'
krb_caseins_users = off

Отредактируем строки файла конфигурации авторизации POSTGRESQL /etc/postgresql/9.6/main/pg_hba.conf

host all all 192.168.0.0/24 gss

Дадим права пользователю Postgers

user mod –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

Перезапустим POSTGRES

service postgresql restart

На контроллере домена MS Active Directory нужно выполнить команду для добавления принципала к учетной записи машины bd1

setspn –A postgres/bd1.test.local bd1

Заблокируем пользователя ROOT, для безопасности.

usermod –e 1 root