Опубликовано 17 июня17 июнь ? Настройка доменного контроллера на alt-linux серВеРе 2 (за пример я взял Samba).Перед настройкой удалим bind.Apt-get remove bindПроверить etc/resolv.conf (nameserver 8.8.8.8)перед скачивание пакета samba, после проверки обновляем и скачиваем.apt-get updateapt-get install task-samba-dcПосле скачивание, resolv возвращаем в исходное положение и также добавляем DNS-сервер(если он имеется)Nano /etc/resolv.confNameserver 192.168.1.2Теперь удалим конфиг smb.conf, чтобы он не мешал при настройке службы:rm -rf /etc/samba/smb.confНастроим hosts, добавив новую запись в конец файла:mcedit /etc/hosts192.168.4.2 “ваш hostname серВеРа 2”Теперь в конфигурацию нашего DNS-сервера на сервере 1 добавим следующую строку в dnsmasq.conf:server=/ww-domain.org/192.168.4.2systemctl restart dnsmasqА теперь запускаем автонастройку доменного контроллера на cерВеРе 2(где мы установили samba)samba-tool domain provisionпросто 4-ре раза подряд нажимаем Enter192.168.1.2 (Здесь вводим значение)PasswordПеремещаем сгенерированный конфиг krb5.conf и включаем службу samba:mv -f /var/lib/samba/private/krb5.conf /etc/krb5.confsystemctl enable sambaexport EDITOR=nanocrontab -eИ вносим в конец файла следующие строки:@reboot /bin/systemctl restart network@reboot /bin/systemctl restart sambaRebootПроверка работы домены:samba-tool domain info 127.0.0.1На этом этапе можно создать группу и пользователей, а так же добавление их в группу.samba-tool user add user1.ww 123asdW%samba-tool group add ww-название группыsamba-tool group addmembers ww user1.wwТеперь введём клиентскую машину в домен, открываем терминал и заходим под root и пишем acc, после нажимем аутентификация.Далее ставим галочку на “Домен Active Directory” и вводим:Домен: WW-DOMAIN.ORGРабочая группа: WW-DOMAINИмя компьютера: “ваш hostname”Далее вводим пароль, который писали при настройке домена через samba-tool и перезагружаем.Чтобы настроить права созданных нами пользователей, нужно установить ещё один пакет на серВеРе 2, подключаем нужный репозиторий:Apt-repo add rpm http://altrepo.ru/local-p10 noarch local-p10Apt-get updateApt-get install sudo-samba-schemaДалее добавляем новую схему следующей командой:sudo-schema-applyОткроется следующее диалоговое окно, нажимаем yes и вводим пароль админа, потом ok:Create-sudo-ruleИ вносим следующие изменения (имя правила можно любое):Имя правила : prava_wwsudoCommand : /bin/catsudoUser : %wwЗаходим под локальным пользователем на клиентской машине:Apt-get updateApt-get install admcKinit administratorPasswordИ запускаем admc:admcВключим дополнительные возможности через настройки.Поменяем опцию sudoOption в созданном нами ранее правиле prava_ww (правило всегда будет находиться в OU с названием sudoers): Новое значение будет:!authenticateИ добавим ещё две команды в опцию sudoCommand (grep и id):/bin/cat/bin/grep/usr/bin/idЗаходим на клиентмкую машину и установить дополнительные пакеты:apt-get updateapt-get install sudo libsss_sudoРазрешаем использование sudo: control sudo publicНастроим конфиг sssd.conf:mcedit /etc/sssd/sssd.confservices = nss, pam, sudosudo_provider = adТеперь отредактируем nsswitch.conf:mcedit /etc/nsswitch.confsudoers: files sssЗаходим на клиентскую машину заходим под root и пишем:rm -rf /var/lib/sss/db/*sss_cache -Esssd: systemctl restart sssdCtrl+Alt+F2 и заходим под rootsudo -l -U user1.wwПриступаем к следующему этапу – импортируем пользователей из таблицы Users.csv. Для начала скачиваем если не скачан.curl -L https://bit.ly/3C1nEYz > /root/users.zipunzip /root/users.zipmv /root/Users.csv /opt/Users.csvСоздаём файл import и пишем туда следующий код:mcedit import #!/bin/bashcsv_file="/opt/Users.csv"while IFS=";" read -r firstName lastName role phone ou street zip city country password; do if [ "$firstName" == "First Name" ]; then continue fi username="${firstName,,}.${lastName,,}" sudo samba-tool user add "$username" 123asdW%done < "$csv_file" Сохраняем этот файл и выдаём ему право на выполнение и запускаем его:chmod +x /root/importbash /root/import ==================================================?. Конфигурация файлового хранилища на сервере 1Для начала нужно создать три дополнительных диска размером 1 ГБ каждый.Теперь заходим в виртуальную машину и просматриваем все диски, которые мы подключили, следующей командой:LsblkТеперь создадим дисковый массив уровня 5 из трёх дополнительных дисков следующей командой: (название дисков может отличаться)mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sd[b-d]Посмотрим статус нашего raid-массива и схораним:cat /proc/mdstatmdadm --detail -scan --verbose > /etc/mdadm.confТеперь создаём раздел через fdisk.fdisk /dev/md0Затем пишем n, потом p и нажимаем 3-раз подряд Enter, потом w. mkfs.ext4 /dev/md0p1Теперь настроим автоматическое монтирование в /raid5. Добавляем следующую строку в конец файла /etc/fstab:/dev/md0p1<--->/raid5<--->ext4<--->defaults<--->0<--->0Затем создаём каталог /raid5 и монтируем ФС из /etc/fstab:mkdir /raid5mount -aТеперь настроим сервер файловой системы NFS:apt-get updateapt-get install nfs-serverПриступаем к самой настройке, создадим каталог, назначим нового владельца и группу ему и выдадим новые права:mkdir /raid5/nfschown 99:99 /raid5/nfschmod 777 /raid5/nfsОткроем каталог для общего доступа в сторону подсети, для этого заходим в /etc/exports:/raid5/nfs 192.168.2.0/28(rw,sync,no_subtree_check)После выходим и принимаем изменения:exportfs -aexportfs -vsystemctl enable –now nfssystemctl restart nfsТеперь идём монтировать этот каталог на клиенте для этого нужно:apt-get updateapt-get install nfs-clientsmkdir -p /mnt/nfsДобавляем следующую строку в конец файла /etc/fstab:192.168.1.2:/raid5/nfs<--->/mnt/nfs<--->nfs<--->intr,soft,_netdev,x-systemd.automount<--->0 0mount -amount -vtouch /mnt/nfs/52?. Настройка службы сетевого времени на базе сервиса chronyДля его настройки на роутере 1:Apt-get updateApt-get install chronydЗаходим и редактируем файл /ect/chrony.conflocal stratum 5allow 192.168.1.0/26allow 192.168.2.0/28allow 172.16.5.0/28allow 192.168.4.0/27и закомментируем#pool 2.debian#rtcsyncПотом перезагружаем chronysystemctl enable --now chronysystemctl restart chronyВыключаем теперь ту самую синхронизацию:timedatectl set-ntp 0timedatectlТеперь переходим к настройке клиента и перед установкой новой службы выключим chrony:systemctl disable --now chronydsystemctl status chronydОбновляем список пакетов и скачиваем службу systemdtimesyncd:apt-get updateapt-get install systemd-timesyncdТеперь зайдём в конфиг /etc/systemd/timesyncd.conf и отредактируем только одну строку:NTP=192.168.1.1Теперь включим службу systemd-timesyncd и посмотрим её статус работы:systemctl enable --now systemd-timesyncdtimedatectl timesync-statusНо помните, что NTP для 2-ого сервера – это внешний IP-адрес 1-ого роуиера, то-есть 172.16.4.2.Иногда машина багается и для это нужно Ctrl+Alt+F2 и пропсать startx и нажать продолжить и потом reboot.?. Сконфигурируйте ansible на серВеРе 2Для начала проверим, обновлены ли у нас списки пакетов и затем попробуем установить ansible:apt-get updateapt-get install ansibleДалее нам нужен рабочий каталог для нашего ansible, который может быть уже создан, НО если нет, то создадим его следующей командой:mkdir /etc/ansibleУ нас он уже создан, и там же находится нужный нам файл hosts, тоже уже созданный. Теперь нам нужно написать следующие строки в файл hosts:nano /etc/ansible/hostsone-srv ansible_host=testshuser@192.168.1.2 ansible_port=2024 ansible_python_interpreter=/usr/bin/python3one-cli ansible_host=testhuser@192.168.2.5 ansible_port=2024 ansible_python_interpreter=/usr/bin/python3fir-rtr ansible_host=test_admin@192.168.1.1 ansible_port=22ansible_python_interpreter=/usr/bin/python3sec-rtr ansible_host=test_admin@192.168.4.1 ansible_port=22Теперь на серВеРе 2 генерируем ключи RSA, чтобы экспортировать их на машины клиенты, строку с путём и passphrase оставляем пустой:ssh-keygen -t rsaКопируем публичный ключ на клиентские машины, первая из них будет sec-rtr:ssh-copy-id -p 22 test_admin@192.168.4.1ssh-copy-id -p 2024 testshuser@192.168.2.5ssh-copy-id -p 2024 testshuser@192.168.1.2ssh-copy-id -p 22 test_admin@192.168.1После этого мы можем проверить связь.ansible all -m ping?. Развертывание приложений в Docker на сервере серВеРе 2Перед настройкой нам необходимо обновить список пакетов и установить dockerapt-get updateapt-get install docker-engine docker-composeИ запустим службу docker:systemctl enable --now dockerЗагружаем образы следующей командой:docker pull mediawikidocker pull mariadbСоздаем в домашней директории пользователя файл:mcedit /home/user/wiki.ymlИ заполняем его следующими строками, обратите внимание, что в строках ПРОБЕЛЫ, А НЕ ТАБУЛЯЦИЯ:services: | mariadb: || image: mariadb || container_name: mariadb || restart: always || environment: ||| MYSQL_ROOT_PASSWORD: 123asdW% ||| MYSQL_DATABASE: mediawiki ||| MYSQL_USER: wiki ||| MYSQL_PASSWORD: WikiP@ssword || volumes: || - mariadb_data:/var/lib/mysql| wiki: || image: mediawiki || container_name: wiki || restart: always || environment: ||| MEDIAWIKI_DB_HOST: mariadb ||| MEDIAWIKI_DB_USER: wiki ||| MEDIAWIKI_DB_PASSWORD: WikiP@ssword ||| MEDIAWIKI_DB_NAME: mediawiki || ports: ||| - "8080:80" || volumes: || #- /home/user/mediawiki/LocalSettings.php:/var/www/html/LocalSettings.phpvolumes: | mariadb_data: После всех настроек строку volumes. мы обратно раскомментируем, убрав символ #!Приступаем к запуску контейнера wiki.yml, в зависимости от версии compose, существует ещё одна запись, она для второй его версии:Обычная версия: docker-compose -f /home/user/wiki.yml up -dВторая версия: docker compose -f /home/user/wiki.yml up -dЗаходим с клиента на сайт после запуска контейнера и пишем в браузера:192.168.4.2:8080Видим, что файл LocalSettings.php не найден, и нажимаем на complete the installation или set up the wiki.Видим строки, которые нужно заполнить:Хост базы данных: mariadbИмя базы данных (без дефисов): mediawikiИмя пользователя базы данных: wikiПароль базы данных: WikiP@ssw0rdПрожимаем Далее, оставляя всё как естьПишем в строках следующее и выбираем пункты, как на скрине:Название вики: (можно своё название)Ваше имя участника: wikiПароль: WikiP@ssw0rdДалее автоматически скачивается файл LocalSettings.php, который нужно переместить теперь на сервер с mediawiki, а именно на серВеРа 2 c cli:scp -P 2024 /home/user (смотрите под каким пользователем вы авторизировались до настройки)/LocalSettings.php testshuser@192.168.4.2:/home/testshuser/Теперь заходим на серВеР 2 и перемещаем скачанный файл в /root, но перед этим удаляем то, что создалось в /root (могло и не создаваться, так даже лучше):rm -rf /home/user/LocalSettings.phpmkdir /home/user/mediawikimv /home/user/huser/LocalSettings.php /home/mediawiki/ls /home/user/mediawiki/Раскомментируем, как и говорили ранее, строку volumes.Теперь перезапускаем контейнеры путём запуска контейнера ещё раз:docker compose -f wiki.yml up -d?. На роутерах сконфигурируйте статическую трансляцию портовПробросим порт 80 в порт 8080 и порт 2024 в порт 2024 на роутерах sec-rtr, для обеспечения работы сервиса mediawiki и ssh, правила прописываем через консоль:iptables -t nat -A PREROUTING -p tcp -d 192.168.4.1 --dport 80 -j DNAT -- to-destination 192.168.4.2:8080iptables -t nat -A PREROUTING -p tcp -d 192.168.4.1 --dport 2024 -j DNAT - -to-destination 192.168.4.2:2024iptables-save > /root/rulesПробросим порт 2024 в порт 2024 на роутере fir-rtr, для обеспечения работы сервиса ssh, правило прописываем через консоль:iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 2024 -j DNAT - -to-destination 192.168.1.2:2024iptables-save > /root/rules?. Запустите сервис moodle на сервере 1Устанавливаем для ряд пакетов, которые будут нам нужны для работы:apt-get update apt-get install apache2 php8.2 apache2-mod_php8.2 mariadb-server php8.2- opcache php8.2-curl php8.2-gd php8.2-intl php8.2-mysqli php8.2-xml php8.2- xmlrpc php8.2-ldap php8.2-zip php8.2-soap php8.2-mbstring php8.2-json php8.2-xmlreader php8.2-fileinfo php8.2-sodiumВключаем службы httpd2 и mysqld для дальнейшей работы с ними следующей командой:systemctl enable –now httpd2 mysqldТеперь настроим безопасный доступ к нашей будущей базе данных с помощью команды:mysql_secure_installationПрожимаем просто enter, т.к. сейчас root без пароля: EnterПрожимаем y для задания пароля: yЗадаем пароль к нашему root, желательно стандартный: 123asdW%Далее нажимаем на всё y, как на скриншоте: yТеперь заходим в СУБД для создания и настройки базы данных:mariadb -u root -pCREATE DATABASE moodledb;CREATE USER moodle IDENTIFIED BY ‘P@ssw0rd’;GRANT ALL PRIVILEGES ON moodledb.* TO moodle;FLUSH PRIVILEGES;ExitТеперь скачаем сам мудл стабильной версии:curl -L https://github.com/moodle/moodle/archive/refs/tags/v4.5.0.zip > /root/moodle.zipРазархивируем его в /var/www/html/ для дальнейшей настройки:unzip /root/moodle.zip -d /var/www/htmlmv /var/www/html/moodle-4.5.0/* /var/www/html/ls /var/www/htmlСоздадим новый каталог moodledata, там будут храниться данные и изменим владельца на каталогах html и moodledata:mkdir /var/www/moodledatachown apache2:apache2 /var/www/htmlchown apache2:apache2 /var/www/moodledataПоменяем значение параметра max_input_vars в файле php.inimcedit /etc/php/8.2/apache2-mod_php/php.iniЖмём F7 для поиска нужной нам строки и пишем туда:max_input_varsРаскомментируем и пишем новое значение: max_input_vars = 5000Удаляем стандартную страницу apachecd /var/www/htmllsrm index.htmlПерезапускаем службу httpd2:systemctl restart httpd2Теперь подключаемся с клиента и начинаем настройку:http://192.168.1.2/install.phpЖмём далееВыбираем MariaDB в качестве драйвера базы данных:Введём нужные данные в следующие строки:Название базы данных: moodledbПользователь базы данных: moodleПароль: P@ssw0rdНажимаем “Продолжить”:Просматриваем всё ли в статус “OK” или “Проверка” и прожимаем “Продолжить”:После установки видим, что всё прошло успешно и жмём “Продолжить”:Далее заполняем обязательные поля для создания основного администратора:Логин: adminНовый пароль: P@ssw0rdИмя: Администратор (можно любое)Фамилия: Пользователь (можно любое)Адрес электронной почты: test@mail.ru (можно любое)И нажимаем “Обновить профиль”:Теперь заполним ещё некоторые строки на следующем шаге:Полное название сайта: moodleКраткое название сайта: 11Настройки местоположения: Азия/БарнаулКонтакты службы поддержки: test.test@mail.ruИ жмём “Сохранить изменения” в конце страницы:?. Настройте веб-сервер nginx как обратный прокси-сервер на fir-rtrПоменяем значение wwwroot в конфигурации moodle на сервере 1:mcedit /var/www/html/config.php$CFG->wwwroot = ‘http://moodle.ww-domain.org’;Устанавливаем пакет nginx на fir-rtr:apt install nginxСоздаём новый конфигурационный файл proxy:mcedit /etc/nginx/sites-available/proxyserver {| listen 80;|server_name moodle.ww-domain.org;|location / {||proxy_pass http://192.168.1.2:80;||proxy_set_header Host $host;||proxy_set_header X-Real-IP $remote_addr;||proxy_set_header X-Forwarded-For $remote_addr;|}}server {|listen 80;|server_name wiki.ww-domain.org;|location / {||proxy_pass http://192.168.4.2:8080;||proxy_set_header Host $host;||proxy_set_header X-Real-IP $remote_addr;||proxy_set_header X-Forwarded-For $remote_addr;|}} Удаляем конфигурацию (default), которую создал nginx, потом включаем созданную нами ранее (proxy):rm -rf /etc/nginx/sites-available/defaultrm -rf /etc/nginx/sites-enabled/defaultln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabledls -la /etc/nginx/sites-enabledsystemctl restart nginx?.apt-get updateapt-get install yandex-browser-stable
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.