Firewall pfSense: správa certifikátů, uživatelů a OpenVPN

1. 8. 2016
Doba čtení: 5 minut

Sdílet

Dnes si upřesníme, jak se v pfSense spravují uživatelé a jaké vazby existují mezi správou certifikátů další konfigurací routeru. Nakonec si ukážeme, jak je možné využít obojí pro nastavení OpenVPN serveru.

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ů.

pfSense: Autenticate Servers

pfSense: Autenticate Servers

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.

pfSense: Default SSL cert

pfSense: Default SSL cert

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.

pfSense: CA

pfSense: CA

pfSense: Certificates

pfSense: Certificates

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.

pfSense: OpenVPN server

pfSense: OpenVPN server

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.

pfSense: OpenVPN export utility

pfSense: OpenVPN export utility

Přihlášené uživatelé prostřednictvím OpenVPN je možné sledovat na status stránce Status / OpenVPN

pfSense: OpenVPN Status

pfSense: OpenVPN Status

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

bitcoin_skoleni

pfSense: Backup

pfSense: Backup

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.

Seriál: Firewall pfSense

Autor článku

Pracuje jako systém administrátor – UNIX/Linux systémů. Vystudoval VOŠ Liberec, obor Počítačové systémy. Ve svém oboru prosazuje otevřená řešení IT infrastruktury.