مع ازدياد الطرائق التي يستخدمها المهاجمون في عمليات الإختراق التي يقومون بها، يحتاج مدراء الانظمة الى رفع مستوى الحماية الخاص بأنظمتهم. إحدى هذه الطرائق هي عبر المصادقة المزدوجة أو ما يعرف ب Two-Factor Authentication.
ما هي المصادقة المزدوجة؟
كلمات المرور هي شيء يعرفه المستخدم (something you know). هنا العديد من الوسائل التي يتم من خلالها مهاجمة كلمات المرور. وكون كلمات المرور هي الحماية الأكثر استخداما والتي بمعرفتها (او الحصول عليها) يمكن للمهاجم اختراق الأنظمة، تعتبر اضافة شيء آخر لعملية المصادقة أمراً مهماً من أجل جعل مهمة المهاجم أمراً أصعب. الإضافة هنا هي عبارة عن شيء في حوزة المستخدم (something you have) وهو في حالتنا هذه الهاتف النقال.
قامت غوغل في الفترة الأخيرة بجعل المصادقة المزدوجة متوفرة على نطاق واسع سواء على بريدها الإلكتروني (سنقوم إن شاء الله بتغطيته قريباً)، وكذلك عبر توفير إضافات يمكن للمستخدمين تثبيتها على أنظمتهم لتسهيل تفعيل المصادقة المزدوجة.
هنا سنقوم إن شاء الله بتغطية طريقة تفعيل المصادقة المزدوجة على أنظمة ابنتو. ننصح مدراء هذه الأنظمة بتفعيلها من أجل حماية أفضل لأنظمته. هذه الحماية لا تكلفك عزيزي مدير النظام شيئاً سوى وقت تثبيتها على أنظمتك.
الخطوات
تفعيل المصادقة المزدوجة
اذهب الى لوحة ادارة نطاقك (او ادارة بريدك في حال لم تكن تمتلك نطاق) واختر الأدوات المتقدمة (Advanced Tools) ثم اختر “Allow users to turn on two-factor authentication”. بعد ذلك اذهب الى حسابي (My Account) واضغط على استخدام المصادقة المزدوجة (Using 2-step verification).
تثبيت مصادق جوجل (Google Authenticator) على ابنتو
ملاحظة: الخطوات التالية تم تنفيذها على نظام ابنتو 10.04
١- قم بتحميل مكتبة libpam0g-dev والتي يحتاجها Google Authenticator
apt-get install libpam0g-dev#
٢- قم بتحميل Google Authenticator من هنا https://code.google.com/p/google-authenticator/downloads/list
ملاحظة: لحظة كتابة هذا المقال كان اسم الملف هو libpam-google-authenticator-1.0-source.tar.bz2
٣- قم بتثبيت برنامج gcc
#apt-get install gcc
ملاحظة: وجود برنامج gcc على خادمك له محاذير أمنية لذلك قم بإزالته بعد الانتهاء من تثبيت Google Authenticator
٤- قم بفك ضغط البرنامج وتثبيته
$bunzip2 libpam-google-authenticator-1.0-source.tar.bz2
$tar xvf libpam-google-authenticator-1.0-source.tar
$cd libpam-google-authenticator-1.0-source
$sudo make install
٥- نقوم الآن بتحرير ملف common-auth حتى يشمل إضافة Google Authenticator
vim /etc/pam.d/common-auth
وإضف السطر التالي
auth required pam_google_authenticator.so
بحيث يصبح شكل الملف النهائي هو
# here are the per-package modules (the "Primary" block)
auth required pam_google_authenticator.so
auth [success=1 default=ignore] pam_unix.so nullok_secure
# here's the fallback if no module succeeds
ملاحظة: لا تقم بأي تعديل على الملف عدا عن اضافة سطر Google Authenticator قبل سطر pam_unix.so
٦- قم بتفعيل خاصية ChallengeResponseAuthentication في برنامج SSH حتى يصبح Google Authenticator جزءا منه.
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes
ملاحظة: هنا قمت فقط بغير القيمة من no إلى yes
الآن نقوم بإعادة تشغيل خدمة SSH من أجل أن تصبح التغييرات التي قمنا بها مفعلة.
service ssh restart
لا تقم بالخروج من النظام أبداً في هذه المرحلة وإلا فلن تتمكن من الدخول مرة أخرى
٧- لتفيعل Google Authenticator على حساب
bashar@s4a:~$ google-authenticator
Do you want authentication tokens to be time-based (y/n) y
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/bashar@s4a?secret%
Your new secret key is:
Your verification code is
Your emergency scratch codes are:
***55**
***22**
***77**
***22**
***11**
Do you want me to update your “/home/bashar/.google_authenticator” file (y/n) y
Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y
By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y
If the computer that you are logging into isn’t hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y
٨- قم بنسخ العنوان إعلاه في متصفحك
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/bashar@s4a%3Fsecret%<USERS_KEY>
٩- قم بعملية مسح لكود الذي سيظهر (كود يعرف ب QR) من خلال تطبيق Google Authenticator على هاتفك النقال.
التطبيق متوفر في اسواق هواتف اندوريد، ايفون، وبلاك بيري بالإسم Google Authenticator وفي سوق هاتف ويندوز فون بالإسم Authenticator وهو اصدار غير رسمي بخلاف Google Authenticator المدعوم من قبل غوغل.
مثال للصورة التي ستظهر عند زيارة الموقع
١٠- جرب من شاشة سطر أوامر أخرى الوصول الى الخادم حتى تتأكد من أن المصادقة المزدوجة تعمل الآن
$ssh bashar@s4a
Verification code:
Password:
Linux s4a 2.6.32-41-server #88-Ubuntu SMP Thu Mar 29 14:32:47 UTC 2012 x86_64 GNU/Linux
Ubuntu 10.04.4 LTS
bashar@s4a:~$
كما تلاحظون هناك شيء جديد يسبق كلمة المرور وهو Verification Code والذي تحتاج إليه بالإضافة إلى كلمة المرور من أجل الوصول الى خادمك عبر خدمة SSH
ما هي المصادقة المزدوجة؟
كلمات المرور هي شيء يعرفه المستخدم (something you know). هنا العديد من الوسائل التي يتم من خلالها مهاجمة كلمات المرور. وكون كلمات المرور هي الحماية الأكثر استخداما والتي بمعرفتها (او الحصول عليها) يمكن للمهاجم اختراق الأنظمة، تعتبر اضافة شيء آخر لعملية المصادقة أمراً مهماً من أجل جعل مهمة المهاجم أمراً أصعب. الإضافة هنا هي عبارة عن شيء في حوزة المستخدم (something you have) وهو في حالتنا هذه الهاتف النقال.
قامت غوغل في الفترة الأخيرة بجعل المصادقة المزدوجة متوفرة على نطاق واسع سواء على بريدها الإلكتروني (سنقوم إن شاء الله بتغطيته قريباً)، وكذلك عبر توفير إضافات يمكن للمستخدمين تثبيتها على أنظمتهم لتسهيل تفعيل المصادقة المزدوجة.
هنا سنقوم إن شاء الله بتغطية طريقة تفعيل المصادقة المزدوجة على أنظمة ابنتو. ننصح مدراء هذه الأنظمة بتفعيلها من أجل حماية أفضل لأنظمته. هذه الحماية لا تكلفك عزيزي مدير النظام شيئاً سوى وقت تثبيتها على أنظمتك.
الخطوات
تفعيل المصادقة المزدوجة
اذهب الى لوحة ادارة نطاقك (او ادارة بريدك في حال لم تكن تمتلك نطاق) واختر الأدوات المتقدمة (Advanced Tools) ثم اختر “Allow users to turn on two-factor authentication”. بعد ذلك اذهب الى حسابي (My Account) واضغط على استخدام المصادقة المزدوجة (Using 2-step verification).
تثبيت مصادق جوجل (Google Authenticator) على ابنتو
ملاحظة: الخطوات التالية تم تنفيذها على نظام ابنتو 10.04
١- قم بتحميل مكتبة libpam0g-dev والتي يحتاجها Google Authenticator
apt-get install libpam0g-dev#
٢- قم بتحميل Google Authenticator من هنا https://code.google.com/p/google-authenticator/downloads/list
ملاحظة: لحظة كتابة هذا المقال كان اسم الملف هو libpam-google-authenticator-1.0-source.tar.bz2
٣- قم بتثبيت برنامج gcc
#apt-get install gcc
ملاحظة: وجود برنامج gcc على خادمك له محاذير أمنية لذلك قم بإزالته بعد الانتهاء من تثبيت Google Authenticator
٤- قم بفك ضغط البرنامج وتثبيته
$bunzip2 libpam-google-authenticator-1.0-source.tar.bz2
$tar xvf libpam-google-authenticator-1.0-source.tar
$cd libpam-google-authenticator-1.0-source
$sudo make install
٥- نقوم الآن بتحرير ملف common-auth حتى يشمل إضافة Google Authenticator
vim /etc/pam.d/common-auth
وإضف السطر التالي
auth required pam_google_authenticator.so
بحيث يصبح شكل الملف النهائي هو
# here are the per-package modules (the "Primary" block)
auth required pam_google_authenticator.so
auth [success=1 default=ignore] pam_unix.so nullok_secure
# here's the fallback if no module succeeds
ملاحظة: لا تقم بأي تعديل على الملف عدا عن اضافة سطر Google Authenticator قبل سطر pam_unix.so
٦- قم بتفعيل خاصية ChallengeResponseAuthentication في برنامج SSH حتى يصبح Google Authenticator جزءا منه.
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes
ملاحظة: هنا قمت فقط بغير القيمة من no إلى yes
الآن نقوم بإعادة تشغيل خدمة SSH من أجل أن تصبح التغييرات التي قمنا بها مفعلة.
service ssh restart
لا تقم بالخروج من النظام أبداً في هذه المرحلة وإلا فلن تتمكن من الدخول مرة أخرى
٧- لتفيعل Google Authenticator على حساب
bashar@s4a:~$ google-authenticator
Do you want authentication tokens to be time-based (y/n) y
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/bashar@s4a?secret%
Your new secret key is:
Your verification code is
Your emergency scratch codes are:
***55**
***22**
***77**
***22**
***11**
Do you want me to update your “/home/bashar/.google_authenticator” file (y/n) y
Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y
By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y
If the computer that you are logging into isn’t hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y
٨- قم بنسخ العنوان إعلاه في متصفحك
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/bashar@s4a%3Fsecret%<USERS_KEY>
٩- قم بعملية مسح لكود الذي سيظهر (كود يعرف ب QR) من خلال تطبيق Google Authenticator على هاتفك النقال.
التطبيق متوفر في اسواق هواتف اندوريد، ايفون، وبلاك بيري بالإسم Google Authenticator وفي سوق هاتف ويندوز فون بالإسم Authenticator وهو اصدار غير رسمي بخلاف Google Authenticator المدعوم من قبل غوغل.
مثال للصورة التي ستظهر عند زيارة الموقع
١٠- جرب من شاشة سطر أوامر أخرى الوصول الى الخادم حتى تتأكد من أن المصادقة المزدوجة تعمل الآن
$ssh bashar@s4a
Verification code:
Password:
Linux s4a 2.6.32-41-server #88-Ubuntu SMP Thu Mar 29 14:32:47 UTC 2012 x86_64 GNU/Linux
Ubuntu 10.04.4 LTS
bashar@s4a:~$
كما تلاحظون هناك شيء جديد يسبق كلمة المرور وهو Verification Code والذي تحتاج إليه بالإضافة إلى كلمة المرور من أجل الوصول الى خادمك عبر خدمة SSH