You are here

وب‌نوشته‌های مهدی عطائیان

Subscribe to وب‌نوشته‌های مهدی عطائیان feed
لینوکس اپن‌سورس
Updated: 46 دقیقه 52 ثانیه پیش

ارایه با موضوع موتور جستجوری توزیع‌شده یاسی

Sun, 04/16/2017 - 13:14

چند وقت پیش توی لاگ مشهد یک ارایه با موضوع موتور جستجوی توزیع شده یاسی (Yacy) داشتم. اسلاید‌های این ارایه رو می‌تونید اینجا ببینید و در صورت نیاز دانلود کنید.

Categories:

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

Sun, 06/07/2015 - 21:52

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

Categories:

آشنایی با بیت کوین

Fri, 03/13/2015 - 10:31

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

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

سپس تاریخچه بیت کوین روش کار بیت‌کوین، کیف پول، بلاک‌چین، تراکنش‌ها در بیت‌کوین، الگوریتم کار اجباری هش کش، و الگوریتم‌های مورد استفاده در پولهای دیجیتال cryptocurrencies شامل proff of stack و proff of work بررسی شد. همچنین امنیت بیت کوین، معایب و مزایای بیت‌کوین بررسی شد.

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

یکی دیگر از بخش‌های این ارائه آشنایی با حباب‌های اقتصادی و آشنایی با چند حباب معروف و مقایسه این حباب‌ها با حباب بیت کوین بود که در انتها کاربران را به استفاده هوشمندانه از بیت‌کوین تشویق می‌کند.

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

اسلاید رو در این آدرس در اسلاید شیر و فیلم‌های ضبط شده رو در این آدرس و در سایت یوتیوب می‌تونید ببینید.

Categories:

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

Wed, 01/07/2015 - 10:28

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

Categories:

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

Wed, 12/24/2014 - 13:02

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

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

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

Categories:

Onion network architecture

Wed, 12/24/2014 - 09:48

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

Categories:

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

Mon, 09/29/2014 - 13:10

یکی از سیاست‌های امنیتی که بیشتر سازمان‌ها به کار می‌برند تغییر پورت پیش فرض 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 متصل شود. در غیر این صورت درخواست کاربر رد می‌شود.

Categories:

تفاوت Warranty و guarantee

Mon, 05/19/2014 - 06:06

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

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

Categories:

rdesktop

Fri, 02/08/2013 - 18:53

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

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

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

rdesktop ip

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

rdesktop iprdesktop ip -u username -p pass

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

rdesktop ip -u username -p pass -g 1024x640

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

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

rdesktop ip  -r clipboard:PRIMARYCLIPBOARD

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

rdesktop ip  -r disk:home=/home

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

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

rdesktop -u administrator -p passwords.txt 192.168.0.100

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

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

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

Categories:

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

Sun, 11/04/2012 - 19:17

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

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

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

Categories:

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

Sat, 11/03/2012 - 18:45

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

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

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

ls -las
ls -l -a -s
ls -la -s
ls -l -as

 

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

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

#!/bin/bash
while getopts "abc:d:" OPTION ; do
   case $OPTION in
      # help
      a)
         echo "a!"
      ;;
      b)
         echo "b!"
      ;;
      c)
         echo "c = $OPTARG" 
      ;;
      d)
         echo "d = $OPTARG"
   esac
done

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

while getopts "abc:d:" OPTION ; do

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

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

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

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

$ ./bash.sh -ab -c param1 -dparam2
a!
b!
c = param1
d = param2

 

Categories:
Trigup Fanap O'Reilly Media
iranserver

زبان‌ها