مقایسه زمان پاسخ‌دهی دی‌ان‌اس در شرایط مختلف

دی‌ان‌اس کارکرد اصلیش تبدیل آدرس دامین به ip سرور هست، وقتی وارد سایتی می‌شید و اسم اون رو تایپ می‌کنید، در پشت صحنه این آدرس باید تبدیل شه به آی‌پی و این بسته به دی‌ان‌اس سروری که دارید ازش استفاده می‌کنید و همینطور کشوری که درونش هستید زمانی رو می‌بره. هر چه این زمان کوتاه تر باشه یعنی دستکاری کمتره و سرعت بیشتر و کار با اینترنت دلچسپ‌تره.برای مقایسه، روی سروری که دستم بود یک دی‌ان‌اس سرور نصب کردم با برنامه ساده‌ی dnsmasq که فایل کانفیگش دو تا خط هم لازم نداره :)

listen-address=0.0.0.0
bind-interfaces

 کافیه پورت ۵۳ رو  باز بذارید و برنامه رو اجرا کنید و بعد هم سمت کلاینت (اگر لینوکس هستید) فایل resolv.conf رو تغییر بدید به آی‌پی سروری که در اختیار دارید داخل سرور هم میتونید دی‌ان‌اس رو به ۱۲۷٫۰٫۰٫۱ تغییر بدید تا خود سرور هم از دی‌ان‌اس سرور خودش استفاده کنه.

برای انجام این تست از برنامه ترمینالی dig استفاده میکنیم، بهتره ادرس سایتی رو وارد کنید که قبلا وارد نشدید تا مطمئن باشید سیستم از کش استفاده نمی‌کنه.

اگه از این ابزار بدون هیچ آرگومانی استفاده کنید،‌ به صورت خودکار از dns اصلی سیستم که اون رو در فایل resolv وارد کرده باشید استفاده میکنه و از این جهت آزمایش خیلی خوبیه برای اینکه مطمئن باشید دی‌ان‌اس که دارید استفاده می‌کنید همونی هست که مد نظرتونه.

dig archlinux.org
;; Query time: 197 msec
;; SERVER: server’s ip#53(server’s ip)
;; WHEN: Thu Apr  ۴ ۱۹:۲۹:۴۳ ۲۰۱۳
;; MSG SIZE  rcvd: 31

اما حالا فرض کنید می‌خوایم با دی‌ان‌اس سرور گوگل این تست رو انجام بدیم.

dig @8.8.8.8 archlinux.org
;; Query time: 270 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Apr  ۴ ۱۹:۳۵:۳۲ ۲۰۱۳
;; MSG SIZE  rcvd: 58

در تست اول از دی‌ان‌اس شخصی استفاده شده و برای همین ip رو مخفی کردم :) سرعت زیر ۲۰۰ میلی ثانیه بوده اما با استفاده از گوگل سرعت به ۲۷۰ میلی ثانیه رسیده و این نشون میده داخل ایران استفاده دی‌ان‌اس سرورهای شناخته شده فکر خوبی نیست.

اما همین کار رو می‌شه سمت سرور که توی کشور آزادیه هم انجام داد و نتایج رو مقایسه کرد با داخل ایران!

dig archlinux.org
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Apr  ۴ ۱۵:۰۹:۵۷ ۲۰۱۳
;; MSG SIZE  rcvd: 31

فوق العاده‌ست :) وقتی از دی‌ان‌اس سرور داخلی استفاده میشه سمت سرور سرعت به صفر میلی ثانیه می‌رسه!‌

و با استفاده از گوگل هم این نتیجه رو خواهیم داشت.

dig @8.8.8.8 archlinux.org
;; Query time: 17 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Apr  ۴ ۱۵:۱۲:۱۱ ۲۰۱۳
;; MSG SIZE  rcvd: 47

بله زمان پاسخ دهی در ایران ۱۵ برابر بیشتره :) ۱۵ برابر زمان بیشتری رو از داخل ایران باید منتظر بمونید تا یک آدرس ساده به آی‌پی‌ تبدیل شه! هر پکتی که وارد ایران می‌شه  باید  از داخل هزارتوهای پیچ در پیچ فایروال و روترهای مختلف عبور کنه و توسط آدمای مختلف و سیستمای مختلف شنود بشه که یک وقتی شما وارد سایتی که به مذاق آقایون خوش نمیاد نشید.

اینم تمام نتایج در یک عکس

dnsTest

اینجا لیستی از دی‌ان‌اس سرورهای معروف و رایگان لیست شده که می‌تونید اونها رو خودتون تست کنید. فقط دقت کنید خیلی از این موارد در داخل ایران به کل فیلتر شده :)

سر و سامان دادن به بک‌آپ‌های سی‌پنل

با فرض اینکه برای گرفتن بک‌اپ از سی پنل استفاده کنید باید بدونید که اونها به صورت روزانه و هفتگی و ماهیانه نگه داری می‌شن. مشکل اینه که این بک‌آپ‌ها به صورت دوره‌ای اوررایت می‌شن و اینطوری نیست که بشه مثلا به ۷ روز گذشته بک‌اپ‌ها دسترسی داشت. یا شاید بعضی اوقات لازم بشه آدم بک آپ دو ماه آخر رو یه نگاهی بندازه بهش.

خب اما برای اینکه این مشکل رو یه جورایی برطرف کنید کافیه توی cron یه همچین دستورایی رو وارد کنید.

برای استفاده از این دستورا کافیه rootf رو بسته به یوزری که می‌خواید بک آپ گرفته بشه تغییر بدید.

خط اول بک آپ روزانه یوزر novid رو درست میکنه. با اجرای این دستور سر ساعت سه صبح هر روز، هر چی فایل tar.gz وجود داشته باشه منتقل میشه به فولدر متناظر اون روز! که می‌تونه Friday باشه و الی آخر! بعد از ۷ روز ۷ تا فولدر بر اساس نام روزهای هفته دارید و از هفته بعد فایل‌ها اوررایت میشن داخل این فولدرها :)

اما دستور دوم بک‌آپ ماهیانه یوزر novid رو درست میکنه و فولدرهایی بر اساس ماهی که در اون قرار گرفتیم ساخته میشه. بعد از یکسال فولدرهایی مشابه ۰۱ و ۰۲ و الی آخر رو خواهید داشت

دستور سوم هم برای اینکه بفهمه در چه هفته‌ای از ماه قرار داریم از تکنیک زیر استفاده کرده.

 میتونید اگر دوست داشته باشید و مثلا به جای اینکه بک‌اپ ۴ هفته یک ماه رو داشته باشید، بک‌اپ هر هفته یک سال رو ذخیره داشته باشید اون رو با کامند زیر عوض کنید که مقدار هفته‌ای که در سال قرار گرفته رو بر می گردونه ( از صفر تا ۵۴)

 

بازی موش و گربه

حول و هوش ۴ صبح بود که می‌خواستم برم کوه خیر سرم که دیدم یهو کلی میل سرایز شده سمت اینباکسم و یه اسپمر وحشی رم کرده  و داره فرت و فرت میل اسپم می‌فرسته.

خلاصه این شد که رفتم پشت سیستم و اول رسیدم به همچین آدرس کذایی رو سرور که از طریق اون کلی میل اسپم می‌فرستاد.

وقتی که محتویاتش رو دیدم اولین کاری که به ذهنم رسید این بود که کل کدای داخلش رو با یه مادر فاکر جابجا کنم تا هکره توی اجرای بعدی ببینه و حسابی عصبانی شه! :)

بعد چند دقیقه بود که دیدم دوباره محتوا رو عوض کرده و این یعنی وجود مکانی که تبدیل شده به مقر فرماندهی و اینطوری بود که به کل زدم فایل رو پاک کردم و سریع رفتم سر وقت لاگ اپاچی

 حالا دیگه آی‌پی رو داریم :) فایرفاکس ۳.۵ و طرف ظاهرا ویندوزکاره و البته اینا مشخصات یه بابایی توی نیجیریه ست! و همین احتمال رو قوی میکنه که طرف داره از تور استفاده میکنه.

از روی دنبال کردن آی‌پی رسیدم به یه فایلی به اسم theme-edit.php داخل پوشه wp-admin و نکته جالب این بود که با باز کردن این فایل تو ادیتور مطلقا چیزی دستگیر آدم نمی‌شد به این خاطر که آقای هکر کد php رو رمزنگاری کرده بود و بنابراین محتویت فایل رو می‌دیم به سایتی مشابه ddecode که کارش تبدیل محتوای رمز شده به حالت عادیه.  بسته به سختی کد طی تعداد مراحلی این سایت کد واقعی رو در اختیارتون می‌گذاره و جالبه که این کد رو در یازدهمین مرحله می تونه از حالت رمز خارج کنه :)

شروع بسم الله با افتخار نوشته‌ی هکر رو می‌بینیم! (کد دیکد شده شل)

/* hide shell edited by r1pp3rm4ya*/

بله یک شل مخفی کشف کردیم! شلی که بخاطر محتوای رمز شده ش آنتی ویروس clam هم هشداری بهتون نمی‌ده. شاید بشه فقط از رو md5 حجم فایل مثلا گفت که احتمال داره فرد دیگه‌ای هم توی این کره خاکی توسط این شل آلوده شده یا نه.

ادامه سرک کشی به لاگ من رو رسوند به یه آی‌پی جدید و یه فایل جدید اینکود شده ولی چون دقیقا بازه زمانیشون یکی بود حدس می‌زنم وسط کار آی‌پی تور فقط عوض شده باشه و پشت جفتشون یه ادم بیشتر نیست.

با نگاه کردن به فایل از رمز خارج شده میشه حدس زد که ازش برای وصل شدن به دیتابیس استفاده میکنه و همه اینا یعنی خطر! دنبال فایل‌های passwd و shadow و این موارد نیز هست پس این نقاطیه که باید دسترسی read رو طوری تنظیم کنید که فقط کاربر root بتونه محتویاتشون رو ببینه. در حالت عادی یوزر امکان مشاهده محتوای خیلی از فایل‌های حساس etc رو داره.

اما ادامه خوندن لاگ ما رو به خط‌های خیلی مهمی رهنمون می‌کنه :) دقیقا از شروع حمله تا زمان موفقیت رو می‌شه دید پروسه‌ای که واقعا دید آدم رو نسبت به امنیت و این جور موارد به کل دگرگون میکنه

اگه یادتون باشه پست قبلی در مورد یه شل به اسم wp-search گفتم. شلی که پاک شد اما اون هکر بعد چند روز اومده سر وقتش! بی خبر از اینکه پاک شده  و البته ارور ۴۰۴ گرفته:)

اما بیکار ننشسته! احتمالا از همون تکنیکی که بار پیش شل رو وارد سیستم کرده اینبار هم اومده و اون روش رو دنبال کرده.

خط دوم اومده استایل قالب وبلاگ رو گرفته حدس می‌زنم از داخل استایل خواسته ببینه چه پلاگینایی مثلا می‌تونسته طرف استفاده کرده باشه که احتمالا حفره ای داشته باشن برای استفاده‌های بعدی.

و بعد در چندین مورد که همه ش رو اینجا نگذاشتم با استفاده از متد GET داخل پوشه آپلود رو می‌گرده به امید پیدا کردن اون حفره!

به نظرم خط ۴م دقیقا جایی بوده که حفره رو پیدا کرده و توسط متد GET و با استفاده از سایت خودش تونسته شل خودش رو بارگزاری کنه.

برنامه‌نویس نیستم اما حدس می‌زنم تونسته از حفره‌ای توی برنامه timthumb استفاده کنه و کد خودش رو که توی سایتش موجود بوده رو با استفاده از ضعف این برنامه به سرور قربانی منتقل کنه.

راستش رو بخواید حتی متوجه آدرس جایی که کد رو گذاشته نمی‌شم :))

http://blogger.com.bathroomremodeling.org/

ولی داخلش که بشید سه تا کد اصلی ش رو خواهید دید که با استفاده از متد GET اونها رو به سیستم قربانی منتقل میکنه. پیشنهاد میکنم حسابی مراقب باشید که یهو خودتون الوده نشید با وارد شدن از طریق مرورگر! و خلاصه اینکه احتمالا مشکل پیدا شد! و چند تا شل جدید کشف شد و احتمالا یه حفره توی برنامه ذکر شده :)

ساعت ۷:۱۳ با تاخیر برم کوه!

 

 

با پرمیشن صحیح وردپرس را امن کنید

اول بگم که این بحث فقط در مورد وردپرس نیست، در مورد هر برنامه تحت وبی که نوشتید هم صادقه، شاید از دروپال استفاده کنید و یا جوملا اما نکته اینه که خودم از وردپرس استفاده میکنم و از تم دیفالت وردپرس هم بهره می‌برم و می‌تونم بگم پرمیشن ها چطوری تنظیم بشه هم امنیت رو خیلی بالا برده باشید و هم اینکه سایت و وبلاگتون بدون هیچ مشکلی بالا بیاد. اما با کمی بازی می‌تونید این قاعده و این روش رو جاهای دیگه هم پیاده کنید.

نکات این راهنما روی هاست‌های  که به صورت شیر و اشتراکی استفاده میشن بیشتر به کار میاد.در هاست شیر تعداد زیادی وبلاگ و سایت متعلق به کاربران مختلف وجود داره و عموما تنظیمات طوری صورت میگیره که صاحب یک وبلاگ سر از کار وبلاگ دیگه در نیاره و یه جورایی ایزوله باشن کاربرا، بنابراین اگر دسترسی به یک سرور کامل دارید و مثلا وردپرس رو مستقیم از مخازن نصب کردید و خودتون یکه و تنها روی سرور هستید احتمالا لازم نیست خیلی نگران باشید!

فرض این راهنما بر اینه که سرور لینوکس ببن چند ده نفر آدم شیر شده و هر کدوم از اونها وبلاگ و سایت‌های خودشون رو می‌تونن داشته باشن. یکی از سیستم‌های معروفی که اغلب مدیر سرور برای مدیریت فله‌ای وبلاگ و سایت استفاده می‌کنه سی‌پنل که روی سرور لینوکس، نصب میکنه و بعد فرت و فرت فضا می‌فروشه تا جایی که سرور اشباع میشه و رم و پردازشگر دیگه تا حد خرخره و جون کندن کار میکنن!

احتمالا اگه هزینه کمی می‌دید برای میزبانی وبلاگ و سایتتون و از اون مهمتر مثلا سی پنل دارید و یا دایرکت ادمین! بدین معنی که روی سرور لینوکس غیر از شما کلی آدم دیگه هم هست (احتمالا).  سی پنل برای هر کاربری که مقداری فضا باید بهش متعلق بگیره  یه فولدر توی پوشه خونگی لینوکس به اسم اون کاربر می‌سازه و به صورت پیشفرض تنظیمات رو طوری قرار می‌ده که یک کاربر از محتویات پوشه کاربر دیگه مطلع نشه. بنابراین وقتی وارد سی پنل می‌شید توقع نداشته باشید بتونید محتویات پوشه کاربر دیگه رو ببنید :)

حالا یه نیم نگاهی داشته باشیم به پروسه نصب وردپرس!‌ وقتی وردپرس رو نصب میکنید به صورت دیفالت مجوز فایل wp-config.php روی ۶۴۴ تنظیم میشه. همینطوره بقیه فایل‌های داخل وردپرس! مجوز فولدرها هم ۷۵۵ تنظیم میشه.

wp-config.php فایل خیلی خیلی حساس و مهمیه! با این مجوز شما دارید دو دستی یوزر و پسورد دیتابیس و بنابراین کل زندگی تون رو به راحتی تقدیم میکنید به هکرای خیلی خیلی ناشی! و باید ناراحت باشید از این موضوع که احتمالا به زودی حتی یه هکر ترک هم می‌تونه سایت و وبلاگتون رو هک کنه!

بیاییم ببینیم چه کارایی میشه انجام داد با این مجوز. فرض کنید یکی از همسایه ها یه خورده کنجکاوه.  همسایه منظور کسی  که روی همین سروری که وبلاگتون موجوده، سایت و وبلاگ داره بعلاوه دسترسی به ترمینال. این ادم در حالت عادی نمی‌تونه محتویات پوشه home لینوکس رو ببینه چون به صورت صحیح توسط سی پنل  پرمیشن صحیح دارن(مگه اینکه خیلی مسئول سرور ناشی باشه و دستی تغییر داده باشه).  این ادم برای اینکه بفهمه چه کسایی کنارش هستن (دایرکتوری های موجود در پوشه home رو ببینه) می تونه بره سایتای تبدیل دامین به آی‌پی (+) و برای مثال آدرس وبلاگم رو وارد کنه و آی‌پی سرور رو در بیاره و بعد بره سراغ موتور جستجوی بینگ و خیلی ساده کل سایتایی که روی سرور میزبانی میشن رو در بیاره (+)

واو خیلی جالبه! :) همین اول کار توی لیست موتور جستجو یکی از وبلاگای بیگناه رو می‌بینم که هک شده!‌

wow

می‌شه حدس زد که اسم پوشه خونگی این کاربر روی سرور ikkco باشه و یا حتی مثلا پوشه خونگی وبلاگ خودم novid باشه‌:) و بعد با فرض اینکه طرف یه زمانی وردپرس استفاده می‌کرده، اون آدم بازیگوش میاد یه شورتکات ساده می‌سازه!

و حالا چون فایل مجوز ۶۴۴ داره  خیلی راحت یوزر و پسوردتون خونده میشه و این ادم میتونه وصل شه به دیتابیس و کلی کارای جالب کنه.

همینجا میشه نتیجه گرفت که اگه موقع نصب وردپرس، اون رو مستقیم اکسترکت نکنید و مثلا برید داخل یه پوشه به اسم nnnovid این کار رو کنید کار هکر رو کلی سخت کردید! کاری که خیلی ها اون رو انجام نمی‌دن.

trojan

اینجا فرض رو بر این گذاشتیم که کاربر دسترسی به ترمینال داره ولی حقیقت خیلی دردناک تر از این حرفاست :) هکرها خیلی راحت تر از اینکه تصور کنید با استفاده از فایل‌های php خیلی کم حجم موسوم به شل دسترسی به قسمت‌های مختلف سیستم خواهند داشت. فرض کنید فایل php شل یوزر و مالکش novid و اسمش هم wp-search.php باشه، باید که خیلی خیلی  خوره وردپرس باشید تا اینکه متوجه شید به صورت پیشفرض اصلا همچین فایلی رو وردپرس وجود نداره :) می‌تونه این فایل لابه لای تم رایگانی باشه که خیلی خوشحال اون رو پیدا کردید! اما غافل از اینکه این یک تله ست و تم حاوی فایل شل!

در اینصورت هکر کافیه وارد ادرس www.novid.ir/wp-search.php بشه. هر کاری رو که تصور کنید، این هکر می‌تونه با این شل انجام بده.  از رفتن به دایرکتوری ها مختلف، دیدن کل فایل های کاربر novid لیست گرفتن، در اوردن یوزر و پسورد و همونجا وصل شدن به دیتا بیس از داخل شل، حتی روش ها و تکنیک های معروف اکسپلویت کردن با استفاده از حفره های موجود یک نسخه خاص وردپرس و غیره و غیره. هکر می‌تونه حتی کل پروسه های در حال اجرای سرور رو ببینه!‌ می تونه با مشاهده پروسه‌های در حال اجرا یوزرهای دیگه رو ببینه :) هکر سایت بالا می‌تونه اسم من رو در بیاره و بعد توی بخشی که وجود داره دایرکتوری من رو بزنه و قصد خوندن اطلاعاتم رو داشته باشه! اما همه این کارها تا زمانی که شل تحت یوزر و گروپ novid نباشه و فایل ها و فولدرهای وردپرسی هم پرمیشن صحیح داشته باشن منتفی میشه! هکر دست خالی بر می گرده!

یکی از این شل های خوشگل رو از سروری که زیر دستم بود و یه گروه ترک اون رو برام سوغاتی اورده رو اپلود میکنم تا بگیرید و ببینید این شل ها چطورین، نسخه‌های متنوعی وجود داره از این شل‌ها، این شل به محض اجرا شدن کلی ایمیل برای صاحبش می‌فرسته! پس احتمال داره با اولین اجرا یوزر و پسورد دیتابیستون برای مثال فرستاده شده باشه برای صاحب اثر :)‌ تنها راه از کار انداختنش روی سرور دادن مجوز chmod 000 به فایله و یا باز کردن سورس و  پیدا کردن ایمیل و عوض کردنش به مال خودتون :)

hacks

دقت کنید اگه مالک این فایل (شل) novid باشه حتی می تونه محتویات wp-config با مجوز ۴۰۰ رو هم بخونه! پس اگر یکی از این شل ها رو داشته باشید حتی با پرمیشن صحیح هم امنیت معنی نداره! علت اینه که در هاست های شیر برای اینکه پروسه های php که هر یوزر استفاده میکنه رو بتونن به تفکیک ببینن و هم اینکه هر کاربر از کاربر دیگه ایزوله و جدا باشه ( به شرط پرمیشن صحیح)‌ از suphp و suexec استفاده می‌کنن. کاری که این ها انجام میدن اینه که اجازه میدن فایل php با مجوز کاربر عادی هم اجرا بشه! دقت کنید در حالت عادی تنها کسی که مجوز اجرای فایل php رو داره آپاچی و بنابراین اگه در حالت عادی یه شل با مجوز novid روی سرور سبز بشه عملا کاری نمی تونه کنه.  پس در صورتیکه هاست شیر  داشته باشید و suphp و suexec داشته باشید قادر هستید تمام فایل‌های php رو با مجوز ۴۰۰ هم اجرا کنید :)

مجوز ۴۰۰ این حسن رو داره که اگه مطمئن باشید که پاک پاکید خیالتون راحته که اگه همسایه بغلی‌ یکی از ین شل‌ها رو داشته باشه نمی‌تونه بهتون آسیبی بزنه، می‌تونید گاهگاهی  یک بار بک اپ کامل از وبلاگتون رو ذخیره کنید و بعد با آنتی ویروس چک کنید. در صورتیکه فایل مشکوکی پیدا نکرد یعنی پاکید :) یا وقتی که تم خاصی رو از نت می گیرید اون رو اول اسکن کنید و بعد روی سرور اپلود کنید.

حالا این مقدمات رو گفتم که بریم سر اصل مطلب و اینکه شما می تونید با خیال راحت کل فایل‌های php رو ۶۰۰ و یا ۴۰۰ تبدیل کنید :) با مجوز ۴۰۰ حتی خودتون هم نمی‌تونید تغییری در فایل‌ها ایجاد کنید (که در حالت عادی با فرض اینکه طراح و برنامه نویس نیستید هیچ وقت این نیاز رو نخواهید داشت)! یک راه اینه که فایل حساس wp-config رو ۴۰۰ بگذارید و بقیه رو ۶۰۰ تا زمانایی که وردپرس رو اپدیت میکنید مشکلی از این بابت نداشته باشید :) یه راه هم اینه که هر بار نسخه جدیدی میاد برید مجوزها رو موقتی ۶۰۰ کنید و بعد از آپدیت به نسخه جدید اون رو ۴۰۰ کنید.

اگه فایل های php رو ۴۰۰ کردید و سایتتون داون شد مطمئن باشید که سروری که هستید از suphp استفاده نمیکنه اما با تقریب خیلی بالایی بهتون اطمینان میدم اکثریت سرورهای هاستینگ شیر در ایران از این روش استفاده میکنن! در صورت داون شدن سایت فقط فایل wp-config رو ۴۰۰ بگذارید باشه و بقیه همون ۶۴۰ برگردونید و باز اگه جواب نداد ۶۴۴ بذارید باشن. اما wp-config رو بیشتر از ۴۰۰ ندید هیچ وقت (جز زمانایی که قراره پسورد و یوزر دیتابیس عوض بشه)‌

اما فایل های دیگه غیر از php مثل .htaccess  و عکس ها رو باید بتونید با مجوز ۴۰۴ درست کنید. علت اینکه مجوز گروپ رو ۴ میدید اینه که این دسته فایل ها دیگه با suphp و suexe اجرا نمی‌شن و بنابراین باید توسط other قابلیت خوندن داشته باشن تا آپاچی بتونه به اونها دسترسی داشته باشه :) تمام css های تم و فایل متفرقه xml و اینجور چیزها شامل این قانون میشه.

پس نتیجه میشه چیزی مثل این

pr

استفاده کاربردی از صفحه پیوندها

آدرس صفحه پیوندها که معرف حضور همه است، پیش از این ابداع جدید اگر یادتون باشه صرفا یک پیغام برای کاربر ظاهر می‌شد که فلان صفحه طبق قوانین کشور فیلتره!

40201

حالا با نصب این اسکریپت در فایرفاکس و کروم می‌تونید به همین روال قبل برگردید بعلاوه دو تا امکان مفید که در عکس زیر می‌بینید!

page

  • برای نصب اسکریپت در فایرفاکس باید افزونه گریس مانکی رو از قبل نصب داشته باشید!
  • اگر هم از کروم استفاده می‌کنید از نسخه های اخیر دیگه اجازه نصب اسکریپت رو به صورت مستقیم و بدون دردسر نخواهید داشت! برای نصب باید روی install در صفحه اسکریپت راست کلیک کنید و اون در جایی روی کامپیوتر خودتون ذخیره کنید (save link as) .
    بعد وارد ادرس اکستنشن‌ها در کروم بشید chrome://extensions/
    و در نهایت اسکریپتی رو که روی کامپیوتر ذخیره کردید با شیوه درگ و دراپ بکشید داخل بخش اکستنشن‌های کروم.

تیتر رو هم بر این اساس انتخاب کردم که اساس کار اسکریپت مبتنی بر url پیوندهاست! و چه بسا اگر این مکانیزم فیلتر نبود، همچین اسکریپتی رو هم نمی‌داشتیم

برندگان مسابقه چرا گنو/لینوکس را دوست دارم معرفی شدند!

بچه‌ها مسابقه‌ای رو ترتیب داده بودن که چرا گنو/لینوکس رو دوست دارید و هر کی باید یه بهترین شکل این حس رو القا می‌کرد تا شاید بتونه برنده خوشبخت یک عدد بورد رزبری‌پی بشه :)

پشتیبان اصلی این مسابقه طبق معمول سیتو و بهنام توکلی عزیز بود که جا داره از زحمات زیادش تشکر کنم :)

اما بریم سر اصل مطلب و اون معرفی نفرات برتر! که بد نیست حتما برید بهشون سر بزنید!

نفر اول نویسنده وبلاگ رایت‌وب که پستی با عنوان چون میتونم باهاش برم به اعماق رو نوشته :)

whyilovelinux3
whyilovelinux3

نفر اول  خیلی خوب تونسته با احساسات ملت بازی کنه و عکسایی که گذاشته کافی بود برای اینکه امتیازای بالایی کسب کنه بدون اینکه زحمت خیلی زیادی برای نوشتن یه پست تخصصی و پیچ در پیچ به خودش داده باشه :) و البته خیلی خوب و ساده تونسته حق مطلب رو هم ادا کنه :ی

اما نفر دوم با تئوری بیگ بنگ پا به میدون مسابقه می‌ذاره، نویسنده بعد از کلی ژانگولر بازی به این می‌رسه که

یه روز بعد از ظهر پشت سیستم نشستید و دارید به کارهاتون میرسید که یه دفعه آخرین قسمت سریال مورد علاقتون با زیرنویس فارسی و بدون حروف عربی شروع به پخش میکنه یه چیزی مثل این:

هدف نویسنده از زدن این پست مشخصا اینه که بگه چطور می‌شه از قدرت دنیای گنو/لینوکس استفاده کرد برای اینکه کاراهای عجیب غریبی رو انجام داد، پروسه‌هایی که یک بار انجام می‌دید اما در عوض بعدش براتون راحتی رو به ارمغان می‌یاره و البته کلی نکات آموزنده‌ای که هنگام انجام این کارها آدم یاد می‌گیره :)

رتبه سوم فرود با پست وقتی قرار میشه یه گیک ارایه بده، به شرح سلسله کارهایی می‌پردازه که خودش برای ارائه اسلاید در کنفرانس زنجان دست به انجام اونها زده.

یکی از مشکلاتی که وقت ارایه ها دارم، کنترل اسلایدهاست. نشستن پشت کامپیوتر و زدن دکمه یا انجام دادن این توسط یه نفر دیگه :) روش معمولشه، ولی روش من نیست.

و اینطور می‌شه که فرود از طریق مرورگرش فایرفاکس و استفاده از شبکه وایرلس کنترل اسلایدها رو برعهده می‌گیره!

نفر چهارم نویسنده وبلاگ saar که با شرکت در مسابقه به سکوت چند ماهه‌ش پایان داد :) saar اول از آزادی‌هایی که گنو/لینوکس به ادم می‌بخشه می‌نویسه و بعد به صورت خیلی ملموس و البته تخصصی نشون می‌ده که چطور بخاطر آزادی عملی که وجود داره می‌شه حتی بخش‌های غیر قابل تصوری چون شبکه رو در گنو/لینوکس دستکاری کرد.

بذارین با یکم توضیح شروع کنم. اطلاعاتی که به لایهٔ TCP شبکه فرستاده می‌شن، تو یک غلاف جا می‌گیرن و اطلاعات لازم برای رسیدن به پروسهٔ مقصد بهشون اضافه می‌شه. بیت‌های ۱۰۰، ۱۰۱ و ۱۰۲ (اگر شماره رو اشتباه نگفته باشم) رزرو شده هستن و صفر در اون‌ها قرار می‌گیره. تو دانشگاه یک بار بحث پیش اومد که از این بیت‌ها می‌شه استفاده‌های مختلفی کرد. به عنوان مثال این بیت‌ها می‌تونن شمارهٔ کلید رمز‌نگاری/رمز‌گشایی بسته‌ای باشن که توی یک سازمان تعریف شده؛ بسته‌هایی که روی شبکه قرار می‌گیرن، بر اساس مقصد رمز‌نگاری خاصی داشته باشن. از طرفی روند عادی شبکه نباید تغییر کنه و به عنوان مثال مدیر که به همهٔ کلید‌ها دسترسی داره باز هم باید بتونه بسته‌های عادی خودش رو به شبکه (مثل اینترنت، با بیت‌های رزرو شدهٔ صفر) ارسال کنه. از نظر فنی، سیستم‌عامل وظیفهٔ بسته بندی اطلاعات رو بر عهده داره پس ایجاد این روند برای یک سازمان نیاز به تغییر سیستم‌عامل و البته بازنویسی یا تغییر کد اون قسمت از سیستم‌عامله.

عنوان پنجمی بخاطر امتیازای برابر به دو نفر از بچه‌ها رسید.

وبلاگ باگی تنها لیدی حاضر در مسابقاته که از دید روانشناختی به چرایی دوست داشتن دنیای گنو/لینوکس می‌پردازه و حتی اشاره میکنه این دوست داشتن نه فقط از رو علاقه که حتی خشم و عصبانیت از اون هم باعث نمی‌شه ادم مهاجرت کنه و بره جای دیگه‌ای و در نهایت اینطور جمع بندی میکنه مطلب خودش رو.

همین باعث می‌شه در دنیایی که ریشه‌ دارم برگ بدم و جوونه بزنم !یه روزی بهار من هم فرا می‌رسه شکوفه می زنم و میوه می‌دم :دی If you know what I mean

  من گنو/لینوکس رو دوست دارم چون کلی دلیل برا دوست داشتنش دارم و خوشحالم که این بازی بازنده نداره . برگ برنده در دست‌های من و ماست :)

اما عنوان پنجمی دیگه به وبلاگ hypermit رسیده. نویسنده این وبلاگ در ابتدا به صورت خلاصه به دلایل دوست داشتن گنو/لینوکس اشاره می‌کنه.

  • تنوع زیاد و آزادی در انتخاب
  • مشکل از کمبود اطلاعات شماست
    اگر کاری رو نمی تونید انجام بدید اشکال از کمی اطلاعات شماست.
  • هیچ چیز رو از صفر شروع نمی کنید
  • بهترین مکان برای گیک ها

و بعد خیلی خوب می‌ره سراغ مثالای عینی و اینکه چطور گنو/لینوکس بهش کمک می‌کنه تو انجام کارهای مختلف.

  • دانلود شبانه رایگان
  • یادآوری
  • کنترل اتفاقات سرور و ارسال sms برای تمامی ادمین ها
    اگر سرور لینوکسی داشته باشید و چندتا ادمین، و سرور هم مهم باشه خیلی ساده می تونید روی سرور اسکریپت بنویسید که چیزهایی که روی سرور مهم هست رو چک کنه و اگر اتفاقی بحرانی افتاد توی یک فایل تکست یک جایی که بشه دانلودش کرد بریزه. و با گوشی n900 یک اسکریپت ساده دیگه بنویسید که اون فایل رو مثلا ۱۵ دقیقه یکبار چک کنه و اگر چیز غیر عادی داخلش بود اون اتفاق رو برای تمامی ادمین های sms کنه.

    • گوشی n900 و جاسوسی
    • کنترل دمای کامپیوتر و فن
    • اجرای موزیک از طریق ترمینال

اما غیر از نفرات اول تا پنجم مطالب خیلی خوب دیگه‌ای هم وجود داشت که درسته رتبه‌ای کسب نکردن اما حقیقتا ارزش وقت گذاشتن بیشتر رو دارن :)

دانشجوی دانشگاه امیرکبیر که از خاطره خودش توی این دانشگاه گفته با عنوان چه جوری کل پهنای باند ممکن رو نوش جان کنید!

این داستانی که میخوام براتون تعریف کنم توی چله تابستون وقتی که کسی دانشگاه نیست اتفاق افتاده و خب ما چون پایه ثابت خوابگاه بودیم! بودیم!اون سالی که من دانشجو بودم و این اتفاق افتاد دانشگاه صنعتی امیرکبیر اینترنتش رو از طریق سه یا چهارتا پروکسی squid به دانشجوها و اساتیدش در مقاطع مختلف ارائه میداد. اون سال بخاطر چله تابستون بودن دوستان انفورماتیک زحمت کشیده بودن و به همه بدون پسورد سرویس میدادن. یعنی هیچ یک از پراکسی ها پسورد نداشت و تنها محدودیت رو روی آی پی آدرس شما اعمال میکردن و شما رو محدود میکردن خب شما هم اگه جای من بودید دوست داشتید از این فرصت بوجود اومده استفاده کنید.

که واقعا نکات خیلی آموزنده و صد البته کاربردی رو این پست داره :)

** برای دیدن مطالب بقیه شرکت کننده ها به اینجا مراجعه کنید

کابوس واقعی

یه بابایی اومده یکی از فایل‌های خیلی مهم لینوکس رو به اسم libkeyutils.so.1.9 بررسی کرده (منبع خبر) و به این نتیجه رسیده که درون این فایل یه آی‌پی به آدرس ۷۸٫۴۷٫۱۳۹٫۱۱۰ وجود داره! که همینجوری هم نمی‌شه دید و چشم بصیرت می‌خواد.

ssh

آی‌پی هم اشاره داشته به سایت rubop.com که مشخصات این دامین هم این شکلیه.

بعد هم دیدن که خیلی راحت می‌تونه طرف از طریق ssh وصل شه به ماشین دیگه ای و گویا در کرنل‌های سه به بالا این مشکل وجود نداره پس خیلی از دیستروهای سنت او اس احتمالا این مشکل رو خواهند داشت. آدرسی که این فایل وجود داره در روت  سیستم عامل و داخل فولدر lib64 هست. که اتفاقی دیدم تو یکی از سرورهایی که دست منه هم این فایل وجود داره

منتها خیلی خوب و خوشحال از این کشف بزرگ اومدم این فایل رو پاک کردم! و بعد هم exit و بعد یک ساعت تلفن زنگ خورد که فلانی فلانی چیکار کردی سرور رو؟ همه سایتا داون شدن :) که دیدم ای دل غافل! همه چی زیر سر این فایل ریزه میزه ست و خلاصه به کمک kvm و ریموت وصل شدن به سرور انگاری که پشت مانیتور نشسته باشی تونستم وارد سیستم عامل بشم و جالب بود که حتی دستورای ابتدایی مثل wget هم از کار افتادن و خلاصه همه اینا کابوسی شد برای من تا اینکه با هر مکافاتی بود تونستم سیستم رو درست کنم!

اما  برای اینکه از شر این موجود و این فایل که آخرش پسوند ۱٫۹ داره راحت بشید اول یه سرچی بزنی که اصلا این فایل وجود داره توی این فولدر lib64 و بعد هم مطمئن شید که جای دیگه‌ای نباشه.

 حالا فایل مشکوک رو پاک می‌کنید به همراه شورتکاتی که ساخته و بعد دوباره شورتکات رو از فایل سالم libkeyutils.so.1.3 می‌سازید. دقت کنید در نهایت باید فایل libkeyutils.so.1 رو حتما داشته باشید در غیر اینصورت هیچ چیزی کار نمی‌کنه و می‌شید مثل من! بعد از اینکه شورتکات رو ساختید سرویس sshd رو هم ریست بدید و در نهایت کرنل رو آپدیت کنید (اگر داشتید!) و بعد هم ریست می‌دید سرور رو.

البته یک سری گفتن حتی با پاک شدن این فایل هم معلوم نیست مشکل حل می‌شه یا نه ولی خب با تنظیمات فایروال و اینکه از ssh استفاده می‌کنه (از پورت‌های غیر استاندارد) نباید مشکل خاصی پیش بیاد.

توضیحات خیلی خوب و کاملتری رو می‌تونید از اینجا گیر بیارید.

 

 

 

بازی با سرور

یه چند وقتیه که سرور این و اون دستمه و منیج می‌کنم بد ندیدم یه سری نکاتی که به درد بخورن رو بنویسم اینجا بیشتر برای خودم که ازشون استفاده کنم بعدها :) امیدوارم به درد دوستان هم بخوره!

Capture

یکی از اولین کارهایی که می‌کنید وقتیکه سرور افتاد زیر دستتون به جون سخت افزارش بیفتید و ببینید دقیقا چی به چیه :)

مثلا با این دستور خیلی راحت سرعت نوشتن اطلاعات روی هارد رو در بیارید.

واو یه شاهکاره :) نمی‌تونید تصور کنید شور و شوقی رو که دارم از اینکه همچین سروری زیر دستمه :)

خب حالا ببینم چند تا پردازشگر داره سرور و برای اینکار از دستور زیر کمک می‌گیریم

عدد ۱۶ داره می‌گه سرور ۱۶ تا هسته داره :) قضیه چیه؟ پردازشگر ۱۶ هسته‌ای داریم؟ با دستور زیر اسم و مدل پردازشگر رو در میاریم.

و حالا با یه سرچ کوچولو به این می‌رسیم که پردازشگر E5620 چهار هسته داره که با فناوری خاص اینتل، انگاری ۸ تا هستن (تریت)! بنابراین خیلی فریب ۸ هسته ای بودنش رو نخورید چون واقعا ۴ تا هسته بیشتر نداره. اما فرکانس کاری ۲.۴ گیگاهرتز هست :)
حتما باید حدس زده باشید که سرور دو تا پردازشگر داره!‌ :)

ببینیم لینوکس فرکانس کاری رو چند نشون می‌ده؟

اینجاست که باید مشکوک شید که نکنه کلاهی گذاشته شده سرتون! چرا فرکانس واقعی در حال کار پردازشگر ۱۶۰۰ مگاهرتزه؟ :) با فرکانس اسمی ۲۴۰۰ اینقدر اختلاف داره؟ که بعد متوجه می‌شیم آقای اینتل این پردازنده رو مجهز کرده به اسپید استپ که دقیقا کارش اینه که فقط زمانایی که لازمه و فشاری هست فرکانس پردازشگر بره بالا و از این طریق هم توی مصرف انرژی صرفه جویی شده باشه و هم طول عمر پردازشگر بالا بره!

برای اینکه مطمئن شیم باید یه جوری سیستم رو تحت فشار قرار بدیم! :)

جالب نیست؟ به صورت موازی و همزمان، میایم تا زمان نامحدودی اطلاعات بیخودی و در وری (صفر) روی هارد می‌نویسیم! بعد توی تب جدید می‌ریم وضعیت فرکانسای پردازشگر رو چک می‌کنیم :)

کار بیشتر کشدیدم، هسته‌های بیشتری تحریک شدن و تا حداکثر  فرکانس ممکن هم دارن کار می‌کنن :) راضی هستیم و می‌ریم سراغ بقیه کار!

یکی از کارایی که بعد راه افتادن امکانات مختلف روی سرور حتما باید هرازگاهی چک کنید، تعداد افراد آنلاین و لحظه‌ای هست! اینکه آدمای مختلف دقیقا با چه آی‌پی‌هایی و چه پورت‌هایی به سرور وصل شدن و دارن از خدمات مختلف مثل ssh و یا دیدن سایت و بقیه امکانات بهره می‌برن :) و از همه مهمتر، آیا یک آی‌پی به صورت غیر عادی داره از منابع سیستم استفاده می‌کنه؟

همم، به ترتیب از کمترین تا بیشترین استفاده یهو براتون لیست می‌شه‌:) یه نفر تونسته تا چهل کانکشن مختلف به سرور بزنه! می‌شه با توجه به قدرت سخت افزار و اینجور مسائل،‌ محدودیت گذاشت تا افراد از یه حدی بیشتر نتونن از منابع استفاده کنن.

فرض کنید میزبان سایتی هستید و می‌خواید ببینید دقیقا چقدر آدم داره از سایتتون بازدید به عمل می‌یاره!؟

زیباست :) ۸۳ نفر دارن از پورت ۸۰ استفاده میکنن!

فکر کنید حقوق و دستمزد ساعتی دارید می‌گیرید؟ خب باید یه طوری نشون بدید که چند ساعت وصل بودید از خونه دیگه؟

یه راه اینه آمار ساعتایی رو که با ssh وصل شدید به سرور رو در بیارید، تمام موارد مهم مثل لاگین شدن توی سنت او اس در فایلی به اسم secure ثبت می‌شه! پس با دستور زیر سعی میکنیم به هدفمون برسیم!

الان می‌تونید حتی آمار کسایی که بدون اطلاع شما وصل شدن ssh رو هم در بیارید اما هنوز روش خوبی  نیست برای اینکه بشه حقوق ساعتی رو به صورت مستند دریافت کرد.

با کمی جستجو به برنامه psacct می‌رسیم و متوجه می‌شیم یک برنامه شاهکاره! :)

جالبناک شد!  در مجموع ۷۱ ساعت وصل بودم به سرور که با اضافه کردن d به دستور می‌شه حتی به تفکیک روز آمار رو گرفت!

خب ساعت دو و چهل دقیقه صبحه، به نظرم دیگه کافیه برای امروز!

منبع عکس