ECE student at Vanderbilt University building production-grade security infrastructure. Automated threat detection and response pipeline processing live honeypot attacks, with defense-in-depth across 4 VLANs and 38+ containerized services. Publishing a public AI-enriched threat intelligence feed with STIX 2.1 IOCs from live attacks.
Electrical and Computer Engineering at Vanderbilt University, Class of 2027. I design, deploy, and operate production security infrastructure that processes live internet threats around the clock.
Seeking internships in security engineering, infrastructure, and networking. Currently studying for CompTIA Network+, CCNA, and Security+.
A bare-metal Proxmox hypervisor running 4 VMs and 10 LXC containers (38 Docker containers) with SR-IOV networking, multi-VLAN segmentation, and a full security stack - processing live internet attacks 24/7.
The difference between installing software and building systems. These are components I designed, wrote, and debugged from scratch.
Custom alert enrichment workflow: Wazuh fires on level 10+ events → N8N enriches with GeoIP → CrowdSec bans for 24h → OPNsense pf table blocks at the firewall. Dual-blocking with automatic expiry sync.
Local LLM (GPT-OSS 20B via llama.cpp) generates realistic shell responses for unknown commands. Attackers see fake DB credentials, bash history, and system info instead of "command not found."
Hand-written rules for Cowrie (100050-100061), Authentik SSO (100100-100108), and Caddy access logs (100200-100204). Static field mapping, JSON decoder integration, evaluation ordering.
Automated 8AM briefing via N8N cron: queries Wazuh API for alert counts, top attacker IPs, firewall state table, and CrowdSec ban summary. Posts to Discord with severity-colored embeds.
Full IPv6 DNS interception mirroring the IPv4 posture: pf rdr inet6 on all interfaces forces port 53 → Technitium. KEA DHCPv6 (assisted mode, O-flag) + radvd RDNSS advertise Technitium's ULA IPv6 address. All encrypted DNS transports blocked: DoT (853 TCP), DoQ (8853 UDP), and DoH to 33 known providers on port 443 - Cloudflare and Quad9 explicitly allowed. Persistent patch script repairs kea-dhcp6.conf and radvd.conf after every OPNsense config regeneration.
Fully local, offline voice pipeline across 3 ESPHome ESP32-S3 mic satellites. Parakeet TDT 0.6B STT via Wyoming protocol with OpenVINO CPU EP (~160ms inference). FastAPI intent router: sub-50ms for simple commands using fuzzy semantic scoring with gap-ratio disambiguation; LLM compound routing for multi-entity commands. Piper TTS responses. Discord bridge for cross-channel control. All inference on-premises - no cloud STT or TTS.
AI-enriched threat intelligence API (v1.0.0-beta) publishing IOCs from 129K+ live honeypot sessions. Attack data classified by local LLM, mapped to MITRE ATT&CK, served as streaming STIX 2.1 bundles or via a spec-compliant TAXII 2.1 endpoint with cursor pagination. No API key required.
Custom systemd service monitoring Docker container exits. Posts Discord embeds on non-zero exit codes with 10-minute per-container cooldown to prevent alert storms. Ignores graceful stops (SIGTERM).
Scheduled Greenbone/OpenVAS scans run MWF at 3AM via cron. Auto-starts the CT, runs full network scans across all VLANs, and shuts down after completion to conserve resources. Results feed into Wazuh for correlation with real-time alerts.
A fully automated SOAR pipeline that detects attacks on the honeypot, enriches alerts with threat intelligence, and blocks malicious IPs at the firewall - all within 30 seconds, with no human intervention required.
A medium-interaction SSH honeypot in an isolated DMZ (VLAN 99) with public SSH (WAN port 22) redirected via OPNsense NAT. Captures credential stuffing, shell commands, and malware drops from real attackers.
SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2 - looks like a vulnerable Debian 7 server26 custom rules across 3 rule files process JSON logs from Cowrie, Authentik SSO, and Caddy reverse proxy. The native JSON decoder extracts fields; rules use static field tags and ordered evaluation for precise matching.
Three custom N8N workflows process Wazuh alerts in real time, enrich them with threat intelligence, and execute automated response actions.
Attack data from the SOAR pipeline is published as a free, public threat intelligence API. Sessions are classified by a local LLM and mapped to MITRE ATT&CK techniques.
added_after incremental sync, X-TAXII-Date-Added-Last header
CrowdSec and OPNsense pf tables enforce bans at the network perimeter. Host-level blocking (iptables, fail2ban) only protects one service - a firewall rule blocks the attacker from reaching anything, including services that don't have their own IPS.
CrowdSec bans expire automatically (24h TTL). OPNsense alias config persists across reboots but pf tables don't auto-populate from aliases. The 2-hour sync cron reconciles both - live pf table for immediate blocking, alias config for reboot persistence.
Standard Cowrie returns "command not found" for ~80% of attacker commands, which is a dead giveaway. The LLM generates plausible Ubuntu 20.04 server output (fake DB credentials, bash history, crontabs), keeping attackers engaged longer and capturing more TTPs. Uses GPT-OSS 20B via llama.cpp locally - no API costs, no data exfiltration.
Default Wazuh rules don't understand Cowrie's JSON schema or Authentik's structured logs. Custom rules with decoded_as: json and field-level matching extract attacker IPs, usernames, and commands directly from the JSON, enabling precise alerting and correlation that generic syslog rules can't achieve.
A layered security stack with 7 Wazuh agents across 4 VLANs, automated threat response, and continuous vulnerability assessment.
Stateful firewall with Suricata IPS (ET-Pro rules, netmap mode on WAN), multi-VLAN routing, NAT, and DNS interception. Acts as the network's root of trust.
Centralized SIEM with 7 active agents on Proxmox, Docker, Caddy, OPNsense, Cowrie, Zenbook, and workstation. 26 custom rules, FIM, and VirusTotal integration.
SSH honeypot in DMZ VLAN 99 with AI-generated responses via local llama.cpp LLM. Captures credentials, commands, and malware from real attackers daily.
Collaborative behavioral IPS. Receives ban decisions from N8N SOAR pipeline and enforces at the OPNsense firewall. 24h TTL with automatic expiry.
OpenVAS in a Kali LXC with RAM-constrained sequential scanning (max_hosts=1, max_checks=3). Automated 3x/week via cron - Monday (core infra), Wednesday (Docker), Friday (all LXCs). Results posted to Discord. CT auto-starts for scan, stops after.
Domain-level forward auth across 23 services. Cloudflare Access gates external apps with Google MFA; Authentik provides OIDC SSO for all internal services via Caddy.
Multi-layer identity and access management with zero-trust principles. No inbound firewall ports - all external access via Cloudflare Tunnels.
Enterprise-grade networking with SR-IOV, multi-VLAN segmentation, IPv6 dual-stack, hardened DNS, and zero-exposure external access.
16 Virtual Functions on a ConnectX-5 dual-port 25GbE NIC, each assigned directly to VMs and containers for near-native network I/O with hardware-level traffic isolation.
Full IPv6 deployment with ULA addressing for VLANs and a complete DNS enforcement posture that mirrors IPv4 - both transports equally hardened.
fdc8:7f3a:1e2b::/48; SLAAC via radvd (M=0, O=1 assisted mode) with RDNSS advertising Technitium's IPv6 addressrdr inet6 intercepts all IPv6 port 53 traffic on every VLAN → Technitium fdc8:7f3a:1e2b:1::2Production (default), IoT (VLAN 30), Guest (VLAN 40), DMZ (VLAN 99). Inter-VLAN routing only through OPNsense with explicit per-service allow rules. Default-deny between all zones.
Self-hosted recursive DNS with Cloudflare and Quad9 DoH upstreams. OPNsense intercepts ALL DNS (port 53) on both IPv4 and IPv6 via pf rdr rules - clients cannot bypass it. DoT (853), DoQ (8853), and DoH to 33 known providers explicitly blocked. mDNS reflected across VLANs via avahi for AirPlay and HomeKit discovery.
Outbound-only tunnels replace port forwarding. Caddy reverse proxy with ZeroSSL wildcard cert (*.101904.xyz) routes to all internal services. Zero inbound firewall exposure.
Site-to-site and remote-access VPN terminated directly on OPNsense. Firewall rules enforce the same VLAN segmentation and default-deny posture for VPN clients as local traffic - no split-tunnel bypass.
Managed access points with SSID-to-VLAN mapping, client isolation, and centralized controller for configuration and monitoring.
Infrastructure-as-code, workflow orchestration, automated monitoring, and Git-backed configuration management.
Configuration management playbooks for LXC containers and host-level settings. Package installation, service configuration, and security baselines - all version-controlled.
3 active SOAR workflows: Alert Enrichment + Auto-Block, CrowdSec Dual-Block, and Daily Security Digest. Webhook-triggered by Wazuh integratord for real-time response.
Time-series monitoring with Prometheus scraping node-exporter (host metrics) and Exportarr (Sonarr/Radarr/Prowlarr). Grafana dashboards for resource utilization and service health.
21 monitors covering every service endpoint. HTTP/HTTPS checks, TCP port probes, and DNS resolution tests with alerting on degradation.
Private GitHub repo backing up all critical configs: Caddyfile, Wazuh rules/decoders, OPNsense config.xml, compose files, Cowrie plugins. Weekly automated push via cron.
PostgreSQL (Authentik, Wiki.js), MariaDB (media apps), Redis (caching), SQLite (N8N, Uptime Kuma). Each workload uses the appropriate data store.
Bare-metal Proxmox VE hypervisor with PCIe passthrough, SR-IOV networking, GPU acceleration, and ordered boot sequencing.
Intel i9-13900KF bare-metal running 4 QEMU/KVM VMs and 10 LXC containers with UEFI boot, PCIe passthrough, and deterministic startup ordering.
onboot: 1 - full lab recovers unattended after power lossNetwork-attached storage VM with parity-protected array. NFS/SMB exports mounted into Docker LXC for media and compute workloads. SATA controller passed through via PCIe.
Privileged LXC with 16 cores, 24GB RAM, GPU passthrough, and Unraid NFS mounts. Runs 38 containers including all media, monitoring, SSO, threat intelligence, and automation stacks.
Data Processing Unit for hardware-accelerated networking experimentation. SmartNIC capabilities with OVS offload and isolated management plane. Currently in standalone testing - integration planned alongside SR-IOV.
Dual-port 25GbE NIC with 16 SR-IOV Virtual Functions. Each VF assigned to a VM/LXC for line-rate networking without software bridge overhead.
Smart home automation with a fully local AI voice pipeline: 3 ESPHome ESP32-S3 satellites → wyoming-parakeet STT (OpenVINO, ~160ms) → custom intent router → HA actions in <50ms. Custom AWS Lambda skill for Alexa hybrid cloud/edge fallback. No cloud dependency for voice.
IT Tools, CyberChef, Stirling PDF, Wiki.js, Adminer, Notifiarr - operational tools for day-to-day administration and incident investigation.