Настроим ОС 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