Advertisement
Open Source Projects by Phil Schwartz

Articles

Python Log Aggregation with Streaming Database StorageBuilding a Python-Based Log Aggregator That Streams Entries to a Central Database requires more than reading files and inserting rows. A useful system must…
Building a Python DNS cache comparison tool for poisoning risksA DNS cache comparison tool can help administrators spot suspicious answers before they become an operational incident. Rather than trusting one recursive…
Designing DenyHosts’ data model for attack sourcesWhen I designed DenyHosts, I wanted it to solve a focused problem: identify repeated SSH attacks and prevent the same sources from continuing to hammer a Linux…
Reliable Python CI on a Bare-Metal Build ServerContinuous integration does not require a cloud platform or a large container orchestration system. For many Python projects, a modest physical machine is…
A Python GUI for tracking open-source project issuesMaintaining an open-source project means keeping several kinds of information in view at once: bug reports, feature requests, release notes, security concerns,…
Building a Python-Based Network Traffic VisualizerA network traffic visualizer turns raw packet activity into a readable picture of what is happening across a host, server, or local network. Instead of…
Why I Built a Python Helper for Lets Encrypt Renewal HooksManaging TLS certificates is easy to underestimate. A certificate may renew successfully, yet an application can continue serving the old certificate until its…
Why I chose Python over Go for server security utilitiesWhen I began building server security utilities, I wanted tools that could be installed quickly, understood by system administrators, and adapted to the…
Keeping DenyHosts Configuration Stable Across ReleasesDenyHosts sits between an exposed SSH service and the systems responsible for protecting it. Its job is operationally simple—observe failed login attempts,…
Designing a DenyHosts caching layer for high-traffic serversDenyHosts protects Linux systems by identifying repeated SSH authentication failures and adding hostile addresses to a deny list. Its job is intentionally…