blob: 9ed3abc62b233557d9d6611e85eb176d1b0567ec (
plain) (
tree)
|
|
{
self,
config,
pkgs,
lib,
...
}:
{
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernel.sysctl = {
"net.ipv4.tcp_congestion_control" = "bbr";
"net.ipv4.tcp_ecn" = 1;
"net.ipv4.tcp_fastopen" = 3;
"net.ipv4.tcp_tw_reuse" = 1;
};
};
networking = {
useNetworkd = true;
# Used by systemd-resolved, not directly by resolv.conf.
nameservers = [
"8.8.8.8#dns.google"
"1.0.0.1#cloudflare-dns.com"
];
firewall = {
enable = true;
allowPing = true;
logRefusedConnections = false;
};
};
systemd.network = {
enable = true;
};
services.resolved = {
enable = true;
dnssec = "false";
};
services.fail2ban = {
enable = true;
ignoreIP = [
"10.100.0.0/24" # wireguard
];
bantime = "1h";
bantime-increment = {
enable = true;
maxtime = "168h";
factor = "4";
};
};
i18n = {
defaultLocale = "en_US.UTF-8";
supportedLocales = [
"en_US.UTF-8/UTF-8"
];
};
time.timeZone = "America/Los_Angeles";
users.motdFile = "/etc/motd";
environment.etc.motd.text = ''
Machine ${config.networking.hostName}
NixOS ${config.system.nixos.release}
@ ${self.shortRev or self.dirtyShortRev}
'';
## disable that slow "building man-cache" step
documentation.man.generateCaches = lib.mkForce false;
users = {
mutableUsers = false;
users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi"
];
};
security.sudo.wheelNeedsPassword = false;
environment.systemPackages = with pkgs; [
curl
dysk
fd
fish
git
htop
jq
mtr
pciutils
powertop
ripgrep
tcpdump
traceroute
vim
wireguard-tools
];
}
|