This commit is contained in:
4bobus
2025-06-23 20:05:37 +05:00
3 changed files with 178 additions and 27 deletions

114
README.md
View File

@@ -670,17 +670,19 @@ ________________________________________________________________________________
<p align="center"><b>Выполните импорт пользователей из файла users.csv. Файл будет располагаться на виртуальной машине BR-SRV в папке /opt</b></p>
- Сначала скачаем необходимую утилиту на BR-SRV:
- Сначала скачаем необходимую утилиту на *BR-SRV*:
***apt install dos2unix -y***
- Потом на BR-SRV скачиваем скрипт, который выполнит за нас задание:
***apt install curl -y***
***curl -O https://github.com/4bobus/laba/blob/main/files/import_users.sh /opt***
- Потом на BR-SRV скачиваем скрипт, который выполнит за нас задание, в нужную директорию:
***curl -o /opt https://raw.githubusercontent.com/4bobus/laba/refs/heads/main/files/import_users.sh***
***ls /opt***
***dos2unix ~/import_users***
***dos2unix /opt/import_users.sh***
<p align="center">
<img src="images/module2/dos2unix.png" width="600" />
@@ -688,7 +690,7 @@ ________________________________________________________________________________
- Проверяем наличие скрипта:
***nano /import_users.sh***
***nano /opt/import_users.sh***
<p align="center">
<img src="images/module2/import_users.png" width="600" />
@@ -960,17 +962,16 @@ Ansible обычно уже использует /etc/ansible как рабоч
3. Создание файла инвентаря
Создайте инвентарь файла : /etc/ansible/hosts.
Создайте инвентарь файла : /etc/ansible/hosts. Открываем файл /etc/ansible/hosts
Скачиваем файл с github:
- Скачиваем файл с github, в нужную директорию:
> !dos2unix и curl на BR-SRV уже скачаны!
apt install dos2unix -y
***curl -o /etc/ansible https://raw.githubusercontent.com/4bobus/laba/refs/heads/main/files/hosts.file***
curl -O https://github.com/4bobus/laba/blob/main/files/hosts.txt /etc/ansible
***dos2unix /etc/ansible/hosts.file***
dos2unix /etc/ansible/hosts.txt
Проверяем его наличие:
- Проверяем его наличие:
<p align="center">
<img src="images/module2/43.png" width="600" />
@@ -1056,9 +1057,18 @@ ________________________________________________________________________________
3. В домашней директории пользователя root создаём файл wiki.yml со следующим содержимым:
***nano ~/wiki.yml***
- Чтобы вручную файл не заполнять просто скачиваем его с github в нужную директорию:
> !dos2unix и curl на BR-SRV уже скачаны!
***curl -o ~/ https://raw.githubusercontent.com/4bobus/laba/main/files/wiki.yml***
***dos2unix ~/wiki.yml***
- Проверяем его наличие:
***nano ~/wiki.yml***
<p align="center">
<img src="images/module2/51.png" width="600" />
</p>
@@ -1479,34 +1489,44 @@ ________________________________________________________________________________
***apt install nginx -y***
Запустите и активируйте Nginx:
2. Запустите и активируйте Nginx:
***systemctl start nginx***
***systemctl enable nginx***
2. Настройка Nginx как обратного прокси
3. Настройка Nginx как обратного прокси
Создадим конфигурационный файл для сайта в Nginx, в котором настроим виртуальные хосты:
Создадим конфигурационный файл для сайта в Nginx, в котором настроим виртуальные хосты. Добавьте конфигурацию для проксирования запросов в файл reverse-proxy.conf:
- Скачиваем файл с github в необходимую директорию:
***apt install dos2unix -y***
***apt install curl -y***
***curl -o /etc/nginx/sites-available https://raw.githubusercontent.com/4bobus/laba/refs/heads/main/files/reverse-proxy.conf***
***dos2unix /etc/nginx/sites-available/reverse-proxy.conf***
- Проверяем его наличие:
<p align="center">
<img src="images/module2/93.nginx.png" width="600" />
</p>
Добавьте конфигурацию для проксирования запросов в файл reverse-proxy.conf:
<p align="center">
<img src="images/module2/94.png" width="600" />
</p>
Сохраните файл и закройте редактор.
> Сохраните файл и закройте редактор.
Создайте символическую ссылку на этот файл в папке sites-enabled для активации конфигурации:
- Создайте символическую ссылку на этот файл в папке sites-enabled для активации конфигурации:
<p align="center">
<img src="images/module2/95.png" width="600" />
</p>
Проверьте конфигурацию Nginx на наличие синтаксических ошибок:
- Проверьте конфигурацию Nginx на наличие синтаксических ошибок:
<p align="center">
<img src="images/module2/96.png" width="600" />
@@ -1514,9 +1534,9 @@ ________________________________________________________________________________
> на hq-rtr в файле /etc/resolv.conf должно быть прописано dns 192.168.100.2
*Если конфигурация правильная, вы увидите сообщение syntax is ok.*
> *Если конфигурация правильная, вы увидите сообщение syntax is ok.*
Перезагрузите Nginx, чтобы применить изменения:
- Перезагрузите Nginx, чтобы применить изменения:
***systemctl reload nginx***
@@ -1661,13 +1681,21 @@ ________________________________________________________________________________
<p align="center"><b>*HQ-RTR*</b></p>
Отредактируем nftables под текст задания:
- Скачаем готовый nftables.conf с github, укажем путь для замены нашего nftables:
> !dos2unix и curl на HQ-RTR уже скачаны!
***curl -o /etc/nftables.conf https://raw.githubusercontent.com/4bobus/laba/refs/heads/main/files/hq-rtr/nftables.conf***
***dos2unix /etc/nftables.conf***
- Проверяем содержимое файла /etc/nftables.conf:
> !меняем префикс(маску) ip-адреса в соответствии со своим заданием!
<p align="center">
<img src="images/module3/firewall.jpg" width="600" />
</p>
Не забываем применять:
- Не забываем применять:
<p align="center">
<img src="images/module3/11.firewall.png" width="600" />
@@ -1675,10 +1703,25 @@ ________________________________________________________________________________
<p align="center"><b>*BR-RTR *</b></p>
- Скачаем готовый nftables.conf с github, укажем путь для замены нашего nftables:
***apt install dos2unix -y***
***apt install curl -y***
***curl -o /etc/nftables.conf https://raw.githubusercontent.com/4bobus/laba/refs/heads/main/files/br-rtr/nftables.conf***
***dos2unix /etc/nftables.conf***
- Проверяем содержимое файла /etc/nftables.conf:
> !меняем префикс(маску) ip-адреса в соответствии со своим заданием!
<p align="center">
<img src="images/module3/firewall.jpg" width="600" />
</p>
- Не забываем применять:
<p align="center">
<img src="images/module3/14.png" width="600" />
</p>
@@ -1931,12 +1974,19 @@ apt install rsyslog
2. Далее, создадим плейбук /etc/ansible/inventory.yml:
- Скачиваем его с github в необходимую директори:
> !dos2unix и curl на BR-SRV уже скачаны!
***curl -o /etc/ansible https://raw.githubusercontent.com/4bobus/laba/refs/heads/main/files/inventory.yml***
***dos2unix /etc/ansible/inventory.yml***
- Потом проверяем его содержимое:
<p align="center">
<img src="images/module3/40.png" width="600" />
</p>
со следующим содержимым:
<p align="center">
<img src="images/module3/41.png" width="600" />
</p>
@@ -1975,6 +2025,16 @@ apt install rsyslog
</p>
2. И создаём сам плейбук /etc/ansible/backup.yml:
> *ОБЯЗАТЕЛЬНО УСТАНОВИТЕ sudo НА HQ-RTR и BR-RTR*
- Скачаем файл с github в нужную директорию:
> !dos2unix и curl на BR-SRV уже скачаны!
***curl -o /etc/ansible https://raw.githubusercontent.com/4bobus/laba/refs/heads/main/files/backup.yml***
***dos2unix /etc/ansible/backup.yml***
- Проверяем его содержимое:
<p align="center">
<img src="images/module3/45.png" width="600" />

46
files/br-rtr/nftables.conf Executable file
View File

@@ -0,0 +1,46 @@
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
log prefix "Dropped Input: " level debug
iif lo accept
ct state established,related accept
tcp dport { 22,514,53,80,443,2024,445,139,88 } accept
udp dport { 53,123,500,4500,88,137 } accept
ip protocol icmp accept
ip protocol esp accept
ip protocol gre accept
ip protocol ospf accept
}
chain forward {
type filter hook forward priority 0; policy drop;
log prefix "Dropped forward: " level debug
iif lo accept
ct state established,related accept
tcp dport { 22,514,53,80,443,2024,445,139,88 } accept
udp dport { 53,123,500,4500,88,137 } accept
ip protocol icmp accept
ip protocol esp accept
ip protocol gre accept
ip protocol ospf accept
}
chain output {
type filter hook output priority 0; policy accept;
}
}
table inet nat {
chain prerouting {
type nat hook prerouting priority filter; policy accept
ip daddr 172.16.5.2 tcp dport 2024 dnat ip to 192.168.200.2:2024
ip daddr 172.16.5.2 tcp dport 80 dnat ip to 192.168.200.2:8080
}
chain postrouting {
type nat hook postrouting priority srcnat
oif "ens18" ip saddr { 192.168.200.0/27 } masquerade
}
}

45
files/hq-rtr/nftables.conf Executable file
View File

@@ -0,0 +1,45 @@
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
log prefix "Dropped Input: " level debug
iif lo accept
ct state established,related accept
tcp dport { 22,514,53,80,443,2024,445,139,88 } accept
udp dport { 53,123,500,4500,88,137 } accept
ip protocol icmp accept
ip protocol esp accept
ip protocol gre accept
ip protocol ospf accept
}
chain forward {
type filter hook forward priority 0; policy drop;
log prefix "Dropped forward: " level debug
iif lo accept
ct state established,related accept
tcp dport { 22,514,53,80,443,2024,445,139,88 } accept
udp dport { 53,123,500,4500,88,137 } accept
ip protocol icmp accept
ip protocol esp accept
ip protocol gre accept
ip protocol ospf accept
}
chain output {
type filter hook output priority 0; policy accept;
}
}
table inet nat {
chain prerouting {
type nat hook prerouting priority filter; policy accept
ip daddr 172.16.4.2 tcp dport 2024 dnat ip to 192.168.100.2:2024
}
chain postrouting {
type nat hook postrouting priority srcnat
oif "ens18" ip saddr { 192.168.100.0/26, 192.168.10.0/28 } masquerade
}
}