تغيير كلمة مرور المستخدم الجذر (root) يوميا !
بسم الله الرحمن الرحيم
أعود لكم اليوم وبعد انقطاء طويل عن التدوين بموضوع صغير وخفيف وسريع وهو من فكرة أخي طاهر عيسى أحد زوار المدونة.
كيف لي أن أقوم بتغيير كلمة مرور المستخدم الجذر كل يوم أو كل شهر أو كل ساعة مثلا !؟
الجواب بسيط طبعا، الفكرة في تنفيذ هذا الأمر هو استعمال خصائص CronTab وسكربت bash بسيط للغاية.
أولا نبدأ بكتابة السكربت bash، يحتوي السكربت على متغير يحتوي كلمة مرور قوية عشوائية (تُنشأ من جديد عند كل تنفيذ للسكربت) تحتوي رموزا وأرقاما وحروفا كبيرة وصغيرة، بالاعتماد على الجهاز الوهمي urandom، الكتابة البرمجية لهذا تكون على هذا النحو:
1 | PASS=`</dev/urandom tr -dc "A-Za-z0-9*-/+.*=_\|\\#" | head -c16` |
ولتغيير كلمة المرور الخاصة بالجذر إلى المولّدة بالأمر السابق نستعمل الأمر passwd على الشكل التالي:
1 2 3 4 | passwd root<<SILENCKER $PASS $PASS SILENCKER |
لأن تغيير كلمة المرور تتطلب كتابتها وإعادة كتابتها مرة أخرى، بعدها نرسل كلمة المرور الجديدة عبر البريد الالكتروني إلى مدير الخادم بالأمر -طبعا مع تغيير البريد الالكتروني الموجود في الأمر-:
1 | echo "The new password is: $PASS\n" | mail -s "Password Changed in $HOSTNAME" silencker@gmail.com |
ملاحظة للمبتدئين: الأوامر متسلسلة لأنها تعتمد على المتغير PASS لذلك لا يمكن استعمال الأوامر كل على حدة إلا بفهم منطقها.
فينتج السكربت النهائي:
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash PASS=`</dev/urandom tr -dc "A-Za-z0-9*-/+.*=_\|\\#" | head -c16`; passwd root<<SILENCKER $PASS $PASS SILENCKER echo "The new password is: $PASS\n" | mail -s "Password Changed in $HOSTNAME" silencker@gmail.com; |
الاستعمال التطبيقي:
حمل السكربت إلى سيرفيرك عبر الأمر:
1 | wget http://www.silencker.com/files/pass.sh -O /root/pass; chmod +x /root/pass |
قم بفتح الملف وتغيير البريد الالكتروني إلى بريدك الخاص.
بعدها قم بإضافة أمر تشغيله إلى crontab بالمدة الزمنية الفاصلة التي تريد، سوف نستعمل فاصل زمني يقدر بيوم واحد، طبق الأمر crontab -e وقم بإضافة السطر التالي في آخره:
1 | 0 0 * * * /root/pass |
سوف يقوم بتنفيذ السكربت على الساعة الصفر، للاستزادة في موضوع crontab تصفح الرابط .
الشرح مقدم من أخوكم SilenCker
يوم 9 جوان 2010 الموافق لـ26 جمادى الثانية 1431

8 ردود
السلام عليكم ورحمة الله
شكرا اخي العزيز على تدوينتك الرائعه حقا
لقد ساعدتني كثير في هذه التدوينه فيما كنت ابحث عنه
لك كل التقدير وجاري التجربه بأذن المولى
وعليكم السلام ورحمة الله
أهلا بك أخي طاهر في المدونة، ومتواجد للخدمة دائما
.
أخوك.
السلام عليكم اخي الكريم
خطرت ببالي فكره صغير لتطوير السكربت
كالتالي
بعد تغير كلمة المرور للجذر يغير ايضا البورت الخاص بالشل
مثا يقوم بفحص هل مثلا البورت 8745 مش محجوز فيغيره في كونفيج ssh
واذا كان محجوز بدور على غيره ما رأيك ماذا اضيف ليعمل بشكل صحيح
طبعا كلمة مرور الجذر عشوائي والبورت ايضا يختار عشوائي حدد له رينج خاص مثلا يبحث فيه الي بكون اغلب الخدمات ما بتستخدمة
ويرسلهم برساله واحد الى ادمن السيرفر
وكمان سؤال ثاني حاليا لما ندخل على
silencker.com
بحولك تلقائي الى
http://www.silencker.com
جميله وجدت انه في الاباتشي هذا الخيار لكن لا يحول تلقائي
هل لي بطريقة الصحيحه لو سمحت
والسلام عليكم
السلام عليكم ورحمة الله
نعم يمكن فعل هذا طبعا، فقط يجب علينا مراعاة الجدران النارية بأنواعها وما إلى ذلك، فحتى لو قمنا بالسماح للبورت الجديد عبر قوانين iptables مباشرة فإنه وبإعادة تشغيل للجدار الناري (البرمجية المتحكمة في iptables مثل bfd,csf ..) سوف تعاد قوانين هذه الأخيرة للعمل ويغلق البورت في حال لم يتم وضعه في قوانين هذه الجدران أيضا … ولهذا يجب علينا مراعاة كل جدار على حدة وما أكثر هذه الجدران
بخصوص تحويل www فيتم عملها بقوانين بسيطة لـ mod_rewrite في ملف .htaccess أو في ملف httpd.conf مباشرة.
أخوك.
بارك الله فيك اخوي العزيز
رآئع بجد
جميل اخوي silencker
يعني افهم من كلامك انه ما في امل من عمل الاقتراح الثاني مثلا لو كنا مركبين csf
اوكي ما في مشكله هي مجرد اقتراح كان للحماية
تسلم ايدك
وهل قلت ما فيه أمل ؟
.
بل قلت يمكن لكن علينا مراعاة جميع الجدران النارية، أو مراعاة الجدران النارية المعروفة وحظر تركيب السكربت على الأنظمة التي تستعمل جدار ناري غير الجدران المدعومة فهذا أبسط وأسهل أليس كذلك
أخوك.
شكرا جزيلا على هاذ المعلومات القيمة اخي