بلاگ

  • ویرایش فایل‌های درون کانتینر داکر از روی هاست اصلی

    سلام سلام

    نمی‌دونم چی شد چطور شد یکهو دوباره یاد به روز کردن وبلاگ افتادم :) به هر حال آدمیزاد دیگه و کاریش نمیشه کرد.

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

    اما این وسط یک نکته خیلی مسخره‌ وجود داره، وقتی داکر اجراست، هر چی فایل موجود روی هاست اصلی (در اینجا  haproxy.cfg)  رو  تغییر بدید، تغییرات رو داخل کانتینر مشاهده نمی‌کنید و مجبور می‌شید که داکر رو استاپ کنید و دوباره اجرا که برای یک کانتینر مثل haproxy که نقش لودبالانس رو داره این گزینه اصلا خوب نیست.

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

     

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

     

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

     

     

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

    توی پست قبلی مطلبی در مورد امنیت ضعیف مودم‌های تی‌پی‌لینک نوشته بودم که به نظر اونطور که باید و شاید توجه رو به سمت خودش جلب نکرد.

    برای همین در ادامه‌ی اون پست، این مطلب رو اینجا میذارم تا یک مقدار بیشتر با خطراتی که کاربران خونگی رو تهدید میکنه آشنا کنم.

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

    حالا با دادن یک آی‌پی به برنامه راحت میشه پسورد روتر رو بدست بیارید. دقت کنید که برنامه ابتدا ip مقصد رو پینگ میکنه و در صورت بالا بودن هاست، میره عملیات بعدی رو  روی اون اجرا میکنه.

    Selection_026

    با رفتن به آدرس http://ping.eu/ns-whois و دادن آی‌پی ولید خودتون، می‌تونید یک رنج از آی‌پی‌های ولید isp  رو بدست بیارید.

    Selection_024

    با کمی جستجو در اینترنت به اسکریپت زیر می‌رسیم که رنج ابتدایی و انتهایی ip رو میگیره و در انتها تمام ipهای بینش رو برامون تولید میکنه (خروجی برنامه‌ی زیر سی و پنج هزار آی‌پی هست). 
    Selection_025

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

    برای اینکار از برنامه‌ی xargs استفاده می‌کنیم. xargs خروجی یک برنامه رو میگیره و به صورت آرگومان به برنامه‌ای که مدنظرمونه میده. حالت پیشفرض xargs،‌ خروجی  به آخر برنامه اضافه میکنه. اگه بخوایم خروجی رو به وسط  کامندی که اجرا میکنیم، اضافه کنه از خروجی -I به همراه یک نام (place holder) استفاده مینیم.

     

    کامند بالا علارغم ظاهر خیلی پیچیده‌ای که داره خیلی ساده عمل میکنه.

    قلب اصلی  همون novid.py که فقط یک ip میگیره و قراره پسورد رو بهمون برگردونه. با اسکریپت Ip.sh و کمک برنامه xargs تعداد زیادی ip رو داریم به خوردش می‌دیم.

    اما به دلایل مختلف ممکنه برنامه پیغام‌های خطایی رو برگردونه که اونها رو داریم به dev/null میریزیم (به جای نمایش اونها در صفحه نمایش). سر بعضی از آی‌پی‌ها برنامه کلا متوقف میشه و دیگه جلو نمیره. برای جلوگیری از این اتفاق از timeout استفاده میکنیم و  میگیم حالت نرمال برای پیدا کردن پسورد یک روتر زیر ۲۰ ثانیه‌ست. اگه بیشتر از این زمان برد، بیخیال اون آی‌پی بشو و برو سراغ بعدی.

    xargs با استفاده از خروجی -I  به جای اینکه هر آی‌پی رو  انتهای کامند یعنی grep Router بیاره، اونها رو وسط کامند دونه دونه به برنامه میده! {}صرفا یک نام هست که می‌دونیم در کامندی که قراره بارها اجرا بشه هیچ استفاده‌ای نمیشه، میشه به جای اون هر چیز دیگه‌ای هم استفاده کرد.

    اون بخش grep رو برای این گذاشتم که برنامه بعد از پیدا کردن پسورد روتر چند خط رو به عنوان خروجی بر میگردونه. پسورد نیز در خطی قرار داره که کلمه‌ی Router وجود داره.

    بعد چند ساعت صبر و بسته به سرعت اینترنت، به کلی پسورد روتر خواهید رسید!

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

    کار قشگ دیگه ای که میشه انجام داد اینه که ببینیم بیشترین پسوردی رو که ملت استفاده میکنن چیه؟

    برای اینکار با کمی جستجو به اسکریپت count_all_words.py میرسیم.

    کافیه همه پسوردها رو در یک فایل به نام PASSWDUSERS.txt ذخیره کنیم و بعد اسکریپت رو اجرا کنیم. برای استخراج پسورد از لیستی که در اختیار داریم، کامند زیر رو اجرا میکنیم.

    و برای شمارش تعداد پسوردها نیز اسکریپت count_all_words.py رو اجرا کنیم.

     

    جامعه‌ی کاربری بالا ۶۵۵ مورد و همگی از isp داتک بوده. جستجو هم روی ۸۲۰۰ آی‌پی صورت گرفته. نکته اما اینه که همه‌ی این ۸۲۰۰  ip بالا نبودن و اگه آی‌پی‌هایی که در زمان جستجو داون بودن رو حذف کنیم به درصد خیلی خیلی بالایی میرسیم که آسیب‌پذیر هستن. در یک رنج آی‌پی ۲۵۶ تایی تقریبا صد تا از کاربران آنلاین هستن و از این تعداد پسورد ۴۰ تا کاربر رو میشه در اورد. با تقریب خوبی میشه گفت ۴۰ درصد کاربرای داتک این مشکل رو دارن و احتمالا خودشون هم اطلاعی از این وضعیت ندارند!‌

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

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

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

    2014-02-mitr-en

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

    csrf-router-attack-640x410راهکار چیه؟ جواب اینه که فرم‌ویر روتر خودتون رو به dd-wrt تغییر بدید. dd-wrt یک فرم‌ویر اپن سورس مبتنی بر کرنل لینوکس که با دنگ و فنگ و کمی خوش شانسی باید بتونید روی روتر خودتون نصب کنید. ریسک اینکار رو هم قبلش باید بپذیرید که دیگه روتر قابل استفاده نباشه. برای اینکه بفهمید dd-wrt روی روتر شما کار میکنه یا خیر کافیه به این آدرس برید و نام روتر خودتون رو وارد کنید.

    راهکار دیگه استفاده از روتر در حالت بریج هست. و اینکه از روتر خوتون در حالت bridge استفاده کنید. در این صورت تنظیمات pppoe که بر روی روترهای ADSL وجود داره به روی سیستم متصل به روتر منتقل میشه و مودم تنها نقش یک پل رو خواهد داشت!‌ افراد داخل شبکه در اینحالت باید از طریق سرور متقل به روتر، ip بگیرن. دیوایسی که برای اینکار در نظر میگیرید باید دو تا پورت لن یا یک پورت لن و یک وایرلس داشته باشه. حالت قشنگش اینه که از رزبری پای استفاده کنید. رزبری پای کلا یک پورت Lan بیشتر نداره. بنابراین باید یک مبدل usp به lan یا wireless نیز داشته باشید. برای os هم می‌تونید از ipfire یا OpenWRT استفاده کنید که هر دوی اونها نسخه مخصوص ARM رو دارن.

    openwrt-raspi-network

  • امنیت پایین روترهای تی‌پی‌لینک

    بعد مدت‌ها عید فرصت خوبی ایجاد کرد که بالاخره دستی به وبلاگ بزنم و چه موضوعی بهتر از موضوع اسفناک مشتری ispهای ایران…

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

    هر کاربر متصل به اینترنت یک ip ولید توی اینترنت داره که برای بدست اوردنش کافیه توی گوگل سرچ بزنید what is my ip.

    اگه فرض  کنیم ای‌پی من در اینترنت 176.46.136.128 باشه ، با تقریب خوبی میشه گفت که آی‌پی‌های در رنج 176.46.136.1/24  همه‌گی مشتری‌های داتک هستن. حالا کافیه بیاییم چک کنیم چه مقدار از این آی‌پی‌ها پورت ۸۰ شون بازه. برای اینکار از برنامه nmap استفاده میکنیم.

    این لیست، کاربرایی رو شامل میشه که صفحه‌ی اصلی روترشون توسط مرورگر قابل مشاهده است. مگه اینکه پورت ۸۰ شون رو از طریق nat انتقال داده باشن به وب‌سرور داخلی. وقتی این آی‌پی‌ها رو توی مرورگر وارد کنید  فرم یوزر و پسورد براتون ظاهر میشه. مهاجم  در ساده‌ترین حالت با یوزر و پسورد پیش‌فرض admin میتونه وارد تنظیمات روتر بشه.

    اما در مورد روترهایی که پسورد پیش‌فرض اونها admin نیست، یک روش استفاده از  brute force با استفاده از برنامه‌ی Hydra است. این برنامه می‌تونه با استفاده از یک دیکشنری،‌ دونه، دونه پسوردها رو با سرعت خیلی زیادی تست کنه.

     

    با کامند بالا، برنامه‌ هیدرا به سرعت ۵۰۰ تا از بدترین پسوردهایی که کاربرا خیلی علاقه به انتخابشون رو دارن با یوزر admin به روش سعی و خطا تست میکنه و نتیجه کار رو بهتون میگه. طبیعیه که اگه لیست پسوردا خیلی طولانی باشه زمان اینکار هم بیشتر میشه (احتمالا).

    در صورتیکه لیستی از یوزر رو میخواید به برنامه‌ی هیدرا بدید، هم کافیه با آپشن L اینکار رو انجام بدید.

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

     

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

    http://trac.kismac-ng.org/wiki/wordlists
    http://www.room362.com/projects/hugelist.txt
    https://wiki.skullsecurity.org/Passwords

    اما موضوعی که هست وجود یک exploit یا به عبارتی حفره در مودم‌های TP-Link که باعث میشه فرد مهاجم به راحتی بتونه هر پسوردی رو که ست کرده باشید در بیاره.

     


    اسکریپت کارش اینه که بعد از بدست آوردن پسورد، روتر رو از کار میندازه و در اصل اون رو ریست میده! ولی خب بعد از روئیت پسورد خیلی راحت میشه از برنامه خارج شد تا روتر ریست نشه.

    با اجرا کامند بالا همچین خروجی رو خواهیم داشت. Selection_002 دقت کنید در هنگامی که اسکریپت به سوال Decrypt the rom-0 file locally میرسه، y رو تایپ کنید تا پسورد رو در بیاره براتون. و بعد هم کافیه Ctrl + c رو بزنید تا از برنامه خارج شید.

    و خب همه‌ی اینا رو گفتم که بدونید وضعیت چقدر داغونه. داتک فخیمه میتونه با یک فایروال خیلی ساده، پورت ۸۰ رو ببنده، همونطور که پورت ۸۰۸۰ رو الان بسته (احتمالا بخاطر وجود backdoor که روی این مودم‌ها و روی این پورت وجود داره) ! و البته خود کاربرا هم میتونن کلا دسترسی به روتر از طریق وب رو کاملا مسدود کنن که این امر نیاز به آگاه‌رسانی اونها داره.

  • مدیریت پسورد‌های خود را به ‫password-store بسپارید

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

    اول از همه آخرین نسخه برنامه یعنی ۱.۶.۳ رو نصب داشته باشید. اگه اوبونتو ۱۴.۰۴ دارید برنامه داخل مخزن نسخه ۱.۴ رو داره که برای کار ما یه نموره قدیمیه.

    این برنامه برای رمز کردن پسوردهای ذخیره شده روی کامپیوتر از برنامه‌ی ‫gpg استفاده میکنه و برای اشتراک پسوردها از  git بهره می‌بره.

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

    سیاست من برای ساخت کلید اینه. یک کلید برای دسترسی به همه پسورد‌های داخلی که خودم و رییس بهش دسترسی داریم  و چند کلید هم به تعداد گروه‌های کاری داخل شرکت. مثلا گروه برنامه‌نویسی که قرار نیست به همه سرورها و دیتابیس‌های درون شرکت دسترسی داشته باشه یک کلید اختصاصی به اسم ‫Dev دارن.

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

    برای ساخت کلید از دستور زیر باید استفاده کنید.

     

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

    keys

    مرحله‌ی بعد باید طول کلید رو مشخص کنید که همیشه طولانی‌ترین حالت رو انتخاب کنید (۴۰۹۶ بیت)

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

    توی مراحل بعدی باید یک  اسم و نشون برای کلیدتون بذارید که بهتره واقعی باشه و یک راه ارجاع به کلیدها، ایمیلیه که تو همین بخش مشخص میکنید. مثلا برای گروه برنامه‌نویسی رو [email protected]  بذارید و برای گروهی که دسترسی به همه‌ی پسوردها داره [email protected] گزینه‌ی مناسبیه.

    مرحله‌ی بعد باید یک پسورد برای ذخیره‌ کردن خود کلید  به اسم ‫ passphrase رو وارد کنید تا وقتی در حال استفاده از سیستم عامل هستید، کلید در یک فایل پلین تکست به صورت معمولی ذخیره نشه و با این پسورد رمز شده بمونه. در صورت فراموشی این پسورد،  قید کل پسوردها و فایل‌هایی که با این کلید رمز شدن رو بزنید ;)

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

     

    اگه دیدید این روش هم کارساز نیست، مرورگرتون رو هعی باز و بسته کنید  و دکمه‌های کیبرد رو به صورت تصادفی بزنید

    برای مشاهده‌ی کلید‌ ساخته شده  از این کامند استفاده کنید.

     

    می‌رسیم به بخش زیبای کار و اون ساخت فضایی برای نگه‌داری پسوردهاست (با استفاده از کلیدهایی که ساختیم)! برای اینکار از دستور زیر استفاده می‌کنیم.

     

    ‫gpg-id در اینجا همون ایمیل اختصاصی کلید میشه که مرحله‌ی قبل ایجاد کردید.

    با زدن این دستور  فولدر مخفی .password-store  در پوشه‌ی خونگی‌تون  به همراه یک فایل به اسم gpg-id ساخته میشه. فایل gpg-id به برنامه pass میگه که پسوردهای ساخته شده با کدوم کلید رمز بشن.

    برای ذخیره‌ی پسورد جدید از دستور زیر استفاده کنید.

     

    که میشه پسورد روت دیتابیس سرور ۱۷۲.۲۰.۲۳.۲ و با زدنش برنامه ۲ بار ازتون پسورد رو می‌پرسه.

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

     

    فایلی که داخل این فولدر موجوده به اسم root.gpg رو اگر با یک ادیتور باز کنید یک سری نوشته‌ی در هم و برهم خواهید دید که بدون دسترسی به کلید باز کردنش کار خیلی خیلی سختیه و تا حدی نشدنیه!

    و برای همین دیگه نگرانی از شیر کردن این فضا با دیگران نخواهید داشت. به راحتی میشه این فضا رو با استفاده از git با دیگران به اشتراک گذاشت بدون اینکه نگران باشید  دیگران پسوردها رو بخونن. برای اینکار خود pass دستورهایی مشابه دستورهای git رو براتون ایجاد کرده.

     برای استفاده‌ی شخصی هم کافیه محتویات پوشه‌ی password-store رو به فضای کلود رایگانی مثل دراپ‌باکس انتقال بدید که خیالتون از بابت دسترسی دائمی به پسوردها و کلیدها راحت باشه.

     

    حالا فرض کنید میخواید برای گروه Dev پسوردهایی رو بسازید که با کلید خودشون رمز شده باشن! برای اینکار به برنامه pass میگیم که فولدر Dev رو ایجاد کنه اینبار با کلید مد نظرمون..

     

    روش دستی هم اینه که داخل پوشه‌ی password-store فولدر Dev رو ایجاد کنیم و داخلش فایل مخفی  gpg-id رو ایجاد کنیم. محتوای فایل هم ایمیلی هست که به کلید اختصاص دادیم، [email protected] . برنامه‌ی pass تمام پسوردهایی که زیر مجموعه‌ی Dev باشن رو به صورت خودکار با کلید جدید ایجاد میکنه.

    برای دیدن لیست پسوردهایی که ذخیره دارید کافیه دستور pass رو بزنید.

     

    برای نمایش پسورد باید کامند زیر رو بزنید و passphrase خودتون رو هم به برنامه بدید تا  پسورد رو مشاهده کنید. passphrase رو هم میشه کاری کرد که تا زمانی که لاگین هستید معتبر باشه و هر بار برنامه ازتون اون رو نپرسه. حتی میشه کاری کرد که passphrase پسورد لاگین به سیستم بشه که با جستجو میتونید اون رو پیدا کنید :)

     

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

     

    برای پاک کردن یک پسورد هم از این دستور استفاده کنید.

     

    یا به صورت عادی برید فایل و فولدرش رو پاک کنید.

  • یوتیوب قبل و بعد از فیلتر شدن

    اون زمانا که فیلترینگ بدین شکل کنونی نبود، ملت برو بیایی داشتن به کانال یوتیوبم و ۲۱ هزار بازدید از کانال یوتیوب هم اکثرا مربوط به همون قدیمه. تصویر زیر بازدید ماه به ماه از سال ۲۰۰۸ تا به امروز رو نشون میده و اینکه چطور بازدید از ۱۵۰۰ و ۱۰۰۰ نفر در ماه یهو سقوط میکنه به ۱۵۰ بازدید ماهیانه!

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

    stat

    به قول دوستی، رییس جمهوری که نتونه فیلتر یک سایت رو برداره، بهتره برش دارن و جاش همون نخست وزیری قدیم رو علم کنن!

  • ده سال گذشت

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

    از اونجایی که از اون دسته از آدم‌هایی نبودم که اتفاقات رو با جزئیاتشون، تمام و کمال روی کاغذ ثبت کنم و دفتر خاطره‌ای برای خودم راست و ریس کنم،‌ برای همین هیچ وقت یادم نمیاد که کی و چه زمانی مثلا رفتم پی لینوکس، یا مثلا چه زمانی بود که با ویندوز کار کردم و چه زمانی اولین‌ پنتیوم تری ۸۰۰ رو بابا برام خرید یا مثلا چند بار فلان کوه رو بالا رفتم و اینجور اتفاقات همیشه می‌رفتن توی زباله دانی تاریخ ذهنم.

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

    10years-banner_logo

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

    10years-banner_balloons

    یادمه چند ماهی زودتر با کتاب ردهت آلن باغومیان که از نمایشگاه کتاب تهیه‌ش کرده بودم عملا خودم رو آماده ورود به این دنیای جدید کرده بودم.

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

    شب یلداتون هم در ضمن مبارک!‌

     

     

  • نصب دیسترو جدید از راه دور

    موقعیتی رو تصور کنید که روی سروری که در اختیار دارید می‌خواید یک سیستم عامل از اول نصب کنید. اما دسترسی به kvm ندارید.

    اگه روی سرور دسترسی به گراب داشته باشید به راحتی می‌شه بدون داشتن kvm یک سیستم عامل جدید رو نصب کرد.

    حتی موقع خرید سرور جدید بجای اینکه پول بدید بابت فعال کردن kvm خیلی راحت با سنت‌اواس ۵.۹ میشه سرور ددیکیتد رو تهیه کرد و بعد با روشی که گفته میشه اکثر سیستم عامل‌های جدید رو از اول خودتون نصب کنید :)

    برای کسایی هم که نمی‌دونن kvm چیه بگم یه چی تو همون مایه‌های مانیتور کنار کیس و به صورت ریموت تصویر نصب دیسترو جدید رو خواهید داشت و بنابراین می‌شه سیستم رو به نحو مطلوب پارتیشن بندی و به دیسترو مطلوب آپگرید کرد.

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

    مثلا برای نصب سنت‌اواس ۶.۴ کافیه این مراحل رو انجام بدید.

    cd /boot

    mkdir centos6

    cd centos6

    wget http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/vmlinuz

    wget http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/initrd.img

    و حالا ویرایش گراب ( با فرض اینکه سنت‌اواس ۵.۹ و گراب یک دارید)‌

    vi /boot/grub/menu.lst

    این سه خط رو اضافه میکنید

    title CentOS 6.4 VNC Installation
    root (hd0,0)
    kernel /centos6/vmlinuz vnc vncpassword=yourPassword headless ip=10.0.0.10 netmask=255.255.255.0 gateway=10.0.0.1 dns=8.8.8.8 ksdevice=eth0 method=http://mirror.centos.org/centos/6.4/os/x86_64/ lang=en_US keymap=us
    initrd /centos6/initrd.img

    رنگای آبی تعداد خطا رو نشون می ده که کلا ۴ خط خواهید داشت. همه‌شون رو هم با توجه به تنظیماتی که توی گراب وجود داره کپی‌ پیست می‌کنید. فقط خطی رو که مربوط به kernel و initrd هست رو به شکل بالا دستکاری میکنید. آی‌پی و نت مسک و گیت‌وی هم که با توجه به هر سروری فرق میکنه و خیلی مهمه! با این ای‌پی می تونید ریموت از طریق vnc وارد پروسه نصب بشید :)

    پارامتر default=0 رو هم می‌تونید تغییر بدید تا به صورت خودکار بعد از ریست، سیستم با کرنل دیسترو جدید بوت بشه. اگرم چیزی ترکید و سیستم بالا نیومد می‌تونید زنگ بزنید به دیتاسنتر و بگید که سیستم رو ریست بدن و اینبار برن توی کرنل دیسترو قدیمی! :)‌ اما راه بهتری هم هست که کاری کنیم بدون ریست و تغییر گراب، کرنل و initrd بوت بشه! برای اینکار باید برنامه kexec-tools رو نصب داشته باشید.

    kexec -l /boot/centos6/vmlinuz –initrd=/boot/centos6/initrd.img

    kexec -e

    دستور اول کرنل و initrd رو در مموری بارگذاری میکنه و دستور دوم باعث بالا اومدن کرنل جدید میشه.

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

    http://cdimage.ubuntu.com/netboot/

    http://www.debian.org/distrib/netinst

    و اپن‌سوزه

     mkdir /boot/install

     cd /boot/install

     wget –output-document=oS-12.3.vmlinuz.install http://download.opensuse.org/distribution/12.3/repo/oss/boot/$(uname -i)/loader/linux

     wget –output-document=oS-12.3.initrd.install http://download.opensuse.org/distribution/12.3/repo/oss/boot/$(uname -i)/loader/initrd

    و در گراب هم تنظیمات به این شکل میشه

      title install
    root   (sdX,Y) # change this (sdX,Y)
    kernel /boot/install/oS-12.3.vmlinuz.install install=http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/
    initrd /boot/install/oS-12.3.initrd.install

  • به جای اس‌اس‌اچ از موشی استفاده کنید

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

    Mosh مخفف Mobile Shell دقیقا با همین هدف نوشته شده، اینبار بجای TCP با استفاده از پروتکل UDP اتصال به سرور مقصد برقرار میشه  و اولین ویژگی که اون رو حس خواهید کرد، زنده بودن محیطه، انگار نشستید پشت مانیتور و دارید تایپ می‌کنید دستور رو، ویژگی دوم اینه که با عوض شدن آی‌پی حتی اتصال به سرور مقصد قطع نمیشه! اگرم که آی‌اس‌پی تون هعی بازیش گرفته و چراغ لینک مودم‌تون خاموش روشن می‌شه دیگه خیالتون راحته که از نو نباید به سرور مقصد وصل شید.

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

    موش حاصل کار یکی از دانشجوهای دانشگاه Mit رونوشت به خودمون و دانشگاهامون که هیچ خروجی ازشون نداریم (داریم؟)

    نمودار بالا هم مقایسه زمان پاسخ‌دهی در ssh و mosh رو نشون می‌ده که خب ۵ و ۱۷۳ میلی ثانیه رو مقایسه کنید با ۵۰۰ میلی ثانیه اس‌اس‌اچ! تقاوت خیلی خیلی محسوسه.

    نکته ای که هست اینه که mosh برای وصل شدن در ابتدا از ssh استفاده میکنه و برای همین اگه بدون وارد کردن پسورد به سرور مقصد وصل می‌شید با mosh هم مشکلی نخواهید داشت.

    نصب Mosh کار خیلی سختی نیست و احتمالا هر دیسترویی که داشته باشید اون رو درون مخازن می‌تونید گیر بیارید!

    اگرم روی سرور فایروال دارید ، پورت‌های ورودی UDP بین ۶۰ هزار تا ۶۱ هزار رو باز کنید تا کلاینت بتونه به سرور وصل شه.

    موش
    موش

    برای اتصال به سرور هم مشابه ssh باید همچین دستوری رو بزنید!

    mosh [email protected]

    ‫پی‌نوشت: مرسی از دوست خوبم ebraminio بخاطر معرفی این برنامه خوب:ی