diff --git a/application/app.py b/application/app.py
new file mode 100644
index 0000000..835fc08
--- /dev/null
+++ b/application/app.py
@@ -0,0 +1,23 @@
+from flask import Flask, request
+
+
+app = Flask(__name__)
+
+
+@app.route('/get', methods=['GET'])
+def function_get():
+ return "GET test\n"
+
+
+@app.route('/post', methods=['POST'])
+def function_post():
+ return f"POST test: {request.json}\n"
+
+
+@app.route('/put', methods=['PUT'])
+def function_put():
+ return f"PUT test: {request.json}\n"
+
+
+if __name__ == "__main__":
+ app.run(host='0.0.0.0', port=5000)
\ No newline at end of file
diff --git a/conf/vm_A.yaml b/conf/vm_A.yaml
new file mode 100644
index 0000000..ea94e39
--- /dev/null
+++ b/conf/vm_A.yaml
@@ -0,0 +1,9 @@
+network:
+ ethernets:
+ enp0s3:
+ dhcp4: true
+ enp0s8:
+ dhcp4: no
+ addresses: [192.168.28.10/24]
+ gateway4: 192.168.28.1
+ version: 2
\ No newline at end of file
diff --git a/conf/vm_B.yaml b/conf/vm_B.yaml
new file mode 100644
index 0000000..4119d31
--- /dev/null
+++ b/conf/vm_B.yaml
@@ -0,0 +1,11 @@
+network:
+ ethernets:
+ enp0s3:
+ dhcp4: true
+ enp0s8:
+ dhcp4: no
+ addresses: [192.168.28.1/24]
+ enp0s9:
+ dhcp4: no
+ addresses: [192.168.6.1/24]
+ version: 2
\ No newline at end of file
diff --git a/conf/vm_C.yaml b/conf/vm_C.yaml
new file mode 100644
index 0000000..deb8731
--- /dev/null
+++ b/conf/vm_C.yaml
@@ -0,0 +1,9 @@
+network:
+ ethernets:
+ enp0s3:
+ dhcp4: true
+ enp0s8:
+ dhcp4: no
+ addresses: [192.168.28.10/24]
+ gateway4: 192.168.6.1
+ version: 2
\ No newline at end of file
diff --git a/pictures/curls.png b/pictures/curls.png
new file mode 100644
index 0000000..653aaab
Binary files /dev/null and b/pictures/curls.png differ
diff --git a/pictures/ip_rules.png b/pictures/ip_rules.png
new file mode 100644
index 0000000..2256372
Binary files /dev/null and b/pictures/ip_rules.png differ
diff --git a/pictures/netplanA.png b/pictures/netplanA.png
new file mode 100644
index 0000000..f6ee91c
Binary files /dev/null and b/pictures/netplanA.png differ
diff --git a/pictures/netplanB.png b/pictures/netplanB.png
new file mode 100644
index 0000000..b6c4c9f
Binary files /dev/null and b/pictures/netplanB.png differ
diff --git a/pictures/netplanC.png b/pictures/netplanC.png
new file mode 100644
index 0000000..b565bed
Binary files /dev/null and b/pictures/netplanC.png differ
diff --git a/pictures/pythonA.png b/pictures/pythonA.png
new file mode 100644
index 0000000..d59498c
Binary files /dev/null and b/pictures/pythonA.png differ
diff --git a/pictures/python_check.png b/pictures/python_check.png
new file mode 100644
index 0000000..248764c
Binary files /dev/null and b/pictures/python_check.png differ
diff --git a/pictures/tcp_get.png b/pictures/tcp_get.png
new file mode 100644
index 0000000..8c6b3b7
Binary files /dev/null and b/pictures/tcp_get.png differ
diff --git a/pictures/tcp_post.png b/pictures/tcp_post.png
new file mode 100644
index 0000000..bbc3ffc
Binary files /dev/null and b/pictures/tcp_post.png differ
diff --git a/pictures/tcp_put.png b/pictures/tcp_put.png
new file mode 100644
index 0000000..deabf08
Binary files /dev/null and b/pictures/tcp_put.png differ
diff --git a/report.md b/report.md
new file mode 100644
index 0000000..b1ea803
--- /dev/null
+++ b/report.md
@@ -0,0 +1,68 @@
+# Отчёт по работе №1: Практика Linux (VirtualBox)
+
+
+
+**Паутов Владислав Николаевич**
+
+
+
+**Дата рождения: 28.06.2002**
+
+
+
+## 1. Создание ВМ
+Начинаем работу с создания одной ВМ на основе скачанного образа. Дважды клонируем её.
+Далее настраиваем сетевые адаптеры по заданию:
+- Вместо NAT - Сетевой мост
+- Добавляем две внутренние подсети - `clientnet` и `servernet`
+
+После настройки запускаем все три ВМ и конфигурируем hostname и user:
+- `user=pautov_1, hostname=pautov_server (server)`
+- `user=pautov_2, hostname=pautov_gateway (gateway)`
+- `user=pautov_3, hostname=pautov_client (client)`
+
+## 2. Конфигурация netplan
+Перейдем к настройке netplan конфигов.
+Меняем конфигурационные файлы командой:
+```shell
+sudo nano /etc/netplan/00-installer-config.yaml
+```
+А также применяем новые сетевые настройки:
+```shell
+sudo netplan apply
+```
+Проверим полученный результат:
+
+
+
+
+
+## 3. Индивидуальная настройка ВМ
+### Linux A (server)
+В корневой папке создадим файл `app.py` с простым Flask приложением на три эндпоинта.
+Также напишем сервис для автозапуска приложения:
+
+
+
+### Linux B (gateway)
+Настроим `iptables` на ВМ-шлюзе для фильтрации пакетов по 5000 порту.
+Делаем это также через терминал командами по заданию.
+После изменения сохраняем конфигурацию через `iptables-persistent`.
+Проверим полученный результат:
+
+
+
+## 4. Тестирование всей системы
+Для проверки всей системы необходимо:
+- Запустить `python3 app.py` на машине **А**
+- Запустить `tcpdump` на машине **B**
+- Начать отправлять `curl` запросы на машине **C**
+Проверим полученный результат:
+
+
+
+Также проверим логи `tcpdump` на машине **B**:
+
+
+
+