# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: { imports = [ ../common-cli.nix ./hardware-configuration.nix ./users.nix ./services.nix ]; nix.settings.trusted-users = [ "root" "paul" ]; boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; supportedFilesystems = [ "zfs" ]; tmp.useTmpfs = true; }; documentation.nixos.enable = false; nixpkgs.config.allowUnfree = false; nixpkgs.config.allowUnfreePredicate = (pkg: builtins.elem pkg.pname or (builtins.parseDrvName pkg.name).name [ "factorio-headless" "perl5.32.1-slimserver" "minecraft-server" ]); services.zfs = { autoSnapshot.enable = true; autoScrub = { enable = true; interval = "monthly"; }; }; hardware.usbWwan.enable = true; # eno1 -> VLAN100 -> Internet # eno2 -> LAN # eno3 -> Legacy client DHCP # eno4 -> Pas utilisé networking = { hostName = "loutreos"; # Define your hostname. hostId = "7e66e347"; useNetworkd = true; useDHCP = false; vlans = { bouygues = { id = 100; interface = "eno1"; }; }; interfaces = { bouygues = { # Adresse MAC BBox ? https://lafibre.info/remplacer-bbox/informations-de-connexion-ftth/msg598303/#msg598303 macAddress = "E8:AD:A6:21:73:68"; useDHCP = true; }; eno2 = { ipv4.addresses = [ { address = "10.30.0.1"; prefixLength = 16; } ]; }; enp0s21u2.useDHCP = true; }; # NAT bouygues <-> eno2 nat = { enable = true; externalInterface = "bouygues"; # Permet d'utiliser le SNAT plus rapide au lieu de MASQUERADE # externalIP = "0.0.0.0"; internalIPs = [ "10.30.0.0/16" ]; internalInterfaces = [ "eno2" ]; forwardPorts = [ { destination = "10.30.0.1:22"; proto = "tcp"; sourcePort = 8443;} { destination = "10.30.135.35:25565"; proto = "tcp"; sourcePort = 25565; loopbackIPs=[ "195.36.180.44" ];} ]; }; firewall = { allowedTCPPorts = [ 80 443 ]; allowedUDPPorts = [ ]; interfaces.eno2 = { allowedTCPPorts = [ 111 2049 4000 4001 4002 # NFS 3483 9000 9090 # Slimserver 1935 # RTMP ]; allowedUDPPorts = [ 111 2049 4000 4001 4002 # NFS 3483 # Slimserver ]; }; enable = true; }; }; systemd.network.networks = { "40-eno2" = { networkConfig = { DHCPServer = true; }; dhcpServerConfig = { PoolOffset = 25599; PoolSize = 25600; DNS = [ "89.234.141.66" "80.67.169.12" "80.67.169.40" ]; }; dhcpServerStaticLeases = [ { dhcpServerStaticLeaseConfig = { MACAddress = "50:c7:bf:b6:b8:ef"; Address = "10.30.50.7"; }; } # HS110 { dhcpServerStaticLeaseConfig = { MACAddress = "ac:1f:6b:4b:01:15"; Address = "10.30.1.1"; }; } # IPMI { dhcpServerStaticLeaseConfig = { MACAddress = "b4:2e:99:ed:24:26"; Address = "10.30.50.1"; }; } # paul-fixe #ESPHome { dhcpServerStaticLeaseConfig = { MACAddress = "e0:98:06:85:e9:ce"; Address = "10.30.40.1"; }; } # salonled { dhcpServerStaticLeaseConfig = { MACAddress = "e0:98:06:86:38:fc"; Address = "10.30.40.2"; }; } # bureauled { dhcpServerStaticLeaseConfig = { MACAddress = "50:02:91:78:be:be"; Address = "10.30.40.3"; }; } # guirlande ]; }; "40-bouygues" = { dhcpV4Config.RouteMetric = 1; dhcpV6Config = { DUIDRawData = "00:03:00:01:E8:AD:A6:21:73:68"; WithoutRA = "solicit"; }; ipv6AcceptRAConfig.DHCPv6Client = "yes"; networkConfig = { KeepConfiguration = "dhcp-on-stop"; IPv6AcceptRA = "yes"; }; }; "40-enp0s21u2".dhcpV4Config.RouteMetric = 1024; }; nixpkgs.overlays = [ (import ../../overlays/transmission.nix) ]; services.openssh = { enable = true; settings = { PermitRootLogin = "no"; PasswordAuthentication = false; X11Forwarding = true; }; }; users = { groups.autossh = { }; users.autossh = { home = "/home/autossh"; createHome = true; group = "autossh"; isSystemUser = true; }; }; services.autossh.sessions = [ { extraArguments = "-N -R 0.0.0.0:2222:127.0.0.1:22 loutre@vps772619.ovh.net"; monitoringPort = 20000; name = "backup-ssh-reverse"; user = "autossh"; } ]; virtualisation.podman.enable = true; security.sudo.wheelNeedsPassword = false; system.stateVersion = "18.03"; }