← Back to list

Building an Isolated Honeypot: Multi-Layer Security Architecture

I built an isolated Raspberry Pi honeypot running Cowrie and Dionaea to collect real-world attack data. The goal was simple: deploy…

Raynard Waits · 2026-01-14 01:03 · 54 claps · 2.8 min read
#docker #raspberry-pi #cowrie #honeypot #soc-home-lab
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud 🔒 · Cybersecurity 📟 · Gadgets & IoT 🏛️ · Architecture 🏃 · Running & Endurance

Building an Isolated Honeypot: Multi-Layer Security Architecture

I built an isolated Raspberry Pi honeypot running Cowrie and Dionaea to collect real-world attack data. The goal was simple: deploy honeypots that can be compromised without risking my internal network. This required a defense-in-depth architecture with multiple security layers working together.

This builds on my domain controller setup and dual-SIEM integration. The honeypot feeds attack data to the same infrastructure, giving me real threat intelligence to investigate.

Network Isolation:

First step was creating a dedicated Honeypot VLAN in UniFi. I enabled “Allow Internet Access” but left “Isolate Network” disabled. That isolation setting seems convenient, but it creates firewall rules you can’t fully control. I wanted explicit firewall rules I could test and verify.

The UniFi firewall got one critical rule: Block-Honeypot-to-RFC1918. This drops all traffic from the Honeypot network to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Even if an attacker compromises the honeypot, they can’t reach my internal networks.

SSH Hardening: The Cloud-Init Discovery

Before deploying the honeypots, I needed to move SSH from port 22 to port 2200 (Cowrie needs 22). I edited /etc/ssh/sshd_config, set Port 2200, disabled password authentication and enabled public key authentication and restarted the SSH service.

SSH still allowed password authentication…

Here’s what I discovered. Raspberry Pi OS uses cloud-init, which has an override file at /etc/ssh/sshd_config.d/50-cloud-init.conf. This file was setting PasswordAuthentication yes and ignoring my port change. The override file takes precedence over the main config.

The fix: edit the cloud-init override file directly, not just the main config. I disabled password authentication and set up SSH key-only access. This time it stuck.

sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf
# Set PasswordAuthentication no
sudo systemctl restart sshd

This is critical for Raspberry Pi OS users. Most SSH hardening guides don’t mention the cloud-init override, so your changes get silently ignored.

Deploying Cowrie and Dionaea

I followed this guide (https://gist.github.com/n0xa/b179848093a4e346f7bd6b8ab61e2909) to deploy both honeypots via Docker on the Pi. Cowrie simulates SSH and Telnet, while Dionaea mimics multiple vulnerable services (FTP, SMB, MySQL, etc.).

# Deploy Cowrie
mkdir ~/cowrie && cd ~/cowrie
sudo wget "https://mhn.h-i-r.net/api/script/?text=true&script_id=3" -O deploy.sh
sudo bash deploy.sh https://mhn.h-i-r.net AyBab7u
sudo docker-compose up -d
# Deploy Dionaea  
mkdir ~/dionaea && cd ~/dionaea
sudo wget "https://mhn.h-i-r.net/api/script/?text=true&script_id=4" -O deploy.sh
sudo bash deploy.sh https://mhn.h-i-r.net AyBab7u
sudo docker-compose up -d

Both containers started successfully and began reporting to the HPFeeds server at mhn.h-i-r.net.

Initial Testing

With SSH moved to port 2200, Cowrie claimed port 22. I tested from my main network (VLAN1) by connecting to the Pi on port 22. Instead of my real SSH, I got Cowrie’s fake shell with old SSH key algorithms.

ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.X.X -p 22

The fake shell showed fabricated processes, fake users, and a completely simulated Debian system. Perfect.

Next up: testing if this isolation actually works when a honeypot is compromised.

This is part of my hands-on SOC testing series where I build detection infrastructure and test real-world attack techniques.


메타데이터
post_id
0b7906a6ed10
slug
building-an-isolated-honeypot-multi-layer-security-architecture-0b7906a6ed10
url
https://medium.com/@raynardwaits/building-an-isolated-honeypot-multi-layer-security-architecture-0b7906a6ed10
canonical_url
https://medium.com/@raynardwaits/building-an-isolated-honeypot-multi-layer-security-architecture-0b7906a6ed10
author_url
https://medium.com/@raynardwaits
status
ok
fetched_at
2026-07-13 10:22:01