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

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

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


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

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

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

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

 

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


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

بسته 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 و..) از جمله راه کار هایی است که می توانید برای افزایش امنیت و حفاظت از ماشین کاری خود انجام دهید.

 

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

 

نصب PHP 7.3 بر روی CENTOS 7

نصب PHP 7.3 بر روی CentOS 7

1.3kviews

در این آموزش قصد داریم درباره نصب PHP 7.3 بر روی VPS با CentOS 7 صحبت کنیم. و شما را با مبحث نصب PHP 7.3 بر روی CentOS 7،‌ در زاگریو بیشتر آشنا کنیم.

نصب PHP 7.3 بر روی CentOS 7

همانطور که می‌دانید PHP 7.3، نسبت به نسخه‌های قدیمی تر خود امنیت و سرعت بهتری برخوردار است.  تعدادی از تغییرات زیر را در زیر لیست می‌نماییم:

  • سینتکس انعطاف پذیر Heredoc و Nowdoc
  • اجازه قرار دادن کاما و ایچاد یک زنجیره در فانکشن کال‌ها
  • JSON_THROW_ON_ERROR
  • کوکی در سایت‌های مشابه
  • لیست دز Reference assignment ها
  • فانکشن is_countable
  • array_key_first(), array_key_last()
  • اضافه شدن Argon 2

ملزومات

  • CentOS 7 VPS
  • باید از اکانت root یا کاربری با دسترسی sudo استفاده نمایید.

قدم اول: وارد سرور شوید و آن را بروزرسانی نمایید.

با استفاده از SSH وارد VPS خود شوید. دستور زیر کمک می‌کند که با دسترسی ROOT وارد شوید.

‘IP_Address و Port_number با اعداد VPS خود عوض نمایید.

قدم دوم: PHP 7.3 را نصب نمایید.

CentOS 7 به صورت پیش فرض با PHP 5.4 عرضه شده که نسخه‌ای قدیمی PHP است و عمر آن به سال 2015 باز می‌گردد، همانطورک ه می‌دانید در دنیای نرم افزار گذشت عمر باعث افزایش ریسک‌های امنیتی می‌گردد پس نیاز است که شما PHP خود را آپدیت نمایید. در قدم اول بیایید ببینیم که اصلا PHP بر روی سرور شما نصب شده؟ و اگر PHP بر سرور شما نصب شده ورژن آن چیست؟ با دستور زیر می‌توانید ورژن PHP را مشاهده نمایید:

خروجی چیزی شبیه به متن زیر است:

بنابر خروجی PHP 5.4 بر روی سرور ما نصب گردیده است پس نیاز است آن را ارتقا دهید، برای این منظور در این قدم، ما نسخه‌ی قدیمی را از CentOS خود پاک می‌کنیم. و این کار را با دستور زیر انجام می‌دهیم:

این دستور PHP و تمام مشتقات آن را پاک می‌کند. در ادامه ما ریپازیتوری‌های YUM و EPEL را به سرور خود اضافه می‌نماییم که پی اچ پی جدید را در خود جای داده‌اند.

و ریپازیتوری پیشفرض PHPH 5.4 را نیز غیر فعال می‌نماییم:

و حالا ریپازیتوری PHP 7.3 را فعال می‌نماییم.

حالا که ریپازیتوری Yemi PHP 7.3 را فعال نموده‌ایم می‌توانیم با استفاده از YUM نسخه 7.3 PHP را بر روی سرور خود نصب نماییم.

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

خروجی:

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

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

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

خروجی چیزی مشابه با متن زیر خواهد بود:

قدم سوم: ساخت صفحه phpinfo

اصولا برای بررسی نسخهPHP، افزونه‌ها و تنظیمات صفحه‌ای میسازیم به نام phpinfo که این صفحه مقدار زیادی اطلاعات درمورد پروژه ما در خود جای داده است. حال برای ساخت این صفحه نیاز است که شما به web server document root بروید:

و صفحه phpinfo را با اطلاعات زیر بسازید:

صفحه را ذخیره نمایید و با مرورگر خود وارد آدرس: http://zagrio/phpinfo.php بشوید تا صفحه‌ای مانند تصویر زیر با اطلاعات مورد نیاز خود مشاهده نمایید.

نصب PHP 7.3 بر روی CentOS 7

زاگریو
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 را مدیریت کنید. با کمی تمرین می‌تواند ابزاری مطمئن و امن برای حفظ زیرساخت‌های خود داشته باشید.

زاگریو

کانفیگ 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 متصل شوید مطمئن شوید که در فایروال سرور شما پورت‌های مناسب باز است.
نتیجه اولین دستور شما باید حدود ۳۳ خط و شامل برخی از اطلاعات اساسی سیستم باشد. نتیجه دستورات دوم شما باید شامل اطلاعات بسیاری در مورد سیستم باشد و احتمالا حدود هزاران خط است.

MongoDB 4.2.1: آموزش نصب در CentOS 8

 

 

MongoDB یکی از معروفترین و پر استفاده ترین دیتابیس‌های NoSQL است که به تازگی نسخه‌ی جدید عرضه نموده که قابلیت پشتیبانی از CentOS 8 را داراست، همانطور که شاید در جریان باشید برای CentOS 8 فقط می‌توانید از نسخه‌های 4 دیتابیس MongoDB استفاده نمایید و نسخه‌های قدیمی‌تر مانند نسخه 3 بر روی آن نصب نمی‌گردند! پس یا باید به فکر ارتقا CentOS خود به نسخه‌بالاتر باشید یا از MongoDB ورژن پایین‌تر استفاده نمایید.

MONGODB 4.2.1خب برویم سراغ اصل مطلب و نصب MongoDB بر CentOS8، دراینجا فرض من این است که شما یا با دسترسی root به سرور خود متصل شده‌ای یا یک نام کاربری با دسترسی sudo ، در ادامه نیاز است که شما یک فایل در این دایرکتوری /etc/yum.repos.d/mongodb-org-4.2.repo با محتویات زیر بسازید:

و سپس با استفاده از yum آن را نصب نمایید:

فرایند نصب چند ثانیه طول خواهد کشید. سپس چیزی مانند زیر مشاهده خواهید نمود:

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

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

 

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

667views

 

 

در این مقاله به شما نشان خواهیم داد که چگونه تمام دیتابیس‌های خود را در MySQL لیست نمایید. قبل از شروع عملیات نیاز است که با اکانت root یا اکانتی که با دستور sudo مجوزهای لازم را دارا است استفاده نمایید. زمانی که با استفاده از SSH به سرور خود وصل شدید لازم است کامند زیر را اجرا نمایید تا مطمئن شوید که MySQL بر روی سرور شما نصب شده است و ورژن آن چند است:

خروجی چیزی شبیه به خروجی زیر میباشد:

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

بعد از آن MySQL از شما می‌خواهد تا پسورد MySQL خود را وارد نمایید تا اجازه دهد به دیتابیس دسترسی داشته باشید. اگر برای حساب کاربری root خود رمزی درذ نظر نگرفته‌اید با دستور زیر می‌توانید وارد اسن بخش شوید:

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

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

حالا برای لیست کردن تمام دیتابیس‌های MySQL خود از کامند زیر استفاده نمایید این دستور هم در VPS هایی با سیتم‌عامل ابنتو و هم CentOS برای شما کار خواهد نمود:

خروجی این دستور چیزی شبیه به خروجی زیر است:

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

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

خروجی چیزی شبیه به خروجی زیر خواهد بود:

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

 

 

 

 

نحوه فعال سازی TLS1.3 بر روی CentOS8

418views

 

 

 

 

TLS 1.3 نسخه‌ای از پروتکل TLS یا به اختصار Transport Layer Security می‌باشد، که در سال 2018 به عنوان استاندارد پیشنهادی در RFC 8446 منتشر شد. TLS1.3 ادامه دهنده راه TLS1.2 می‌باشد با این تفاوت که ویژگی‌های ناامن و منسوخ نسخه قدیمی خود را بهبود داده است و شامل SHA1, MD5, RC4, DES, 3DES, AES-CBC. می گردد.

در زیر راهنمای فعال سازی TLS1.3 را با استافاده از وب سرور ngnix در CentOS 8 نشان داده‌ایم.

 

ملزومات:

  • وب سرور Nginix 1.13.0 یا بالاتر
  • OpenSSL ورژن 1.1.1 یا بالاتر
  • یک سرویس کلاد مانند DigitalOcean که CentOs 8 روی آن نصب شده باشد.
  • یک دامنه معتبر و یک A/AAAA/CNAME DNS که به صورت صحیح پیکر بندی شده باشد.
  • یک گواهی معتبر LTS

 

خب قبل از آن که شروع کنیم بهتر است نسخه CentOS خود را بررسی کنیم برای این منظور:

 

حالا یک یوزر جداگانه از root با استفاده از دستورsudo اضافه می‌کنیم:

 

به یاد داشته باشید که samanyn نام کاربری یا یوزر است و آن را با نام کاربری مورد نظر خود جابجا نمایید و یک پسورد و گذرواژه قدرتمند انتخاب نمایید. (اگر از قوانین CentOS در زمینه گذرواژه تبعیت کنید که بسیار بهتر است)

 

حالا منطقه زمانی سیستم را تنظیم می‌نماییم.

 

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

 

 

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

 

 

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

 

 

 

نصب کلاینت acme.sh  و دریافت گواهی TLS

توصیه میکنیم acme.sh را بعنوان کاربر root نصب نمایید یا با دستور sudo اقدام به تبدیل یوزر خود به یوزر root نمایید.

 

 

حالا acme.sh را نصب نمایید.

 

 

 

ورژن نسخه نصب شده را کنترل نمایید.

 

 

گواهی‌های RSA و ECDSA  را برای دامنه خود دریافت نمایید.

 

 

به یاد داشته باشید که zagrio.com را با نام دامنه خود عوض نمایید.

برای گواهی خود یک دیرکتوری جدید بسازید.

 

 

گواهی را در دایرکتوری مورد نظر نصب و کپی نمایید.

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

 

حالا می‌توانید به یوزر عادی خود بازگردید

 

 

نصب Nginix

Nginix پشتیبانی از TLS1.3 را در نسخه 1.13.0 خود اضافه کرد. و CentOS8 با نسخه‌ای از Nginix و OpenSSL عرضه شده که توانایی پشتیبانی از TLS1.3 را دارد. پس شما نیازی به ساخت نسخه‌ای سفارشی ندارید.

 

نصب Nginx

 

 

بررسی نسخه

 

 

بررسی نسخه OpenSSL

 

 

شروع استفاده و فعال کردن Nginx

 

 

پیکربندی Nginx

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

 

 

فایل را ذخیره کنید و خارج شوید.

به پارامتر جدید TLSv1.3 بخشنامه ssl_protocols توجه کنید. این پارامتر فقط برای فعال کردن TLS 1.3 در Nginx ضروری است.

حالا پیکربندی را بررسی کنید.

 

Nginxرا دوباره بارگذاری کنید

 

برای تایید TLS1.3می‌توانید از ابزار توسعه دهدگان مرورگر یا SSL Lab استفاده نمایید. در تصایر زیر می‌توانید Chrome security Lab را مشاهده نمایید.

 

 

 

تبریک می‌گویم شما به راحتی TLS1.3 را در Apache  سنت ‌او اس خود فعال نمودید. مانند HTTP/2  می‌توان TLS1.3 را نیز یک تکنولوژی و پروتکل هیجان انگیز تلقی کرد که در سالها آینده بیشتر از آن بهره ببریم اما در نظر داشته باشید که نسخه آخر TLS1.3 در آگوست 2018 عرضه شده پس مطمئنا بهترین زمان برای پیکربندی و راه اندازی آن را انتخاب نمودید.

نصب pgAdmin4 بر روی CentOS7

463views

 

 

pgAdmin4 یک رابط کاربری تحت وب برای مدیریت پایگاه داده PostGresSQL می‌باشد. این رابط کاربری بر تعداد زیادی از پلتفرم‌های موجود مانند Windows، macOS و لینوکس قاابل استفاده است. در نسخه جدید pgAdmin4 از بوت استرپ 3 به نسخه 4 مهاجرت شده است. در این آموزش ما قصد داریم pgAdmin4 را بر روی centOS7 نصب نماییم.

برای این منظور شما نیاز دارید PostgresSQL 9.2 را قبلا بر روی centOS خود نصب نموده باشید. خب بریم سراغ اصل مطلب و نصب pgAdmin4:Read More

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

846views

فایل سیستم 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