Volba Hardware
Jak již bylo řečeno v předchozím díle, pfSense se dá instalovat na velmi široké spektrum hardware, vždy je nutné si zkontrolovat, zda např. námi zvolená Mini-ATX základní deska s vestavěnou síťovou kartou je ve FreeBSD podporována potřebným ovladačem. Pro potřeby routeru s NAT funkcí budeme potřebovat síťové karty dvě.
Pokud máme dost peněz a chceme získat i podporu k danému produktu, můžeme kontaktovat některého z evropských partnerů pfSense, případně patrona projektu společnost Netgate, u kterého se dá pořídit široká škála produktů dle požadovaného výkonu.
PC platforma | USB VGA,ISO | pfSense-CE-memstick-2.3.1-RELEASE-amd64.img.gz |
Embedded APU | USB Serial | pfSense-CE-memstick-serial-2.3.1-RELEASE-amd64.img.gz |
Embedded ALIX | img pro CF | pfSense-CE-2.3.1-RELEASE-4g-amd64-nanobsd.img.gz |
Virtualizace | ISO | pfSense-CE-2.3.1-RELEASE-amd64.iso.gz |
Instalace pfSense do VMware
Pro demonstraci instalace jsem zvolil virtuální prostředí. Obdobné postupy platí pro instalace na běžný hardware.
Ze stránky projektu si stáhneme instalační obraz, který nahrajeme např. do úložiště ESXi pfSense-CE-2.3.1-RELEASE-amd64.iso. Vytvoříme si virtuální počítač, jako FreeBSD(64bit) s např. 2GB RAM a 8GB HDD. Virtuálce přidělíme dvě síťové karty. U CD nastavíme ISO pro boot.
Instalátor je velmi jednoduchý a je funkční jak pod VGA, tak pomocí sériové konzole, v případě instalace z USB např. Na PC Engines APU desku.
Při volbě instalace kernelu je nutné vybrat ten správný, dle použitého hardware. U desek, které nemají VGA je nutné volit Embedded kernel.
Po instalaci je nutné přidělit jednotlivé síťové karty, např. WAN a LAN.
Po dokončení instalace a rebootu se nám na konzoli objeví menu s volbami správy systému. Konzole je dostupná pomocí VGA nebo sériové konzole. Dále máme možnost se pomocí SSH vzdáleně přihlásit pod uživatelem admin. Tato funkcionalita se musí povolit, např. volba 14) v konzolovém menu. Je vhodné použít SSH klíče. Dále je nutné vytvořit patřičné firewallové pravidlo pro povolení portu 22, např. z vyjmenovaných IPv4 adres nebo celé sítě.
V případě, že se do webového rozhraní chceme dostat z WAN je nutné dočasně vypnout firewall. To provedeme pomocí příkazové řádky a příkazu pfctl -d
. Běžně ovšem postačuje se přihlásit k LAN interface, který poskytuje DHCPv4, případně DHCPv6.
Příkazová řádka nám umožní použit spoustu UNIXových příkazů. Jako např. ifconfig, tcpdump, netstat, sysctl, pfctl, ping, traceroute atd. Máme možnost si vypsat PF tabulky atd. Podrobněji probereme v kapitole o firewallu.
pfctl -sT # výpis všech tabulek (aliasů) pfctl -t ip_MYTABLE -T show # výpis obsahu tabulky pfctl -t ip_MYTABLE -T add 213.168.187.15 # přidání IP do tabulky
Po prvním přihlášení do web rozhraní nás provede wizard, kterým můžeme nastavit základní volby, jako IPv4 pro LAN, časovou zónu a NTP server. Je zakončen nastavením hesla uživatele admin. Poté je proveden reload WebGUI. (Je nutné myslet nad případnou změnou IPv4 u LAN a na klientském počítači si nastavit IP ve stejné síti. Nebo si znovu vyžádat IP od DHCP.)
Instalace pfSense na Compact Flash
Instalace na CF spočívá pouze v zapsání obrazu na CF. Po vložení karty do slotu CF např. na desce PC Engines ALIX nastartuje systém, který připojíme pomocí sériové konzole a nastavíme interface. Pak už je vše stejné jako u plné instalace.
zcat pfSense-CE-2.3.1-RELEASE-4g-amd64-nanobsd.img.gz | dd of=/dev/sdX bs=16k 244615+1 vstoupivších záznamů 244615+1 vystoupivších záznamů 4 007 775 744 bajtů (4,0 GB) zkopírováno, 857,294 s, 4,7 MB/s
Pro připojení k sériové konzoli potřebujeme kabel USB s redukcí na serial. A ve Windows Putty v Linuxu třeba screen (screen /dev/ttyUSB0 115200
).
Jun 26 19:46:12 cml kernel: [ 1614.246115] pl2303 3-2.3:1.0: pl2303 converter detected Jun 26 19:46:12 cml kernel: [ 1614.246307] usb 3-2.3: pl2303 converter now attached to ttyUSB0 Jun 26 19:46:12 cml kernel: [ 1614.246436] usbcore: registered new interface driver pl2303
Upgrade na aktuální verzi
Po opětovném přihlášení můžeme začít s konfigurací a správou pfSense. Po instalaci verze 2.3.1 se nám na dashboardu objeví informace o tom, že existuje Update 1. V minulosti se povyšovaly jednotlivé RELEASE, ale nově byly od verze 2.3 zavedeny updaty, které reagují na bezpečnostní chyby a opravují např. FreeBSD opravy. Stejně jako FreeBSD má zpravodaj zabezpečení. Projekt pfSense zavedl obdobnou informativní stránku rozšířenou o opravy pfSense modulů a balíčků.
Instalace dvou balíčků
Po aplikaci pfSense 2.3.1 Update 1 se pustíme do instalace prvních balíčků. V menu System / Package Manager / Available Packages
. Protože jsme pfSense instalovali do VMware, je vhodné nainstalovat balíček Open-VM-Tools.
Pokud se v hlavním menu Diagnostic / ARP Table
podíváme na jednotlivé záznamy, uvidíme jen MAC adresy a hostname. Pro snazší identifikaci zařízení je velmi vhodné nainstalovat balíček nmap, který nám výpis v tabulce obohatí o informace o výrobci. Tyto informace jsou odvozeny z MAC adresy zařízení pomocí OUI databáze. Takto velmi snadno identifikujeme např. výrobce Android telefonu připojeného do sítě, viz obrázek. Databáze prefixů je k nahlédnutí zde v podobě out.txt (3,3 MB)
Po instalaci můžeme pomocí konzole ověřit přítomnost balíčků přímo na příkazové řádce. Dále můžeme zjišťovat podrobnosti o balíčcích pomocí příkazu pkg
.
Podporované balíčky
U balíčků je nutné doplnit informaci o podpoře. Na tomto seznamu jsou uvedeny balíčky, ke kterým pfSense zajišťuje podporu. Ostatní jsou dílem komunity a ne vždy mohou fungovat spolehlivě. A hlavně pokud takový balíček použijeme, nemůžeme k němu čekat podporu.
Diagnostika routeru
V menu Diagnostics
je mnoho funkcionalit. Dnes se zmíním o Stavech. Jak již bylo řečeno v prvním díle pfSense používá jako firewall Packet Filter, což je stavový firewall. V menu Diagnostic / State
a Diagnostic / State Summary
vidíme všechny firewallem uchovávané stavy spojení. Pokud nás zajímá, které zařízení komunikuje např. do internetu, můžeme si jej zde odfiltrovat. Máme též možnost stavy resetovat. Tato volba je vhodná, když ladíme nějaké firewallové pravidlo.
Vzdálené logování pomocí syslogu
pfSense umožňuje nastavit remote loging pomocí syslogu Status / System Logs / Settings
. To je vhodné hlavně z toho důvodu, že firewall nemá moc možností uchovávat objemné logy. Proto je vhodné logy nasměrovat na vzdálený syslog server, kam se ukládají např. blokované pakety a jiné údaje.
pfSense loguje zahozené pakety pomocí device pflog0
. Od verze 2.2 umí pfSense raw logy formátovat do filterlog. Což je rozumě parsovatelný jednořádkový záznam.
Syslog záznamy z routerů si posílám do ELISA Logmanagement, což je produkt, na jehož vývoji se podílím. Pomocí Kibana mohu velmi snadno vidět na mapě světa, odkud se kdo pokouší komunikovat s veřejnými IPv4 adresami hnedle několika routerů. Stačilo jen nadefinovat parsovací pravidla a vytvořit přehledný dashboard.
Závěr
V dalším díle seriálu o pfSense si povíme podrobněji o bezpečnosti a síťování, jak v routeru používat např. xDSL konektivitu. Ukážeme si, jak vytvořit aliasy obsahující všechny IP rozsahy ČR atd.