Marisa:added vault
This commit is contained in:
29
cert.pem
Normal file
29
cert.pem
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIE6zCCAtOgAwIBAgIULw+Gpw3Q+bH8lsUs+SKS5RhRrbEwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwFDESMBAGA1UEAwwJMTAuNTUuMC4yMB4XDTIxMDYwNzAyMjQ1NFoXDTIyMDYw
|
||||||
|
NzAyMjQ1NFowFDESMBAGA1UEAwwJMTAuNTUuMC4yMIICIjANBgkqhkiG9w0BAQEF
|
||||||
|
AAOCAg8AMIICCgKCAgEA0EnwkNg4T+1bvZZDM4NU4BrMMgrKyuFeGTWw+dN0W7NS
|
||||||
|
w0CwVkypqIqTHQShDoF1aU3QSHAzaJJyKbQVIOooFml4rJn4FDHGrtEMlg6lv1p3
|
||||||
|
mObH35ruizcb0gMCKZsPGc/t7fEk12jDvQIQJtsFUW5XzIpQWkrjXpK5jvZrfAcM
|
||||||
|
fk5wRln5atjIOAisA+QIRwbHLpwZvzSOldXlzO+jz2OIrwKt1G/YvjQUmGUabsW3
|
||||||
|
SZqGDcobvHWcmRILiqeYCumTXuKlu5EWFKhFu13HFBPdr+AK50IPNVoRIDgMqge5
|
||||||
|
E/k235uzC980tx38ApYoO5oT+xGGwwxwYwhw68k7x26Oi71WXWue7bkZHL76JIn/
|
||||||
|
diDMptDbrdDDMjp8wOS+eO12MSF0O539reSmpk+p4Afr6HeiCL0RfItPeOiTdh6X
|
||||||
|
H/8MdSK0wD5yo2LWexaj5kA9j29gdm9VQJ2ibbF5NliiimF0w1wW92zhbjf7HrJq
|
||||||
|
QeprPpOS/Ljzc8USmekCFm04+VwzWTxJ6VsxLrABVO4B2aoLE5FfPoEU0fDZsZQw
|
||||||
|
ClwkpWvq6Oxc6wKg8gI5HKVVXTHb/y+v45eVL8AyRZvtdriQ6jMG7newiTiISJFs
|
||||||
|
ESblNUs0cEfAnDw+g6Q11srqS6wtMCuagteKHvRkvnByPY28p6yHBaQ5HK8JBoMC
|
||||||
|
AwEAAaM1MDMwCwYDVR0PBAQDAgQwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1Ud
|
||||||
|
EQQIMAaHBAo3AAIwDQYJKoZIhvcNAQELBQADggIBAANHwzKGXugcsIMZrI/bOz+F
|
||||||
|
bTEBIq/L3+mpHlt9Hnxv4RX+cE/k9keR4AHSfDPSz3KG+0FwvPfzLRJYM0znfsv8
|
||||||
|
0tETfWaSMlLk7LO0V4jVOzQdvKquPEyRj1DuAGY5X3j6GGKznjWN2QKvvK5+dLVM
|
||||||
|
nW0ju5+2IPrC75+Hp5d52oUjtgfkZetUTmFanqZ6bkO3afxeiXVfUhWgoM4SClNK
|
||||||
|
Er0Um9ZErzz4r1rk7JSNBWUXjzkdt9NYnrILLYzDvsGzD8y7uAxJWDOsWqhLy0NU
|
||||||
|
KFcmEoVAoCQDEynXaSDqFfOeKhcEuNdkgwBYWTkKRcLbQIl1vGM89eLd1gNCv5fM
|
||||||
|
IaNF9/hOrhaUPXtCvL3l6+PtUMCcsFvoTrOuag3NVktBFjL6DoWCtcNpDEMNS50L
|
||||||
|
+LTU0PtSbkkeVut3th8BN2Ts3OeGTFTHkhgpACb0OJQZQHvE3aS5BAImmp8Pgapb
|
||||||
|
dwG3eyiPyTroCdgDTbKgrpZJ6i1z9yRzm6nHLJDz4wG9CYPaapU9QzvAm/PSWBPf
|
||||||
|
VmjgF1vEq6IRgwtxatdXLkI9hlkkdz78iHaxFd7p42kdsPgyEhTMjmU5RMer4ZFI
|
||||||
|
Q5l9vgsnwD4lHwkSkzeH8I4x7Di1VwBi/ZB/7PLGVK4bU8dNRjpVSrWdSFYGPCkP
|
||||||
|
waMVK3m6w1uNBKvuEVz1
|
||||||
|
-----END CERTIFICATE-----
|
@@ -70,6 +70,7 @@
|
|||||||
Marisa = nixpkgs.lib.nixosSystem {
|
Marisa = nixpkgs.lib.nixosSystem {
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
|
./modules/vault-agent.nix
|
||||||
./hosts/servers/marisa.nix
|
./hosts/servers/marisa.nix
|
||||||
inputs.mailserver.nixosModules.mailserver
|
inputs.mailserver.nixosModules.mailserver
|
||||||
{
|
{
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
networking = {
|
networking = {
|
||||||
hostName = "Marisa";
|
hostName = "Marisa";
|
||||||
firewall = {
|
firewall = {
|
||||||
allowedTCPPorts = [ 22 80 8000 6060 5001 ];
|
allowedTCPPorts = [ 22 80 6060 5001 8800 ];
|
||||||
allowedUDPPorts = [ 17840 ];
|
allowedUDPPorts = [ 17840 ];
|
||||||
};
|
};
|
||||||
wireless = {
|
wireless = {
|
||||||
@@ -20,17 +20,15 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
wireguard.interfaces.wg0 = {
|
wireguard.interfaces.wg0 = {
|
||||||
ips = [ "100.0.0.2/24" ];
|
ips = [ "10.55.0.2/24" ];
|
||||||
listenPort = 17840;
|
listenPort = 17840;
|
||||||
# postSetup = "${pkgs.iproute}/bin/ip route add weirdnatto.in via 192.168.0.1";
|
privateKeyFile = "/var/secrets/wg.key";
|
||||||
# postShutdown = "${pkgs.iproute}/bin/ip route del weirdnatto.in via 192.168.0.1";
|
|
||||||
privateKeyFile = "/var/secrets/wg";
|
|
||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
#Oracle VM1
|
#Oracle VM1
|
||||||
publicKey = "z0Y2VNEWcyVQVSqRHiwmiJ5/0MgSPM+HZfEcwIccSxM=";
|
publicKey = "z0Y2VNEWcyVQVSqRHiwmiJ5/0MgSPM+HZfEcwIccSxM=";
|
||||||
allowedIPs = [ "100.0.0.0/24" ];
|
allowedIPs = [ "10.55.0.0/24" ];
|
||||||
endpoint = "140.238.230.155:17840";
|
endpoint = "weirdnatto.in:17840";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@@ -9,17 +9,59 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
enableImap = true;
|
enableImap = true;
|
||||||
};
|
};
|
||||||
/* vault = {
|
vault = {
|
||||||
|
package = pkgs.vault-bin;
|
||||||
enable = true;
|
enable = true;
|
||||||
address = "127.0.0.1:8000";
|
tlsCertFile = "/var/certs/cert.pem";
|
||||||
|
tlsKeyFile = "/var/certs/key.pem";
|
||||||
|
address = "0.0.0.0:8800";
|
||||||
|
extraSettingsPaths = [ /var/vault/vault.hcl ];
|
||||||
storageBackend = "postgresql";
|
storageBackend = "postgresql";
|
||||||
};*/
|
extraConfig = ''
|
||||||
|
api_addr = "https://127.0.0.1:8800"
|
||||||
|
ui = true
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
vault-agent = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
vault = {
|
||||||
|
address = "https://10.55.0.2:8800";
|
||||||
|
client_cert = "/var/vault/cert.pem";
|
||||||
|
client_key = "/var/vault/key.pem";
|
||||||
|
};
|
||||||
|
auto_auth = {
|
||||||
|
method = [
|
||||||
|
{
|
||||||
|
"cert" = {
|
||||||
|
name = "Marisa";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
template = [
|
||||||
|
{
|
||||||
|
source = pkgs.writeText "gitea.tpl" ''
|
||||||
|
{{ with secret "kv/systems/Marisa" }}{{ .Data.data.gitea }}{{ end }}
|
||||||
|
'';
|
||||||
|
destination = "/var/secrets/gitea.key";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source = pkgs.writeText "wg.tpl" ''
|
||||||
|
{{ with secret "kv/systems/Marisa/wg" }}{{ .Data.data.private }}{{ end }}
|
||||||
|
'';
|
||||||
|
destination = "/var/secrets/wg.key";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
postgresql = {
|
postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
port = 6060;
|
port = 6060;
|
||||||
enableTCPIP = true;
|
enableTCPIP = true;
|
||||||
authentication = ''
|
authentication = ''
|
||||||
local gitea all ident map=gitea-map
|
local gitea all ident map=gitea-map
|
||||||
|
host vault all 10.55.0.2/32 md5
|
||||||
host all all 192.168.0.110/32 md5
|
host all all 192.168.0.110/32 md5
|
||||||
'';
|
'';
|
||||||
identMap = ''
|
identMap = ''
|
||||||
@@ -37,7 +79,7 @@
|
|||||||
port = 6060;
|
port = 6060;
|
||||||
name = "gitea";
|
name = "gitea";
|
||||||
user = name;
|
user = name;
|
||||||
passwordFile = "/var/secrets/gitea";
|
passwordFile = "/var/secrets/gitea.key";
|
||||||
type = "postgres";
|
type = "postgres";
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
@@ -57,5 +99,7 @@
|
|||||||
users.users.root.openssh.authorizedKeys.keys = [
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHingN2Aho+KGgEvBMjtoez+W1svl9uVoa4vG0d646j"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHingN2Aho+KGgEvBMjtoez+W1svl9uVoa4vG0d646j"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPX1HDzWpoaOcU8GDEGuDzXgxkCpyeqxRR6gLs/8JgHw"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPX1HDzWpoaOcU8GDEGuDzXgxkCpyeqxRR6gLs/8JgHw"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK06ZUa9BKmZ6m+xapBjOAm10OCLzxIm8ais20wQC47m"
|
||||||
];
|
];
|
||||||
|
security.pki.certificateFiles = [ ../../../cert.pem ];
|
||||||
}
|
}
|
||||||
|
106
modules/vault-agent.nix
Normal file
106
modules/vault-agent.nix
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
#Taken from https://github.com/MagicRB/dotfiles/blob/master/nix/nixos-modules/vault-agent.nix
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.services.vault-agent;
|
||||||
|
json = pkgs.formats.json {};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.vault-agent = {
|
||||||
|
enable = mkEnableOption "Vault Agent";
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.vault;
|
||||||
|
description = ''
|
||||||
|
The package used for the vault agent
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = mkOption {
|
||||||
|
type = json.type;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Settings for the agent
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
secretsDir = mkOption {
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
default = "/var/secrets";
|
||||||
|
description = ''
|
||||||
|
Vault secrets directory;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
userName = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "vault-agent";
|
||||||
|
description = "Username for the service";
|
||||||
|
};
|
||||||
|
|
||||||
|
groupName = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "vault-agent";
|
||||||
|
description = "Vault-Agent Group Name";
|
||||||
|
};
|
||||||
|
|
||||||
|
uid = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 1985;
|
||||||
|
};
|
||||||
|
|
||||||
|
gid = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 1985;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable
|
||||||
|
({
|
||||||
|
users = {
|
||||||
|
users = {
|
||||||
|
"${cfg.userName}" = {
|
||||||
|
group = cfg.groupName;
|
||||||
|
uid = cfg.uid;
|
||||||
|
isSystemUser = true;
|
||||||
|
description = "Vault-Agent User";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
groups = {
|
||||||
|
"${cfg.groupName}" = {
|
||||||
|
gid = cfg.gid;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.tmpfiles.rules = mkIf (cfg.secretsDir != null) [
|
||||||
|
"d ${cfg.secretsDir} 6755 vault-agent ${cfg.groupName} 0"
|
||||||
|
];
|
||||||
|
systemd.services.vault-agent = {
|
||||||
|
description = "Vault Agent";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
path = (with pkgs; [
|
||||||
|
glibc
|
||||||
|
]);
|
||||||
|
serviceConfig = {
|
||||||
|
User = cfg.userName;
|
||||||
|
Group = cfg.groupName;
|
||||||
|
ExecReload = "${pkgs.busybox}/bin/kill -HUP $MAINPID";
|
||||||
|
ExecStart = "${cfg.package}/bin/vault agent -config=${json.generate "vault.json" cfg.settings}";
|
||||||
|
KillMode = "process";
|
||||||
|
KillSignal = "SIGINT";
|
||||||
|
Restart = "on-failure";
|
||||||
|
TimeoutStopSec = "30s";
|
||||||
|
RestartSec = 2;
|
||||||
|
ConfigurationDirectory = "vault-agent";
|
||||||
|
ConfigurationDirectoryMode = "0600";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
Reference in New Issue
Block a user