Compare commits

...

6 Commits

Author SHA1 Message Date
3aff18f0a8 Update 8 2025-11-23 00:02:02 +03:00
7ee23b2191 Update 7 2025-11-22 22:19:31 +03:00
67a15a7fcf part-2 2025-11-20 22:45:24 +03:00
346d1c67a9 Update 6 2025-11-20 22:35:59 +03:00
033b6da2d7 Update 5 2025-11-20 21:57:02 +03:00
0d0edac029 Update 4 2025-11-20 00:44:12 +03:00
22 changed files with 366 additions and 32 deletions

Binary file not shown.

View File

@@ -26,10 +26,13 @@ interface e0/2
no shutdown no shutdown
! !
interface e0/3 interface e0/3
no ip address ip address 192.168.20.2 255.255.255.248
shutdown no shutdown
! !
ip route 0.0.0.0 0.0.0.0 55.55.55.106 ip route 0.0.0.0 0.0.0.0 55.55.55.106
ip route 10.10.1.0 255.255.255.0 192.168.20.1
ip route 10.10.2.0 255.255.255.0 192.168.20.1
ip route 10.10.5.0 255.255.255.0 192.168.20.1
! !
ip access-list standard NAT_ACL ip access-list standard NAT_ACL
permit 10.10.0.0 0.0.255.255 permit 10.10.0.0 0.0.255.255

View File

@@ -26,10 +26,14 @@ interface e0/2.20
ip address 10.10.2.1 255.255.255.0 ip address 10.10.2.1 255.255.255.0
! !
interface e0/3 interface e0/3
no ip address ip address 192.168.10.2 255.255.255.248
shutdown no shutdown
! !
ip route 0.0.0.0 0.0.0.0 55.55.55.102 ip route 0.0.0.0 0.0.0.0 55.55.55.102
ip route 10.10.3.0 255.255.255.0 192.168.10.1
ip route 10.10.4.0 255.255.255.0 192.168.10.1
ip route 10.10.6.0 255.255.255.0 192.168.10.1
ip route 1.1.1.0 255.255.255.0 55.55.55.102
! !
ip access-list standard NAT_ACL_HQ ip access-list standard NAT_ACL_HQ
permit 10.10.1.0 0.0.0.255 permit 10.10.1.0 0.0.0.255

View File

@@ -1,6 +1,18 @@
Часть 1. Конфигурация сети >>>>>>>>>>>>><<<<<<<<<<<<
Технические требования к проекту: Уважаемый ревьювер, прошу прочитать перед проверкой.
19.11.2025 в 19:00 я после 12 часвого рабочего дня сел работать над данной лабораторной работой.
Как видите я основательно подошел к выполнению и вел свои записи\команды в формате репозитория.
20.11.2025 в 00:15 у меня произошла ошибка подключения и отключились все терминалы.(конкретно в 00:15 я заканчивал 13 задание и скриншотил 12 задание)
Да, я видел уведомления в практикуме, но мне в голову не пришло, что виртуальная машина работает по таймеру от запуска, а не по таймеру от бездействия....
В следствии чего при повторном запуске все устройства в EVE были пусты и не содержали команд. Я не использовал резервное копировани и экскорт проекта, так как считал что успею выполнить все задания и завершить проект.
Но произошло то, что произошло. Ранее я сдавал проекты(домашние задания) на своих виртуальных машинах и не имел проблем. Расслабился и позволил себе работать на тренажере практикума.
Я портатил еще 2 часа, но восстановил все устройства и доделал работу. Вполне вероятно где-то могут быть ошибки, прошу учесть мою боль и дырка задница.
С наилучшими пожалениями Василий.
>>>>>>>>>>>>><<<<<<<<<<<<
Технические требования к проекту:
---------
Серверные Серверные
-Все серверы должны иметь статические IP-адреса. Всего серверных комнат две: в головном офисе и в дарксторе. -Все серверы должны иметь статические IP-адреса. Всего серверных комнат две: в головном офисе и в дарксторе.
-Адресное пространство для внутренних подсетей — 10.10.0.0/16. -Адресное пространство для внутренних подсетей — 10.10.0.0/16.
@@ -19,24 +31,7 @@
-Выделенный канал связи через провайдера -Выделенный канал связи через провайдера
-Компания арендует выделенный канал связи через провайдера с адресацией на стыках 192.168.10.0/29 и 192.168.20.0/29. Трафик между внутренними сетями компании должен ходить через выделенный канал связи. -Компания арендует выделенный канал связи через провайдера с адресацией на стыках 192.168.10.0/29 и 192.168.20.0/29. Трафик между внутренними сетями компании должен ходить через выделенный канал связи.
--------- ---------
VLAN 30 (Logistics → PCL-1, PCL-2, PCL-3, PCL-4) Config link:
VLAN 40 (Storage → PCS-1…4)
VLAN 60 (DS-Servers → Portal, File Server)
>>Публичная подсеть: 55.55.55.104/30
55.55.55.105 → R-Darkstore
55.55.55.106 → ISP (gateway)
❗ IT (10) и Management (20) — в головном офисе, не настраиваются в Darkstore.
!Обновлённые задачи для Darkstore!
SW1/2/3-Darkstore поддерживают только VLAN 30, 40, 60 (и только те, что подключены к конкретному коммутатору).
Межкоммутаторные и SWR соединения — trunk, но с ограниченным списком VLAN (например, SW3 не нужен VLAN 60).
Шлюзы — на R-Darkstore:
VLAN 30 → 10.10.3.1
VLAN 40 → 10.10.4.1
VLAN 60 → 10.10.6.1
Сервера в DS:
Portal → 10.10.6.10
FS → 10.10.6.20
R-Darkstore R-Darkstore
├─ e0/0 ↔ SW1-Darkstore e0/0 ├─ e0/0 ↔ SW1-Darkstore e0/0
├─ e0/1 ↔ SW2-Darkstore e0/0 ├─ e0/1 ↔ SW2-Darkstore e0/0
@@ -67,18 +62,19 @@ SW2-HQ
└─ e1/1 ↔ FS eth0 └─ e1/1 ↔ FS eth0
SW1-Darkstore SW1-Darkstore
├─ e0/1 ↔ SW3-Darkstore e0/0 ├─ e0/1 ↔ SW3-Darkstore e0/0
├─ e0/2 → PCL-3 (VLAN 30) ├─ e0/2 → PCL-3 eth0
├─ e0/3 → PCL-4 (VLAN 30) ├─ e0/3 → PCL-4 eth0
├─ e1/0 → PCS-3 (VLAN 40) ├─ e1/0 → PCS-3 eth0
└─ e1/1 → PCS-4 (VLAN 40) └─ e1/1 → PCS-4 eth0
SW3-Darkstore SW3-Darkstore
├─ e0/0 ← от SW1 ├─ e0/0 ← от SW1
├─ e0/1 → PCL-1 (VLAN 30) ├─ e0/1 → PCL-1 eth0
├─ e0/2 → PCL-2 (VLAN 30) ├─ e0/2 → PCL-2 eth0
├─ e0/3 → PCS-1 (VLAN 40) ├─ e0/3 → PCS-1 eth0
└─ e1/0 → PCS-2 (VLAN 40) └─ e1/0 → PCS-2 eth0
------------------------------------- -------------------------------------
IP Route:
<> Darkstore — адресное пространство: 10.10.0.0/16 <> Darkstore — адресное пространство: 10.10.0.0/16
- -
VLAN 30 — Logistics (PCL) → 10.10.3.0/24, шлюз: 10.10.3.1 VLAN 30 — Logistics (PCL) → 10.10.3.0/24, шлюз: 10.10.3.1

20
Part-1/WAN.md Normal file
View File

@@ -0,0 +1,20 @@
enable
configure terminal
!
interface e0/0
ip address 192.168.10.1 255.255.255.248
no shutdown
!
interface e0/1
ip address 192.168.20.1 255.255.255.248
no shutdown
!
ip route 10.10.1.0 255.255.255.0 192.168.10.2
ip route 10.10.2.0 255.255.255.0 192.168.10.2
ip route 10.10.5.0 255.255.255.0 192.168.10.2
ip route 10.10.3.0 255.255.255.0 192.168.20.2
ip route 10.10.4.0 255.255.255.0 192.168.20.2
ip route 10.10.6.0 255.255.255.0 192.168.20.2
!
end
write memory

View File

@@ -8,6 +8,8 @@ interface e0/0
ip route 0.0.0.0 0.0.0.0 10.10.5.1 ip route 0.0.0.0 0.0.0.0 10.10.5.1
! !
ip http server ip http server
ip http access-class 1
access-list 1 permit any
! !
end end
write memory write memory

View File

@@ -0,0 +1,48 @@
- name: Configure automated backups
hosts: yndx-client.practicumsuperstore.ru
become: yes
vars:
backup_script: /home/backup-user/run-backup.sh
backup_dir_local: /home/backup-user/backups
remote_backup_dir: /home/anscfg/backups
tasks:
- name: Create local backup directory
file:
path: "{{ backup_dir_local }}"
state: directory
owner: backup-user
group: backup-user
mode: '0755'
- name: Create backup script
copy:
content: |
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="/tmp/backup_${DATE}.tar.gz"
tar -czf "$BACKUP_FILE" /etc /var/log 2>/dev/null
scp -o StrictHostKeyChecking=no "$BACKUP_FILE" anscfg@yndx-ansible.practicumsuperstore.ru:"{{ remote_backup_dir }}/"
rm -f "$BACKUP_FILE"
dest: "{{ backup_script }}"
owner: backup-user
group: backup-user
mode: '0755'
- name: Ensure remote backup directory exists (run locally)
delegate_to: localhost
become: no
run_once: true
file:
path: "{{ remote_backup_dir }}"
state: directory
owner: anscfg
group: anscfg
mode: '0755'
- name: Add daily cron job for backup-user
cron:
name: "Daily system backup"
user: backup-user
minute: "0"
hour: "2"
job: "{{ backup_script }}"

View File

@@ -0,0 +1,10 @@
- name: Create backup-user on client
hosts: yndx-client.practicumsuperstore.ru
become: yes
tasks:
- name: Create user backup-user with home directory
user:
name: backup-user
shell: /bin/bash
create_home: yes
system: no

View File

@@ -0,0 +1,6 @@
[yndx]
yndx-client.practicumsuperstore.ru
[all:vars]
ansible_user=anscfg
ansible_ssh_private_key_file=/home/anscfg/.ssh/id_rsa

View File

@@ -0,0 +1,44 @@
- name: Configure DNS and NTP on yndx-client
hosts: yndx-client.practicumsuperstore.ru
become: yes
tasks:
- name: Stop and disable systemd-resolved
systemd:
name: systemd-resolved
state: stopped
enabled: no
- name: Remove existing resolv.conf
file:
path: /etc/resolv.conf
state: absent
- name: Create new resolv.conf pointing to internal DNS
copy:
content: |
nameserver 10.10.1.200
dest: /etc/resolv.conf
owner: root
group: root
mode: '0644'
- name: Install chrony
apt:
name: chrony
state: present
update_cache: yes
- name: Configure chrony to use yndx-dns as NTP server
copy:
content: |
server 10.10.1.200 iburst
dest: /etc/chrony/chrony.conf
owner: root
group: root
mode: '0644'
- name: Restart chrony
systemd:
name: chrony
state: restarted
enabled: yes

74
Part-2/yndx-ansible.md Normal file
View File

@@ -0,0 +1,74 @@
hostname yndx-ansible
# Задание - 1
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm -f /etc/resolv.conf
echo "nameserver 10.10.1.200" | sudo tee /etc/resolv.conf
sudo apt install -y chrony
sudo nano /etc/chrony/chrony.conf
# Conig
server 10.10.1.200 iburst
-----------------------------------------------------------------
# Задание - 2
sudo apt update
sudo apt install -y ansible
# User
sudo adduser --disabled-password --gecos "" anscfg
# SSH - to
sudo -u anscfg ssh-keygen -t rsa -b 2048 -f /home/anscfg/.ssh/id_rsa -N ""
root@yndx-ansible:~# sudo cat /home/anscfg/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJmlCFxkUQNJOJoOdpSFS0eikNpPPeV28rNkXq8ulRe5gKtTW9YmzRfwL/uQh8xXP58kXm04r0btPrYWx/1ZGA4T0yHBEVAkO4ECxGFh6M3zulnpQ+CuSLAbUEdSQOCoCvR5D9OxOnONx+osly/QjaI/3mPYOc6i6VZXPJWHPMNM7BzyDLqlG80nP+xFMfd4An2X/hTsLKcIRdjSrweqr+jqzpeOSA1HbbZgSqN6Fjy4zCVV7sdVaDxOqaV9CH9zN+1hS3yYUoEkCCX8YrsgggG4cmeQUR3MxNmoyr+Sm5hbkoK8ON45O8MvmxYL1hDqaS1BpG8ffz3SZ1mftGRwq9 anscfg@yndx-ansible
# Test
sudo -u anscfg ssh -o StrictHostKeyChecking=no anscfg@yndx-client.practicumsuperstore.ru
# Ansible
sudo -u anscfg mkdir -p /home/anscfg/ansible
cd /home/anscfg/ansible
sudo -iu anscfg
cd /home/anscfg/ansible
nano inventory.ini (посмотреть в папке ansible-playbook -> inventory.ini)
nano setup_services.yml (посмотреть в папке ansible-playbook -> setup_services.yml)
nano create_user.yml (посмотреть в папке ansible-playbook -> create_user.yml)
nano configure_backup.yml (посмотреть в папке ansible-playbook -> configure_backup.yml)
ansible-playbook -i inventory.ini setup_services.yml
ansible-playbook -i inventory.ini create_user.yml
ansible-playbook -i inventory.ini configure_backup.yml
# Задание - 4
sudo apt install -y vsftpd
sudo adduser --disabled-password --gecos "" ftpuser
echo "ftpuser:securepass" | sudo chpasswd
sudo mkdir -p /home/ftpuser/ftp/files
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
sudo chmod 755 /home/ftpuser/ftp
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
# <Config
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
local_root=/mnt/ftp
allow_writeable_chroot=YES
dirlist_enable=YES
download_enable=YES
# Config>
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
sudo chown root:ftpshared /mnt/ftp
sudo chown ftpuser:ftpshared /mnt/ftp/files
sudo chmod 775 /mnt/ftp/files
sudo chmod g+s /mnt/ftp/files
# Задание 5
sudo apt update
sudo apt install -y nginx apache2-utils
cd /home/geseas
tar -xf nginx2.tar.gz
cd nginx
sudo cp default /etc/nginx/sites-available/
sudo ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
sudo cp index.html 404.html 500.html /var/www/html/
sudo cp -r secure /var/www/html/
sudo chown -R www-data:www-data /var/www/html/secure
sudo chmod 750 /var/www/html/secure
sudo htpasswd -c /etc/nginx/.htpasswd admin

45
Part-2/yndx-client.md Normal file
View File

@@ -0,0 +1,45 @@
hostname yndx-client
# Задание - 2
# Отключи systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm -f /etc/resolv.conf
echo "nameserver 10.10.1.200" | sudo tee /etc/resolv.conf
# Добавь имя хоста в /etc/hosts (чтобы sudo не ругался)
echo "127.0.0.1 yndx-client" | sudo tee -a /etc/hosts
# Установи chrony и настрой как клиент
sudo apt install -y chrony
echo "server 10.10.1.200 iburst" | sudo tee /etc/chrony/chrony.conf
sudo systemctl restart chrony
# User
sudo adduser --disabled-password --gecos "" anscfg
sudo mkdir -p /home/anscfg/.ssh
sudo chown anscfg:anscfg /home/anscfg/.ssh
echo "ssh-rsa KEY" | sudo tee /home/anscfg/.ssh/authorized_keys
sudo chown -R anscfg:anscfg /home/anscfg/.ssh
sudo chmod 700 /home/anscfg/.ssh
sudo chmod 600 /home/anscfg/.ssh/authorized_keys
# No PWD
sudo echo "anscfg ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/anscfg
# Задание - 3
wget http://10.12.0.122/mail2.tar.gz
# Распакуй
tar -xzf mail2.tar.gz
# Перейди в папку
cd mail
# Запусти скрипт (подставь своё имя и фамилию БЕЗ пробелов, например: IvanIvanov)
./script.sh PavlovVE practicumsuperstore.ru
# Задание 4
sudo apt install -y ftp
ftp 10.10.1.201
Name: ftpuser
Password: ******
cd files
get cat_3.png
# Задание 5
http://10.10.1.201/

65
Part-2/yndx-dns.md Normal file
View File

@@ -0,0 +1,65 @@
hostname yndx-dns
# Задание - 1
//1.1 Отключить systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm -f /etc/resolv.conf
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
//1.2 Установка и настройка dnsmasq (DNS)
sudo apt update
sudo apt install -y dnsmasq
//Редактируем /etc/dnsmasq.conf:
sudo nano /etc/dnsmasq.conf
# <Config
domain=practicumsuperstore.ru
local=/practicumsuperstore.ru/
address=/WEB.practicumsuperstore.ru/10.10.1.200
address=/AD.practicumsuperstore.ru/10.10.1.201
address=/FS.practicumsuperstore.ru/10.10.1.202
listen-address=127.0.0.1
listen-address=10.10.1.200
bind-interfaces
server=8.8.8.8
server=1.1.1.1
# Config>
sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq
1.3 Настройка часового пояса (Москва, UTC+3)
sudo timedatectl set-timezone Europe/Moscow
//1.4 Установка и настройка NTP (chrony) на Хосте 1
sudo apt install -y chrony
sudo nano /etc/chrony/chrony.conf
# <Config
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
allow 10.10.1.0/24
local stratum 10
sudo systemctl restart chrony
sudo systemctl enable chrony
# Config>
chronyc tracking
chronyc sources -v
-----------------------------------------------------------------
# Задание - 3
Добавь в /etc/dnsmasq.conf:
address=/mail.practicumsuperstore.ru/10.10.1.200
# MX-запись (важно!)
mx-host=practicumsuperstore.ru,mail.practicumsuperstore.ru,10
sudo systemctl restart dnsmasq
sudo apt update
sudo apt install -y postfix mailutils net-tools
sudo nano /etc/postfix/main.cf
# <Config
myhostname = mail.practicumsuperstore.ru
mydomain = practicumsuperstore.ru
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# Config>
home_mailbox = Maildir/
tail -n 10 /var/log/mail.log
ls -la /home/ubuntu/Maildir/new
cd /home/ubuntu/Maildir/new/
ls -la
less 1763836343.V802Ic0021M156897.yndx-dns

17
Part-3/ad.md Normal file
View File

@@ -0,0 +1,17 @@
Install-WindowsFeature -Name AD-Domain-Services, DNS -IncludeManagementTools
net user Administrator "P@ssw0rd123!"
Повышение до контроллера домена
Import-Module ADDSDeployment
New-LocalUser -Name "Administrator" `
-Password (ConvertTo-SecureString "Gfdkjd373497!!!" -AsPlainText -Force) `
-FullName "Local Administrator" `
-Description "Учётная запись для установки AD DS"
Enable-LocalUser -Name "Administrator"
net user Administrator /passwordreq:yes
net user Administrator /active:yes
net user Administrator /expires:never
net user Administrator "Gfdkjd373497!!!"
Add-LocalGroupMember -Group "Администраторы" -Member "Administrator"
Set-LocalUser -Name "Administrator" -PasswordNeverExpires $true -AccountNeverExpires $true -Enabled $true