نصب مخزن EPEL داخل کشور بدون تحریم

341views

رفع مشکل مخزن EPEL با سرور داخلی بدون تحریم و کاهش سرعت

مخزن EPEL (Extra Packages for Enterprise Linux) یک مخزن نرم‌افزاری متن‌باز است که توسط پروژه Fedora برای توزیع‌های لینوکسی Enterprise مانند RHEL (Red Hat Enterprise Linux)، CentOS، راکی لینوکس Rocky Linux و آلمالینوکس AlmaLinux ارائه شده است. هدف اصلی این مخزن، فراهم کردن بسته‌های اضافی و کاربردی برای این توزیع‌هاست که در مخازن رسمی وجود ندارند.


EPEL چیست؟

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


چه کاربردی دارد؟

  • افزایش امکانات پیش‌فرض لینوکس سازمانی:
    توزیع‌های RHEL و مشابه‌های آن برای استفاده در محیط‌های تجاری و سازمانی طراحی شده‌اند و فقط ابزارها و بسته‌های ضروری در مخازن رسمی آن‌ها وجود دارد. EPEL به کاربران اجازه می‌دهد ابزارها و بسته‌های اضافی موردنیاز خود را بدون ایجاد مشکل در پایداری سیستم، نصب کنند.
  • دسترسی به نرم‌افزارهای متن‌باز محبوب:
    بسیاری از ابزارهای متن‌باز که به‌طور گسترده توسط توسعه‌دهندگان، مدیران سیستم و کاربران استفاده می‌شوند، مانند htop، nginx، fail2ban، ansible و غیره، از طریق EPEL در دسترس هستند.
  • رفع نیاز به کامپایل دستی نرم‌افزارها:
    بدون استفاده از EPEL، کاربران باید بسیاری از نرم‌افزارها را به‌صورت دستی کامپایل کنند، که زمان‌بر است و ممکن است به مشکلات وابستگی‌ها (dependencies) برخورد کنند.

زیرساخت ها و نرم افزاهایی که در EPEL وجود دارد:

  • ابزارهای توسعه‌دهنده: مانند git ،vim-enhanced و build-essential
  • نرم‌افزارهای مانیتورینگ و مدیریت سیستم: مانند nagios ،zabbix-agent و net-tools
  • کتابخانه‌های برنامه‌نویسی و ماژول‌ها: مانند python-pip ،perl-modules و nodejs
  • سرورها و ابزارهای تحت وب: مانند nginx ،haproxy و phpMyAdmin
  • ابزارهای شبکه: مانند iperf3 ،tcpdump و wireshark

دلایل نیاز به EPEL:

  1. گستره وسیع بسته‌ها:
    مخازن رسمی RHEL، CentOS یا AlmaLinux شامل بسته‌های محدود و پایه‌ای هستند. برای دسترسی به ابزارهای اضافی، EPEL ضروری است.
  2. پایداری و سازگاری:
    تمام بسته‌های موجود در EPEL مطابق با استانداردهای Fedora ساخته شده‌اند، بنابراین قابل اعتماد بوده و با سیستم‌های لینوکسی Enterprise سازگارند.
  3. مدیریت وابستگی‌ها:
    با استفاده از EPEL، مشکلات مربوط به وابستگی نرم‌افزارها به حداقل می‌رسد زیرا تمام نیازمندی‌های یک بسته به‌صورت خودکار از مخزن نصب می‌شوند.
  4. به‌روزرسانی منظم:
    بسته‌های موجود در EPEL به‌طور مرتب به‌روزرسانی می‌شوند و آخرین نسخه‌های پایدار نرم‌افزارها را ارائه می‌دهند.

برخی از برنامه‌های ضروری داخل EPEL:

  • Ansible: ابزاری برای اتوماسیون مدیریت سیستم.
  • Htop: ابزار مانیتورینگ و مشاهده منابع سیستم.
  • Fail2ban: برای محافظت از سرور در برابر حملات brute force.
  • Nginx: به‌عنوان یک وب‌سرور یا پروکسی معکوس.
  • Certbot: برای دریافت و مدیریت گواهی‌های SSL از LetsEncrypt.

چگونه EPEL را فعال کنیم؟

فعال‌سازی EPEL بسیار ساده است. برای فعال کردن این مخزن در سیستم‌های لینوکسی مبتنی بر RHEL (مانند CentOS و AlmaLinux)، می‌توانید دستور زیر را اجرا کنید اما پس از اجرای این دستور در سرورهای داخل کشور ، اقدام به نصب و با به روزرسانی از این مخزن با خطا مواجه خواهد شد زیرا Fedora آدرسهای IP ایران را تحریم کرده است و باید با استفاده از ابزارهایی که برای دور زدن تحریم طراحی شده اند این موارد را دور بزنید که متاسافانه دارای سرعت بسیار پائینی هستند و بهره وری و سرعت انجام کار را بسیار زیاد می کند.

در همین راستا زاگریو به منظور رفاه حال همکاران و استفاده کنندگان سیستم ها و سرورهای لینوکسی؛ اقدام به راه اندازی مخازن متن باز لینوکس در ایران کرده است و همچنین یک کپی از مخزن epel در داخل کشور بر روی شبکه نیم‌بها با سرعت 100Gbit/s نموده است.


مشخصات سرور EPEL در ایران بدون تحریم:

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

این مخزن بر روی آدرس‌ها و پروتکل‌های HTTP, rsync و FTP نیز در دسترس است:

یکی از مهمترین مزایای استفاده از این محزن، نیم بها بودن تعرفه اینترنت شما خواهد بود.

به دلیل محدودیت فضا، صرفا برنامه های مربوط به نسخه 7 به بالا در این مخزن وجود دارد و نسخ 4، 5 و 6 در این مخزن وجود نداند.

نحوه نصب مخزن EPEL زاگریو

نصب کلید GPG

ابتدا باید کلید مربوط به نسخه سرور خود را نصب کنید، نسخه سرور خود را با دستور cat /etc/redhat-release پیدا کنید.

نصب کلید برای سرورهای نسخه 7

نصب کلید برای سرورهای نسخه 8

نصب کلید برای سرورهای نسخه 9

نصب کلید برای سرورهای نسخه 10

تغییر فایلهای Repository (برای REHL9)

حالا باید فایلهایی که مربوط به مسیردهی مخزن هست را تغییر داد. برای انجام این کار چندین روش وجود دارد. این فایلهای در مسیر etc/yum.repos.d/ قرار دارند و در این فایلهای مقداری برای مسیر اتصال به مخزن ها تعریف شده است که metalink نام دارد. این مسیر لیستی از مخازن هستند که بر اساس موقعیت جغرافیایی و سرعت شبکه شما، به بهترین آنها متصل می شوید و عملیات دانلود از آن سرور انجام می شود.

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

نمونه تنظیم شده فایل epel.repo برای مخزن زاگریو در داخل کشور

با استفاده از یکی از روشهای ذیل این تغییر را می توانید انجام دهید:

  • بصورت دستی با ویرایشگر دلخواه خود مانند nano فایلهای etc/yum.repos.d/epel.repo/ و etc/yum.repos.d/epel-testing.repo/ را ویرایش کنید و یک # در ابتدای خطوطی که داری metalink هستند اضافه کنید و # را از ابتدای baseurl حذف کنید و مقدار ذیل را بجای آن تنظیم کنید:

  • با استفاده از دستورات ذیل، فایلهای مخزن را حذف و نسخه تنظیم شده توسط ما را جایگزین آنها کنید: (روش پیشنهادی)

  • محتوای فایلهای epel.repo و epel-testing.repo را با دستورات ذیل حذف و بصورت دستی جایگزین کنید:

غیرفعال کردن مخزن epel-cisco

در نهایت باید دستور زیر را در هر یک از روش فوق بزنید تا مخزن epel-cisco-openh264 را که از طرف سیسکو برای توزیع Codec H264 پیاده سازی شده است را غیرفعال کنید:

جمع‌بندی:

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

معرفی EPEL در سایت RedHat

تامین امنیت سرورهای لینوکسی به واسطه به‌روزرسانی خودکار

به‌روزرسانی خودکار سرور برای تامین امنیت

تامین امنیت سرورهای لینوکسی از طریق به‌روزرسانی اتوماتیک


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

یک قانون عمومی اغلب برای استفاده از به روزرسانی خودکار وجود دارد:

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

هر چند قاعده فوق شامل استثنا نیز می شود و یا میتوان به روشهایی آن را دور زد. برخی از مشکلات را می توان با راه اندازی یک رویه ویژه برطرف کرد. برای مثال شما می توانید مخزن مخصوص به خودتان را راه اندازی کنید و فقط فایلهایی را که تست کرده اید و از صحت عملکردآنها اطمینان دارید و یا از منابع مورد تاییدتان آنها را دریافت کرده اید را درون آن قرار دهید و سپس با استفاده از ویژگی به روزرسانی خودکار آن بر روی سرورهایتان نصب کنید تا آن بخش از امنیت سرور شما که وابسته به آپدیت بودن بسته های نرم افزاری هست تامین شود. اینگونه تنظیمات علی‌رغم اینکه راه اندازی پیچیده تری دارند و نگهداری از آنها سخت تر نیز هست، می‌تواند بخش عمده ای از ریسک به روزرسانی خودکار را حذف کند.

 

نحوه راه اندازی به‌روزرسانی خودکار


شما میتوانید از این سرویس برای دانلود و نصب خودکار هر نوع به روزرسانی استفاده کنید (مثلا به روزرسانی های امنیتی)

بسته dnf-automatic مبنی بر RPM به عنوان یک افزونه به DNF اضافه می شود سرویسی برای به روزرسانی خودکار فراهم می کند.

 

نصب و تنظیم dnf-automatic

بر روی سیستم عامل خود بسته مذکور را به روش ذیل نصب کنید:

 

بصورت پیشفرض فایل تنظیمات خود را در مسیر etc/dnf/automatic.conf/ ایجاد می کند. این تنظیمات بصورتی است که فقط بسته ها را دانلود می کند و آنها را نصب نمی کند. برای تغییر و یا افزودن هر نوع تنظیماتی، فایل مذکور را با کاربر دارای دسترسی root توسط ویرایشگر دلخواهتان باز کنید.

 

نصب و راه اندازی dnf-automatic

پس از نصب دستور زیر را برای فعالسازی وارد کنید:

سپس با دستور ذیل وضعیت سرویس را بررسی کنید:

در نسخ فعلی سه تایمر برای این سرویس وجود دارد:

dnf-automatic-download.timer که فقط دانلود را انجام می دهد.

dnf-automatic-install.timer که عملیات دانلود و نصب را انجام میدهد.

dnf-automatic-notifyonly.timer که فقط برا اساس تنظیمات فایل فوق؛ اطلاع رسانی را انجام می دهد.

شما می توانید از download_updates و apply_updates در داخل etc/dnf/automatic.conf/ بهره ببرید.

 

آیا بروزرسانی های DNF قابل اطمینان هستند؟


در سیستم های مبتنی بر Fedora و REHL بررسی کلید های GPG بصورت پیشفرض فعال هستند. با فرض اینکه شما کلید صحیح را در سیستم خودتان تعریف کرده باشید و مقدار gpgcheck=1 را در فایل dnf.conf وارد کرده باشید، میتوان اینگونه تصور کرد که فایلهای به روزرسانی خراب و یا تغییر داده شده نیستند و اصالت آنها را تایید کرد. در صورت فعال بودن این گزینه، یک خرابکار به هیچ وجه نمیتواند بسته ای را تولید و برای سرور شما ارسال کند که سیستم شما آن را قبول کند (مگر اینکه آنها کلید خصوصی متناظر با آنچه شما نصب کرده اید را داشته باشند) و در زمان دانلود سیستم فایلهای معیوب را شناسایی خواهد کرد.

هرچند، این پرسش هنوز مطرح است که آیا بسته به روزرسانی بصورت کامل و یا صحیح است؟ آیا با نصب آن سیستم شما دچار مشکل نخواهد شد؟ متاسفانه ما نمیتوانیم به این پرسش پاسخ درستی بدهیم و شما باید در طی یک پروسه آزمون و خطا صحت عملکرد بسته های به روزرسانی را متناسب با نیاز و شرایط خود بررسی کنید. هر بسته به روزرسانی توسط تیم های “کنترل کیفیت” بررسی می شود اما مشکلات همیشه بوجود می آید. خطای انسانی و یا بروز یک ناسازگاری ممکن است سیستم شما را با مشکل مواجه کند که این موارد خصوصا در آپدیت های سرورها و سیستم های ویندوزی به دلیل خودکار بودن بسیار رخ داده و خبرساز شده است. رویه استاندارد در صنعت IT و برنامه های حساس و سیستم های “در حال اجرا” این است که شما همواره قبل از به روزرسانی این بسته ها را بر روی سرورهای تستی خود اصالت سنجی و از صحت عملکرد سرور و سرویس خود اطمینان حاصل فرمائید.

 

چرا از به‌روزرسانی خودکار استفاده کنیم؟


مزیت اصلی آن دریافت سریعتر، منظم تر و یکپارچه تر بسته های به‌روزرسانی است که متعاقبا تامین امنیت سرور اختصاصی شما را به همراه دارد. متاسفانه سیستم های زیادی به دلیل عدم دریافت بسته های به روزرسانی دچار آلودگی بد افزار و یا نفوذ می شوند. بسیاری از هک ها و مشکلاتی که اغلب دارندگان سرورهایی که سرور مدیریت شده ندارند به دلیل عدم نصب به روزرسانی سرورها در زمان مقرر است که موجبات عدم تامین امنیت سرور را به همراه دارد.

در عین حال که می‌بایست در استفاده از به روزرسانی های خودکار، خصوصا در محیط های Production محتاط باشید، بررسی این موضوع حداقل در برخی شرایط ارزش بررسی دارد.

دلایل استفاده از به‌روزرسانی خودکار

هر چند کسی نمی تواند بصورت تضمینی این اطمینان را به شما بدهد که سرور شما کاندید مناسبی برای دریافت به روزرسانی های خودکار هست یا نه، بررسی چندین مورد می تواند در تصمیم گیری به شما کمک کند.

برخی از مواردی که در این خصوص می تواند به شما کمک کند به شرح ذیل است:

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

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

 

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

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

  • عملکرد دائمی سیستم شما به قدری حیاتی است که شما و یا سازمان نمیتوانید لحظه ای قطعی سرویس را تحمل کنید.
  • شما برنامه های دست نویس را استفاده می کنید، از سورس یک برنامه را compile کرده اید و یا عملکرد سرویس شما نیازمند یک نسخه خاص از یک پیش نیاز نرم افزاری است.
  • شما از یک kernel خاص و یا یک ماژول اختصاصی در kernel خود بهره می برید و یا برنامه شما از یک ویژگی منحصر به نسخه خاصی از kernel بهره می برد. (شما می توانید آپدیت های kernel را محدود کنید)
  • محیط کاری و نرم افزاری شما نیازمند بررسی دقیق هرگونه تغییر و یا نظارت بر عملکرد هر بخش از سرویس می باشد.
  • از یک مخزن (Repository) غیر استاندارد استفاده می کنید که ممکن است با برنامه هایی که در مخزن اصلی وجود دارند تداخل نسخه ای داشته باشند.

همچنین برخی موارد هستند که بررسی به روزرسانی ها قبل از نصب آنها قطعا روش درستی برای کار نیست که چند نمونه مثال خواهیم زد:

  • نیاز به بکاپ گیری قبل از اعمال به‌روزرسانی: حتی بهترین برنامه ها می‌تواند دارای ایراد باشند. ممکن است تنظیماتی داخل یک فایل داشته باشید که با آپدیت، آن تغییرات از دست بروند. یا ممکن است نسخه جدید یک برنامه نحوه تنظیمات آن فرق کرده باشد و یا برخی از flag ها در آن حذف و یا اضافه شده باشد که عدم وجود و یا وجود آنها منجر به خطا در سرویس شما بشود. بهتر است قبل از به روزرسانی سرویس هایی مانند وب سرور، بانک اطلاعاتی و پست الکترونیکی؛ حتما از فایلهای تنظیمات خود یک نسخه پشتیبان تهیه کنید.
  • عوارض پیش بینی نشده: برخی از برنامه ها ممکن است دارای عوارضی جانبی باشند مانند برنامه هایی که از ویژگی cron jobs بهره می‌برند. به روزرسانی بسته هایی مانند openssl، openldap و sql به روزرسانی های متعددی برای برنامه هایی که به نظر بی ربط می‌رسند دارند.
  • باگ: برخی از بسته ها ممکن است اسکریپت آپدیت کننده آن دارای ایراد باشد که بعد از نصب ممکن است با خطاهای ناشناخته و یا عجیب روبرو شوید. نمونه ای از این خطا ها قبلا در Mozilla مشاهده شده است که بعضا آیکن ها حذف شده و برای کاربران دچار اعصاب خوردی و یا مشکلات کاربری ایجاد کرده است.
  • به روزرسانی خودکار ممکن است تمامی مراحل لازم برای ارتقای امنیت سیستم را انجام ندهد. برای مثال DNF می تواند آپدیت های kernel را نصب کند اما تغییرات اعمال نمی شوند. بسیاری از اینگونه تغییرات نیازمند ریستارت شدن سرویس (daemon) و یا ریستارت سرور است. این موارد ممکن است برای کاربر شائبه این را ایجاد کند که سیستم امن شده است در صورتی که به‌روزرسانی اصلا اعمال نشده است.

 

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


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

بسته هایی به روزرسانی را کنترل کنید که آیا بصورت کامل نصب شده اند و یا نیازمند انجام عملیات دستی هستند و یا خیر، که برای این مهم میتوانید لاگ را در مسیر var/log/dnf.log/ بررسی کنید.

شما می توانید موجودیت بسته به روزرسانی را به واسطه ایمیل اطلاع رسانی دریافت و بررسی کنید. با اعمال تنظیمات در فایل etc/dnf/automatic.conf/

 

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

تنظیمات فوق به این معناست که به محض اجرا شدن عملیات به روزرسانی؛ اطلاعات بسته های به روزرسانی موجود و همچنین لاگ بسته های دانلود شده و یا نصب شده مطابق تنظیمات فایل automatic.conf برای شما ارسال خواهد شد.

 

راهکارهای جایگزین


بجای استفاده از dnf-automatic می توانید از auter نیز استفاده کنید. عملکرد آن بسیار مشابه به dnf-automatic است اما انعطافپذیری بیشتری برای تنظیمات زمانبندی اجرا دارد و همچنین امکانات اضافه ای برای تنظیمات اجرای اسکریپ هایی قبل و بعد از اجرای به روزرسانی ها دارد که شامل ریستارت سرور نیز می شود. با این حال پیاده سازی این ویژگی ها نیازمند تنظیمات پیچیده تری می باشد.

پس از نصب می بایست فایل تنظیمات آن در مسیر etc/auter/auter.conf/ را ویرایش کنید.

Auter بصورت پیشفرض هیچگونه عملیاتی انجام نمی دهد و برای تنظیم باید از کد prep-- (برای دانلود) و همچنین apply-- (برای نصب) استفاده کنید. تنظیمات اجرای آن درون فایلهای cron که در مسیر etc/cron.d/auter/ وجود دارد که شامل تعداد بسیاری از مثال های قابل انجام می باشد.

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

برای غیرفعال سازی آن می توانید از دستور زیر استفاده کنید. این دستور برای Cron Job ها نیز عمل میکند:

 

راهکار جایگزین استفاده از به‌روزرسانی خودکار برای تامین امنیت


اطلاع رسانی

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

زمانبندی به روزرسانی ها

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

روش‌های دیگر تامین امنیت

اگر انجام این به روزرسانی ها را در دستور کار خود ندارید میتوانید از روش های دیگری به منظور تامین امنیت سرور اختصاصی و یا سرور ابری خودتان نیز استفاده کنید تا در مقابله با تهدیدات سایبری، نفوذ هکر ها و نشت داده های خود آسوده خاطر باشید. از جمله این موارد می‌توان به نصب دیوار آتش سخت افزاری و یا نرم افزاری (iptables, ipchains, tcp wrappers) اشاره نمود، همچنین عدم نصب برنامه های اضافی و عدم انجام کارهای پرخطر توسط سیستم سرور (استفاده از اینترنت، کنترل ایمیل و ..) به همراه کنترل و نظارت ورود غیرمجاز (بررسی لاگ های ورود، استفاده از سیستم های IDS و..) از جمله راه کار هایی است که می توانید برای افزایش امنیت و حفاظت از ماشین کاری خود انجام دهید.

 

منبع: مقالات آموزشی فدورا

 

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

1.1kviews

در مقاله 10 لود بالانس اوپن سورس و رایگان و در مبحث لود بالانسر‌ها (Load Balancer)ها اشاره‌ای کوتاه به Nginx Plus داشتیم، حال در این مقاله قصد داریم بیشتر آن را بررسی نماییم و در مورد آن صحبت کنیم.

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

Apache HTTP پیشتاز وب سرورهاست واین موضوع از آمار نیز مشخص است، اما همین آمار نکته‌ی دیگری را نیز به ما متذکر می‌شوند و آن هم چیزی نیست جز قدرت گیری آهسته‌ی Nginx که قصد دارد پیشتازی را از Apache HTTP برباید.

nginx plus

Nginx به سرعت و بهروری بینظیرش معروف است و بیشترین سهم از سایت‌هایی با رنک زیر 10 هزر و صد هزار را داراست که خود نشان دهنده برتری آن است.

در تصویر زیر می‌توانید آمار استفاده از Nginx و Apache HTTP را مشاهده نمایید.

nginx plus

یکی از بزرگترین مزیت‌های Nginx اوپن سورس بودن آن است، و همین نکته باعث شده تا با بیشتر سرورهای بک اندی میانه خوبی داشته باشد. اگر تا حالا با Nginx کار کرده‌اید احتمالا نام Nginx Plus را هم شنیده‌اید که نسخه تجاری آن است.

همانطور که تا حالا حدس زده‌اید Nginx Plus نسبت به برادر کوچکترش مزایای بیشتری دارد. به عنوان مثال:

  • ماندگاری session ها برای اطمینان از هدایت به سرور بالا دستی
  • High-availability clustering برای جلوگیری از خرابی تک نقطه‌ای (SPOF)
  • بررسی سلامت لحظه‌ای سرور برای جلوگیری از ارسال درخواست به سرور‌های دچار مشکل
  • پایش سرویس‌‌ها با استفاده از DNS
  • لود بالانسر با ویژگی‌های کامل
  • کنترل بیشتر بر cache
  • کنترل داخلی برای رفع اشکال، استفاده صحیح از منابع ، عیب یابی
  • sign in تک مرحله‌ای
  • ماژول پویای WAF
  • کنترل پهنای باند برای پخش فایل‌های Mp4

Nginx Plus برای سیستم‌عامل‌های زیر در دسترس است:

  • RHEL / CentOS
  • Amazon Linux
  • Oracle Linux
  • FreeBSD
  • SUSE
  • Ubuntu
  • debian

و برای IaaS ها(infrastructure-as-a-service) زیر:

  • Google Cloud Platform (GCP)
  • Amazon Web Services (AWS)
  • Microsoft Azure

نصب Nginx Plus

Nginx برای این نسخه یک trial سی روزه در نظر گرفته که شما می‌توانید به راحتی آن را دانلود نموده و به بررسی آن بپردازید تا در صورت نیاز آن را تهیه نمایید. در زیر نسخه‌ای نمایش داده شده که بر روی گوگل کلاد نصب گشته است. در زیر نصب Nginx Plus با استفاده از اسکریپت نشان داده شده که بسیار راحت است. در قدم اول با استفاده از root در سرور لاگین کنید.

در قدم بعدی اسکریپت زیر را اجرا نمایید.

در ادامه متنی که در اسکریپت بالا با هشتگ مشاهده می‌شود را با hash key که توسط Nginx به شما داده می‌شود جایگزین نمایید.  مانند مثال زیر:

به همین راحتی!

حالا نیاز است که Nginx را راه اندازی کنیم و صحت نصب خود را مورد بررسی قرار دهیم:

با اجرای این دستور از نصب صحیح خود اطمینان حاصل می‌نمایید.

شروع و توقف Nginx

شروع و توقف Nginx Plus مانند نسخه رایگان و اوپن سورس آن است.

بررسی لحظه به لحظه Nginx Plus

همانطور که در بالا هم اشاهر شد Nginx Plus دارای بررسی لحظه به لحظه است که اطلاعات زیر را در اختیار شما می‌گذارد:

  • درخواست‌های لحظه‌ای وتعداد کل درخواست‌ها
  • درخواست‌ها در هر ثانیه
  • میزان ترافیک لحظه‌ای(send/recieve)
  • درخواست‌های Upstream

بررسی لحظه به لحظه Nginx Plus

بنظر می‌رسد که Nginx Plus یکی از بهترین راهکار‌ها برای استفاده به عنوان Software Delivery و لود بالانس (Load Balance) می‌باشد.

مرکز آموزش زاگریو

CENTOS

چگونه مدیریت Rule های فایروال را در CentOS 7 انجام دهیم؟

3.7kviews

در مدیریت Rule های فایروال را در CentOS 7، شما نیاز دارید که با فایروال آشنا شوید برای آشنایی با فایروال CentOS 7 با مقاله زاگریو همراه باشید.
در این مقاله ما می‌خواهیم درباره اضافه و حذف Rule های اساسی فایروال بحث کنیم. این Rule ها به شما اجازه می‌دهند به خدماتی که در حال اجرا بر روی سرور است دسترسی داشته باشید.

هشدار: هنگامی که با یک سرور Remote کار می‌کنید و تنظیمات فایروال آن را مدیریت می‌کنید، باید مراقب باشید که از سرور خارج نشوید. مثلا اگر پورت ۲۲ که مربوط به SSH است را ببندید دیگر نمی‌توانید از طریق SSH به سرور دسترسی داشته باشید. برای این مواقع شما می‌توانید تگ دائمی (permanent flag) را حذف کنید که در صورت مواجه با همچین مشکلی با Reboot کردن سرور Rule هایی که ایجاد کرده‌اید حذف می‌شوند.

چگونه Rule های فایروال را در CentOS 7 مدیریت کنیم

به طور کلی در نرم افزار فایروال سه منطقه وجود دارد؛ Domain Profile ،Private Profile ،Public Profile.
منطقه Domain Profile برای زمانی‌که کامپیوتر شما عضو دامنه یک شرکت بزرگ است استفاده می‌شود. منطقه Private Profile برای یک شبکه خصوصی محلی استفاده می‌شود و منطقه Public Profil برای زمانی استفاده می‌شود که کامپیوتر شما عضو یک شبکه محلی عمومی باشد. در CentOS7 منطقه پیش‌فرض فایروال “Public” است. شما می‌توانید این مسیر را به /etc/firewalld/firewalld.conf تغییر دهید. اما در حال حاضر ما با توجه به اهداف مقاله همان منطقه “Public” را در نظر می‌گیریم.

مدیریت سرور

باز کردن پورت‌های فایروال CentOS 7:

برای باز کردن پورت ۸۰ (Http) در فایروال، شما می‌توانید از دستور زیر استفاده کنید.

firewall-cmd --permanent --zone=public --add-port=80/tcp

نکته: در دستور بالا با حذف تگ Permanent در صورت مواجه با مشکل با Reboot کردن سیستم Rule هایی که ایجاد کرده‌اید حذف می‌شوند.

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

firewall-cmd –reload

تایید Rule های فایروال CentOS 7:

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

firewall-cmd --zone=public --query-port=80/tcp

ایجاد Rule ها با استفاده از نام سرویس‌ها:

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

firewall-cmd --permanent --zone=public --add-service=http

اکنون می‌توانید با دستور زیر تغییرات را اعمال نمائید:

firewall-cmd –reload

بررسی پورت سرویس‌های باز شده:

firewall-cmd --zone=public --query-service=http

مثال‌های واقعی:

این مراحل یک ورودی دائم از پیکربندی فایروالتان ایجاد می‌کنید که ورودی اتصالات TCP به پورت ۸۰ TCP از اینترنت را اجازه می‌دهد.

با استفاده از دستور “firewall-cmd –list-all”می‌توانید تنظیمات اخیر فایورال خود را مشاهده کنید.

مثال:

firewall-cmd --list-all

public (default, active)
interfaces: eth0 eth1
sources:
services: ssh
ports: 80/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

برای حذف Rule یا سرویسی که اضافه کرده‌اید:

firewall-cmd --zone=public --remove-port=80/tcp

یا

firewall-cmd --zone=public --remove-service=http

سپس با استفاده از دستور زیر از اعمال تغییرات مطمئن شوید:

firewall-cmd –reload

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

زاگریو

نحوه پیدا کردن فایل‌های حجیم در سرورهای لینوکس از طریق SSH

نحوه پیدا کردن فایل‌های حجیم در سرورهای لینوکس از طریق SSH

4.1kviews

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

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

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

SSH

  • در توزیع های RedHat / CentOS / Fedora از دستور زیر استفاده کنید:

"find {/path/to/directory/} -type f -size +{size-in-kb}k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

  • برای پیدا کردن فایل‌های بیش از ۵۰MB در پوشه فعلی از دستور زیر استفاده کنید:

$ find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

  • جهت جستجو در پوشه /var/log/ از دستور زیر استفاده کنید:

# find /var/log -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

  • در توزیع‌های Ubunto / Linux از دستور زیر استفاده کنید:

find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

  •  برای جستجو در پوشه فعلی:

$ find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

  • نمونه خروجی:

./.kde/share/apps/akregator/Archive/http___blogs.msdn.com_MainFeed.aspx?Type=AllBlogs.mk4: 91M
./out/out.tar.gz: 828M
./.cache/tracker/file-meta.db: 101M
./ubuntu-8.04-desktop-i386.iso: 700M
./MSH/out/mp3/Shadmani: 230M

  • اس اس اچ
  • دستورات فوق فایل‌هایی را که بیش از ۱۰۰۰۰ کیلوبایت حجم دارند را نمایش می‌دهند.
  • جهت پیدا کردن کلیه فایل‌هایی که در پوشه Home هستند و حجم آن‌ها کمتر از ۵۰۰ بایت می‌باشد از دستور زیر استفاده کنید:

$ find $HOME -size -500b

یا

$ find ~ -size -500b

  • برای پیدا کردن فایل‌هایی که حجم آن‌ها دقیقا ۲۰ بلوک ۵۱۲ بایتی می باشد از دستور زیر استفاده کنید:

# find / -size 20

کانفیگ Name Server با استفاده از BIND روی CentOS 7

کانفیگ Name Server با استفاده از BIND روی CentOS 7

7.1kviews

در این مقاله می‌خواهیم به بررسی، کانفیگ Name Server با استفاده از BIND روی CentOS 7، بپردازیم و با شما در مورد مواردی مثل آماده‌سازی سرورها (سرور مجازی) برای کانفیگ Name Server، نصب BIND، صحبت کنیم.

BIND چیست و چه کاربردی دارد؟

BIND یکی از محبوبترین سرورهای DNS است که در شبکه اینترنت استفاده می‌شود. این سرور می‌تواند به عنوان یک server authoritative، server recursive و یا سرور ذخیره نام عمل کند و طیف وسیعی از ویژگی‌ها را پشتیبانی می‌کند.

در این آموزش ایجاد سرورهای اولیه و ثانویه BIND به عنوان یک authoritative name servers توضیح داده می‌شود. این روش برای name server عمومی یا خصوصی (سرور اختصاصی) مناسب است. با این حال name serverهای خصوصی internal معمولا شامل عناصر بازگشتی و ذخیره‌سازی برای تحلیل DNS محلی است.

 . . این مقاله را نیز به شما پیشنهاد می‌کنیم . .

راه اندازی DNSSEC در سرور BIND DNS

 

کانفیگ Name Server

بسیار تاکید می شود که name serverهای اولیه و ثانویه در شبکه ها و مکان‌های فیزیکی جداگانه قرار داشته باشند. این امر باعث می شود که اگر یکی از name server ها بنا به دلایلی همچون در دسترس نبودن سرور، شبکه و یا مشکلات دیتاسنتر در دسترس نبود name server دیگر در دسترس باشد.

تجهیزات مورد نیاز

• دو سرور ( اولیه و ثانویه)
• CentOS or Red Hat Enterprise Linux 7
• BIND 9
• یک دامین (به عنوان مثال zagrio.com)
• آدرس IP اولیه: ۱۹۲٫۰٫۲٫۱
• آدرس IP ثانویه: ۱۹۲٫۰٫۲٫۲

آماده‌سازی سرورها برای کانفیگ Name Server

هر دو شبکه و فایروال‌های host ها باید به ترافیک TCP و UDP از طریق پورت ۵۳ اجازه ورود دهند. درخواست‌های استاندارد DNS بیشتر از طریق پورت ۵۳ اتقاق می‌افتد. با این‌حال اگر حجم پاسخ بیشتر از ۵۱۲ بایت باشد ممکن است باعث DNSSEC شود که درخواست به پورت ۵۳ TCP فرستاده می‌شود.

آماده‌سازی سرورها برای کانفیگ Name Server 
انتقال‌های Zone بین name server های اولیه و ثانویه از طریق پورت ۵۳ صورت می‌گیرد.

firewall-cmd --permanent --zone=public --add-port=53/tcp
firewall-cmd --permanent --zone=public --add-port=53/udp
firewall-cmd --reload

نصب BIND

BIND بصورت پیش‌فرض در مخازن CentOS موجود است. bind-utils برای تست و عیب‌یابی مسائل مربوط به DNS بسیار مفید است.

نصب BIND

yum -y install bind bind-utils

کانفیگ سرور اولیه

اولین قدم اصلاح فایل named.conf است که معمولا به عنوان یک name server برای ذخیره‌سازی کانفیگ می‌شود.

nano /etc/named.conf

برای اینکه کانفیگ Name Server به درخواستهای خارجی پاسخ دهد، named process به یک IP آدرس Public نیاز دارد.تمامی IP آدرس‌های مقداردهی شده به سرور متصل خواهند شد.

...
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
...

نیاز است که کانفیگ Name Server ها به تمام درخواست‌های مناطق معتبر پاسخ دهند اما به صورت پیش‌فرض اجازه ندارند که درخواست‌ها را بین مناطق انتقال دهند.

...
allow-query { any; };
allow-transfer { none; };
recursion no;
...

در اینجا یک فایل named.conf کامل برای تنظیم کردن سرویس‌های authoritative name داریم.

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-transfer { none; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

مسیر فایل‌های Zone و جزئیات Zone باید در فایل etc/named.rfc1912.zones/ اضافه شود.

nano /etc/named.rfc1912.zones

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

zone "zagrio.com" IN {
type master;
file "zagrio.com";
allow-transfer { 192.0.2.2; };
};
};

این فایل را ذخیره کنید و سپس ببندید.

ایجاد یک Zone File برای کانفیگ Name Server

اکنون یک Zone File واقعی می‌توان ایجاد کرد:

nano /var/named/zagrio.com

Zone File شامل تنظیمات دامین و هر رکورد منبع است. در اینجا مثالی از یک دامنه با رکوردهای منبع آن آورده شده است.

$TTL 3H
@ IN SOA @ hostmaster.zagrio.com. (
۰ ; serial
۳H ; refresh
۱H ; retry
۱W ; expire
۳H ) ; minimum
@ IN NS ns1.zagrio.com.
@ IN NS ns2.zagrio.com.
@ IN A 192.0.2.10
@ IN MX 10 host2.zagrio.com.
@ IN MX 20 host3.zagrio.com.
ns1 IN A 192.0.2.1
ns2 IN A 192.0.2.2
host1 IN A 192.0.2.10
host2 IN A 192.0.2.11
host3 IN A 192.0.2.12
www IN CNAME zagrio.com.
mail IN CNAME host2.zagrio.com.
gopher IN CNAME host3.zagrio.com.
zagrio.com. IN TXT "v=spf1 ip4:203.0.113.42 include:_spf.google.com ~all"

@ در فایل Zone نام دامین را نشان می‌دهد. در این مثال @ معادل دامین zagrio.com است. علامت . در انتهای نام دامین برای شناسایی انتهای نام دامین در Zone File استفاده می‌شود.
Zone File را ذخیره کنید و از ویرایشگر خارج شوید. قبل از شروع سرویس شما باید تائید کنید که در فایل named.conf هیچ خطایی وجود ندارد.

named-checkconf

اکنون BIND named می تواند فعال و start شود.

systemctl enable named
systemctl start named

کانفیگ Name Server ثانویه:
به سرور ثانویه log in کنید و etc/named.conf/ را برای مطابقت با سرور اصلی اصلاح کنید.

nano /etc/named.conf

به قسمت named.conf. در کانفیگ سرور اولیه مراجعه کنید. هنگامی که فایل update شد نیاز است که etc/named.rfc1912.zones/ در zone سرور ثانویه اضافه شود.

zone "zagrio.com" IN {
type slave;
file "slaves/zagrio.com";
masters { 192.0.2.1; };
};

فایل zone را ذخیره کنید و از ویرایشگر خارج شوید. قبل از شروع سرویس باید مطمئن شوید که هیچ خطایی در فایل named.conf وجود ندارد.

named-checkconf

اکنون فرآیند name ثانویه در هنگام بوت می تواند enable و start شود.

systemctl enable named
systemctl start named

تست DNS Resolution

با دستور dig زیر می‌توان هردو name server را برای برگرداندن رکوردهای دامین بر روی سرور فعال کرد.

dig any zagrio.com @localhost

شما باید نتایجی که از یک host راه دور که قادر است به name serverها متصل شود را بازیابی کنید و تطابق دهید. این اتصال اعلام می‌شود و قوانین فایروال در اینجا به کار برده می شود.

dig any zagrio.com @192.0.2.1
dig any zagrio.com @192.0.2.2

اصلاح Zone File برای کانفیگ Name Server

Zone File را می‌توان در name serverهای اولیه تغییر داد. هنگامی که رکوردهای منبع حذف، اضافه و یا اصلاح می‌شوند، شما باید یه یاد داشته باشید که شمار سریال zone را افزایش دهید. در ادامه شماره سریال Zone مربوط به zagrio.com نشان داده می‌شود.

اصلاح Zone File برای کانفیگ Name Server

...
@ IN SOA @ hostmaster.zagrio.com. (
۰ ; serial
۳H ; refresh
...

اگر شماره سریال از صفر شروع شود، مقدار بعدی ۱ خواهد بود.

...
@ IN SOA @ hostmaster.zagrio.com. (
۱ ; serial
۳H ; refresh
...

هنگامی‌که شماره سریال Zone افزایش می‌یابد، نیاز است که Zone مجددا بارگزاری شود که بدون نیاز به restart کردن named process می‌توان این‌کار را انجام داد.

rndc reload example.com

reload همچنین انتقال Zoneبه سرور ثانویه را آغاز می‌کند.

Reverse DNS

Reverse DNS نام دامنه را به IP آدرس تبدیل می‌کند. برخی از سرویس‌ها مانند SMTP یا Kerberos ممکن است به این سرویس نیاز داشته باشند.
در اکثر موارد در مورد فضای IP آدرس‌های عمومی، reverse DNS توسط ارائه‌دهنده خدمات مدیریت IP subnets به کار گرفته می‌شود. پیشنهاد می‌شود که اگر نیاز به تنظیمات reverse DNS دارید با پشتیبانی ارائه‌دهنده خدمات تماس بگیرید.
در برخی شرایط ممکن است بخواهید reverse DNS برای یک subnet که به سمت سرور شما هدایت شده است را استفاده نمائید و یا ممکن است بخواهید که reverse DNS را به یک آدرس خصوصی یا شبکه داخلی متصل کنید در این شرایط یک دامین مخصوص به نام in-addr.arp برای ارائه این‌کار استفاده می‌شود.

Reverse DNS

برای زیر شبکه ۱۹۲٫۰٫۲٫۰/۲۴ Zone File 2.0.192.in-addr.arpa می‌شود و فرآیند پیکربندی برای یک Zone File نرمال همانند name server های اولیه و ثانویه است.

nano /var/named/2.0.192.in-addr.arpa

در اینجا یک مثال از رکوردهای PTR فایل Zone مربوط به ۲٫۰٫۱۹۲٫in-addr.arpa داریم:

$TTL 3H
@ IN SOA @ hostmaster.zagrio.com. (
۲ ; serial
۳H ; refresh
۱H ; retry
۱W ; expire
۳H ) ; minimum
@ IN NS ns1.zagrio.com.
@ IN NS ns2.zagrio.com.
۱ IN PTR ns1.zagrio.com.
۲ IN PTR ns2.zagrio.com.
۱۰ IN PTR host1.zagrio.com.
۱۱ IN PTR host2.zagrio.com.
۱۲ IN PTR host3.zagrio.com

عیب‌یابی مشکلات DNS

خطاهای نحوی در فایل‌های کانفیگ خیلی آسان نادیده گرفته می‌شوند. بنابراین همیشه توصیه می‌شود قبل از start یا restart کردن فرآیند named، دستور named-checkconf اجرا شود.

named-checkconf

وقتی خطایی رخ می دهد فایل named log اولین مکان برای شروع جستجو است. فایل log در CentOs در مسیر زیر یافت می‌شود:

/var/named/data/named.run

bind-utils شامل چندین منبع مانند dig، nslookup و host است که می‌توان به منظور درخواست‌های مستقیم در برابر authoritative name server از آن‌ها استفاده کرد. آن‌ها از نام دامین، authoritative server و در صورت تمایل از یک رکورد منبع به عنوان پارامتر استفاده می‌کنند.

dig mx zagrio.com @192.0.2.1

یک پرس‌و‌جو با authoritative name server رکوردهای منبع و Zone فعلی را بدون در نظر گرفتن caching یا TTL نشان می‌دهد.
آخرین نکته برای عیب‌یابی دامنه‌های ثبت شده بر روی اینترنت است که به منظور بررسی ثبت دامنه از authoritative name server است و اینکه نام دامنه منقضی نشده باشد.

whois zagrio.com

چگونه SNMP را روی CentOS نصب و کانفیگ کنیم؟

چگونه SNMP را روی CentOS نصب و کانفیگ کنیم؟

3.6kviews

در این مطلب، در زاگریو قصد داریم تا به بررسی این که چگونه SNMP را روی CentOS نصب و کانفیگ کنیم؟ بپردازیم و بررسی‌‌های لازم برای قبل از شروع و نصب را به صورت کامل توضیح دهیم.

SNMP چیست؟

SNMP یا Simple Network Management Protocol (پروتکل مدیریت ساده شبکه) به طور گسترده برای برقراری ارتباط و نظارت بر دستگاه‌های شبکه، سرورها و دستگاه‌هایی که از طریق IP ارتباط دارند، استفاده می‌شود. در اینجا مراحل نصب Simple Network Management Protocol را بر روی یک سرور CentOS 6.5 توضیح داده می‌شود که اجازه می‌دهد اطلاعات از سرور ما جمع‌آوری شده و آن‌ها را برای یک نرم‌افزار مدیریت SNMP در سروری دیگر ارسال می‌کند.

SNMP

بررسی‌های لازم قبل از شروع کردن:

•    این دستورالعمل‌ها برای نصب SNMP و انجام یک پیکربندی بسیار اساسی در نظر گرفته شده است.

•    من کار را از یک هسته مدیریت سرور CentOS 6.5 شروع می‌کنم و بعنوان Root وارد سیستم می‌شوم.

نصب SNMP و فواید SNMP:

نصب SNMP و فواید SNMP
نصب SNMP و برخی از فواید اختیاری SNMP به سادگی با اجرای یک دستور انجام می‌شود:
yum -y install net-snmp net-snmp-utils

افزودن پیکربندی اساسی برای Simple Network Management Protocol:

اکنون اجازه دهید فایل پیکربندی SNMP را که به صورت پیش فرض در /etc/snmp/snmpd.conf قرار دارد را به محل دیگری مانند /etc/snmp/snmpd.conf.orig منتقل کنیم.
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
اکنون یک /etc/snmp/snmpd.conf ایجاد می‌کنیم:
vim /etc/snmp/snmpd.conf

برای یادآوری ویرایش فایلها توسط vim لینک روبرو را مشاهده نمائید. New User Tutorial: Overview of the Vim Text Editor

متن زیر را در ادامه /etc/snmp/snmpd.conf جدید که ایجاد کردیم، وارد نمائید.
# Map 'idv90we3rnov90wer' community to the 'ConfigUser'
# Map '209ijvfwer0df92jd' community to the 'AllUser'
# sec.name source community
com2sec ConfigUser default idv90we3rnov90wer
com2sec AllUser default 209ijvfwer0df92jd
# Map 'ConfigUser' to 'ConfigGroup' for SNMP Version 2c
# Map 'AllUser' to 'AllGroup' for SNMP Version 2c
# sec.model sec.name
group ConfigGroup v2c ConfigUser
group AllGroup v2c AllUser
# Define 'SystemView', which includes everything under .1.3.6.1.2.1.1 (or .1.3.6.1.2.1.25.1)
# Define 'AllView', which includes everything under .1
# incl/excl subtree
view SystemView included .1.3.6.1.2.1.1
view SystemView included .1.3.6.1.2.1.25.1.1
view AllView included .1
# Give 'ConfigGroup' read access to objects in the view 'SystemView'
# Give 'AllGroup' read access to objects in the view 'AllView'
# context model level prefix read write notify
access ConfigGroup "" any noauth exact SystemView none none
access AllGroup "" any noauth exact AllView none none

متن بالا اطلاعات اساسی درمورد عملکرد هرخط از پیکربندی است. به طور خلاصه، ما در حال ایجاد دو سناریو در مورد SNMP ورژن۲C  هستیم.

نکته: SNMPv2c نسبت به SNMPv1 شامل برخی پیشرفت‌های امنیتی است اما از ساختار مدیریتی SNMPv1 استفاده می‌کند که اساس آن انجمن است. زمینه‌های پیشرفت آن شامل: نقشه حمل و نقل، انواع بسته‌های پروتکل و عناصر ساختار MIB است.

 

در سناریوی اول: ConfigUser به ConfigGroup اختصاص داده می‌شود و ممکن است فقط از مدل امنیتی SNMP 2C استفاده کند. ConfigGroup می‌تواند از SystemView استفاده کند، SystemView به دو زیرشاخه OID اختصاص داده می‌شود و همه این‌ها به فهرست SNMP با یک رمز و یک رشته انجمن منحصربه‌فرد idv90we3rnov90wer  اشاره می‌کنند.

در سناریوی دوم: همه کاربران به تمامی گروه‌ها اختصاص داده شده‌اند و فقط از مدل امنیتی SNMP 2C استفاده می‌کنند. تمامی گروه‌ها می‌توانند از AllView استفاده کنند. AllView به کل درخت OID اختصاص داده شده است و همه این‌ها به فهرست SNMP با یک رمز و یک رشته انجمن منحصربه‌فرد ۲۰۹ijvfwer0df92jd اشاره می‌کنند.

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

 

از vim خارج شوید و سرویس SNMP را با بارگذاری فایل پیکربندی جدید راه اندازی کنید.
service snmpd restart
هنگامی که سرور boot شد، snmp را برای شروع پیکربندی کنید:
chkconfig snmpd on

تست پیکربندی Simple Network Management Protocol:

اکنون اجازه دهید که پیکربندی و کانفیگ snmp را تست کنیم. دو دستور زیر را اجرا کنید :
تست پیکربندی SNMP
snmpwalk -v 2c -c idv90we3rnov90wer -O e 127.0.0.1
snmpwalk -v 2c -c 209ijvfwer0df92jd -O e 127.0.0.1

نکته: پورت پیش‌فرض برای snmp  پورت‌های ۱۶۱ و ۱۶۲ است. اگر می‌خواهید با Remote server به SNMP متصل شوید مطمئن شوید که در فایروال سرور شما پورت‌های مناسب باز است.
نتیجه اولین دستور شما باید حدود ۳۳ خط و شامل برخی از اطلاعات اساسی سیستم باشد. نتیجه دستورات دوم شما باید شامل اطلاعات بسیاری در مورد سیستم باشد و احتمالا حدود هزاران خط است.
نحوه بک‌ آپ‌ گیری و ریستور کردن بانک اطلاعاتی از طریق SSh

نحوه بک‌ آپ‌ گیری و ریستور کردن بانک اطلاعاتی از طریق SSh

3.8kviews

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

نحوه بک‌ آپ‌ گیری و ریستور کردن بانک اطلاعاتی از طریق SSh

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

بک‌ آپ‌ گیری

برای بک‌ آپ‌ گیری از دیتابیس دستور زیر را وارد کرده و Enter کنید:

 

mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

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

 

mysql -u root -p[root_password] [database_name] < dumpfilename.sql
در دستورات بالا در قسمت root_password باید پسورد دیتابیس موردنظر و در قسمت database_name نام دیتابیس و در قسمت dumpfilename.sql فایلی را که می‌خواهیم از آن بک‌آپ تهیه کنیم با ریستور کنیم را وارد می‌کنیم.

نحوه بک‌ آپ گرفتن کامل از سیستم با rsync

2.2kviews

در این مقاله می‌خواهیم با استفاده از دستور rsync تمامی مسیر / بجر چند فولدر خاص را منتقل کنیم. این روش نسبت به روش کپی کردن دیسک، که با دستور dd صورت می‌گیرد، بسیار مناسب‌تر است، زیرا اجازه می‌دهد از پارتیشن‌ها و فایل سیستم‌های متفاوت و سایزهای متفاوت دیسک بهره‌مند شویم.

نحوه بک‌ آپ گرفتن کامل از سیستم با rsync

همچنین از روش کپی کردن cp –a بهتر است زیرا کنترل بیشتری بر روی سطوح دسترسی، صفات و Access Control Lists و extended attributes به ما می‌دهد. تمامی روش‌های فوق برای کپی کردن یک سیستم در حال اجرا قابل استفاده است اما فایل‌هایی که در این مدت تغییر می‌کند ممکن است منتقل بشوند یا نشوند.

rsync

که این مورد برای برخی از نرم‌افزارهایی که با فایل‌های تغییر داده کار می‌کنند ممکن است مشکلی بوجود بیاورند. این روش همچنین برای مهاجرت از یک هارد دیسک به هارد دیسک دیگر و یا از یک سیستم عامل به سیستم عامل دیگر مناسب است.

با یک تک دستور

دستور زیر را تحت یک کاربر root اجرا کنید تا مطمئن شوید rsync به تمامی فایل‌های موجود و فایل‌های سیستمی می‌تواند دسترسی داشته باشد و مالکیت آن‌ها را حفظ کند.

# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder

با استفاده از سوئیچ aAX– این تنظیمات را انجام می‌دهیم که تمامی فایل‌ها در قالب فشرده شده به‌صورتی‌که تمامی لینک‌های نمادین فایل‌ها به حالت آرشیو منتقل می‌شوند. اطمینان داشته باشید که لینک‌های نمادین، دستگاه‌ها، سطوح دسترسی‌ها و مالکیت‌ها، تغییرات زمانی، ACL ها و ویژگی‌های توسعه تماما حفظ می‌شوند (با در نظر گرفتن این‌که سیستم عامل مقصد از این موارد پشتیبانی می‌کند).
سوئیج exclude- این اجازه را به شما می‌دهد تا مسیرهای مشخصی را نادیده بگیرید. برای مثال محتوای پوشه‌های dev, /proc, /sys, /tmp, /run در دستور فوق حذف شده‌اند. زیرا پوشه‌ها در هنگام بوت شدن سیستم لود می‌شوند (هرچند که آن‌ها حقیقتا ساخته نمی‌شوند). مسیر /lost+found یک مسیر مخصوص فایل سیستم است.

نکات مهم

  • اگر تمایل به بکاپ گرفتن از سیستم‌تان و مدیریت سرور بهترتان را در مسیری غیر از /mnt یا /media را دارید مطمئن شوید که آن‌ها در مسیر exclude وجود داشته باشند در غیر این‌صورت یک چرخه بی‌نهایت ایجاد خواهید کرد.
  • اگر مسیرهای مشخصی را در سیستم خود mount کرده‌اید، آنها را نیز باید از لیست Bound خود حذف کنید چرا که فقط لازم است یکبار محتوای آن‌ها کپی شود.
  • اگر از فایل swap هم استفاده می‌کنید اطمینان حاصل کنید که آن فایل‌ها در لیست استثناها باشند.
  • چنان‌چه بخواهید مسیر /home/ را منتقل کنید عموما این پوشه اطلاعات بیشتری به نسبت پوشه‌های سیستمی دارد. استثنا کردن یک تعداد از فایل‌های غیر نیاز مانند /home/*/.thumbnails/*, /home/*/.cache/mozilla/*, /home/*/.cache/chromium/*, /home/*/.local/share/Trash/* به شما کمک می‌کند که فضای کمتری اشغال کنید و اطلاعات مورد نیاز را منتقل نکنید که این مورد بسته به نرم‌افزارهای روی سستم ممکن است متفاوت باشد.
  • شما همچنین می‌توانید دستورات و سوئیچ‌های بیشتری را به rsync اضافه کنید. (جهت مشاهده لیست کامل این دستورات man rsync را کلیک کنید):
  • اگر از تعداد زیادی hardlink استفاده می‌کنید حتما دستور H- را اضافه کنید. این دستور به صورت پیش‌فرض به دلیل مصرف بالای حافظه رم غیرفعال است هرچند که در اکثر سیتسم‌های جدید مشکلی بوجود نمی‌آورد. خیلی از مسیرهای Hardlink در پوشه /usr/ قرار دارند.
  • ممکن است تمایل داشته باشد دستور –delete را به دستور اصلی خود اضافه کنید، چنان‌چه می‌خواهید چندین بار این دستور را بر روی پوشه بکاپ خود اجرا کنید. این سوئیچ به شما این اطمینان را می‌دهد مسیرها هیچگاه بصورت /* نشوند.
  • این مورد فقط بر روی فایل‌هایی که درون زیر پوشه‌های پوشه اصلی وجود دارند اتفاق می‌افتد اما بر روی فایل‌های موجود در پوشه اصلی اثری ندارد.
  • اگر از فایل‌هایی که بصورت هارد مجازی استفاده می‌شوند مانند virtual disks ، Docker images و مشابه آن شما باید دستور S- را استفاده کنید.
  • سوئیچ numeric-ids– این اجازه را به شما می‌دهد که ارتباط بین نام کاربری و نام گروه‌ها را غیرفعال کنید و به جای آنها از شناسه گروه‌ها و کابران برای انتقال استفاده کنید. این روش به شما این اطمینان را می‌دهد که در صورت انتقال بر روی SSH فایل سیتسم فعال شما بتواند به سیستم دیگری منتقل شود.
  • استفاده از سوئیچ info=progress2 — به جای v- پروسه و سرعت انتقال کپی کردن اطلاعات را به شما نشان می‌دهد.
  • اگر نیاز داشتید که بکاپ خود را بازیابی کنید از همان دستور rsync که در ابتدا استفاده کردید به کار ببرید فقط منبع و مقصد را باید معکوس نمائید.

نیازمندی‌های بوت شدن:

داشتن یک نسخه پشتیبان با قابلیت بوت شدن می‌تواند در مواقعی که سیستم خراب می‌شود یا پروسه آپدیت سیستم شما باعث خرابی سیستم‌تان می‌شود می‌تواند کاربردی باشد. این بکاپ همچنین به شما این اجازه را می‌دهد که شما بتوانید یک بستر تستی با مخازن تستی در اختیار داشته باشید و قبل از بروز رسانی سیستم اصلی خود، بروز رسانی را بر روی این سیستم تست نمائید.

اگر شما فایل‌های سیستمی را در پوشه‌ها یا پارتیشن‌های متفاوتی منتقل کرده‌اید و می‌خواهید آن‌ها را بوت کنید این روش به راحتی آپدیت کردن فایل /etc/fstab بر روی فایل تنظیمات bootloader خود است. که به راحتی با Edit کردن این فایل می‌توانید این کار را انجام دهید. در ادامه این تصور را داریم که شما به صورت کامل سیستم خود را بکاپ گرفته‌اید و بر روی یک هارد، یک درایو و یا یک پارتیشن دیگر آن‌ها را بازیابی کرده‌اید و سیستم بوت فعلی شما به درستی کار می‌کند و می‌خواهید که از روی بکاپ نیز بوت شما به درستی کار کند.

به‌روزرسانی fstab

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

به‌روزرسانی fstab

/dev/sdaX / ext4 defaults 0 1

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

به‌روزرسانی فایل تنظیمات bootloaderها:

در syslinux تنها کاری که لازم است این است که یک کپی از رکورد مورد نظر تهیه کرده و فقط مسیر درایو یا پارتیشن را تغییر دهید.

نکته: به جای ویرایش syslinux.cfg، شما می‌توانید در زمان بوت به صورت موقت منو را ویرایش کنید. وقتی که منو نشان داده می‌شود کلید تب را فشار دهید و ورودی‌های مربوطه را تغییر دهید. پارتیش‌ها از یک و درایوها از صفر شمارش می‌شوند.

برای Grub توصیه می‌شود که به صورت خودکار فایل‌های تنظیمات را ایجاد کنید. اگر نیاز دارید که تمامی فایل‌های Grub را در مسیری به غیر از /boot مانند مسیر /mnt/newroot/boot ، از دستور –boot-directory flag استفاده کنید.
همچنین اطمینان حاصل کنید که ردیف درج شده در /boot/grub/grub.cfg شناسه هارد دیسک (UUID) با پارتیشن جدید همخوانی دارد در غیر این‌صورت سیستم همچنان از سیستم قدیمی بوت می‌شود. با استفاده از دستور زیر می‌توانید UUID هر پارتیشن را پیدا کنید:

# lsblk -no NAME,UUID /dev/sdb3

پس از جابجا کردن پارتیشن مورد نظر خود، برای مشاهده کردن UUID هایی که Grub می‌تواند از روی آن‌ها بوت کند دستور زیر را استفاده کنید.

# grep UUID= /boot/grub/grub.cfg

اولین Boot:

تمامی مسیرهای موقتی حذف شده و پوشه‌هایی که در مسیر / خالی بودند با اطلاعات جدید پر می‌شوند. حالا شما می‌توانید با ویرایش کردن مجدد فایل /etc/fstab مسیرهای مورد و پارتیشن‌ها و mount point نظر خود را مجدد ایجاد نمائید.

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

7.6kviews

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

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

در ادامه به بررسی این مورد به وسیله SSH خواهیم پرداخت :

نحوه Zip و Unzip کردن فایل‌ ها به وسیله SSH

مطالعه این مقاله را نیز از دست ندهید : 

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

1. ابتدا از طریق نرم‌افزار Putty و یا Terminal به سرور خود متصل شوید.

برای ZIP کردن فایل‌ها دستور زیر را تایپ کنید:

# zip -r myarchive.zip myfolder

این دستور یک آرشیو ZIP شده از تمامی فایل‌ها و sub directorie ها ایجاد می‌کند.

2.  به سرور می‌گوید که تمامی فایل‌ها و sub directorie را شامل شود.

  • myarchive.zip: نام پوشه ZIP شده که می‌خواهیم ایجاد کنیم.
  • myfolder: نام پوشه‌ای که می‌خواهیم آنرا ZIP کنیم.

3. برای UNZIP کردن فایل ها دستور زیر را استفاده نمائید:

# unzip myarchive.zip

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