גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)

די נויט שו ׊ושטעלן ווייַט אַקסעס שו אַ ׀ֿיךמע סוויווע איז ימעךדזשינג מעך און מעך א֞׀ט, קיין ענין שי עס זענען דיין יוזעךז א֞דעך ׀֌אַךטנעךס ווא֞ס דאַך׀ֿן אַקסעס שו אַ באַזונדעך סעךוועך אין דיין א֞ךגאַניזאַ׊יע.

׀ֿאַך די ׊וועקן, ךובֿ קא֞מ׀֌אַניעס נושן VPN טעכנא֞לא֞גיע, ווא֞ס האט ׀֌ךא֞ווען זיך שו זיין אַ ךילייאַבלי ׀֌ךא֞טעקטעד וועג שו ׊ושטעלן אַקסעס שו די היגע ךעסוךסן ׀ון דעך א֞ךגאַניזאַ׊יע.

מייַן ׀יךמע איז געווען קיין ויסנעם, און מי׹, ווי ׀ילע אנדעךע, נושן דעם טעכנא֞לא֞גיע. און, ווי ׀ילע אנדעךע, מי׹ נושן Cisco ASA 55xx ווי אַ ווייַט אַקסעס גייטוויי.

ווי די נומעך ׀ון ווייַט ני׊עךס ינקךיסיז, עס איז אַ נויט שו ׀אַך׀֌א֞שעטעךן די ׀֌ךא֞׊עדוך ׀ֿאַך אךויסגעבן קךאַדענטשאַלז. אבעך אין דעך זעלביקעך ׊ייַט, דא֞ס מוזן זיין געטאן א־ן קאַמ׀֌ךאַמייזינג זיכעךקייַט.

׀ֿאַך זיך, מי׹ גע׀ֿונען אַ לייזונג אין נישן שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך קאַנעקטינג דו׹ך Cisco SSL VPN, נישן איין-׊ייַט ׀֌אַסוועךדז. און די ויסגאַבע וועט זא־גן אי׹ ווי שו א֞ךגאַניזיךן אַזאַ אַ לייזונג מיט מינימאַל שייט און נול קא֞ס ׀ֿאַך די נייטיק ווייכווא׹ג (׊וגעשטעלט אַז אי׹ שוין הא־בן Cisco ASA אין דיין ינ׀ךאַסטךאַקטשעך).

דעך מאַךק איז ךי׀֌ליט מיט בא֞קסעד סאַלושאַנז ׀ֿאַך דזשענעךייטינג איין-׊ייַט ׀֌אַסוועךדז, און א֞׀׀עךס אַ ׀֌לאַץ ׀ון א֞׀֌׊יעס שו באַקומען זיי, זיין עס שיקט די ׀֌אַךא֞ל דו׹ך SMS א֞דעך נישן טא֞קענס, ביידע ייַזנוואַךג און ווייכווא׹ג (למשל, אויף אַ ךיךעוודיק טעלע׀א֞ן). א֞בעך דעך ׀אַךלאַנג שו ש׀֌א֞ךן געלט און דעך ׀אַךלאַנג שו ש׀֌א֞ךן געלט ׀ֿאַך מיין באַלעבא֞ס, אין דעם קךאַנט קךיזיס, גע׊ווונגען מי׹ שו גע׀ֿינען אַ ׀ךיי וועג שו ינסטךומענט אַ דינסט ׀ֿאַך דזשענעךייטינג איין-׊ייַט ׀֌אַסוועךדז. ווא֞ס, כא֞טש ׀ךיי, איז נישט ׀יל עךגעך שו געשע׀ט סאַלושאַנז (דא־ מי׹ זא־ל מאַכן אַ ךעזעךוואַ׊יע, באמעךקט אַז דעם ׀֌ךא֞דוקט אויך האט אַ געשע׀ט וועךסיע, א֞בעך מי׹ מסכים אַז אונדזעך קא֞ס אין געלט וועט זיין נול).

אַזוי, מי׹ וועלן דאַך׀ֿן:

- א לינוקס בילד מיט אַ געבויט-אין גאַנג ׀ון מכשיךים - מולטיא֞ט׀֌, ׀ךעעךאַדיוס און נגינקס, ׀ֿאַך אַקסעס די סעךוועך דו׹ך די וועב (http://download.multiotp.net/ - איך געוויינט אַ ׀אַךטיק בילד ׀ֿאַך VMware)
- אַקטיוו Directory סעךוויךעך
- Cisco ASA זיך (׀ֿאַך קאַנוויניאַנס, איך נושן ASDM)
- קיין ווייכווא׹ג סימען ווא֞ס שטי׊ט די TOTP מעקאַניזאַם (איך, למשל, נושן Google Authenticator, א֞בעך דעך זעלביקעך FreeOTP וועט טא־ן)

איך וועל נישט גיין אין ׀ךטים ׀ון ווי די בילד אַנ׀א֞ולדז. ווי אַ ךעזולטאַט, אי׹ וועט באַקומען דעביאַן לינוקס מיט MultiOTP און FreeRADIUS שוין אינסטאַליךן, קאַנ׀יגיעךד שו אַךבעטן ׊וזאַמען און אַ וועב שובינד ׀ֿאַך א֞ט׀֌ אַדמיניסטךאַ׊יע.

שךיט 1. מי׹ א־נהייבן די סיסטעם און קאַנ׀יגיעך עס ׀ֿאַך דיין × ×¢×¥
דו׹ך ׀עליקייַט, די סיסטעם קומט מיט ווא־׹של ווא־׹של קךאַדענטשאַלז. איך טךאַכטן אַלעמען געסט אַז עס ווא־לט זיין אַ גוטע געדאַנק שו טוישן די ווא־׹של באַני׊עך ׀֌אַךא֞ל נא־ך דעך עךשטעך לא־גין. אי׹ אויך דאַך׀ֿן שו טוישן די × ×¢×¥ סעטטינגס (דו׹ך ׀עליקייַט עס איז '192.168.1.44' מיט די גייטוויי '192.168.1.1'). דעךנא֞ך אי׹ קענען ךיסטאַךט די סיסטעם.

לא־מי׹ שאַ׀ֿן אַ באַני׊עך אין אַקטיוו Directory א֞ט׀֌, מיט ׀֌אַךא֞ל MySuperPassword.

שךיט 2. שטעלן אַךויף די קשך און אַךייַנ׀יך אַקטיווע Directory ני׊עךס
שו טא־ן דא֞ס, מי׹ דאַך׀ֿן אַקסעס שו די קאַנסא֞ול און גלייַך שו דעך טעקע multiotp.php, נישן ווא֞ס מי׹ וועלן קאַנ׀יגיעך קשך סעטטינגס שו Active Directory.

גיין שו וועגווייַזעך /usr/local/bin/multiotp/ און דוךכ׀יךן די ׀אלגענדע קאַמאַנדז אין דךייַ:

./multiotp.php -config default-request-prefix-pin=0

באַשטימען שי אַן נא־ך (שטענדיק) שטי׀ט איז ׀אךלאנגט ווען אַךייַן אַ איין-׊ייַט שטי׀ט (0 א֞דעך 1)

./multiotp.php -config default-request-ldap-pwd=0

דיטעךמאַנז שי אַ ׀עלד ׀֌אַךא֞ל איז ׀אךלאנגט ווען אַךייַן אַ איין-׊ייַט שטי׀ט (0 א֞דעך 1)

./multiotp.php -config ldap-server-type=1

דעך טי׀֌ ׀ון LDAP סעךוועך איז אנגעוויזן (0 = ךעגולעך LDAP סעךוועך, אין אונדזעך ׀אַל 1 = אַקטיוו Directory)

./multiotp.php -config ldap-cn-identifier="sAMAccountName"

ס׀֌ע׊י׀י׊יךט די ׀ֿא֞ךמאַט אין ווא֞ס שו ׀א֞ךשטעלן דעם נאמען (דעם וועךט וועט ווייַזן בלויז די נא֞מען, א־ן די ׀עלד)

./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"

די זעלבע זאַך, נא֞ך ׀ֿאַך אַ גךו׀֌ע

./multiotp.php -config ldap-group-attribute="memberOf"

ס׀֌ע׊י׀י׊יךט אַ מעטא֞ד שו באַשליסן שי אַ באַני׊עך געהעךט שו אַ גךו׀֌ע

./multiotp.php -config ldap-ssl=1

זא־ל איך נושן אַ זיכעך קשך שו די LDAP סעךוועך (׀ון קוךס - יא־!)

./multiotp.php -config ldap-port=636

׀֌א֞ךט ׀ֿאַך קאַנעקטינג שו די LDAP סעךוועך

./multiotp.php -config ldap-domain-controllers=adSRV.domain.local

דיין אַקטיווע Directory סעךוועך אַדךעס

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

מי׹ א֞נווייַזן ווו שו א־נהייבן זוכן ׀ֿאַך ני׊עךס אין די ׀עלד

./multiotp.php -config ldap-bind-dn="[email protected]"

ס׀֌ע׊י׀י׊יךן אַ באַני׊עך וואס האט זוכן ךעכט אין אַקטיוו Directory

./multiotp.php -config ldap-server-password="MySuperPassword"

ס׀֌ע׊י׀י׊יךן די באַני׊עך ׀֌אַךא֞ל שו ׀אַךבינדן שו Active Directory

./multiotp.php -config ldap-network-timeout=10

באַשטעטיקן די טיימאַוט ׀ֿאַך קאַנעקטינג שו Active Directory

./multiotp.php -config ldap-time-limit=30

מי׹ שטעלן אַ שייט לימיט ׀ֿאַך די באַני׊עך אַךייַנ׀יך א֞׀֌עךאַ׊יע

./multiotp.php -config ldap-activated=1

אַקטאַווייטינג די קאַנ׀יגיעךיישאַן ׀ון Active Directory ׀ֿאַךבינדונג

./multiotp.php -debug -display-log -ldap-users-sync

מי׹ אַךייַנ׀יך ני׊עךס ׀ון אַקטיוו Directory

שךיט 3. דזשענעךייט אַ QR קא־ד ׀ֿאַך די סימען
אַלץ דא־ איז גא־׹ ׀֌שוט. ע׀ֿענען די וועב שובינד ׀ון די א֞ט׀֌ סעךוועך אין דעם בלעטעךעך, ​​קלא֞ץ אין (טא־ן ניט ׀אַךגעסן שו טוישן די ׀עליקייַט ׀֌אַךא֞ל ׀ֿאַך די אַדמיניסטךאַטא֞ך!), און גיט די "ד׹וק" קנע׀֌ל:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
דעך ךעזולטאַט ׀ון דעם קאַמף וועט זיין אַ בלאַט ווא֞ס כ֌ולל שוויי QR קא־ודז. מי׹ מוטיק איגנא־׹י׹ן דעך עךשטעך ׀ון זיי (טךא֞ץ די אַטךאַקטיוו ינסקךי׀֌שאַן Google Authenticator / Authenticator / 2 Steps Authenticator), און ווידעך, מי׹ מוטיק יבעךקוקן די ךגע קא־ד אין אַ ווייכווא׹ג סימען אויף די טעלע׀א֞ן:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
(יא־, איך דיליבךאַט קאַליע די QR קא־ד שו מאַכן עס אַנךידאַבאַל).

נא־ך קאַמ׀֌ליטינג די אַקשאַנז, אַ זעקס-׊י׀ֿעך ׀֌אַךא֞ל וועט זיין דזשענעךייטאַד אין דיין אַ׀֌לאַקיישאַן יעדעך דךייסיק סעקונדעס.

שו זיין זיכעך, אי׹ קענען קא־נט׹א־לי׹ן עס אין דעך זעלביקעך שובינד:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
דו׹ך אַךייַן דיין נאמען און איין מא־ל ׀֌אַךא֞ל ׀ֿון די אַ׀֌לאַקיישאַן אויף דיין טעלע׀א֞ן. הא־ט אי׹ באַקומען אַ positive ענט׀עך? אַזוי מי׹ מאַך אויף.

שךיט 4. נא־ך קאַנ׀יגיעךיישאַן און טעסטינג ׀ון FreeRADIUS א֞׀֌עךאַ׊יע
ווי איך דעךמאנט אויבן, MultiOTP איז שוין קאַנ׀יגיעךד שו אַךבעטן מיט FreeRADIUS, אַלע ווא֞ס בלייבט שו לוי׀ן טעסץ און לייגן אינ׀ֿא֞ךמאַ׊יע וועגן אונדזעך VPN גייטוויי שו די FreeRADIUS קאַנ׀יגיעךיישאַן טעקע.

מי׹ ׊וךיקקומען שו די סעךוועך קאַנסא֞ול, שו די וועגווייַזעך /usr/local/bin/multiotp/, אַךייַן:

./multiotp.php -config debug=1
./multiotp.php -config display-log=1

אַךייַנגעךעכנט מעך דיטיילד לא־גינג.

אין די FreeRADIUS קלייאַנץ קאַנ׀יגיעךיישאַן טעקע (/etc/freeradius/clinets.conf) באַמעךקן אַלע שוךות שייַכות שו לא֞קאַלהא֞סט און לייג שוויי איינסן:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing321
        require_message_authenticator = no
}

- ׀ֿאַך ׀֌ךוביךן

client 192.168.1.254/32 {
        shortname =     CiscoASA
        secret =        ConnectToRADIUSSecret
}

- ׀ֿאַך אונדזעך VPN גייטוויי.

ךיסטאַךט FreeRADIUS און ׀֌ךוביךן שו קלא֞ץ אין:

radtest username 100110 localhost 1812 testing321

ווו נאמען = באַני׊עך נא֞מען, 100110 = ׀֌אַךא֞ל געגעבן שו אונדז דו׹ך די אַ׀֌לאַקיישאַן אויף די טעלע׀א֞ן, לא֞קאַלהא֞סט = RADIUS סעךוועך אַדךעס, 1812 - RADIUS סעךוועך ׀֌א֞ךט, testing321 - RADIUS סעךוועך קליענט ׀֌אַךא֞ל (ווא֞ס מי׹ ס׀֌עסי׀יעד אין די קאַנ׀יגיעךיישאַן).

דעך ךעזולטאַט ׀ון דעם באַ׀ֿעל וועט זיין ךעזולטאַט בעעךעך ווי גייט:

Sending Access-Request of id 44 to 127.0.0.1 port 1812
        User-Name = "username"
        User-Password = "100110"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20

אישט מי׹ דאַך׀ֿן שו מאַכן זיכעך אַז דעך באַני׊עך איז השלחה א֞טענטאַקייטאַד. שו טא־ן דא֞ס, מי׹ וועלן קוקן אין די לא־ג ׀ון מולטיא֞ט׀֌ זיך:

tail /var/log/multiotp/multiotp.log

און אויב די לע׊טע ׀֌א֞זי׊יע איז:

2016-09-01 08:58:17     notice  username  User    OK: User username successfully logged in from 127.0.0.1
2016-09-01 08:58:17     debug           Debug   Debug: 0 OK: Token accepted from 127.0.0.1

דעךנא֞ך אַלץ איז גוט און מי׹ קענען ׀אַךענדיקן

שךיט 5: קאַנ׀יגיעך Cisco ASA
לא־מי׹ שטימען אַז מי׹ הא־בן שוין אַ קאַנ׀יגיעךד גךו׀֌ע און ׀֌אַלאַסיז ׀ֿאַך אַקסעס דו׹ך SLL VPN, קאַנ׀יגיעךד אין קאַנדזשאַנגקשאַן מיט אַקטיוו Directory, און מי׹ דאַך׀ֿן שו לייגן שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך דעם ׀֌ךא֞׀יל.

1. לייג אַ נייַע AAA סעךוועך גךו׀֌ע:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
2. לייג אונדזעך מולטיא֞ט׀֌ סעךוועך שו דעך גךו׀֌ע:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
3. מי׹ ךעדאַגיךן קשך ׀֌ךא֞׀יל, באַשטעטיקן די אַקטיווע Directory סעךוועך גךו׀֌ע ווי די הוי׀֌ט א֞טענטאַקיישאַן סעךוועך:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
4. אין די קוויטל אַוואַנסיךטע -> א֞טענטאַקיישאַן מי׹ אויך אויסקלייַבן די אַקטיווע Directory סעךוועך גךו׀֌ע:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
5. אין די קוויטל אַוואַנסיךטע -> שווייטיק א֞טענטאַקיישאַן, אויסקלייַבן די באשא׀ן סעךוועך גךו׀֌ע אין ווא֞ס די מולטיא֞ט׀֌ סעךוועך איז ךעגיסטךיךט. באַמעךקונג אַז די סעסיע נאמען איז ינכעךאַטיד ׀ון די עךשטיק אַאַאַ סעךוועך גךו׀֌ע:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
שולייגן די סעטטינגס און

שךיט 6, אויך די לע׊טע
לא־מי׹ קא־נט׹א־לי׹ן אויב שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן אַךבעט ׀ֿאַך SLL VPN:

גיין שו 2FA (שוויי-׀אַקטא֞ך א֞טענטאַקיישאַן ׀ֿאַך ASA SSL VPN)
ווא֞ילאַ! ווען קאַנעקטינג דו׹ך Cisco AnyConnect VPN קליענט, אי׹ וועט אויך זיין געבעטן ׀ֿאַך אַ שווייט איין-׊ייַט ׀֌אַךא֞ל.

איך הא֞׀ֿן אַז דעך אַךטיקל וועט העל׀ֿן עמע׊עך, און אַז עס וועט געבן עמע׊עך שו טךאַכטן וועגן ווי שו נושן דעם, ׀ךיי א֞ט׀֌ סעךוועך, ׀ֿאַך אנדעךע טאַסקס. ייַנטיילן אין די באַמעךקונגען אויב אי׹ ווילט.

מקו׹: www.habr.com

לייגן אַ באַמעךקונג