Skip to content
OnlyProjects
B.Tech / B.E. · Cyber SecurityFor educational purposes only
Code included

CampusHoney: A Low-Interaction Honeypot and Telemetry Dashboard for the College Lab Network

Three decoy ports that listen, log every knock, and turn lab scan traffic into charts the lab in-charge can actually read

Mapped to your syllabusKTU 2019 Scheme (2024 scheme for 2024 admits) · CSD 334 Mini Project · Semester 6

Overview

1 min read

CampusHoney is a small, honest honeypot for a college computer lab: three Python services that listen on deliberately unused ports (2222, 8022, 8081) of one lab machine, record every connection attempt, and show the collected telemetry on a simple Flask + MySQL + Chart.js dashboard.

A honeypot is a decoy — a system with no real users and no real services, where any connection is by definition interesting. In our lab, ordinary machines never receive connections on port 2222; a device that does is probing, misconfigured, or infected. CampusHoney logs the source IP, source port, targeted port, timestamp and a few bytes of any banner the client sends, aggregates them into daily summaries, and answers questions the lab in-charge currently cannot: Is anyone probing the lab? From where? Which ports? Is it getting worse week to week?

The design is deliberately low-interaction and defensive: the listeners never grant access, never execute anything, never make an outbound connection, and show an honest warning banner instead of pretending to be a real SSH or web server. No credentials are collected and no payloads beyond the first bytes are stored. Deployment needs written permission from the lab in-charge, runs only on the lab's own VLAN, and the whole project fits a 6-week KTU mini project for a team of three: one member builds the listeners, one the storage and aggregation, one the dashboard and reports. For a beginner team it covers networking, databases and web development in one defensible package.

Relevant for
Kerala
Level
Beginner · 6 weeks · team of 3
Common at
APJ Abdul Kalam Technological University, Visvesvaraya Technological University, Jawaharlal Nehru Technological University Hyderabad
Updated
Oct 2026

Syllabus alignment

KTU · 2019 Scheme (2024 scheme for 2024 admits)

CSD 334 · Mini Project · Semester 6 · 2 credits

Subjects this project applies
  • CSL 332 Networking Lab
  • CSL 333 DBMS Lab (MySQL)
  • CST 463 Web Programming
  • CST 253 Python for Machine Learning (minor)
How it is evaluated

Team: 3–4

Also fits: VTU 2022 Scheme (OBE/CBCS), JNTUH R22, BPUT 2023-24 admission batch.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

A college computer lab has no way to observe, record or analyse the probing and scan traffic that reaches it. The department firewall's logs sit in the server room and cover only WAN-edge blocking, so activity inside the lab segment — a misconfigured device, a machine running unwanted software, or outside probes that pass the firewall — is invisible. There is no history, so no question about past activity can be answered, and the lab committee has no evidence when it asks for security tooling.

What is needed is a low-cost, low-risk sensor built by the department itself: a decoy service on the lab's own network that safely attracts and records connection attempts, a persistent store of that telemetry, and a simple dashboard that turns it into answers — all without exposing any real service, granting any access, collecting any credentials, or requiring any security expertise to operate.

Synopsis

Abstract

College lab networks are scanned constantly — by misconfigured devices, curiosity, and automated internet background noise — and the college has no record of any of it. CampusHoney is a low-interaction honeypot and telemetry dashboard built for one lab: three Python listeners on unused ports log every connection attempt into MySQL, a Flask dashboard charts connections per hour, top source IPs and most-targeted ports, and a weekly summary goes to the lab in-charge. Everything is logged, nothing is exposed: the honeypot grants no access and makes no outbound connections.

Introduction

Our lab has 60 machines behind a college firewall. When the firewall occasionally blocks an address, nobody knows whether the lab was being probed from outside or a lab machine was misbehaving. Commercial security appliances are out of budget, and the department has no visibility tool of its own. A honeypot is the cheapest possible sensor: a machine that offers nothing, so every connection it sees is a signal.

Existing System

  • The college firewall's logs sit on a server-room appliance, are not accessible to the department, and show blocked WAN traffic only — nothing about activity inside the lab segment.
  • When something odd happens (an IP conflict, a machine suddenly slow), there is no history to compare against.
  • Students' perception of lab security is anecdotal: "someone must be scanning us" — with no data either way.
  • Limitations: no lab-level visibility, no history, no evidence for the lab committee's budget requests, and no learning resource about how probing actually looks.

Proposed System

  • Three decoy listeners on one lab machine: port 2222 speaks a short honest warning banner, port 8022 serves a static "under maintenance" page, and port 8081 accepts-and-closes to catch pure port-probes. None of them authenticate users, execute input, or connect out.
  • Logging and aggregation: each connection becomes one row (source IP, source port, target port, timestamp, bytes read capped at 128, optional banner excerpt); nightly jobs build daily summaries (unique sources, top ports, connections per hour).
  • Dashboard: a Flask app with a login for the lab in-charge, Chart.js graphs, a filterable event table, CSV export and a one-page weekly PDF summary.
  • Ethics by design: deployment only on the lab's own VLAN with a signed permission note, honest banner, no credential capture, no payloads stored, 30-day retention, and a visible monitoring notice in the lab.

Feasibility Study

  • Technical: Python's standard socket library with threads handles the listeners; MySQL and Flask are already taught in CSL 333 and CST 463. A quiet college lab sees at most a few hundred connections a day — trivially within reach of this stack.
  • Economic: ₹0. One existing lab PC, free open-source tools, no licences.
  • Operational: The honeypot runs headless and needs no maintenance beyond a weekly glance; the dashboard requires no training. By design the decoy exposes no real service and initiates no traffic, so there is nothing to break into and no nuisance to others.

Objectives

  1. 01Build three low-interaction TCP listeners in Python (threads, ports 2222/8022/8081) that log connection attempts and never grant access or connect outbound.
  2. 02Design a normalised MySQL schema for connection events, daily summaries and listener configuration, with a 30-day retention purge.
  3. 03Implement nightly aggregation jobs that compute unique sources, top targeted ports and per-hour connection counts.
  4. 04Develop a Flask dashboard with login, Chart.js visualisations, a filterable event table and CSV export.
  5. 05Generate a one-page weekly PDF summary for the lab in-charge and the lab committee.
  6. 06Document and enforce the ethical operating rules: lab VLAN only, signed permission, honest banner, no credential or payload capture, visible lab notice.

Scope

In scope

  • One honeypot machine on the college lab's own VLAN, with written permission from the lab in-charge.
  • Three TCP decoy listeners on unused high ports (>1024, so no admin rights are needed) with an honest warning banner.
  • Logging of connection metadata only: source IP/port, target port, timestamp, byte count, first 128 bytes of client input — never passwords, files or full payloads.
  • MySQL storage with nightly summaries and 30-day retention.
  • Flask + Chart.js dashboard (login-protected), event table with filters, CSV export, weekly PDF summary.

Out of scope (v1)

  • High-interaction emulation: no fake shells, no fake login prompts, no collection of credentials or malware samples.
  • Any outbound activity, geolocation of attackers, or automated responses (blocking, alerting the firewall).
  • Internet-facing deployment: the honeypot listens on the lab VLAN only.
  • Correlation with firewall or proxy logs (future scope), and multi-machine honeypot farms.

Methodology

Because the team is beginner-level and the slot is a 6-week KTU mini project with at least two reviews and a product demo, we use a simple linear (waterfall) model with weekly guide reviews — each stage finishes before the next begins, and every week produces something to show.

WeekStageActivitiesDeliverable at review
1Study & permissionsLearn socket programming basics; write the permission note and lab notice; finalise which ports and what to logPermission note + requirement list
2Listener moduleBuild and test the three listeners (threads, timeouts, byte cap, banner)Listeners logging to console/CSV
3StorageMySQL schema, insert pipeline, retention purge, nightly aggregation jobsEvents + summaries in MySQL
4DashboardFlask login, Chart.js graphs, filterable table, CSV exportWorking dashboard v1
5Testing & reportsFunctional tests from an authorised lab machine; unit tests for aggregation; weekly PDF generatorTest-case table + PDF report
6Documentation & demoFinal report, PPT, rehearsed product demo for the 3-member panelReport + demo

Testing approach: functional black-box tests executed from an authorised second lab machine — telnet and curl connections to each decoy port with the lab in-charge present — verifying every event row; unit tests (pytest) for the aggregation queries using seeded data; boundary tests (listener port already in use, database down, oversised client input) recorded in a standard test-case table (ID, input, expected, actual, status).

Architecture & tech stack

3 diagrams · 4 technologies · 2 min read

  • Python
  • Flask
  • MySQL
  • Chart.js

CampusHoney has three small tiers arranged so that no component depends on another being up: the listeners buffer locally if MySQL is briefly unavailable, and the dashboard reads whatever is in the database.

  1. Listener tier — one Python process spawns three threading TCP servers on ports 2222 (banner), 8022 (static page) and 8081 (accept-and-close). Each accepted connection is written as a row with metadata only; input from the client is capped at 128 bytes and never interpreted.
  2. Storage tier — MySQL tables for events, daily summaries and listener config; nightly jobs aggregate and a retention job deletes raw events older than 30 days (summaries are kept longer, they contain no per-connection detail).
  3. Presentation tier — a Flask app (login-protected) serves Chart.js charts, a filterable events table, CSV export and the weekly PDF.
flowchart LR
  P(["Any device probing the lab VLAN"]) -->|"TCP connect to 2222 / 8022 / 8081"| L["Listener process (Python threads)"]
  L -->|"metadata row: IPs, ports, time, byte cap"| Q["Local buffer queue"]
  Q --> DB[("MySQL: events, daily summaries")]
  DB -->|"nightly aggregate"| AGG["Aggregation job"]
  DB -->|"purge > 30 days"| RET["Retention job"]
  DB --> FLASK["Flask dashboard (login)"]
  FLASK --> CH["Chart.js views + CSV"]
  FLASK --> PDF["Weekly PDF summary"]
  LC(["Lab in-charge"]) -->|"reads, filters, exports"| FLASK

ER diagram

erDiagram
  LISTENER_CONFIG ||--o{ CONNECTION_EVENT : "logged by"
  CONNECTION_EVENT }o--o| DAILY_SUMMARY : "counted in"
  USER ||--o{ SESSION_LOG : "uses"

  LISTENER_CONFIG {
    int id PK
    int port
    string mode "banner | page | silent"
    boolean enabled
  }
  CONNECTION_EVENT {
    bigint id PK
    int listenerId FK
    string sourceIp
    int sourcePort
    datetime connectedAt
    int bytesRead
    string excerpt "max 128 bytes"
  }
  DAILY_SUMMARY {
    int id PK
    date summaryDate
    int listenerPort
    int totalConnections
    int uniqueSources
    string topSourceIp
  }
  USER {
    int id PK
    string email UK
    string passwordHash
    string role
  }
  SESSION_LOG {
    int id PK
    int userId FK
    datetime loginAt
    string ipAddress
  }

Connection handling flow

flowchart TD
  A["TCP accept on decoy port"] --> B{"Listener mode?"}
  B -->|banner| C["Send honest warning banner, read up to 128 bytes"]
  B -->|page| D["Send static 'under maintenance' page"]
  B -->|silent| E["Accept and close immediately"]
  C --> F["Write event row (metadata only)"]
  D --> F
  E --> F
  F --> G["Close socket — never authenticate, never execute, never connect out"]

The guiding rule of the whole design sits in the last box: the honeypot's response to any connection is a fixed, harmless output, so there is no code path that grants access, runs input, or dials another host.

Modules

3 modules

  1. Module 01

    Decoy Listeners (Member 1)

    One Python process running three threaded TCP servers on ports 2222, 8022 and 8081: the banner listener sends the honest honeypot warning and reads at most 128 bytes; the page listener returns a fixed static HTML page; the silent listener accepts and closes, catching pure port-probes. Handles per-connection timeouts, caps concurrent connections to 20, writes each attempt to a bounded in-memory queue, and stays alive (and logs the fact) if the database is briefly unreachable.

  2. Module 02

    Storage & Aggregation (Member 2)

    The MySQL schema (connection events, daily summaries, listener config, users, session log), the queue-drain writer that batches inserts, the nightly aggregation job that computes per-day totals, unique sources and top ports per listener, and the 30-day retention purge that keeps summaries but deletes raw events. Includes pytest unit tests for every aggregation query against seeded fixtures, so dashboard numbers are provably correct.

  3. Module 03

    Dashboard & Reports (Member 3)

    The Flask application: session login for the lab in-charge, Chart.js charts (connections per hour, per day, top targeted ports, top source IPs), a filterable event table (date range, port, source), CSV export of any current view, and the one-page weekly PDF summary generated with a Python reporting library. Also displays the system status of each listener so a stopped decoy is visible immediately.

Slides

12 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    CampusHoney — Honeypot Telemetry for the College Lab

  2. Slide 2

    What Is a Honeypot?

  3. Slide 3

    Problem Statement

  4. Slide 4

    Proposed System

  5. Slide 5

    Ethics by Design

  6. Slide 6

    Technology Stack

  7. Slide 7

    Architecture

  8. Slide 8

    Data Design

  9. Slide 9

    Modules & Team Split

  10. Slide 10

    Demo & Testing

  11. Slide 11

    Results & Weekly Summary

  12. Slide 12

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 15 answered free · 12 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    What is a honeypot, and what makes CampusHoney "low-interaction"?

    A honeypot is a decoy system with no real users and no legitimate services, so any connection it receives is suspicious by definition. Low-interaction means it emulates only a thin surface — here, a fixed banner, a static page and an accept-and-close socket — instead of a full operating system with exploitable services. Nothing that connects to CampusHoney can log in, run code or use it as a stepping stone, which is exactly the property that makes it safe to run in a college lab.

  2. 02Concept

    Why should every connection to your decoy ports be considered interesting?

    Because nothing legitimate ever talks to those ports: 2222, 8022 and 8081 host no real service, appear in no application's configuration, and aren't advertised anywhere. On a quiet lab VLAN, a connection to a port that offers nothing is either a port scan, a misconfigured device, or a machine running unwanted software — all three are worth recording. That's the core honeypot insight from The Honeynet Project: a system that offers no service generates no background noise, so its signal-to-noise ratio is near perfect.

  3. 03Concept

    How is a honeypot different from an IDS like Snort or Suricata?

    An IDS watches real traffic against a rule base and raises alerts when patterns match, so it needs rules, tuning and generates false positives. A honeypot needs no rules at all — the decoy itself defines the signal, because every connection is an event. They complement each other: the IDS sees conversations about real services, the honeypot sees direct probes of nothing. In our project the honeypot was chosen precisely because a beginner team can deploy it correctly without a tuning effort an IDS would demand.

+12 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

6 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

6 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

286 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

286 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

327 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

327 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

7 sources

  1. The Honeynet Project — non-profit security research organisation (honeypot papers and open-source tools)
  2. NIST Special Publication 800-94 — Guide to Intrusion Detection and Prevention Systems (covers honeypots as detection technology)
  3. NIST Special Publication 800-92 — Guide to Computer Security Log Management
  4. Niels Provos & Thorsten Holz, Virtual Honeypots: From Botnet Tracking to Preventing Attacks, Addison-Wesley
  5. Lance Spitzner, Honeypots: Tracking Hackers, Addison-Wesley
  6. Python 3 — socket library documentation (TCP servers, threads)
  7. Flask — official documentation

Cite this bundle

OnlyProjects. (2026). CampusHoney: A Low-Interaction Honeypot and Telemetry Dashboard for the College Lab Network: B.Tech / B.E. Cyber Security project bundle [Educational resource]. https://onlyprojects.online/projects/btech-cyber-campus-honeypot-telemetry-lab

Future scope

1 min read

  • Correlate with college firewall/proxy logs (with IT permission) to distinguish external probes from internal misbehaviour — a natural Project Phase-I extension.
  • Notification rules: email or WhatsApp-style alert to the lab in-charge when a single source crosses a threshold in an hour.
  • More listener modes: a fake FTP greeting, a printer-status port, or an SMB handshake teaser — each new decoy teaches a different protocol.
  • Comparative study: run decoys in two labs and compare probe patterns by time of day and semester week.
  • Retention analytics: chart weekly totals across a semester to show the lab committee whether probing is rising.
  • A small shared library so other departments can deploy their own CampusHoney instance in an afternoon.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.

B.Tech / B.E.Code included

Aerospace / Aeronautical

Low-Speed Open-Circuit Wind Tunnel with Force Balance for Aerofoil Lift-Drag Measurement

Build a subsonic test tunnel on a student budget, then trace lift and drag on a 3D-printed NACA 0012 against theory

  • C / Arduino Uno (industry-standard extra) — HX711 load-cell and serial logging firmware
  • Python (NumPy, Matplotlib) — calibration, force coefficients and plots
  • MATLAB / Scilab — thin-airfoil theory overlay and regression
  • +4

intermediate14 wk4 students