-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nixos/postgresql: enable sandbox mode #113100
Conversation
a7c46d4
to
70b1d13
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minimal testing.
I think we should especially test this with a few extensions (eg. postgis
) and involve a few more folks using PostgreSQL before merging this, because reverting this on a per-config basis will be a bit more involved with all the options set.
# Security | ||
NoNewPrivileges = true; | ||
# Sandboxing | ||
ProtectSystem = "strict"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you try the systemd.services.*.confinement
options instead? I'm asking because one of the main targets of that module was PostgreSQL and it's also more strict that ProtectSystem
because it only contains runtime closure necessary for running PostgreSQL.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have not tried. Don't know how to use systemd.services.*.confinement
.
# Sandboxing | ||
ProtectSystem = "strict"; | ||
ProtectHome = true; | ||
PrivateTmp = false; # Fixme, nixos/tests/postgresql-wal-receiver uses the /tmp directory for test. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If that's the case, we should fix the test and not the other way around. One of the reasons why we've switched to /run/postgresql
is because it makes sandboxing more difficult as outlined in #57677.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now there is no idea how to fix the test.
70b1d13
to
60f74de
Compare
I marked this as stale due to inactivity. → More info |
Closing, because #344925 has been merged. |
Motivation for this change
Running postgresql service in sandbox mode.
Minimal testing.
cc @aanderse @flokli
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)