Silencker rtLCL مسجل الأوامر في الوقت الحقيقي !

الكاتب: SilenCker في 23 يونيو 2010

بسم الله الرحمن الرحيم


لعلك سألت نفسك يوما هذا السؤال:

هل يمكنني تسجيل جميع الأوامر التي تُطبق على نظامي سواء أكانت تُطبق مباشرة عبر shell او مخفية في برامج أو سكربتات، بدون استعمال ميكانيزم history فهي تحذف وتعطل بسهولة !؟

نعم اليوم يمكنك فعل هذا وأكثر مع Silencker rtLCL وهو اختصار لاسم (Silencker Real-Time Linux Commands Logger)، يُمكِّنُك البرنامج من تسجيل الأوامر وإرسال الأوامر إلى بريدك الالكتروني بالعدد الذي تشاء، مثلا يمكن للبرنامج أن يقوم بعد تسجيل 100 أمر أن يرسلها لك، كما بامكانك تغيير القيمة لتصبح ألفا أو خمسون أو عشرة أو حتى خمسة :) .

خصائص البرنامج:

  • لا يعتمد على ميكانيزم history الخاصة بنظام التشغيل.
  • يمكنه تسجيل أي أمر يُطبق في النظام بصلاحيات الجذر حتى الأوامر التي تطبق بين أسطر البرامج (أي أمر ينفذ بواسطة دالتي النظام execve وexecv).
  • يمكن تخصيصه بحيث يسجل الأوامر التي تنفذ في shell فقط (الأوامر التي يكون أبوها المباشر -ppid- هو اتصال ssh أو برنامج terminal ..الخ).
  • يمكن تخصيص عدد الأوامر التي ترسل في الدفعة الواحدة إلى البريد الالكتروني الخاص بمدير النظام.
  • يسجل الأمر وتاريخ تطبيقه ووقت تطبيقه بالثواني كما يسجل رقم العملية الأب وكذا مسار التنفيذ.
  • مخفي جدا فأصلا هو عبارة عن مكتبة مشتركة وسكربت مرشِّح.
  • التركيب والحذف سهل جدا فهو يتم عبر ملفين معدّين لهذا الغرض.

يمكن استعماله في أنظمة GNU/Linux مجرب على توزيعتي Ubuntu وكذا CentOS ويعمل -نظريا- في جميع التوزيعات الأخرى.

تركيب البرنامج:

أعددت لتركيب البرنامج سكربت يقوم بالمهمة، فتركيبه واعداده يتم بهذا السكربت الذي يجعل تركيب البرنامج سهلا جدا، قم بتحميله عبر الأمر :

1
cd /usr/src/; wget http://www.silencker.com/SilenCker_rtLCL.tar.gz

قم بفك الضغط عنه والدخول إلى المجلد الخاص به عبر الأمرين :

1
2
tar -zxf SilenCker_rtLCL.tar.gz
cd silencker*

لو طبقت الأمر find . سوف تجد الملفات التالية:

1
2
3
4
5
6
7
8
9
10
11
.
./silencker
./install.sh
./logger
./logger/config.h.in
./logger/configure
./logger/configure.ac
./logger/silencker.c
./logger/Makefile.in
./logger/configure.ac.generated
./uninstall.sh

بعدها وللبدأ في التركيب قم بتنفيذ الأمر التالي:

1
sh install.sh

سوف يبدأ بالفحص وبعدها يسألك عن بريدك الالكتروني، اكتب بريدك الالكتروني كاملا وصحيحا فسوف تصل الأوامر المطبقة إليه.

بعدها يسألك عن عدد الأوامر التي يرسلها لك في الرسالة الواحدة، يمكنك تغيير القيمة من 100 إلى أي قيمة تريد (أنصح بقيمة تفوق أو تساوي 20 على الأقل)، إذا لم ترد تغيير القيمة الافتراضية إضغط على Enter بدون ملأ السؤال.

بعدها يسألك إذا ما كنت تريد أن تسجل الأوامر التي تطبق في shell مباشرة فقط أم كل الأوامر، إضغط على Enter مباشرة إذا كنت تريد أن تسجل الأوامر التي تنفذ في shell فقط، وإذا كنت تريد أن تسجل كل الأوامر فقم بكتابة صفر 0 واضغط على Enter ، إذا اخترت الحالة الأولى (الافتراضية) يقوم البرنامج أو سكربت الترشيح بتسجيل الأوامر التي أبوها (ppid) أو جدها :) (ppid of ppid) هو sshd أو terminal …الخ، وغالبا تكون الأوامر في الخوادم تملك أبا هو برنامج sshd .

بعدها يقوم البرنامج بإكمال التصنيف والتركيب للمكتبة وسكربت الترشيح.

الإزالة:

الإزالة سهلة جدا بفضل السكربت الذي قمت بكتابته لهذا الغرض، يمكنك الدخول إلى مجلد البرنامج (نفس المجلد الذي دخلت إليه عندما بدأت التركيب)، إذا اتبعت الشرح الموجود في الأعلى بتفاصيله فيمكنك الدخول إلى المجلد عبر الأمر التالي:

1
cd /usr/src/silencker*

وطبق الأمر :

1
sh uninstall.sh

وسيقوم السكربت بإزالة البرنامج.

ملاحظات:

يمكنك التعديل على ملف الترشيح لكي ترشح ما يناسبك فقط لكن احذر من التعديل على المنطقة التي عليها التحذير إلا إذا أردت أن تغيِّر قيم المتغيرات فقط بدون حذف أي سطر أو تغيير ترتيب الأسطر في المنطقة لأن أي تغيير قد يسبب توقف نظامك تماما عن العمل لأن أي أمر يُطبق يستطيع أن يسبب دورة لا نهائية من الأوامر وهذا (أشبه بقنبلة fork)، لذا فقد حذرتك من التعديل بدون علم.

تجد سكربت الترشيح بعد التركيب في المسار :

1
/bin/silencker

لا تقم بتغيير اسمه أو مساره، ولا تقم بالتعديل على البرمجية (silencker.c) إلا إذا كنت ملما بفكرتها وخاصة الاستثناءات الموجودة بها.

لا تقم بحذف المسار :

1
/home/Silencker_strLCL/logs/

قبل أن تقوم بإزالة البرنامج وإلا فسوف تقع في مشكلة الأوامر التكرارية فهذا المسار أحد الاستثناءات.

إذا كانت لديك -أخي القارئ- أيّة اقتراحات فيمكنك مراسلتي بها وقتما تشاء.

ملاحظة: الصورة الموضوعة في الأعلى صنعتها ببرنامج اكتشفته اليوم مجاني ومفتوح المصدر يعمل على توزيعات GNU/Linux اسمه Fotowall وهو جميل جدا :D .

الشرح مقدم من أخوكم SilenCker
يوم 24 جوان 2010 الموافق لـ11 رجب 1431

مقالات عشوائية

    14 ردود

  1. طاهر قال:

    ما شاء الله وكان اخوي العزيز
    صدق انت رائع بكل معنى الكلمة جزاك الله كل خير لما قدمته في هذه المدونه
    لم استطع ان اقرأ الموضوع قبل ان ارد عليك اخي
    ما شاء الله عليك عمل احترافي فعلا

  2. TheRiLi قال:

    أعتقد أنني بدأت أفهمك يا أخي silencker أنت تريد أن تقول أن كل شيء متوفر فاللينكس ، ولكن أعتقد أنك مبدع وربي ، ماني شايف إلا أنت اللي تكتب في هاذ المجال.
    أغلب العرب وأصحاب المدونات ، مواضعهم سخيييفة ، ومو لاقيين حالهم فيها حتى ، أتمنى أن نرى تدوينات موجهة لبقية الشعب يا شيخ ، كفاية تمييز عنصري أنت للحين تكتب تدوينات للكبااار في عالم اللينكس ، ما رأيك أن تكتب تدوينات يفهمها الصغاار.
    وهاد هو سبب هروب الناس من هذه التدوينة : الضغط العالي هووون :) سلااامي.

    نصيحة الأسبوع : خفض الضغط يا زلمة :)

  3. طاهر قال:

    ما شاء الله البرمجيه تعمل على اكمل وجهة اخي الكريم وتم تجربتها
    وان شاء الله نراه المشروع متواجد في sorceforg + google code
    اخي العزيز TheRiLi
    بالعكس انا برأيي ان الشخص لم يبحث عن الامور المتقدمة لن يستطيع ان يحب انظمة لينوكس لأنه لم يعرف ميزاتها
    فعلا صدق من قال عنها os freedom
    عزيزي بالنسبة للمدونات الاخرى فهي ارحم مما يقال في المنتديات اذهب الى المنتديات وانظر بأم عينك
    الحمدلله بحياتي لم اشترك بمنتديات فقط اكتفي بالمرور كزائر على المنتديات لما لها من نقاشات لا تسمن ولا تغني من جوع
    بالنسبة لي متابع لأكبر المدونات العربية وخاصه هذه المدونه التي ان شاء الله ستصبح احد اكبر المدونات على الصعيد العربي

  4. TheRiLi قال:

    لقد قمت اليوم أخيرا بإقناع نفسي بالقيام بزيارة “عمل” للينكس ، وبحكم أنني ثبت من قبل كل من أوبنتو وأعجوبة -فيدورا العربي- ، فلقد إخترت الأول لأن به “طرفية” واحدة متأكد من أنها تعمل بشكل جيد ، بينما الأعجوبة ففيه طرفيتان إحداهما إسمها :”Terminal” والأخرى “الطرفية” وهذا شيء مخيف ، لأن وبتجربتي الخاصة الرد على الأوامر يختلف بينهما ، على كل لم أحاول أن أفهم الكثير عن هذا الأمر …

    لقد قمت خلال زيارة العمل هذه بتجربة هذا البرنامج “الخبيث” المسمى : Silencker rtLCL ، ووقفت عند أفضع التجارب القاسية التي ممرت بها في حياتي ، فلقد كنت متذمرامن إسم البرنامج الذي يحمل نفس إسم هذه المدونة وللأسف فتطيري وقع بالفعل وكانت النتيجة مخيبة للآمال :

    ┏━┓╻╻ ┏━╸┏┓╻┏━╸╻┏ ┏━╸┏━┓
    ┗━┓┃┃ ┣╸ ┃┗┫┃ ┣┻┓┣╸ ┣┳┛
    ┗━┛╹┗━╸┗━╸╹ ╹┗━╸╹ ╹┗━╸╹┗╸ real-time Logger System

    Silencker Real-Time Linux Commands Logger / Notifications by Emails
    WebSite: http://www.silencker.com/
    Contact: silencker@gmail.com

    Verifications:
    [+] Root privileges
    [+] GRSecurity not installed
    [-] ‘mail’ command not exist in your server !
    root@TheRiLi:/usr/src/silencker rtLCL 1.0#

    [ ألا يوجد إمكانية محاذات النص على اليسار ؟؟ ]

    وبالمناسبة كنت حزينا جدا لقراءتي:
    ‘mail’ command not exist in your server

    ولهذا فالفكرة تكمن في أنك تعتمد بشكل أساسي على إرسال بريد إلكتروني ، بينما من الأحسن أن تجعلها تعتمد بشكل أساسي على تخزين الأوامر المسجل إلى ملف محمي بكلمة سر مثلا ومن ثم إرسالها عند نهاية كل جلسة إلى البريد المطلوب ، إن توفر خادم بريد إلكتروني ، ما رأيك ؟؟

    بالإضافة إلى أنني أطالب بنسخة جديدة تكون خالية من إسمك لو سمحت :) لا أريد أن أرى SilenCker هنا في حاسوبي ، نذاله … >> المسكين مقهوووور

    • SilenCker قال:

      يبدوا أنك -أخي العزيز- TheRiLi حاد الطباع :)

      اسمح لي صديقي العزيز أن أخبرك بأن طلبك توفره لك ميكانيزم history مع تعديل بسيط في ملف .bash_logout ، أنا لم أرد أن أقوم بهذا الشيء الاعتيادي والبسيط، وإنما أردت أن أبرمج برنامجا يعمل بشكل متوازي مع ميكانيزم history بدون أن يعتمد عليه، وهو يقوم أساسا بإعادة كتابة دالتي النظام execv و execve بحيث تسجل جميع الأوامر التي تمر عليهما، كما أنه مخصص لإرسال الأوامر إلى البريد الالكتروني ويركب أساسا على السيرفيرات، ولا يعقل أن سيرفر لا يحمل برنامج إرسال.

      بخصوص طلبك قم بتركيب خادم Exim4 مع تعديلات في ملف passwd.client لكي تقوم بتضمين خادم smtp يرسل من خلاله الكمبيوتر الخاص بك، فكما تعلم أن شبكات الربط بالنت العربية لا تسمح بإرسال الرسائل.

      تحياتي صديقي الحاد:) .

  5. TheRiLi قال:

    وهذه صورة لتجربتي الفاشلة :
    http://i33.servimg.com/u/f33/12/73/36/90/hate-u10.gif

    وبالمناسبة البرنامج السابق الذكر لم أتمكن من العثور عليه ضمن مكتبات الأوبنتو المدمجة ، هل لك أن تدلنا عليه يا محترف :)

    • SilenCker قال:

      سكربت التركيب صديقي، جعلته يراقب كل صغيرة قبل التركيب للتركيب الآمن بدون مشاكل بعد التركيب، ولذا يقوم بفحص جميع البرامج التي يتطلبها للتشغيل، وهو يخبرك أن جهازك لا يتوفر على الأمر mail ولذا لن يعمل معك Silencker rtLCL بالشكل المطور لأجله.

      لا تنسى أن البرمجية تحت ترخيص LGPL يمكنك تطويعها لتعمل حسب متطلباتك.

      أخوك.

  6. R0R14 قال:

    بارك الله فيك أخي على هذا العمل

    تقبل تحياتي الخالصة

  7. yasMouh قال:

    لا تعليق …. ابداع x ابداع

    بارك الله فيك ونفع بك

  8. Dz-Himaia قال:

    ما شاء الله

    الحقيقة إستفدت كثيرا
    الله يوفقنا جميعا

  9. اول مرة ادخل هذه المدونة

    شرف لي فعلا و خصوصا المواضيع الجبارة
    رأيت آخر موضوعين لكن يظهر انك خبير و الحمد لله

    سأرى ان لديك قائمة بريدية و ان لم تكن يرجى عملها :)

  10. webdev قال:

    سلام الله عليكم و رحمته و بركاته

    ما شاء الله تبارك الله لا قوة الا بالله ، كما قال الإخوة مبدع !

  11. محمد قال:

    نريد شرح الحماية من الاتصالات العكسية

    • SilenCker قال:

      إن شاء الله أخي محمد، اذا كنت تريد الحماية في طبقة الشبكة، ببساطة يجب أن تنظر في الجدار الناري وبالضبط في منع المنافذ البعيدة Outgoing TCP ports، لكن ! .. قد تتسبب في مشاكل في الاتصال، مثلا السكربتات التي تعتمد على rss لا يصبح بمقدورها الاتصال لجلب الخلاصات، هنا يجب عليك أن تقوم بالسماح بالاتصال بالمنفذ 80، بعد فعلك لهذا سيصبح كل ما قمت به بدون فائدة.

      ولهذا يجب أن أفكر وأنت في الحماية عبر طبقة أخرى.

علق على المقال

التعليق