Building a monitored host and watching what it caught
Ubuntu lab environment, Sept–Oct 2025I built a small multi-subnet lab on Ubuntu and put a firewall and an intrusion detection sensor on the same host, so I could set a policy and then watch what the sensor made of the traffic that policy allowed through.
UFW started from default-deny inbound, then opened only what the lab actually needed: remote access, web traffic, one internal service restricted to a single trusted host, and an explicit block on a host I wanted shut out entirely. Adding a second interface and enabling forwarding between the subnets turned the box into a routing firewall rather than just a protected endpoint.
For detection I ran Snort against a custom ruleset alongside the distribution signatures, and configured Suricata on the same host to compare how the two engines behaved. Writing my own rules for ICMP, HTTP requests and SYN-flagged scans is what turns signature syntax from something you read about into something you can debug when a badly scoped rule floods your console.
What the sensor mostly caught was not attacks. Repeating service-discovery broadcasts, and a session using a port pairing that no longer makes sense on a modern network. Low-priority, easily explained, and exactly the reason triage matters more than alert volume. Learning to clear that kind of traffic quickly is what keeps a real alert visible.
Things breaking is where the useful part happens: a packet filter expression that wouldn't parse, a log Snort refused to replay because of its own format, UFW rejecting a protocol until the rule is written the way it expects. That is the loop I want to be in daily. Set a policy, watch what the sensors say about it, then cut the noise down so the alerts that matter stay visible.
- Stack
- Ubuntu, UFW, Snort, Suricata
- Focus
- Firewall policy, custom IDS rules, alert triage, inter-subnet forwarding
- Context
- Self-built lab, extending coursework