نحوه فعالسازی تایید هویت دو مرحله ای در پورتال زاگریو

 

ابتدا باید برنامه Microsoft Authenticator و یا برنامه مشابه دیگری مانند Google Authenticator را بر روی گوشی همراه خود نصب کنید.

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

 

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

 

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

همچنین چندین کد برای شرایط اضطراری در اختیار شما قرار خواهد گرفت.

 

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

 

نحوه مدیریت و استفاده از FirewallD در CentOS7

1.7kviews

FirewallD یک راهکار مدیریت دیوار آتش برای اکثر توزیع های لینوکس است که به عنوان یک رابط کاربری برای iptables عمل می کند.

در این آموزش، نحوه استفاده از دستورات مدیریتی firewall-cmd را به شما آموزش خواهیم داد.

آشنایی با مفاهیم اولیه FirewallD

قبل از بررسی دستورات، لازم است با برخی مفاهیم اولیه آشنا شویم:

منطقه – Zones

سرویس firewalld مجموعه ای از قوانین به نام zones را مدیریت میکند. این مناطق بصورت کلی تعیین می کنند که چه ترافیکی می بایست بر اساس سطح اعمتادی که شما به شبکه های متصل به سیستم خود دارید رد و بدل شوند. کارت های شبکه به مناطق مورد نظر شما متصل می شوند تا رفتار ترافیکی توسط دیوار آتش کنترل شود.

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

بدون در نظر گرفتن اینکه چقدر محیط شبکه شما پویا است، دانستن و آشنا شدن با این ایده هایی که برای طراحی firewalld در نظر گرفته شده است امری ضروری است. به ترتیب در شبکه های پیشفرض تعریف شده از “کمترین میزان اعتماد” تا “بیشترین میزان اعتماد” مناطق زیر تعریف شده اند:

منطقه drop: کمترین میزان اعتماد به شبکه، تمامی ورودی ها بسته شده و درخواست های ارسالی بی پاسخ خواهند ماند و فقط اتصال های خروجی فعال هستند.

منطقه block: مانند مورد فوق با این تفاوت که اتصال های ورودی با پیام icmp-host-prohibited یا icmp6-adm-prohibited رد (reject) می شوند.

منطقه public: به عنوان شبکه عمومی و نا مطمئن. شما به سیستم های کامپیوتری موجود اعتمادی ندارید و صرفا ممکن است اجازه اتصال های ورودی را بر اساس مورد به مورد بدهید.

منطقه external: شبکه های خارجی در مواقعی که شما از فایروال به عنوان gateway خود استفاده می کنید. در اصل بصورت NAT masquerading به سمت شبکه داخلی شما متصل شده است و به همین منظور شبکه داخلی شما خصوصی اما در دسترس خواهد بود.

منطقه internal: سمت دیگر external است، برای بخش داخلی gateway شما است. سیستم های موجود تقریبا قابل اعتماد هستند و برخی سرویس ها نیز در دسترس هستند.

منطقه dmz: جهت استفاده برای سیستم هایی که در DMZ (سیستم هایی در شبکه که به هسته اصلی شبکه شما دسترسی ندارند) وجود دارد. صرفا برخی اتصال های ورودی مجاز هستند.

منطقه work: برای سیستم های کاری در نظر گرفته شده اند، در حالی که شما به سیستم های اطراف خود اطمینان دارید و برخی سرویس ها نیز فعال هستند.

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

منطقه trusted: به تمامی سیستم های موجود در شبکه اطمینان دارید. باز ترین نوع منطقه موجود که می بایست با بررسی دقیق انتخاب شود.

با استفاده از دیوارآتش، شما می توانید قوانین (rules) مورد نظر خود را ایجاد کنید و آنها را به مناطق مورد نظر خود متصل کنید و سپس آنها را به کارتهای شبکه مورد نظر الحاق کنید.

دوام قوانین

در firewalld، قوانین تعریف شده می توانند به دو صورت “فوری” یا “دائمی” تعریف شوند. چنانچه یک rule اضافه شود و یا تغییر یابد، بصورت فوری رفتار فایروال تغییر می کند اما پس از ریستارت شدن سیستم قوانین قدیمی مجددا فعال می شوند و تغییرات از بین خواهند رفت.

اغلب دستورات firewall-cmd می توانند گزینه permanent– را به همراه داشته باشند. این گزینه مشخص می کند که پس از ریستارت شدن سیستم قانون تعریف شده مجددا فراخوانی شده و حذف نشود. این بدین معناست که شما می توانید قوانین را بصورت همزمان تست کنید و در صورتی که مشکلی برای شما پیش آمد با یک ریستارت قانون تعریف شده را حذف کنید. همچنین استفاده از تگ permamnet– به شما کمک می کند تا تعداد زیادی قوانین را تعریف کنید که پس از ریستارت سیستم اعمال شوند.

نصب و فعالسازی فایروال بر روی سیستم در زمان بوت شدن

نرم افزار firewalld بصورت پیشفرص بر روی برخی از توریع های لینوکس اعم از CentOS 7 وجود دارد. با این حال با استفاده از دستور زیر می توانید آن را نصب کنید:

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

پس از ریستارت شدن سیستم، فایروال می بایست فعال شده، کارتهای شبکه در zone مربوطه قرار گرفته (و یا به تنظیمات پیشرفض برگردد) و سپس قوانین تعریف شده پردازش شوند.

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

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

آشنایی با قوانین فعلی فایروال

قبل از شروع تغییرات ابتدا باید با شرایط و قوانین فعلی تعریف شده بر روی سرویس آشنا شوید.

مشاهده تنظیمات پیشرفض

برای مشاهده منطقه انتخاب شده فعلی دستور زیر را بزنید:

از آنجایی که ما برای firewalld هنوز دستوراتی نزده ایم و بصورت پیشفرض است و هیچ یک از کارتهای شبکه ما به منطقه دیگری متصل کنید، تنها منطقه فعال همان مورد فوق است که کارتهای شبکه ما را کنترل می کند. جهت تایید میتوانید از دستور زیر استفاده کنید:

همانطور که میبینیم سرور ما دو کارت شبکه دارد که هر دو بصورت پیشفرض بر روی منطقه public تنظیم شده است.

چطور متوجه شویم که چه قوانینی برای منطقه عمومی تعریف شده است؟ با استفاده از دستور زیر میتوانید تمامی سرویس های فعال بر روی public zone را مشاهده کنیم:

همانطور که با استفاده از دستور قبلی هم دیدیم، هر دو کارت شبکه eth0 و eth1 به این zone متصل هستند. هرچند با این دستور میتوانیم ببینیم که سرویس DHCP Client و سرویس SSH بر روی این zone تعریف شده است.

مشاهده مناطق (zone) های دیگر

حالا ما اطلاعات کافی در مورد تنظیمات پیشفرض داریم، با استفاده از دستور زیر میتوانیم اطلاعات دیگر در خصوص zone های دیگر نیز به دست آوریم.

برای مشاهده لیست zone های موجود دستور زیر را بزنید:

ما می توانیم تنظیمات انجام شده برای یک zone خاص را با اضافه کردن دستور =zone– به همراه list-all– مشاهده کنیم:

شما می توانید تمامی مناطق تعریف شده را با استفاده از list-all-zones– مشاهده کنید.

انتخاب یک منطقه – Zone برای کارت شبکه شما:

در صورتی که شما برای یک کارت شبکه یه منطقه تعریف نکرده باشید، بصورت پیشفرض در زمان بوت منطقه پیشفرض برای آن تعریف شد است.

تغییر Zone بر روی کارت های شبکه

شما با استفاده از پارامتر =zone– به همراه =change-interface– می توانید تنظیمات را انجام دهید. همچنین برای دسترسی مدیریتی باید از sudo نیز استفاده کنید.

با استفاده از دستور زیر ما کارت شبکه eth0 را بر روی منطقه home تعریف می کنیم.

نکته

توجه داشته باشید که با تغییر zone ممکن است یک سرویس فعال از کار بی افتد، برای مثال در صورت انتقال به شبکه home سرویس SSH در آن فعال است و شما قادر به ادامه کار هستند اما برخی منطقه ها بصورت پیشفرض SSH برای آنها فعال نیست و در صورت جابجایی به آن مناطق دسترسی شما به سرور قطع خواهد شد و قادر به اتصال مجدد به سرور نخواهید بود.

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

تنظیم منطقه پیشفرض:

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

شما می توانید منطقه پیشفرض را با پارامتر =set-default-zone– تنظیم کنید. این دستور بلافاصله تمامی کارتهای شبکه را که منطقه ای برای آن تعریف نشده است را به شرح مورد نظر شما تغییر می دهد:

انتخاب قوانین برای برنامه های شما

بهترین روش برای تعریف قوانین فایروال تعریف آنها به عنوان نرم افزار است. راه کار آن به شرح ذیل است:

اضافه کردن یک سرویس برای منطقه های شما:

راحت ترین روش اضافه کردن سرویس و یا پورت مورد نظر شما برای مناطقی است که از آن استفاده می کنید، مجددا با دستور get-services– سرویس های فعال را دریافت کنید:

نکته

شما می توانید اطلاعات بیشتری در خصوص هر سرویس با مشاهده فایلهای xml. آن به دست آورید که در مسیر /usr/lib/firewalld/services قرار دارد. برای مثال سرویس SSH شامل موارد ذیل است:

نحوه ارسال ایمیل امن کدگذاری شده توسط Outlook

2.2kviews

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

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

یکی از روش های جلوگیری از این شنود و حصول اطمینان از اینکه ایمیل ها توسط فرستنده مورد نظر شما ارسال شده، امضا کردن و کدگذاری محتوای ایمیل ها است.

در این آموزش به شما روش انجام این کار را نمایش خواهیم داد.

 

1- ابتدا از طریق cPanel به بخش Encryption رفته و یک کلید جدید ایجاد کنید.

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

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

 

2- برای امکان استفاده از این کلید در نرم افزار Outlook لازم است افزونه Gpg4win بر روی سیستم شما نصب شود.

این نرم افزار را می توانید از اینجا دریافت کنید.

 

3- پس از نصب نرم افزاری به عنوان Kleopatra بر روی سیستم شما نصب خواهد شد که می بایست آن را باز و سپس کلید Private خود را در آن اضافه نمائید.

برای این کار از منوی File بر روی Import بروید و کلید Private ایجاد شده در مرحله 1 را انتخاب کنید.

 

4- با نصب این نرم افزار، در Outlook در هنگام ارسال توسط ایمیل مورد نظر، یک گزینه در بالای صفحه نمایش داده می شود که با انتخاب گزینه Sign ایمیل ها توسط شما امضا شده و این اطمینان به گیرنده داده می شود که شخص شما این ایمیل را ارسال کرده است و با انتخاب گزینه Encrypt محتوای ایمیل کدگذاری شده و بدون استفاده از کلید Private که در اختیار شما می باشد محتوای آن قابل مشاهده نخواهد بود.

Apache/Prefork: تعیین حداکثر تعداد کلاینت‌ها

1.5kviews

اصول اولیه Apache/Prefork:

۱-    تعیین مقدار RAM که برای Apache/Prefork در دسترس است.
۲-    تعیین مقدار RAM برای هر کاربر آپاچی
۳-    تنظیم حداکثر تعداد کلاینت‌ها به: (مقدار RAM در هر فرآیند آپاچی) / (مقدار RAM در دسترس آپاچی)

۴-    نظارت و تنظیم

چگونه مقادیر را در Apache/Prefork تغییر دهیم:

 

مقادیر حداکثر تعداد کلاینت‌ها (MaxClients) در فایل اصلی main Apache configuration قرار گرفته است. به عنوان مثال /etc/apache2/apache2.conf یا /etc/httpd/httpd.conf.

بخش مربوطه مانند شکل زیر است:
Apache/Prefork
بعد از تغییر مقادیر فایل را دخیره کنید و Apache را با دستور apache2ctl graceful-stop && apache2ctl start ری‌استارت نمائید.

چرا این موضوع مهم است؟
یکی از شایع‌ترین دلایل سقوط یک وب سرور این است که تمام حافظه فیزیکی (RAM) موجود را مصرف می‌کند. وقتی که این اتفاق پیش می‌آید، سیستم عامل با حرکت بر روی دیسک تلاش می‌کند مقداری از این فضا را آزاد کند. در لینوکس این عمل Swap Space و در ویندوز Page File نامیده می‌شود.  این فرآیند به منظور شکست دادن RAM (که دسترسی سریع به داده‌ها را فراهم می‌کند) است و نیاز به منابع (CPU، دیسک I/O) برای انجام مبادله داده‌ها بین دیسک و RAM دارد. فضای جابجایی هم می‌تواند به طور کامل مصرف شود، اما مشکل اصلی این است که در یک محیط با سرعت بالا مانند وب سرور، سیستم به سرعت می‌تواند سرزیر شود و فقط تلاش برای مدیریت حافظه می‌تواند برای این سقوط موثر باشد. به همین دلیل به آن Thrashing می‌گویند.

به این کار اجتناب از شکست گفته می‌شود و تنها راه برای انجام این کار این است که آپاچی را از مصرف تمام RAM در دسترس نگهداری شود.


چگونه مقدار RAM موجود برای Apache/Prefork را تعیین کنیم:

مقدار حافظه در دسترس برای آپاچی مجموع مقدار RAM روی سیستم منهای مقداری است که توسط تمام فرآیندهای دیگر استفاده می‌شود. متاسفانه، تعیین مقدار RAM که بر روی سیستم استفاده می‌شود دشوار است. این مورد حتی از تعیین حداکثر حافظه‌ای که توسط دیگر فرآیندها زمانی که سرور تحت بار سنگین قرار دارد مشکل‌تر است. حتی زمانی که شما در حال اجرای Mysql بر روی همان سیستم هستید کار محاسبه دشوارتر می‌شود. به طور معمول هر درخواست که توسط Apache/Prefork به کار گرفته می‌شود حداقل یک اتصال با Mysql را باز می‌کند، بنابراین به عنوان یک درخواست آپاچی میزان مصرف RAM توسط Mysql افزایش می‌یابد. در کوتاه مدت، میزان مصرف حافظه Mysql بستگی دارد به اینکه چگونه آنرا توسط نرم‌افزار خود استفاده می‌شود. شما می‌توانید از اسکریپت mysqltuner  برای دریافت حداکثر مقدار Mysql استفاده کنید. اما اگر تنظمیات آپاچی شما به درستی صورت گرفته باشد به ندرت مشکلی درباره میزان حافظه خواهید داشت.

بهترین راه‌کار این است که Mysql را که مصرف بالایی دارد در یک سرور جداگانه قرار دهیم و بیشترین مقدار را برای آن سرور در نظر بگیریم و با توجه به Server load تنظیمات را انجام دهیم.
برای تمامی فرآیندهای دیگر مقدار ۲۵۶MB را در نظر بگیرید. اگر شما در حال استفاده از خدمات دیگری همانند ماشین میزبانی مجازی هستید، ممکن است تمایل داشته باشید که از مقدار بیشتری استفاده کنید.

بنابراین در ابتدا برای یک سیستم معمولی ۲۵۶MB +  حداکثر استفاده حافظه Mysql را در نظر بگیرید.

چگونه میزان RAM را برای مصرف هر فرآیند Apache تعیین کنیم:

 

باز هم، به حافظه مشترک (مخصوصا اگر از APC استفاده می‌کنید) بافر، دخیره و غیره توجه کنید. تعیین این موارد خیلی دشوار است. در تجربه ما، بهترین ابزار تعیین مصرف حافظه برای هر فرآیند  ps_mem.py است.
خروجی ps_mem.py شبیه شکل زیر است:
Apache/Prefork
در اینجا مشاهده می‌کنید که ۱۲۳ فرآیند Apache2 وجود دارد که در مجموع ۴٫۳GB مصرف حافظه دارند، بنابراین هر فرآیند Apache/Prefork حدود ۲۸MB از فضای RAM را استفاده می‌کنند. این سیستم حدود ۸GB حافظه (RAM) دارد و اگرچه ysqltuner.pl گزارش می‌دهد که Mysql حداکثر ۱GB از حافظه را مصرف می‌کند، ما می‌توانیم ببینم که مقداری که مصرف شده خیلی کمتر از ۱GB است. برای اطمینان برای دیگر فرآیندها ۱٫۵GB حافظه در نظر می‌گیریم و میانگین مصرف آپاچی را به ۳۲MB گرد می‌کنیم.
(۶٫۵ x 1024) / 32 = 208

برای اطمینان بیشتر آنرا به ۲۰۰  گرد می‌کنیم، زیرا بهتر است که کمتر تخمین زده شود.

نظارت کردن بر سرور:

 

فرآیندهای آپاچی و مجموع حافظه مصرف شده را مشاهده کنید. در اینجا دستوری داریم که خروجی یکسانی را نشان میدهد که هر ثانیه بروز رسانی می‌شود.
watch -n 1 “echo -n ‘Apache Processes: ‘ && ps -C apache2 –no-headers | wc -l && free -m”
خروجی تولید شده مانند شکل زیر است:
Apache/Prefork
با استفاده از +/- سطر را بافر / ذخیره کنید. مقادیر برحسب MB است. شما می‌توانید در یک نقطه از زمان ببینید که حدود ۲٫۳GB  از حافظه استفاده می‌شود و ۵٫۷GB از حافظه آزاد است. اگر فرآیندهای Apache/Prefork به تنظیمات حداکثر تعداد کلاینت‌ها نزدیک شوند و مقدار زیادی حافظه در دسترس خواهید داشت که شما می‌توانید قدم به قدم این مقدار را افزایش دهید تا این مقدار به کمتر از حداکثر تعداد کلاینت‌ها برسد و سپس آنرا Restart  کنید.
۱۸ دستور نظارت بر پهنای باند شبکه در سرورهای لینوکس

۱۸ دستور نظارت بر پهنای باند شبکه در سرورهای لینوکس

6.2kviews

در این مقاله قصد داریم تا به صورت کامل به بررسی ۱۸ دستور برای نظارت بر پهنای باند شبکه در سرورهای لینوکسی بپردازیم و در مورد نظارت بر شبکه‌های لینوکسی با شما عزیزان در زاگریو صحبت کنیم.

نظارت بر شبکه‌های لینوکسی:

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

برخی از دستورات پهنای باند استفاده شده را برای فرآیندهای تکی نمایش می‌دهد. با این دستورات به آسانی می‌توان فرآیندهایی که بیش از حد از پهنای باند شبکه استفاده می‌کنند را شناسایی کرد.
این ابزارها مکانیزم‌های مختلفی برای تولید گزارش ترافیک دارند. برخی از این ابزارها مانند nload فایل “proc/net/dev” برای دریافت آمار ترافیک می‌خوانند درحالی‌که برخی دیگر از کتابخانه pcap برای دریافت همه بسته‌ها استفاده می‌کنند و سپس حجم کلی بار ترافیکی تخیمن‌زده شده را محاسبه می‌کنند.

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

  • Bandwidth به صورت کلی: nload ,bmon ,slurm ,bwm-ng ,cbm ,speedometer ,netload
  • پهنای باند به صورت کلی (خروجی به صورت دسته‌ای): vnstat ,ifstat ,dstat ,collectl
  • Bandwidth در هر اتصال سوکت: iftop ,iptraf ,tcptrack ,pktstat ,netwatch ,trafshow
  • پهنای باند برای هر فرآیند: nethogs

1. Nload

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

$ nload

commandmonitoringlinux08

نصب Nload:

Fedora و Ubuntu ابزار را در مخازن پیش‌فرض دارند، کاربران لینوکس نیاز دارند که از مخازن Epel آنرا دریافت کنند.

# fedora or centos
$ yum install nload -y
# ubuntu/debian
$ sudo apt-get install nload

2. Iftop

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

اگرچه iftop پهنای باند استفاده شده را برای ارتباطات فردی گزارش می‌دهد، اما نام/شناسه فرآیندی که شامل ارتباط یک سوکت خاص است را نمی‌تواند گزارش دهد. وقتی که برپایه تابع pcap کار می‌کند iftop توانایی فیلتر کردن و ارائه گزارش بر اساس سرورهایی که به آن متصل هستند را داراست.

$ sudo iftop -n

گزینه n مانع از این می‌شود که iftop ip را به صورت hostname یا بالعکس بگیرد که همین مورد باعث ایجاد ترافیک شبکه اضافی می‌شود.

commandmonitoringlinux03

نصب iftop:

کاربران Ubuntu/Debian/Fedora آنرا از مخازن پیش‌فرض دریافت کنند و کاربران لینوکس از Epel می توانند iftop را دریافت کنند.

# fedora or centos
yum install iftop -y
# ubuntu or debian
$ sudo apt-get install iftop

3. Iptraf

Iptraf یک مانیتورینگ رنگارنگ و تعاملی از شبکه IP است، که اتصالات فردی و مقدار داده درحال جریان بین دو میزبان را نشان می‌دهد. در اینجا یک تصویر از این دستور می‌بینید.

$ sudo iptraf

commandmonitoringlinux04

نصب iptraf:

# Centos (base repo)
$ yum install iptraf
# fedora or centos (with epel)
$ yum install iptraf-ng -y
# ubuntu or debian
$ sudo apt-get install iptraf iptraf-ng

4. Nethogs

Nethogs یک ابزار کوچک از ‘net top’ است که پهنای باند مصرف شده توسط فرآیندهای فردی را نشان می‌دهد و آنها را در لیستی مرتب می‌کند که فرآیندهای فشرده‌تر در بالای این لیست قرار می‌گیرند. در صورت افزایش ناگهانی پهنای باند، سریع Nethogs را باز کنید و فرآیندهای مسئول را پیدا کنید. Nethogs کاربر، PID و مسیر برنامه را گزارش می‌دهد.

$ sudo nethogs

commandmonitoringlinux05

نصب Nethogs:

کاربران Ubuntu/Debian/Fedora این ابزار را از مخازن پیش‌فرض دریافت کنند و کاربران لینوکس نیاز به Epel دارند.

# ubuntu or debian (default repos)
$ sudo apt-get install nethogs
# fedora or centos (from epel)
$ sudo yum install nethogs -y

5. Bmon

(Bmon (Bandwith monitor یک ابزار مشابه با Nload است که بار ترافیکی بیش از حد در تمامی رابط‌های شبکه به روی سیتسم را نشان می‌دهد. خروجی یک گراف و یک بخش از جزئیات یکسان بسته‌هاست.

commandmonitoringlinux01

نصب Bmon:

کاربران Ubuntu/Debian/Fedora این ابزار را از مخازن پیش‌فرض نصب کنند و کاربران لینوکس نیاز دارند که repoforge را تنظیم کنند زیرا Epel در دسترس نیست.

# ubuntu or debian
$ sudo apt-get install bmon
# fedora or centos (from repoforge)
$ sudo yum install bmon

Bmon گزینه‌های بسیاری را پشتیبانی می‌کند و قادر است گزارش‌هایی با فرمت html تولید کند. Man page را برای کسب اطلاعات بیشتر در این مورد بررسی کنید.

6. Slurm

Slurm هنوز یکی از ابزارهای نظارت بار شبکه است که آمار دستگاه‌ها را همراه با نمودار ASCII نمایش می‌دهد. این ابزار از سه سبک مختلف نمودار‌ها پشتیبانی می‌کند که هر کدام می‌توانند با استفاده از کلیدهای L  C و S فعال شوند. Slurm هیچ اطلاعات بیشتری در مورد بار شبکه نشان نمی‌دهد.

$ slurm -s -i eth0

commandmonitoringlinux10

نصب slurm:

# debian or ubuntu
$ sudo apt-get install slurm

# fedora or centos
$ sudo yum install slurm -y

7. Tcptrack | پهنای باند

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

$ slurm -s -i eth0

پهنای باند

نصب tctrack:

کاربران Ubuntu/Debian/Fedora این ابزار را از مخازن پیش‌فرض نصب کنند و کاربران لینوکس نیاز دارند که repoforge را تنظیم کنند زیرا Epel در دسترس نیست.

# ubuntu, debian
$ sudo apt-get install tcptrack
# fedora, centos (from repoforge repository)
$ sudo yum install tcptrack

8. Vnstat

Vnstat با بسیاری از ابزارهای دیگر کمی متفاوت است. این ابزار یک پس زمینه service/daemon را اجرا می‌کند و اندازه داده‌های انتقال یافته را در تمام زمان‌ها نگهداری می‌کند. سپس می‌تواند برای تولید گزارش از تاریخ استفاده شبکه از این اطلاعات استفاده کند.

$ service vnstat status
* vnStat daemon is running

اجرای Vnstat بدون هیچ گزینه‌ای به سادگی مقدار کل انتقال اطلاعات را نشان می‌دهد از تاریخی که daemon در حال اجراست.

$ vnstat
Database updated: Mon Mar 17 15:26:59 2014
eth0 since 06/12/13
rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB
monthly
rx | tx | total | avg. rate
————————+————-+————-+—————
Feb ’14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s
Mar ’14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s
————————+————-+————-+—————
estimated 9.28 GiB | 2.83 GiB | 12.11 GiB |
daily
rx | tx | total | avg. rate
————————+————-+————-+—————
yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s
today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s
————————+————-+————-+—————
estimated 199 MiB | 63 MiB | 262 MiB |

برای نظارت بر استفاده از پهنای باند در زمان واقعی از گزینه ‘-l ‘ (live mode) استفاده کنید. این مورد کل پهنای باند استفاده شده توسط اطلاعات ورودی و خروجی نشان می‌دهد اما به شیوه‌ای بسیار دقیق بدون هیچ‌گونه اطلاعات ورودی در مورد جزئیات داخلی اتصالات یا فرآیندهای آن.

$ vnstat -l -i eth0
Monitoring eth0… (press CTRL-C to stop)
rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s

Vnstat بیشتر شبیه ابزارهای گزارش‌گیری است که گزارش تاریخی است چه میزان از پهنای باند به صورت روزانه یا در ماه گذشته استفاده شده است. این صرفا یک ابزار برای نظارت بر شبکه در زمان واقعی نیست.
Vnstat گزینه های بسیاری را پشتیبانی می‌کند. جزئیات را در این مورد می‌توانید در man page پیدا کنید.

نصب Vnstat:

# ubuntu or debian
$ sudo apt-get install vnstat
# fedora or centos (from epel)
$ sudo yum install vnstat

9. Bwm-ng

(Bwm-ng (Bandwidth Monitor Next Generation یکی دیگر از ابزارهای بسیار ساده برای مانیتور بار شبکه در زمان واقعی است که خلاصه‌ای از سرعتی که داده در داخل و خارج شبکه موجود بر روی سیستم منتقل می‌شود را گزارش می‌دهد.

$ bwm-ng

bwm-ng v0.6 (probing every 0.500s), press ‘h’ for help
input: /proc/net/dev type: rate
/ iface Rx Tx T
ot==========================================================================
== eth0: 0.53 KB/s 1.31 KB/s 1.84
KB lo: 0.00 KB/s 0.00 KB/s 0.00
KB————————————————————————–
— total: 0.53 KB/s 1.31 KB/s 1.84
KB/s

اگر کنسول به حد کافی بزرگ باشد bwm-ng می‌تواند نمودار میله‌ای را برای ترافیک استفاده شده در حالت خروجی نشان دهد.

$ bwm-ng -o curses2

نصب Bwm-NG:

برای CentOS می‌توان Bwm-NG را از Epel نصب کرد.

# ubuntu or debian
$ sudo apt-get install bwm-ng
# fedora or centos (from epel)
$ sudo apt-get install bwm-ng

10. cbm – Color Bandwidth Meter

کمی نظارت بر پهنای باند که حجم ترافیک را از طریق رابط‌های شبکه نشان می‌دهد ساده است. بدون هیچ گزینه اضافی فقط ترافیک و به‌روزرسانی در زمان واقعی نشان داده می‌شود.

commandmonitoringlinux02

$ sudo apt-get install cbm

11. speedometer

یکی دیگراز ابزارهای ساده و کوجک که نمودارهایی از ترافیک ورودی و خروجی که از طریق یک رابط داده شده است را به خوبی ترسیم می کند.

$ speedometer -r eth0 -t eth0

commandmonitoringlinux11

نصب speedometer:

# ubuntu or debian users
$ sudo apt-get install speedometer

12. Pktstat

Pktstat تمامی اتصالات فعال در زمان واقعی و سرعتی که داده از طریق آن‌ها منتقل می‌شوند را نشان می‌دهد. همچنین نوع اتصالات مانند tcp یا udp و جزئیات در مورد درخواست‌های http نشان می‌دهد.

$ sudo pktstat -i eth0 –nt

commandmonitoringlinux09

$ sudo apt-get install pktstat

13. Netwatch

Netwatch قسمتی از مجموعه ابزار netdiag است و ارتباط‌های بین local host و دیگر remote host ها و سرعت انتقال داده در هر ارتباط را نشان می‌دهد.

$ sudo netwatch -e eth0 -nt

commandmonitoringlinux07

$ sudo apt-get install netdiag

14. Trafshow

Trafshow مانند netwatch و pktstat ارتباطات فعال فعلی، پروتکل‌هایشان و سرعت انتقال داده در هر کدام از این ارتباطات را گزارش می‌دهد. این ابزار می‌تواند با استفاده از فیلتر‌های نوع pcap ارتباطات را فیلتر کند.

$ sudo trafshow -i eth0 tcp

commandmonitoringlinux13

$ sudo apt-get install netdiag

فقط اتصالات tcp را نظارت می‌کند.

15. Netload

دستور Netload فقط گزارش کوچکی از بار ترافیک فعلی شبکه و تعداد کل بایت‌هایی که از زمان شروع برنامه منتقل شده است را نشان می‌دهد. هیچ ویژگی بیشتری وجود ندارد. این ابزار بخشی از netdiag است.

$ netload eth0

commandmonitoringlinux06

$ sudo apt-get install netdiag

16. Ifstat

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

$ ifstat -t -i eth0 0.5
Time eth0
HH:MM:SS KB/s in KB/s out
۰۹:۵۹:۲۱ ۲٫۶۲ ۲٫۸۰
۰۹:۵۹:۲۲ ۲٫۱۰ ۱٫۷۸
۰۹:۵۹:۲۲ ۲٫۶۷ ۱٫۸۴
۰۹:۵۹:۲۳ ۲٫۰۶ ۱٫۹۸
۰۹:۵۹:۲۳ ۱٫۷۳ ۱٫۷۹

نصب ifstat:

کاربران Ubuntu/Debian/Fedora این ابزار را در مخازن پیش‌فرض دارند و کاربران لینوکس نیاز دارند که repoforge را تنظیم کنند زیرا Epel در دسترس نیست.

# ubuntu, debian
$ sudo apt-get install ifstat
# fedora, centos (Repoforge)
$ sudo yum install ifstat

17. dstat

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

$ dstat -nt
-net/total- —-system—-
recv send| time
۰ ۰ |۲۳-۰۳ ۱۰:۲۷:۱۳
۱۷۳۸B 1810B|23-03 10:27:14
۲۹۳۷B 2610B|23-03 10:27:15
۲۳۱۹B 2232B|23-03 10:27:16
۲۷۳۸B 2508B|23-03 10:27:17

نصب dstat:

$ sudo apt-get install dstat

18. Collect

Collect آمار سیستم‌هایی را که در یک سبک است را نشان می‌دهد که شبیه به dstat است و مانند dstat آمار را درمورد منابع مختلف سیستم‌های مختلف مانند cpu ،memory ،network و غیره را جمع‌آوری می‌کند. در اینجا یک مثال ساده از نحوه استفاده آن برای گزارش گرفتن از usage/bandwidth آمده است.

$ collectl -sn -oT -i0.5
waiting for 0.5 second sample…
# <———-Network———->
#Time KBIn PktIn KBOut PktOut
۱۰:۳۲:۰۱ ۴۰ ۵۸ ۴۳ ۶۶
۱۰:۳۲:۰۱ ۲۷ ۵۸ ۳ ۳۲
۱۰:۳۲:۰۲ ۳ ۲۸ ۹ ۴۴
۱۰:۳۲:۰۲ ۵ ۴۲ ۹۶ ۹۶
۱۰:۳۲:۰۳ ۵ ۴۸ ۳ ۲۸

نصب Collect:

# Ubuntu/Debian users
$ sudo apt-get install collectl
#Fedora
$ sudo yum install collectl

خلاصه:

این دستورات چند فرمان سودمند بودند که به سرعت می‌توانید پهنای باند شبکه را بر روی سرور لینوکس خود بررسی کنید. برای اجرای این دستورات نیاز است که کاربر با استفاده از SSH به سرور خود log in کند. ابزارهای مانیتورینگ مبتنی بر وب می‌توانند برای همین کار استفاده شوند.
Ntop و Darkstat برخی از ابزارهای مانیتورینگ مبتنی بر وب برای لینوکس هستند. صرف‌نظر از این دروغ که ابزارهای مانیتورینگ در سطح سازمانی مانند Nagios که نه تنها یک میزبان از ویژگی‌ها برای مانیتور و نظارت بر شبکه فراهم می‌کنند بلکه کل زیر ساخت را هم دربرمی‌گیرند.

میزبانی وب زاگریو

چگونه یک گروه CSF برای همگام‌سازی Blacklists و Whitelists ایجاد کنیم؟

969views
ما دیده‌ایم که بسته‌های کانفیگ فایروال سرور (CSF) یک راه‌حل امنیتی استاندارد قدرتمند است برای سرورهایی که درحال اجرای WHM هستند.
یکی از اجزای فعال که lfd نامیده می‌شود (Login Failure Daemon) که همه سوابق و تلاش‌هایی که برای Login شدن به سرور از طریق SSH و یا از طریق رابط گرافیکی GUI و ایجاد لیست‌های سفید و سیاه از IP آدرس‌ها به منظور جلوگیری از حملات را ثبت می‌کند.اگر شما تعدادی سرور درحال اجرای WHM دارید و اگر یک گروه DNS تنظیم کرده‌اید شما قطعا هر نمونه از CSF که شامل لیست‌های سفید و سیاه مرتبط با خود باشد را نگهداری خواهید کرد. به جای تکرار این عمل در هر زمان، راحت‌تر نیست  اگر سرویس‌دهنده شما این اطلاعات را خودشان به اشتراک بگذارند؟ بنابراین اگر یکی از آنها یک حمله brute force که از یک آدرس IP خاص صورت گرفته را تشخیص دهد دیگران نیاز نیست قبل از این‌که بیش از حد محاصره شوند، صبر کنند. آن‌ها می‌توانند این اطلاعات را برای پیش‌دستی کردن در مقابل حملات به یکدیگر انتقال دهند.
این به عنوان یک گروه CSF شناخته می‌شود. گروه‌هایی از سرورها که لیست‌های سفید و سیاه را به اشتراک می‌گذارند. انجام این تنظیمات بسیار آسان است وتنها نیاز به چند تغییر در فایل “csf.conf” بر روی هر یک از اعضای گروه دارد. در این‌جا به شما آموزش می‌دهیم که چگونه این کار را انجام دهید:

پیکربندی سرورها:

برای شرکت در یک گروه CSF سرورها باید در حال اجرای WHM یا DNSONLY با CSF به علاوه installed.In باشند. در فایل “csf.conf” پارامتر “TESTING” باید با مقدار ۰ تنظیم شود و یا اینکه lfd شروع نشود. در هنگام نصب و راه‌اندازی CSF به طور پیش‌فرض TESTING فعال است. بنابراین این گزینه را باید برای هر سرور انجام دهید.
در این مثال ما قصد داریم از ConfigServer اکسپلورر (CSE) به عنوان سیستم مدیریت فایل استفاده کنیم. شما می‌توانید در صورت تمایل از نرم‌افزار ویرایش فایل‌هایتان را به طور مستقیم از CLI استفاده کنید.

مشخص کردن گروه‌ها:

اولین کاری که شما باید انجام دهید این است که آدرس IP همه اعضای شرکت کننده در گروه را بدست آورید. در این مثال ما فقط دو آدرس IP داریم:
87.76.280.180
176.58.116.232
فایل csf.conf موجود در دایرکتوری etc/csf/ در زیر نمایش داده شده است را باز کنید.
اکنون در فایلی که در پیش رو دارید دو پارامتر زیر را جستجو کنید:
CLUSTER_SENDTO
CLUSTER_RECVFROM
آدرس IP هر دو سرور را با استفاده از کاما از هم جدا کنید و هر دو IP را مانند شکل زیر در داخل یک ” ” قرار دهید:
۱۰۷-cfs
با این تنظیمات تمام اعضای درون گروه قادر به ارسال و دریافت اطلاعات لیست سیاه و لیست سفید با یکدیگر هستند. شما در حال ایجاد یک نوع شبکه هستید که هر سرور با دیگر سرورها یک لینک مستقیم دارد.
گزینه بعدی که باید فعال شود CLUSTER_BLOCK نامیده می‌شود. این گزینه به صورت پیش‌فرض فعال است مگر اینکه در جایی چیزی تغییر کرده باشد. شما نیازی نیست آن را تغییر دهید:
مقدار CLUSTER_PORT یک شماره پورت است که نیاز است در بین تمامی سرورهای به اشتراک گذاشته شود. فقط مطمئن شوید که هر فایل csf.conf همان متغییر CLUSTER_PORT را دارد.
CLUSTER_KEY مسئولیت تضمین تمامی ارتباطات رمزگذاری شده بین تمای سرورها را بر عهده  دارد. یک رشته عدد و الفبا بین ۸ تا ۵۶ کاراکتر انتخاب کنید و توصیه می‌شود که ترجیحا بیش از ۲۰ کاراکتر باشد. ضروری است که این کلید در فایل‌های  csf.conf تمامی سرورها یکسان باشد و مخفی نگه داشته شود. اگر این‌گونه نباشد ممکن است حمله کننده یک پیغام را از سمت سرور شما شناسایی کنند و امنیت سرور شما  را به خطر بیندازد.

تغییرات فایل csf.conf طول می‌کشد. مطمئن شوید که برای هر نود (node) در گروه خود این تغییرات را انجام داده‌اید.

راه‌اندازی مجدد و پینگ کردن:

هنگامی که فایل csf.conf اصلاح شد، نیاز داریم که هر دو CSF و همچنین lfd را Restart کنیم. برای انجام این کار از طریق SSH به سرورها Login کنید و دستورات زیر را تایپ کنید:
csf -r
service lfd restart
هنگامی‌که این دو سرویس Restart شد باید گروه را تست کنیم. از طریق ترمینال SSH دستور زیر را تایپ کنید:
csf --cping
اگر تمامی مراحل به درستی انجام شده باشد سرور باید تمامی آدرس IPهای اضافه شده به فایل csf.config را بدون هیچ مشکلی Ping کند.
اگر نتوانید با یکی از سرورها ارتباط برقرار کنید به شما اطلاع‌رسانی شکست خواهد شد. ایجاد یک گروه CSF به شما اجازه می‌دهد که تشخیص خطرات خود را بهبود دهید و این بخش مهمی از معماری امنیتی است.

نصب ZFS روی یک سرور لینوکس CentOS 6

845views

فایل سیستم ZFS برای لینوکس به صورت source code وجود دارد که شما می‌توانید به صورت ماژول کرنل آن را اجرا کنید. از یک سری ابزارها مانند ZFS، Zpool و غیره استفاده می‌کنند.

این آزمون بر روی یک CentOS6 انجام شده:

$ cat /etc/redhat-release
CentOS release 6.5 (Final)

نصب متعلقات:

$ yum install gcc kernel-devel zlib-devel libuuid-devel libblkid-devel libselinux-devel parted lsscsi rpm-build

هنگامی که نصب تمام شد ، شما می توانید پکیج های ZFS و SPL را از لینک زیر اصلاح و یا ایجاد کنید:

http://zfsonlinux.org/download.html

پس از دانلود مراحل زیر را انجام دهید:

$ tar xfvz spl-0.6.0-rc14.tar.gz
$ cd spl-0.6.*

$ ./configure
$ make rpm

$ rpm -Uvh *.x86_64.rpm

Preparing... ########################################### [100%]
۱:spl-modules-devel ########################################### [ 33%]
۲:spl-modules ########################################### [ 67%]
۳:spl ########################################### [100%]

$ wget http://github.com/downloads/zfsonlinux/zfs/zfs-0.6.0-rc6.tar.gz

$ tar xfvz zfs-0.6.0-rc14.tar.gz
$ cd zfs-0.6.*

$ ./configure
$ make rpm

$ rpm -Uvh *.x86_64.rpm

Preparing... ########################################### [100%]
۱:zfs-test ########################################### [ 17%]
۲:zfs-modules-devel ########################################### [ 33%]
۳:zfs-modules ########################################### [ 50%]
۴:zfs-dracut ########################################### [ 67%]
۵:zfs-devel ########################################### [ 83%]
۶:zfs ########################################### [100%]

اگر همه مراحل به درستی انجام شود ماژول‌های کرنل ZFS و موارد کاربردی userland نصب می‌شوند. برای استفاده از ZFS نیاز است که بار اول ماژول‌های کرنل modprobe بارگذاری نمائید.

$ modprobe zfs

برای بررسی ماژول اجرایی شما می‌توانید مسیر /var/log/messages را دنبال کنید:

Feb 12 17:54:27 centos6 kernel: SPL: Loaded module v0.6.0, using hostid 0x00000000
Feb 12 17:54:27 centos6 kernel: zunicode: module license 'CDDL' taints kernel.
Feb 12 17:54:27 centos6 kernel: Disabling lock debugging due to kernel taint
Feb 12 17:54:27 centos6 kernel: ZFS: Loaded module v0.6.0, ZFS pool version 28, ZFS filesystem version 5

و lsmode را به منظور بررسی آن‌ها اجرا کنید:

$ lsmod | grep -i zfs

zfs 1038053 0
zcommon 42478 1 zfs
znvpair 47487 2 zfs,zcommon
zavl 6925 1 zfs
zunicode 323120 1 zfs
spl 210887 5 zfs,zcommon,znvpair,zavl,zunicode

برای ایجاد اولین pool ما می‌توانیم با استفاده از کاربردهای zpool، این مورد را ایجاد کنیم:

$ zpool create mysqlpool mirror sdb sdc

در مثال بالا یک mirrored pool در دستگاه‌های sdb و sdc ایجاد شده است. ما می‌توانیم این طرح را در خروجی zpool status ببینیم:

$ zpool status -v

pool: mysqlpool
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
mysqlpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0

errors: No known data errors

pool version 28h به ما این امکان را می‌دهد که atime updates را غیرفعال و compression و deduplication را فعال کنیم.

$ zfs set compression=on mysqlpool
$ zfs set dedup=on mysqlpool
$ zfs set atime=off mysqlpool

برای یک آزمون واقعی یکی از MySQL slaves را متوقف کردیم و در مسیر /var/lib/mysql یک pool را بارگذاری کردیم. اطلاعات قبلی روی سیستم فایل ZFS را همگام‌سازی کردیم و بعد از آن MySQL به خوبی شروع به کار کرد.

$ dd if=/dev/zero of=/dev/sdb
$ zpool scrub mysqlpool

اجازه می‌دهیم که این دستور چند دقیقه اجرا شود بعد از اتمام آن zpool status به منظور بررسی اسکراب ثابت همه موارد اجرا شود:

$ zpool status -v
pool: mysqlpool
state: ONLINE
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://www.sun.com/msg/ZFS-8000-9P
scan: scrub repaired 966K in 0h0m with 0 errors on Sun Feb 12 18:54:51 2012
config:

NAME STATE READ WRITE CKSUM
mysqlpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 175
sdc ONLINE 0 0 0

سرور و کلاینت NFS

سرور و کلاینت NFS: نحوه راه‌اندازی روی CentOS 7.2

2.9kviews

در این مقاله چگونگی راه‌اندازی یک سرور NFS و یک کلاینت NFS روی یک CentOS 7.2 آموزش داده می‌شود. از طریق NFS یک کلاینت می‌تواند به صورت Remote روی یک سرور NFS دسترسی (خواندن و نوشتن ) داشته باشد به صورتی‌که فایل‌هایی که بر روی سرور هستند انگار که روی کامپیوتر خود شخص قرار دارند. ما به عنوان پایه از یک سرور CentOS 7.2 minimal برای نصب و راه‌اندازی استفاده می‌کنیم.

۱- نکات مقدماتی‌ سرور و کلاینت NFS:

ما در اینجا از دو سیستم CentOS استفاده می‌کنیم:

• NFS Server: server.example.com, IP address: 192.168.1.100
• NFS Client: client.example.com, IP address: 192.168.1.101

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

yum -y install nano

۲- پیکربندی فایروال:

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

yum -y install firewalld

شروع فایروال و فعال شدن آن در زمان بوت آغاز می‌شود.

systemctl start firewalld.service
systemctl enable firewalld.service

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

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

۳- نصب NFS:

سرور:

برای سرور NFS دستور زیر را اجرا می کنیم:

yum -y install nfs-utils

سپس برای فعال‌سازی و شروع سرویس‌های NFS دستورات زیر را اجرا کنید:

systemctl enable nfs-server.service
systemctl start nfs-server.service

کلاینت:

بر روی کلاینت‌ها می‌توانیم NFS را مطابق زیر نصب کنیم (در واقع بر روی همان سرور است):

yum install nfs-utils

۴- مسیرهای خروجی بر روی سرور و کلاینت NFS:

سرور:

ما می‌خواهیم دایرکتوری home/ و var/nfs/ برای کلاینت‌ها در دسترس باشد. بنابراین باید آن‌ها را بر روی سرور Export کنیم.
وقتی که یک کلاینت به یک NFS share دسترسی داشته باشد به طور معمول به عنوان کاربر nfsnobody است. معمولا دایرکتوری home/ متعلق به nfsnobody نیست (و من توصیه می‌کنم که مالکیت آنرا به nfsnobody تغییر ندهید) و چون ما می‌خواهیم در home/ بخوانیم و بنویسیم پس باید دسترسی به NFS share به عنوان root ایجاد شود (اگر home فقط خواندنی باشد نیازی به انجام این کار نیست). دایرکتوری var/nfs/ وجود ندارد، بنابراین ما می‌توانیم آن را ایجاد کنیم و مالکیت آن را به کاربر و nfsnobody تغییر دهیم.

mkdir /var/nfs
chown nfsnobody:nfsnobody /var/nfs
chmod 755 /var/nfs

اکنون ما باید /etc/exports که NFS shares خود را export می‌کنیم را اصلاح کنیم. ما home/ و var/nfs/ را به عنوان NFX share مشخص می‌کنیم و دسترسیhome/ را به عنوان root ایجاد می‌کنیم.

man 5 exports
nano /etc/exports
/home 192.168.1.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 192.168.1.101(rw,sync,no_subtree_check)

گزینه no_root_squash باعث می شود که home/ به عنوان ریشه در دسترس باشد.
هر زمان که ما /etc/exports را اصلاح کردیم باید دستور زیر را اجرا کنیم:

exportfs –a

پس از آن،ایجاد تغییرات موثر است.

۵- نصب و راه‌اندازی NFS Shares روی سرور و کلاینت NFS:

کلاینت:

در ابتدا ما یک دایرکتوریهایی را ایجاد می کنیم که می خواهیم NFS shares در آن قرار بگیرند مانند:

mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs

در ادامه می‌توانیم به صورت زیر آن‌ها را مقدار دهیم:

mount 192.168.1.100:/home /mnt/nfs/home
mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs

اکنون باید دو فایل NFS shares در خروجی داشته باشید:

[root@client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
۱۹۲٫۱۶۸٫۱٫۱۰۰:/home 28G 1.2G 27G 5% /mnt/nfs/home
۱۹۲٫۱۶۸٫۱٫۱۰۰:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

و

mount
mount[root@client ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
۱۹۲٫۱۶۸٫۱٫۱۰۰:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
۱۹۲٫۱۶۸٫۱٫۱۰۰:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)-

 

۶- تست کردن سرور و کلاینت NFS:

اکنون شما می‌توانید روی کلاینت یک فایل تست در NFS shares ایجاد کنید:

کلاینت:

touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt

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

سرور:

ls -l /home/
[root@server1 ~]# ls -l /home/
total 0
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator
-rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
ls -l /var/nfs
[root@server1 ~]# ls -l /var/nfs
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

(لطفا به مالکیت‌های مختلف فایل‌های تست توجه داشته باشید. home NFS share/ بعنوان ریشه (root) دیده می‌شود. بنابراین /home/test.txt متعلق به ریشه است. /var/nfs share به عنوان nobody/65534 دیده می‌شود بنابراین /var/nfs/test.txt متعلق به nobody است).

۷- نصب و راه‌اندازی NFS Shares در زمان بوت:

به جای نصب و راه‌اندازی NFS Shares به صورت دستی روی سرور، شما می‌توانید /etc/fstab را تغییر دهید به‌صورتی‌که NFS shares به طور خودکار هنگامی‌که کلاینت بوت می‌شود نصب و راه‌اندازی شود.

کلاینت:

etc/fstab/ را باز کنید و خطوط زیر را دنبال کنید:

nano /etc/fstab
[...]
۱۹۲٫۱۶۸٫۱٫۱۰۰:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0
۱۹۲٫۱۶۸٫۱٫۱۰۰:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0

به جای rw,sync,hard,intr شما می‌توانید گزینه‌های مختلفی استفاده کنید. برای کسب اطلاعات بیشتر در مورد گزینه‌های موجود نگاهی بیندازید به:

man nfs

برای اینکه تست کنید که فایل اصلاح شده /etc/fstab کار می‌کند، کلاینت را reboot کنید:

Reboot

پس از راه‌اندازی مجدد سیستم، شما باید دو NFS shares در خروجی داشته باشید:

df –h
[root@client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
۱۹۲٫۱۶۸٫۱٫۱۰۰:/home 28G 1.2G 27G 5% /mnt/nfs/home
۱۹۲٫۱۶۸٫۱٫۱۰۰:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

و

mount
[root@client ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
۱۹۲٫۱۶۸٫۱٫۱۰۰:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
۱۹۲٫۱۶۸٫۱٫۱۰۰:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

 

۸- لینک‌های سرور و کلاینت NFS:

Linux NFS: http://nfs.sourceforge.net/
CentOS: http://www.centos.org/

بررسی فرآیندهای در حال اجرا روی لینوکس با استفاده از دستورات PS

2.9kviews

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

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

[root@fedora ~]# ps
PID TTY TIME CMD
۲۷۰۸ pts/1 00:00:00 bash
۲۹۵۸ pts/1 00:00:00 ps

PID: این گزینه IP فرآیند در حال اجرا است.
TTY: مکانی است که دستور در آن اجرا می‌شود.
TIME: زمانی که CPU توسط فرآیند در حال اجرا استفاده می‌شود.
CMD: دستوری است که توسط فرآیند فعلی اجرا می‌شود.

برای مشاهده همه فرآیندهای فعال بر روی سیستم از دستورات زیر استفاده کنید، دستور ps aux # جزئیات بیشتری از فرآیندها برای شما نشان می‌دهد.

# ps ax
# ps axu

با استفاده از گزینه “u” و یا “f-” مطابق با دستورات زیر می‌توانید جزئیات دقیق مربوط به هر فرآیند را مشاهده کنید.

$ ps aux
$ ps -ef -f

با اضافه کردن گزینه “u” و افزودن username در انتهای دستور می‌توانید فرآیندهای مربوط به یک کاربر را مشخص کنید.

$ ps -f -u username

برای جستجو در فرآیندها بر اساس نام و یا دستور استفاده شده “c” در دنباله دستور استفاده می‌کنیم.

$ ps -C apache2
PID TTY TIME CMD
۲۳۵۹ ? ۰۰:۰۰:۰۰ apache2
۴۵۲۴ ? ۰۰:۰۰:۰۰ apache2
۴۵۲۵ ? ۰۰:۰۰:۰۰ apache2
...

مدیران سیستم اغلب می‌خواهند فرآیندهایی که درحال مصرف بیش از اندازه از حافظه و یا CPU هستند را پیدا کنند، با استفاده از دستور زیر می‌توانید فرآیندها را بر اساس میزان مصرف CPU و یا میزان مصرف حافظه مرتب کرد. اگر بخواهیم بر اساس چند مورد جستجو را انجام دهیم با استفاده از کاما آنها را از هم جدا می‌کنیم. با استفاده از “+” و یا “- ” می‌توانیم مشخص کنیم که جستجو صعودی باشد یا نزولی.

$ ps aux --sort=-pcpu,+pmem

دستور زیر ۵ پروسه‌ای که بیشترین مصرف CPU را دارد نمایش می‌دهد:

$ ps aux --sort=-pcpu | head -5

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

# ps -ejH
# ps axjf

دستورات مفید SSH برای مدیریت CFS

1.3kviews

CFS یکی از بهترین نرم‌افزارهای فایروال برای سرورهای لینوکسی است. در این مقاله برخی از دستورات SSH که برای تنظیمات CSF استفاده می‌شود برای شما آورده شده است.

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

csf -r

دستور زیر برای start کردن ruleهای فایروال استفاده می‌شود:

csf –s

دستور زیر یک آدرس IP را از لیست csf.deny (IP های حذف شده) پاک می‌کند و IP را آزاد می‌کند:

csf -dr IP address

با استفاده از دستور زیر می‌توان یک IP آدرس را در لیست csf.deny قرار دهیم ( بلاک کردن IP):

csf -d IP address

با استفاده از دستور زیر می‌توانیم یک IP آدرس را در لیست سفید (whitelist) فایروال قرار دهیم:

csf -a IP address

برای اضافه کردن یک IP به لیست temp IP ban از دستور زیر استفاده می‌کنیم:

csf -td IP address

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

csf -ta ipaddress TTL [-p port] [-d direction] [comment]

در دستور بالا TTL برای مشخص کردن زمان برحسب ثانیه است. Port شماره پورت مورد نظر و direction برای مشخص کردن in یا outbound است و از comment هم برای درج پیام استفاده می‌شود.

دستور زیر یک IP آدرس را بطور موقت از لیست حذف می‌کند و یا اجازه میدهد موقتا در لیست باشد.

csf -tr