🛡️Security Tool
LibrarySecurity ToolvmainPython
Automous
Python-based Linux server hardening with Ansible
Read the full case studyKey Facts & Overview
Automous is a Python tool that automates Linux server hardening using Ansible. It is based on the UT Austin Hardening Checklist and imthenachoman's Secure-A-Linux-Server guide. It applies profile-based hardening end-to-end from a single command, with custom Ansible modules and dynamic role assignment.
- ›Built on the UT Austin Hardening Checklist and imthenachoman's guide.
- ›Roles: firewalld, strict_permissions, security_scanning, fail2ban, apparmor, log_management, kernel_hardening, aide, clamav, lynis.
- ›Disables root SSH login and enforces key-based authentication.
- ›A separate docker_hardening module hardens container environments.
Core Architectural Features
Profile-based hardening (high, medium, low, web_server, database_server)
Custom Ansible modules (e.g. remove forbidden packages)
Dynamic role assignment per profile
End-to-end single-command automation
Comprehensive security coverage
Modular, extensible architecture
Installation
# 1. Install the uv package manager
pip install uv
# 2. Clone and enter the repo
git clone https://github.com/ayoubzulfiqar/Automous.git
cd Automous
# 3. Install dependencies
uv syncUsage
# High security hardening (max features)
python main.py --target 192.168.1.100 --profile high
# Web server hardening (HTTP/HTTPS open)
python main.py --target 10.0.0.5 --profile web_server
# Database server hardening
python main.py --target 172.16.0.10 --profile database_server
# Reverse (experimental) — undo hardening changes
python main.py --target 192.168.1.100 --profile high --reverseAPI Reference
--target <IP>IP address or hostname of the target server (required).
--profile <NAME>Security profile: high, medium, low, web_server, database_server (required).
--reverseUndo hardening changes (experimental).
profiles.jsonEdit to create custom profiles by listing roles.