ارائه پروتکل XMPP

در جلسه ۱۷۱ ام لاگ مشهد ارائه‌ای با موضوع پروتکل XMPP داشتم. اسلاید‌های این ارائه رو در این آدرس می‌تونید ببینید.

ارسال شده در اپن سورس, شبکه, کامپیوتر, لینوکس, نرم افزار آزاد, نرم‌افزار آزاد | برچسب‌شده , , , , | ۴ پاسخ

شرکت پدیده و نظریه احمق بزرگ‌تر

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

ارسال شده در اجتماعی, جامعه, سیاسی | برچسب‌شده , , , , , , | ۴ پاسخ

تنگنایی در شبکه تور که ممکن است باعث از دسترس خارج شدن شبکه شود

در ساختار شبکه تور ده عدد سروربه نام Directory Authorities و یا directory node داریم که این سرورها لیست همه نودهای شبکه را نگهداری می‌کنند آدرس و مشخصات این نودها در کلاینت تور به صورت hardcode (تنها با تغییر در کدهای کلاینت تور قابل تغییر است) نگهداری می‌شود.
این سرورها یکی از تنگناهای شبکه تور هستند چنانچه این سرورها از دسترس خارج شوند یا مدیریت این سرورها از دسترس خارج شود و افراد بدجنس مدیریت این سرورها را به دست بگیرند می‌توانند شبکه تور را از دسترس خارج کنند و یا کنترل تمام شبکه را به دست بگیرند.

اگر بیشتر از ۵۰ درصد این سرورها (بیشتر از ۵ سرور) از دسترس خارج شود شبکه تور ناپایدار خواهد شد!

طی روزهای گذشته Thomas White که درصدی از سرورهای خروجی تور را در هلند مدیریت می‌کند در لیست پستی تور اعلام کرده که  دسترسی‌اش را به سرورهایش در دیتاسنتر از دست داده  و پس از بررسی آخرین لاگ سنسورها به نظر می‌رسد درب سرورها باز شده و یک usb ناشناس به سرورها متصل شده.
White اعلام کرده اگر این سرور مجددا فعال شدند کاربران نباید به این سرورها اعتماد کنند و تا زمانی که خود او در پیامی (رمز شده با کلید خودش) اعلام نکرده که این سرورها مورد اعتماد هستند نباید از این سرورها استفاده کنند.

ارسال شده در اپن سورس, تکنولوژی, شبکه, کامپیوتر, لینوکس, نرم افزار آزاد | برچسب‌شده , , , | ۳ پاسخ

Onion network architecture

چهار شنبه هفته قبل (۲۶ آذر ماه ۱۳۹۳) توی جلسه گروه کاربران لینوکس مشهد در مورد ساختار شبکه OR صحبت کردم. اسلایدها رو می‌تونید  از اینجا دانلود کنید همینطور فیلم‌ها رو میتونید از یوتیوب و یا آپارات (بخش اول، دوم، سوم، چهارم) مشاهده کنید.

ارسال شده در آزاد, اپن سورس, اجتماعی, تکنولوژی, جامعه, شبکه, علم, کامپیوتر, لینوکس, نرم افزار آزاد, نرم‌افزار آزاد | برچسب‌شده , , , , , , , , | پاسخ دهید:

تغییر دادن پورت پیش فرض ssh امنیت را افزایش نمی‌دهد

یکی از سیاست‌های امنیتی که بیشتر سازمان‌ها به کار می‌برند تغییر پورت پیش فرض ssh از ۲۲ به پورتهایی ناشناس مانند ۲۲۲۲ یا … است. این روش بر اساس سیاست Security through obscurity و یا (امنیت از طریق ابهام) کار می‌کند.
سیاست Security through obscurity بر افزایش امنیت با استفاده از پنهان کردن الگوریتم‌ها و مخفی کردن طراحی‌ها فعالیت می‌کند.
این یک سیاست امنیتی استاندارد نیست و متخصصان امنیت این سیاست را در مقابل سیاست principle of simplicity و یا (اصل سادگی) قرار می‌دهند و در نتیجه هیچ گاه استفاده از این روش را پیشنهاد نمی‌دهند به عنوان مثال موسسه ملی استاندارد و فناوری ایالات متحده (NIST) می‌گوید:
System security should not depend on the secrecy of the implementation or its components.
امنیت سیستم نباید به پنهان کاری در نحوه پیاده‌سازی و یا اجزای آن وابسته باشد.

تغییر پورت پیش فرض ssh از ۲۲ به هر پورت دیگر را می‌توان به انتقال درب منزل به پشت ساختمان با هدف جلوگیری از ورود دزد تشبیه کرد.
با توجه به آنچه در بالا گفته شد تغییر پورت پیش فرض نه تنها امنیت را افزایش نمی‌دهد بلکه به دلایلی که در زیر می‌آید باعث کاهش امنیت سیستم شما خواهد شد.
در لینوکس کاربرانی که مجوز روت ندارند نمی‌توانند پورت‌های با شماره کمتر از ۱۰۲۴ را باز کنند، چنانچه برنامه‌ای (آپاچی، دی‌اچ‌سی‌پی سرور، میل‌سرور) بخواهد این پورتها را باز کند یا باید مجوز کاربر روت داشته باشد و یا در ابتدا با مجوز کاربر روت پورت را باز کند سپس به مجوز کاربر غیر روت (مانند www-data یا nobody) باز گردد. در این حالت برنامه‌هایی که مجوز روت نداشته باشند نمی‌توانند پورت‌هایی مانند ssh را باز کنند و اطلاعات روی این پورت‌ها را شنود کنند.
وقتی مدیر سیستم پورت پیش فرض ssh را به چیزی بالاتر از ۱۰۲۴ تغییر می‌دهد هر برنامه و اسکریپتی (بدون نیاز به مجوز روت) می‌تواند روی پورت ssh بنشیند و با شبیه‌سازی پروتکل ssh پسوردهای کاربران رو بدزدد.
بنابراین پیشنهاد می‌شود پورت پیش فرض ssh را تغییر ندهید و با روشهای دیگر امنیت را افزایش دهید.
نکته: اگر با وجود دلایل بالا باز هم می‌خواهید پورت پیش فرض ssh را تغییر دهید. با روش‌های زیر می‌توانید بخشی از مشکلات امنیتی را رفع کنید.
۱- به جای احراز هویت با پسورد از کلید عمومی استفاده کنید. اگر از کلید عمومی استفاده کنید برنامه‌هایی که مجوز روت نداشته باشند با شنود روی پورت ssh تنها می‌توانند کلید عمومی سرور شما را به دست باورند (کلید عمومی پابلیک و عمومی است!)
۲- به جای تغییر پورت پورت را مخفی کنید (به جای اینکه درب را به پشت ساختمان منتقل کنید درب را مخفی کنید!). port-knocking یک روش افزایش امنیت است که بر پایه سیاست Security through obscurity طراحی شده است اما طراحی هوشمندانه‌تری داشته است! در این روش کاربر باید سعی کند با ترتیب خاصی پورت‌ها را باز کند (با ترتیب خاصی درب ساختمان را بزند.) تا پورت پیش فرض ssh یعنی پورت ۲۲ باز شود یا بتوان به این پورت متصل شد.
به عنوان مثال کاربر ابتدا سعی می‌کند به پورت ۱۰۴۶ متصل شود سرور درخواست کاربر را دریافت می‌کند و آی‌پی کاربر را ثبت می‌کند اگر کاربر مجددا بخواهد به پورت ۲۲ متصل شود با توجه به اینکه قبلا درخواست بار کردن پورت ۱۰۴۶ را داده می‌تواند به ssh متصل شود. در غیر این صورت درخواست کاربر رد می‌شود.

ارسال شده در کامپیوتر, لینوکس, نرم‌افزار آزاد | یک پاسخ

تفاوت Warranty و guarantee

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

وارنتی Warranty: واژه وارنتی یعنی ضمانت تعویض قطعات وسیله در صورت نیاز در بازه زمانی خاص.
برای مثال: کارخانه سازنده تضمین می‌کند که تا یک سال پس از خرید، ترمز وسیله نقلیه را در صورت خراب شدن به صورت رایگان تعویض کند.
پس: ما عموما به اشتباه واژه گارانتی را به جای وارنتی به کار می‌بریم.

ارسال شده در زبان | برچسب‌شده , , | ۲ پاسخ

rdesktop

برای اتصال از راه دور  به سرورهای با سیستم عامل ویندوز برنامه‌های زیادی در سیستم عامل لینوکس وجود داره. برنامه خط‌فرمانی rdesktop یکی از این برنامه‌هاست.

این برنامه‌ها از پروتکل RDP که بوسیله مایکروسافت ایجاد شده برای ارتباط استفاده می‌کنند. نکته جالب اینجاست که این برنامه به نسبت remote desktop ویندوز پروتکل RDP رو به صورت کاملتر پیاده سازی کرده.

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

وارد کردن نام کاربری و پسورد توی صفحه لاگین ویندوز کار سختیه مخصوصا اگه کلیپبرد فعال نباشه. با پارامترهای u و p میشه نام و کلمه عبور رو به سرور ارسال کرد.

برای تغییر رزولوشن از پارامتر ‎-g استفاده می‌کنیم.

با پارامتر ‎-r یک ابزار رو در سیستم کلاینت به سرور تغیییر مسیر می‌دیم. و در نتیجه اون ابزار (کلیپ برد هارد و …) توی سرور هم دیده می‌شه و قابل استفاده است.

اشتراک کلیپ‌برد کلاینت با سرور :

اشتراک دایرکتوری ‎/home در سرور ویندوز.

برای فشرده سازی ارتباط از پارامتر ‎-z استفاده می‌کنیم.

از پارامتر ‎-P (حرف پی بزرگ) برای کش کردن عکس‌های bitmap استفاده می‌شه. استفاده از این پارامتر پهنای باند مصرفی رو به میزان زیادی کاهش می‌ده.

پارامتر ‎-m رویدادهای حرکت موس رو به سرور ارسال نمی‌کنه در نتیجه استفاده از این آپشن پهنای باند مصرفی رو کاهش می‌ده و سرعت رو افزایش می‌ده.

پارامتر ‎ -a عمق رنگ رو مشخص می‌کنه. هر چه عمق رنگ رو کمتر انتخاب کنید سرعت ارتباط زیادتر و کیفیت تصویر کمتر میشه.

پارامتر ‎ -f پنجره رو به صورت full screen نمایش می‌ده. برای خروج از حالت تمام صفحه دکمه‌های alt + ctrl + enter رو باید بزنید.

ارسال شده در کامپیوتر, لینوکس, نرم افزار آزاد, نرم‌افزار آزاد | برچسب‌شده , , , | ۲ پاسخ

سخت‌افزار‌های آزاد قسمت هفتم (ایستگاه رادیو با مجوز GNU)

توی نوشته‌های قبل (قسمت اول، دوم، سوم، چهارم، پنجم ، ششم) در مورد چند تا سخت‌افزار آزاد نوشتم. توی این قسمت از ایستگاه رادیو آزاد مینویسم.

رادیو گنو پروژه‌ای قدیمی است. شروع این پروژه حدود ده سال پیش بوده و هدف اصلی پروژه ساخت ایستگاه رادیویی بوده که بیشتر کارها رو با نرم‌افزار انجام بده و کمترین نیاز به سخت‌افزار داشته باشه. در حقیقت توسعه دهنده‌های رادیو گنو از روش SDR و یا software defined radio برای پیاده سازی این رادیو استفاده کردند. در روش SDR به جای به جای ساخت همه تجهیزات مورد نیاز یک ایستگاه رادیویی (میکسر، فیلتر، آمپلی‌فایر و …) به صورت سخت‌افزاری از پی‌سی برای پیاده سازی این امکانات بصورت نرم‌افزاری استفاده می‌کنند و خروجی صوتی نهایی رو با فرستنده‌های رادیویی در طول موج‌های متفاوت ارسال می‌کنند.

پروژه گنورادیو سخت افزارهای متعددی رو پشتیبانی می‌کنه مثل سخت‌افزار USRP و یا funcubedongle .

ارسال شده در آزاد, اپن سورس, شبکه, کامپیوتر, لینوکس, نرم افزار آزاد, نرم‌افزار آزاد | برچسب‌شده , , , , , , | یک پاسخ

مدیریت پارامترهای ارسالی به اسکریپت‌های بش با دستور getopts

در برنامه‌های خط فرمانی cli کاربر با استفاده از پارامتر با برنامه و یا اسکریپت ارتباط برقرار می‌کنه بنابراین یکی از اولین قدمهای نوشتن یک اسکریپت حرفه‌ای اینه که پارامترهای ارسال شده به اسکریپت رو بصورت کاملا حرفه‌ای بررسی کنید. دستور getopts یکی از برنامه‌های خیلی خوب برای مدیریت پارامترهای ارسالی به اسکریپته که به زیباترین شکل ممکن آپشن‌های را بررسی و پارس میکنه. اما قبل از بررسی این دستور بهتره تا حدودی با پارامترهای ارسالی به برنامه‌های cli آشنا بشیم.
در لینوکس پارامترهایی که به یک دستور یا اسکریپت بش ارسال می‌کنیم به سه صورت میتونه باشه.
آپشن‌های تک کاراکتری ( single-character options) مثل ‎-a در دستور ls
آپشن‌های طولانی سبگ گنو (GNU-style long option) مثل ‎- -all
آپشن‌های طولانی سبک XF86 یا (XF86-style long options) مثل ‎-all

برنامه getops قادر به بررسی آپشن‌های طولانی سبگ گنو و آپشن‌های طولانی سبک XF86 نیست و فقط میتونه پارامترهای رو به شکل تک حرفی ببینه.

این مثالها رو در نظر بگیرید.

 

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

این کد رو یک نگاهی بهش بکنید تا ببینیم چجوری باید از getopts استفاده کنیم.

از اونجا که پارامترهای ارسالی به اسکریپت ما ممکنه بیش از یکی باشه از یک حلقه while استفاده می‌کنیم تا تک تک پارامترها رو بررسی کنیم

عبارت abc:d:‎  به getopts میگه که پارامترهای اسکریپت اینهاست

  • -a
  • -b
  • -c param
  • -d param

حرف a به تنهایی حرف b به تنهایی حرف c به همراه یک پارامتر و بلاخره حرف d به همراه یک پارامتر اضافه!  توجه دارید که هر دو نقطه جلوی یک پارامتر به معنی یک پارامتر اضافه است! در هر بار اجرای getopts یکی از پارامترهای ارسالی به اسکریپت خونده میشه و توی متغییر OPTION ریخته میشه و ما با استفاده از یک حلقه case این پارامترها رو دونه دونه بررسی می‌کنیم!  اگه پارامتر اضافه‌ای داشته باشیم توی متغییر OPTARG ریخته میشه.

اگر اسکریپت رو با همراه پارامترها اجرا کنیم نتیجه این خواهد بود.

 

ارسال شده در اپن سورس, کامپیوتر, لینوکس, نرم افزار آزاد, نرم‌افزار آزاد | برچسب‌شده , , , , , , , , , | پاسخ دهید: