Перейти к содержанию

Настройка samba 2

Рекомендуемые сообщения

Опубликовано

? Настройка доменного контроллера  на alt-linux серВеРе 2 (за пример я взял Samba).

Перед настройкой удалим bind.

Apt-get remove bind

Проверить etc/resolv.conf (nameserver 8.8.8.8)перед скачивание пакета samba, после проверки обновляем и скачиваем.

apt-get update

apt-get install task-samba-dc

После скачивание, resolv возвращаем в исходное положение и также добавляем DNS-сервер(если он имеется)

Nano /etc/resolv.conf

Nameserver 192.168.1.2

Теперь удалим конфиг smb.conf, чтобы он не мешал при настройке службы:

rm -rf /etc/samba/smb.conf

Настроим hosts, добавив новую запись в конец файла:

mcedit /etc/hosts

192.168.4.2 “ваш hostname серВеРа 2”

Теперь в конфигурацию нашего DNS-сервера на сервере 1 добавим следующую строку в dnsmasq.conf:

server=/ww-domain.org/192.168.4.2

systemctl restart dnsmasq

А теперь запускаем автонастройку доменного контроллера на cерВеРе 2(где мы установили samba)

samba-tool domain provision

просто 4-ре раза подряд нажимаем Enter

192.168.1.2 (Здесь вводим значение)

Password

Перемещаем сгенерированный конфиг krb5.conf и включаем службу samba:

mv -f /var/lib/samba/private/krb5.conf /etc/krb5.conf

systemctl enable samba

export EDITOR=nano

crontab -e

И вносим в конец файла следующие строки:

@reboot /bin/systemctl restart network

@reboot /bin/systemctl restart samba

Reboot

Проверка работы домены:

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-p10

Apt-get update

Apt-get install sudo-samba-schema

Далее добавляем новую схему следующей командой:

sudo-schema-apply

Откроется следующее диалоговое окно, нажимаем yes и вводим пароль админа, потом ok:

Create-sudo-rule

И вносим следующие изменения (имя правила можно любое):

Имя правила : prava_ww

sudoCommand : /bin/cat

sudoUser : %ww

Заходим под локальным пользователем на клиентской машине:

Apt-get update

Apt-get install admc

Kinit administrator

Password

И запускаем admc:

admc

Включим дополнительные возможности через настройки.

Поменяем опцию sudoOption в созданном нами ранее правиле prava_ww (правило всегда будет находиться в OU с названием sudoers):         

Новое значение будет:

!authenticate

И добавим ещё две команды в опцию sudoCommand (grep и id):

/bin/cat

/bin/grep

/usr/bin/id

Заходим на клиентмкую машину и установить дополнительные пакеты:

apt-get update

apt-get install sudo libsss_sudo

Разрешаем использование sudo:

 control sudo public

Настроим конфиг sssd.conf:

mcedit /etc/sssd/sssd.conf

services = nss, pam, sudo

sudo_provider = ad

Теперь отредактируем nsswitch.conf:

mcedit /etc/nsswitch.conf

sudoers: files sss

Заходим на клиентскую машину заходим под root и пишем:

rm -rf /var/lib/sss/db/*

sss_cache -E

sssd: systemctl restart sssd

Ctrl+Alt+F2 и заходим под root

sudo -l -U user1.ww

Приступаем к следующему этапу – импортируем пользователей из таблицы Users.csv. Для начала скачиваем если не скачан.

curl -L https://bit.ly/3C1nEYz > /root/users.zip

unzip /root/users.zip

mv /root/Users.csv /opt/Users.csv

Создаём файл import и пишем туда следующий код:

mcedit import

 

#!/bin/bash

csv_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/import

bash /root/import

 

 

 

==================================================

?. Конфигурация файлового хранилища на сервере 1

Для начала нужно создать три дополнительных диска размером 1 ГБ каждый.

Теперь заходим в виртуальную машину и просматриваем все диски, которые мы подключили, следующей командой:

Lsblk

Теперь создадим дисковый массив уровня 5 из трёх дополнительных дисков следующей командой: (название дисков может отличаться)

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sd[b-d]

Посмотрим статус нашего raid-массива и схораним:

cat /proc/mdstat

mdadm --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 /raid5

mount -a

Теперь настроим сервер файловой системы NFS:

apt-get update

apt-get install nfs-server

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

mkdir /raid5/nfs

chown 99:99 /raid5/nfs

chmod 777 /raid5/nfs

Откроем каталог для общего доступа в сторону подсети, для этого заходим в /etc/exports:

/raid5/nfs 192.168.2.0/28(rw,sync,no_subtree_check)

После выходим и принимаем изменения:

exportfs -a

exportfs -v

systemctl enable –now nfs

systemctl restart nfs

Теперь идём монтировать этот каталог на клиенте для этого нужно:

apt-get update

apt-get install nfs-clients

mkdir -p /mnt/nfs

Добавляем следующую строку в конец файла /etc/fstab:

192.168.1.2:/raid5/nfs<--->/mnt/nfs<--->nfs<--->intr,soft,_netdev,x-systemd.automount<--->0 0

mount -a

mount -v

touch /mnt/nfs/52

?. Настройка службы сетевого времени на базе сервиса chrony

Для его настройки на роутере 1:

Apt-get update

Apt-get install chronyd

Заходим и редактируем файл /ect/chrony.conf

local stratum 5

allow 192.168.1.0/26

allow 192.168.2.0/28

allow 172.16.5.0/28

allow 192.168.4.0/27

и закомментируем

#pool 2.debian

#rtcsync

Потом перезагружаем chrony

systemctl enable --now chrony

systemctl restart chrony

Выключаем теперь ту самую синхронизацию:

timedatectl set-ntp 0

timedatectl

Теперь переходим к настройке клиента и перед установкой новой службы выключим chrony:

systemctl disable --now chronyd

systemctl status chronyd

Обновляем список пакетов и скачиваем службу systemdtimesyncd:

apt-get update

apt-get install systemd-timesyncd

Теперь зайдём в конфиг /etc/systemd/timesyncd.conf и отредактируем только одну строку:

NTP=192.168.1.1

Теперь включим службу systemd-timesyncd и посмотрим её статус работы:

systemctl enable --now systemd-timesyncd

timedatectl timesync-status

Но помните, что NTP для 2-ого сервера – это внешний IP-адрес  1-ого роуиера, то-есть 172.16.4.2.

Иногда машина багается и для это нужно Ctrl+Alt+F2 и пропсать startx и нажать продолжить и потом reboot.

?. Сконфигурируйте ansible на серВеРе 2

Для начала проверим, обновлены ли у нас списки пакетов и затем попробуем установить ansible:

apt-get update

apt-get install ansible

Далее нам нужен рабочий каталог для нашего ansible, который может быть уже создан, НО если нет, то создадим его следующей командой:

mkdir /etc/ansible

У нас он уже создан, и там же находится нужный нам файл hosts, тоже уже созданный. Теперь нам нужно написать следующие строки в файл hosts:

nano /etc/ansible/hosts

one-srv ansible_host=testshuser@192.168.1.2 ansible_port=2024 ansible_python_interpreter=/usr/bin/python3

one-cli ansible_host=testhuser@192.168.2.5 ansible_port=2024 ansible_python_interpreter=/usr/bin/python3

fir-rtr ansible_host=test_admin@192.168.1.1 ansible_port=22

ansible_python_interpreter=/usr/bin/python3

sec-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.1

ssh-copy-id -p 2024 testshuser@192.168.2.5

ssh-copy-id -p 2024 testshuser@192.168.1.2

ssh-copy-id -p 22 test_admin@192.168.1

После этого мы можем проверить связь.

ansible all -m ping

?. Развертывание приложений в Docker на сервере серВеРе 2

Перед настройкой нам необходимо обновить список пакетов и установить docker

apt-get update

apt-get install docker-engine docker-compose

И запустим службу docker:

systemctl enable --now docker

Загружаем образы следующей командой:

docker pull mediawiki

docker 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.php

volumes:

  | 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.php

mkdir /home/user/mediawiki

mv /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:8080

iptables -t nat -A PREROUTING -p tcp -d 192.168.4.1 --dport 2024 -j DNAT - -to-destination 192.168.4.2:2024

iptables-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:2024

iptables-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 -p

CREATE 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/html

mv /var/www/html/moodle-4.5.0/* /var/www/html/

ls /var/www/html

Создадим новый каталог moodledata, там будут храниться данные и изменим владельца на каталогах html и moodledata:

mkdir /var/www/moodledata

chown apache2:apache2 /var/www/html

chown apache2:apache2 /var/www/moodledata

Поменяем значение параметра max_input_vars в файле php.ini

mcedit /etc/php/8.2/apache2-mod_php/php.ini

Жмём F7 для поиска нужной нам строки и пишем туда:

max_input_vars

Раскомментируем и пишем новое значение: max_input_vars = 5000

Удаляем стандартную страницу apache

cd /var/www/html

ls

rm 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/proxy

server {

| 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/default

rm -rf /etc/nginx/sites-enabled/default

ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled

ls -la /etc/nginx/sites-enabled

systemctl restart nginx

?.

apt-get update

apt-get install yandex-browser-stable

  • 2 недели спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.