خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه تنظیم ثبت نام از راه دور در لینوکس با استفاده از rsyslog

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

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

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

چرا یک سرور لاگ اختصاصی داریم؟

سیستم عامل لینوکس اکثر فعالیت های سرور شما را برای ممیزی و اشکال زدایی با استفاده از دیمون syslog (پروتکل ثبت سیستم) ثبت می کند. بنابراین ممکن است از خود بپرسید که چرا من به یک سرور اختصاصی برای لاگ های خود نیاز دارم؟ در اینجا برخی از مزایای داشتن یک سرور لاگ اختصاصی وجود دارد:

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

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

مرحله 1: نصب rsyslog در لینوکس

این راهنما بر روی اوبونتو 20.04 تمرکز دارد، اما اگر از دیگر توزیع‌های اصلی لینوکس استفاده می‌کنید، روند باید تقریباً یکسان باشد.

rsyslog یک سرویس ثبت از راه دور برای لینوکس است و به طور پیش‌فرض در اکثر توزیع‌های مدرن لینوکس، به عنوان مثال، اوبونتو و سایر سیستم‌های مبتنی بر دبیان از پیش نصب شده است.

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

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

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

sudo apt install rsyslog

در لینوکس Red Hat می توانید آن را با تایپ کردن نصب کنید:

yum install rsyslog

در فدورا و مشتقات آن، اجرا کنید:

dnf install rsyslog

برای نصب rsyslog در آرچ لینوکس:

yay -S rsyslog

برای بررسی وضعیت rsyslog دستور زیر را اجرا کنید:

systemctl status rsyslog

خروجی:

وضعیت rsyslog

مرحله 2: پیکربندی Log Host Server

میزبان گزارش سروری است که برای دریافت پیام های گزارش از سرورها یا رایانه های شخصی دیگر پیکربندی شده است. پیکربندی rsyslog در فایل /etc/rsyslog.conf قرار دارد.

می توانید فایل /etc/rsyslog.conf را با استفاده از هر ویرایشگر متنی دلخواه باز کنید. در این راهنما، ما از Vim استفاده خواهیم کرد.

برای ایجاد تغییرات در فایل پیکربندی، به امتیازات بالاتری نیاز دارید.

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

sudo cp /etc/rsyslog.conf /etc/rsyslog_original.config

سپس فایل /etc/rsyslog.conf را با استفاده از ویرایشگر متن باز کنید.

sudo vim /etc/rsyslog.conf

دو پروتکل وجود دارد که می توانید برای ارسال/دریافت فایل های گزارش با rsyslog استفاده کنید: TCP و UDP. این راهنما به شما نشان می دهد که چگونه هر دو را پیکربندی کنید.

برای کار کردن از راه دور، نیازی به پیکربندی UDP و TCP ندارید. فقط یکی از این دو را انتخاب کنید.

اگر ترجیح می‌دهید از UDP استفاده کنید، خطوط زیر را با حذف نماد پوند (#) جلوتر از خطوط، جستجو کرده و از نظر آن‌ها خارج کنید. می توانید این خطوط را در قسمت ماژول های فایل پیکربندی پیدا کنید.

module(load="imudp")
input(type="imudp" port="514")

اگر ترجیح می‌دهید از TCP استفاده کنید، خطوط زیر را با حذف نماد Pound (#) که در ابتدای خطوط قرار دارد، لغو کامنت کنید:

مطلب مرتبط:   نحوه ضبط ترافیک شبکه در لینوکس با tcpdump

module(load="imtcp")
input(type="imtcp" port="514")

شکل زیر فایل پیکربندی rsyslog را نشان می دهد که برای استفاده از ارتباطات UDP پیکربندی شده است:

udp_configuration_rsyslog

سپس، مکانی را که rsyslog لاگ های شما را در آن ذخیره می کند، پیکربندی کنید. برای سازماندهی بهتر، باید لاگ های ورودی را بر اساس مبدأ آنها دسته بندی کنید. با افزودن خطوط زیر یک الگو را در فایل پیکربندی rsyslog خود تعریف کنید:

$template remote-incoming-logs, "/var/log/remote/%HOSTNAME%".log
*.* ?remote-incoming-logs

خطوط فوق به rsyslog دستور می دهد تا گزارش ها را در پوشه /var/log/remote/hostname ذخیره کند، جایی که hostname نام سرویس گیرنده راه دوری است که پیام های گزارش را به میزبان گزارش ارسال می کند.

اکنون تغییراتی را که ایجاد کرده اید ذخیره کنید. اگر از Vim استفاده می کنید، در اینجا نحوه ذخیره و خروج یک فایل آورده شده است.

در نهایت، خدمات rsyslog را مجددا راه اندازی کنید تا تغییراتی که ایجاد کرده اید اعمال شوند.

sudo systemctl restart rsyslog

مرحله 3: فایروال خود را پیکربندی کنید

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

برای توزیع های مبتنی بر دبیان، به سادگی از ابزار UFW برای فعال کردن پروتکل انتقال UDP یا TCP استفاده کنید.

مطالب مرتبط: نحوه پیکربندی فایروال در اوبونتو با استفاده از UFW

اگر از UDP استفاده می کنید، دستور زیر را اجرا کنید، جایی که 514 شماره پورت پیکربندی شده است:

sudo ufw 514/udp

اگر از TCP در پورت 514 استفاده می کنید، به سادگی اجرا کنید:

sudo ufw 514/tcp

در فدورا، می توانید از فایروال-cmd برای دستیابی به نتایج مشابه استفاده کنید.

firewall-cmd --zone=zone --add-port=514/udp

برای لینوکس Red Hat، فایل iptables واقع در /etc/sysconfig/iptables را با استفاده از ویرایشگر متن انتخابی خود باز کنید و قانون زیر را اضافه کنید:

-A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT

برای اعمال تغییرات، سرویس iptables را مجددا راه اندازی کنید.

مطلب مرتبط:   چرا بالاخره به لینوکس سوئیچ کردم و پشیمان نیستم؟

service iptables restart

مرحله 4: پیکربندی Logging Client

کلاینت ماشینی است که لاگ های خود را به سرور میزبان لاگ از راه دور یا متمرکز می فرستد. فایل پیکربندی rsyslog واقع در /etc/rsyslog.conf را باز کنید:

sudo vim /etc/rsyslog.conf

اگر از UDP استفاده می کنید، که در آن 192.168.12.123 آدرس IP سرور راه دور است، خط زیر را اضافه کنید، گزارش های خود را در آن می نویسید:

*.* @192.168.12.123:514

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

*.* @@192.168.12.123:514

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

sudo systemctl restart rsyslog

مرحله 5: مشاهده پیام های گزارش روی سرور

می توانید از SSH برای ورود به سرور راه دور خود و مشاهده گزارش های ارسال شده از سرورهای مشتری استفاده کنید. در این مورد، rsyslog به گونه‌ای پیکربندی می‌شود که گزارش‌های مشتری را در فهرست /var/log/remote سرور راه دور ذخیره می‌کند.

cd /var/logs/remote

سپس با استفاده از دستور ls محتویات دایرکتوری را فهرست کنید:

ls -l

همانطور که در خروجی مشاهده می کنید، دایرکتوری حاوی پیام های ورود به سیستم سرورهای راه دور به نام های andiwa و rukuru است. فایل های لاگ آنها به ترتیب andiwa.log و rukuru.log نام دارند.

logs_on_remote_log_host

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

ثبت از راه دور به شما کنترل بیشتری می دهد

این راهنما نحوه راه‌اندازی سرور ثبت‌نام از راه دور (میزبان ورود به سیستم) در لینوکس را بررسی کرده است.

یک میزبان گزارش سازماندهی و کنترل بهتری را در مورد ورود به سیستم به شما ارائه می دهد. حتی در سناریوهایی که سیستمی آسیب دیده یا غیرقابل دسترسی است، همچنان می‌توانید گزارش‌های آن را از میزبان گزارش مشاهده کنید و متوجه شوید که چه مشکلی رخ داده است.