Commit Graph

99 Commits

Author SHA1 Message Date
Omar Polo fe37d79200 change the default PUBKEY for the verify-release target
doesn't play well with minor releases such as 2.0.1 since for them
I reuse the 2.0 key.
2024-01-24 15:21:19 +00:00
Omar Polo e78e2923ea install titan too
while here, sort the binaries and the manpages by section and name.
2024-01-11 13:06:08 +00:00
Omar Polo 8d0573e84a fix release target; add verify-release 2024-01-10 17:48:11 +00:00
Omar Polo c86654c907 add signify pubkeys 2024-01-10 17:33:55 +00:00
Omar Polo e3dd9e66af fix SRCS and DISTFILES; forgot iri.h, landlock is long gone 2024-01-10 17:32:45 +00:00
Omar Polo 4c12885779 `make lint' to check titan.1 too 2023-10-18 19:29:55 +00:00
Omar Polo 4db22ea654 pass LDFLAGS before LIBS 2023-10-14 18:53:37 +00:00
Omar Polo ee42fb87e2 remove configure.local{,.example}
unused, un-updated and ignored for quite some time now.
2023-08-23 20:47:17 +00:00
Omar Polo 4d9d3093d4 resurrect landlock support
this time targetting ABI level 3; partially based on how claudio@
handled it in rpki-client.  Fun how this bit of code has come full
circle (gmid inspired what I wrote for got, which inspired what was
written for rpki-client, which has come back.)
2023-08-23 20:18:59 +00:00
Omar Polo f9ab77a898 bundle libtls
gmid (like all other daemons that want to do privsep crypto) has a
very close relationship with libtls and need to stay in sync with
it.

OpenBSD' libtls was recently changed to use OpenSSL' EC_KEY_METHOD
instead of the older ECDSA_METHOD, on the gmid side we have to do
the same otherwise failures happens at runtime.  In a similar manner,
privsep crypto is silently broken in the current libretls (next
version should fix it.)

The proper solution would be to complete the signer APIs so that
applications don't need to dive into the library' internals, but
that's a mid-term goal, for the immediate bundling the 'little'
libtls is the lesser evil.

The configure script has gained a new (undocumented for the time
being) flag `--with-libtls=bundled|system' to control which libtls
to use.  It defaults to `bundled' except for OpenBSD where it uses
the `system' one.  Note that OpenBSD versions before 7.3 (inclusive)
ought to use --with-libtls=bundled too since they still do ECDSA_METHOD.
2023-08-23 17:38:49 +00:00
Omar Polo 9019e55e7e sync DISTFILES 2023-08-22 19:58:29 +00:00
Omar Polo 603e4dd82f two more missing ge -> gemexp 2023-08-03 22:04:36 +00:00
Omar Polo f59543490d rename ge -> gemexp
gemserv is already taken...
2023-07-25 20:15:40 +00:00
Omar Polo e137cb0348 add missing -include titan.d 2023-07-25 16:11:01 +00:00
Omar Polo 2ff1e2a923 add titan(1) -- a draft titan client 2023-07-22 15:47:02 +00:00
Omar Polo 24f644dbb6 there's no more any `static' target 2023-06-24 13:10:31 +00:00
Omar Polo c3d502d455 add a `lint' maintainer target to check the manpages 2023-06-24 13:01:31 +00:00
Omar Polo 5a34572282 use REGRESS_HOST to specify the host to listen to; use in CI
some CI envs don't like `listen on localhost' but tolerate INADDR_ANY
or IN6ADDR_ANY_INIT.
2023-06-23 22:00:21 +00:00
Omar Polo f29d705e04 add missing -include of *.d files 2023-06-23 21:03:24 +00:00
Omar Polo 5dad390015 add `release' target 2023-06-14 07:15:00 +00:00
Omar Polo 1610f9541d rework the configure script
now it resembles less oconfigure and more the configure scripts I'm
using in my recent projects.  I'd argue it's more easy to use it.
2023-06-13 16:36:10 +00:00
Omar Polo 86693a33ab add a privsep crypto engine
Incorporate the OpenSMTPD' privsep crypto engine.  The idea behind
it is to never load the certificate' private keys in a networked
process, instead they are loaded in a separate process (the `crypto'
one) which signs payloads on the behalf of the server processes.
This way, we greatly reduce the risk of leaking the certificate'
private key should the server process be compromised.

This currently compiles only on LibreSSL (portable fix is in the
way).
2023-06-11 11:03:59 +00:00
Omar Polo cbb7f9fc28 move logger() prototype to gmid.h and delete logger.h 2023-06-08 17:03:13 +00:00
Omar Polo 797c4609a9 make ge work again 2023-06-08 16:22:03 +00:00
Omar Polo 846842e138 sync DISTFILES 2023-06-08 15:41:47 +00:00
Omar Polo 68e38f49b2 use -MMD if the compiler supports it
it's better than the previous Makefile.depend approach since this
automatically adapts to the included headers without requiring
manual intervention to regen the list.
2023-06-08 14:43:29 +00:00
Omar Polo 3483609593 remove Makefile.depend 2023-06-08 14:37:29 +00:00
Omar Polo c727f8dd75 reformat 2023-06-08 14:36:29 +00:00
Omar Polo c26f2460e4 rework the daemon to do fork+exec
It uses the 'common' proc.c from various OpenBSD-daemons.

gmid grew organically bit by bit and it was also the first place where I
tried to implement privsep.  It wasn't done very well, in fact the
parent process (that retains root privileges) just fork()s a generation
of servers, all sharing *exactly* the same address space.  No good!

Now, we fork() and re-exec() ourselves, so that each process has a fresh
address space.

Some features (require client ca for example) are temporarly disabled,
will be fixed in subsequent commits.  The "ge" program is also
temporarly disabled as it needs tweaks to do privsep too.
2023-06-08 13:59:31 +00:00
Omar Polo eae52ad493 switch to the more usual log.c 2023-06-06 11:46:40 +00:00
Omar Polo 281a8852b3 rename log.[ch] to logger.[ch] 2023-06-06 08:50:54 +00:00
Omar Polo c68baad22a move config-related code to config.c
reuse it in ge too.
2023-06-06 08:18:57 +00:00
Omar Polo e1e04caa4f +log.h 2023-06-05 20:27:27 +00:00
Omar Polo 34886b1e55 add tags target 2023-05-08 10:30:00 +00:00
Omar Polo 0b62f4842d drop landlock/seccomp and capsicum support
it reached a point where this stuff is not maintenable.  I'd like
to move forward with gmid, but the restriction of capsicum and the
linux environment at large that make landlock unusable (how can you
resolve DNS portably when under landlock?) -and don't get me started
on seccomp- makes it impossible for me to do any work.

So, I prefer removing the crap, resuming working on gmid by cleaning
stuff and consolidating the features, improving various things
etc... and then eventually see how to introduce some sandboxing
again on other systems.  Patches to resume sandboxing are, as always,
welcome!
2023-05-08 10:27:32 +00:00
Omar Polo 4b93be289b rework `make dist' 2022-10-31 22:53:16 +00:00
Omar Polo 24232204eb update depends 2022-09-10 12:24:39 +00:00
Omar Polo 3eabd37fe7 adjust install/uninstall target
gmid.1 was moved as gmid.8 and now we have `ge' too
2022-09-08 21:18:04 +00:00
Omar Polo 0126d91d1d add ge: gemini export! 2022-09-07 20:47:33 +00:00
Omar Polo d29a2ee224 get rid of the CGI support
I really want to get rid of the `executor' process hack for CGI scripts
and its escalation to allow fastcgi and proxying to work on non-OpenBSD.

This drops the CGI support and the `executor' process entirely and is
the first step towards gmid 2.0.  It also allows to have more secure
defaults.

On non-OpenBSD systems this means that the sandbox will be deactivated
as soon as fastcgi or proxying are used: you can't open sockets under
FreeBSD' capsicum(4) and I don't want to go thru the pain of making it
work under linux' seccomp/landlock.  Patches are always welcome however.

For folks using CGI scripts (hey, I'm one of you!) not all hope is lost:
fcgiwrap or OpenBSD' slowcgi(8) are ways to run CGI scripts as they were
FastCGI applications.

fixes for the documentation and to the non-OpenBSD sandboxes will
follow.
2022-09-06 16:11:09 +00:00
Anna “CyberTailor” 07fbbf0610 include contrib/ in dist 2022-07-07 10:38:49 +02:00
Omar Polo b48eb0db52 add missing manpage for gg 2022-07-04 15:04:46 +00:00
Omar Polo 5734723f92 typo 2022-07-04 14:09:52 +00:00
Omar Polo 870063d344 include Makefile.depend too 2022-07-04 13:53:51 +00:00
Omar Polo 96e3c01314 refactor the makefile / configure
steal more (good) stuff from mandoc-portable :)
2022-07-04 13:44:38 +00:00
Omar Polo a3ebbccb8e the install target ought to depend on gg too 2022-07-04 09:52:44 +00:00
Omar Polo bf2850b938 install gmid.conf.5 too 2022-04-07 17:51:26 +00:00
Omar Polo 2a7f69f4ee fix `make static': compile `gg' too! 2022-03-29 12:21:08 +00:00
Omar Polo 57d2fca4b4 add target `test' alias for `regress' 2022-03-26 11:57:27 +00:00
Anna “CyberTailor” e20755180f add gg to `make regress` dependencies 2022-02-03 11:13:44 +01:00