نوشته‌ها

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

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

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

۳ ابزار اصلی برای zabibx وجود دارند :
۱- سرور zabbix
۲- zabbix agent
۳- رابط وب zabbix
سرور زبیکس در‌واقع همان ابزاری است که اطلاعات مربوطه ای که شما میخواهید را از سرور اصلی جمع آوری و نظارت میکند.
سروری که میخواهید مانیتور کنید agent نام دارد، شما همچنین میتوانید بدون رابط وب zabbxi عمل مانیتورینگ را انجام دهید ولی ما توصیه میکنیم از رابط وب نیز استفاده کنید چرا که تجربه بهتری به شما میدهد.

اگر میخواهید قبل از نصب محیط کاربری zabbix را ببینید نیز این امکان فراهم است
با مراجعه به https://zabbix.org/zabbix/index.php این آدرس میتوانید بدون داشتن اکانت محیط مانیتورینگ را دیده و قسمت‌های مربوط به گزارش‌ها را نیز مشاهده کنید.

نصب:

 

در مورد نصب به ترتیب zabbix server ، zabbix agent و اضافه کردن هاست به سرور را در مقاله‌ای جدا بررسی خواهیم کرد،

باید بدانید که به طور پیش‌فرض رابط وب zabbix از آپاچی استفاده میکند، اگر میخواهید به جای آن از Nginx استفاده کنید باید تنظیماتی را به Nginx خود اضافه کنید که در ادامه خواهیم دید.

 

معرفی مختصر:

 

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

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

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

قالب لینوکسی :

این قالب به طور پیش‌فرض با نصب زبیکس همراه است و بیشتر پارامترهای عمومی را ارائه میدهد مانند :
درصد استفاده از cpu و ram ، این قالب از قبل پیکربندی شده است و شما نیاز به تنظیمات خاص دیگری بر روی آن ندارید.

 

اشکال یابی:

 

با اینکه رابط وب به نظر کافی میرسد اما برای اشکال یابی بهتر است از کنسول استفاده کنید.

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

telnet ip-of-your-agent 10050

و سپس :

zabbix_get -s ip-of-your-agent -k agent.hostname

بر روی سرورهایی که قرار است مانیتور شوند :

در پیکربندی اصلی سرور مانیتورینگ شما درخواست داده میکند، بنابراین اگر سرور شما میتواند به agent کانکت شود همه چیز درست عمل میکند.
اما اگر از حالت active agent استفاده میکنید باید اطمینان حاصل کنید که agent شما میتواند به سرور مانیتور متصل شود ومیتواند داده‌ها را push کند.

دستور زیر را اجرا کنید :
telnet ip-of-your-server 10050

با اجرای دستور بعدی zabbix-sender را نصب کنید :

sudo apt-get install zabbix-sender

سپس دستور زیر :

zabbix_sender -vv -z [serverIp] -p 10051 -s [clientName] -k traptest -o "Test value"

در پیکربندی agent configuration توجه داشته باشید که تمام داده‌هایی که به سرور منتقل می‌شوند باید از نوع Trapper باشند. بنابراین در مثال بالا باید یک آیتم از نوع trapper بر روی سرور با کلید trapest ایجاد کنید و همچنین اطمینان حاصل کنید که داده‌هایی که ارسال میکنید از نوع مشخص شده در هنگام ایجاد آیتم بر روی سرور است.

 

گزارشات:

 

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

 

اعلان ها‌:

 

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

 

تجربه شما از استفاده از zabbix چگونه بوده است؟

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

تجربه خود را با ما به اشتراک بگذارید.

اکثر فضای میزبانی در اینترنت را سرورهای اختصاصی و مجازی لینوکس تشکیل می‌دهند. همانطور که می‌دانید مدیریت و پشتیبانی سرورهای لینوکس از طریق ارتباط SSH صورت می‌گیرد. بنابراین ایمن‌سازی SSH و حفاظت از آن در برابر هک و حملات سایبری از اهمیت بالایی برخوردار است. اگر اخبار و مقالات امنیتی پیشگامان را دنبال کرده باشید، می‌دانید که در مطلب گذشته درباره ایمن‌سازی سرور لینوکس در مقابل حملات SSH نوشته بودیم. حالا در این مطلب نحوه فعال‌سازی تایید دو مرحله‌ای (Two Factor Authentication) را برای اتصالات SSH توضیح می‌دهیم که تاثیر بسیاری در امنیت سرور مجازی لینوکس خواهد داشت.

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

نصب احراز هویت دو مرحله‌ای

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

sudo dnf install google-authenticator nano -y

بعد از نصب، با دستور زیر می‌توانید ابزار را اجرا کنید:

google-authenticator

سپس به دو سوال بعدی جواب مثبت دهید. در مرحله بعدی به شما یک QR کد نمایش داده می‌شود که باید با اپلیکیشن authenticator گوشی همراه خود اسکن کنید. همچنین تعدادی کد امنیتی هم به شما نمایش داده می‌شود که باید در محلی امن ذخیره کنید. در ادامه سه سوال دیگر هم از شما پرسیده می‌شود که باید جواب بله بدهید.

تنظیم SSH

به صورت پیشفرض دیمن SSH در فدورا فعال نیست. با دستورات زیر SSH را فعال کنید:

sudo systemctl start sshd
sudo systemctl enable sshd

بعد از اجرای SSH، کلیدهای خود را با دستور زیر به سرور لینوکس اضافه کنید.

ssh-copy-id USER@FEDORA_IP

بعد از اضافه کردن کلید SSH خود، حالا باید امکان تایید دو مرحله‌ای را در تنظیمات SSH سرور فعال کنید. برای این منظور دستور زیر را در ترمینال سرور لینوکس وارد کنید:

sudo nano /etc/pam.d/sshd

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

#auth substack password-auth
auth sufficient pam_google_authenticator.so

فایل را ذخیره کنید و آن را ببندید. حالا باید تنظیمات دیمن SSH را درست کنید. سپس تنظیمات خط‌های بعدی را به ترتیب به بله و خیر تغییر دهید:

sudo nano /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
PasswordAuthentication no

سپس خط زیر را به آخر فایل اضافه کرده و فایل را ذخیره کنید:

AuthenticationMethods publickey,password publickey,keyboard-interactive

در نهایت برای اعمال تغییرات سرویس SSH را ریست (راه‌اندازی مجدد!) کنید:

sudo systemctl restart sshd

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

 

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

نصب و پیکربندی این ابزار روی سرورهای لینوکس بسیار آسان است. در ادامه، آموزش نصب و تنظیم آن روی لینوکس اوبونتو ۱۸.۰۴ را خواهید خواند. البته این آموزش برای توزیع های دیگر سرور لینوکس هم کم و بیش همینگونه است.

نصب

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

sudo apt-get install denyhosts -y

پیکربندی

اولین کاری که باید پس از نصب انجام دهید، اضافه کردن آی پی های مجاز است؛ در غیر این صورت ممکن است دسترسی خودتان به سرور را هم بلاک کنید. ابتدا فایل مربوطه را باز کرده، سپس آی پی های مجاز را در انتهای آن اضافه کنید:

sudo nano /etc/hosts.allow
sshd: [IP 1]
sshd: [IP 2]
sshd: [IP 3]

بعد از اضافه کردن آی پی ها، فایل را ذخیره کرده و آن را ببندید. برای تغییر تنظیمات این ابزار فایل زیر را باز کنید:

sudo nano /etc/denyhosts.conf

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

DENY_THRESHOLD_INVALID = 5

همچنین می‌توانید با استفاده از آپشن زیر، ایمیلی که می‌خواهید هشدارها به آن ارسال شود را تعیین کنید:

ADMIN_EMAIL =

توجه داشته باشید که این ابزار به صورت پیشفرض از پورت ۲۵ لوکال برای ارسال ایمیل استفاده می‌کند. در صورت نیاز به تغییر، می‌توانید از تنظیمات زیر استفاده کنید:

SMTP_HOST =
SMTP_PORT =
SMTP_FROM =

بعد از انجام تنظیمات مورد نظر، یک بار سرویس denyhosts را ریست و فعال کنید:

sudo systemctl restart denyhosts
sudo systemctl enable denyhosts

بررسی لاگ

ابزار denyhosts به صورت پیشفرض رخدادها را لاگ می‌کند، برای مشاهده لاگ‌های امنتیی به صورت  بلادرنگ، از دستور زیر استفاده کنید:

tail -f /var/log/auth.log

حالا می‌توانید با خیال راحت SSH کرده و سرور لینوکس خود را مدیریت کنید.