ALTSOGO: различия между версиями
Vovan (обсуждение | вклад) (→Запуск ADMC) |
Vovan (обсуждение | вклад) |
||
Строка 151: | Строка 151: | ||
chmod +x /opt/admc.sh | 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-синтаксис, потому что мы ленивы и прагматичны... | ||
+ | |||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | 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 -W sogo -c "\l" |
Версия 23:54, 3 августа 2025
Содержание
План
1. Ставим ALT DC
2. Ставим PostgreSQL сервер
3. Ставим SOGO и настраиваем его на ALT DC и PostgreSQL
Делаем всё на Alt Starterkit GNOME P11, опираясь на документацию от P10 (на момент создания этой статьи для P11 официальной документации не было):
Ставим 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 -W sogo -c "\l"