feat(lena): Add Nebula mesh and SSH over overlay #75
No reviewers
Labels
No labels
area:authentication
area:flake-utilities
area:performance
area:tbd
host:chaos
host:electra
host:fleet
host:lyra
host:nova
host:vega
investigation
phase:cutover
phase:deploy
phase:mcp
phase:module
phase:packaging
phase:prep
phase:validation
priority:high
priority:medium
project:attic-postgres-lyra-rollout
project:auto-update-reliability
project:auto-update-remediation
project:declarative-purity-cleanup
project:external-review
project:fleet-boundary-cleanup
project:host-facts-refactor
project:lyra-nixos-deploy
project:lyra-service-stack-migration
project:nebula-mesh-network
project:nixos-build-deployment-pipeline
project:security-hardening
project:service-stack-migration
project:vega-sillytavern-cutover
project:wiki-rebuild
repo:numtide/flake-utils
repo:numtide/nix-auth
repo:numtide/nixos-passthru-cache
repo:numtide/nix-relay
service:auto-update
service:mem0
service:nix
service:sillytavern
service:slskd
service:synthseek
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nimmo/nixos-config!75
Loading…
Reference in a new issue
No description provided.
Delete branch "lena-nebula"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Add Lena (Claire's Lenovo Ideapad 2-in-1) to the Nebula mesh and enable SSH over the overlay, matching how Electra is configured.
Changes
hosts/lena/default.nix: importmodules/networking/nebula.nix, setnixosConfig.nebula = { enable = true; overlayIp = "10.10.0.21"; }, enable SSH (key-only, no root login) and allow port 22 on thenebula.meshfirewall interfacemodules/networking/nebula.nix: addlena = "10.10.0.21"to the hostMapPrerequisites (done out of band)
just nebula-add-host lena 10.10.0.21has been run to issue the cert and store the key in SOPS — this is not part of this MR.Deployment
On Lena:
sudo nixos-rebuild switch --flake .#lena, then verifynebula@meshis up andssh nimmo@lena.meshworks from another mesh node.Closes #73
Review — changes requested
services.openssh.openFirewall = trueopens TCP/22 in the global firewall, so SSH will be reachable on Lena’s LAN interfaces as well asnebula.mesh. The interface-specific rule does not limit that global rule.Please remove
openFirewall = true(it defaults to false) and keepnetworking.firewall.interfaces."nebula.mesh".allowedTCPPorts = [ 22 ];. I evaluated the proposed config:networking.firewall.allowedTCPPortsis currently[22], while the Nebula interface also permits[22]; after the change, only the latter should remain.The Forgejo CI test check is otherwise green.
Resolved in e0592b0: removed
services.openssh.openFirewall, leaving TCP/22 allowed only onnebula.mesh. Localnix flake checkpassed.e0592b0681af1cd5285daf1cd5285d5513e13471Follow-up review — changes requested
The replacement
nebula/certs/lena.crtchanges Lena’s signed Nebula group fromlaptopstoservers.hosts/lena/default.nixidentifies Lena as a laptop, and the prior certificate carriedlaptops; this group change is therefore an unintended identity escalation/misclassification, even though the current Nebula rules are permissive.The cause is consistent with the documented command:
just nebula-add-host lena 10.10.0.21uses the recipe’s default group,servers. Reissue it asjust nebula-add-host lena 10.10.0.21 laptops(or an equivalent reissue preservinglaptops) and update the encrypted key together with the certificate.The earlier firewall fix remains correct: SSH is only opened on
nebula.mesh. CI is green.