Глава 3 Основная конфигурация

В этой главе мы рассмотрим:
- Создание алиасов
- Создание правил форвардинга портов NAT
- Создание правил брандмауэра
- Созание расписания
- Доступ к удалённому рабочему столу

Введение
Базовая функциональность любого брандмауэра включает создание правил форвардинга портов и правил безопасности брандмауэра, и pfSense не является исключением. Эти базовые возможность, плюс некоторые другие могут быть найдены в главном меню Firewall интерфейса pfSense.
Эта глава рассказывает, как конфигурируются эти правила и описывает возможности связанные с ними.

Создание алиасов
Этот рецепт описывает, как использовать, создавать, редактировать и удалять алиасы. Алиасы (или псевдонимы) обеспечивают разгрупировку между правилами и значениями которые могут изменяться в будущем (например IP адреса, порты и пр.). Алиасы следует использовать при любой возможности.

Как это сделать...
1. Переходим на страницу Firewall | Aliases.
2. Нажимаем кнопку [+] для добавления нового алиаса.
3. Добавляем имя (Name) для алиаса.
4. По желанию вводим описание (Description).
5. Выбираем тип алиаса (Type) и на этом заканчиваем базовую конфигурацию. (Смотрите следующий раздел для детального описания каждого типа алиасов (Hosts, Networks, OpenVPN Users, URL и URL Table).

6. Сохраняем изменения (Save).
7. Применяем изменения (Apply), если необходимо.

Как это работает...
Алиас это именованый элемент (т.е. переменная) информации, которая может быть изменена. Алиас хоста - хороший пример: мы можем создать алиас хоста названый Computer1 и хранить его IP адрес 192.168.1.200. Затем, мы можем создать правила брандмауэра и NAT, которые будут использовать алиас Computer1 вместо явного указания IP адреса, который может изменяться. Если IP адрес Computer1 изменится, мы просто отредактируем данные алиаса, вместо того, чтобы редактировать множество правил включающих его. Алиасы позволяют достичь высокой гибкости и простоты работы. Лучше всегда использовать алиасы в повседневной работе. 


Немного больше...
Добавление алисов на алиасы является отличным способом для управления и упрощения правил. Для иллюстрации использования алиасов, допустим, что организация имеет один VoIP телефон, которому разрешено взаимодействие с VoIP сервером.

Вот пример правила без использования алиасов

Лучший пример использующий алиасы

Ещё лучший вариант использующий субалиасы

Субалиасы позволят нам легко добавлять больше телефонов простым изменением алиаса

Host alias
Выбор Host(s) в качесте типа алиаса (Type) позволит вам создать алиас который содержит один или несколько IP адресов

Network alias
Выбор Network(s) в качестве типа алиаса позволит создать алиас содержащий одну или несколько сетей (т.е. диапазонов IP адресов)

Port alias
Выбор Port(s) в качестве типа алиаса позволит вам создать алиас содержащий один или более портов

OpenVPN Users alias
Выбор OpenVPN Users в качестве типа алиаса позволит создать алиас содержащий одно или несколько имён пользователей OpenVPN

URL alias
Выбор URL в качестве типа алиса позволит создать алиас содержащий один или более URLs

URL Table alias
Выбор URL Table в качестве типа позволит создать алиас содержащий простой URL указывающий на большой список адресов. Это может быть хорошей помощью когда вам необходимо импортировать большой список IP и/или подсетей.

Использование алиасов
Алиасы могут быть использованы везде где имеется красное поле ввода. Просто начните набирать алиас и pfSense отобразит список доступных алиасов совпадающих с набираемым именем

Замечание:
Доступно автоконтекстное сопоставление набора алиаса. Для примера, если в строке ввода требуется номер порта pfSense отобразит только совпадающие алисы типа Port .

Редактирование алиасов
Для модификации созданых алиасов необходимы следующие шаги
1. переходим на страницу Firewall | Aliases.
2. нажимаем кнопку редактирования для редактирования алиаса.
3. вносим требуемые изменения.
4. Сохраняем (Save) изменения.
5. Применяем (Apply) изменения.

Удаление алиасов
Для удаления алиасов следует
1. Перейти на страницу Firewall | Aliases.
2. Нажать кнопку Delete для удаления алиаса.
3. Сохранить (Save) изменения.
4. Применить (Apply) изменения.

Массовый импорт алиасов
Для импорта списка нескольких IP адресов необходимо выполнить следующие шаги
1. Перейти на страницу Firewall | Aliases.
2. Нажать кнопку Import.
3. Ввести имя алиаса (Alias Name)
4. Ввести описание (Description)
5. Вставить список IP адресов, один на строку, в поле Aliases to Import

6. Сохранить (Save) изменения.
7. Применить (Apply) изменения.

 

Смотри так же
- Рецепт Создание правил форвардинга портов NAT
- Рецепт Создание правил брандмауэра
- Официальная документация на http://doc.pfsense.org/index.php/Aliases


Создание правил форвардинга портов NAT
Этот рецепт описывает как создать, изменить и удалить правила форвардинга портов

Подготовка
Сложность правил форвардинга (проброса, перенаправления) портов может сильно варьироваться. Каждый аспект правила проброса портов подробно излагается в разделе "Немного больше". Ниже приводится пример типичного сценария форвардинга порта. Мы создадим правило проброса порта для пересылки входящих web запросов (HTTP) к компьютеру сконфигурированному в качестве web сервера.

Как это сделать...
1. Переходим на страницу Firewall | NAT
2. Выбираем закладку Port Forward.
3. Нажимаем кнопку [+] для создание нового правила проброса порта
4. Для Destination port range (диапазон портов назначения), выбираем HTTP для выпадающих списков from и to.
5. Для Redirect target IP (перенаправления целевого IP) указываем web сервер к которому должен направляться данный трафик, по алиасу или по его IP адресу.
6. Для Redirect target Port (пренаправление целевого порта) выбираем HTTP.
7. Добавляем описание (Description), например такое как Forward HTTP to webserver1.
8. Сохраняем изменения.
9. Применяем изменения.

Замечание:
По умолчанию, создаются правила брандмауэра позволяющие прохождение трафика перенаправления, но важно помнить, что правила NAT и правила брандмауэра различны и раздельны. Правила NAT перенаправляют трафик, в то втремя как правила брандмауэра блокируют или позволяют его. Следует помнить, что даже если правила NAT перенаправляют трафик, правила брандмауэра не обязательно позволяют его!

 

Как это работает...
Весь трафик проходит через список правил NAT отбираясь по следующим критериям
- Интерфейс
- Протокол
- порт и диапазон портов источника
- порт и диапазон портов назначения
Если любой трафик соответствует всем этим критериям, этот трафик будет перенаправлен к указанным параметрам Redirect target IP и Redirect target port.

Замечание:
Подобно всем правилам в pfSense, правила NAT сравниваются сверху вниз. Первое соответствующее правило немедленно выполняется, остальные пропускаются.

Наш конкретный пример может быть прочитан так
Трафик с:
- Интернет (Интерфейс WAN)
- с любого клиента (Source) на любой порт (Source Port Range)
Приходящий на:
- Наш публичный IP адрес (Destination WAN address)
- C запросом web сайта (Protocol: TCP, Destination Port Range: HTTP)
Будет направлен на:
- требуемый компьютер (Redirect Target IP: Webserver1)
- с тем же запросом (Protocol: TCP, Destination Port Range: HTTP)

Немного больше...
Правила NAT могут быть сконфигурированы с использованием различных опций, каждая из которых детально описана далее (жирным шрифтом выделены изменяющиеся элементы)
- Disable: Соответственно можно включить или выключить правило NAT
- No RDR (NOT): включение этой опции отключает перенаправление трафика
- Interfaces : Определяет интерфейс для этого правила NAT (обычно WAN)
- Protocol: Определяет протокол для этого правила NAT. Обычно это TCP, UDP, или TCP/UDP, однако могут использоваться GRE и ESP
- Source : обычно источник имеет значение по умолчанию any, однако вы можете определить специфический источник, если необходимо.
- Source Port Range : в основном Source Port Range имеет значение any, однако можно определить специфические порты.
- Destination : значение Destination по умолчанию соответствует WAN адресу (вашему публичному IP), однако может быть определено альтернативное значение.
- Destination Port Range : это порт, трафик которого запрашивается. Если требуется переадресация web трафика, мы выбираем HTTP, который используется настолько часто, что присутствует в выпадающем списке, однако аналогично можно указать и порт 80. Если требуется указать другой порт (например для направления трафика торрента на порту 46635), не забывайте использовать алиасы.
- Redirect Target IP: Это IP адрес внутреннего компьютерак которому мы направляем трафик.
Используйте алиасы!
- Redirect Target Port: Порт компьютера определённого в предыдущем пункте. Используйте псевдонимы!
- Description: описание вводимое здесь копируется в любые правила брандмауэра (предварясь словом "NAT") которые генерируются автоматически.
- No XMLRPC Sync: включение этой опции для правила предотвращает его применение для любых избыточных брандмауэров использующих CARP. Обратитесь к разделу "Конфигурирование отказоустойчивости брандмауэра с помощью CARP" в главе 6 "Избыточность, балансировка нагрузки и отказоустойчивость" для получения подробной информации.
- NAT Reflection: Пркатически всегда используется системой по умолчанию, но может быть включена или отключена в соответствии с правилом, если это необходимо.
- Filter Rule Association: Для данного правила будут автоматически создаваться и назначаться правила брандмауэра.

 

Перенаправление порта:
Истиные правила перенаправления портов будут направлять трафик на тот же порт внутренней машины что и входящий порт (т.е. диапазон портов назначения Destination port range и целевой порт перенаправления Redirect target port будут совпадать). Однако, никто не запрещает вам перенаправить трафик на другой порт. Обычно для этого существуют две причины

- Безопасность посредством сокрытия: всем известно, что стандартный порт HTTP 80, но если у вас есть "секретный" сайт, доступ к которому вы хотите ограничить, вы можете установить Destination port range на какой-то специфичный порт (например 54321). Пользователям придётся знать, что для доступа к этому сайту в браузере придётся ввести http://www.example.com:54321
- Наличие только одного публичного IP адреса : в небольших средахимеется только один публичный IP адрес и может не получиться подключить множество публичных сервисов. Ну например, "я хочу удалённо управлять двумя различными машинами, а у меня только один IP адрес". Используя перенаправление портов мы можем создать два различных правила NAT.
Первое будет перенаправлять порт 50001 к Computer1 на MSRDP (порт 3389) а второе будет направлять порт 50002 к Computer2 на MSRDP (порт 3389). Таким образом вы сможете управлять двумя машинами с использованием одного IP, указав определённый порт (например example.com:50001, example.com:50002) ну и так далее...

Смотрите так же
- Рецепт Создание алиасов
- Рецепт Создание правил брандмауэра
- Рецепт "Конфигурирование отказоустойчивости брандмауэра с помощью CARP" в главе 6 "Избыточность, балансировка нагрузки и отказоустойчивость".

Создание правил брандмауэра
Этот рецепт описывает как создать правило брандмауэра.

Подготовка
В качестве примера, мы будем создавать правило брандмауэра позволяющее направлять web трафик в соответствии с правилом форвардинга портов NAT которое мы создали в предыдущем примере. Если вы следовали всем указаниям, то как мы уже говорили, автоматически было создано требуемое правило брандмауэра, однако вместо этого мы могли бы указать для Filter Rule Assiciation значение None и использовать этот рецепт для создания собственного правила.

Как это сделать...
1. Переходим на страницу Firewall | Rules
2. Выбираем закладку WAN
3. Нажимаем кнопку [+] для создания нового правила брандмауэра
4. Указываем WAN Inreface
5. Указываем TCP Protocol
6. Указываем any для Source (Источник)
7. Указываем any для Source Port Range (Диапазон портов источника)
8. Указываем Webserver1 для Destination (Назначения)
9. Указываем HTTP для Destination Port Range (Диапазон портов назначения)
10. Указываем Description (Описание)
11. Сохраняем (Save) изменения.
12. Применяем (Apply) изменения.

Как это работает...
Весь трафик пропускается через список правил брандмауэра. Если любой пакет трафика совпадает со всеми критериями правила, это правило будет выполнено (соответственно пакет будет либо позволен либо отброшен)

Замечание:
Подобно всем правилам pfSense, правила брандмауэра проверяются сверху вниз. Первое соответствуещее правило немедленно выполняется а остальные пропускаются. Смотрите раздел "Порядок правил брандмауэра" для получения детальной информации.

Наше правило можно прочитать так:

"Любому порту с любого клиента в Интернет позволен доступ к нашему web серверу на порт 80".

Немного больше...
Правила брандмауэра весьма конфигурируемы. Детальное описание каждой опции правила указано дальше
- Action: Тип действия выполняемого при совпадении правила.
- Pass: если все критерии соответствуют, пакет дозволяется.
- Block: если все критерии соответствуют, пакет блокируется ( так же известно как тихий сброс - silent drop).
- Reject: если все критерии соответствуют, пакет возвращается отправителю.
- Disable: отключает действие правила без необходимости его удаления.
- Interfaces: трафик исходящий с указанного интерфейса будет проверяться данным правилом. Обычно это интерфейс WAN.

 

- Protocol: определяет проверяемый протокол; зависит от типа трафика определяемого правилом.
- Source: обычно any когда речь идёт о входящем трафике.
- Source Port Range: обычно any когда речь идёт о входящем трафике.
- Destination: обычно это алиас или IP адрес компьютера, который обслуживает этот трафик.
- Destination Port Range: обычно это определённый порт компьютера, который обслуживает этот трафик.
- Log: Включает журналирование для записи пакетов соответствующих данному правилу.
- Description: вводится полное описание правила.

Мы редко знаем исходный порт!
При создании правил, важно помнить, что диапазон Source Port Range практически всегда устанавливается в any. Часто делают ошибку определяя диапазон исходных портов когда делать этого не следует. Помните, когда вы запрашиваете web-сайт, вы запрашиваете порт 80 на чужом компьютере и компьютер решает какой порт открыть для вас. Это ваш исходный порт, постоянно изменяющийся, который вы вероятно никогда не будете знать. Так что, 99% времени мы не знаем диапазона портов источника трафика который позволяем.

Порядок правил брандмауэра
Правила pfSense проверяются сверху вниз. Первое соответствующее правило выполняется, остальные пропускаются. Множество администраторов добавляют весьма специфические правила вверх списка, а более основные помещают вниз.

Для изменения порядка правил, выберите правило и нажмите кнопку [move selected rules before this rule] 


Дублирование правил брандмауэра
Конечно, вы можете создать новое правило аналогичное созданному ранее. Но для ускорения процесса, вы можете создать новое правило непосредственно из ранее созданного просто нажав кнопку [+]

Расширенные возможности
Новинка pfSense 2.0 - секция Advanced Features в правилах брандмауэра. Каждая из следующих опций может быть определена в качестве критерия для правила. Если дополнительная опция не указана, правило будет выполняться только при нахождение соответствия. Нажмите кнопку Advanced для отображения параметров конфигурации каждой опции

- Source OS: эта опция позволяет проверить сответствие операционной системы источника трафика

- Diffserv Code Point: Diffserv это механизм для обеспечения QoS сетевого трафика. Системы могут приоритезировать трафик основываясь на значении его кодовой точки

- Advanced Options: Позволяет определять дополнительные опции IP

- TCP Flags: Определяет флаги TCP которые могут быть установлены

- State Type: Определяет конкретный механизм отслеживания состояния

- No XMLRPC Sync: предотвращает правило при синхронизации с другими членами CARP

- Schedule: определяет расписание, указывающее когда правило действует. Расписание определяется на странице Firewall | Schedules

- Gateway: можно указать шлюз отличный от используемого по умолчанию

- In/Out: Определяет альтернативные очереди и виртуальные интерфейсы

- Ackqueue/Queue: определяет альтернативный порядок очередей

- Layer7: определяет альтернативный контейнер уровня 7

Смотрите так же...
- Рецепт Создание алиасов
- Рецепт Создание правила форвардинга портов NAT
- Рецепт Создание расписания

Создание расписания
Этот рецепт описывает как создать расписание.

Подготовка
Расписание позволяет определить когда правила действуют. В первую очередь это относится к правилам брандмауэра, однако блаагодаря общему дизайну расписания можно использовать совместно с другими существующими и планируем функциями pfSense. Если расписание определяется для правила брандмауэра, правило действует только в течение данного периода времени. В следующем примере мы определим расписаниедля нормального рабочего дня с 9.00 до 17.00.

Замечание:
Когда создаётся расписание, важно, чтобы параметры вашего NTP сервера были настроенн коректно. Кроме того следует помнить о часовых поясах и времени светового дня.

Как это сделать...
1. Перейдите на страницу Firewall | Schedules.
2. Нажмите [+] для создания нового расписания.
3. Введите имя расписания (Schedule Name), например WorkHours.
4. Введите описание (Description), например Regular work week hours.
5. В разделе Месяц (Month), нажмите Mon, Tue, Wed, Thu и Fri дл выбора рабочих дней недели.
6. Укажите 9am как время начала действия (Start Time) и 5pm как врем завершения действия (Stop Time).
7. Введите описание временного интервала (Time Range Description), например Monday-Friday 9am-5pm
8. Нажмите Add Time

9. Обратите внимание, что повторющееся время добавлется в настроенные диапазоны (Configured Ranges)

10. Сохраните (Save) изменения.
11. Примените (Apply) изменения, если необходимо.

Как это работает...
Особенности связанные с расписанием будут действовать только в рамках расписания. Для связывания правил брандмауэра с созданным расписанием необходимо
1. Отредактировать созданное правило брандмауэра, или содать новое.
2. Нажать кнопку Schedule Advanced для отображения опций расписания.
3. Выбрать WorkHours в вашем расписание (Schedule)

4. Сохранить (Save) изменения.
5. Применить (Apply) изменения.

Немного больше...
По всей системе существуют иконки, позволяющие визуально определить активность расписания
- Firewall | Schedules: Активное расписание отображается иконкой с "часиками"

- Firewall | Rules: Правила с активным расписанием (относится к правилам которые включены) отображаются с "зелёной стрелкой" в колонке расписания. Правила с неактивным расписанием (относится к правилам которые отключены) отображаются с "красным крестиком" в колонке расписания.

Выбор дней или дней недели.
Раздел месяц (Month) работает двумя способами
- Выбор специфических дней (Selecting specific days): Переключаетесь на требуемый месяц и нажимаете требуемые дни (все года релевантны; любые выбранные дни будут повторяться каждый год)


- Выбор дней недели (Selecting days of the week) : Нажимаете день(дни) недели (месяца релевантны; любые дни будут повторяться каждый месяц)

Смотрите так же:
- Рецепт Создание алиасов
- Рецепт Создание правила форвардинга портов NAT
- Рецепт Создание правила брандмауэра

Доступ к удалённому рабочему столу, полный пример
Рецепт описывает, как позволить доступ к внутренней машине используя протокол удалённого рабочего стола (Microsoft RDP)

Подготовка
Целью данного рецепта является демонстрация типичной задачи брандмауэра. Пример покажет как получить удалённый доступ на машину внутренней сети из любой точки мира посредством Интернет. Для этого потребуется конфигурирование всех опций которые мы рассматривали до этого момента
- DHCP сервер
- статическое сопоставление DHCP
- DNS форвардер
- Алиас
- Форвардинг порта NAT
- Правила брандмауэра
- Расписания

Как это сделать...
1. Для начала присоединим компьютер к нашей сети.
2. Перейдём на страницу Status | DHCP Leases для поиска вновь добавленного компьютера. Нажмём кнопку [+] для связывания нового статического сопоставления для данного устройства

3. Определим статический IP адрес 192.168.1.200 и назовём его laptop1

4. Сделаем так, чтобы наш DNS форвардер автоматически конфигурировал обслуживание статического сопоставления на странице Services | DNS Forwarder, чтобы мы могли легкоссылаться на наш компьютер по имени 


5. Создадим алиас который будет использоваться при ссылках на данный компьютер в pfSense, для чего в Firewall | Aliases

6. Создадим расписание на странице Firewall | Schedules для включения удалённого доступа только в рабочее время, когда мы собираемся его использовать. Кроме того, мы снизим вероятность атаки на систему в то время пока мы спим

7. Теперь мы создадим правило NAT для форвардинга всех запросов RDP к нашему компьютеру, на странице Firewall | NAT. Исследование вопроса о RDP подскажут нам, что требуется осуществить форвардин порта TCP 3389 (pfSense включает предустановку для порта MS RDP)

8. Далее, нам необходимо добавить расписание для правила брандмауэра, которое автоматически создаётся на странице Firewall | Rules

9. Сохраним (Save) изменения.
10. Применим (Apply) изменения, если необходимо.

Как это работает...
Наше правило NAT направляет все запросы RDP к нашему компьютеру. Правило NAT всегда включено. Наше правило брандмауэра позволяет удалённое управление компьютером, однако только в определённые часы (Понедельник-пятница с 9.00 до 17.00). Во время написания этой книги, в субботу 16.00 вы можете видеть, что данное правило отключено.

Немного больше...
Если вам требуетс более серьёзная безопасность, мы можем ограничить внешний доступ только вашим рабочим IP адресом. Сначала нам необходимо создать алиас для вашего офисного IP адреса:

 

Теперь следует изменить правило брандмауэра таким образом, чтобы оно позволяло принимать запросы только с IP адреса вашей компании (запомните, трафик не соответствующий данному правилу будет блокироваться по умолчанию). Теперь, используя pfSense Filter Rule Association, мы должны изменить источник (Source)для правила брандмауэра.

Так, теперь изменим соответствующее правило NAT. Для источника (Source), нажмём кнопку Advanced и укахем алиас для IP адреса нашей компании.

Затем, дважды проверим что изменения применены вплоть до правила брандмауэра, с которыми они связаны

Смотрите также...
- Рецепт Конфигурирование DHCP в главе 2
- Рецепт Создание статических сопоставлений DHCP в главе 2
- Рецепт Конфигурирование динамического DNS в главе 2
- Рецепт Создание алиасов
- Рецепт Создание правила форвардинга портов NAT
- Рецепт Создание правила брандмауэра
- Рецепт Создание расписания