diff --git a/Results/application b/Results/application new file mode 100644 index 0000000..891e28f --- /dev/null +++ b/Results/application @@ -0,0 +1,21 @@ +from flask import Flask, request + +app = Flask(__name__) + +@app.route('/get') +def handle_get(): + return "GET request received!" + +@app.route('/post') +def handle_post(): + return "POST request received" + +@app.route('/put') +def handle_put(): + return "PUT request received + +@app.route('/') +def hello(): + return "

Hello, World!

" + +app.run(host='0.0.0.0', port=5000) diff --git a/Results/configs/A b/Results/configs/A new file mode 100644 index 0000000..e511fba --- /dev/null +++ b/Results/configs/A @@ -0,0 +1,9 @@ +network: + ethernets: + enp0s3: + dhcp4: true + enp0s8: + dhcp4: no + addresses: [192.168.23.10/24] + gateway4: 192.168.23.1 + version: 2 diff --git a/Results/configs/B b/Results/configs/B new file mode 100644 index 0000000..9c21d4d --- /dev/null +++ b/Results/configs/B @@ -0,0 +1,11 @@ +network: + ethernets: + enp0s3: + dhcp4: true + enp0s8: + dhcp4: no + addresses: [192.168.23.1/24] + enp0s9: + dhcp4: no + addresses: [192.168.3.1/24] + version: 2 diff --git a/Results/configs/C b/Results/configs/C new file mode 100644 index 0000000..62ec7da --- /dev/null +++ b/Results/configs/C @@ -0,0 +1,9 @@ +network: + ethernets: + enp0s3: + dhcp4: true + enp0s9: + dhcp4: no + addresses: [192.168.3.100/24] + gateway4: 192.168.3.1 + version: 2 diff --git a/Results/linux_A.png b/Results/linux_A.png new file mode 100644 index 0000000..2c9fc14 Binary files /dev/null and b/Results/linux_A.png differ diff --git a/Results/linux_B.png b/Results/linux_B.png new file mode 100644 index 0000000..0d48243 Binary files /dev/null and b/Results/linux_B.png differ diff --git a/Results/linux_C.png b/Results/linux_C.png new file mode 100644 index 0000000..eeec4ca Binary files /dev/null and b/Results/linux_C.png differ diff --git a/Results/report.md b/Results/report.md new file mode 100644 index 0000000..02bc35a --- /dev/null +++ b/Results/report.md @@ -0,0 +1,48 @@ +# Отчёт по лабораторной работе: Настройка сети между виртуальными машинами + +## Цель работы +Настроить связь между 3мя виртуальными машинами с маршрутизацией через шлюз B и развернуть веб-сервер + +## Для выполнения данного задания было реализовано: +1. Развернуты три виртуальные машины Linux +2. Linux A + 1. Сконфигурирован Hostname следующим образом: khudobinserver + 2. Создан пользователь khudobin_1 + 3. Сконфигурирован виртуальный интерфейс со следующим ip адресом: 192.168.23.10/24 + 4. Развернут Http сервер на виртуальной машине на порту 5000. Реализованы три эндпоинта (запрос /get, /post, /put) + +![Машина А](linux_A.png) + +3. Linux B + 1. Сконфигурирован Hostname следующим образом: khudobingateway + 2. Создать пользователя _2 (пропустить если делаете через Play with docker) + 3. Сконфигурированы 2 виртуальных интерфейса со следующими ip адресом: 192.168.23.1/24, 192.168.3.1/24 + 4. С помощью утилит ip route и iptables настроен маршрут пакетов от Linux A до C. Запрещены все пакеты, кроме http пакетов через порт 5000 + 5. Запущена программа tcpdump с фильтрацией по портам 5000 + +![Машина B](linux_B.png) + +4. Linux C + 1. Сконфигурирован Hostname следующим образом: khudobinclient + 2. Создан пользователя khudobin_3 + 3. Сконфигурирован виртуальный интерфейс со следующим ip адресом: 192.168.3.100/24 + 4. С помощью команды curl на машине C были посланы 3 запроса на машину А в http сервер (/get, /post, /put) + +![Машина C](linux_C.png) + +5. При перезагрузки системы все сервисы и сетевая архитектура функционируют также + + Разрешен переброс пакетов ip в нашем gateway +```shell +echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 1 + + nano /etc/sysctl.conf # добавлена 1 в файл для автозагрузки +``` +Были настроены и сохранены правила iptables + +```shell +sudo apt-get install iptables-persistent +sudo iptables-save > /etc/iptables/rules.v4 +sudo ip6tables-save > /etc/iptables/rules.v6 +``` +