Scantron是由两个组件组成的分布式nmap扫描仪。第一个是主节点,由网络前端组成,用于调度扫描并存储nmap扫描目标和结果。第二个组件是一个代理,它从主服务器提取扫描作业并进行实际的nmap扫描。大多数应用程序逻辑都故意放置在主服务器上,以使代理尽可能“哑”。所有nmap目标文件和nmap结果都驻留在主文件上,并利用SSH隧道通过网络文件共享(NFS)进行共享。代理使用REST API定期回叫给master,以检查扫描任务并提供扫描状态更新。
Scantron专门针对Python3.6 +进行编码,并利用Django作为Web前端,利用Django REST Framework作为API端点,使用PostgreSQL作为数据库,并随附了以Ubuntu为中心的Ansible剧本,以实现流畅的部署。Scantron已在Ubuntu 18.04上进行了测试,并且可能与其他操作系统兼容。Scantron的灵感来自:
dnmap
Minions
rainmap svn / rainmap github
rainmap-lite
Scantron在很大程度上依赖于将SSH端口转发(-R / -L)作为通往代理的脐带。可以接受来自主服务器–>代理 或 代理服务器–>主服务