آموزش فعال سازی اعلان ورود به SSH در اوبونتو (Ubuntu) با ارسال ایمیل لحظهای

اگر صاحب یک سرور لینوکسی نسخه ابونتو هستید، مطمئناً میدانید که اطلاع از ورود افراد به سرور از طریق SSH یکی از مهم ترین کارها برای حفظ امنیت است. حتی اگر تنها شما به سرور دسترسی دارید، همیشه خوب است بدانید چه زمانی و از کجا به سرور وارد میشوید. این موضوع برای تیمها و سرورهای اصلی اهمیت دوچندان دارد، زیرا میتواند به پیشگیری از ورود غیرمجاز و شناسایی فعالیتهای مشکوک کمک کند.
در این مقاله، به شما یک روش ساده، حرفهای و لحظهای برای دریافت اعلان ورود SSH در اوبونتو آموزش میدهیم. این روش از PAM (Pluggable Authentication Module) استفاده میکند و میتواند اعلانها را به ایمیل شما ارسال کند. همچنین نکات امنیتی تکمیلی و روش ایجاد App Password در Gmail نیز شرح داده خواهد شد.
چرا باید اعلان ورود SSH را فعال کنیم؟
SSH (Secure Shell) یکی از رایجترین روشهای دسترسی به سرورهای لینوکسی است. هر ورود موفقیتآمیز به سرور میتواند ریسک امنیتی ایجاد کند، مخصوصاً اگر رمز عبور ضعیف باشد یا شخصی بدون اجازه وارد سیستم شود.
فعال کردن اعلان ورود SSH مزایای زیر را دارد:
-
اطلاع سریع از ورودها: بدون نیاز به بررسی لاگها، بلافاصله متوجه میشوید چه کسی وارد شده است.
-
پیشگیری از دسترسی غیرمجاز: در صورت مشاهده ورود غیرمنتظره، میتوانید سریع اقدام کنید.
-
ایجاد سابقه ورود: همه ورودها ثبت و قابل پیگیری هستند.
-
سازگاری با سیستمهای تیمی: برای سرورهای تولیدی یا تیمهای توسعه، اعلان ورود به افزایش آگاهی امنیتی کمک میکند.
در ادامه، مراحل فعالسازی این قابلیت در اوبونتو بهطور کامل توضیح داده میشود.
مرحله ۱: نصب پیشنیازها در اوبونتو
برای ارسال اعلان به ایمیل، نیاز به ابزارهای زیر داریم:
-
msmtp: برای ارسال ایمیل از خط فرمان
-
mailx (bsd-mailx): برای ارسال ایمیل با دستورات ساده
برای نصب در اوبونتو، دستور زیر را اجرا کنید:
sudo apt update
sudo apt install msmtp msmtp-mta bsd-mailx
نکته: اگر سرور شما فایروال فعال دارد، مطمئن شوید که پورت ۲۵، ۴۶۵ یا ۵۸۷ باز است (SMTP).
مرحله ۲: پیکربندی PAM برای فعالسازی اعلان ورود SSH
PAM سیستم احراز هویت لینوکس است و میتواند هنگام ورود SSH اسکریپتی را اجرا کند.
-
فایل زیر را باز کنید:
sudo nano /etc/pam.d/sshd
-
پس از خطوط موجود
session
، این خط را اضافه کنید:
session optional pam_exec.so /usr/local/bin/ssh-login-notify.sh
-
فایل را ذخیره کرده و خارج شوید.
با این کار، هر بار که ورود SSH موفقیتآمیز باشد، اسکریپت مشخص شده اجرا خواهد شد.
مرحله ۳: پیکربندی Gmail برای ارسال ایمیل
برای ارسال اعلان به ایمیل، از سرویس Gmail و SMTP استفاده میکنیم.
-
فایل پیکربندی msmtp را بسازید:
sudo nano /etc/msmtprc
-
محتویات زیر را در آن قرار دهید (ایمیل خود را جایگزین کنید):
# تنظیمات عمومی
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log
# حساب Gmail
account gmail
host smtp.gmail.com
port 587
from [email protected]
user [email protected]
passwordeval "cat /root/.gmail_app_password"
# حساب پیشفرض
account default : gmail
مرحله ۴: ایجاد App Password در Gmail
از آنجا که Google اجازه ورود برنامهها با رمز اصلی را نمیدهد، باید یک App Password ۱۶ کاراکتری ایجاد کنید.
مراحل ایجاد App Password:
-
وارد حساب Google خود شوید.
-
روی تصویر پروفایل > Manage your Google Account کلیک کنید.
-
در نوار جستجو عبارت App Password را تایپ کنید و انتخاب کنید.
-
یک نام مانند “SSH Notifications” وارد کرده و Create کنید.
-
رمز ۱۶ کاراکتری تولید شده را کپی کنید.
ذخیره رمز در سرور:
sudo bash -c 'echo "YOUR_16_CHAR_APP_PASSWORD" > /root/.gmail_app_password'
sudo chmod 600 /root/.gmail_app_password
sudo chown root:root /root/.gmail_app_password
جایگزین
"YOUR_16_CHAR_APP_PASSWORD"
رمز تولید شده توسط گوگل را قرار دهید.
مرحله ۵: ایجاد اسکریپت اعلان ورود
-
فایل اسکریپت را بسازید:
sudo nano /usr/local/bin/ssh-login-notify.sh
-
محتویات زیر را در آن قرار دهید (ایمیل مقصد خود را جایگزین کنید):
#!/bin/bash
USER="$PAM_USER"
IP="$PAM_RHOST"
HOST=$(hostname)
DATE=$(date)
RECIPIENT="[email protected]"
SUBJECT="SSH Login on $HOST"
BODY="
یک ورود SSH جدید با موفقیت انجام شد.
کاربر: ${USER}
آدرس IP: ${IP}
تاریخ و زمان: ${DATE}
سرور: ${HOST}
"
if [ ${PAM_TYPE} = "open_session" ]; then
echo "${BODY}" | mail -s "${SUBJECT}" ${RECIPIENT}
fi
exit 0
-
اسکریپت را اجرایی کنید:
sudo chmod +x /usr/local/bin/ssh-login-notify.sh
مرحله ۶: تست عملکرد
-
از یک سیستم دیگر وارد سرور شوید:
ssh user@your_server_ip
-
بررسی کنید که ایمیل اعلان ورود به صندوق ایمیل شما ارسال شده باشد.
-
اگر ایمیل دریافت نکردید، فایل لاگ را بررسی کنید:
/var/log/msmtp.log
نکات امنیتی تکمیلی
-
استفاده از کلید SSH: به جای رمز عبور، همیشه از SSH key pair برای ورود استفاده کنید.
-
غیرفعال کردن ورود با رمز عبور: در فایل
/etc/ssh/sshd_config
:
PasswordAuthentication no
-
نصب ابزارهای محافظتی: استفاده از Fail2Ban یا SSHGuard برای جلوگیری از حملات Brute Force.
-
نظارت منظم: هر چند اعلان ایمیل فعال است، گاهی بررسی لاگها و وضعیت سرور الزامی است.
رفع مشکلات رایج
-
عدم دریافت ایمیل: بررسی کنید که رمز App Password صحیح باشد و پورت SMTP باز باشد.
-
خطا در اجرای اسکریپت: بررسی کنید که اسکریپت دارای مجوز اجرایی (
chmod +x
) باشد و مسیر فایل درست باشد. -
خطا در PAM: مطمئن شوید خط
session optional pam_exec.so ...
بعد از خطوط session در/etc/pam.d/sshd
قرار دارد.
مزیت این روش
استفاده از PAM برای اجرای اسکریپت اعلان ورود SSH، روش قابل اعتماد و سبکی است که:
-
بدون نیاز به سرویسهای پسزمینه یا اسکن لاگ
-
بدون تأخیر
-
با اطلاعات کامل کاربر و IP
-
بهصورت لحظهای، شما را از ورودها مطلع میکند
و همین باعث میشود امنیت سرور شما به طور قابل توجهی افزایش یابد.
معرفی Orderhost برای سرورهای امن
اگر میخواهید سروری امن، پایدار و پرسرعت داشته باشید تا قابلیت اعلان ورود SSH را به راحتی فعال کنید، سایت اردرهاست گزینه مناسبی است.
با سرورهای مجازی و اختصاصی Orderhost میتوانید:
-
سرورهای لینوکسی با دسترسی SSH کامل داشته باشید
-
امنیت سرور را با کلید SSH و اعلانهای ورود افزایش دهید
-
از پشتیبانی ۲۴/۷ و منابع اختصاصی بهرهمند شوید
استفاده از سرورهای مجازی سایت اردرهاست(Orderhost) باعث میشود علاوه بر یادگیری و اجرای این آموزش، تجربهی یک سرور حرفهای و قابل اعتماد نیز داشته باشید.
جمعبندی
در این مقاله، با روش فعالسازی اعلان ورود SSH در اوبونتو آشنا شدید:
-
مراحل نصب msmtp و mailx
-
پیکربندی PAM برای اجرای اسکریپت هنگام ورود
-
ساخت App Password در Gmail
-
ایجاد اسکریپت ارسال اعلان به ایمیل
-
تست و بررسی خطاها
-
نکات امنیتی تکمیلی
این روش به شما آگاهی لحظهای از ورودها و امنیت بیشتر سرور را میدهد.
با ترکیب این روش با ابزارهایی مانند Fail2Ban و SSH key، میتوانید یک سرور لینوکسی بسیار امن و قابل اعتماد داشته باشید.
و در نهایت، اگر به دنبال سرور مجازی مطمئن هستید، Orderhost.net انتخابی حرفهای و امن برای سرورهای لینوکس شماست.