VPS

⌘K
  1. Home
  2. VPS
  3. Ubuntu
  4. VPS Initial Setup & ...
  5. 03. login message email send

03. login message email send


✅ সম্পূর্ণ স্ক্র্যাচ থেকে Gmail Alert-Based SSH & Firewall Security System


🧱 আপনি যা পাবেন:

কাজফলাফল
🔐 সফল SSH লগইন হলেGmail-এ ইমেইল
❌ ব্যর্থ SSH লগইন হলেGmail-এ ইমেইল
🔥 Firewall (UFW) ব্লক হলেGmail-এ ইমেইল
📊 সাপ্তাহিক রিপোর্টGmail-এ Login Summary

🔰 PART 0: Gmail SMTP Relay পূর্ণ সেটআপ


🧪 Step 0.1: Gmail App Password তৈরি

  1. https://myaccount.google.com/security এ যান
  2. 2-Step Verification চালু করুন
  3. নিচে যান: “App passwords”
  4. App: Mail, Device: Linux VPS, ক্লিক করুন → একটা 16-character password পাবেন

➡️ এটিকে কপি করে আলাদা কোথাও সেভ করে রাখুন। এটি দিয়েই VPS থেকে Gmail SMTP চালাব।


🛠️ Step 0.2: Mailutils ও Postfix ইনস্টল করুন

sudo apt update && sudo apt install mailutils postfix -y

➡️ যখন “mail configuration” আসবে, Internet Site নির্বাচন করুন।


🛠️ Step 0.3: Gmail SMTP কনফিগার করুন

sudo nano /etc/postfix/main.cf

শেষে এই লাইনগুলো যোগ করুন:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

🛠️ Step 0.4: Gmail অ্যাকাউন্ট ও App Password যোগ করুন

sudo nano /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 yourgmail@gmail.com:your_app_password

✅ Save করুন → তারপর:

sudo postmap /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo systemctl restart postfix

✅ টেস্ট করুন:

echo "Test Email from Server" | mail -s "Test Email" yourgmail@gmail.com

🎉 Gmail-এ পেলে পরের ধাপে যান।


🔐 PART 1: সফল SSH Login হলে Gmail-এ ইমেইল


🛠️ Step 1.1: PAM স্ক্রিপ্ট তৈরি

sudo nano /usr/local/bin/login-notify.sh
#!/bin/bash
IP=$(echo $SSH_CONNECTION | awk '{print $1}')
HOST=$(hostname)
USER=$(whoami)
DATE=$(date)

echo -e "✅ SSH Login Alert:\nUser: $USER\nIP: $IP\nDate: $DATE\nHost: $HOST" \
| mail -s "🔐 SSH Login to $HOST" yourgmail@gmail.com
sudo chmod +x /usr/local/bin/login-notify.sh

🛠️ Step 1.2: PAM হুক করুন

sudo nano /etc/pam.d/sshd

সবচেয়ে নিচে যোগ করুন:

session optional pam_exec.so /usr/local/bin/login-notify.sh

🔁 Step 1.3: SSH Restart করুন

sudo systemctl restart ssh

🧪 এখন অন্য টার্মিনাল দিয়ে login করলেই Gmail এ ইমেইল পাবেন!


❌ PART 2: ব্যর্থ SSH Login হলে Gmail Alert


🛠️ Step 2.1: Script তৈরি করুন

sudo nano /usr/local/bin/failed-login-alert.sh
#!/bin/bash
EMAIL="yourgmail@gmail.com"
LOGFILE="/var/log/auth.log"
LAST=$(tail -n 10 $LOGFILE | grep "Failed password")

if [[ ! -z "$LAST" ]]; then
    echo -e "❌ SSH Failed Login Attempt:\n\n$LAST" | mail -s "🚨 SSH Failed Login Detected" $EMAIL
fi
sudo chmod +x /usr/local/bin/failed-login-alert.sh

🛠️ Step 2.2: Cron Job দিয়ে প্রতি ২ মিনিটে চেক করান

sudo crontab -e
*/2 * * * * /usr/local/bin/failed-login-alert.sh

🔥 PART 3: Firewall Block হলে Gmail Alert


🛠️ Step 3.1: Firewall Logging চালু

sudo ufw logging on

🛠️ Step 3.2: Firewall Alert Script

sudo nano /usr/local/bin/firewall-alert.sh
#!/bin/bash
EMAIL="yourgmail@gmail.com"
LOGFILE="/var/log/ufw.log"
ALERT=$(tail -n 20 $LOGFILE | grep "BLOCK")

if [[ ! -z "$ALERT" ]]; then
    echo -e "🔥 UFW Firewall Blocked Traffic:\n\n$ALERT" | mail -s "🔥 UFW Alert from $(hostname)" $EMAIL
fi
sudo chmod +x /usr/local/bin/firewall-alert.sh

🛠️ Step 3.3: Cron Job প্রতি ৫ মিনিটে

sudo crontab -e
*/5 * * * * /usr/local/bin/firewall-alert.sh

📊 PART 4: সাপ্তাহিক SSH Summary রিপোর্ট


🛠️ Step 4.1: রিপোর্ট স্ক্রিপ্ট

sudo nano /usr/local/bin/ssh-weekly-report.sh
#!/bin/bash
EMAIL="yourgmail@gmail.com"
HOST=$(hostname)
SUCCESS=$(grep "Accepted password" /var/log/auth.log | wc -l)
FAILED=$(grep "Failed password" /var/log/auth.log | wc -l)
TOP_IPS=$(grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -5)

echo -e "📊 Weekly SSH Summary ($HOST)\n\n✅ Success: $SUCCESS\n❌ Failed: $FAILED\n\nTop Failed IPs:\n$TOP_IPS" \
| mail -s "📈 Weekly Report - $HOST" $EMAIL
sudo chmod +x /usr/local/bin/ssh-weekly-report.sh

🛠️ Step 4.2: প্রতি সোমবার সকাল ৭টায় চালান

sudo crontab -e
0 7 * * 1 /usr/local/bin/ssh-weekly-report.sh

✅ আপনার সার্ভার এখন প্রস্তুত:

Security FeatureActive
Gmail SMTP Config
PAM SSH Login Alert
Failed Login Detection
Firewall Alert
Weekly Summary Report

How can we help?