Изменил(а) на 'labs/lab2/README.md'

main
Сергей Филатов 2 лет назад
Родитель 2ef30edb13
Сommit efd2b9cea8

@ -7,7 +7,7 @@
### 1. Теоретическая часть
**Брандмауэр** - это система или группа систем, реализующих правила управления доступом между двумя сетями. Фактические средства, с помощью которых это достигается, весьма различны, но в принципе брандмауэр можно рассматривать как пару механизмов: один для блокирования передачи информации, а другой, - для пропуска информации. Некоторые брандмауэры уделяют больше внимания блокировке передачи информации, другие - ее пропуску. Важно понимать, что конфигурация брандмауэра, как механизма обеспечения выполнения определенных правил, определяет правила для всех систем, которые он защищает.
### 1.1 Работа *IPTABLES*. Основные понятия
### 1.1. Работа *IPTABLES*. Основные понятия
При описании выполняемых команд приняты следующие обозначения:
- `#` - если перед командой стоит данный знак, это означает, что команда должна выполняться от имени пользователя root (суперпользователь)
@ -65,7 +65,7 @@
### 2. Практическая часть
**Описание задачи**: требуется защитить web-сервер. Необходимо разрешить доступ к портам 80 и 22 и сделать перенаправление вызова с порта 8080 на 80. При попытке обратится к портам сервера, не описанным в операционной системе (ОС) как сервис, следует отказывать в обслуживании. При попытке обратится к портам, описанным в системе как сервисы, следует отказывать в обслуживании и заносить данные об этом в журнал. Для выполнения задания необходима следующая последовательность действий.
### 2.1 Определение политики по умолчанию
### 2.1. Определение политики по умолчанию
Определение политики по умолчанию для цепочек с учетом того, что все порты системы для должны быть закрыты для внешнего пользователя. Поскольку осуществляется фильтрация пакетов, их обработка будет производится в таблице **filter**. Используем ключ `–P` чтобы задать политику по умолчанию. Зададим правило для входящих пакетов (цепочка `INPUT`). Действие для обработки политики по умолчанию `LOG` (журналирование запроса). Поскольку политика по умолчанию определяется для всех портов, критерии проверки опускаются.
```ssh
@ -79,7 +79,7 @@
# iptables –P OUTPUT ACCEPT
```
### 2.2 Добавление правил для портов 22 и 80
### 2.2. Добавление правил для портов 22 и 80
Осуществляется командой, в которой для заданных критериев применено действие ACCEPT, то есть пакет будет пропущен брэндмауэром.
```ssh
@ -87,7 +87,7 @@
# iptables –A INPUT –p tcp ––dport 80 –j ACCEPT
```
### 2.3 Добавление правила для порта 8080. Переадресация с порта 8080 на порт 80
### 2.3. Добавление правила для порта 8080. Переадресация с порта 8080 на порт 80
Поскольку происходит преобразование адреса назначения, используем таблицу **nat**. Критерии для применения этого правила: `–p tcp ––dport 8080`. Изменение получателя осуществляется в цепочке `PREROUTING`. Правило для переадресации – `REDIRECT`, которое имеет дополнительный ключ для определения порта переадресации `––to-ports`. Зададим перенаправление на порт `80`. Таким образом для определения последнего правила, необходимо ввести в командной строке:
```ssh
@ -222,7 +222,7 @@ VPN состоит из двух частей: *«внутренняя»* (по
Возможно также подключение к виртуальной сети отдельного компьютера.
Подключение удалённого пользователя к VPN производится посредством сервера доступа, который подключён как к внутренней, так и к внешней (общедоступной) сети. При подключении удалённого пользователя (либо при установке соединения с другой защищённой сетью) сервер доступа требует прохождения процесса идентификации, а затем процесса аутентификации. После успешного прохождения обоих процессов удалённый пользователь (удаленная сеть) наделяется полномочиями для работы в сети, то есть происходит процесс авторизации.
### 1.1 VPN Туннели
### 1.1. VPN Туннели
Начнём с терминологии. VPN соединение всегда состоит из канала типа точка-точка, также известного под названием туннель. Туннель создаётся в незащищённой сети, в качестве которой чаще всего выступает Интернет. Соединение точка-точка подразумевает, что оно всегда устанавливается между двумя компьютерами, которые называются узлами или peers. Каждый peer отвечает за шифрование данных до того, как они попадут в туннель и расшифровке этих данных после того, как они туннель покинут.
Хотя VPN туннель всегда устанавливается между двумя точками, каждый peer может устанавливать дополнительные туннели с другими узлами. Для примера, когда трём удалённым станциям необходимо связаться с одним и тем же офисом, будет создано три отдельных VPN туннеля к этому офису. Для всех туннелей peer на стороне офиса может быть одним и тем же. Это возможно благодаря тому, что узел может шифровать и расшифровывать данные от имени всей сети, как это показано на рисунке 1:
@ -255,7 +255,7 @@ VPN состоит из двух частей: *«внутренняя»* (по
4. Как только достигнуто соглашение по алгоритмам, создаётся ключ, который будет использован в симметричном алгоритме для шифрования/расшифровки данных
Есть несколько стандартов регламентирующих вышеописанное взаимодействие. Вы, должно быть, слышали о некоторых из них: L2TP, PPTP, и IPSec. Т.к. IPSec - наиболее широко поддерживаемый стандарт, который имеет в арсенале наибольшее количество сокращений, оставшуюся часть статьи стоит посвятить именно ему.
### 1.2 IPSec
### 1.2. IPSec
Стандарт IPSec был разработан для повышения безопасности IP протокола. Это достигается за счёт дополнительных протоколов, добавляющих к IP пакету собственные заголовки, которые называются инкапсуляциями. Т.к. IPSec - стандарт Интернет, то для него существуют RFC (Requests For Comments). Если есть интерес покопаться во внутренностях IPSec, то следующие RFC с *http://www.rfc-editor.org/* могут оказаться полезными:
- RFC 2401 IPSec
@ -295,7 +295,7 @@ SA храняться в базе данных c названием, кто бы
При создании политики, как правило, возможно создание упорядоченного списка алгоритмов и Diffie Hellman групп. В таком случае будет использована первая совпавшая на обоих узлах позиция. Запомните, очень важно, чтобы всё в политике безопасности позволяло добиться этого совпадения. Если за исключением одной части политики всё остальное совпадает, узлы всё равно не смогут установить VPN соединение. При настройе VPN между различными системами уделите время изучению того, какие алгоритмы поддерживаются каждой стороной, чтобы иметь выбор наиболее безопасной политики из возможных.
### 1.3 Фаза Один и Фаза Два
### 1.3. Фаза Один и Фаза Два
Теперь давайте посмотрим как всё это работает вместе. Установка и поддержка VPN туннеля происходит в два этапа. На первом этапе (фазе) два узла договариваются о методе идентификации, алгоритме шифрования, хэш алгоритме и группе Diffie Hellman. Они также идентифицируют друг друга. Всё это может пройти в результате обмена тремя нешифрованными пакетами (т.н. агрессивный режим) или через обмен шестью нешифрованными пакетами (стандартный режим - main mode). Предполагая, что операция завершилась успешно, создаётся SA первой Фазы - Phase 1 SA (также называемый IKE SA) и процесс переходит к Фазе Два.
@ -307,7 +307,7 @@ SA храняться в базе данных c названием, кто бы
Ваша задача заключается в том, чтобы сконфигурировать оба узла с одинаковыми параметрами времени жизни. Если этого не произойдёт, то возможен вариант, когда изначально туннель будет установлен успешно, но по истечении первого несогласованного промежутка времени жизни связь прервётся. Странные проблемы могут возникнуть и в том случае, когда время жизни Фазы Один меньше аналогичного параметра Фазы Два. Если настроенный ранее туннель виснет, то первая вещь, которая нуждается в проверке - это время жизни на обоих узлах. В заключение стоит упомянуть, что при смене политики на одном из узлов, изменения вступят в силу только при следующем наступлении Фазы Один. Чтобы изменения вступили в силу немедленно, надо убрать SA для этого туннеля из SAD. Это вызовёт пересмотр соглашения между узлами с новыми настройками политики безопасности.
### 1.4 Классификация VPN.
### 1.4. Классификация VPN.
**По способу реализации:**
- Программное решение.
Для функционирования VPN используется ПК со специализированным ПО.
@ -341,7 +341,8 @@ SA храняться в базе данных c названием, кто бы
Классификация VPN
### 2. Практическая часть.
### 2. Практическая часть
### 2.1. Установка и настройка серверной части OpenVPN
Устанавливаем OpenVPN
@ -431,9 +432,44 @@ tcp 0 0 0.0.0.0:1194 0.0.0.0:* LISTEN
***Скриншот**
### 2.1 Установка и настройка OpenVPN на локальной машине (Linux)
### 2.2. Установка и настройка клиентской части OpenVPN (Windows)
Открываем окно терминала (можно использовать машину первой лабораторной работы). Устанавливаем OpenVPN:
Скачиваем установщик OpenVPN по [ссылке](https://swupdate.openvpn.org/community/releases/OpenVPN-2.6.2-I001-amd64.msi) и делаем установку "по-умолчанию"
Открываем окно терминала (можно использовать машину первой лабораторной работы).
В папке `C:\Users\Username\OpenVPN\config\` создаём папку с именем `client`
Копируем файл `/etc/openvpn/ovpn.Key` (на сервере) в `C:\Users\Username\OpenVPN\config\client`. Например, с помощью `WinSCP` или скопировав содержимое в файл с тем же именем
Также в папке `client` создадим файл с настройками OpenVPN, назовем его `client.ovpn`. В файл вставим:
```ssh
proto tcp-client
remote *ip_adress*
port 1194
dev tun
secret ovpn.key
redirect-gateway def1
ifconfig 10.4.0.2 10.4.0.1
```
**Выделенные `*` строки необходимо изменить на реальные значения - remote указываем IP-адрес сервера**
***Скриншот**
Сохраняем файл
Запускаем OpenVPN ПКМ по значку в трее и переходим на сайт [ipinfo.io](https://ipinfo.io/ip). Убедитесь, что полученный IP-адрес и адрес удалённой машины совпадают.
***Скриншот**
### 2.3. Установка и настройка клиентской части OpenVPN (Linux)
Открываем окно терминала (можно использовать машину первой лабораторной работы).
**
Устанавливаем OpenVPN:
```ssh
apt-get install -y openvpn
@ -485,7 +521,6 @@ openvpn --config ~/OpenVPNconf/openvpn.client.ovpn
****При выполнении пункта на машине первой лабораторной работы может появиться ошибка `ERROR Cannot ioctl TUNSETIFF tun: Operation not permitted`, не позволяющая подключиться к VPN внутри docker-контейнера. Выполнение этого пункта лабораторной работы завершается скриншотом с ошибкой**
Выполним следующую команду
```ssh
@ -496,35 +531,5 @@ curl ipinfo.io/ip
В ней происходит запрос на сервер, отображающий IP-адрес подлючения. Убедитесь, что полученный IP-адрес и адрес удалённой машины совпадают.
### 2.2 Установка и настройка OpenVPN на локальной машине (Windows)
Скачиваем установщик OpenVPN по [ссылке](https://swupdate.openvpn.org/community/releases/OpenVPN-2.6.2-I001-amd64.msi) и делаем установку "по-умолчанию"
Открываем окно терминала (можно использовать машину первой лабораторной работы).
В папке `C:\Users\Username\OpenVPN\config\` создаём папку с именем `client`
Копируем файл `/etc/openvpn/ovpn.Key` (на сервере) в `C:\Users\Username\OpenVPN\config\client`. Например, с помощью `WinSCP` или скопировав содержимое в файл с тем же именем
Также в папке `client` создадим файл с настройками OpenVPN, назовем его `client.ovpn`. В файл вставим:
```ssh
proto tcp-client
remote *ip_adress*
port 1194
dev tun
secret ovpn.key
redirect-gateway def1
ifconfig 10.4.0.2 10.4.0.1
```
**Выделенные `*` строки необходимо изменить на реальные значения - remote указываем IP-адрес сервера**
***Скриншот**
Сохраняем файл
Запускаем OpenVPN ПКМ по значку в трее и переходим на сайт [ipinfo.io](https://ipinfo.io/ip). Убедитесь, что полученный IP-адрес и адрес удалённой машины совпадают.
***Скриншот**
***Каждый скриншот должен сопровождаться подробным описанием вводимых команд/настроек и результатов их выполнения**
## **Каждый скриншот должен сопровождаться подробным описанием вводимых команд/настроек и результатов их выполнения**
Загрузка…
Отмена
Сохранить