شبكة الـ VPN هي عباره عن عملية تجسير/ربط لطرفين (جهازين أو شبكتين) أو أكثر من خلال شبكة الأنترنت.
وسواء كان هنالك عنوان ثابت Fix IP أو لم يكن. وسواء كان هنالك جهاز راوتر أو لم يكن. فيمكن إنشاء شبكة VNP...
و وجود العنوان الثابت بشكل عام هو للسهوله والضمان في شبكات الـ VNP, وليس بشرط أساسي لتكوين هذا النوع من الشبكات.
مثال:
من 5 أو 6 سنوات تقريباً كنا نتجنب إستخدام العناوين الثابته لإنشاء شبكة VNPوهذا لإرتفاع الأسعار حينها $$$.. فكنا نقوم بتحديد/تخزين عناوين الطرفين IP's (بشكل ألي ودوري) في ملف مخزن على شبكه الأنترنت(في إحدى المواقع) ومن خلاله يمكن لكل طرف معرفة عنوان IP للطرف الأخر..
عمليه سهله وبسيطه وغير مكلفه, وكانت تستغرق دقيقه أو دقيقتين ليتم الأتصال..
وأحياناً نستخدم البريد لمعرفة العنوان الجديد في حال تغيره..
وهكذا...إلخ.
لن أطيل عليكم كثير. وبالمختصر, العنوان الثابت أو جهاز راوتر لسا بشرط أساسي في تكوين/إنشاء شبكات الـ VNP.
في إعدادات شبكة الـ VNP يجب توحيد ID واحد لتصبح شبكه واحده. وهذا برينج IP واحد و SubNet Mask واحد..سواءً بـ DHCP أو بالتحديد الثابت.(يفضل بأن يكون الـ ID مختلف عما لديك في الشبكه المحليه).
وعملية المشاركه عاديه وكأنك في شبكه محليه.
وإن لم تظهر لديك الأجهزه فبحث عنها بالإسم أو بالعنوان للجهاز...
في هذا الموضوع سنقوم بالتعرف على كيفية الإتصال بالـ VPN بإستعمال برنامج GNOME Network Manager … البرنامج هذا والذي هو موجود بأعلى الشاشة لديك على اليمين وعلى شكل شاشتين كمبيوتر يحتوي على صفحة خاصة بالإتصال بالـ VPN ولكنه يحتاج الى إضافات معينة لكي يتفعل … الآن في حالتنا نريد الإتصال بشبكة OpenVPN ولهذا سنقوم بإضافة الإضافة:
PHP:
sudo apt-get install network-manager-openvpn
أما إن كنت تريد الإتصال بشبكة VPN من نوع Cisco، فقم بإضافة:
PHP:
sudo apt-get install network-manager-vpnc
ولو كنت تريد الإتصال بشبكة VPN من نوع PPTP، قم بإضافة:
PHP:
sudo apt-get install network-manager-pptp
ملاحظة: سأختصر في باقي الموضوع عبارة Network Manager بـ NM.
الآن أضغط على أيقونة الـ NM وقم بإختيار VPN Connections ومن ثم Configure VPN كما في الصورة:
الآن بما إنه لدينا الإعدادات جاهزة في ملف ovpn كما رأينا في الموضوع السابق، فكل ما عليك فعله هو عمل import. لعمل ذلك اضغط على زر import وقم بإختيار الملف الذي ينتهي بـ ovpn وسيكون كل شيء تمام وجاهز …
في حالة لم تعمل هذه الطريقة بشكل صحيح وتريد عملها بشكل يدوي؟ كل ما عليك فعله هو الضغط على Add ومن ثم إختيار نوع الشبكة والتي هنا هي OpenVPN كما في الصورة:
الآن ضع أسم لهذا الإتصال مثلاً انا اخترت BinaryVPN ضع ما تريد انت. بعد ذلك قم بوضع الـ IP الخاص بالـ Gateway الذي ستشبك عليه، وقم بإختيار Certificates كما في الصورة وذلك لأنني أستعمل الشهادات. وأختر الشهادة الخاصة بالمستخدم الذي تريده، والشهادة الخاصة بالـ CA والمفتاح الخاص بك. وأخيراً ضع الكلمة السرية التي تستعملها للمفتاح، هذا إن كنت تستعمل كلمة سرية على المفتاح.
الآن أضغط على صفحة IPv4 Settings وقم بوضع الـ Method:
Automatic (VPN) addresses only
ومن ثم أضغط على Routes وقم بوضع صح على:
Ignore automatically obtained routes
إذا لم تقم بإختيارها لن تستطيع الإتصال بالأنترنت وذلك لأنه كل الحزم ستمر وتذهب الى الشبكة
VPN … شغلها أحسنلك
كما في الصورة:
الآن أرجع للصفحة الأولية وأختر Advanced، ومن ثم أذهب الى صفحة Certificates وقم بإختيار نوع التشفير المستعمل وأيضاً قم بإختيار المفتاح الخاص بالخادم VPN، كما في الصورة:
الآن أضغط OK لحفظ الإعدادات وأخرج من صفحة إعداد الـ VPN وأذهب الى NM مرة أخرى وأضغط عليه وأذهب الى VPN Connections وقم بإختيار الشبكة التي عملناها وأنتظر بعض الوقت كما في الصورة:
سيظهر لك إشارة “قفل” على NM توضح بإنه تم الإتصال بهذه الشبكة. في حالة كان هناك خلل سيظهر لك رسالة بذلك، ولمعرفة الخلل:
كود: sudo tail -f /var/log/syslog /var/log/messages
وأنظر ما هو الخلل وحاول تحله، ولكن بالعادة لن يكون هناك إذا كانت إعدادت الخادم صح مثل الي عندي وكنت أخترت الخيارات صح، إلا إنه ممكن تظهر لك مشكلة في التصاريح التي على الشهادات والمفاتيح التي عندك، ولهذا يفضل أن تكون كلها مسموح قرائتها والتعديل وتشغيلها من قبل صاحبها فقط …
إن شاء الله في الدرس القادم، سأشرح كيفية الإتصال بأكثر من شبكة VPN من خلال الويندوز وبعدها من خلال جنو/لينوكس، لأن NM في جنو/لينوكس لا يدعم الإتصال سوى بواحدة في المرة الواحدة …
هذا الأسبوع كان كل شغلي على IPSec والـ VPN’s … بصراحة تعقدت من كثر الخيارات والإختلافات بأنواعهم وطرق الحماية التي يقدمها كل نوع … قرأت عن مختلف البروتوكولات PPTP و L2TP والقليل عن النوع الخاص بشركة cisco … جميع ما تعلمته وطبقته بإذن الله سأبدأ بالكتابة عنه بالتدريج حبة حبة … سأبدأ بطرق الإتصال بهذه الأنواع من الخوادم أو الـ Hardware وبالأخير إن شاء الله سأشرح طريقة تركيب
لمن لا يملكها من الأساس … وكيفية عمل تقوية لها وغيرها من الأمور التي ربما يستفيد منها أحد …
أول شرح والذي هو هذا الذي تقرؤونه هو جاهز وقمت بالأسبوع هذا بعمله كشرح بسيط للموظفين بالشركة كيف يقومون بالإتصال بخادم
من خلال الويندوز بإستعمال برنامج OpenVPN GUI الخاص بالويندوز (كم هم محترمين جماعة المصادر الحرة لم يقوموا بإحتكار الأمر على جنو/لينوكس بل هو متاح للجميع) … لأن جميعهم الى حد الآن لا يعرف يستعمل جنو/لينوكس ولكنهم صعقوا من إمكانياته وبعضهم أخذ مني نسخة Ubuntu 9.04 وقام بتركيبه … وساعمل لهم دورات بين الحين والآخر على إستعماله لانهم فعلا يستعملون بالوقت الحالي الكثير من برامج المصادر الحرة ولا يستعملون الأب الروحي لهذه المصادر GNU/Linux …
ملاحظة: هذه الطريقة هي لعمل إعدادات للإتصال بـ VPN تستعمل Certificates ولا تعمل بواسطة pre-shared key والتي سأقوم بشرحها ولكن على Hardware Firewall Appliance والذي يسمح بعمل IPSec VPN لاحقاً إن شاء الله … أو ممكن شرحها عندما أشرح تنصيب الـ
…
المهم الطريقة بسيطة جداً يا شباب كل الي عليكم تعملوه بالبداية هو تحميل البرنامج
من
لهذه الأداة … وبعد ذلك قم بتركيبها وطريقة تركيبها سهلة جداً ومعروفة للجميع Next Next Next ومن ثم Finish … بعد ذلك أذهب الى:
Start > Programs > OpenVPN > Open Configuration File Directory
سيفتح لك المجلد الرئيسي للإعدادات والذي هو
C:\Program Files\OpenVPN\config
قم بنسخ جميع الـ Certificates والمفاتيح الخاصة بإتصالك، وأيضاً ملف الإعدادات الخاص بإتصالك الى هذا المجلد … هذه الملفات تتظمن:
User Certificate والتي هي بالغالب بإسمك وتنتهي بـ .crt
User
والتي هي أيضاً بالغالب نفس الإسم السابق ولكن تنتهي بـ .csr
User Key والذي هو المفتاح الخاص بالمستخدم وينتهي بـ .key
التي قامت بتوقيع هذه الشهادات (هذا إن كانت الشهادات لديك موقعة من طرف موثوق مثل Verisign وهكذا) عندي كلهم موقعين والحمد لله ولذلك يجب وضعها بالمجلد وتكون بالغالب إسم الشركة وتنتهي أيضاً بـ .crt
أيضا لا تنسى المفتاح والشهادة حق الخادم الذي تشبك عليه … وبالأخير الملف الخاص بالإعدادات والذي يكون بالغالب .ovpn … يعني عندك ما شاء الله تشكيلة من الملفات

الآن قم بتشغيل البرنامج (هذا إن لم يكن قد عمل لوحده بعد التثبيت) … وقم بعمل ضغطة يمين عليه كما في الصورة:
وبعد ذلك قم بإختيار شبكة الـ VPN التي تريد الإتصال بها (في حالة لديك أكثر من واحدة) وأضغط على Connect … بعد ذلك أنتظر القليل ليقول لك بإنه تمت العملية بنجاح …
الآن للتأكد من ذلك، أفتح طرفية cmd في الويندوز وقم بعمل ping على أحد الأجهزة التي تعرف بإنها موجودة على الشبكة هناك …
وهكذا إنتهينا من عمل الإتصال بواسطة الويندوز … سنشرح في الموضوع القادم على جنو/لينوكس كيف يتم ذلك وطرق عمل ذلك لانه يوجد اكثر من طريقة … وحتى على الويندوز يوجد طرق متعددة على فكرة
طريقه ثانيه وبرنامج أخر
OpenVPN
ببساطة OpenVPN، ماهو إلا VPN. بكل ماتحمله الكلمة من معان وفوائد جما.
غالبا المؤسسات تشتري Cisco ASA، ولا F5 مثلا، أو غيرهم، لتقديم خدمة VPN للعملاء، او الموظفين، أو حتى الربط بين الفروع. الفوائد تتلخص في التالي:
- بإمكان الموظفين الدخول إلى موارد المؤسسة من المنزل. مثلا مشاركة الملفات والطابعات، استخدام الـintranet أو VoIP
- الربط بين الفروع. فعوضا من شراء Leased line أو MPLS للربط بين الفروع، يكفي انشاء VPN بين الفرعين عبر فضاء الإنترنت - وهكذا يكون السعر أرخص وتقريبا نفس معدل الأمان.
- كذلك للأفراد. شخصيا استخدم هذا في المنزل كذلك، حتى أدخل على ملفاتي أو أي شيء آخر من محل العمل.
- زيادة الأمان في الشبكات المحلية، سواء سلكية أو لاسلكية.
كل هذه الخواص يوفرها أيضا OpenVPN إلا أنه مجاني ومفتوح المصدر، وممكن تثبيته تقريبا على أي جهاز PC أو سيرفر. أنظمة التشغيل التي يدعمها:
هذا البرنامج، بإمكانه توفير الخدمة لمئات بل آلاف المستخدمين. الـScalability فيه مرنة جدا. كل ماعليك هو تنصيب خادم OpenVPN، وعندما تريد تتوسع، فقط تضع خادم جديد. الخادم الجديد سيملك _نفس_ الإعدادات لكن فقط رقم IP مختلف. High Availability & High Performance.
لماذا نضيع مالا لشراء مايمكن الحصول عليه بالمجان + مرونة أكبر؟
الفهرس
- التثبيت على FreeBSD و Linux و Windows
مقدمة عن OpenVPN
OpenVPN يعتبر SSL VPN، ووجه اختلافه أنه ليس بداخل الـkernel كما هو الحال مع IPSec. لذا لا داعي لـkernel recompile على سبيل المثال. وكذلك البرنامج ممكن نسميه end-to-end، فلا توجد مخافة incompatibility كما هو الحال مع IPSec. صحيح أن IPSec معيار عالمي، إلا أن التطبيقات بواسطة عدة مصنعين تتكون أحيانا غير متوافقة.
لذا برنامج OpenVPN من أسهل أنواع الـVPN. لكن عدم وجوده داخل الـKernel سيؤدي إلى بعض البطئ. هذا البطئ غير ملحوظ في معظم الأحيان، وخاصة مع الـscalability العالية ممكن استخدام عدة سيرفرات. ناهيك أن هناك مزودات vpn على فضاء الإنترنت تستخدم OpenVPN، هذا دليل على الـscalability.
آلية OpenVPN من منظور الشبكة
طريقة عمل الـOpenVPN بسيطة. فهو يتنسط على منفذ TCP أو UDP (انت تختار)، وجميع البيانات المستقبلة والمرسة بين الخادم والعميل يتم تمريرها داخل هذا المنفذ. يعني TCP/UDP tunnel.
بالإعدادات الإفتراضية يكون UDP 1194، وهذا الرقم مخصص للبرنامج بواسطة IANA للـOpenVPN. فعندما يشبك العميل مع الـVPN سيقوم بإرسال كل شيء داخل UDP 1194. وإذا تشغل wireshark ستجد أن جميع الداخل والخارج هو UDP1194، وطبعا كل مابداخله مشفر بإحكام.
مثال تطبيقي، عندما يقوم العميل، الموصول من خلال OpenVPN، إرسال طلب مشاهدة موقع جوجل، يعني HTTP GET Request to Google.com سيكون شكل الـpacket كالتالي (الأحمر مشفر):
LEFT TO RIGHT
IP_Header(SrcIP:ClientRealIP, DstIP:OpenVpnServerRealIP)
UDP_Header(SrcPort:Random, DstPort:1194)
IP_Header(SrcIP:OpenVPNVirtualIP, DstIP:Google.comIP)
TCP_Header(SrcPort:Random, DstPort:80)
HTTP_Header(GET /HTTP/1.1, Host:google.com..etc)
ممكن تختار اي منفذ TCP أو UDP. الـUDP جيد اذا كنت تنقل بيانات صوت كالـRTP - VoIP مثلا. والـTCP جيد اذا كنت تريده لتبادل ملفات. هذا بحكم تجربة عملية. ليس هذا فحسب، بل ايضا يعتمد على معدل الـdrop rate بين العميل وخادم OpenVPN. إذا كان الـdrop rate او معدل سقوط الـpackets قليل فممكن تذهب مع UDP للجميع الحالات، فهو أخف ولا يحتاج handshake.
آلية OpenVPN من منظور الخادم
داخل الخادم، الـopenvpn process يتنسط على udp1194 بالإعدادات الإفتراضية، أو ممكن تخليه tcp اذا تريد. في البداية لا يقبل الخادم أي بكت، إلا وفقط بعدما تتم عملية الـauthentication. هناك عدة طرق authentication والبرنامج مرن جدا. في هذا الدرس سأتحدث بإذن الله عن أبسطها من منظور الشرح (حتى الطرق الأخرى سهلة التطبيق).
بعدما تتم عملية الـauthentication ويتم تحديد مفاتيح التشفير وفكها، يقوم الخادم بإستقبال البكتس وتمريرها كما يجب بناء على الـrouting table. السؤال الذي يطرح نفسه. أين تتم عملية التشفير وفكه؟
آلية OpenVPN من منظور العميل
العميل لا يقوم بتشفير كل مايدخل ويخرج من المنفذ الفيزيائي، مثلا لنلق ethernet. الذي يحدث أنه سيفتح عنده tunnel interface كذلك. وجميع مايدخل ويخرج منه سيتعرض لعملية الـتشفير وفك التشفير بواسطة البرنامج وبناء على كلمات السر التي تم الاتفاق عليها.
ولهذا السبب، لو تقوم بتشغيل wireshark وتجعله يتجسس على الـtunnel interface ستشاهد كل شيء plain text لماذا؟ لأن البرنامج يقوم بفكر تشفيره عندما يستقبل قبل أن يمرره على نظام التشغيل، وكذلك يقوم بتشفيره بعدما يستقبل من نظام التشغيل وقبل ارساله إلى الـtunnel interfaces.
ولنفس السبب أيضا، لو تقوم بتشغيل wireshark وتجعله يتجسس على الـمنفذ الفيزيائي، مثلا ethernet network card، ستجد أن البيانات مشفرة وماهي إلا udp1194. والسبب أنه لا يحدث تشفير وفك تشفير في هذه المرحلة، فهنا تنظر للبكت مثلما ينظر إليه أي شخص آخر. جميع عمليات تشفير وفك تشفير تتم على الـtunnel interface.
التثبيت بمختلف الطرق
الغرنيق FreeBSD
CONSOLE
cd /usr/ports/security/openvpn
make
make install
rehash
توزيعات Linux
Redhat/Fedora/Suse أو ماشابه
CONSOLE
rpm -i path-to-installation-rpm-package.rpm
debian/ubuntu/linuxmint او ماشابه
CONSOLE
sudo apt-get install openvpn
Gentoo (اقرب لينكس للصواب حسب رأيي)
CONSOLE
emerge openvpn
Windows
نزله من هنا ثم next next حتى ينجلي.
حمل الـtar ball من هنا. ثم:
CONSOLE
tar -xzf path-to-my-lovely-tar-ball.tar.gz
cd path-to-extracted-tar-ball-directlry/
./configure
make
make install
لكن قبل هذا تأكد ان لديك نسخة مثبتة من:
اعدادات الخادم - Server
مقدمة عن X.509 Certificate
أولا وقبل ذي بدء، يجب علينا انشاء Certificate Authority. طبعا عندما نسمع Authority نتخيل شيء ضخم منل جونقار ولا غرانديزر
بينما في الواقع هو عبارة عن ملفين فقط. public key, private key - قضي الأمر.
الذي يحدث كالتالي:
- certificate authority أو ca يعتبر بمثابة الجد الأكبر الذي يسمع كلامه الجميع ويثق به
- الـCA هذا، عبارة عن private key و public key: الـpublic مشهور عند الكل، والـprivate سري لا يعلمه أحد إلا صاحب الخادم ورب الأرباب سبحانه، جل عما يشبهه الأنام.
- خادم الـopenvpn، يحتاج شهادة SSL أو X.509، لذا عليه إرسال طلب وهذا اسمه CSR - Certificate SIgn Request
- الـCA - الجد الأكبر - يستقبل الطلب الـCSR ويقوم بختمه بالـprivate key الخاص به
- الملف الناتج، يكون اسمه certificate for vpm server.
- عندما يقوم العميل بالشبك مع خادم الـopenvpn، يقوم الخادم بإعطائه ذلك الـcertificate. وحتى يقوم العميل بالتأكد أن هذه الشهادة موقعة 100% بواسطة الجد الأكبر الـCA يجب على العميل أن يملك نسخة public key للـجد الأكبر الـCA، وإذا قام بفك تشفير شهادة الـopenvpn server بواسطة الـCA Public key فهذا دليل _قاطع_ أنها كانت موقعة بواسطة الـprivate key للـجد الأكبر.
- يعني ببساطة هناك قانون مع الـRSA (المعادلة المستخدمة في التشفير وفك التشفير بواسطة public/private keys) تنص على أن المفتاحين قابلين للتبادل: يعني ماتم تشفيره بالأول يتم فكه بالثاني، والعكس صحيح. ولهذا السبب اذا قام العميل بفك التشفير بالـpublic key معناه مشفر بالـprivate.
إنشاء الـX.509 Certificate + Private Key للـ Certificate Authority
أين الـpublic key؟ هو داخل شهادة الـX.509.
بما أننا على بيئة يونكس، سواء freebsd/linux، بإمكاننا انتاج هذه الشهادة بواسطة أداة openssl الغنية عن التعريف. لكن من باب التسهيل ولتجنب اخطاء ثغرات الأمان، openvpn يأتي مع مجموعة اسكربتات تقوم بالمطلوب اسمها easy-rsa. تجدها في مجلد معين. مثلا مع الغرنيق Freebsd ومع طريقة التنصيب الآلية يكون في هذا المسار:
CONSOLE
cd /usr/local/share/doc/openvpn/easy-rsa
بقية الأنظمة القضية شبيهة، إذا لم تعلم اين هي استخدم الأمر find / -name easy-rsa وانتظر حتى تحصل على المسار.
ثم طبق الأوامر التالية حتى تصنع certificate and private key للـCA
CONSOLE
./clean-all
. ./vars
./build-ca
السطر الأول حتى يمسح جميع المفاتيح السابقة. صحيح لا توجد مفاتيح، لكن فقط حتى يطمئن قلبي.
السطر الثاني حتى يقوم بتعيين قيم في متغيرات. هذه المتغيرات حتى تعلم الscript التالية عن مسارات الملفات والإعدادات المطلوبة.
السطر الثالث حتى تنشئ certificate/private key للـca. كل ماعليك هو اتباع الخطوات فالإسكربت interactive و يشرح نفسه بنفسه.
الآن لو تنظر إلى مجلد keys ستجد أنه اصبح يحتوي على private key + الـX.509 certificate للـCA.
انشاء الـ private key + X.509 Certificate للـOpenVPN Server
CONSOLE
./build-key-server server
سيسألك أسئلة سهلة مرفقة بشرح. يعني مثل next-next بالوندوز لكن كتابي. وبالتختام سيقوم بصنع Private Key + CSR مصاحب له. وثم يختم الـCSR بواسطة الـCA التي أنشأناها مسبقا. وبعدما يختمه لك ستحصل على شهادة X.509 خاصة للخادم. طبعا ممكن تمسح ملف الـCSR لاحقا إذا شئت لا مشكلة انتهى الغرض منه. المهم الآن لديك private key + certificate
اعداد Diffie-Hellman
حسب معيار rfc5246 فـTLS1.2 يسمح لك بإختيار Cipher suites ومن ضمنها آلية اختيار مفاتيح التشفير والتوثيق من خلال عدة آليات كما هو مذكور في كما في appendix A.5. صحيح أن آلية RSA تستطيع القيام بتكوين المفاتيح، إلا أنه ممكن أيضا تترك هذه الوظيفة لـDH والذي يفعله OpenVPN. يعني RSA فقط للـauthentication و DH لتكوين مفاتيح MAC send/receive encrypt/decrypt. فحتى يعمل Diffie-Hellman بسرعة أكبر، نتجنب انتاج prime-number جديد في كل مرة، فننتجه مرة واحدة ونخزنه في ملف. وهذا بواسطة:
CONSOLE
./build-dh
والناتج ملف اسمه dh-1024.pem وهذا فقط يحتوي على prime number حجمه 1024bit وسيتم استخدامه محل الـp في المعادلة بالأسفل.
من ناحية الأمان، لا يوجد أي تأثير اطلاقا، لأنه في كلا الحالتين فإن الـPrime Number هذا سيتم تبادله بطريقة علنية. وهذا حسب الـalgorithm الخاص بـDH. حيث أن القيم التي ممكن تبادلها علنيا ولا تؤثر في الأمان هي: prime number (p) و group/base (g) والناتج من الـmod. الرقم السري الوحيد هو الـexponent أو الأس.
فخلاصة الكلام، كما ترى، لاخوف إطلاقا من استخدام نفس الـprime-number، فالقضية علنية أساسا في الحالتين.
استخدام الملفات السابقة
الآن، بناء على ماسبق، أنشأنا هذه الملفات السابقة:
- ca.crt
- ca.key
- server.crt
- server.key
- dh-1024.pem
الملفات
الزرقاء، يجب أن تنسخها على الخادم والعميل يدويا.
الملفات
البرتقالية، يجب أن تكون قابلة للإستخدام بواسطة الخادم OpenVPN
الملف
الأحمر، يجب أن تجعله سريا، حتى تمنعه من openvpn، أفضل شيء ضعه في usb disk وضعه في صندوق ثم ابلع الصندوق حتى لا يأخذه أحد
.
هذه الملفات ستكون موجودة في المسار:
CONSOLE
/usr/local/share/doc/openvpn/easy-rsa/keys
انسخها وضعها في مسار يستطيع openvpn قراءته. مثلا مع freebsd، ضعه في:
CONSOLE
/usr/local/etc/openvpn/keys
وثم قم بخلق ملف جديد، اسمه:
CONSOLE
nano my_servers_configuration.conf
port 1149
proto tcp
dev tun
ca /usr/local/etc/openvpn/keys/ca.crt
cert /user/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh-1024.pem
server 10.2.0.0. 255.255.255.0
push "redirect-gateway"
push "dhcp-option DNS 10.1.0.1"
keepalklive 10 120
comp-lzo
auth-user-pass-verify /usr/local/etc/openvpn/auth.pl via-file
client-cert-not-required
username-as-common-name
الأوامر تشرح نفسها بنفسها. ففي البداية نحدد أن الخادم يتنسط على منفذ 1194 tcp و dev tun يعني أن هذا الـvpn سيكون routing وليس bridging. لمعظم المستخدمين اختر tun وانت مغمض العينين. للبعض الآخر ربما يريد bridging حتى يجمع الـbroadcast domains للبروتوكولات القديمة الغير مبنية على IP التي لاتدعم routing.
ثم نحدد الملفات المتعلقة بالتشفير وفك التشفير. بالتحديد ملفات الـTLS/SSL
ثم مدى الـIPs التي يتم توزيعها للعملاء. فالخادم سيوزع من 10.2.0.1 إلى 10.2.0.254. والأمر push "redirect-gateway" سيجعل الخادم يرسل طلب إلى العميل بأن يقوم بتغير الـrouting table عند العميل ويجعل الـdefault gateway مشيرا إلى رقم خادم OpenVPN الإفتراضي والذي أيضا سيكون في المدى نفسه.
push "dhcp-option DNS 10.1.0.1" حتى يحول خادم الـDHCP عند العميل إلى خادم آخر. هكذا ستتمكن من resolve local domain names أيضا.
keepalklive 10 120 يعني ارسل رسالة للتأكد من صحة العميل كل 10 ثواني، وإذا لم تسمع رد عقب 120 ثانية فهذا معناه العميل ميت وتعامل معه وكانه disconnected.
comp-lzo هذا حتى تقوم بضغط البيانات المستقبلة والمرسلة لزيادة الـthroughput. ميزته أنه سريع.
client-cert-not-required حتى يعلم الخادم أن العميل ليس لديه شهادة. اذا لم تضع هذا سيظن الخادم أنك تريد العميل يعطيك شهادة + كلمة سر واسم مرور. فمن باب التسهيل وضعت هذا حتى يكتفي الخادم بتوثيق اسم المستخدم وكلمة السر.
username-as-common-name هذا حتى يقوم الخادم بإستخدام اسم المستخدم كإسم موحد للمستخدم. لأنك إذا لم تفعل هذان سيتوقع الخادم أن يكون الإسم الموحد مستلخص من الـCN من الـX.509 التابعة للعميل (والتي نحن لا نستخدمها اساسا في مثالنا هذا). وهذا الغرض منه ليس للتعريف بالهوية، إنما للإستخدام الداخلي. هذا مفيد مستقبلا إذا أردت استخدام learn-address /path/to/script لكن هذه خاصية أخرى رائعة خارجة عن الموضوع (ربما لاحقا إن شاء الله)
auth-user-pass-verify سيقوم بتمرير اسم المستخدم والكلمة السرية إلى إسكربت خارجي. هذا الإسكربت كتبته بنفسي بلغة بيرل كنموذج حتى أخبركم مدى السهولة والمرونة. وطبعا بكل سهولة ممكن تجعله Integrated مع حسابات Active Directory بواسطة بروتوكول LDAP، الإحتمالات غير متناهية. كل مايقوم به return 0 اذا صحيح، أو return 1 إذا خطأ.
هذا المثال، قمت ببرمجة اسكربت صغير، اسمه auth.pl وهذا يستخدم ملفى text بسيط كـbackend للـauthentication. ملف الـtxt يحتوي على حسابات مستخدمين بصيغة uname

word حيث أن كل سطر يحتوي على اسم مستخدم، وثم نقطتين فوق بعض، وثم الكلمة السرية. اسم المستخدم الثاني يكون نفس الشيء على السطر الثاني، وهكذا..الخ. هذا هو الإسكربت الذي يستخدمه OpenVPN بواسطة الأمر auth-user-pass-verify. الauth.pl يقوم بـreturn code 0 في حالجة النجاح، أو 1 في حالة فشل التعريف.
CONSOLE
#!/usr/bin/perl
use warnings;
use strict;
open (FH, "<$ARGV[0]") or die "unable to open!\n";
my $uname=<FH>;
my $pword=<FH>;
chomp $uname;
chomp $pword;
close (FH);
open (FH, "/usr/local/etc/open/accounts.txt") or die "unable to open account file\n";
my @accounts=<FH>;
close (FH);
foreach (@accounts){
chomp $_;
if ($_ =~ m/^$uname\:$pword$/i){
exit 0;
}
}
exit 1;
لاحظوا فالقضية مرنة _جدا_ وأنت حر تبرمج ماتريد، بأي لغة تريد، طالما أنك تقوم بالجواب بـreturn 0 أو 1 تباعا. هذا الإسكربت كتبته بغرض التعليم وليس بغرض الـbest performance. كما تلاحظ لا يوجد indexing، إذا تريد طريقة أسرع ممكن تستخدم BerkeleyDB مثلا (تعتبر embeded db ويستخدمها العديد من LDAP implementations حتى المغلقة).
اعدادات العميل
كل ما عليك هو، أخذ نسخة من ca.cert ووضعه في مجلد openvpn حيث توجد الإعدادات. والإعدادات ماهي إلا ملف واحد، وهو بالتحديد:
CONSOLE
client # نخبره أنه عميل، وليس خادم
dev tun # مطابق للإعداد في الخادم، سبق الشرح
proto tcp # مطابق للإعداد بالخادم، سبق الشرح
remote vpn.domainname.org 1194 # خادم الفيبي إن الذي سبقنا شرحه بالأعلى
ca /path/to/ca.cert # المسارر إلى شهادة السيرتيفيكيت أوثوريتي
auth-user-pass # مهم جدا، حتى يسأل المستخدم بكلمة سر
comp-lzo # حتى يضغط البيانات.
اعداد واستخدام العميل على توزيعات لينكس و أنظمةBSD
نفس الإعدادات بالأعلى. وحتى تشغله تكتب الأمر
CONSOLE
sudo openvpn --config configfile.cfg
مع freebsd لا يوجد sudo لذا تقوم بـsu.
سيسألك عن اسم المستخدم والكلمة السرية. وفقط.
مبروك عليك OpenVPN مع simplified authentication
اعداد واستخدام العميل على وندوز
نفس الإعدادات بالأعلى. تنزل العميل بالواجهة الرسومية من موقع openvpn.se
ضع الإعدادات في مساره + شهادة الـCA في هذا المسار:
CONSOLE
C:\Program files\OpenVPN\config
بعدها اضغط كلك ماوس يمين على ايقونة openvpn واختر connect.
سيسألك عن اسم المستخدم والكلمة السرية. وفقط.
مبروك عليك OpenVPN مع simplified authentication
Train Signal Windows Server 2008 MCITP Server Administrator 70.646
هذه الاسطوانة التي توهلك لكي تصبح من افضل مهندسي الشبكات على الاطلاق >طبعا مع الجهد والعزيمة والتعلم الصحيح وبعض التضحية < الخاصة في الوندوز سرفر 2008
محتويات القرص
كود:
Windows Server 2008 Server Administrator Training
Course Outline
Video 1
Introduction to the Course
Get a first look at the scenario we will be using throughout the course, learn who your instructor is, and find out what you can expect in the course.
Key Points:
* About the Instructor and Train Signal
* What’s Covered in this Course
* The Globomantics Scenario
* What You Will Need
Video 2
Windows Server 2008 Installation and Upgrade
Learn about the different versions of Windows Server 2008 and dive right into installing Windows Server 2008 from scratch. Plus, we'll install the Active Directory Domain Services role and perform an upgrade from Windows Server 2003 to Server 2008.
Key Points:
* Windows Server 2008 Versions
* Installing Windows Server 2008 from Scratch
* Initial Configuration Tasks (ICT)
* Adding Active Directory Role
* Creating Active Directory Domain Controller
* Server Manager Overview
* Globomantics Network Diagram
* Upgrading Server 2003 to Server 2008
Video 3
Simplifying Installations Using Windows Deployment Services (WDS)
Save time and become more efficient by using Windows Deployment Services to automate installations of Windows Server 2008 and to implement unattended installations.
Key Points:
* Getting Ready for WDS
* Installing DHCP Role
* Installing WDS Role
* Configuring WDS
* Adding Image to WDS
* Setting Up and Deploying Multicast Transmission
* Installing Automated Installation Kit (AIK)
* Creating an Answer File with Windows System Image Master (SIM) Tool
* Running Unattended Installation
Video 4
Installing Windows Server 2008 Server Core
Not everyone has the system resources to implement a full installation of Windows Server 2008. In this video you will learn how to install and configure a command line version of the Server 2008 Operating System called Windows Server Core, which can be implemented on systems that have minimal resources.
Key Points:
* What is Server Core?
* When Should I Use Server Core?
* Installing Windows Server 2008 Server Core
* Installing Core Configurator Utility
* Setting Up Windows Server Core with Core Configurator
* Remote Management
* Downloading, Installing, and Setting Up Remote Server Administration Tools (RSAT)
* Setting Up Secondary DNS Server on Server Core
* Remote Desktop Management
Video 5
Deploying Read Only Domain Controllers (RODC)
Using a typical Domain Controller from a branch office may pose problems such as inadequate physical security, slow logon times, and inconsistent access to network resources. You'll learn how to deploy Read Only Domain Conrtrollers to greatly improve upon these issues.
Key Points:
* RODC Benefits
* Installing Read Only Domain Controller (RODC)
* Testing Replication Between a DC and RODC
* Configuring a Password Replication Policy
* Administrative Role Separation
Video 6
PHP:
http://rapidshare.com/files/214376138/TSWSMSA0110.zip.001.html
PHP:
[CENTER]http://rapidshare.com/files/214376145/TSWSMSA0110.zip.002.html
http://rapidshare.com/files/214376159/TSWSMSA0110.zip.003.html
http://rapidshare.com/files/214376203/TSWSMSA0110.zip.004.html
http://rapidshare.com/files/214376198/TSWSMSA0110.zip.005.html
http://rapidshare.com/files/214376229/TSWSMSA0110.zip.006.html
http://rapidshare.com/files/214376238/TSWSMSA0110.zip.007.html
http://rapidshare.com/files/214376240/TSWSMSA0110.zip.008.html
http://rapidshare.com/files/214376516/TSWSMSA0110.zip.009.html
http://rapidshare.com/files/214376333/TSWSMSA0110.zip.010.html
http://rapidshare.com/files/214377036/TSWSMSA1120.zip.001.html
http://rapidshare.com/files/214377459/TSWSMSA1120.zip.002.html
http://rapidshare.com/files/214377060/TSWSMSA1120.zip.003.html
http://rapidshare.com/files/214377058/TSWSMSA1120.zip.004.html
http://rapidshare.com/files/214377511/TSWSMSA1120.zip.005.html
http://rapidshare.com/files/214377065/TSWSMSA1120.zip.006.html
http://rapidshare.com/files/214377172/TSWSMSA1120.zip.007.html
http://rapidshare.com/files/214377121/TSWSMSA1120.zip.008.html
http://rapidshare.com/files/214377697/TSWSMSA1120.zip.009.html
http://rapidshare.com/files/214377436/TSWSMSA1120.zip.010.html
http://rapidshare.com/files/214377102/TSWSMSA2130.zip.001.html
http://rapidshare.com/files/214377708/TSWSMSA2130.zip.002.html
http://rapidshare.com/files/214377736/TSWSMSA2130.zip.003.html
http://rapidshare.com/files/214377674/TSWSMSA2130.zip.004.html
http://rapidshare.com/files/214377603/TSWSMSA2130.zip.005.html
http://rapidshare.com/files/214377854/TSWSMSA2130.zip.006.html
http://rapidshare.com/files/214379581/TSWSMSA2130.zip.007.html
http://rapidshare.com/files/214379560/TSWSMSA2130.zip.008.html
http://rapidshare.com/files/214380113/TSWSMSA2130.zip.009.html
http://rapidshare.com/files/214379475/TSWSMSA2130.zip.010.html
http://rapidshare.com/files/214380081/TSWSMSA3140.zip.001.html
http://rapidshare.com/files/214379569/TSWSMSA3140.zip.002.html
http://rapidshare.com/files/214379578/TSWSMSA3140.zip.003.html
http://rapidshare.com/files/214379587/TSWSMSA3140.zip.004.html
http://rapidshare.com/files/214379619/TSWSMSA3140.zip.005.html
http://rapidshare.com/files/214380200/TSWSMSA3140.zip.006.html
http://rapidshare.com/files/214379667/TSWSMSA3140.zip.007.html
http://rapidshare.com/files/214379789/TSWSMSA3140.zip.008.html
http://rapidshare.com/files/214379893/TSWSMSA3140.zip.009.html
http://rapidshare.com/files/214380159/TSWSMSA3140.zip.010.html
http://rapidshare.com/files/214380316/TSWSMSA4149.zip.001.html
http://rapidshare.com/files/214380280/TSWSMSA4149.zip.002.html
http://rapidshare.com/files/214380356/TSWSMSA4149.zip.003.html
http://rapidshare.com/files/214380363/TSWSMSA4149.zip.004.html
http://rapidshare.com/files/214380443/TSWSMSA4149.zip.005.html
http://rapidshare.com/files/214380460/TSWSMSA4149.zip.006.html
http://rapidshare.com/files/214380493/TSWSMSA4149.zip.007.html
http://rapidshare.com/files/214380548/TSWSMSA4149.zip.008.html
http://rapidshare.com/files/214380444/TSWSMSA4149.zip.009.html[/CENTER]
…
بالتوفيق لكم …