{
 "schema": "regnis-nologs-report/1",
 "server": "exit-nl1",
 "date": "2026-11-11",
 "generated_at": "2026-11-11T05:59:53Z",
 "signing_key": "SHA256:l+jrZ29VSlIiZJD0szQtnfQW0nAm+R14H3UMbtTCAYY",
 "script": {
  "name": "verify-exit-node.sh",
  "sha256": "f1e23389c3c4c14136383aed403133d848ccc761ab41a6cb46c5bbaaeb8bb641"
 },
 "system": {
  "os": "Ubuntu 24.04.5 LTS",
  "kernel": "6.8.0-149-generic",
  "booted_at": "2026-11-10T16:01:33Z",
  "uptime_seconds": 50300
 },
 "packages": {
  "wireguard-tools": "1.0.20210914-1ubuntu4",
  "unbound": "1.19.2-1ubuntu3.12",
  "openssh-server": "1:9.6p1-3ubuntu13.20"
 },
 "summary": {
  "total": 55,
  "passed": 55,
  "failed": 0,
  "warnings": 0,
  "result": "pass"
 },
 "checks": [
  {
   "id": "journald-disk",
   "status": "pass",
   "detail": "no journal files in /var/log/journal"
  },
  {
   "id": "journald-config",
   "status": "pass",
   "detail": "Storage=volatile"
  },
  {
   "id": "syslog-daemon",
   "status": "pass",
   "detail": "no syslog daemon running"
  },
  {
   "id": "tmpfs:/var/log",
   "status": "pass",
   "detail": "on tmpfs"
  },
  {
   "id": "tmpfs:/tmp",
   "status": "pass",
   "detail": "on tmpfs"
  },
  {
   "id": "tmpfs:/var/tmp",
   "status": "pass",
   "detail": "on tmpfs"
  },
  {
   "id": "swap",
   "status": "pass",
   "detail": "no unencrypted swap on disk"
  },
  {
   "id": "core-dumps",
   "status": "pass",
   "detail": "core dumps discarded"
  },
  {
   "id": "wg-config-peers",
   "status": "pass",
   "detail": "no [Peer] in wg0.conf"
  },
  {
   "id": "wg-saveconfig",
   "status": "pass",
   "detail": "SaveConfig off"
  },
  {
   "id": "wg-leftovers",
   "status": "pass",
   "detail": "no peer lists or client keys in /etc/wireguard"
  },
  {
   "id": "wg-peers-ram",
   "status": "pass",
   "detail": "peer list on tmpfs"
  },
  {
   "id": "wg-peer-script",
   "status": "pass",
   "detail": "regnis-wg-peer stores under /run"
  },
  {
   "id": "wg-scrub-timer",
   "status": "pass",
   "detail": "metadata scrub timer active"
  },
  {
   "id": "wg-up",
   "status": "pass",
   "detail": "wg0 is up"
  },
  {
   "id": "wg-stale-metadata",
   "status": "pass",
   "detail": "no idle peer keeps endpoint, handshake or counters"
  },
  {
   "id": "wg-keys-on-disk",
   "status": "pass",
   "detail": "no active peer key found on disk"
  },
  {
   "id": "wg-dyndbg",
   "status": "pass",
   "detail": "WireGuard debug logging off"
  },
  {
   "id": "unbound:log-queries",
   "status": "pass",
   "detail": "no"
  },
  {
   "id": "unbound:log-replies",
   "status": "pass",
   "detail": "no"
  },
  {
   "id": "unbound:log-servfail",
   "status": "pass",
   "detail": "no"
  },
  {
   "id": "unbound:log-local-actions",
   "status": "pass",
   "detail": "no"
  },
  {
   "id": "unbound:use-syslog",
   "status": "pass",
   "detail": "no"
  },
  {
   "id": "unbound:extended-statistics",
   "status": "pass",
   "detail": "no"
  },
  {
   "id": "unbound:prefetch",
   "status": "pass",
   "detail": "no"
  },
  {
   "id": "unbound:verbosity",
   "status": "pass",
   "detail": "0"
  },
  {
   "id": "unbound:stats-interval",
   "status": "pass",
   "detail": "0"
  },
  {
   "id": "unbound:logfile",
   "status": "pass",
   "detail": "none"
  },
  {
   "id": "unbound:cache-max-ttl",
   "status": "pass",
   "detail": "300 s"
  },
  {
   "id": "unbound:cache-neg-ttl",
   "status": "pass",
   "detail": "60 s"
  },
  {
   "id": "unbound-up",
   "status": "pass",
   "detail": "unbound running"
  },
  {
   "id": "unbound-restart-timer",
   "status": "pass",
   "detail": "hourly restart clears expired names from memory"
  },
  {
   "id": "filter-addresses",
   "status": "pass",
   "detail": "filter addresses 100.64.0.1-63 mapped"
  },
  {
   "id": "filter-unbound-nologs",
   "status": "pass",
   "detail": "filter Unbound: no query, reply or action logs, cache <= 300 s"
  },
  {
   "id": "filter-zone-content",
   "status": "pass",
   "detail": "blocklists contain list domains only"
  },
  {
   "id": "filter-no-other-data",
   "status": "pass",
   "detail": "blocklist directories hold list files only"
  },
  {
   "id": "filter-update-unit",
   "status": "pass",
   "detail": "list refresh unprivileged, no log file"
  },
  {
   "id": "filter-update-timer",
   "status": "pass",
   "detail": "daily list refresh timer active"
  },
  {
   "id": "filter-active",
   "status": "pass",
   "detail": "filter Unbound serving"
  },
  {
   "id": "iptables-log",
   "status": "pass",
   "detail": "no logging targets in iptables"
  },
  {
   "id": "nftables-log",
   "status": "pass",
   "detail": "no logging statements in nftables"
  },
  {
   "id": "conntrack-acct",
   "status": "pass",
   "detail": "per-connection byte accounting off"
  },
  {
   "id": "conntrack-timestamp",
   "status": "pass",
   "detail": "connection timestamps off"
  },
  {
   "id": "conntrack-tcp",
   "status": "pass",
   "detail": "established TCP kept at most 7440 s"
  },
  {
   "id": "conntrack-udp",
   "status": "pass",
   "detail": "UDP streams kept at most 120 s"
  },
  {
   "id": "nf-log-netns",
   "status": "pass",
   "detail": "netfilter logging limited to init namespace"
  },
  {
   "id": "ip-forward",
   "status": "pass",
   "detail": "forwarding on"
  },
  {
   "id": "tunnel-private-nets",
   "status": "pass",
   "detail": "tunnel cannot reach private networks"
  },
  {
   "id": "tunnel-client-isolation",
   "status": "pass",
   "detail": "tunnel clients cannot reach each other"
  },
  {
   "id": "capture-tools",
   "status": "pass",
   "detail": "no flow, capture or audit daemon running"
  },
  {
   "id": "monitoring-agents",
   "status": "pass",
   "detail": "no monitoring agent running"
  },
  {
   "id": "fail2ban",
   "status": "pass",
   "detail": "fail2ban not running"
  },
  {
   "id": "hoster-agent",
   "status": "pass",
   "detail": "no hypervisor guest agent"
  },
  {
   "id": "dedicated-host",
   "status": "pass",
   "detail": "no container runtime"
  },
  {
   "id": "sshd-loglevel",
   "status": "pass",
   "detail": "LogLevel SILENT"
  }
 ]
}
