Server Usage Guide
Learn how to use the Port Scanner Delta Reporter server application.
Table of Contents
- Getting Started
- User Management
- Scan Management
- Client Management
- Delta Reports
- Alerts
- Advanced Features
Getting Started
First Login
- Navigate to your server URL:
http://localhost:5000 -
Sign in with your admin credentials (created during installation)
- You’ll see the dashboard with four main sections:
- Active Clients - Connected scanning agents
- Recent Scans - Scans performed in the last 24 hours
- Delta Reports - Change reports between scans
- Alerts - Critical security notifications
Dashboard Overview
The dashboard provides a real-time overview of your network monitoring:
┌─────────────────────────────────────────────────┐
│ Port Scanner Delta Reporter - Dashboard │
├─────────────────────────────────────────────────┤
│ Active Clients: 5 Recent Scans: 12 │
│ Delta Reports: 8 Alerts: 2 │
└─────────────────────────────────────────────────┘
User Management
Profile Management
- Click your username in the sidebar → Profile
- Update your information:
- First Name
- Last Name
- Email address
Note: OAuth users cannot change their email address.
Change Password
Local Users Only:
- Navigate to Profile → Password tab
- Enter current password
- Enter new password (must meet requirements)
- Confirm new password
- Click Change Password
Creating Additional Users
Administrators Only:
Users can self-register, or administrators can invite them:
- Share the registration URL:
http://your-server:5000/auth/register - New users complete registration
- Verify their account (if email verification is enabled)
Scan Management
Creating a New Scan
- Navigate to Scans → New Scan
- Fill in scan details:
Name: Weekly Network Scan
Description: Comprehensive network scan
Target: 192.168.1.0/24
Ports: 1-65535
Scan Arguments: -T4 -sV --host-timeout 30s
Interval: 10080 minutes (weekly)
Active: ✓
Scheduled: ✓
- Click Create Scan
Target Formats
The server accepts multiple target formats:
# Single IP
192.168.1.100
# IP Range (CIDR notation)
192.168.1.0/24
# Multiple IPs (comma-separated)
192.168.1.10,192.168.1.20,192.168.1.30
# IP Range (dash notation)
192.168.1.1-192.168.1.50
Port Specifications
# All ports
1-65535
# Common ports
22,80,443,3306,5432
# Port range
1-1000
# Mixed
22,80,443,1000-2000
Scan Arguments
Common nmap arguments:
# Service version detection
-sV
# OS detection
-O
# Aggressive scan
-A
# Timing template (0-5, 5=fastest)
-T4
# Timeout per host
--host-timeout 30s
# Skip host discovery
-Pn
# UDP scan
-sU
# TCP SYN scan (default)
-sS
Example combinations:
# Fast service detection
-T4 -sV --host-timeout 30s --max-retries 1
# Comprehensive scan
-A -T4 -sV --script=default
# Quick discovery
-T5 -F --max-retries 1
Viewing Scan Details
- Navigate to Scans
- Click on a scan name
- View scan information:
- Configuration
- Execution history
- Results
- Associated tasks
Editing a Scan
- Navigate to Scans
- Click the Edit button (pencil icon)
- Modify scan parameters
- Click Save Changes
Note: Changes to scheduled scans take effect on the next run.
Executing a Scan Manually
- Navigate to Scans
- Click the Execute button (play icon)
- Scan will be queued immediately
- View progress in Scan Details
Deleting a Scan
- Navigate to Scans
- Click the Delete button (trash icon)
- Confirm deletion
Note: This deactivates the scan rather than deleting it permanently.
Client Management
Understanding Client Status
Clients can have three statuses:
- 🟢 Online - Client is active and ready to scan
- 🟡 Scanning - Client is currently performing a scan
- 🔴 Offline - Client hasn’t sent heartbeat recently
Approving New Clients
When a new client connects:
- Navigate to Clients
- Find the pending client (marked “No” under Approved)
- Click Approve button
- Client will receive approval notification
Client Information
Each client displays:
MAC Address: aa:bb:cc:dd:ee:ff
Hostname: scanner-01
IP Address: 192.168.1.100
Scan Range: 192.168.1.0/24
Status: Online
Last Seen: 2 minutes ago
Approved: Yes
Managing Client Visibility
Hide clients you don’t want to see:
- Navigate to Clients
- Click the Hide button (eye icon)
- Toggle Show Hidden filter to view hidden clients
Revoking Client Access
- Navigate to Clients
- Click the Revoke button
- Confirm revocation
- Client will be marked offline and cannot scan
Delta Reports
Understanding Delta Reports
Delta reports show changes between consecutive scans:
- New Hosts - Devices that appeared
- Removed Hosts - Devices that disappeared
- New Ports - Ports that opened
- Closed Ports - Ports that closed
- Service Changes - Services that changed versions or configurations
Viewing Reports
Overview (All Networks)
- Navigate to Reports
- See network cards with:
- Security score
- Change indicators
- Status badges
┌────────────────────────────┐
│ Office Network │
│ 192.168.1.0/24 │
├────────────────────────────┤
│ Security Score: 85 │
│ Good │
├────────────────────────────┤
│ +2 New Ports │
│ -1 Closed Ports │
│ 1 Service Changes │
└────────────────────────────┘
Detailed Report
- Click View Latest Report on a network card
- See detailed changes:
New Hosts:
- 192.168.1.150
New Open Ports:
- Host: 192.168.1.100
Port: 3389 (RDP)
Service: Microsoft Terminal Services
Closed Ports:
- Host: 192.168.1.50
Port: 22 (SSH)
Service Changes:
- Host: 192.168.1.10
Port: 80
Before: nginx 1.18
After: nginx 1.20
Filtering Reports
Use the filter controls to narrow down reports:
Status Filter:
- All Statuses
- Critical Only (new critical ports)
- Changes Only (any changes)
- Stable Only (no changes)
Score Filter:
- All Scores
- Excellent (90+)
- Good (70-89)
- Monitor (50-69)
- Critical (0-49)
Sort:
- Most Recent
- Oldest
- Score (High to Low)
- Score (Low to High)
- Network Name
Search:
- Filter by network name
Exporting Reports
Single Report
- Open a delta report
- Click Export dropdown
- Choose format:
- CSV - Spreadsheet format
- JSON - Machine-readable format
All Reports
- Navigate to Reports
- Click Export All on a network card
- Download ZIP file containing all reports
Scan History Timeline
View all changes over time:
- Navigate to Reports
- Click History on a network card
- See timeline of all scans:
Timeline View:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
● 2025-01-15 09:00
↳ Critical: +1 RDP port opened
● 2025-01-08 09:00
↳ Changes: Service updates detected
● 2025-01-01 09:00
↳ Stable: No changes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Alerts
Understanding Alert Criticality
Alerts are categorized by severity:
- 🔴 Critical - Immediate action required
- 🟠 High - Important but not urgent
- 🟡 Medium - Monitor but not urgent
- 🔵 Low - Informational
Critical Ports
The system monitors these ports automatically:
Critical Ports:
3389: RDP (Critical)
22: SSH (High)
23: Telnet (High)
445: SMB (High)
5900: VNC (High)
Medium Risk:
21: FTP
3306: MySQL
5432: PostgreSQL
Managing Alerts
Mark as Actioned
- Navigate to Alerts
- Click Mark Actioned on an alert
- Alert status changes to “Actioned”
Ignore Alert
- Navigate to Alerts
- Click Ignore on an alert
- Alert will be hidden from active view
Auto-Resolution
Alerts automatically resolve when:
- Port closes
- Service returns to expected state
- Device goes offline
Advanced Features
Scheduled Scans
Scans can run automatically:
- Create scan with Scheduled enabled
- Set interval in minutes:
- Daily: 1440
- Weekly: 10080
- Monthly: 43200
- View next run time in scan details
- Toggle scheduling without deleting scan
Scan Task Distribution
The server automatically distributes scan targets to clients:
Target: 192.168.0.0/16 (65,536 IPs)
Client Distribution:
Client 1: 192.168.0.0/24 → 256 IPs
Client 2: 192.168.1.0/24 → 256 IPs
Client 3: 192.168.2.0/24 → 256 IPs
...
Clients only scan IPs within their configured range.
Partial Scans
If not all targets can be assigned:
- Scan marked as “partial”
- Warning indicator shown
- Report notes incomplete coverage
Server-Sent Events (SSE)
Real-time notifications in the UI:
- New scan completion
- Client status changes
- Alert notifications
- System messages
Viewing Logs
Administrators Only:
- Navigate to Settings → Logs
- View three log types:
- app.log - General application logs
- error.log - Error messages only
- scheduler.log - Scheduled task logs
- Download logs for analysis
Flask CLI Commands
Useful management commands:
# List all scheduled jobs
flask list-jobs
# Reload schedules from database
flask reload-schedules
# Create admin user
flask create-admin
# Initialize database
flask init-db
# Reset database (WARNING: destroys data)
flask reset-db
# Run complete setup
flask setup
Best Practices
Scan Configuration
- Start Small
- Begin with small subnets
- Test with short intervals
- Expand gradually
- Optimize Performance
- Use appropriate timing templates (-T3 or -T4)
- Set reasonable timeouts
- Limit port ranges when possible
- Schedule Wisely
- Run during off-peak hours
- Avoid overlapping scans
- Consider network impact
Security
- Review Alerts Promptly
- Check critical alerts daily
- Investigate new open ports
- Monitor service changes
- Client Management
- Approve clients carefully
- Revoke unused clients
- Monitor client activity
- Report Analysis
- Review reports weekly
- Track trends over time
- Export reports for records
Performance
- Database Maintenance
- Archive old reports periodically
- Monitor database size
- Run VACUUM on SQLite
- Log Management
- Rotate logs regularly
- Archive old logs
- Monitor disk space
Troubleshooting
Scan Not Running
- Check scan is Active and Scheduled
- Verify clients are Online and Approved
- Check client scan ranges match targets
- Review scheduler logs
No Results Received
- Verify client connectivity
- Check firewall rules
- Review client logs
- Test client manually
Delta Report Not Generated
Delta reports require:
- At least two completed scans
- Same scan target
- Successfully completed results
Performance Issues
- Reduce concurrent scans
- Optimize scan arguments
- Increase server resources
- Use PostgreSQL instead of SQLite
Getting Help
- Documentation: https://teamfixit.github.io/portscan-delta-reporter
- GitHub Issues: TeamFixIT/portscan-delta-reporter
- Client Guide: Client Agent Documentation
Next Steps
- API Reference - Integrate with external systems