Enable strictDeps on all our toplevel packages #12
| @ -25,11 +25,18 @@ | |||||||
|           # Send keepalives every 25 seconds. Important to keep NAT tables alive. |           # Send keepalives every 25 seconds. Important to keep NAT tables alive. | ||||||
|           persistentKeepalive = 25; |           persistentKeepalive = 25; | ||||||
|         } |         } | ||||||
|  |         { | ||||||
|  |           name = "raccoon"; | ||||||
|  |           publicKey = "QUfnGXSMEgu2bviglsaSdCjidB51oEDBFpnSFcKGfDI="; | ||||||
|  |           allowedIPs = [ "10.106.0.236/32" "192.168.0.0/16" "10.0.44.0/24" ]; | ||||||
|  |         } | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   networking.hosts = { |   networking.hosts = { | ||||||
|     "10.106.0.1" = [ "fox" ]; |     "10.106.0.1" = [ "fox" ]; | ||||||
|  |     "10.106.0.236" = [ "raccoon" ]; | ||||||
|  |     "10.0.44.4" = [ "tent" ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -15,7 +15,6 @@ | |||||||
| 
 | 
 | ||||||
|     hosts = { |     hosts = { | ||||||
|       "84.88.53.236" = [ "ssfhead.bsc.es" "ssfhead" ]; |       "84.88.53.236" = [ "ssfhead.bsc.es" "ssfhead" ]; | ||||||
|       "84.88.51.152" = [ "raccoon" ]; |  | ||||||
|       "84.88.51.142" = [ "raccoon-ipmi" ]; |       "84.88.51.142" = [ "raccoon-ipmi" ]; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ | |||||||
|     ./xeon.nix |     ./xeon.nix | ||||||
|     ./ssf/fs.nix |     ./ssf/fs.nix | ||||||
|     ./ssf/hosts.nix |     ./ssf/hosts.nix | ||||||
|  |     ./ssf/hosts-remote.nix | ||||||
|     ./ssf/net.nix |     ./ssf/net.nix | ||||||
|     ./ssf/ssh.nix |     ./ssf/ssh.nix | ||||||
|   ]; |   ]; | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								m/common/ssf/hosts-remote.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								m/common/ssf/hosts-remote.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | { pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   networking.hosts = { | ||||||
|  |     # Remote hosts visible from compute nodes | ||||||
|  |     "10.106.0.236" = [ "raccoon" ]; | ||||||
|  |     "10.0.44.4" = [ "tent" ]; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -29,12 +29,19 @@ | |||||||
|           # List of IPs assigned to this peer within the tunnel subnet. Used to configure routing. |           # List of IPs assigned to this peer within the tunnel subnet. Used to configure routing. | ||||||
|           allowedIPs = [ "10.106.0.30/32" ]; |           allowedIPs = [ "10.106.0.30/32" ]; | ||||||
|         } |         } | ||||||
|  |         { | ||||||
|  |           name = "raccoon"; | ||||||
|  |           publicKey = "QUfnGXSMEgu2bviglsaSdCjidB51oEDBFpnSFcKGfDI="; | ||||||
|  |           allowedIPs = [ "10.106.0.236/32" "192.168.0.0/16" "10.0.44.0/24" ]; | ||||||
|  |         } | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   networking.hosts = { |   networking.hosts = { | ||||||
|     "10.106.0.30" = [ "apex" ]; |     "10.106.0.30" = [ "apex" ]; | ||||||
|  |     "10.106.0.236" = [ "raccoon" ]; | ||||||
|  |     "10.0.44.4" = [ "tent" ]; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   networking.firewall = { |   networking.firewall = { | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ | |||||||
|     ../module/ssh-hut-extern.nix |     ../module/ssh-hut-extern.nix | ||||||
|     ../module/nvidia.nix |     ../module/nvidia.nix | ||||||
|     ../eudy/kernel/perf.nix |     ../eudy/kernel/perf.nix | ||||||
|  |     ./wireguard.nix | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   # Don't install Grub on the disk yet |   # Don't install Grub on the disk yet | ||||||
|  | |||||||
							
								
								
									
										48
									
								
								m/raccoon/wireguard.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								m/raccoon/wireguard.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | |||||||
|  | { config, pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   networking.nat = { | ||||||
|  |     enable = true; | ||||||
|  |     enableIPv6 = false; | ||||||
|  |     externalInterface = "eno0"; | ||||||
|  |     internalInterfaces = [ "wg0" ]; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   networking.firewall = { | ||||||
|  |     allowedUDPPorts = [ 666 ]; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   age.secrets.wgRaccoon.file = ../../secrets/wg-raccoon.age; | ||||||
|  | 
 | ||||||
|  |   # Enable WireGuard | ||||||
|  |   networking.wireguard.enable = true; | ||||||
|  |   networking.wireguard.interfaces = { | ||||||
|  |     wg0 = { | ||||||
|  |       ips = [ "10.106.0.236/24" ]; | ||||||
|  |       listenPort = 666; | ||||||
|  |       privateKeyFile = config.age.secrets.wgRaccoon.path; | ||||||
|  |       # Public key: QUfnGXSMEgu2bviglsaSdCjidB51oEDBFpnSFcKGfDI= | ||||||
|  |       peers = [ | ||||||
|  |         { | ||||||
|  |           name = "fox"; | ||||||
|  |           publicKey = "VfMPBQLQTKeyXJSwv8wBhc6OV0j2qAxUpX3kLHunK2Y="; | ||||||
|  |           allowedIPs = [ "10.106.0.1/32" ]; | ||||||
|  |           endpoint = "fox.ac.upc.edu:666"; | ||||||
|  |           persistentKeepalive = 25; | ||||||
|  |         } | ||||||
|  |         { | ||||||
|  |           name = "apex"; | ||||||
|  |           publicKey = "VwhcN8vSOzdJEotQTpmPHBC52x3Hbv1lkFIyKubrnUA="; | ||||||
|  |           allowedIPs = [ "10.106.0.30/32" "10.0.40.0/24" ]; | ||||||
|  |           endpoint = "ssfhead.bsc.es:666"; | ||||||
|  |           persistentKeepalive = 25; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   networking.hosts = { | ||||||
|  |     "10.106.0.1"  = [ "fox.wg" ]; | ||||||
|  |     "10.106.0.30" = [ "apex.wg" ]; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -35,6 +35,7 @@ | |||||||
|     defaultGateway = "10.0.44.1"; |     defaultGateway = "10.0.44.1"; | ||||||
|     hosts = { |     hosts = { | ||||||
|       "84.88.53.236" = [ "apex" ]; |       "84.88.53.236" = [ "apex" ]; | ||||||
|  |       "10.0.44.1" = [ "raccoon" ]; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ let | |||||||
|   hut = [ keys.hosts.hut ] ++ adminsKeys; |   hut = [ keys.hosts.hut ] ++ adminsKeys; | ||||||
|   fox = [ keys.hosts.fox ] ++ adminsKeys; |   fox = [ keys.hosts.fox ] ++ adminsKeys; | ||||||
|   apex = [ keys.hosts.apex ] ++ adminsKeys; |   apex = [ keys.hosts.apex ] ++ adminsKeys; | ||||||
|  |   raccoon = [ keys.hosts.raccoon ] ++ adminsKeys; | ||||||
|   mon = [ keys.hosts.hut keys.hosts.tent ] ++ adminsKeys; |   mon = [ keys.hosts.hut keys.hosts.tent ] ++ adminsKeys; | ||||||
|   tent = [ keys.hosts.tent ] ++ adminsKeys; |   tent = [ keys.hosts.tent ] ++ adminsKeys; | ||||||
|   # Only expose ceph keys to safe nodes and admins |   # Only expose ceph keys to safe nodes and admins | ||||||
| @ -29,4 +30,5 @@ in | |||||||
| 
 | 
 | ||||||
|   "wg-fox.age".publicKeys = fox; |   "wg-fox.age".publicKeys = fox; | ||||||
|   "wg-apex.age".publicKeys = apex; |   "wg-apex.age".publicKeys = apex; | ||||||
|  |   "wg-raccoon.age".publicKeys = raccoon; | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								secrets/wg-raccoon.age
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								secrets/wg-raccoon.age
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user