مقدمه‌ای بر tcpdump

همیشه برای بعضی از کاربران سؤالاتی مطرح است که از کدام برنامه برای log گیری شبکه استفاده نمایند. تا زمانی که این خواسته کاربران مشخص نباشد این سؤال بدون جواب باقی می‌ماند.
خوب مسلماً برنامه‌های زیادی با کاربرد‌های زیادی هستند انواع monitoring شبکه را داریم که هریک بنا به رسته خود مورد بحث قرار می‌گیرد و باز در بحث tcpdumpsniffing تقسیم‌بندی های متفاوتی همانند log گیری حجم اطالاعات شبکه، capture کردن داده‌ها، ابزاری برای برنامه‌سازی و غیره موجودند که همزمان با زمان و پروتکل‌ها تغییر می‌کنند.
اما چرا tcpdump ؟ زمانی که کاربری بخواهد در مورد packet ها تحقیق‌ کند باید آن‌ها capture کرده و حال یا از آن‌ها log گرفته و این log مهم است و یا کار با یک grep حل می‌شود. سؤالی که مطرح می‌شود این است که wireshark نیز همین کار را انجام می‌دهد چرا از آن استفاده نشود؟ مسلماً یک کاربر شبکه همزمان بر روی چندین سرور باید برود که هیچ کنسول گرافیکی وجود ندارد و بقیه قضیا… اما اگر در مورد کاربرد wireshark می‌خواهید بپرسید در برنامه‌سازی به شدت کاربرد دارد.
ادامه خواندن مقدمه‌ای بر tcpdump

نصب و راه اندازی فایرول PF در FreeBSD (شماره اول)

دراین قسمت ابتدا به مقدمات نصب در FreeBSD می‌پردازیم. FreeBSD همانند گنو/لینوکس نمی‌باشد که یکسری pf-iconپیش‌فرض‌ها در کرنلش وجود داشته باشد. نه تنها کرنلش بلکه خود سیستم‌عامل آن نیز یک سیستم‌عامل لخت محسوب می‌شود. بدین جهت برای هر کاری باید مقدماتی را در خود سیستم‌عامل آماده سازی نمود.البته ناگفته نماند در این شماره کمی از مقدمات PF نیز گفته خواهد شد.pf-icon
سؤالی که ممکن است پیش بیاید این است که چرا در خود OpenBSD نصب نکردیم. جواب این سؤال را بهتر است با تعریف خود community آن ارایه کنم: OpenBSD یک community حمایت کننده از پروژه‌هایی همانند OpenSSH، LibreSSL، OpenSMTPD ، OpenBGPD، OpenIKED و mandoc می‌باشد. در‌واقع مکانی برای رشد و کمک به نرم‌افزار آزاد در مقیاس بزرگ می‌باشد.
ادامه خواندن نصب و راه اندازی فایرول PF در FreeBSD (شماره اول)

systemd در دبیان (شماره نهایی)

در شماره پیش با مفاهیم systemd آشنا شدیم. حداقل‌هایی برای ذهنیت اولیه کار با systemd آماده شد تا با Systemd-on-fedoraمفاهیمی مثل performance ، مهاجرت بدنه اصلی گنو/لینوکس (کل فرآیند بوت) و غیره آشنا باشد. اما چیزی که در دنیای واقعی بدان نیاز دارد دستوراتی است که بعد از درک پایه مفاهیم اصلی بدان ضرورتاً نیازمند است. در این شماره سعی شده است تا مستقل از دیسترو بدان اشاره شود. در SysV هر چیزی برای خودش Systemd-on-fedoraرشد کرده بود و تحت لوای فرآیند خاصی نبود ولی در systemd همانطور که در شماره پیشین بدان اشاره شد، همه چیز در فرآیند بوت تحت لوای systemd می‌باشد، ضرورت آنهم صرفاً یکپارچگی بوده تا به سرعت بالاتری رسد. بهتر است این متن را در ۳ قسمت توضیح دهیم:
ادامه خواندن systemd در دبیان (شماره نهایی)

ماژول ip_conntrack

اصولاً باب شده تا sysadmin ها از پیکربندی‌های لایه ۴ استفاده نمایند که این موضوع در کل کار قشنگی نیست. netfilter-logo2هرزگاهی باید از لایه‌های پایین‌تر استفاده نمود و یا مشکلاتی را حل کرد که پایین‌تر از لایه ۴ باید حل شوند.(مدل ۴ لایه‌ای) یک مثال بارز این جریان دایرکتیو MaxKeepAliveRequests آپاچی می‌باشد که اگر به آن پارامتر 0 دهیم بدان معنیست که بی‌نهایت connection را بپیذیر و اگر عددی دیگر دهیم مقدار connection مربوطه است. فرض کنید شما به آن 0 پاس کردید یا نه اصلاً شما وب سرور نیستید. شما daemon هستید که شرکت شما آن را نوشته و مثلاً به دو پورت ۱۸۵۰۰ , ۱۸۵۰۱ گوش فرا میدهد. و هیچ پورت دیگری هم باز ندارید و سرویسی را در حال اجرا نگذاشته‌اید. ادامه خواندن ماژول ip_conntrack

grep در محتوای متغیر‌های محیطی کل سیستم با یک اسکریپت ساده

بگذارید کمی مقدمه چینی کنم تا به اصل قضیه برسم و اسکریپت مربوطه رو که حتی یک grep هم نداره توضیح بدم. تمام پراسس‌ها در دایرکتوری /proc دارای یک دایرکتوری هستند با نام PID خودشون،‌ که خیلی از منابع اون پراسس در اون داریکتوری ذخیره می‌شن. اگر برای اون پراسس حداقل یک متغیر محیطی ایجاد شده باشه، در همون دایرکتوری فایلی با نام environ ایجاد می‌شه. به مثال زیر توجه کنید، این مثال در مورد PID فرمان bash هست که کلی متغیر داره:

این هم از اسکریپت زیر:

برای استفاده از آن می‌توان از عبارت زیر استفاده کرد:

پارامتر اول یک عبارت برای جستجو می‌گیرد و پارامتر دوم همان option ها در فرمان ps هستند که برای شما نمایش داده شوند.
در‌واقع این فرمان در کل سیستم می‌گردد و این عبارت را در کل متغیر‌های محیطی جسجتو می‌کند و اما چه برگرداند:
۱. پراسس هایی که آن را استفاده کرده‌اند.
۲. تعداد استفاده آن پراسس‌ها از این عبارت.
نکته‌: کد ساده است و شما خود می‌توانید آن را به دلخواه و نیاز خود تغییر دهید.
تمرین: برای چگونگی استفاده این اسکریپت برای پارامتر value– نام کاربری خود را پاس نمایید.

systemd در دبیان (شماره اول)

در April سال ۲۰۱۲ تشکل دبیان قبول کرد که به طور رسمی از systemd استفاده نماید. اولین Systemd-on-fedoraمرحله استفاده آن، فقط از دایمون systemd-logind در پاییز ۲۰۱۳ بود تا اینکه بالاخره در April سال ۲۰۱۴ به طور رسمی SysV جای خود بر روی مخزن unstable دبیان به systemd داد و قول دبیان مبنی بر این است که نسخه بعدی آن با کد jessie به طور کامل با systemd سازگار است.Systemd-on-fedora
در بالا ذکر شد مهاجرت به صورت فرآیندی(مرحله‌ای) صورت گرفته است. اما چرا بعضی از توزیع‌ها منجمله دبیان زمانی که می‌خواهند یک مهاجرت سنگین در سطح low level انجام دهند احتیاط می‌کنند؟ بگذارید گزاره اصلی را پیشرفت systemd بگیریم.
systemd بر خلاف سیستم‌های boot دیگر همانند Upstart یا SysV به شدت بر روی کل سیستم تأثیر می‌گذارد از جمله نقاطی که می‌توان نام برد، کرنل، udev، D-Bus، ارتباطات شبکه و علی الخصوص اینکه بدلیل اینکه systemd یک سیستم بوت می‌باشد باید کل process های سیستم را مدیریت کند.
ادامه خواندن systemd در دبیان (شماره اول)