Инструкция по установке контроллера домена ALDPro с использованием автоматического скрипта Предварительные требования Аппаратные требования: Процессор: x86-64
ОЗУ: минимум 4 ГБ (рекомендуется 8 ГБ)
HDD: минимум 40 ГБ свободного места
Сетевой интерфейс: 1 Гбит/с
Программные требования: Astra Linux 1.7.8 (x86-64)
Доступ к репозиториям Astralinux
Права root/sudo
Сетевые требования: Статический IP-адрес (например: 10.40.4.20)
Шлюз (например: 10.40.4.1)
DNS-сервер
Имя домена (например: ald.inet)
Быстрый старт Шаг 1: Подготовка системы Установите чистую Astra Linux 1.7.8
Подключите систему к сети
Войдите с правами root:
bash
sudo -i Шаг 2: Настройка параметров Отредактируйте переменные в начале скрипта:
bash
GW_IP="10.40.4.1" # IP-адрес шлюза GW_DNS="10.40.4.1" # DNS-сервер DC_IP="10.40.4.20" # IP контроллера домена DC_PASSWORD="пароль" # Пароль администратора домена DOMAIN="ald.inet" # Имя домена DC_NAME="dc01" # Имя контроллера домена DC_MASK="24" # Маска подсети Шаг 3: Запуск скрипта bash
chmod +x install-aldpro.sh ./install-aldpro.sh Процесс установки Этап 1: Подготовка (автоматически) Скрипт выполнит:
Отключение IPv6
Настройку статического IP
Обновление имени хоста
Настройку /etc/hosts
Перезагрузку системы
Этап 2: Установка (автоматически) После перезагрузки скрипт продолжит:
Настройку репозиториев
Установку пакетов ALDPro
Настройку DNS
Установку контроллера домена
Финальную перезагрузку
Время установки Подготовка: 2-3 минуты
Установка пакетов: 10-15 минут
Настройка домена: 5-10 минут
Итого: ~20-30 минут
Проверка установки После установки проверьте:
1. Статус служб: bash
systemctl status aldpro-* 2. Информация о домене: bash
samba-tool domain info 127.0.0.1 3. Проверка DNS: bash
nslookup dc01.ald.cektu.inet 127.0.0.1 4. Сетевые настройки: bash
hostname ip addr show cat /etc/hosts Устранение неполадок Проблема: Нет доступа к репозиториям Решение: Проверьте подключение к интернету:
bash
ping dl.astralinux.ru Проблема: Ошибка установки пакетов Решение: Проверьте источники:
bash
cat /etc/apt/sources.list apt update Проблема: DNS не работает Решение: Проверьте настройки:
bash
cat /etc/resolv.conf systemctl status aldpro-dns Проблема: Домен не создается Решение: Проверьте логи:
bash
tail -f /var/log/aldpro/install.log journalctl -xe Файлы конфигурации После установки будут созданы:
text
/etc/hosts # Файл hosts /etc/resolv.conf # Настройки DNS /etc/samba/ # Конфигурация Samba/AD /var/log/aldpro/ # Логи ALDPro Безопасность Рекомендуемые действия после установки: Сменить пароль администратора:
bash
aldpro-administrator Настроить брандмауэр:
bash
# Разрешить порты AD ufw allow 53/tcp # DNS ufw allow 88/tcp # Kerberos ufw allow 389/tcp # LDAP ufw allow 445/tcp # SMB Настроить резервное копирование
Поддержка Полезные команды: bash
# Просмотр логов journalctl -u aldpro-* -f
# Перезапуск служб systemctl restart aldpro-*
# Проверка репликации aldpro-syncer-status
# Управление пользователями samba-tool user list
СКРИПТ
Код #!/bin/bash
# Конфигурационные параметры GW_IP="10.40.4.1" GW_DNS="10.40.4.1" DC_IP="10.40.4.20" DC_USER="admin" DC_PASSWORD="Passw0RDDDDD" DOMAIN="ald.test" DC_NAME="dc01" DC_MASK="24"
# Проверка прав if [[ $EUID -ne 0 ]]; then echo "Этот скрипт должен запускаться с правами root. Используйте sudo." >&2 exit 1 fi
# Функция для логирования log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" }
# Сохраняем текущее имя хоста CURRENT_HOSTNAME=$(hostname -s) # Только короткое имя без домена log "Текущее имя хоста: $CURRENT_HOSTNAME" log "Целевое имя хоста: ${DC_NAME}.${DOMAIN}"
# Проверка домена CURRENT_DOMAIN=$(hostname -d 2>/dev/null || echo "") if [ "$CURRENT_DOMAIN" != "$DOMAIN" ]; then log "=== Этап 1: Подготовка системы перед присоединением к домену ==="
# Отключение IPv6 log "Отключение IPv6..." cat >> /etc/sysctl.conf << EOF net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6=1 net.ipv6.conf.eth0.disable_ipv6=1 EOF sysctl -p > /dev/null 2>&1
# Настройка сети через nmcli log "Настройка сети..."
# Ищем активное соединение ACTIVE_CONN=$(nmcli -t -f NAME,DEVICE con show --active | grep -v "^lo:" | cut -d: -f1 | head -1)
if [ -n "$ACTIVE_CONN" ]; then log "Найдено активное соединение: $ACTIVE_CONN" if [ "$ACTIVE_CONN" != "net1" ]; then nmcli con mod "$ACTIVE_CONN" connection.id net1 2>/dev/null || \ nmcli con add type ethernet con-name net1 ifname eth0 2>/dev/null fi else log "Создание нового соединения net1..." nmcli con add type ethernet con-name net1 ifname eth0 2>/dev/null fi
# Настройка параметров сети nmcli con mod net1 \ ipv4.addresses "${DC_IP}/${DC_MASK}" \ ipv4.gateway "${GW_IP}" \ ipv4.method manual \ ipv6.method ignore \ connection.autoconnect yes 2>/dev/null
# Настройка DNS nmcli con mod net1 ipv4.dns "${GW_DNS}" 2>/dev/null nmcli con up net1 2>/dev/null
# Проверка сетевого подключения log "Проверка сетевого подключения..." if ping -c 2 -W 1 "${GW_IP}" > /dev/null 2>&1; then log "Сетевое подключение установлено успешно" else log "Предупреждение: Не удается подключиться к шлюзу ${GW_IP}" >&2 log "Проверьте настройки сети вручную:" log " ip addr show" log " nmcli con show net1" fi
# Обновление /etc/hosts - ПО НОВОМУ ФОРМАТУ log "Обновление файла /etc/hosts по новому формату..."
# Backup оригинального файла cp /etc/hosts /etc/hosts.bak.$(date +%Y%m%d_%H%M%S)
# Создаем новый файл /etc/hosts cat > /etc/hosts << EOF 127.0.0.1 localhost.localdomain localhost #127.0.1.1 $CURRENT_HOSTNAME - закомментировать или удалить строку с адресом локальной петли ${DC_IP} ${DC_NAME}.${DOMAIN} ${DC_NAME} EOF
log "Содержимое нового /etc/hosts:" cat /etc/hosts | while read line; do log " $line" done
# Устанавливаем hostname log "Установка hostname..." hostnamectl set-hostname "${DC_NAME}.${DOMAIN}"
# Применяем hostname без перезагрузки hostname "${DC_NAME}.${DOMAIN}"
# Проверяем изменения log "Текущее имя хоста после изменений: $(hostname)" log "Текущий домен после изменений: $(hostname -d 2>/dev/null || echo 'не определен')"
log "Подготовка завершена. Перезагрузка через 10 секунд..." log "После перезагрузки скрипт продолжит установку контроллера домена." echo "Для отмены перезагрузки нажмите Ctrl+C в течение 10 секунд..."
sleep 10 reboot exit 0 fi
log "=== Этап 2: Установка контроллера домена ALDPro ==="
# Проверка текущих настроек log "Проверка текущих настроек:" log " Имя хоста: $(hostname)" log " Короткое имя: $(hostname -s)" log " Домен: $(hostname -d 2>/dev/null || echo 'нет')" log " IP-адрес: $(hostname -I | awk '{print $1}')" log "" log "Содержимое /etc/hosts:" cat /etc/hosts | while read line; do log " $line" done
# Проверка доступности репозиториев log "Проверка сетевого подключения..." if ! ping -c 2 8.8.8.8 > /dev/null 2>&1; then log "Ошибка: Нет доступа в интернет" >&2 exit 1 fi
# Настройка репозиториев log "Настройка репозиториев..." cat > /etc/apt/sources.list << EOF deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.8/repository-base/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.8/repository-extended/ 1.7_x86-64 main contrib non-free EOF
cat > /etc/apt/sources.list.d/aldpro.list << EOF deb https://dl.astralinux.ru/aldpro/frozen/01/2.4.2 1.7_x86-64 main base EOF
# Временный DNS (до установки AD) log "Настройка временного DNS..." cat > /etc/resolv.conf << EOF search ${DOMAIN} nameserver ${GW_DNS} nameserver 8.8.8.8 options timeout:2 attempts:2 EOF
# Настройка DNS в сетевом соединении nmcli con mod net1 ipv4.dns "${GW_DNS} 8.8.8.8" 2>/dev/null nmcli con up net1 2>/dev/null
# Обновление и установка пакетов log "Обновление списка пакетов..." apt update
if [ $? -ne 0 ]; then log "Ошибка обновления пакетов. Проверьте репозитории." >&2 exit 1 fi
log "Установка компонентов ALDPro..." export DEBIAN_FRONTEND=noninteractive
# Проверка доступности пакетов if ! apt-cache show aldpro-mp > /dev/null 2>&1; then log "Ошибка: Пакет aldpro-mp не найден в репозиториях" >&2 exit 1 fi
apt install -y aldpro-mp aldpro-gc aldpro-syncer
if [ $? -ne 0 ]; then log "Ошибка установки пакетов ALDPro" >&2 exit 1 fi
# Настройка DNS после установки (локальный DNS) log "Настройка локального DNS..." cat > /etc/resolv.conf << EOF nameserver 127.0.0.1 search ${DOMAIN} options timeout:2 attempts:2 EOF
nmcli con mod net1 ipv4.dns "127.0.0.1" 2>/dev/null nmcli con up net1 2>/dev/null
# Установка контроллера домена log "Запуск установки контроллера домена..." log "Параметры:" log " Домен: ${DOMAIN}" log " Имя сервера: ${DC_NAME}" log " Пароль администратора: ******"
# Выполняем установку контроллера домена aldpro-server-install -d "${DOMAIN}" -n "${DC_NAME}" -p "${DC_PASSWORD}" \ --ip $DC_IP --no-reboot --setup_syncer --setup_gc
INSTALL_RESULT=$? if [ $INSTALL_RESULT -ne 0 ]; then log "Ошибка установки контроллера домена (код: $INSTALL_RESULT)" >&2 log "Проверьте логи: /var/log/aldpro/install.log" >&2 exit 1 fi
log "Установка контроллера домена успешно завершена!" log "" log "=== ПРОВЕРКА УСТАНОВКИ ===" log "1. Проверьте содержимое /etc/hosts:" cat /etc/hosts | while read line; do log " $line" done log "" log "2. Проверьте службы: systemctl status aldpro-*" log "3. Проверьте домен: samba-tool domain info 127.0.0.1" log "4. Проверьте сетевые настройки:" log " - IP: $(hostname -I)" log " - Hostname: $(hostname)" log "" log "Перезагрузка через 15 секунд для применения всех изменений..." echo "Для отмены перезагрузки нажмите Ctrl+C в течение 15 секунд..."
sleep 15 reboot
exit 0
|