# матрица доступа на PfSense
Входящие условия:
У нас есть несколько сетей, разграниченных вилланами – 10, 20, 30, 40 и есть роутер. Нужно один из вилланов (вилан 20) изолировать – есть доступ только в интернет, а вилан 40 может общаться только с 10-м, виллан 30 может ходить ко всем, но к нему никто
Задача: сегментировать части. Ограничения по вилланам необходимо, чтобы злоумышленнику было сложно «гулять» между сетями, чтобы нельзя было перехватывать из других сетей, и чтобы не было широковещательного трафика. Также для каждой сети можно выдавать отдельные dhcp, dns; отдельные параметры, связанные с прошивками устройств; отдельные сервера для каждого участка сети. Фактически организация делится на мелкие кусочки: чем мельче кусочек – тем проще им управлять и выдавать определенные параметры.
Необходимо научиться правильно понимать: какие доступы у каких вилланов должны быть – куда и откуда можно ходить. (бухгалтера, программисты, админы, випы и проч..)
Практическая часть.
Имитируем реальную инфраструктуру.
Создаем вилланы на инф-ре (делали в прошлых модулях)
На WF (не на роутере) – создать эти вилланы и сделать виллан-роутинг: так чтобы с WF был доступ на какие-то вилланы, а с них доступа не было – делается в табличке доступа (матрица доступов).
Когда вилланов много, мы четко должны понимать: с какого вилана и куда есть доступ, а откуда доступов не должно быть. И есть еще «объединение» вилланов для доступа в определенные сети.
Задача: 1 правильным образом сконфигурировать на pfsense
2 сконфигурировать это на акцесс-листах циски
3 сконфигурировать это всё на iptables на линуксовой тачке
Готовим вилланы: вилан10 – сервисный, винал1 – обычные пользователи, гости; вилан 30 –бухгалтерия (финансы); вилан40 – менеджеры; вилан50 – админы

Транком от WF2 проверяем, что все виланы настроены и работают. На самом WF2 настроить данные для этих вилланов, возможно поднять dhsp для этих виланов (где нужен), а где не нужен ручками настроить IP-шники и проверить, что вся схема пингуется между друг другом.
Проверяем наш свич – что все сети находятся в нужном виллане.
Настраиваем и проверяем свич, что все порты настроены правильно. Видим: е0/0 – транк, е1/0 – 10 вилан, е0/3 – 40 вилан, е1/0 – 30 вилан, е1/1 – 50 вилан. Вроде все правильно.
Теперь нужно создать все эти вилланы на нашем PFSense на WF2 (чтоб они были и чтобы устройства друг с другом пинговались) и потом на каждом устройстве назначить IP-шники вилланов. Предполагаем, что изначально нет настроек
Чтобы конфигурить правильно инф-ру нужно видеть эту инф-ру и при любой архитектуре нужно ее четко и ясно нарисовать (текущую ситуацию – рисуем!! Всегда!) – и дальше, уже из этой картинки смотрим: что идет, куда идет, почему, что можно изменить и т.д. Проверяем, что у нам действительно есть все вилланы – 10, 30, 40 , 50. (для рисования матрицы подойдет microsoft excel)


Нужно добавить 50 вилан – админский.
Теперь все вилланы есть на нашем WF:

Для нового 50 вилана привязываем интерфейс:

Теперь посмотрим правила: для всех вилланов!! Всё разрешить

И для 50-ого делаем – так же – все разрешить: нажимаем – КОПИРОВАТЬ 40-вилан:
И меняем в настройках 40 на 50:

Теперь он (WF) работает как обычный роутер, который знает о виланах и будет роутить между этими вилланами/
Завершающий этап: включить машинки и настроить на них IP-шники.
Запускаем машинки на всех вилланах.
Вилан30:
Настраиваем в консоли:
nano /etc/network/interfaces до состояния

Перезапускаем нетворк, если сабинтерфейсы еще есть то ребутаем кали и затем еще раз проверяем.
Всё пингуется: и 8.8.8.8 и сами системы. Также должен пинговаться иDC (если WF отключен):
Все работает правильно: сигнал с виллана 30 идет на WF – там обрабатывает и идет на DС, потом обратным маршрутом возвращается.
Админский виллан (50)
Смотрим, что у нас здесь: nano /etc/network/interfaces
Делаем статиком:

Перезапускаем service networking restart и смотрим ip a, затем пингуем 10.0.50.254 и 10.0.10.1. Если пинг есть значит все работает и так настраиваем все остальные вланы…
**Матрица доступов.** Открываем эксель и делаем табличку: прописываем наши вилланы и стрелкой указываем направление – откуда и куда смотреть (а то матрица доступа окажется неверной) – «защита от дурака». Выделяем клетки вилланов «сам в себе» - 10-10, 20-20… - это уровень L2 и на WF нельзя контролировать (серые клетки)
Далее, думаем как архитекторы информационных систем: виллан 10 – куда может ходить? Виллан 50 – админы – куда? – они могут ходить везде со своей сети (если где-то что-то сломалось, у них должен быть доступ)
Вилан 40 – менеджмент (там оборудование)– куда можно и нужно ходить? – только в интернет ограниченный – только до вендоров оборудования; ограниченный доступ к сервисному виллану – скажем для авторизаций (по необходимости)
Вилан 30 – бухгалтера: - могут до актив-директори за данными и интернет. Другие им не нужны
Вилан 20 – гостевой: только интернет
Вилан 10 – сервисный: нельзя никуда – интернет – ограниченный – только на сервисы за обновами (типа для винды и прочего ПО)
Для ограниченного интернета – на WF есть белый список адресочков, куда оборудование может ходить

В таком визуальном исполнении хорошо видно кто куда может ходить или нет, и удобно исправлять маршруты доступов
Настраиваем эти правила:
Начнем с 10 вилана. Для ограниченного доступа сделаем белый список, куда можно ходить. Для примера разрешим только до гугла, а все остальное – нельзя.
Открываем наш 10 вилан:

Сейчас доступы есть все. Добавляем правило вверх: пункт add -> ищем action где:
pass – разрешить;
blok – блокировать;
reject –блокировать и сказать ответ;
выбираем reject.
далее:

Повторяем тоже самое для 30,40 и 50 виланов – копируем правила.
Меняем только запрещенные вилланы
С 10 вилана на 20,30,40,50 виланы в обратиться нельзя. А вот наоборот – обратиться к вилану10 , то он ему сможет ответить – соединение устанавливается.
Если с 10 вилана пропинговать 30-й получим:
 - запрет на обращение
А теперь наоборот: - обратимся к 10 вилану – с кали –
 - пингуется
При такой настройке WF – мы имеем односторонний канал соединения: от 50 вилана до 10, обратно с 10-ого только до WF и не дальше. Мы не сможем установить реверс-шелл: (обратный доступ возможен только при установленном соединении), а реверс-шелл устанавливает новое соединение и сделать мы его никак не сможем
Ограничение на интернет добавим после того, как введем все правила для остальных вилланов.
Вилан 20:



Копируем и делаем по матрице для 30вилана:

Повторяем для 40вилана: копируем и исправляем запрет, и делаем запрет для 50 вилана
Применяем настройки. По итогу мы запретили возможность ходить виллану 20 в 10, 30, 40, 50 виланы. Интернет остался открытым полностью.

Проверим: пропингуем –
 - интернет есть
  - доступа к вилланам нет
Виллан 30:
Можно вилан10 и интернет – их настройки не трогаем
Запрещаем 20,40 и 50-ый:



Итог:

Не забываем ПРИМЕНИТЬ!!
Проверяем: пингуем –
 - нет доступа
 - интернет есть
 - связь есть
Вилан40:
Пока разрешим полный доступ в 10 вилану:

Разрешаем интернет:

Запрещаем 20,30,50 вилан –


Итог:

(запрещающие правила сверху)
жмем кнопки: save и apply changes
Вилан 50: админы – оставляем как есть

Есть еще такая штучка как «объединение вилланов» по признакам: признак 1, признак 2.. и отдельные частные случаи, как отдельная матрица...