Программный межсетевой экрана (маршрутизатор) pfSense — установка и настройка

Мы предоставляем услуги удаленного администрирования серверов

Программный межсетевой экрана (маршрутизатор) pfSense — установка и настройка

FacebookTwitterVK
Обновлено и опубликовано Опубликовано:

Используемые термины: FreeBSD, Маршрутизатор, Firewall.

pfSense является программным маршрутизатором/фаерволом на основе операционной системы FreeBSD. Рассмотрим его установку и начальную настройку на виртуальную машину.

Установка

Система распространяется как образ операционной системы, готовой к работе в качестве фаервола/маршрутизатора. Переходим на страницу загрузки pfSense и заполняем форму для получения установщика и нажимаем на DOWNLOAD:

Выбраем данные для получения образа установки pfSense

* в данном примере мы выбрали архитектуру AMD64 (для всех современных компьютеров архитектуры x86), образ ISO и Нью-Йорк в качестве зеркала загрузки.

Дожидаемся загрузки файла. Если мы выполняем установку на виртуальную машину, то просто монтируем образ ISO. Если же мы будем устанавливать с помощью сменного носителя, то готовим его с помощью специализированных программ, например, WinSetupFromUsb или Rufus для флешки или InfraRecorder для DVD. Монтируем образ или подключаем установочный носитель, настраиваем БИОС для загрузки с диска или флешки и запускаем установщик — мы должны увидеть сообщение о необходимости принять лицензионное соглашение. Нажимаем Accept:

Принимаем лицензионное соглашение для установки pfSense

После выбираем, что будем делать. В нашем случае, выполнять установку:

Выбираем установку pfSense

На следующем шаге установщик предложит выбрать раскладку клавиатуры — выбираем вариант по умолчанию:

Оставляем раскладку клавиатуры по умолчанию

Выбираем вариант разбивки диска на разделы. В моем случае, это выполняется автоматически:

Выбираем автоматическую разбивку диска

* при необходимости использовать сервер не только в качестве pfSense (что не рекомендуется) можно самостоятельно разбить диск на разделы.

Начнется процесс установки системы:

Процесс установки pfSense

Дожидаемся его окончания. Процесс займет немного времени.

Установщик предложит перейти в командную строку для выполнения ручных настроек — отказываемся:

Отказываемся от выполнения ручных дополнительных настроек после установки pfSense

Перезапускаем компьютер:

После установки выбираем перезагрузку компьютера

Не забываем извлечь установочный носитель.

Установка завершена.

Настройка подключения к веб-интерфейсу

После загрузки pfSense мы увидим меню настройки. Первое, что нам нужно сделать — настроить сеть и веб-интерфейс. Дальнейшую настройку можно делать в последнем.

Выбираем опцию Set interface(s) IP address — номер 2:

Переходим к настройке сетевого интерфейса pfSense

Выбираем интерфейс для настройки. Сначала внутренний (LAN):

Выбираем для настройки LAN-интерфейс

Задаем IP-адрес в соответствии с нашей инфраструктурой:

Указываем, какой IP-адрес должен использоваться на локальном интерфейсе pfSense

* в нашем примере мы хотим задать адрес 192.168.0.23.

Указываем маску подсети:

Задаем маску нашей локальной сети

* в локальных сетях, как правило, используются маски 24, 23, 22.

Если нужно, прописываем адрес шлюза, в противном случае, просто нажимаем Enter:

Добавляем адрес шлюза по умолчанию

* обратите внимание, что адрес шлюза на LAN интерфейсе нам нужен только для статических маршрутов.

Система нам предложит активировать сервер DHCP для локальной сети. Если наш pfSense должен выполнять такую задачу, ставим y. Мы же этого делать не будем:

Не соглашаемся активировать сервер DHCP на pfSense

Также отказываемся к возврату протокола HTTP как веб-конфигуратора:

Не соглашаемся использовать протокол HTTP в качестве веб-конфигуратора

Открываем браузер и переходим по адресу нашего сервера https://192.168.0.23 — появится предупреждение о нарушении безопасности. Просто игнорируем и продолжаем загрузку. 

Система потребует ввода логина и пароля — вводим логин/пароль admin/pfsense.

Готово. Теперь приступим к базовой настройке.

Базовая настройка pfSense

После входа в веб-интерфейс, система может попросить принять условия — просто нажимаем Accept:

Применяем соглашение с условиями использования pfsense

Для удобства поменяем языковые настройки. Переходим в раздел SystemGeneral Setup:

В подразделе «Localization» выбираем наш часовой пояс и язык, с которым нам будет удобнее работать:

Региональные настройки в pfSense

* в нашем примере выставлено московское время и русский язык интерфейса. Однако, нужно отметить, что для pfSense нет полного перевода и некоторые элементы будут на английском.

Для применения настроен кликаем по Save:

Сохраняем региональные настройки pfSense

Теперь сменим пароль по умолчанию для учетной записи admin. В верхней части интерфейса мы увидим предупреждение — кликаем по Change the password in the User Manager:

Переходим к смене пароля администратора

Вводим дважды новый пароль:

Вводим пароль для учетной записи admin

Сохраняем настройки:

Сохраняем новый пароль

Сообщение с предупреждением в верхней части экрана должно исчезнуть.

Переходим к настройке Интернет соединения. Кликаем по ИнтерфейсыWAN:

Переходим к настройке WAN интерфейса

В подразделе «Общие настройки» выбираем вариант получения сетевых настроек:

Настройка получения сетевого адреса для WAN

* в нашем примере мы зададим вручную IP-адрес. Если не используется IPv6 — отключаем его (как в данном случае).

Ниже задаем IP-адрес (если мы выбрали вариант получения Статический IPv4):

Прописываем статический арес сетевого интерфейса

Указываем маску подсети:

Настройка маски сети для Интернет-соединения

Справа от «IPv4 Шлюз» кликаем по Добавить новый шлюз:

Переходим к добавлению нового шлюза

В открывшемся окне добавляем адрес шлюза для доступа к сети Интернет и кликаем Добавить:

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

Сохраняем настройки:

Сохраняем настройки для сетевого интерфейса WAN

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

Для того, чтобы изменения вступили в силу, необходимо их применить:

Применяем сетевые настройки в pfSense

Настройка завершена. Можно попробовать прописать наш pfSense в качестве шлюза и проверить доступ к сети Интернет.

В моем случае Интернет не заработал по причине наличия маршрута через локальную сеть. Решение ниже.

Статические маршруты

Если у нас есть несколько подсетей, доступ к которым нужно обеспечить через внутренние маршрутизаторы, pfSense позволяет добавить статические маршруты. 

Для этого переходим в СистемаМаршрутизация:

Переходим к настройке маршрутизации в pfSense

Кликаем по ссылке Статические маршруты:

Переходим к добавлению статических маршрутов

Кликаем по кнопке Добавить:

Нажимаем по кнопке добавить

В открывшемся окне вводим подсеть, для которой нам нужен маршрут и выбираем шлюз, через который будет осуществляться доступ к данной сети:

Вводим настройки для статической маршрутизации

* в данном примере мы создадим статический маршрут в сеть 192.168.1.0/24 через шлюз 192.168.0.1.

Сохраняем настройки:

Сохраняем настройки статической маршрутизации

Чтобы изменения вступили в силу, кликаем по Применить изменения:

Применяем настройка статической маршрутизации

Готово.

Возможные ошибки

Рассмотрим проблемы, которые могут возникнуть при настройке pfSense.

Нет доступа в Интернет

После настройки WAN для компьютеров локальной сети нет доступа к сети Интернет. Я столкнулся с данной проблемой маршрутизации после того, как был настроен WAN-интерфейс. По идее, компьютеры локальной сети, которые подключены к pfSense как к шлюзу по умолчанию, должны получить выход к глобальной сети. Однако, этого не произошло. При этом, если перейти в панели управления в раздел меню ДиагностикаПинг и отправить тест на любой адрес в сети Интернет, он проходил корректно, то есть, на самом pfSense выход в Интернет был.

Причина: проблема может возникнуть, если мы сначала указывали шлюз на интерфейсе LAN, затем поменяли его на WAN. Возможно, систему клинит, и появляется ошибка маршрутизации.

Решение: удалить маршрутизацию через LAN, убедиться, что появился Интернет на компьютерах локальной сети, после снова создать маршрутизацию через LAN.

Для этого переходим к настройкам маршрутизации:

В меню pfSense переходим к настройкам маршрутизации

Переходим к статическим маршрутам:

Переходим к настройкам статической маршрутизации

Удаляем все маршруты через локальную сеть:

Удаляем статические маршруты

Переходим в раздел Шлюзы:

Возвращаемся к настройкам шлюзов pfSense

Удаляем шлюз через локальную сеть:

Удаляем шлюз через локальную сеть

Проверяем, что у нас появился интернет на компьютерах локальной сети. 

После того, как мы убедились в исправной работе шлюза для доступа к глобальной сети, на той же вкладке по работе со шлюзами нажимаем Добавить:

Переходим к добавлению нового шлюза

Задаем имя и адрес маршрутизатора в локальной сети:

Настраиваем шлюз для локальной сети

Сохраняем настройки:

Сохраняем настройки для нового шлюза

… и применяем их:

Применяем настройки шлюза

Возможности pfSense

Из коробки, нам доступны следующие возможности:

  • Брандмауэр.
  • DNS и DHCP.
  • Проброс портов.
  • Маршрутизация и NAT.
  • Ограничение скорости.
  • VPN — IPSEC, L2TP, OpenVPN.
  • Аутентификация через LDAP (например, Active Directory) или RADIUS.

Это не совсем все возможности — лишь пример, довольно, часто используемых функций.

Помимо доступных сервисов, мы можем воспользоваться менеджером пакетов (СистемаМенеджер пакетовДоступные пакеты), чтобы расширить возможности pfSense, например, мы можем установить:

  1. Прокси-сервер, например, SQUID + squidGuard.
  2. Блокировщики отслеживания и рекламы: pfblockerng.
  3. Средства мониторинга: zabbix-agent, zabbix-proxy.

И так далее…

Читайте также

Возможно, вам будет интересны следующие инструкции:

1. Настройка OpenVPN сервера на Mikrotik.

2. Настройка Интернет-шлюза на Ubuntu


Warning: file_exists(): open_basedir restriction in effect. File(/home/rsa/sites/admins24.com/.maintenance) is not within the allowed path(s): (/home/rsa/sites/dev.admins24.com:.) in /home/rsa/sites/admins24.com/wp-includes/load.php on line 306

Warning: file_exists(): open_basedir restriction in effect. File(/home/rsa/sites/admins24.com/wp-content/plugins/amp/assets/css/amp-default.css) is not within the allowed path(s): (/home/rsa/sites/dev.admins24.com:.) in /home/rsa/sites/admins24.com/wp-content/plugins/amp/includes/sanitizers/class-amp-style-sanitizer.php on line 1282

Warning: file_exists(): open_basedir restriction in effect. File(/home/rsa/sites/admins24.com/wp-includes/Requests/Cookie/Jar.php) is not within the allowed path(s): (/home/rsa/sites/dev.admins24.com:.) in /home/rsa/sites/admins24.com/wp-includes/class-requests.php on line 145

Warning: file_exists(): open_basedir restriction in effect. File(/home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/tree.class.php) is not within the allowed path(s): (/home/rsa/sites/dev.admins24.com:.) in /home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/folders.class.php on line 2669

Warning: file_exists(): open_basedir restriction in effect. File(/home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/form.class.php) is not within the allowed path(s): (/home/rsa/sites/dev.admins24.com:.) in /home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/folders.class.php on line 2669

Warning: file_exists(): open_basedir restriction in effect. File(/home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/class-wpml.php) is not within the allowed path(s): (/home/rsa/sites/dev.admins24.com:.) in /home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/folders.class.php on line 2669

Warning: file_exists(): open_basedir restriction in effect. File(/home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/class-polylang.php) is not within the allowed path(s): (/home/rsa/sites/dev.admins24.com:.) in /home/rsa/sites/admins24.com/wp-content/plugins/folders/includes/folders.class.php on line 2669

Fatal error: Uncaught Error: Class 'Requests_Cookie_Jar' not found in /home/rsa/sites/admins24.com/wp-includes/class-requests.php:591 Stack trace: #0 /home/rsa/sites/admins24.com/wp-includes/class-requests.php(365): Requests::set_defaults('https://admins2...', Array, NULL, 'GET', Array) #1 /home/rsa/sites/admins24.com/wp-includes/class-http.php(394): Requests::request('https://admins2...', Array, NULL, 'GET', Array) #2 /home/rsa/sites/admins24.com/wp-includes/class-http.php(626): WP_Http->request('https://admins2...', Array) #3 /home/rsa/sites/admins24.com/wp-includes/http.php(162): WP_Http->get('https://admins2...', Array) #4 /home/rsa/sites/admins24.com/wp-content/plugins/amp/src/RemoteRequest/WpHttpRemoteGetRequest.php(114): wp_remote_get('https://admins2...', Array) #5 /home/rsa/sites/admins24.com/wp-content/plugins/amp/src/RemoteRequest/CachedRemoteGetRequest.php(125): AmpProject\AmpWP\RemoteRequest\WpHttpRemoteGetRequest->get('https://admins2...') #6 /home/rsa/sites/admins24.com/wp-content/plugins/amp/includes/sanit in /home/rsa/sites/admins24.com/wp-includes/class-requests.php on line 591