Jim Lippard's Security (and Other) Software
These are some software tools, all in Perl, which I've developed for
my own use. Others are welcome to use them for noncommercial use,
with no warranty. All were originally written for OpenBSD but most
also work on Linux and macOS, with the exception of the Explore game
at the end which was originally written for Multics in Multics Basic.
In the absence of other license information within each package,
assume that each is copyrighted by Jim Lippard, with all rights
reserved, with license granted for noncommercial use. Assume
a BSD-3 license.
Also see Github: https://github.com/lippard661,
which has more extensive documentation for each repo but not
all of the tools below.
Legion of Dynamic Discord Signing Keys
Security Tools
- accttools.tgz: Process accounting tools (written for *BSD) for generating
a baseline and auditing for divergences from the baseline. Current version is a beta (really more of
a proof-of-concept), 0.5, 2012-12-23.
- add_host-1.3.tgz: add_host/remove_host, Perl script for adding and removing IPs from
files used for firewalling (and from pf tables). Current version is 1.3, 2023-01-29.
- arpwatch-3.6 OpenBSD package. This is Lawrence Livermore Labs' arpwatch, patched for OpenBSD to use
unveil and _arpwatch user. The patches are approximately equivalent to the
standard OpenBSD package, which uses arpwatch-2.1a15 and does not use unveil.
(I attempted to use pledge as well, but the restricted mode of pledge
doesn't allow the bpf-related system calls, such as BIOCSETF.)
- distribute-1.7a.tgz and
install-1.7.tgz, perl scripts to
distribute files to multiple hosts and install them. distribute includes
gendoas.pl to generate per-host doas.conf files from a template and a sample
distribute.conf file; install includes pkg_info.pl, a minimal implementation
of OpenBSD's pkg_info to go with the built-in minimal pkg_add and pkg_delete
functionality in install. While intended primarily for OpenBSD hosts that
use immutable file systems (integrated with syslock, also available below),
but also works with Linux (using the signify-openbsd package) and macOS
(using signify from Homebrew). Current versions: 1.7 2026-08-07 (distribute)
with gendoas.pl 1.5 2026-07-01; 1.7 2026-09-16 (install) with 2026-07-01 pkg_info.pl.
OpenBSD packages (which can be installed with install.pl on Linux and macOS)
for distribute-1.7a.tgz and
install-1.7.tgz available here or on Github.
- faild.pl: Monitors an Internet connection for uptime, fails over to an
alternate connection if one is available. Current version is 1.32, 2026-08-29. Also has OpenBSD rc.d script faild.
- portcheck.pl: Updates OpenBSD ports tree. Current version 1.5, 2025-01-25.
- reportnew-1.38.tgz: Monitors logs for new entries and generates email reports
for entries matching certain criteria. Works for syslog, cyclog, and multilog formats, for BSD (and macOS pre-Tahoe) and Linux process accounting logs, and for Linux journal logs. Current
version is 1.38, 2026-08-24. Available here or on Github as an OpenBSD-style package.
- rsync-client.pl: Managed synchronization of files between systems
via an unprivileged user. Current version is 2026-08-13. Packaged together with some other rsync tools as rsync-tools-20260813.tgz. The latter is available here or on Github as an OpenBSD-style package.
- sha2_create.pl/sha2_compare.pl/sha3_create.pl/sha3_compare.pl: Creates databases of SHA2/SHA3 digests and compares against them. Also supports SHA1, but that is deprecated. Intended for setting baselines for use in forensic
analysis, similar to the Sun Solaris Fingerprint Database, and for finding and
removing unused files after an upgrade -- that use case now obsoleted by OpenBSD's sysclean.
Old databases of SHA2/SHA3 digests for OpenBSD 3.8 through 6.9 are available upon request.
- Signify-1.2a.tgz: Signify.pm, perl module wrapper for OpenBSD signify. Current version is 1.2a, 2026-05-19. Available here or on Github as an OpenBSD-style package. Works on Linux with signify-openbsd package and on
macOS with signify-osx (via Homebrew).
- sigtree-1.25.tgz: Tripwire/Samhain-like program, monitors file
system integrity. Written for *BSD, macOS, and Linux. Current version is 1.25, 2026-07-01. Available here or on Github as an OpenBSD-style package. v1.19c and later allow child forks with Parallel::ForkManager and uses Signify.pm.
- syslock/sysunlock: Sets system files immutable, so that they cannot be changed by root unless the system is brought into single-user mode. Written for OpenBSD, but will work for *BSD, Linux, and macOS. (May require changes
to the locations of commands (e.g. chflags) for other BSD). Current version: 1.19a, 28 July 2026. Available here or on Github as an OpenBSD-style package.
Game and Language
- MBasic-1.1.tgz: A perl implementation of
a Multics Basic interpreter, built for resurrecting my Explore basic game
from 1980 on non-Multics systems, but also will run most other Multics
Basic programs. This is a subset of Multics Basic, with the main omission
being vfile_ I/O support. A Multics Basic manual may be found online
at https://web.archive.org/web/20060809151752/http://bitsavers.org/pdf/honeywell/multics/AM82-01_basic_Feb81.pdf, with errata at https://dps8m.gitlab.io/sb/MR12.8/documentation/info_segments/errata.am82.info.html. Where the actual Multics Basic and the manual diverged in a few places, this follows how it was implemented on Multics (e.g., mid$, left$, and right$ are supported but undocumented). Release 1.1: 19 Sep 2026 with security and bug fixes. Release 1.0: 15 Sep 2026.
OpenBSD signed package at p5-MBasic-1.1.tgz.
- Explore-1.1.tgz: A perl implementation
of extensions to the above Multics Basic interpretar to support the PL/I
helpers of the Explore 5.3 game from 1980 in Multics Basic, along with
all of the basic source code and databases to run the game on macOS,
*BSD, or Linux. 1.1: 19 Sep 2026. 1.0: 15 Sep 2026. OpenBSD signed package at p5-Explore.1.1.tgz.