02-port-knocking

This commit is contained in:
Marat Kharitonov
2024-03-17 19:21:32 -04:00
parent 4db4c0d57a
commit 63205dd718
14 changed files with 81 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
# Сетевая безопасность. Лабораторная работа №2 (HW)
## Ход работы
1. Установим пакет `knockd` на обе виртуальные машины
![alt text](img/01.png)
2. На машине `ubuntu` предварительно настроим `iptables`, разрешив только установленные соединения и SSH.
![alt text](img/02.png)
3. Проверим подключение c машины `ubuntu2`
![alt text](img/03.png)
Видим, что подключение отсутствует, при этом SSH сессия до машины не оборвалась, делаем вывод, что правила `iptables` настроены верно.
4. После настройки пакетного фильтра необходимо инициализировать службу knockd. Для этого в файле /etc/default/knockd изменим следующую опцию и присвоить ей значение “1”:
![alt text](img/04.png)
5. Создадим файл, заполненный `one-time sequence`, то есть набором одноразовых последовательностей, которые будут использовать для открытия порта.
![alt text](img/05.png)
6. Настроим демон `knockd` так, чтобы он использовал созданный файл для открытия доступа к порту.
`nano /etc/knockd.conf`
![alt text](img/06.png)
7. Сделаем автостарт службы и запустим её
```
systemctl enable knockd.service
systemctl start knockd.service
```
8. С помощью `nmap` проверим доступность порта `1194/tcp` на машине `ubuntu`
![alt text](img/10.png)
Видим, что `nmap` определяет порт как фильтрующийся.
9. На машине `ubuntu2` выполним команду `knock` и укажем адрес подключения и последовательность.
![alt text](img/07.png)
10. На машине `ubuntu` проверим наполнение `iptables` и содержимое файла `/etc/knockd/openvpn_ots`
![alt text](img/08.png)
Видим, что в `iptables` появилось разрешающее правило, а в `/etc/knockd/openvpn_ots` закомментировалась строка с использованной последовательностью.
11. Проверим подключение `openvpn` с `ubuntu2` к `ubuntu`
![alt text](img/09.png)
Видим, что подключение выполнилось успешно.
12. С помощью `nmap` ещё раз проверим доступность порта `1194/tcp` на машине `ubuntu`
![alt text](img/11.png)
Видим, что теперь порт доступен.
13. Воспользуемся второй последовательностью, и проанализируем лог `tcpdump`
![alt text](img/12.png)
Видим, что при использовании `knock` на адрес посылаются пакеты в указанной последовательности, на который целевой адрес не отвечает, но как мы видели ранее, в этот момент сервер делает запись в `iptables`, разрешающее подключение.
![alt text](img/13.png)
## Выводы
Port Knocking — это метод усиления защиты путем скрытия открытых портов от несанкционированного доступа с помощью сочетания «стуков» на определенные порты. Метод может обеспечиваться с помощью демона `knockd`, который имеет большое количество параметров, одним из которых является `one-time sequence`, то есть одноразовые последовательсти -- набор "стуков", который может быть использован для открытия портов только один раз.
**Выполнил:** Харитонов Марат Русланович, студенческий билет М235314.

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB