A lightweight and powerful Bash script designed to perform a quick security audit of your Linux system. This tool checks for firewall status, sensitive file permissions, inactive users, running services, and available updates, then generates a detailed security report in both text and HTML formats.
- 🔥 Firewall Status: Checks if UFW is active and lists current rules.
- 🔐 Sensitive File Permissions: Verifies permissions for critical files like
/etc/passwd
,/etc/shadow
, and/etc/hosts
. - 👤 Inactive User Accounts: Detects unused or suspicious accounts based on login shells.
- 🛠️ Service Monitoring: Lists top 10 running services by memory usage.
- ⬆️ System Updates: Checks for available package updates to keep your system secure.
- 📄 Detailed Report: Automatically generates a comprehensive security report in both text and HTML formats for better visualization.
linux-system-security-checker/
├── security-checker.sh
├── README.md
├── LICENSE
├── security-report.txt
├── security-report.html
└── example-report.txt
-
Clone this repository:
git clone https://github.com/marwan-ahmed-23/linux-system-security-checker.git cd linux-system-security-checker
-
Make the script executable:
chmod +x security-checker.sh
-
Run the script:
./security-checker.sh
-
View the generated report:
- Text Report:
cat security-report.txt
- HTML Report: Open
security-report.html
in your favorite browser.
- Text Report:
Here's an example of the output generated by the script:
Security Report - Thu Dec 21 2024
---------------------------------------
Firewall Status:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
---------------------------------------
File Permissions:
/etc/passwd -rw-r--r--
/etc/shadow -rw-------
/etc/hosts -rw-r--r--
---------------------------------------
Inactive Users:
root
admin
---------------------------------------
Top 10 Running Services by Memory Usage:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 102400 9280 ? Ss 12:00 0:03 /sbin/init
mysql 172 0.5 1.5 125000 11000 ? Ssl 12:00 0:30 /usr/sbin/mysqld
---------------------------------------
System Updates:
apt package-manager is up-to-date.
Open security-report.html
for a visually styled version of the report with structured sections and improved readability.
We welcome contributions to improve this tool! Here's how you can help:
- 🐛 Report issues: Found a bug? Open an issue and let us know.
- 🌟 Suggest features: Have an idea for improvement? We'd love to hear it.
- 🔧 Submit pull requests: Contribute code directly to the repository.
- 📅 Task Scheduling: Add cron job integration for automated periodic checks.
- 🕵️ Vulnerability Scanner: Integrate CVE vulnerability scanning.
- 🎨 Enhanced HTML Report: Include charts and visual statistics.
- 🛡️ Customizable Rules: Allow users to define custom rules for security checks.
If you found this project helpful, please consider giving it a ⭐ on GitHub. Your support means the world to us!