الملفات
ghaymah-exam-Ammar-SecOps/q1-security-audit/security-check.sh
Ammar Yaser Al-Sayyed Abdullah 28bfbea3de Final Submission for SecOps Exam
2026-07-26 17:39:55 +03:00

47 أسطر
1.7 KiB
Bash
خام اللوم التاريخ

هذا الملف يحتوي على أحرف Unicode غير مرئية

هذا الملف يحتوي على أحرف Unicode غير مرئية لا يمكن التمييز بينها بعين الإنسان ولكن قد تتم معالجتها بشكل مختلف بواسطة الحاسوب. إذا كنت تعتقد أن هذا مقصود، يمكنك تجاهل هذا التحذير بأمان. استخدم زر الهروب للكشف عنها.

هذا الملف يحتوي على أحرف Unicode قد تُخلط مع أحرف أخرى. إذا كنت تعتقد أن هذا مقصود، يمكنك تجاهل هذا التحذير بأمان. استخدم زر الهروب للكشف عنها.

#!/bin/bash
echo "🔒 Starting Security Audit Check..."
echo "------------------------------------"
echo "🔍 [1] Checking Risky Open Ports..."
OPEN_PORTS=$(netstat -tuln | awk '{print $4}' | grep -E ':(22|3306|21)$')
if [ -z "$OPEN_PORTS" ]; then
echo "✅ PASS: No unauthorized risky ports are open."
else
echo "❌ WARNING: The following risky ports are exposed:"
echo "$OPEN_PORTS"
fi
echo "------------------------------------"
echo "🌐 [2] Checking SSL Certificate Expiry for mithal.space..."
DOMAIN="mithal.space"
EXPIRY_DATE=$(echo | openssl s_client -servername $DOMAIN -connect $DOMAIN:443 2>/dev/null | openssl x509 -noout -dates | grep notAfter | cut -d= -f2)
if [ -n "$EXPIRY_DATE" ]; then
EXPIRY_SEC=$(date -d "$EXPIRY_DATE" +%s)
NOW_SEC=$(date +%s)
DAYS_LEFT=$(( ($EXPIRY_SEC - $NOW_SEC) / 86400 ))
if [ $DAYS_LEFT -gt 30 ]; then
echo "✅ PASS: SSL certificate is valid. Expires in $DAYS_LEFT days."
else
echo "⚠️ WARNING: SSL certificate expires soon (in $DAYS_LEFT days)!"
fi
else
echo "❌ ERROR: Could not retrieve SSL certificate."
fi
echo "------------------------------------"
echo "📁 [3] Checking Sensitive File Permissions..."
SENSITIVE_FILE=".env"
if [ -f "$SENSITIVE_FILE" ]; then
PERMISSIONS=$(stat -c "%a" "$SENSITIVE_FILE")
if [ "$PERMISSIONS" -le 600 ]; then
echo "✅ PASS: Permissions for $SENSITIVE_FILE are secure ($PERMISSIONS)."
else
echo "❌ WARNING: Permissions for $SENSITIVE_FILE are too open ($PERMISSIONS)!"
fi
else
echo " INFO: No $SENSITIVE_FILE found."
fi
echo "------------------------------------"
echo "🏁 Security Audit Check Completed."