ALTSOGO: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Настройка Samba DC)
(Настройка Samba DC)
Строка 242: Строка 242:
 
Для этого места была настройка контроллера домена, описанная в разделе 1.1 этой статьи.
 
Для этого места была настройка контроллера домена, описанная в разделе 1.1 этой статьи.
  
Итак, создаём в домене пользователя sogo с паролем Pa$$word (при запросе дважды ввести пароль):
+
Итак, создаём в домене пользователя sogo с паролем
 +
 
 +
Pa$$word
 +
 
 +
(при запросе дважды ввести пароль):
  
 
  samba-tool user create sogo
 
  samba-tool user create sogo
 
  samba-tool user setexpiry --noexpiry sogo
 
  samba-tool user setexpiry --noexpiry sogo

Версия 00:08, 4 августа 2025

План

1. Ставим ALT DC

2. Ставим PostgreSQL сервер

3. Ставим SOGO и настраиваем его на ALT DC и PostgreSQL

Делаем всё на Alt Starterkit GNOME P11, опираясь на документацию от P10 (на момент создания этой статьи для P11 официальной документации не было):

sogo--chapter

sambadc--chapter

Ставим ALT DC

После обновления системы и ядра...

Выставляем часовой пояс и синхронизируем время

timedatectl set-timezone Europe/Moscow
ntpdate pool.ntp.org

Отключаем сервисы и устанавливаем необходимые пакеты

for service in smb nmb; do systemctl disable $service; systemctl stop $service; done
apt-get install -y task-samba-dc admc

Подготовка конфигурационных файлов ситемы

Задаём имя хоста

hostnamectl set-hostname dc.domain.alt

Также проверить и при необходимости поправить имя хоста в файле

/etc/sysconfig/network

Перезагрузиться для проверки

reboot

Далее настраиваем 127.0.0.1 в качестве DNS сервера системы (далее в команде создания домена мы добавим возможность для этого DNS сервера делать запросы к внешним DNS серверам)

cat << EOF > /etc/resolv.conf
search alt
nameserver 127.0.0.1
EOF

Здесь приведена команда конфигурирования файла /etc/hosts, исходя из того, что у настраиваемого сервера локальный IP-адрес: 192.168.1.246

cat << EOF > /etc/hosts
192.168.1.246 dc.domain.alt domain.alt
127.0.0.1 localhost
EOF

Создание домена одной командой

Перед выполнением команды создания домена нужно удалить конфигурационный файл:

/bin/rm -rf /etc/samba/smb.conf /var/lib/samba /var/cache/samba

mkdir -p /var/lib/samba/sysvol

Для домена

domain.alt

с паролем

Pa$$word

и адресом внешнего DNS сервера

8.8.8.8

команда создания домена будет такой:

samba-tool domain provision --realm=domain.alt --domain domain --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --option="dns forwarder=8.8.8.8"

Включение сервиса и проверка работы домена

Включение

systemctl enable --now samba

Проверка

samba-tool domain info 127.0.0.1

В ответ должно прилететь что-то типа этого:

Forest           : domain.alt
Domain           : domain.alt
Netbios domain   : DOMAIN
DC name          : dc.domain.alt
DC netbios name  : DC
Server site      : Default-First-Site-Name
Client site      : Default-First-Site-Name

Настройка Kerberos

/bin/cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Запуск ADMC

ADMC -- графическая утилита. Поэтому желательно на сервере иметь графику.

В этой статье контроллер домена развёртывается на базе Alt Starterkit GNOME P11, поэтому с наличием графики проблем нет (да и кого волнует в 21 веке лишние пару сотен мегабайт на диске виртуальной машины).

Для корректной работы приложения ADMC необходимо получить билет Kerberos командой

kinit Administrator

В ответ необходимо ввести пароль от доменного администратора.


ВАЖНО! Иногда стоит эту команду вводить вручную, а не полагаться на написанный скрипт (про скрипт буквально ченез несколько строчек ниже будет), поскольку иногда утилита


kinit

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

Собственно, про скрипт: Чтобы это автоматизировать, можно, например, сделать скрипт автоматического запуска ADMC.

В примере создаётся скрипт в файле

/opt/admc.sh

для запуска ADMC с получением билета для пользователя

Administrator с паролем
Pa$$word

Пример heredoc-команды:

cat << 'EOF' > /opt/admc.sh
#!/bin/bash
echo 'Pa$$word' | kinit Administrator
admc
EOF
chmod +x /opt/admc.sh


Ставим PostgreSQL сервер

Установка

apt-get install -y postgresql17-server postgresql17-contrib

Первоначальный запуск

/etc/init.d/postgresql initdb

ВНИМАНИЕ!

Два последующих конфигурационных файла будут созданы без лишних комментариев внутри только для ускорения процесса демонстрации. Поэтому предварительно для них будут созданы резервные копии, в которые настоятельно рекомендуется хотя-бы один раз заглянуть, чтобы понять, что параметров значительно больше чем необходимых и достаточных для работы!

Делаем резервные копии

cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.backup
cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.backup

Далее используем heredoc-синтаксис, потому что мы ленивы и прагматичны...

cat << 'EOF' > /var/lib/pgsql/data/pg_hba.conf 
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0            md5

# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
EOF
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf 
listen_addresses = '*'		# what IP address(es) to listen on;
max_connections = 100			# (change requires restart)
shared_buffers = 128MB			# min 128kB
dynamic_shared_memory_type = posix	# the default is usually the first option
max_wal_size = 1GB
min_wal_size = 80MB
log_destination = 'stderr'		# Valid values are combinations of
logging_collector = on		# Enable capturing of stderr, jsonlog,
log_directory = 'log'			# directory where log files are written,
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
log_file_mode = 0600			# creation mode for log files,
log_rotation_size = 10MB		# Automatic rotation of logfiles will
log_min_messages = warning		# values in order of decreasing detail:
log_checkpoints = off
log_connections = off
log_disconnections = off
log_timezone = UTC
datestyle = 'iso, mdy'
timezone = UTC
default_text_search_config = 'pg_catalog.english'
EOF
systemctl enable --now postgresql

Создаём пользователя и базу данных для SOGO:

su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole sogo'
su - postgres -s /bin/sh -c 'createdb -O sogo sogo'

Перезапускаем сервис

systemctl restart postgresql

Проверяем

psql -U sogo sogo -c "\l"

Ставим SOGO и настраиваем его на ALT DC и PostgreSQL

Ставим SOGO

apt-get install -y task-sogo

Настройка Samba DC

Для этого места была настройка контроллера домена, описанная в разделе 1.1 этой статьи.

Итак, создаём в домене пользователя sogo с паролем

Pa$$word

(при запросе дважды ввести пароль):

samba-tool user create sogo
samba-tool user setexpiry --noexpiry sogo