[LinuxFocus-icon]

الرئيسية  |  الخارطه  |  الفهرس  |  بحث


أخبار

|

أرشيف

|

روابط

|

عن LF

هذا المقال موجود بالـ: انجليزي أسباني  الماني  فرنسي  برتغالي  روسي  تركي  

convert to palmConvert to GutenPalm
or to PalmDoc


[Photo of the Author]
بقلم: جورج تاربورش
 

نبذة عن الكاتب:

جورج أحد المستخدمين القدامى لنظام التشغيل يونكس ( للاستخدام التجاري و المجاني). و هو مهتم جدا بمستوى الأمان و الحماية على الكمبيوتر و لذلك فهو يشكر كل من ساهم في تطوير هذه البرمجيات المجانية لما قاموا به من عمل عظيم في هذا المجال.

العناوين:


 

عبر النفق

نبذة بسيطة:

يعد الغطاء الأمني  the secure sheld SSH " منتج تجاري رائع , فعلى الرغم من أن هناك العديد من التطبيقات المجانية المختلفة لعملاء sshأو خوادمه و التي يمكن استخدامها على نظام يونكس أو على انظمة التشغيل الأخرى إلا أن أفضل تطبيق معروف حتى الآن هو تطبيق SSH المفتوح . و يمكن الحصول عليه من الموقع التالي :http://www.openssh.org حيث ستجد في هذا الموقع العديد من الخيارات سواء لأنظمة يونكس ,أو ويندوز ,أو ماكنتوش .... و لبعض المنتجات لا تجد شيء مجاني سوى عملاء كما في ويندوز.
و في هذا المقال سنتطرق لبعض الأمثلة عن كيفية استخدام ssh لنقل البيانات من و إلى تطبيقات خارجية. و كما نعلم أن الشبكات الخاصة الإفتراضية VPN ( Virtual Private Network) تعتمد على ssh بطرق مختلفة لا مجال لحصرها هنا , و لكن يكفي أن نعلم أنها أكثر تعقيداً من تلك التي نتناولها في هذا المقال.
ومن الحلول البرمجية الأخرى و المعقدة هو استخدام VTun . لذلك دعونا نتعامل مع طريقة النقل هذه كطريقة سهلة و بسيطة لتشفير البيانات من خلال شبكة متباينة الخواص , و ذلك لمنع الاطلاع و التطفل على هذه البيانات. و بالطبع هذه الطريقة قابلة للتطبيق على الشبكات المحلية والبعيدة. و لكن تذكر أن ssh يستخدم لتشفير البيانات فقط , و لا يفيد في حماية شبكتك....
انتبه لذلك!
 



 

لماذا يستخدم ssh ؟

كما ذكرنا في المقال السابق ssh ما هو إلا بديل ل telent أو rsh rlogin, و على الرغم من ظهور بعض المشاكل الأمنيه فيssh إلا أنه يظل أداة حماية جيدة لتشفير البيانات . و بالمناسبة المشاكل التي أقصدها هي تلك المتعلقة بكلمات المرور, لذلك من المهم أن تستخدم بدل منها عبارات مرور , وكذلك تستخدم مفاتيح RSA . فاستخدام ssh لا يعني عدم استخدامك لأدوات حماية أخرى مثل tcpwrapper.
أما استخدام برامج تقليدية و معروفة مثل tcpdump أو snoop يجعل التطفل على البيانات المتنقلة خلال الشبكة أمر في غاية السهولة. و بإمكانك التأكد من ذلك بفحص البيانات المتبادلة بين جهازين مرتبطين بشبكة واحدة حيث يستخدمان على سبيل المثال telnet , بينما الجهاز الثالث -الذي يعمل بنظام التشغيل لينكس- يستخدم tcpdump كجذر (root )...عندها راقب ما يحدث!!! ستتمكن من قراءة جميع البيانات !!!؟؟؟(ملاحظة: لتجريب ذلك يجب أن تتصل الحواسيب الثلاث بمحور أو ناقل. وإذا كان لديك مفتاح تحويل فلن تنجح التجربة, و لكن تظل النتيجة التي نريد الوصول لها ممكنة الحدوث).
و بالطبع سيكون عرض النتائج على الشاشة سريع جدا و من الصعب قرائته , ولكن ليس هناك ما يمنعك من إعادة عرض النتائج و حفظها في ملف حتى تتمكن من قراءتها بتمعن.
و إذا كان هذا ينطبق على البيانات فلا بد أنه ينطبق على كلمات المرور أيضاً , حينها سيكون الباب مفتوحا على مصراعيه امام الكراك , و ستكون انت من يقدم لهم باب منزله على طبق من ذهب.
تخيل أن هذه البيانات المتداولة هي بيانات سرية جداً , و أنت المسؤول الإداري عن نظام الشبكات, حينها أخشى أن يطلب منك مديرك أن تبحث عن وظييفة أخرى في مكان آخر.
فالتحكم عن بعد باستخدام rsh,rcp,rlogin خطير و غير أمن , خصوصاً أن البيانات غير مشفرة . و إذا كان ssh بديل جيد ل rlogin أو rsh , فإن الأمر نفسه ينطبق على scp ليكون هو الآخر بديل جيد ل rcp . عتدها لن تكون في حاجة لاستخدام التحكم عن بعد أو telnet , بل على الأقل يجب أن لا تستخدمهما ما دمت تستخدم ssh.
كيف يتم تحميل ssh ؟ كيف ننشأ أدلة عامة و أخرى خاصة ؟.....في الحقيقة ليس هذا ما سنتطرق لإليه في هذا المقال , و لكن يمكنك أن تجد جميع المعلومات التي تريدها في أرشيف ssh بعد تحميلك له , أو من خلال بحثك في المعلومات المتوافرة في the Linux Documentation Project
و بما ان استخدام الحاسوب اليوم في الغالب لنقل البيانات بطريقة ما أو بأخرى,أصبح إستخدامssh أمرر ضروري , و على أي حال فإن ssh
له استخدامات أخرى جيدة اكثر من مجرد كونه بديل ل telnet أو نظم التحكم عن بعد.
ففضلاً عن استخدامه لتشفير البيانات المنقولة بين تطبيقات خارجية تعمل بأنظمة تشغيل مختلفة. يمكن أيضاً أن يستخدم لضغط البيانات , و غالباً ما يستخدم مع بروتوكولات معينة مثل pop.ftp,http….وغيرها سواء لتشفير البيانات أو لضغطها. و هذه الخاصية مفيدة جداً خصوصاً للمسؤول عن الشبكات حيث يستفيد من هذه الخاصية لنقل البيانات من جهاز الحاسوب المنزلي إلى الآخر الموجود في العمل أو العكس.
وإذا كنت تستخد هذا التطبيق كخادم \ عميل , عندها ستحتاج إلى جهازين ,أحدهما يطبق ssh كجهاز خادم , و الآخر أيضاً يطبق ssh و لكن هذه المرة كجهاز عميل.
و السبب في تنبيهك إلى النقطة السابقة هو لأننا في هذا المقال نتحدث عن البرمجيات المجانية , و العديد من أنظمة التشغيل – ما عدا يونكس- لا يوجد لديها خوادم مجانية . و بالتالي عليك أن تحل هذه المشكلة حتى تتمكن من العمل , و الحل هو عن طريق الإرسال ( سنشرح ذلك لاحقاً). و هذا يعني أن استخدام أنظمة تشغيل مثل ماكنتوش أو و يندوز عدم و جود خوادم مجانية , عندها عليك ان تحل المشكلة مع عملائك لوحدك و بالطريقة التي تناسبك.
 

  الغطاء الأمني SSHوالاتصال الشبكي الافتراضيVNC

إذا كنت لا تعرف VNC فهذا يعني جهلك بواحدة من أهم الأدوات , و بإمكانك إلقاء نظرة هنا لتعرف المزيد عن ذلك.
و بإمكانك الذهاب إلى موقع VNC وهو http://www.research.att.com/vnc/docs.html حيث ستجد شرح تفصيلي عما نتحدث عنه الآن .فعلى سبيل المثال ستجد كيفية استخدامVNC من خلال ssh . كذلك كيف يتصلssh كعميل يعمل بنظام الويندوز بخادم ssh يعمل بنظام يونكس, و بناء على ذلك لن أقوم بإعادة كتابة ما قام به فرانك ستاجون من عمل عظيم في هذا المجال , حيث لن يكون أدائي أفضل منه بأي حال .
إذن دعونا نرى كيف يعمل....
قبل كل شيء عليك ان تختار عميل مجاني لويندوز, و على سبيل المثال سنستخدم Teraterm Pro ذات الامتداد Ttssh . و هو موجود على الموقع التالي: http://hp.vector.co.jp/authors/VA002416/teraterm.html
في الحقيقة هو يسمى Ttssf نظراً لأن هذه النسخة مسموح بها في فرنسا( و لكن الأمور تتغير, و لكن لا تنسى ان العديد من الدول لم تقبل التشفير بعد , وللتأكد من أن قبول دولتك للتشفير أو عدم قبولها لها , قم بزيارة الموقع التالي:http://www2.epic.org/rports/crypb2000/countries.html
و الآن لنفترض أنك ابتدأت كخادمssh على جهاز يعمل بنظام التشغيل يونكس, و نفترض أيضاً أن بإمكانك تشغيل vncserver على نفس الجهاز. و بمجرد أن يبدأ الخادمين في العمل, يمكنك ان تصل جهاز NT إلى خادم يونكس يستخدم Ttssh . وهذا يعني أن لديك اتصال مشفر بين الجهازين. و لكن تذكر أن هذا لن يسمح لك بتشغيل بروتوكول vncviewer المشفر ( vncclient ) من جهاز NT. و لتلافي تلك المشكلة عليك أن توجه ssh لكي يرسل لك المنفذ الصحيج.
يسمى الجهاز الذي يعمل بنظام لينكس و يشغل vncserver يدعى “ bandit” و يستخدم المنفذ 5901 حيث رقم العرض هو 1, أما العرض الافتراضي X لهذه الآله هو 0 . و الاستخدام العادي لذلك هو لإرسال الأوامر "vncviewer bandit" , و بالطبع سيتم ذلك دون حدوث أي تشفير للبيانات.
و بدلاً من استخدام غطاء NT -“shell” NT- و المقصود به الجهاز البيني ل DOS , يرسل الأمر التالي:
/ssh-L5902:bandit:5901" “
مع ملا حظة عدم ترك أي فراغات بين الأرقام و الحروف, و استخدام الأمر السابق يعني أنك أنشأت منفذ داخلي\محلي وهو 5902. و بالتالي فإن استخدام أمر مثل " vncviewer localhost " يقوم بإجراء اتصال مشفر لبوتوكول VNC على جهاز NT . و ما دام Ttssh لديها جهاز بيني رسومي , يصبح بالإمكان القيام بالإجراءات السابقة دون استخدام تلك الأوامر. إذاً علينا أن نضيف هذه القاعدة إلى معلوماتنا فقط فيما يتعلق بTtssh. أما كتابة نفس الأمر السابق لجهاز يعمل بنظام يونكس يكون بالشكل التالي: " ssh-L5902:bandit:5901bandit”
هذا مثال أساسي و مهم , و في الحقيقة يمكنك القيام بالعديد من ألأمور المعقدة , و يمكنك الاستعانة بالملفات الموجودة على موقع VNC, و بالأخص ما كتبه فرانك ستاجاون حيث سجد فيه العديد من المعلومات المفيدة.
 

 

الغطاء الأمني SSH) (و اللغة الاستفسارية الإنشائية المركبة(MySQL)

MySQL هي أحد أكثر اللغات استخداماً في نظام إدارة البيانات , و خصوصاً على الانترنت. أما حماية MySQL فهو موضوع آخر لن نتطرق إليه في هذا المقال. و على الرغم من أن تشفير البيانات المنقولة بين خادم MySQL , و عميل MySQL يجعل الاتصال أكثر أمناً ,إلا أن الغطاء الأمني SSH يؤمن نفس القدر من الحماية , و بنفس الطريقة التي شرحنا من خلالها كيفية عمل VNC, حيث يرسل المنفذ.
أما الآن فسأشرح لكم المثال المتعلق بالانترنت, حيث يكون خادم MySQL هو صندوق لينكس , و معظم العملاء من أجهزة NT . مرة أخرى أذكركم بأننا نستخدم عميل Ttssh على أجهزة تعمل بنظام الويندوز.المنفذ الافتراضي ل MySQL هو 3306 , عندها نرسل نفس المنفذ (3306). و بإمكانك أن ترسل بشكل داخلي , أو تقوم بالإرسال عن بعد. الإرسال المحلي يكون بالصيغة التالية:
"/ssh-L3306:localhost:3306” و ذلك على أجهزة NT أو "ssh-L3306:localhost:3306" على أجهزة يونكس حيث استخدام " localhost” يسمح بإرسال البيانات من خلال جهاز بيني خلفي بدلا ً من جهاز بيني مضيف .
الإرسال عن بعد سيتخذ الصيغة التالية:
" /ssh-R3306:bandit:3306” مع أجهزة NT
ssh-R3306:bandit:3306 ” مع أجهزة يونكس
هذا فيما يتعلق بالاتصال نفسه , أما لكي تدخل إلى إدارة البيانات الأساسية (DBM), فأن هذا يتطلب منك تحديد اسم الجهة المضيفة و اسم المستخدم لخادم MySQL , الذي ربما يختلف عن اسم المستخدم المسجل في جهازك. و للتحقق من ذلك ابحث عن الاختيار"1-" و الموجود في الصفحات الرئيسية للغطاء الأمني. و بالطبع لن تتمكن من القيام بذلك إلا في حالة و جود عميل MySQL على جهاز NT الخاص بك. أما إذا لم يوجد لديك عندها ستحتاج إلى استخدام تطبيق ODBC , مثل Sybase.
ابدا بهذا التطبيق و استخدم محرك ODBC الخاص بك , و ذلك لربطه ب MySQL . و بعد إجراء هذه الخطوة ستصبح قادراً على الاتصال بالمضيف المحلي – و ليس المضيف الخادم ل MySQL- - و ذلك لتتمكن من الوصول إلى خادم MySQL . حيث تم تشفير البيانات المتبادلة بين الخادم و العميل , و بإمكانك التأكد من ذلك باستخدام snoop أو tcpdump.
هذا مثال بسيط ينطبق على الشبكات المحلية , أما إذا رغبت في العمل على الشبكات العالمية , فسيتطلب منك مجهود أكثر. خصوصاً إذا كنت تعمل خلف جدار ناري.
و ربما تكون هذه أحد الطرق الفعالة و المفيدة لمدير النظام لكي يتحكم فيه عن بعد و من منزله , و لكن ربما لا تتوقع استخدام مثل هذه الطرق لاختراق إدارة البيانات الأساسية في موقع ما. لذلك يجب عليك أن تبحث عن ما هو أكثر تعقيداً و تطوراً مثل (VPN).
و على أي حال يجب أن تعرف أن هذا غير كاف لإنشاء خادم إدارة بيانات أساسية آمن لنقل بيانات سرية مثل أرقام بطاقت الإعتماد‍ !! و بالمناسبة , من منكم يثق تمام الثقة بأن لديه خادم آمن جداً , و يمكنه أن ينقل معلومات سرية جداً دون أن يكون هناك أي نوع من المخاطرة ؟؟‍!! شخصياً , لا اعتقد ذلك!!!!!
 

 

الغطاء الأمني و محاكاة الطرف الإعلامي( terminal emulation )

بما أننا نستخد محاكاة الطرف الإعلامي فما المقصود به؟
لنفترض أنك تستخدم تطبيق قديم من كوبول على خادم يونكس , و العملاء أجهزة NT . و أردت إجراء إتصال فستحتاج إلى terminal emulation معقد و مطور أكثر من vt100,vt220,vt320 ,لأن عليهم الحصول على جهاز بيني ملائم للمستخدم. و يقصد بذلك العلامات النطقية , و الجداول..... و المقاييس الثابتة (vt100,vt220....). أماterminal emulation التي تبلغ حوالي 8bit لن تعمل بشكل جيد. و بعد محاولات كثيرة للحصول على المحاكاة المناسبة , و جدنا أخيراً أن "ibm3151” , يعطي أفضل النتائج التي توصلنا إليها حتى الآن!!
و لكن ما دمت تستخدم برنامج قديم و لم يطور منذ فترة , فهذا يعني أنه غير آمن لنقل البيانات السرية , و بالتالي عليك أن تجد طريقة لتشفير البيانات , و بالطبع لن تجد أفضل من ssh . و كما تعلم هناك أكثر من طريقة للقيام بذلك. إما أن تعيد توجيه telnet نحو المنفذ 22 (ssh) , أو أن ترسل منفذ (terminal emulation). و لكن أخشى أن لا يقبل الخادم إعادة توجيه منفذ telnet ( المنفذ الافتراضي هو 23 ( من قبل المستخدم العادي. و تطبيق المحاكاة يمكن ان يستخدم من قبل أكثر من مستخدم في نفس الوقت , حيث تستخدم منافذ مختلفة لكل اتصال.أي 10 مستخدمين يعني استخدام 10 منافذ.
أليس هذا نوع من المخادعة؟؟؟
إذن قبل كل شيء لابد أن يكون خادم التطبيق , لديه خادم ssh حيث يعمل علىالمنفذ 22.
بعدها قم بإجراء إتصال بين عميل NT و خادم التطبيق سواء كان يستخدم Ttssh أو سطر الأوامر “ command line” . و بذلك تجري إتصال آمن بين الخادم و العميل لمستخدم واحد. و من الاختيارات التابعة ل Ttssh ترسل المنفذ المحلي 50000 إلى المنفذ( telnet ) 23 و الموجود على الخادم البعيد. أما سطر الأوامر فلابد أن يتخذ الشكل التالي : “ssh-L50000:servername:23” . عندها يمكنك ان توجه terminal emulation للعمل من خلال المنفذ 50000 بدلاً من المنفذ 23. و ذها يعني تبادل البيانات عبر قناة آمنة أي تشفير البيانات , و ذكرنا في خطوة سابقة كيف تتأكد من تشفير البيانات.
و لا يخفى عليك أنه يجب اتخاذ نفس الخطوات السابقة لكل عميل يمكنه الاتصال بالتطبيق مع تغيير رقم المنفذ المرسل , فعلى سبيل المثال تكتب 50002,50001........ وهكذا.
ربما أنك تتساءل الآن لماذا استخدمنا منافذ عالية ؟ في الحقيقة يعود ذلك إلى عدة أسباب!!
مما لا شك فيه أن السبب الرئيسي هو قدرتك على التعامل مع منافذ عالية دون تثبيت. أما السبب الآخر هو أن المنفذ الذي و قع عليه الاختيار يجب ان لا يكون قيد الاستعمال على الجهازين.مثلاً لو كان الخادم يشغل Solaries فهذا يعني استعمال العديد من المنافذ العالية و فقاً للخوادم التي تعمل. و بالتالي لا بد من تشغيل المنفذ 50000 و ما فوق. وهذا يعني أن عليك التحقق من المنافذ المستخدمه قبل أن تقوم بالإرسال.
و بالطبع نفس الشيء ينطبق على أنظمة التشغيل الأخرى التي تقبل ssh على عملاءها. أما ما يتعلق بأتمتة هذه العملية على أجهزة العملاء , فهو عائد إليك سواء رغبت بذلك أم لا. فمن غير الممكن ان تطلب من مستخدم عادي أن يقوم بكل تلك الخطوات السبقة قبل إجراء أي اتصال!!
 

 

ماذا نفعل الآن؟

هذه الأمثلة البسيطة توضح لنا الاستخدامات الهائلة و المختلفة للغطاء الأمني. فبإمكانك القيام بأكثرمن ذلك باستخدام التطبيقات و الغطاء الأمني , و هذا حسب احتياجاتك , على الرغم من ان الفكرة هي نفسها ,ألا و هي إرسال المنفذ. و لكن انتبه لو كان إرسالك متشابك نوعاً ما , أي لو افترضنا أنك ترسل من خلال جهاز ثالث فإن المعلومات المتداولة في الاتصال الأوسط لن تكون مشفرة.
أما العائق الآخر الذي يواجه عملاء ويندوز المستخدمين ل Ttssh. هو اعتماد الاتصال المنشأ لإرسال المنافذ على عنوان IP , كما هو الحال مع أوامر التحكم عن بعد. و بالتالي يكون جهازك عرضة للهجمات , عندها ستحتاج استخدام برنامج حماية آخر بجانب ssh , مثل tcpwrappers . و لتتعلم المزيد عن ssh حاول قراءة كل جديد عنه ,
 

  على الأقل تمت حمايته!

حماية الجهاز من الفيروسات و الهجمات أمر يشغل بال كل مستخدمي الكمبيوتر و و لكم ليسس الغطاء الأمني أداة الحماية الوحيدة التي يمكنك استخدامها كل يوم– و هذا بالطبع لايقلل من اهميته كوسيلة تشفير و ضغط للبيانات- و لكن الغطاء الأمني يعد أداة غير مجدية طالما انه غير قادر على مواجهة الثغرات والمشاكل العديدة و الهائلة الموجودة سواء على الجهاز او الشبكة. فحماية الجهة المضيفة او الشبكة هو امر صعب و و أدوات مثل تلك ليس باستكاعتها القيام بكل شيء حتى و لو كانت جيدة نوعاً ما.
فالمهمات الأساسية تعد ضرورية حين يتعلق الأمر بالحماية . لذلك لا تنسى إزالة أي خدمات غير مستخدمة و و تحقق من برامج SUID root
قم بتعطيل البرامج المحفوفة بالمخاطر............. و الكثير من الأشاء المعروفة و التي يتوجب عليك القيام بها.
بإمكانك أيضاً تحميل حميع برامج و وسائل الحماية المختلفة , حيث ستكون جميع الخطوات السابقة غير مجدية لو تركت باب خلفي أو أكثر مفتوح و مترو ك بلا حماية.
أما الآن دعونا نكمل الحديث عن الغطاء الأمني , و لنفترض أنه أداة لا يمكنك الاستغناء عنها بأي حال – طالما أنك تستخدمها بالشكل الملائم و للأغراض التي صممت من اجلها. فإذا كنت كذلك فلا تنسى استخدام عبارات المرور و مفاتيح RSA . فلا تستخدم كلمات المرور. راجع الاتفاقيات الموجودة في ملفات الغطاء الأمني المختلفة و الموجودة في الدليل الخاص بها , أيضاً راجع الاتفاقية الخاصه بالدليل نفسه... و مرة ثانية و ثالثة استخدم على الأقل wrappers !!
تذكر بإمكانك أن تمررعبر الغطاء الأمني العديد من البروتوكولات الموجودة . و هذا مفيد لإجراء اتصال آمن بشكل أكثر من ذي قبل.
و هناك استخدام آخر شائع للغطاء المني لم نتحدث عنه هو X session forwarding . حيث الحرف X يعني تشغيله على انظمة انظمة تشغيل مختلفة . حيث تعمت عدم التطرق لهذا الموضوع . و لكنه موجود ضمن استخدامات البرونوكولات. X لايوفر تلك الدرجة من الحماية التي يوفرها shh . و لكن الغطاء الأمني لا يكفي في الاستخامات المتطورة و المعقدة. و كما ذكرت سابقاً تحقق من VPNs أو أدوات مثل Vtun. حيث ستساعدك .
أخيراً و ليس آخراً , تحقق من وضع التشفير في بلدك , لأنه من المؤسف أن تدخل السجن كجاسوس بسبب استخدامك لssh
 

تعقيبك على هذا المقال:

اضغط الوصلة أدناه اذا أردت التعقيب على هذا المقال
 

 صفحة التعقيب 


الصفحات تحت رعاية الفريق الفني للينكس فوكاس
© Georges Tarbouriech, FDL
LinuxFocus.org

اضغط هنا للتنبيه عن خطأ أو ارسال ملاحظاتك الى لينكس فوكاس

المترجمين:

en

->

--

Georges Tarbouriech

en

->

en

Lorne Bailey

en -> ar ريم خالد الزامل

2001-05-01, generated by lfparser version 2.13