Správa uživatelů
pfSense disponuje správou uživatelů v menu System / User Manager / Users
. Hlavním uživatelem je uživatel admin, který logicky nejde odstranit. Dá se mu změnit heslo, přiřadit Authorized SSH Keys a User Certificates. Admin je uživatel, který když se přihlásí pomocí SSH, pokud je povoleno je mu zobrazeno menu identické se sériovou konzolí.
user@lnx:~$ ssh admin@192.168.42.1
Password for admin@apu.domena.cz:
*** Welcome to pfSense 2.3.1-RELEASE-p5 (amd64 full-install) on apu-lte ***
WAN (wan) -> ppp0 -> v4: 100.98.92.170/32
LAN (lan) -> re0 -> v4: 192.168.42.1/24
SERVICE (opt1) -> re2 -> v4/DHCP4: 192.168.50.1/24
0) Logout (SSH only) 9) pfTop
1) Assign Interfaces 10) Filter Logs
2) Set interface(s) IP address 11) Restart webConfigurator
3) Reset webConfigurator password 12) pfSense Developer Shell
4) Reset to factory defaults 13) Update from console
5) Reboot system 14) Disable Secure Shell (sshd)
6) Halt system 15) Restore recent configuration
7) Ping host 16) Restart PHP-FPM
8) Shell
Enter an option:
Ostatní uživatelé po přihlášení dostanou rovnou shell volba (8). Pomocí skupin je možné nadefinovat omezenou funkcionalitu menu pomocí Assigned Privileges. Touto funkcionalitou uživateli zpřístupníme pouze ty informace (volby menu), které chceme.
Prakticky jsem takto umožnil jednomu uživateli zapnout vzdáleně svůj počítač skrze pfSense pomocí Wake on LAN, kde měl připravené své PC v podobě MAC adresy. Po odeslání magic packetu, vzdálené PC nastaruje. Takto je možno starovat libovolná zažízení, která touto funkcionalitou disponuji a mají ji v BIOSu zapnutou.
Další důležitou volbou v menu System / User Manager / Authentication Servers
je možnost nastavení vzdálené autentizace. Je možné použít dva typy LDAP a RADIUS. Na pfSense routerech, které používám mám nastaven typ RADIUS. Používám autentizační server OpenOTP, který mi poskytuje širokou škálu funkcionalit jako je např. One-Time-Password v podobě software tokenů, případně i hardware tokenů. OpenOTP podrobně zobrazuje log přihlášení např. do OpenVPN. Log v pfSense se velmi rychle přepisuje a pokud nelogujeme pomocí vzdáleného syslogu ztrácíme tak informace o přístupech do vnitřní sítě. Dále nám autentizační server zajistí např. dočasnou blokaci uživatelů, kteří opětovně zadají špatné heslo. Tuto funkcionalitu pfSense sám neposkytuje a právě tato kombinace služeb velmi zvyšuje bezpečnost přihlášovaných subjektů.
Správa certifikátů
Po instalaci je v systému vytvořen serverový certifikát webConfigurator default, který má 5tiletou expiraci. Je vhodné zřídit si vlastní interní pfSense CA a pod ní vytvořit serverový certifikát, a ten pak přiřadit pro WebGUI v menu System / Advanced / Admin Access
.
Každý uživatel může mít přiřazen uživatelský certifikát. K tomu slouží správa certifikátů System / Certificate Manager / CAs
. Máme možnost vytvořit hnedle několik certifikačních autorit pro různé použití, a to v podobě vytvoření interní CA nebo jako import již existující CA. Pod CA opět můžeme vytvářet serverový certifikát nebo uživatelský. Rovněž můžeme importovat již existující certifikáty. Správa certifikátů nám umožňuje vytvořit i certification request a ten pak odeslat certifikační autoritě pro vydání certifikátu.
Na foru jsem zaregistroval použití certifikátů Let's Encrypt. Jednoduchý návod pro použití certifikátů při řešení s balíčkem HAProxy. V budoucnu se dá možná i očekávat nějaký balíček pro podporu ACME – Let's Encrypt přímo v pfSense i s možností automatické obnovy certifikátů, právé pro toto řešení.
OpenVPN server
pfSense má v sobě integrovano OpenVPN. Tato s oblibou používaná svobodná VPN technologie je velmi snadno zprovoznitelná viz menu VPN / OpenVPN / Servers
. pfSense disponuje i průvodcem pro vytvoření konfigurace. Existuje možnost provozovat více instancí OpenVPN, např. pro připojení do různých sítí nebo je možno pro různé instance ověřovat oproti různým autentizačním serverům. Možností konfigurace máme tedy hnedle několik. Pro OpenVPN existuje celá řada klientů pro všechny známé operační systémy včetně mobilních platforem. To dělá z OpenVPN velmi univerzální VPN službu.
Nastavení serveru se dělí do těchto základních sekcí:
- General Information
- Cryptographic Settings
- Tunnel Settings
- Client Settings
- Advanced Client Settings
- Advanced Configuration
Konfigurační soubor, který pfSense sestaví je k nahlédnutí zde /var/etc/openvpn/server1.conf
Zde přichází na řadu síla pfSense, kde nastavení OpenVPN je integrováno se správou uživatelů, certifikátů a autentizačních serverů. Odpadá tak správa CA mimo router v podobě např. easy-rsa, jak tomu je např. u Mikrotiku. OpenWRT disponuje balíčkem openvpn-easy-rsa. Vytváření uživatelských certifikátů je pak nutné provádět na příkazové řádce routeru.
Další velmi praktickou vymožeností je rozšiřující balíček OpenVPN Client Export Package, který přídá do menu novou volbu OpenVPN / Client Export Utility
. Ta správcům usnadní konfiguraci klientů. Pomocí balíčku máme tak možnost kliknout a tím získat např. instalátor OpenVPN klienta pro x64-win6: 64-bit installer pro Widnows Vista/7/8/10, obsahující i TAP obladač. Klient je předkonfigurován v podobě .ovpn souboru spolu certifikáty v podobně PKCS #12. Dále existuje možnost stáhnout jednosouborový konfigurační soubor spolu s certifikáty pro mobilní platformy pro aplikaci OpenVPN Connect do které se soubor snadno importuje. Nebo je možné si stáhnout jen zip archív pro případy, když již OpenVPN klienta máme v systému instalován.
Přihlášené uživatelé prostřednictvím OpenVPN je možné sledovat na status stránce Status / OpenVPN
Zálohování konfigurace
Od předchozích dílů jsme si v pfSense nastavili mnoho věcí a je třeba se dozvědět, zda o tyto nastavení nepřijdeme. pfSense umožňuje uložení konfigurace v podobě plně čitelného XML souboru. Ten obsahuje úplně vše, co jsme nastavovali. Uživatele, certifikáty, aliasy, firewall pravidla i nastavení jednotlivých síťových karet.
Manuální vytvoření zálohy konfigurace je vhodné pro jednorázové zálohy. Často ale požadujeme zálohovat automatizovaně. Jednou z možností je zaplacení subscripce a tím dostaneme možnost zálohovat konfigurace na servery tvůrců pfSense, nebo si můžeme konfiguraci stahovat pomocí scp na např. bacula server, kde vytvoříme script pro získání XML souborů a ten posléze užijeme v patřičném zálohovacím jobu.
scp -q -2 -i $RSAKEY backup@router.domain.cz:/cf/conf/config.xml router.xml
Při manuálním ukládání konfigurací máme též možnost zazálohovat si jen dílčí fragmenty celkové konfigurace. Např. Aliasy je možno zazálohovat extra. Při obnově konfigurace pak nepřepíšeme nastavení celého routeru, ale naimportujeme např. jen námi používané Aliasy.
Závěr
V dalším díle seriálu o pfSense si povíme více o VPN – IPSec a transparentních tunelech. V další části si okrajové popíšeme složitější instalaci pfSense v High Availability režimu.