In an era where network security is paramount, having a reliable and efficient scanning solution is essential for system administrators and security professionals. Scantron addresses this need by providing a distributed framework that leverages nmap and masscan, allowing users to automate their scanning workflows while managing scan schedules and results effectively.
What Is Scantron?
Scantron is a distributed scanning framework that integrates nmap and masscan for efficient network scanning. It consists of two main components: a console node for scheduling and managing scans and a scanning engine that executes these tasks. By utilizing a REST API for communication, Scantron simplifies the process of managing scan jobs and storing results. The application is designed primarily for Python 3.6+ and employs Django for its web interface, making it robust and user-friendly.
Key Features
- Distributed Architecture: Scantron separates the console and scanning engine, allowing multiple engines to work on scan tasks simultaneously, enhancing scalability.
- Scan Scheduling: Users can easily schedule scans through a web interface, making it convenient to manage tasks without manual intervention.
- Engine Pooling: The framework supports pooling of scanning engines, ensuring efficient resource utilization and faster scan completion.
- REST API: A comprehensive API client enables automation of workflows, allowing integration with other tools and scripts.
- Scan Port Diffing: Use the pyndiff library to compare scan results and identify changes in open ports, making it easier to track network changes over time.
- Email Notifications: Get alerted about scan results and diffs via email, keeping you informed of critical changes.
- Easy Deployment: Ubuntu-focused Ansible playbooks facilitate quick and straightforward installation on compatible systems.
- PostgreSQL Database: Scantron employs PostgreSQL for reliable storage of scan targets and results, ensuring data integrity.
Installation & Setup
Setting up Scantron is straightforward, thanks to its Ansible playbooks. Here are the steps to get started:
git clone https://github.com/opsdisk/scantron.git
cd scantron
# Install requirements
pip install -r requirements.txt
# Deploy using Ansible
ansible-playbook -i inventory/hosts playbook.yml
Make sure you have Ansible installed on your system. You can install it via pip:
pip install ansible
Once the installation completes, you can access the Scantron console through your web browser. The default address will be http://localhost:8000.
How to Use It
After setting up Scantron, you can start scheduling your scans. Here’s a practical example of how to schedule a scan:
# Log in to the Scantron console
# Navigate to the 'Scans' section and create a new scan
# Enter the target IPs or ranges, select scanning options, and set the schedule.
# Once scheduled, the scanning engine will pick up the job and execute it.
# You can check the status and results via the Scantron interface.
Scantron makes it easy to manage and monitor your scans from a single interface, giving you insights into your network security posture.
Who Should Use Scantron?
Scantron is ideal for network administrators, security professionals, and anyone responsible for maintaining network security. Its distributed nature allows organizations of various sizes to scale their scanning efforts efficiently, making it a valuable tool in any security toolkit.
Final Thoughts
Scantron is a powerful framework that simplifies the process of network scanning while providing the flexibility needed in today’s dynamic environments. Its combination of nmap and masscan capabilities, alongside a user-friendly web interface, makes it a must-have for anyone looking to enhance their scanning workflows. Whether you're managing a small network or an enterprise-level infrastructure, Scantron provides the tools you need to stay ahead of potential vulnerabilities.