Quantcast
Channel: Erik Kirschner » linux
Viewing all articles
Browse latest Browse all 10

pfSense OpenVPN Authentification against Win 2008 R2 Active Directory via Radius Protocol

$
0
0

Úvod

Tento dokument ti prezradí, ako kontrolovať prístup vzdialených užívateľov z internetu cez OpenVPN a pfSense firewall do privátnej siete pomocou PKI certifikátov a overovaním mena/hesla cez radius protokol proti Microsoft Windows 2008 R2 Active Directory.

Základný popis riešenia

OpenVPN v pfSense firewalle je veľmi dôležitá funkcia. Najčastejšie sa pre authentifikáciu do OpenVPN používajú PKI certifikáty, ktoré je možné vygenerovať certifikačnou authoritou alebo aj lokálne cez EasyRSA (EasyRSA for pfSense).
Prístup cez OpenVPN do privátnej siete, alebo DMZ cez certifikát je pohodlný. Pri odcudzení notebooku užívateľa je jednoduché vygenerovať CRL zoznam, ktorý dohráte do pfSense a konkrétny užívatelia majú zablokovaný prístup.

Druhú úroveň ochrany Vám dodá po overení správneho certifikátu zadanie mena a hesla. Toto je možné zabezpečiť pomocou Radius authentifikačného servera.
Jednou z možností, ako zabezpečiť funkčný radius server je doinštalovať package FreeRADIUS priamo z pfSense a nakonfigurovať ho podla uvedených návodov (Using OpenVPN  pfSense with FreeRADIUS). Čiže radius server Vám bude bežať priamo v pfSense firewalle. Je to vhodné riešenie pre nenáročné riešenia. Pri týchto jednoduchších riešeniach, ale odporúčam posielať logs na externý syslog server pre neskoršiu prípadnú analýzu v prípade problémov.

pfSense je ale firewall, ktorý viete nasadiť aj do veľkých riešení, čoho dôkazom je aj možné high availability riešenie (pfSense Firewall in High Availability mode, cluster). Vo väčších riešeniach sú samozrejme aj iné menežovatelné sieťové zariadenia (routers, switches), ktoré podporujú authentifikáciu a authorizáciu cez radius protokol.
Mnoho firiem má určite nainštalovaný Microsoft Active Directory (MS AD). Priamo MS AD podporuje radius protokol, len ho treba doinštalovať. Je preto výhodné mať centrálny radius server proti ktorému sa overuje prístup na rôzne zariadenia a tiež aj prístup do privátnej siete cez OpenVPN v pfSense firewalle.

Inštalácia a konfigurácia Radius Servera v Microsoft Windows Server 2008 R2

V prvom kroku je potrebné Radius Server do Windows Servera nainštalovať. Radius nie je obsiahnutý v default inštalácii Windows Server 2008 R2.

Radius Server sa inštaluje cez Server Manager. Na pravej strane okna Server Managera označ Server Roles a v strednom okne vyber Network Policy and Access Services. Klikni na Next. V ďalšom okne nechaj označený Network Policy Server a klikni na Next, potom klikni na Install pre dokončenie úspešnej inštalácie.

Server Manager -> Server Roles -> Network Policy and Access Services -> Next -> Next -> Install

Po inštalácii Network policy serveru si otvor jeho konzolu. Klikni pravým tlačidlom na položku NPS (Local) a zadaj “Register Server in Actve Directory“.

V položke RADIUS Clients si pravým tlačidlom vytvor nového radius klienta.
Vyplň friendly name napríklad “OpenVPN Server“, IP adresu alebo DNS meno tvojho pfSense ja použijem napríklad “192.168.1.1“ a následne zadaj manuálne secret key ktorý neskôr v článku použijeme do konfigurácie pfSense pod názvom “*****PassHere“. Skontroluj si či je potvrdené Enable this RADIUS client v ľavom hornom rohu.

V záložke Policies pravým tlačidlom klikni na položku Network Policies. Zadaj NEW a nakonfiguruj si pravidlo ktoré potvrdí povolenie prístupu do siete.
Vyplň položku Policy name napríklad hodnotou “OpenVPN – Polenie prístupu“, náledne potvrď NEXT. V daľšom okne pridaj takzvané Conditions, čo znamená že kto spĺňa následovné požiadavky bude mať povolený prístup. Vyber ADD a pridaj User Group. User Group musíme mať najprv zadefinovanú v AD. Ja som použil Security Group “OpenVPN“ do nej som následne pridal okruh užívateľov, ktorí budu môcť pristupovať cez OpenVPN. Po pridaní groupy potvrdíme našu voľbu tlačítkom NEXT. Na následujucom okne nechaj všetko ako konfigurátor ponúka (Access Granted) a potvrď NEXT. Na obrazovke sa objavia typy Autentifikačných metód. Zaškrtni(CHAP), (PAP,SPAP) a potvrď NEXT. Na následujúcej obrazovke opäť potvrď NEXT pokiaľ si nechceš sám určiť obmedzenia pre pripojenie. Opäť klikni NEXT, NEXT a FINISH. Na strane Windows Servera máme všetko nastavené.

Inštalácia podpory Radius servera a konfigurácia OpenVPN v pfSense Firewalle

Na pfSense firewalle si potrebujeme si najprv povoliť prístup na shell. Vo web rozhraní kliknite na “System->Advanced”, označ “Enable Secure Shell” a následne klikni na “Save”. Týmto nastavením si povolil prístup na shell. Z console pfSense je to možnosť číslo 8 a dostaneš sa na príkazový riadok (nezabudni si ssh povolit na firewalle ak pristupuješ cez WAN rozhranie). Teraz už máme možnosť vytvoriť PAM systém pre OpenVPN.

Vytvor si súbor /etc/pam.d/openvpn pomocou príkazu:

vi /etc/pam.d/openvpn

Vlož následovný text:

#%PAM-1.0
auth required pam_radius.so debug=10
account sufficient pam_permit.so
session sufficient pam_permit.so

(Upozornenie: Text musí končiť session sufficient pam_permit.so a za týmto textom nesmie byť voľný riadok inak to nebude fungovať)

Konfiguračný súbor uložte a skončite editáciu (:wq)

Vytvorte následovný súbor /etc/radius.conf pomocou príkazu:

vi /etc/radius.conf

Vložte následovný text kde ip adresa je adresa vašeho Windows Radius servera (v tomto prípade 192.168.1.2) a *****PassHere je secret key zadaný na radius servery.

acct 192.168.1.2:1813 *****PassHere
auth 192.168.1.2:1812 *****PassHere

Konfiguračný súbor uložte a ukončite editáciu (:wq)

Nahranie Pam pluginu pre OpenVPN

Cez web interface pfSense klikni “VPN->OpenVPN” uisti sa že si na záložke “Server”.
Klikni na tlačítko “Edit” pri tebou zadefinovanom OpenVPN servery.
Nájdi si sekciu “Custom Options” o vlož do nej text:

plugin /usr/local/lib/openvpn-auth-pam.so openvpn

Na konci už iba ulož konfiguráciu tlačítkom “Save”

Pre overenie funkčnosti klikni na “Status->System Logs” nasledovne na záložku “OpenVPN”. Ak uvidíš text podobný nasledovnému:

Mar 20 13:16:21 openvpn[6837]: Initialization Sequence Completed
Mar 20 13:16:21 openvpn[6837]: TCPv4_SERVER link remote: [undef]
Mar 20 13:16:21 openvpn[6837]: TCPv4_SERVER link local (bound): [undef]:1194
Mar 20 13:16:21 openvpn[6837]: Listening for incoming TCP connection on [undef]:1194
Mar 20 13:16:20 openvpn[6817]: /etc/rc.filter_configure tun0 1500 1543 192.168.3.1 192.168.3.2 init
Mar 20 13:16:20 openvpn[6817]: /sbin/ifconfig tun0 192.168.3.1 192.168.3.2 mtu 1500 netmask 255.255.255.255 up
Mar 20 13:16:20 openvpn[6817]: TUN/TAP device /dev/tun0 opened
Mar 20 13:16:20 openvpn[6817]: gw xx.xx.xx.xx
Mar 20 13:16:20 openvpn[6817]: WARNING: file ‘/var/etc/openvpn_server0.key’ is group or others accessible
Mar 20 13:16:20 openvpn[6817]: OpenVPN 2.0.6 i386-portbld-freebsd6.2 [SSL] [LZO] built on Mar 3 2007

Všetko nasvedčuje tomu že je konfigurácia v poriadku.

Ak však v texte Logu vypíše následovnú alebo podobnú chybu:

Mar 20 12:41:16 openvpn[341]: Exiting
Mar 20 12:41:16 openvpn[341]: PLUGIN_INIT: could not load plugin shared object /usr/local/lib/openvpn-auth-pam.so: Service unavailable: Too many links (errno=31)
Mar 20 12:41:16 openvpn[341]: OpenVPN 2.0.6 i386-portbld-freebsd6.1 [SSL] [LZO] built on Apr 6 2006

V tomto prípade musíš zadať následovný príkaz:

pkg_add -r openvpn

Môže sa stať že systém nenájde balíček pre Vašu verziu pfSense. Konkrétne môj pfSense hľadá balíčky pre veriu 7.2

Preto som si pomohol následovným spôsobom:

pkg_add -r ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/7.2-RELEASE/packages/Latest/openvpn.tbz

Týmto príkazom stiahneš balíček z iného existujúceho zrkadlového servera.

Gratulujeme tvoj OpenVPN server je pripravený overovať VPN spojenia voči Windows 2008 RADIUS serveru vo vašej sieti. Na článku spolupracovali Erik Kirschner a z väčšej časti Miro Hlavaty.


Viewing all articles
Browse latest Browse all 10

Latest Images

Trending Articles



Latest Images