به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید

نیاز به ارائه دسترسی از راه دور به یک محیط شرکتی بیشتر و بیشتر در حال ظهور است، مهم نیست این کاربران یا شرکای شما هستند که به یک سرور خاص در سازمان شما نیاز دارند.

برای این اهداف، اکثر شرکت‌ها از فناوری VPN استفاده می‌کنند، که ثابت کرده است یک روش محافظت شده قابل اعتماد برای دسترسی به منابع محلی سازمان است.

شرکت من نیز از این قاعده مستثنی نبود و ما نیز مانند بسیاری دیگر از این فناوری استفاده می کنیم. و مانند بسیاری دیگر، ما از Cisco ASA 55xx به عنوان دروازه دسترسی از راه دور استفاده می کنیم.

با افزایش تعداد کاربران از راه دور، نیاز به ساده سازی روند صدور اعتبار وجود دارد. اما در عین حال، این باید بدون به خطر انداختن ایمنی انجام شود.

برای خودمان، راه حلی در استفاده از احراز هویت دو مرحله ای برای اتصال از طریق Cisco SSL VPN، با استفاده از رمزهای عبور یک بار مصرف پیدا کردیم. و این نشریه به شما می گوید که چگونه چنین راه حلی را با حداقل زمان و هزینه های صفر برای نرم افزار لازم سازماندهی کنید (به شرطی که قبلاً Cisco ASA را در زیرساخت خود داشته باشید).

بازار مملو از راه حل های جعبه ای برای تولید رمزهای عبور یک بار مصرف است، در حالی که گزینه های زیادی برای به دست آوردن آنها ارائه می دهد، خواه ارسال رمز عبور از طریق پیامک یا استفاده از توکن ها، چه سخت افزاری و چه نرم افزاری (مثلاً در تلفن همراه). اما میل به صرفه جویی در پول و میل به صرفه جویی در پول برای کارفرما، در بحران کنونی، مرا مجبور کرد تا راهی رایگان برای پیاده سازی سرویس تولید رمزهای عبور یکبار مصرف پیدا کنم. که در عین رایگان بودن، چندان کمتر از راه حل های تجاری نیست (در اینجا باید رزرو کنید، توجه داشته باشید که این محصول یک نسخه تجاری نیز دارد، اما ما توافق کردیم که هزینه های ما، از نظر پول، صفر خواهد بود).

بنابراین ، ما نیاز داریم:

- یک تصویر لینوکس با مجموعه ای از ابزارهای داخلی - multiOTP، FreeRADIUS و nginx، برای دسترسی به سرور از طریق وب (http://download.multiotp.net/ - من از یک تصویر آماده برای VMware استفاده کردم)
- سرور Active Directory
- خود سیسکو ASA (برای راحتی، من از ASDM استفاده می کنم)
- هر توکن نرم افزاری که از مکانیسم TOTP پشتیبانی می کند (برای مثال من از Google Authenticator استفاده می کنم، اما همان FreeOTP این کار را می کند)

من وارد جزئیات نحوه باز شدن تصویر نمی شوم. در نتیجه، لینوکس دبیان را با چند OTP و FreeRADIUS از قبل نصب شده، پیکربندی شده برای کار با یکدیگر و یک رابط وب برای مدیریت OTP دریافت خواهید کرد.

مرحله 1. ما سیستم را راه اندازی می کنیم و آن را برای شبکه شما پیکربندی می کنیم
به‌طور پیش‌فرض، سیستم دارای اعتبار ریشه ریشه است. فکر می‌کنم همه حدس می‌زنند که تغییر رمز عبور کاربر root پس از اولین ورود، ایده خوبی خواهد بود. همچنین باید تنظیمات شبکه را تغییر دهید (به طور پیش فرض "192.168.1.44" با دروازه "192.168.1.1" است). پس از آن می توانید سیستم را راه اندازی مجدد کنید.

بیایید یک کاربر در اکتیو دایرکتوری ایجاد کنیم OTP، با رمز عبور MySuperPassword.

مرحله 2. اتصال را تنظیم کرده و کاربران Active 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 = اکتیو دایرکتوری)

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

آدرس سرور Active Directory شما

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

ما نشان می دهیم که جستجوی کاربران در دامنه از کجا شروع شود

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

کاربری را مشخص کنید که دارای حقوق جستجو در Active Directory باشد

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

رمز عبور کاربر را برای اتصال به Active Directory مشخص کنید

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

تنظیم زمان برای اتصال به اکتیو دایرکتوری

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

ما یک محدودیت زمانی برای عملیات وارد کردن کاربر تعیین کردیم

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

فعال کردن پیکربندی اتصال اکتیو دایرکتوری

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

ما کاربران را از Active Directory وارد می کنیم

مرحله 3. یک کد QR برای توکن ایجاد کنید
همه چیز در اینجا بسیار ساده است. رابط وب سرور OTP را در مرورگر باز کنید، وارد شوید (فراموش نکنید رمز عبور پیش فرض را برای مدیر تغییر دهید!) و روی دکمه «چاپ» کلیک کنید:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
نتیجه این عمل صفحه ای خواهد بود که حاوی دو کد QR است. ما جسورانه اولین آنها را نادیده می گیریم (علیرغم کتیبه جذاب Google Authenticator / Authenticator / 2 Steps Authenticator)، و دوباره با جسارت کد دوم را در یک رمز نرم افزاری روی تلفن اسکن می کنیم:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
(بله، من عمدا کد QR را خراب کردم تا قابل خواندن نباشد).

پس از انجام این اقدامات، هر سی ثانیه یک رمز عبور شش رقمی در برنامه شما ایجاد می شود.

برای اطمینان، می توانید آن را در همان رابط بررسی کنید:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
با وارد کردن نام کاربری و رمز عبور یکبار مصرف خود از اپلیکیشن روی گوشی خود. آیا پاسخ مثبت دریافت کردید؟ بنابراین ما ادامه می دهیم.

مرحله 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) تمام خطوط مربوط به را نظر دهید localhost را و دو ورودی اضافه کنید:

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 = رمز عبوری که برنامه روی تلفن به ما داده است، localhost را = آدرس سرور RADIUS، 1812 - پورت سرور RADIUS، تست 321 - رمز عبور سرویس گیرنده سرور 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

اکنون باید مطمئن شویم که کاربر با موفقیت احراز هویت شده است. برای انجام این کار، ما به گزارش خود multiotp نگاه خواهیم کرد:

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 داریم که در ارتباط با Active Directory پیکربندی شده است و باید احراز هویت دو مرحله ای را برای این نمایه اضافه کنیم.

1. یک گروه سرور AAA جدید اضافه کنید:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
2. سرور multiOTP خود را به گروه اضافه کنید:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
3. ویرایش می کنیم پروفایل اتصال، گروه سرور Active Directory را به عنوان سرور اصلی احراز هویت تنظیم کنید:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
4. در برگه پیشرفته -> احراز هویت ما همچنین گروه سرور Active Directory را انتخاب می کنیم:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
5. در برگه پیشرفته -> ثانویه احراز هویت، گروه سرور ایجاد شده را انتخاب کنید که سرور multiOTP در آن ثبت شده است. توجه داشته باشید که نام کاربری Session از گروه سرور اصلی AAA به ارث رسیده است:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
تنظیمات را اعمال کنید و

مرحله 6، با نام مستعار آخرین
بیایید بررسی کنیم که آیا احراز هویت دو مرحله ای برای SLL VPN کار می کند یا خیر:

به 2FA (احراز هویت دو مرحله ای برای ASA SSL VPN) بروید
وایلا! هنگام اتصال از طریق Cisco AnyConnect VPN Client، رمز عبور دوم و یکبار مصرف نیز از شما خواسته می شود.

امیدوارم که این مقاله به کسی کمک کند و به کسی کمک کند که چگونه از آن استفاده کند. رایگان سرور OTP، برای کارهای دیگر. در صورت تمایل در نظرات به اشتراک بگذارید.

منبع: www.habr.com

اضافه کردن نظر