{"id":1137,"date":"2016-06-23T16:31:51","date_gmt":"2016-06-23T14:31:51","guid":{"rendered":"https:\/\/www.boc.de\/watchguard-info-portal\/?p=1137"},"modified":"2024-07-19T13:38:30","modified_gmt":"2024-07-19T11:38:30","slug":"watchguard-sslvpn-2-factor-mit-google-authenticator-token","status":"publish","type":"post","link":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/2016\/06\/watchguard-sslvpn-2-factor-mit-google-authenticator-token\/","title":{"rendered":"Watchguard SSLVPN 2-Factor mit Google-Authenticator Token"},"content":{"rendered":"<h3>WatchGuard SSLVPN 2-Factor mit Google-Authenticator Token<\/h3>\n<p>Zwei-Faktor-Authentisierung ist derzeit stark im Kommen und dies ist eine gute Entwicklung. Eine Zwei-Faktor-Authentisierung baut auf zwei Dinge:<\/p>\n<ul>\n<li>Something you know<\/li>\n<li>Something you have<\/li>\n<\/ul>\n<p>Es werden zum Login also zwei komplett unterschiedliche Dinge ben\u00f6tigt, einmal etwas, das man kennen muss (typischerweise das Passwort), und dann etwas, das man besitzen muss (typischerweise einen Token-Generator). Der Token-Generator erzeugt nun automatisiert zeitabh\u00e4ngige Token, also mehrstellige Ziffern-Folgen, die sich mit der Zeit \u00e4ndern. Hierf\u00fcr gibt es bei WatchGuard die Unterst\u00fctzung von Secure-ID &#8211; aber diese Tokens sind umst\u00e4ndlich, man muss sie n\u00e4mlich dabei haben. Also &#8220;noch ein Ding rumschleppen&#8221;.<\/p>\n<p>Seit einigen Jahren gibt es bei Google die M\u00f6glichkeit, mit Google-Authenticator eine Zwei-Faktor-Authentisierungzu aktivieren. Hierbei wird ebenfalls ein &#8220;Ding&#8221; als Tokengenerator verwendet, nur ist dieses Ding etwas, das man sowieso schon dabei hat: das Smartphone.<\/p>\n<p>Die Idee ist nun, die Token-Erzeugung in eine App auf dem Smartphone auszulagern, somit mu\u00df jemand zum Login auf das Google-Konto nicht nur das Passwort kennen, sondern auch das Smartphone besitzen _und_ es freischalten k\u00f6nnen, um an\u00a0das Token zu kommen.<\/p>\n<p>Was liegt nun n\u00e4her, als die\u00a0WatchGuard mit Google-Authenticator zu verm\u00e4hlen?<\/p>\n<p><!--more--><\/p>\n<p>Hierzu muss man allerdings ein wenig in die Trickkiste greifen. Das prinzipielle Vorgehen ist:<\/p>\n<ul>\n<li>Setup eines Linux-Servers\u00a0als radius-Server mit freeradius<\/li>\n<li>Setup der Authentifizierung f\u00fcr freeradius mit google-authenticator \u00fcber PAM<\/li>\n<li>Setup der Benutzer als lokale Linux-Benutzer mit den entsprechenden Gruppen<\/li>\n<li>Einrichten des google-authenticator f\u00fcr jeden Benutzer und konfiguration des jeweiligen smartphones<\/li>\n<li>Konfiguration des freeradius, um die entsprechenden Gruppen zur\u00fcckzumelden<\/li>\n<li>Verbinden der Watchguard Firewall mit dem radius-Server<\/li>\n<\/ul>\n<p>Da es beim WatchGuard SSLVPN-Client keine M\u00f6glichkeit gibt, ein token zus\u00e4tzlich zum Passwort einzugeben, wird ein weiterer Kunstgriff aus der Linux-PAM-Trickkiste verwendet: das Passwort wird einfach zusammengesetzt aus dem Password + dem von der app generierten Token.<\/p>\n<p>Anstelle einem Passwort (z.B. &#8220;strenggeheim&#8221;) und einem zeitbasiertem Token (z.B. &#8220;123456&#8221;) mu\u00df dann als Passwort &#8220;strenggeheim123456&#8221; eingegeben werden. Das Google-Authenticator-Modulo f\u00fcr PAM zerlegt das auf der Linuxseite dann passend.<\/p>\n<h3>Installation des Linux-Servers mit freeradius<\/h3>\n<p>Zun\u00e4chste wird der Linux-Server installiert.\u00a0Die folgende Beispiele basieren auf einer ubuntu-16.4-server Installation, ausgew\u00e4hlt bei der Installation war nur &#8220;system tools&#8221; und &#8220;openssh server&#8221;!<\/p>\n<h4>Installation des freeradius + Google-Authenticator<\/h4>\n<p>Leider kann das mitgelieferte libpam-google-authenticator-Paket nicht verwendet werden, es unterst\u00fctzt nicht alle ben\u00f6tigten PAM-Keywords. Daher muss es selbst gebaut werden. NTP ist nicht zwingend notwendig, aber sehr sinnvoll, schlie\u00dflich muss der Server mit der genauen Zeit laufen, da die Zeit als Basis f\u00fcr das Token verwendet wird.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">apt-get install freeradius\r\napt-get install ntp\r\napt-get install libpam0g-dev libqrencode3 make gcc\r\ncd \/usr\/src\/\r\nwget https:\/\/google-authenticator.googlecode.com\/files\/libpam-google-authenticator-1.0-source.tar.bz2\r\ntar jvxf libpam-google-authenticator-1.0-source.tar.bz2\r\ncd libpam-google-authenticator-1.0\/\r\nmake\r\nmake install<\/pre>\n<h4>Demo-Gruppen und Demo-User anlegen<\/h4>\n<p>Zun\u00e4chst werden die ben\u00f6tigten Gruppen und Benutzer angelegt:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\">root@radius:~# groupadd radius-disabled\r\nroot@radius:~# groupadd ssl-vpn-users\r\nroot@radius:~# groupadd mailserveraccess\r\nroot@radius:~# groupadd terminalserveraccess\r\nroot@radius:~# useradd -d \/home\/test1 -s \/bin\/bash -m -c \"Radius Test-User 1\" test1 \r\nroot@radius:~# passwd test1\r\nEnter new UNIX password: \r\nRetype new UNIX password: \r\npasswd: password updated successfully\r\nroot@radius:~# useradd -d \/home\/test2 -s \/bin\/bash -m -c \"Radius Test-User 2\" test2 \r\nroot@radius:~# passwd test2\r\nEnter new UNIX password: \r\nRetype new UNIX password: \r\npasswd: password updated successfully\r\nroot@radius:~# usermod -G ssl-vpn-users,terminalserveraccess,mailserveraccess test1\r\nroot@radius:~# usermod -G radius-disabled,ssl-vpn-users,terminalserveraccess test2\r\nroot@radius:~# id test1\r\nuid=1001(test1) gid=1006(test1) groups=1006(test1),1002(ssl-vpn-users),1004(mailserveraccess),1005(terminalserveraccess)\r\nroot@radius:~# id test2\r\nuid=1002(test2) gid=1007(test2) groups=1007(test2),1001(radius-disabled),1002(ssl-vpn-users),1005(terminalserveraccess)<\/pre>\n<p>Die Gruppe ssl-vpn-users wird sp\u00e4ter auf die von WatchGuard ben\u00f6tigte Gruppe SSL-VPN-Users gemappt, die Gruppe radius-disabled ist zum disablen eines Accounts gedacht. Die restlichen Gruppen sind f\u00fcr Resourcen, die man sp\u00e4ter in der WatchGuard mit Policies freigeben m\u00f6chte.<\/p>\n<h4>Konfiguration freeradius und PAM<\/h4>\n<p>Zun\u00e4chst muss der Radius-Server als root laufen. Dies wird ben\u00f6tigt, damit der Radius-Server in den Home-Directories der User die Datei .Google-Authenticator lesen kann, die aufgrund der entsprechende Restrictions mit den Linux-Rechten 400 versehen sind.<\/p>\n<p>In der Datei \/etc\/freeradius\/radiusd.conf wird hierzu der entsprechende Eintrag von freerad auf root ge\u00e4ndert:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">user = root\r\ngroup = root<\/pre>\n<p>Einen Prozess als root laufen zu lassen ist b\u00f6se. Da\u00a0der Server aber au\u00dfer Radius nichts macht, und nur die Radius-Requests durch die Firewall erh\u00e4lt, ist das zwar immer noch unsch\u00f6n, aber nicht wirklich kritisch. Eventuell kann dies auch umschifft werden, siehe hierzu den Abschnitt Ausblick am Ende\u00a0dieses Beitrags.<\/p>\n<p>In der Datei \/etc\/freeradius\/users wird die Konfiguration am Ende der Datei erg\u00e4nzt:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">DEFAULT Group == \"radius-disabled\", Auth-Type := Reject\r\n        Reply-Message = \"Your account has been disabled.\"\r\n\r\nDEFAULT Group == \"ssl-vpn-users\", Auth-type = PAM<\/pre>\n<p>Hiermit wird f\u00fcr die Gruppe radius-disabled der Zugriff via Radius komplett abgeschaltet, und nur f\u00fcr die Gruppe ssl-vpn-users die Authentifizierung auf PAM geschaltet.<\/p>\n<p>In der Datei \/etc\/freeradius\/sites-enabled\/default mu\u00dft noch\u00a0das PAM-Modul aktiviert werden, hierzu ist das Kommentarzeichen zu Beginn der Zeile vor dem Schl\u00fcsselwort pam zu l\u00f6schen:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#\r\n#  Pluggable Authentication Modules.\r\npam<\/pre>\n<p>F\u00fcr einen ersten Test dieses Setups startet man in einer Shell den freeradius-Server mit<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@radius:\/etc\/freeradius# service freeradius stop\r\nroot@radius:\/etc\/freeradius# freeradius -XXX<\/pre>\n<p>Und testet mit radtest die beiden Testaccounts. (ich habe oben als Passwort 12341234 vergeben). das Secret testing123 ist das Default-Secret f\u00fcr lokales testen):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@radius:\/etc\/freeradius# service freeradius restart\r\nroot@radius:\/etc\/freeradius# radtest test1 12341234 localhost 18120 testing123\r\nSending Access-Request of id 148 to 127.0.0.1 port 1812\r\n        User-Name = \"test1\"\r\n        User-Password = \"12341234\"\r\n        NAS-IP-Address = 127.0.1.1\r\n        NAS-Port = 18120\r\n        Message-Authenticator = 0x00000000000000000000000000000000\r\nrad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=148, length=20\r\n\r\nroot@radius:\/etc\/freeradius# radtest test2 12341234 localhost 18120 testing123\r\nSending Access-Request of id 67 to 127.0.0.1 port 1812\r\n        User-Name = \"test2\"\r\n        User-Password = \"12341234\"\r\n        NAS-IP-Address = 127.0.1.1\r\n        NAS-Port = 18120\r\n        Message-Authenticator = 0x00000000000000000000000000000000\r\nrad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=67, length=53\r\n        Reply-Message = \"Your account has been disabled.\"\r\nroot@radius:\/etc\/freeradius#<\/pre>\n<p>Der erste Account wird sauber authentifiziert (Access-Accept), w\u00e4hrend der zweite Account abgelehnt wird (Access-Reject, &#8220;Your account has been disabled&#8221;).<\/p>\n<h4>Erweiterung der Radius-Konfiguration um Gruppen<\/h4>\n<p>WatchGuard verwendet f\u00fcr die Auswertung der Radius-Gruppen das Attribut Filter-Id (11). Dieses muss nun in der radius-Konfiguration entsprechend bef\u00fcllt werden. Hierzu werden zwei Dateien ben\u00f6tigt, die sp\u00e4ter mit $INCLUDE eingebunden werden.<\/p>\n<p>In \/etc\/freeradius\/groups.conf werden die Linux-Gruppen auf die in der WatchGuard sichtbaren Gruppen gemappt, z.B. auf die ben\u00f6tigte Gruppe SSL-VPN-Users.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">if (Group-Name == \"ssl-vpn-users\") {\r\n        update control {\r\n                Tmp-String-1 := \"SSL-VPN-Users\"\r\n        }\r\n}\r\nif (Group-Name == \"users\") {\r\n        update control {\r\n                Tmp-String-2 := \"RadiusUsers\"\r\n        }\r\n}\r\nif (Group-Name == \"terminalserveraccess\") {\r\n        update control {\r\n                Tmp-String-3 := \"TerminalServer\"\r\n        }\r\n}\r\nif (Group-Name == \"mailserveraccess\") {\r\n        update control {\r\n                Tmp-String-4 := \"MailServer\"\r\n        }\r\n}<\/pre>\n<p>In \/etc\/freeradius\/post-auth.conf wird nach dem authentisieren die Filter-ID entsprechend der Werte aus group.conf bef\u00fcllt.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">update reply {\r\n        Filter-Id := \"%{control:Tmp-String-2}\"\r\n        Filter-Id := \"%{control:Tmp-String-3}\"\r\n        Filter-Id := \"%{control:Tmp-String-1}\"\r\n        Filter-Id := \"%{control:Tmp-String-4}\"\r\n        Filter-Id := \"%{control:Tmp-String-5}\"\r\n        Filter-Id := \"%{control:Tmp-String-6}\"\r\n        Filter-Id := \"%{control:Tmp-String-7}\"\r\n}<\/pre>\n<p>In \/etc\/freeradius\/sites-enabled\/default werden nun obige Dateien inkludiert, hierzu werden die Bereiche Authorization und post-auth um die INCLUDE-Zeile erg\u00e4nzt.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">authorize {\r\n        [...]\r\n        $INCLUDE groups.conf\r\n}\r\n[...]\r\npost-auth {\r\n        [...]\r\n        $INCLUDE post-auth.conf\r\n}<\/pre>\n<p>Nach dem Neustarten des freeradius (wieder mit -XXX) erhalten wir folgendes Ergebnis:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@radius:\/etc\/freeradius# radtest test1 12341234 localhost 18120 testing123\r\nSending Access-Request of id 255 to 127.0.0.1 port 1812\r\n        User-Name = \"test1\"\r\n        User-Password = \"12341234\"\r\n        NAS-IP-Address = 127.0.1.1\r\n        NAS-Port = 18120\r\n        Message-Authenticator = 0x00000000000000000000000000000000\r\nrad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=255, length=63\r\n        Filter-Id = \"TerminalServer\"\r\n        Filter-Id = \"SSL-VPN-Users\"\r\n        Filter-Id = \"MailServer\"\r\n\r\nroot@radius:\/etc\/freeradius# radtest test2 12341234 localhost 18120 testing123\r\nSending Access-Request of id 119 to 127.0.0.1 port 1812\r\n        User-Name = \"test2\"\r\n        User-Password = \"12341234\"\r\n        NAS-IP-Address = 127.0.1.1\r\n        NAS-Port = 18120\r\n        Message-Authenticator = 0x00000000000000000000000000000000\r\nrad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=119, length=53\r\n        Reply-Message = \"Your account has been disabled.\"<\/pre>\n<p>Der User test1 bekommt nun die f\u00fcr ihn relevanten Gruppen als Filter-Id mit ausgeliefert.<\/p>\n<h4>Google-Authenticator f\u00fcr den User initialisieren<\/h4>\n<p>Zur Initialisierung des Google-Authenticator f\u00fcr den User test1 erzeugen wir mit Google-Authenticator das entsprechende Secret, installieren die App <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.apps.authenticator2\">Google-Authenticator<\/a> auf einem Smartphone und fotografieren den entstandenen QR-Code; die entsprechenden Fragen auf wiederholbare Codes, Ratelimit etc. beantwortet man entsprechend der gew\u00fcnschten Funktionalit\u00e4ten.<\/p>\n<p><a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1158 size-medium\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator-300x229.png\" alt=\"google-authenticator\" width=\"300\" height=\"229\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator-300x229.png 300w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator-768x585.png 768w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator-1024x780.png 1024w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator-800x609.png 800w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator-1200x914.png 1200w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-authenticator.png 1222w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\u00a0\u00a0<a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1159 size-medium\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-1-169x300.png\" alt=\"google-auth-1\" width=\"169\" height=\"300\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-1-169x300.png 169w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-1-768x1365.png 768w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-1-576x1024.png 576w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-1-800x1422.png 800w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-1.png 1080w\" sizes=\"(max-width: 169px) 100vw, 169px\" \/><\/a>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1160 size-medium\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-2-169x300.png\" alt=\"google-auth-2\" width=\"169\" height=\"300\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-2-169x300.png 169w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-2-768x1365.png 768w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-2-576x1024.png 576w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-2-800x1422.png 800w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/google-auth-2.png 1080w\" sizes=\"(max-width: 169px) 100vw, 169px\" \/><\/p>\n<h4>PAM f\u00fcr Radius auf Google-Authenticator umstellen<\/h4>\n<p>In der Datei \/etc\/pam.d\/radius wird nun der Inhalt wie folgt ge\u00e4ndert (alle bisherigen Konfigurationseinstellungen auskommentieren und durch die zwei neuen Zeilen ersetzen):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># We fall back to the system default in \/etc\/pam.d\/common-*\r\n# \r\n\r\n#@include common-auth\r\n#@include common-account\r\n#@include common-password\r\n#@include common-session\r\n\r\nauth requisite pam_google_authenticator.so forward_pass\r\nauth required pam_unix.so use_first_pass<\/pre>\n<p>Zum Testen m\u00fcssen wir nun das von der App ausgew\u00fcrfelte Token mit \u00fcbergeben, da sonst der Passwort-Check zu einem Reject f\u00fchrt:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@radius:\/etc\/pam.d# radtest test1 12341234 localhost 18120 testing123\r\nSending Access-Request of id 44 to 127.0.0.1 port 1812\r\n        User-Name = \"test1\"\r\n        User-Password = \"12341234\"\r\n        NAS-IP-Address = 127.0.1.1\r\n        NAS-Port = 18120\r\n        Message-Authenticator = 0x00000000000000000000000000000000\r\nrad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=44, length=20\r\n\r\nroot@radius:\/etc\/pam.d# radtest test1 12341234395752 localhost 18120 testing123\r\nSending Access-Request of id 233 to 127.0.0.1 port 1812\r\n        User-Name = \"test1\"\r\n        User-Password = \"12341234395752\"\r\n        NAS-IP-Address = 127.0.1.1\r\n        NAS-Port = 18120\r\n        Message-Authenticator = 0x00000000000000000000000000000000\r\nrad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=233, length=63\r\n        Filter-Id = \"TerminalServer\"\r\n        Filter-Id = \"SSL-VPN-Users\"\r\n        Filter-Id = \"MailServer\"<\/pre>\n<h4>Verbinden von freeradius und WatchGuard<\/h4>\n<p>Als erstes ben\u00f6tigen wir einen Eintrag in der Datei \/etc\/freeradius\/clients.conf, hier wird das Passwort gesetzt, das wir in\u00a0der WatchGuard angeben m\u00fcssen, und nat\u00fcrlich die IP der Firebox,\u00a0damit niemand anders unseren Radius-Server fragen darf.,<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">client 10.0.1.1 {\r\n        secret          = strenggeheim\r\n        shortname       = Firebox\r\n}<\/pre>\n<p>Zun\u00e4chst wird der Server im Policy-Manager unter Setup =&gt; Authentication =&gt; Authentication-Servers im Tab Radius eingetragen (hier mit der Server-IP 10.0.1.36.<\/p>\n<p><a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-server.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1165 size-full\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-server.png\" alt=\"radius-server\" width=\"466\" height=\"611\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-server.png 466w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-server-229x300.png 229w\" sizes=\"(max-width: 466px) 100vw, 466px\" \/><\/a><\/p>\n<p>Anschlie\u00dfend werden\u00a0die Radius-Gruppen definiert:<\/p>\n<p><a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1166 size-full\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-2.png\" alt=\"radius-groups-2\" width=\"590\" height=\"307\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-2.png 590w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-2-300x156.png 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/a> <a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1167 size-full\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-3.png\" alt=\"radius-groups-3\" width=\"531\" height=\"491\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-3.png 531w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-3-300x277.png 300w\" sizes=\"(max-width: 531px) 100vw, 531px\" \/><\/a><\/p>\n<p>Abschlie\u00dfend wird die Gruppen-Definition f\u00fcr das SSLVPN unter VPN =&gt; Mobile-VPN =&gt; SSL im Tab Authentication erg\u00e4nzt:<\/p>\n<p><a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1168\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-1.png\" alt=\"radius-groups-1\" width=\"586\" height=\"736\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-1.png 586w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/06\/radius-groups-1-239x300.png 239w\" sizes=\"(max-width: 586px) 100vw, 586px\" \/><\/a><\/p>\n<p>Jetzt k\u00f6nnen die definierten Gruppen in den Policies verwendet werden.<\/p>\n<h4>Anmeldung im WatchGuard SSLVPN-Client<\/h4>\n<p>Zur Anmeldung im WatchGuard SSLVPN-Client muss nun der Benutzername mit dem Prefix &#8220;radius\\&#8221; verwendet werden, um der Firebox zu sagen, da\u00df hier als Authentisierung radius gew\u00fcnscht wird. Das Passwort besteht aus dem Benutzerpasswort zzgl. dem Google-Authenticator-Token (wie oben bei den tests zu sehen).<\/p>\n<p>&nbsp;<\/p>\n<h4>Ausblick: Anbinden einer AD und mit lokaler Google-Authenticator Konfiguration<\/h4>\n<p>Prinzipiell sollte es m\u00f6glich sein, anstelle via PAM gegen die lokale Linux-Benutzer (\/etc\/passwd \/etc\/group) gegen LDAP und damit gegen eine AD zu authentisieren. Ebenso kann man dem Google-Authenticator Modul einen Pfad f\u00fcr die Home-Verzeichnisse\u00a0der Benutzer mitgeben, um lokal trotzdem die entsprechende .google-authenticator-Datei zu haben.<\/p>\n<p>Dieses Setup\u00a0habe ich aber noch nicht ausgetestet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WatchGuard SSLVPN 2-Factor mit Google-Authenticator Token Zwei-Faktor-Authentisierung ist derzeit stark im Kommen und dies ist eine gute Entwicklung. Eine Zwei-Faktor-Authentisierung baut auf zwei Dinge: Something you know Something you have Es werden zum Login also zwei komplett unterschiedliche Dinge ben\u00f6tigt, einmal etwas, das man kennen muss (typischerweise das Passwort), und dann etwas, das man besitzen muss (typischerweise einen Token-Generator). Der Token-Generator erzeugt nun automatisiert zeitabh\u00e4ngige &hellip; <a href=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/2016\/06\/watchguard-sslvpn-2-factor-mit-google-authenticator-token\/\" class=\"more-link\">Weiterlesen <span class=\"screen-reader-text\">Watchguard SSLVPN 2-Factor mit Google-Authenticator Token<\/span> <span class=\"meta-nav\">&raquo;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[362,3],"tags":[132,133,96,89],"class_list":["post-1137","post","type-post","status-publish","format-standard","hentry","category-howto","category-watchguard-technischer-blog","tag-2-factor","tag-google-authenticator","tag-radius","tag-sslvpn"],"_links":{"self":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/1137"}],"collection":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/comments?post=1137"}],"version-history":[{"count":24,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/1137\/revisions"}],"predecessor-version":[{"id":21068,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/1137\/revisions\/21068"}],"wp:attachment":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/media?parent=1137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/categories?post=1137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/tags?post=1137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}