Модуль 2 · статья

Комплексное руководство по настройке корпоративной ИТ-инфраструктуры

Аннотация

В данной статье рассматриваются пошаговые инструкции по настройке ключевых сервисов корпоративной сети: управление пользователями Samba через скрипты, развёртывание сетевого хранилища NFS, синхронизация времени через Chrony/NTP, автоматизация управления сетевым оборудованием с помощью Ansible, а также развёртывание и защита веб-приложения.

1 Автоматизация настройки пользователей Samba

Для массового создания пользователей, установки им паролей, отключения срока действия пароля и добавления в группу удобно использовать bash-скрипт.

Скрипт настройки:

bash · скрипт настройки
# Создание группы 'ab'
samba-tool group add ab

# Цикл для создания 5 пользователей (abuser1 ... abuser5)
for i in {1..5}; do
  # Создание пользователя с паролем P@ssw0rd
  samba-tool user add "abuser$i" "P@ssw0rd"
  # Отключение срока действия пароля
  samba-tool user setexpiry "abuser$i" --noexpiry
  # Добавление пользователя в группу 'ab'
  samba-tool group addmembers "ab" "abuser$i"
done

2 Настройка файловой системы NFS на сервере HQ-SRV

Настройка выполняется в два этапа: на стороне сервера и на стороне клиента.

2.1. Настройка сервера

bash
# Создание директории для экспорта
mkdir -p /raid/nfs
# Установка полных прав доступа (для тестовых сред)
chmod 777 /raid/nfs
# Применение изменений в конфигурации экспорта
exportfs -arv
# Включение и запуск службы NFS-сервера
systemctl enable --now nfs-server

2.2. Настройка клиента

bash
# Создание точки монтирования и установка прав
mkdir -p /mnt/nfs
chmod 777 /mnt/nfs
# Добавление записи в /etc/fstab для автоматического монтирования
# Пример строки: <IP_сервера>:/raid/nfs /mnt/nfs nfs defaults,_netdev 0 0
vim /etc/fstab
# Монтирование всех файловых систем из fstab с выводом информации
mount -a -v

3 Настройка синхронизации времени (Chrony / NTP)

Корректное время критически важно для работы служб аутентификации и логирования. Настроим сервер времени на Linux и клиентов на базе Linux и Ecorouter.

3.1. Настройка сервера времени (Linux)

bash
# Редактирование конфигурационного файла (раскомментировать или добавить allow и server)
vim /etc/chrony.conf
# Перезапуск службы
systemctl restart chronyd
# Проверка синхронизации
chronyc tracking

3.2. Настройка клиента на маршрутизаторе Ecorouter

EcoRouter CLI
Ecorouter(config)# ntp server 172.16.1.1
# Проверка статуса NTP
ecorouter# show ntp status

3.3. Настройка клиента на Linux

bash
# Указание сервера времени в конфигурации
vim /etc/chrony.conf
# Добавить строку: server 172.16.1.1 iburst
# Перезапуск службы
systemctl restart chronyd
# Проверка источников времени
chronyc sources

4 Настройка системы автоматизации Ansible

Ansible позволяет централизованно управлять конфигурациями как Linux-серверов, так и сетевого оборудования (Ecorouter).

4.1. Подготовка управляющей ноды (Linux)

bash
# Обновление репозиториев и установка базовых пакетов
apt-get update && apt-get install -y ansible sshpass
# Установка необходимых зависимостей Python
apt-get install -y python3-pip
pip3 install ansible-pylibssh
# Установка коллекций для работы с сетевым оборудованием
ansible-galaxy collection install ansible.netcommon
ansible-galaxy collection install cisco.ios
# Настройка инвентаризационного файла
vim /etc/ansible/hosts
/etc/ansible/hosts
server ansible_host=10.10.100.2 ansible_user=sshusser ansible_password=P@ssw0rd ansible_port=2026
cli ansible_host=10.10.200.2 ansible_user=root ansible_password=toor
router ansible_host=172.16.1.2 ansible_user=admin ansible_password=admin ansible_connection=network_cli ansible_network_os=ios

4.2. Подготовка сетевого оборудования (Ecorouter)

Для работы Ansible по SSH без интерактивного подтверждения необходимо отключить строгие проверки безопасности (в тестовых целях):

EcoRouter CLI
Ecorouter(config)# security none

4.3. Проверка подключения

bash
# Проверка доступности всех узлов из инвентаря
ansible -m ping all

5 Развёртывание веб-приложения на сервере

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

bash · монтирование и копирование
# 1. Монтирование ISO-образа (только для чтения)
mount -o -ro -t iso9660 /home/user/additional.iso /mnt/
# 2. Копирование файлов веб-приложения
cp /mnt/web/index.php /var/www/html/
cp /mnt/web/logo.png /var/www/html/
bash · MariaDB
# 3. Настройка СУБД MariaDB
systemctl enable --now mariadb
# Вход в консоль MariaDB под пользователем root
mariadb -u root
MariaDB консоль
# Внутри консоли MariaDB выполнить:
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> USE webdb;
MariaDB [webdb]> SELECT user FROM mysql.user;
MariaDB [webdb]> ALTER USER 'web'@'localhost' IDENTIFIED BY 'P@ssw0rd';
MariaDB [webdb]> EXIT;
bash · правка конфигурации
# 4. Правка конфигурации веб-приложения (при необходимости)
vim /var/www/html/index.php
Параметры подключения к БД в index.php
Параметры подключения к БД в index.php
bash · перезапуск веб-сервера
# 5. Перезапуск веб-сервера (httpd или apache2 в зависимости от дистрибутива)
systemctl restart httpd
# или systemctl restart apache2
bash · импорт дампа БД
# 6. Импорт дампа базы данных
mariadb -u web -p'P@ssw0rd' -D webdb < /mnt/cdrom/web/dump.sql

6 Настройка базовой веб-аутентификации (HTTP Basic Auth)

Для ограничения доступа к веб-ресурсам можно использовать механизм .htpasswd в связке с Nginx.

bash
# Установка утилиты для работы с паролями (пакет apache2-utils)
apt-get install -y apache2-htpasswd
# Создание файла паролей и добавление пользователя WEB
# Флаг -c создает новый файл (использовать только при первом запуске)
htpasswd -c /etc/nginx/.htpasswd WEB
bash
# Проверка конфигурационного файла Nginx на синтаксические ошибки
nginx -t
# Перезапуск веб-сервера Nginx для применения изменений
systemctl restart nginx
Модуль 2 · Корпоративная ИТ-инфраструктура · конспект