مشكلة اتصال SSH: لا يمكن الاتصال بالخادم — الحل
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
خطوات الاستجابة الطارئة عند اختراق خادمك: الكشف، العزل، التحليل الجنائي والتنظيف.
اكتشاف أن خادمك قد تم اختراقه هو موقف مرهق، لكن باتباع الخطوات الصحيحة يمكنك تقليل الضرر واستعادة نظامك. في هذا الدليل، سنغطي العملية بأكملها من كشف الاختراق إلى التنظيف وتعزيز الأمان.
المؤشرات الشائعة لاختراق الخادم:
الخطوة الأولى والأهم هي البقاء هادئاً وتوثيق كل شيء:
# حفظ الحالة الحالية
date > /tmp/incident_$(date +%Y%m%d_%H%M%S).log
who >> /tmp/incident_*.log
w >> /tmp/incident_*.log
last -20 >> /tmp/incident_*.log
ps auxf >> /tmp/incident_*.log
netstat -tlnp >> /tmp/incident_*.log
ss -tlnp >> /tmp/incident_*.log
لا تقم بإيقاف تشغيل الخادم أو إعادة تشغيله فوراً! قد تُفقد الأدلة الجنائية. وثّق الحالة الحالية أولاً.
اعزل الخادم لمنع المهاجم من إحداث مزيد من الضرر:
# حظر جميع الاتصالات الصادرة (باستثناء SSH)
sudo iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -j DROP
# فحص جلسات SSH النشطة
who
w
# إنهاء الجلسات المشبوهة
sudo pkill -u مستخدم_مشبوه
# قائمة جميع المستخدمين
cat /etc/passwd | grep -v nologin | grep -v false
# فحص المستخدمين بـ UID 0 (صلاحيات root)
awk -F: '($3 == 0) {print}' /etc/passwd
# المستخدمون المنشأون حديثاً
ls -lt /home/
# المستخدمون بصلاحيات sudo
grep -v '^#' /etc/sudoers
ls -la /etc/sudoers.d/
# فحص SSH authorized_keys
for user_home in /home/*; do
if [ -f "$user_home/.ssh/authorized_keys" ]; then
echo "=== $user_home ==="
cat "$user_home/.ssh/authorized_keys"
fi
done
cat /root/.ssh/authorized_keys
# عرض جميع العمليات الجارية بشكل شجري
ps auxf
# البحث عن عمليات مشبوهة
ps aux | grep -E '(mine|xmr|crypto|kinsing|kdevtmpfsi)'
# العمليات ذات الاستخدام العالي لـ CPU
top -b -n 1 | head -20
# فحص العمليات المخفية
ls -la /proc/*/exe 2>/dev/null | grep deleted
# فحص مسارات ملفات العمليات
ls -la /proc/[0-9]*/exe 2>/dev/null | grep -v '/usr\|/bin\|/sbin\|/lib'
# crontab الجذر
crontab -l
# crontab جميع المستخدمين
for user in $(cut -f1 -d: /etc/passwd); do
crontab -l -u $user 2>/dev/null | grep -v '^#'
done
# مجلدات cron النظام
ls -la /etc/cron.d/
ls -la /etc/cron.daily/
ls -la /etc/cron.hourly/
cat /etc/crontab
# مؤقتات systemd
systemctl list-timers --all
# فحص الاتصالات النشطة
ss -tanp
netstat -tanp
# الاتصالات الصادرة
ss -tanp | grep ESTABLISHED | grep -v '127.0.0.1'
# المنافذ المستمعة
ss -tlnp
# الملفات المعدلة في آخر 24 ساعة
find / -mtime -1 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null
# الملفات المنشأة في آخر 7 أيام
find / -ctime -7 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null
# فحص ملفات SUID/SGID
find / -perm -4000 -type f 2>/dev/null
# ملفات مشبوهة في /tmp
ls -la /tmp/
ls -la /var/tmp/
ls -la /dev/shm/
# محاولات تسجيل الدخول عبر SSH
grep 'Failed password' /var/log/auth.log | tail -50
grep 'Accepted' /var/log/auth.log | tail -50
# تسجيلات الدخول الناجحة عبر SSH
last -20
lastlog
# سجلات النظام
journalctl --since "24 hours ago" | grep -i -E '(error|warning|fail|denied)'
# إنهاء العمليات المشبوهة
sudo kill -9 <PID>
# البحث عن عمليات تعدين العملات المشفرة وإنهاؤها
sudo pkill -9 -f 'xmr\|mine\|crypto\|kinsing'
# تعطيل الخدمات المشبوهة
sudo systemctl stop خدمة_مشبوهة
sudo systemctl disable خدمة_مشبوهة
# قفل المستخدم المشبوه
sudo usermod -L مستخدم_مشبوه
# حذف المستخدم
sudo userdel -r مستخدم_مشبوه
# تغيير كلمة مرور root
sudo passwd root
# فحص وتنظيف جميع ملفات authorized_keys
find / -name authorized_keys -exec cat {} \;
# الاحتفاظ بمفتاحك فقط
echo "ssh-rsa مفتاحك" > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin prohibit-password
PasswordAuthentication no
MaxAuthTries 3
AllowUsers اسم_المستخدم
sudo systemctl restart sshd
sudo apt install fail2ban -y
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt install unattended-upgrades -y
إذا لم يكن التنظيف كافياً، قد تحتاج إلى تثبيت نظيف:
# 1. نسخ احتياطي للبيانات المهمة
tar -czf /tmp/backup_data.tar.gz /var/www/ /home/
# 2. إعادة تثبيت نظام التشغيل من لوحة REXE
# my.rexe.tr > الخدمات > إعادة تثبيت نظام التشغيل
# 3. تعزيز الأمان بعد التثبيت النظيف
# 4. استعادة ملفات البيانات فقط (ليس ملفات التكوين)
عند الاستعادة من النسخة الاحتياطية، لا تستعد ملفات التكوين! قد يكون المهاجم قد أضاف أبواباً خلفية.
الاستجابة السريعة والمنهجية أمر بالغ الأهمية في حوادث اختراق الخوادم. اتبع خطوات التوثيق والعزل والتحليل الجنائي والتنظيف وتعزيز الأمان بالترتيب. لمنع حوادث مماثلة في المستقبل، قم بإجراء عمليات تدقيق أمنية منتظمة وطبّق ضوابط وصول قوية.
العلامات الشائعة: استخدام غير طبيعي لـ CPU/RAM، عمليات غير معروفة، حسابات مستخدمين جديدة، ملفات معدلة، حركة شبكة غير طبيعية وإرسال بريد عشوائي. تحقق بالأوامر 'ps auxf' و'ss -tanp' و'last'.
لا! الإيقاف الفوري قد يؤدي إلى فقدان الأدلة الجنائية. وثّق الحالة الحالية أولاً، ثم قم بعزل الشبكة.
يعتمد على نطاق الهجوم. إذا كان مجرد معدّن عملات مشفرة بسيط، قد يكفي التنظيف. لكن في حالة وجود rootkit أو هجوم على مستوى النواة، فإن إعادة التثبيت النظيف هي الخيار الأكثر أماناً.
نعم، لكن كن حذراً. يمكنك نسخ ملفات البيانات احتياطياً (قواعد البيانات، ملفات الويب)، لكن لا تستعد ملفات التكوين والملفات التنفيذية من النسخة الاحتياطية.
استخدم مصادقة مفاتيح SSH، ثبّت Fail2ban، حدّث بانتظام، استخدم كلمات مرور قوية، عطّل الخدمات غير الضرورية وقم بتكوين قواعد جدار حماية Path Panel بشكل صحيح.
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
دليل حل مشاكل اتصال RDP: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ RDP وخطوات استكشاف الأخطاء وإصلاحها.
دليل اختبار الشبكة باستخدام WinMTR وLinux MTR، إنشاء قاعدة فلترة ICMP وإرسال النتائج لفريق الدعم. تشخيص فقدان الحزم والتأخير في الشبكة.