Commit graph

146 commits

Author SHA1 Message Date
Daniel Micay
029ec73c3c networkd: set PreferredLifetime=0 for anycast IPs
This avoids these being used for outbound connections.
2025-11-21 11:31:48 -05:00
Daniel Micay
a0ba527f9d remove gra1.grapheneos.org and las0.grapheneos.org 2025-11-21 11:31:48 -05:00
Daniel Micay
1fad7ca6cd add fra.grapheneos.org and hio.grapheneos.org servers
These were previously 2 of our 4 OVH ns1.grapheneos.org instances. Our
ns1.grapheneos.network network has been entirely moved to Vultr for BGP
support so we're reusing these 2 instances as replacements for 2 of the
existing grapheneos.org servers.
2025-11-21 11:31:48 -05:00
Daniel Micay
2682ce9439 pacreport: add syslog-ng configuration sub-directory 2025-11-21 11:31:48 -05:00
Daniel Micay
209b1b5def add lon.ns1.grapheneos.org 2025-11-21 11:31:48 -05:00
Daniel Micay
9d9dbb906b switch to geolocation-based pkgbuild.com mirror 2025-11-21 11:31:48 -05:00
Daniel Micay
1883a539d0 nftables: include our own anycast addresses 2025-11-21 11:31:48 -05:00
Daniel Micay
d2dcec7e02 ns2: add IPv4 address from our anycast /24 2025-11-21 11:31:48 -05:00
Daniel Micay
0dfb05852f networkd: add comments for anycast addresses 2025-11-21 11:31:48 -05:00
Daniel Micay
bb86e16179 networkd: remove unnecessary [Address] sections 2025-11-21 11:31:48 -05:00
Daniel Micay
5adb170069 add mia.ns2.grapheneos.org server 2025-11-21 11:31:48 -05:00
Daniel Micay
649e2b53c4 replace remaining OVH ns1 servers with Vultr 2025-11-21 11:31:48 -05:00
Daniel Micay
066fdd0d09 add IPv6 address from our /48 announced from BuyVM 2025-11-21 11:31:48 -05:00
Daniel Micay
68ac3a8726 add bird to ns2.grapheneos.org to use our IP space 2025-11-21 11:31:48 -05:00
Daniel Micay
fe999c541a add IPv6 address from our /48 announced from Vultr 2025-11-21 11:31:48 -05:00
Daniel Micay
5b82f11b25 nftables: ns1: add fq priority configuration 2025-11-21 11:31:48 -05:00
Daniel Micay
5256f2e4a4 replace 1.ns1.grapheneos.org server with sea.ns1.grapheneos.org 2025-11-21 11:31:48 -05:00
Daniel Micay
f95fa51821 add lax.ns1.grapheneos.org server 2025-11-21 11:31:48 -05:00
Daniel Micay
951662aeca replace 0.ns1.grapheneos.org server with nyc.ns1.grapheneos.org 2025-11-21 11:31:48 -05:00
Daniel Micay
4aba8d355a add mia.ns1.grapheneos.org server 2025-11-21 11:31:48 -05:00
Daniel Micay
b80f10f396 syslog-ng: add receive timestamps to nginx logs
Since nginx only uses 1 second precision for the error logs and syslog
timestamps, we can use receive time on the syslog-ng side. We can switch
to source time once nginx adds RFC 5424 support which is currently in an
open pull request but will likely require changes to add a configuration
option for it. Our approach to working around this within nginx doesn't
work perfectly since $msec generates the time on-demand separately from
the timestamp used by $time_iso8601.
2025-11-21 11:31:48 -05:00
Daniel Micay
a45b8ada72 syslog-ng: split nginx configuration into conf.d 2025-11-21 11:31:48 -05:00
Daniel Micay
7a5535973b syslog-ng: raise frac-digits to 3 2025-11-21 11:31:48 -05:00
Daniel Micay
a511902b90 add syslog-ng include directory 2025-11-21 11:31:48 -05:00
Daniel Micay
ebd44c9253 grapheneos.org: switch to location-based server names 2025-11-21 11:31:48 -05:00
Daniel Micay
e3bcb9e87f ns2.grapheneos.org: switch to location-based server names 2025-11-21 11:31:48 -05:00
Daniel Micay
93e1d3866b releases.grapheneos.org: switch to location-based server names 2025-11-21 11:31:48 -05:00
Daniel Micay
89686dc1a0 nftables: style fix 2025-11-21 03:46:12 -05:00
Daniel Micay
6c8ddbe012 drop unnecessary inclusion of / in fstab 2025-11-21 03:46:12 -05:00
Daniel Micay
1427e0c7c4 add mkinitcpio.conf for servers with mdraid 2025-11-21 03:46:12 -05:00
Daniel Micay
50729cadb9 split metal and mdraid server types 2025-11-21 03:46:07 -05:00
Daniel Micay
76b88bbffa update mkinitcpio.conf 2025-11-06 11:59:13 -05:00
Daniel Micay
c9b84fdb79 logrotate: use better size+time rotation approach 2025-11-06 11:58:40 -05:00
Daniel Micay
5f2e4a45c3 logrotate: preserve existing file owner/group/mode
wmtp and btmp are reliably created by systemd at boot with the proper
permissions which also means missingok can be dropped.
2025-11-05 23:45:10 -05:00
Daniel Micay
eeb00c5bda logrotate: default to delayed compression with opt-in to no delay 2025-11-05 23:32:48 -05:00
Daniel Micay
a0563b249b ssh: use AcceptEnv for COLORTERM 2025-11-05 20:23:39 -05:00
Daniel Micay
8af52e3498 journald: revert back to default SystemMaxFiles
This was raised to 10000 to work around 2 separate journald bugs causing
premature rotation which have been resolved for a long time.
2025-11-04 13:45:16 -05:00
Daniel Micay
7f0982f9d7 journald: disable ForwardToWall 2025-11-04 11:51:00 -05:00
Daniel Micay
f1ff8ac931 phase out 2.releases.grapheneos.org 2025-11-04 11:19:13 -05:00
Daniel Micay
8697cf2a2d switch back to unified journald rotation/retention
Since we're no longer storing nginx logs in journald, we no longer need
to use journald configuration to control nginx log rotation/retention.

We switched from nginx to dnsdist for the authoritative DNS servers and
are therefore no longer logging any of the queries persistently since we
can rely on the PowerDNS and dnsdist in-memory buffers and stats.

We can use nginx-specific logrotate configuration on a per-server basis
based on balancing the usefulness of access logs with storage space and
getting rid of slightly sensitive data faster (mainly IP addresses).
2025-11-03 20:03:59 -05:00
Daniel Micay
9d68a079db logrotate: use specific log file paths
This avoids ending up with the glob path in the logrotate state file
when nothing matches the glob pattern.
2025-11-03 12:54:18 -05:00
Daniel Micay
39b6de58dd syslog-ng: add socket for nginx error logs
The error log is fairly quiet during regular use but can end up logging
one or more lines per request during DDoS attacks. Errors are logged for
worker_connections depletion and limit_conn rejections. There's also
currently an nginx bug with modern TLS and OpenSSL causing some client
side TLS errors to be logged as crit instead of info.
2025-11-03 12:53:24 -05:00
Daniel Micay
386d332aaf remove unused logrotate configurations 2025-11-03 00:33:30 -05:00
Daniel Micay
934c5dbd53 logrotate: remove notifempty for nginx 2025-11-03 00:33:30 -05:00
Daniel Micay
b61c76c324 logrotate: remove nocreate for letsencrypt 2025-11-03 00:33:30 -05:00
Daniel Micay
39e701e9fb update pacreport.conf 2025-11-03 00:33:30 -05:00
Daniel Micay
944b4679c1 merge website and network servers
This provides more redundancy for both services through having 2
instances in each region. The network services have much higher
bandwidth usage and load so this will also delay us needing to obtain
new servers by making better use of the ones we have.
2025-11-03 00:33:30 -05:00
Daniel Micay
2caa67529a set up syslog-ng for nginx access log
This sets up the infrastructure for moving from storing nginx access
logs in journald to plain text files written by syslog-ng and rotated by
logrotate. This works around the poor performance, poor space efficiency
and lack of archived log compression for journald. Unlike writing access
logs directly with nginx, this continues avoiding blocking writes in the
event loop and sticks to asynchronous sends through a socket.

Since nginx only supports syslog via the RFC 3164 protocol rather than
the more modern RFC 5424 protocol, this leaves formatting timestamps up
to nginx rather than using the ones provided via the syslog protocol.
2025-11-03 00:33:28 -05:00
Daniel Micay
3c4380370e logrotate: use zstd for compression 2025-11-01 20:04:53 -04:00
Daniel Micay
a346146625 reorder update servers 2025-11-01 20:04:51 -04:00