نوشته‌های من

درباره برنامه‌نویسی، بازی، کتاب و هر چیزی که دوست داشته باشم

نوشته‌های من

درباره برنامه‌نویسی، بازی، کتاب و هر چیزی که دوست داشته باشم

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

۵ مطلب در دی ۱۳۹۲ ثبت شده است

مطلبی که در اینجا قصد دارم بنویسم، نتیجه جستجوی من در ارتباط با نحوه نوشتن یک فایروال در لینوکس است.

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

این‌ها سوال‌هایی در ذهنم بودند که برای آن‌ها دنبال جواب بودم و البته راه‌های رسیدن به یک فایروال زیاد است و چیزی که اینجا بیان می‌شود تنها یکی از آن‌هاست و لزوما بهترین راه نیست. لازم به ذکر است که منظور از فایروال، فایروال نسل یک است و به طور خلاصه منظور فایروالی است که فقط بسته‌ها را فیلتر می‌کند و State-full نیست و بسیاری از ویژگی‌های یک فایروال نسل جدید را ندارد. برای مطالعه نسل‌های مختلف فایروال به صفحه فایروال در ویکی‌پدیا[^] و یا مراجع دیگر مراجعه نمایید.

توجه نمایید که آنچه در اینجا آمده است بر روی کرنل لینوکس 3.13.0-rc4+ و 3.5.0.40 تست شده است و ممکن است برای نسخه‌های دیگر نیاز به مقداری تغییر داشته باشد.

  • حامد ذقاقی

   

شبکه خدمات رسانی شهری

«شبکه بیسیم خدمات رسانی شهری» یک سامانه سخت‌افزاری، نرم‌افزاری توزیع شده است که در راستای ارائه خدمات رایگان شهری به شهروندان تهیه شده است. این سامانه، بستری تحت وب را فراهم می‌کند که ارائه بسیاری از خدمات شهری با کمترین هزینه را امکان‌پذیر می‌کند. این خدمات می‌توانند در دو سطح شهری و محله‌ای ارائه گردد.


این سامانه به گونه‌ای طراحی شده است که هم هزینه‌های استفاده برای شهروندان به صفر می‌رسد و هم هزینه‌های راه‌اندازی و نگاهداری آن نسبتاً پایین است.


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

  • حامد ذقاقی

Processing مجموعه‌ای از کتابخانه‌های جاوا به همراه یک محیط برنامه‌نویسی(PDE) است، که در ابتدا برای آموزش مبانی برنامه‌نویسی به صورت تعاملی-بصری ساخته شده بود و اکنون بیشتر توسط برنامه‌نویسان حرفه‌ای مورد استفاده قرار می‌گیرد. بیش از هزاران دانشجو، هنرمند، محقق و علاقه‌مند از Processing جهت یادگیری، نمونه سازی و ساخت محصول نهایی استفاده می‌کنند.

PDE

  • حامد ذقاقی

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

از آنجایی که این برنامه بایستی همیشه در حال اجرا باشد، نمی‌توانستم از امکان فوروارد کردن X روی ارتباط SSH استفاده کنم.


X سرور مجازی

همانطور که از اسمش بر می‌آید یک X سرور مجازی است که اکثر وظایف یک X سرور را انجام می‌دهد بدون اینکه نیازی به صفحه نمایش و یا هر گونه سخت افزار ورودی مانند ماوس و کیبور باشد.  

موارد استفاده کمی برای این نوع سرور وجود دارد،  مانند

  • اجرا کردن برنامه‌های که واقعا نیازی به یک x سرور ندارند و یا اگر نیاز دارند هیچ تعاملی با کاربر ندارند! 
  • تست برنامه‌ها در تنظیمات نمایشی غیر استاندارد و یا تنظیماتی که سخت افزار آن موجود نیست

Xvfb نمونه‌ای از این سرور هاست که از یک بافر برای ترسیم استفاده می‌کند و می‌توانید با استفاده از فرمان زیر آن را در اوبونتو نصب کنید.
$ sudo apt-get install xvfb
و به صورت زیر می‌توانید آن را راه‌اندازی کنید.
$ Xvfb :1
و سپس در کنسولی که می‌خواهیم از آن استفاده کنید ابتدا متغیر محیطی DISPLAY را تنظیم می‌کنیم و سپس برنامه مورد نظر را  اجرا می‌کنید.
$ export DISPLAY=:1

برای اطلاع بیشتر از این فرمان به اینجا مراجعه کنید.



  • حامد ذقاقی

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


سیستم فایلی sshfs

این سیستم فایلی بر پایه یک ارتباط ssh پیاده‌سازی شده است و می‌توانید با استفاده از این سیستم فایلی، یک دایرکتوری از یک کامپیوتر با دسترسی ssh را درون یکی از دایرکتوری‌های کامپیوتر خودتان mount‌ کنید و بدین ترتیب به آن‌ها در کامپیوتر خودتان دسترسی داشته باشید و یا آن‌ها را ویرایش کنید.


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

$ sudo apt-get install sshfs

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

sshfs user@remote-address:remote-dir local-dir

که در آن، user نام کاربری است که از آن برای ارتباط ssh استفاده می‌کنید، remote-address هم آی‌پی و یا نام کامپیوتری است که به آن دسترسی ssh دارید و remote-dir دایرکتوری است که می‌خواهید mount کنید. local-dir هم آدرس دایرکتوری روی کامپیوتر خورتان است که می‌خواهید از آن طریق به فایل‌ها دسترسی داشته باشید. 

به عنوان نمونه چنانچه با کاربر zaghaghi به آدرس 1.2.3.4 دسترسی ssh داشته باشم، می‌توانم با فرمان زیر دایرکتوری /var/www/ کامپیوتر راه‌دور را در دایرکتوری /tmp/remote/www/ کامپیوتر خودم mount کنم.

$ sshfs zaghaghi@1.2.3.4:/var/www/ /tmp/remote/www/

توجه داشته باشید که هر دو دایرکتوری بایستی وجود داشته باشند.

پس از اجرای فرمان از شما رمز عبور خواسته می‌شود و بایستی رمز عبوری را که از آن برای ارتباط ssh استفاده می‌کنید، به کار ببرید.


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

$ sudo umount local-dir
$ sudo fusermount -u local-dir

مرجع

  • http://fuse.sourceforge.net/sshfs.html [^]

شاد و پیروز باشید.

  • حامد ذقاقی