Enable Dynamic Policy Management via ghaf-givc#1758
Enable Dynamic Policy Management via ghaf-givc#1758gngram wants to merge 8 commits intotiiuae:mainfrom
Conversation
kajusnau
left a comment
There was a problem hiding this comment.
Cool change!
Some opinionated, some refactor comments.
Also is it possible to define some example test scenario instead of a generic Every functionality should work as usual.? 😁
vunnyso
left a comment
There was a problem hiding this comment.
PR title has title has typo and wip can removed if change is ready.
f085696 to
0d35917
Compare
0d35917 to
b4321a1
Compare
waiting for ghaf-givc commit to be merged on mainline. once done I will remove wip status and will update givc url also in flake.nix. |
- updated givc options to align it with the givc agents - policyAdmin is for admin-vm, policyClient is for rest of the VMs and host Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
- option added ghaf.common.policies Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
- update givc configs for yubikey and boot-ui Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
b4321a1 to
70ee43b
Compare
Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
70ee43b to
92bcecc
Compare
|
Tested on Darter Pro (new image)
|
|
@milva-unikie, I am sorry for not providing clear steps to test it. Once policy is downloaded then it persists the effect is permanent so subsequent boot will have the effect immediately. I always tested with network cable plugged in on Lenovo-X1, so forgot to mention these details. |
After waiting for a while chatgpt.com can no longer be accessed. However, I would argue that it being available for several minutes is still a bug. It is not very secure that the pages can be accessed before the policy is applied. |
|
Since policy polling is periodic by design, there will always be a small window between checks. That is indeed a performance trade-off between reducing CPU/network overhead and achieving real-time policy enforcement. The fact that the polling interval is configurable helps balance security requirements with system efficiency. Also, once the policy is successfully downloaded and applied, it becomes resident and effective immediately — including across reboots — which means the security posture is maintained after the initial update. This is a common trade-off: polling avoids complexity and resource overhead, while push frameworks can reduce latency but require additional infrastructure on Ghaf machine and Policy server both. |
Allowed addresses are also restricted in business-vm, but there everything is blocked until the list has been fetched. I believe it takes a maximum of two minutes to update after the internet connection is established. I don’t think the current solution is optimal, but it works like described. For testing purposes, it would be good to keep some address blocked. Definitely not Chatgpt, but some random website that we are not expecting anyone to visit accidentally. |
Description of Changes
This PR introduces policy management capabilities within the ghaf-givc implementation. It establishes a distinction between policy administrators and clients, allowing for dynamic updates to system configurations such as firewalls and proxies.
Key Changes:
Policy Architecture:
Dynamic Configuration:
GIVC Integration:
Type of Change
Related Issues / Tickets
Checklist
make-checksand it passesTesting Instructions
Applicable Targets
aarch64aarch64x86_64x86_64x86_64Installation Method
nixos-rebuild ... switchTest Steps To Verify: