На варті безпеки pfSense – дистрибутив для створення роутера
Зміст статті
Для організації спільного доступу до мережі та захисту внутрішніх ресурсів адміністратори зі стажем воліють використовувати спеціалізовані міні-дистрибутиви, побудовані на базі урізаних версій Linux або BSD. З їх допомогою можна легко перетворити малопотужний комп'ютер на надійний маршрутизатор. До подібних рішень саме і належитьpfSense.
За кілька років розробки функціональність була збільшена на порядок (за порівнянням з «татом»), крім того, значно зросла кількість доступних додатків. Сьогодні користувачі отримали безкоштовне рішення, яке за своїми можливостями не поступається деяким комерційним. Платою за функціональність послужив трохи більший розмір дистрибутива і більш високі вимоги, що пред'являються до апаратної частини, зокрема, до обсягу ОЗУ (хоча за сучасними мірками вони не високі).
УpfSense було виконано технічний редизайн. Так, якщо m0n0wall під час роботи практично не звертається до жорсткого диска і тримає налаштування в основному в ОЗУ (що, загалом, виправдано), то pfSense працює як звичайний дистрибутив. І хоча доступна Embedded-версія для вбудованих пристроїв, цей напрямок не є пріоритетним.
МожливостіpfSense
Як засіб фільтрації вpfSense використовується «опеночний» Packet Filter з інтегрованим ALTQ та підтримкою нормалізації пакетів. Само собою, є і NAT, статичні маршрути, VLAN. Роутер можна перевести в прозорий мост. На відміну від m0n0wall, підтримується робота з кількома WAN-інтерфейсами – з балансуванням, як вихідних, так і вхідних з'єднань. Це забезпечить рівномірнерозподіл навантаження кількома серверами. Підтримка протоколу CARP (Common Address Redundancy Protocol) дозволяє організувати відмовостійкий кластер шлюзів.
Крім того, до складуpfSense входять: сервер та клієнт PPPoE, сервер та агент ретрансляції DHCP, сервер DNS, FTP проксі, Captive Portal з можливістю аутентифікації через RADIUS. Є засоби для підключення до віртуальних приватних мереж та організації такого сервісу за протоколами IPsec, PPTP, OpenVPN. Підтримується SNMP, а RRD-графіки дозволяють у наочному вигляді отримати інформацію про завантаження систем, каналів та ін.
Всі налаштування виконуються за допомогою зрозумілого веб-інтерфейсу, який, хоч і не локалізований (роботи ведуться), але при базовому англійському та знанні мереж освоюється за кілька годин.
Є можливість встановлення з сайтуpfSense додаткових пакетів, що розширюють і без того чималі функції. Також можна спробувати додати потрібний пакет з найближчого дзеркала FreeBSD за допомогою утиліти pkg_add.
Запускаємо у роботу
На дзеркалах, список яких доступний на сторінці завантаження продукту, викладено дві версіїpfSense : для вбудованих пристроїв та LiveCD-Installer. Другий варіант більш універсальний, оскільки може працювати як LiveCD, і встановлюватися на жорсткий диск. Розмір дистрибутива невеликий – лише 60 Мб.
Мінімальні вимоги до заліза такі: комп'ютер з частотою процесора 100 МГц, 128 Мб оперативної пам'яті і диск об'ємом 1 Гб для установки системи. Для Embedded дані аналогічні, тільки для установки достатньо мати 128 Мб флешку. Такий комп'ютер без проблем обслуговуватиме 10-мегабітну сітку з необхідними функціями, але при збільшенні швидкості або функцій (наприклад, підрахунку трафіку) потрібне потужніше обладнання. При установці є можливість вибрати ядро з підтримкою багатопроцесорних систем, тому під роутер можна сміливо задіяти найсучасніший комп'ютер. Більше конкретні вимоги для різних варіантів використанняpfSense описані на сайті проекту в документі Hardware Sizing Guidance. Інформацію про сумісне обладнання можна знайти у «FreeBSD 6.2 Hardware Compatibility List» на сайті FreeBSD.
Отже, записуємо образ та завантажуємося. Скрипти завантаження проаналізують наявне обладнання. Після ініціалізації буде виведено список мережевих карток з пропозицією налаштувати VLAN-, LAN- і WAN-мережеві інтерфейси. Спочатку йде VLAN:
Do you want to set up VLANs now [yn]?
В принципі, якщо налаштування мережі відомі, то VLAN можна використовувати прямо зараз, натиснувши «y» і ввівши parent-інтерфейс (список мережевих буде виведено повторно). Однак більшості користувачів буде зручніше за допомогою консолі налаштувати лише внутрішній LAN-інтерфейс. Інші ж налаштувати за допомогою допомоги графічного меню. Якщо вихід у мережу здійснюється через PPPoE або PPTP, то через специфіку веб-інтерфейсу доведеться в будь-якому випадку піднімати VLAN (в розділі «Налаштування через веб» я покажу, як це зробити). На наступному кроці скрипт запропонує ввести назву LAN-інтерфейсу.
Enter a LAN interface name or `a` для autodetection: fxp0
Аналогічно налаштовується WAN та додаткові (Optional) інтерфейси. Згодом замість Optional їм можна дати будь-яку іншу назву (наприклад, DMZ). Коли налаштування закінчені, натискаємо . Скрипт виведе поточні налаштування.
LAN -> fxp0 WAN -> fxp1
Підтверджуємо установки натисканням «y» тачекаємо, доки завантажиться система.
Do you want to processed [yn]?y
*LAN -> fxp0 -> 192.168.1.1 *WAN -> fxp1 -> 192.168.175.128(DCHP)
Do you want to enable the DCHP server on LAN [yn]?
Під цифрою 99 знаходиться пункт, що дозволяє встановитиpfSense на жорсткий диск . Після встановлення він з меню зникає. До речі, дистрибутив необов'язково встановлювати: якщо вставити дискету, при вимкненні всі налаштування будуть збережені на неї.
УстановкаpfSense на хард
Незважаючи на те, щоpfSense - це урізана версія FreeBS D, його установка дуже проста і не вимагає будь-яких специфічних знань системи. Майстер установки, що з'являється після введення 99 (InstallpfSense to hard drive …), допоможе зробити всі необхідні дії. Але пам'ятай, всі розділи на вибраному жорсткому диску будуть знищені. За наявності деякого досвіду можна спробувати прилаштуватиpfSense як другу систему, але краще для експериментів використовувати віртуальні машини, під якими цей дистрибутив відмінно працює (або інший вінч). Сама установка займає п'ять хвилин. Для запису налаштувань і переходу до наступного кроку вибираємо «Accept these settings». Перейти до наведеного пункту можна за допомогою стрілок або табуляції.
Подальші налаштування виконуються вже через веб-інтерфейс.
Налаштування через веб
Після налаштування всі з'єднання з внутрішніх мереж будуть дозволені. Правила NAT створюються автоматично (новачки це оцінять). Коли такі правила планується створювати вручну, потрібно зняти прапорець «Disable NAT Reflection», який знаходиться внизу сторінки System – Advanced. ІнтерфейсpfSense розбитий на 7 основних вкладок: System, Interfaces, Firewall, Services, VPN, Status та Diagnostics. При виборі кожної відкриються додаткові підпункти. Наприклад розберемо деякі настройки.
Спочатку створюємо дозвільне правило, що дозволяє з'єднуватися віддалено через webGUI. Вибираємо Add new rule і вказуємо в Action – Pass, Interface – LAN, Protocol – TCP. Поля Source і Destination у тому випадку, коли використовується 80-ий порт, можна встановити в Any, щоб користувачі могли отримати доступ до веб-ресурсів інтернет. У Destination port встановлюємо HTTP. Аналогічно налаштовується доступ до інших віддалених сервісів. Після закінчення налаштувань у поле Action правила «Default LAN -> any» змінюємо значення з Pass на Block або Reject. Не забудь, що правила працюють до першого збігу, тому забороняючий рулесет слід розмістити останнім, використовуючи кнопки Move selected rule. Після закінчення всіх налаштувань натискаємо кнопку Apply changes.
Під час конфігурування система виводить попередження вгорі сторінки. Звертай на них увагу: іноді потрібно натиснути кнопку/гіперпосилання або перезавантажити комп'ютер, інакше налаштування не набудуть чинності.
Все не дарма
Досвід показує, щоpfSense не дарма користується популярністю і отримує втішні відгуки IT-фахівців. Він простий у налаштуванні та надійний у роботі. Такий маршрутизатор цілком здатний вирішити всі завдання щодо надання доступу та захисту домашньої/офісної мережі.