Загрузка данных
BR -srv
apt-get update && apt-get install -y task-samba-dc
for service in smb nmb krb5kdc slapd bind;
do
systemctl disable $service --now;
done
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
rm -rf /var/cache/samba
mkdir -p /var/lib/samba/sysvol
samba-tool domain provision
(указать айпи hq-srv)
systemctl enable --now samba
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
systemctl restart samba
echo "search au-team.irpo" > /etc/net/ifaces/enp7s1/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/net/ifaces/enp7s1/resolv.conf
systemctl restart network
kinit administrator@AU-TEAM.IRPO
samba-tool group add hq
for i in {1..5};
do
samba-tool user add hquser$i P@ssw0rd;
samba-tool user setexpiry hquser$i --noexpiry;
samba-tool group addmembers "hq" hquser$i;
done
hq-cli
host au-team.irpo
apt-get update && apt-get install -y task-auth-ad-sssd
apt-get install -y libnss-role
roleadd hq wheel
nano /etc/sudoers
Cmnd_Alias SHELLCMD = /bin/cat, /bin/grep, /bin/id
WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: SHELLCMD
HQ-SRV:
apt-get update && apt-get install -y mdadm
lsblk
mdadm --zero-superblock --force /dev/sdb /dev/sdc
mdadm --create --verbose /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdс
mdadm --detail --scan --verbose | tee -a /etc/mdadm.conf
mkfs.ext4 /dev/md0
echo "/dev/md0 /raid ext4 defaults 0 0" >> /etc/fstab
mkdir /raid
mount -av
lsblk
cat /et c/mdadm.conf
blkid /dev/md0
HQ-SRV:
apt-get install -y nfs-server nfs-utils
mkdir /raid/nfs
chmod 777 /raid/nfs
vim /etc/exports
echo "/raid/nfs (АЙПИ АДРЕС СЕТИ КЛИЕНТА HQ с маской)(rw, no_root_squash)" > /etc/exports
exportfs -arv
systemctl enable –now nfs-server.service
HQ-CLI:
su -
mkdir /mnt/nfs
chmod -R 777 /mnt/nfs
echo "(адрес hq-srv):/raid/nfs /mnt/nfs nfs defaults,_netdev 0 0" >> /etc/fstab
mount -av
df -h
echo "Hello" > /mnt/nfs/test.txt
cat /mnt/nfs/test.txt
ISP:
sed -i "s/^pool/#pool/" /etc/chrony.conf
cat <<EOF >> /etc/chrony.conf
server ntp0.ntp-servers.net iburst prefer minstratum 4
local stratum 5
allow 0.0.0.0/0
EOF
systemctl restart chronyd
chronyc tracking
HQ-rtr
sed -i "s/^pool/#pool/" /etc/chrony.conf
Echo "server 172.16.1.1 iburst" >> /etc/chrony.conf
systemctl restart chronyd
(интерфейс к isp)
BR-RTR:
sed -i "s/^pool/#pool/" /etc/chrony.conf
echo "server 172.16.2.1 iburst" >> /etc/chrony.conf
systemctl restart chronyd
HQ-SRV:
sed -i "s/^pool/#pool/" /etc/chrony.conf
Echo "server 172.16.1.1 iburst" >> /etc/chrony.conf
systemctl restart chronyd
BR-SRV:
sed -i "s/^pool/#pool/" /etc/chrony.conf
echo "server 172.16.2.1 iburst" >> /etc/chrony.conf
systemctl restart chronyd
HQ-CLI:
sed -i "s/^pool/#pool/" /etc/chrony.conf
echo "server 172.16.1.1 iburst" >> /etc/chrony.conf
systemctl restart chronyd
chronyc sources
BR-SRV:
apt-get update && apt-get install –y ansible sshpass
apt-get install –y python3-module-pip
pip3 install ansible-pylibssh
cat <<EOF > /etc/ansible/ansible.cfg
[defaults]
inventory = /etc/ansible/hosts
host_key_checking = False
EOF
cat <<EOF > /etc/ansible/hosts
HQ-SRV ansible_host=192.168.100.2 ansible_user=sshuser ansible_password=P@ssw0rd ansible_port=2026
HQ-CLI ansible_host=192.168.200.2 ansible_user=user ansible_password=resu
HQ-RTR ansible_host=10.10.10.1 ansible_user=user ansible_password=resu
ВR-RTR ansible_host=192.168.0.1 ansible_user=user ansible_password=resu
[all:vars]
ansible_python_interpreter=/usr/bin/python3
EOF
BR-SRV:
apt-get install –y docker-engine docker-compose-v2
systemctl enable --now docker.service
mount /dev/sr0 /mnt/
docker load < /mnt/docker/site_latest.tar
docker load < /mnt/docker/mariadb_latest.tar
docker image is
cat <<EOF> compose.yaml
services:
database:
container_name: db
image: mariadb: 10.11
restart: always
ports:
- "3306:3306"
environment:
MARIADB_DATABASE: "testdb"
MARIADB_USER: "testc"
MARIADB_PASSWORD: "P@ssw0rd@
MARIADB_ROOT_PASSWORD: "toor"
app:
container_name: testapp
image: site:latest
restart: always
ports:
-"8080:8000"
environment:
DB_TYPE: "maria"
DB_HOST: "192.168.0.2"
DB_PORT: "3306"
DB_NAME: "testdb"
DB_USER: "testc"
DB_PASS: "P@ssw0rd"
depends_on:
- database
EOF
docker compose up -d
docker compose ps
на hq cli 192.168.0.2:8080
HQ-SRV:
apt-get install –y lamp-server
mount /dev/sr0 /mnt/
cp /mnt/web/index.php /var/www/html/
cp /mnt/web/logo.png /var/www/html/
vi /var/www/html/index.php
$username = "webc";
$password = "P@ssw0rd";
$dbname = "webdb";
systemctl enable --now mariadb
mariadb –u root
CREATE DATABASE webdb;
CREATE USER ‘webc’@’localhost’ IDENTIFIED BY ‘P@ssw0rd’;
GRANT ALL PRIVILEGES ON webdb.* TO ‘webc’@’localhost’ WITH GRANT OPTION;
EXIT;
mariadb –u webc –p –D webdb < /mnt/web/dump.sql
systemctl enable --now httpd2
192.168.100.2
HQ_RTR:
iptables -t nat -A PREROUTING -i enp7s3 -p tcp --dport 2026 -j DNAT --to-destination 192.168.100.2:2026
iptables -t nat -A PREROUTING -i enp7s3 -p tcp --dport 8080 -j DNAT --to-destination 192.168.100.2:8080
iptables-save >> /etc/sysconfig/iptables
BR-RTR:
iptables -t nat -A PREROUTING -i enp7s3 -p tcp --dport 2026 -j DNAT --to-destination 192.168.0.2:2026
iptables -t nat -A PREROUTING -i enp7s3 -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.2:8080
iptables-save >> /etc/sysconfig/iptables
ISP:
apt-get install -y nginx
cat <<EOF> /etc/nginx/siters-available.d/default.conf
server {
listen 80;
server_name web.au-team.irpo;
location / {
proxy_pass http://172.16.1.2:8080;
}
}
server {
listen 80;
server_name docker.au-team.irpo;
location / {
proxy_pass http://172.16.2.2:8080;
}
}
EOF
ln -s /etc/nginx/sites-available.d/default.conf /etc/nginx/sites-enabled.d/
systemctl enable --now nginx
HQ-CLI:
• Настраиваем файл /etc/hosts
su -
echo "172.16.1.1 web.au-team.irpo" >> /etc/hosts
echo "172.16.2.1 docker.au-team.irpo" >> /etc/hosts
exit
ISP:
apt-get install -y apache2-htpasswd
htpasswd –c /etc/nginx/.htpasswd WEB
nano /etc/nginx/sites-available.d/default.conf
cat <<EOF> /etc/nginx/siters-available.d/default.conf
server {
listen 80;
server_name web.au-team.irpo;
location / {
proxy_pass http://172.16.1.2:8080;
auth_basic "Restricted area";
aut_basic_user_file /etc/nginx/.htpasswd;
}
}
server {
listen 80;
server_name docker.au-team.irpo;
location / {
proxy_pass http://172.16.2.2:8080;
}
}
EOF
systemctl restart nginx
HQ-CLI:
[user@hq-cli ~]$ su -
Password:
[root@hq-cli ~]# apt-get update && apt-get install -y yandex-browser-stable
3 модуль
BR-SRV:
mount /dev/sr0 /mnt/
wc -l /mnt/Users.csv
head -n1 /mny/Users.csv
head -n1 /mnt/Users.csv | tr -cd ';' | wc -c | awk '{print $1+1}'
awk -F ';' 'NR>1 {print $5}' /mnt/Users.csv | sort | uniq
nano import_user.sh
#!/bin/bash csu_file="$1"
# Create OU
awk -F ';' 'NR>1 {print $5}' "$csv_file" | sort | uniq | while read ou;
do
samba-tool ou add OU="$ou",DC=au-team,DC=irpo;
done
# Create Users
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,,}"
samba-tool user add "$username" P@ssw0rd1 \
--given-name="$firstName" \
--surname="$lastName" \
--telephone-number="$phone" \
--job-title="$role" \
--userou="OU=$ou"
samba-tool user setexpiry "$username" --noexpiry
done < "$csv_file"
chmod +x import_user.sh
./import_user.sh /mnt/Users.csv
HQ-SRV:
apt-get install -y openssl-gost-engine
control openssl-gost enabled
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:TCB -out ca.key
openssl req -new -x509 -md_gost12_256 -days 30 -key ca.key -out ca.cer
RU
.
.
au-team.irpo
.
hq-srv.au-team.irpo
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out web.au-team.irpo.key
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out docker.au-team.irpo.key
openssl req -new -md_gost12_256 -key gost.example.com.key -out web.au-team.irpo.csr
RU
.
.
au-team.irpo
.
web.au-team.irpo
openssl req -new -md_gost12_256 -key gost.example.com.key -out docker.au-team.irpo.csr
RU
.
.
au-team.irpo
.
docker.au-team.irpo
openssl x509 -req -in web.au-team.irpo.csr -CA ca.cer -CAkey ca.key -CAcreateserial -out web.au-team.irpo.cer -days 30
openssl x509 -req -in docker.au-team.irpo.csr -CA ca.cer -CAkey ca.key -CAcreateserial -out docker.au-team.irpo.cer -days 30
nano /etc/openssh/sshd_config
PermitRoologin yes
systemctl restart sshd
HQ-SRV:
scp web.au-team.irpo.key root@172.16.1.1:~/
scp web.au-team.irpo.cer root@172.16.1.1:~/
scp docker.au-team.irpo.key root@172.16.1.1:~/
scp docker.au-team.irpo.cer root@172.16.1.1:~/
ISP:
mkdir /etc/nginx/ssl
cp web.au-team.irpo.* /etc/nginx/ssl
cp docker.au-team.irpo.* /etc/nginx/ssl
nano /etc/nginx/sites-available.d/default.conf
server {
listen 443 ssl;
server_name web.au-team.irpo;
ssl_certificate /etc/nginx/ssl/web.au-team.irpo.cer;
ssl_certificate_key /etc/nginx/ssl/web.au-team.irpo.key;
ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location {
proxy_pass http://172.16.1.2:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr:
proxy_set_headerX-Forwarded-For$
proxy_add_x_forwarded_for:
proxy_set_header X-Forwarded-Proto $scheme;
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/.htpasswd;
listen 443 ssl;
server name docker.au-team.irpo;
ssl_certificate /etc/nginx/ssl/docker.au-team.irpo.cer; ssl_certificate_key /etc/nginx/ssl/docker.au-team.irpo.key; ssl_ciphers GOST2012-GOST8912-GOST8912: HIGH: MEDIUM; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
location / {
proxy_pass http://172.16.2.2:8080:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for: proxy_set_header X-Forwarded-Proto $scheme;
apt-get install -y openssl-gost-engine
control openssl-gost enabled
systemctl restart nginx
HQ-SRV:
scp ca.cer user@192.168.200.2:~/
HQ-CLI:
cp /home/user/ca.cer /etc/pki/ca-trust/source/anchors/ && update-ca-trust
HQ-SRV:
apt-get update && apt-get install -y cups cups-pdf
systemctl enable --now cups
cupsctl --share-printers --remote-any