Hlavní navigace

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

Lukáš Malý

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

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.

Našli jste v článku chybu?

17. 8. 2016 10:01

Ano do NetworkManageru je nutne doinstalovat network-manager-openvpn. Pak je mozne pomoci OpenVPN / Client Export Utility exportovat zip archiv s cert a konfiguraci. Tu je pak mozne importovat do NetworkManageru. Takze zprovozneni i na Linuxu je tez velmi snadne.

16. 8. 2016 16:24

Ubuntu user (neregistrovaný)

A co NetworkManager? Funguje OpenVPN v kombinaci s pfSense ?

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Lupa.cz: Brněnský radní chce zničit kartel operátorů. Uspěje?

Brněnský radní chce zničit kartel operátorů. Uspěje?

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Jedlé kaštany jsou trpké, je třeba je tepelně upravit

Jedlé kaštany jsou trpké, je třeba je tepelně upravit

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte