226 lines
4.8 KiB
Nix
226 lines
4.8 KiB
Nix
# Ref: https://learnxinyminutes.com/docs/nix/
|
|
|
|
{ config, pkgs, ... }:
|
|
|
|
{
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
./packages/local.nix
|
|
./config/local.nix
|
|
];
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
security.acme.acceptTerms = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
asdf
|
|
atop
|
|
autoconf
|
|
automake
|
|
bash
|
|
boot
|
|
bind
|
|
binutils
|
|
btrfs-progs
|
|
bundix
|
|
byobu
|
|
cdrtools
|
|
cargo
|
|
certbot
|
|
clang
|
|
curl
|
|
dpkg
|
|
emacs
|
|
enca
|
|
fail2ban
|
|
file
|
|
fortune
|
|
gcc
|
|
git
|
|
gnumake
|
|
gnupg
|
|
google-cloud-sdk
|
|
guile
|
|
heimdalFull
|
|
imagemagick
|
|
ipfs
|
|
iptables
|
|
jdk
|
|
jq
|
|
kerberos
|
|
leiningen
|
|
libisofs
|
|
libstdcxxHook
|
|
lispPackages.alexandria
|
|
lispPackages.cl-ppcre
|
|
lispPackages.clx
|
|
lispPackages.quicklisp
|
|
lsof
|
|
lshw
|
|
mkpasswd
|
|
ncurses5
|
|
nix-index
|
|
nix-prefetch-git
|
|
nmap
|
|
oidentd
|
|
openldap
|
|
openssh
|
|
openssl_1_1
|
|
openssh_gssapi
|
|
pciutils
|
|
pinentry.curses
|
|
pv
|
|
pwgen
|
|
ruby
|
|
rustc
|
|
sbcl
|
|
screen
|
|
service-wrapper
|
|
stdenv
|
|
telnet
|
|
texlive.combined.scheme-basic
|
|
tmux
|
|
unzip
|
|
vim
|
|
wget
|
|
yubikey-manager
|
|
yubikey-personalization
|
|
];
|
|
|
|
system.stateVersion = "20.03";
|
|
|
|
system.autoUpgrade.enable = true;
|
|
|
|
environment.etc.current-nixos-config.source = ./.;
|
|
|
|
krb5.enable = true;
|
|
krb5.kerberos = pkgs.heimdalFull;
|
|
|
|
services.xserver = {
|
|
layout = "us";
|
|
xkbVariant = "dvp";
|
|
xkbOptions = "ctrl:nocaps";
|
|
};
|
|
|
|
console = {
|
|
useXkbConfig = true;
|
|
};
|
|
|
|
i18n = {
|
|
defaultLocale = "en_US.UTF-8";
|
|
};
|
|
|
|
programs = {
|
|
mosh.enable = true;
|
|
|
|
ssh = {
|
|
startAgent = false;
|
|
|
|
extraConfig = ''
|
|
GSSAPIAuthentication yes
|
|
GSSAPIDelegateCredentials yes
|
|
'';
|
|
};
|
|
|
|
bash.enableCompletion = true;
|
|
mtr.enable = true;
|
|
|
|
gnupg.agent = {
|
|
enable = true;
|
|
enableSSHSupport = true;
|
|
};
|
|
|
|
};
|
|
|
|
services = {
|
|
emacs = {
|
|
defaultEditor = true;
|
|
enable = true;
|
|
};
|
|
|
|
cron = {
|
|
enable = true;
|
|
};
|
|
openssh = {
|
|
enable = true;
|
|
startWhenNeeded = true;
|
|
permitRootLogin = "prohibit-password";
|
|
extraConfig = ''
|
|
GSSAPIAuthentication yes
|
|
GSSAPICleanupCredentials yes
|
|
'';
|
|
};
|
|
|
|
pcscd = {
|
|
enable = true;
|
|
};
|
|
|
|
udev.packages = with pkgs; [
|
|
yubikey-personalization
|
|
];
|
|
};
|
|
|
|
environment.shellInit = ''
|
|
gpg-connect-agent /bye
|
|
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
|
'';
|
|
|
|
security.pam = {
|
|
# TODO: add yubico?
|
|
services = {
|
|
sshd = {
|
|
# This should only ask for a code if ~/.google_authenticator exists, but it asks anyway.
|
|
# googleAuthenticator.enable = true;
|
|
makeHomeDir = true;
|
|
sshAgentAuth = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
users.extraUsers = {
|
|
node = {
|
|
isSystemUser = true;
|
|
group = "nogroup";
|
|
};
|
|
};
|
|
|
|
users.groups = {
|
|
fudosys = {
|
|
gid = 888;
|
|
};
|
|
};
|
|
|
|
users.extraUsers = {
|
|
niten = {
|
|
isNormalUser = true;
|
|
uid = 10000;
|
|
createHome = true;
|
|
description = "Niten";
|
|
extraGroups = ["wheel" "audio" "video" "disk" "floppy" "lp" "cdrom" "tape" "dialout" "adm" "input" "systemd-journal" "fudosys" "libvirtd"];
|
|
group = "users";
|
|
home = "/home/niten";
|
|
hashedPassword = "$6$a1q2Duoe35hd5$IaZGXPfqyGv9uq5DQm7DZq0vIHsUs39sLktBiBBqMiwl/f/Z4jSvNZLJp9DZJYe5u2qGBYh1ca.jsXvQA8FPZ/";
|
|
openssh.authorizedKeys.keys = [
|
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDoWkjyeIfgwm0b78weToVYOQSD0RQ0qbNzpsN5NokbIFv2/980kLtnYrQEgIJ/JwMLlT3uJYacbCT5/a6Fb8oLxNpj0AF1EKaWZ3Rrlg72Sq+9SEwJwWWmZizX83sovMwUBMaUp6jWLhAhPpzBW5pfc5YWoc89wxGbELSwzgt5EgHbSJgvDnaHSp3fVaY01wfDXbL/oO160iNe7wv2HLMZu/FkWBkIjz6HmoGJJzYM89bUpHbyYG28lmCHB/8UPog5/BsjOn3/qupgf4zh6mMdMsXLvbR2jVwVjxcEMj9N5nCvc+Y3oi7Mij6VNrWbhkaAJMEzeMhWYrF3/pFQxUqG37aK3d0gw9kp5tMDLIlAPX4y1lfA87pIzoa0+Alql0CJQA1IJvp9SFG7lBmSthWQLmZvwwfoGg/ZjF6rOgsVoZ8TizpQnydWJDr6NboU9LL9Oa64OM5Rs0AU3cR2UbOF4QIcWFJ/7oDe3dOnfZ8QYqx9eXJyxoAUpDanaaTHYBiAKkeOBwQU+MVLKCcONKw9FZclf/1TpDB5b3/JeUFANjHQTv0UXA4YYU7iCx6H7XB4qwwtU9O19CGQYYfCfULX12/fRpYJw6VJaQWyyU4Bn5dk/dcB2nGI36jwbLMfhbUTIApujioAnd/GQIMakHEZ1+syPhMx9BxMkZb99B0A1Q== openpgp:0x4EC95B64"
|
|
];
|
|
};
|
|
reaper = {
|
|
isNormalUser = true;
|
|
uid = 10049;
|
|
createHome = true;
|
|
description = "Reaper";
|
|
extraGroups = ["wheel" "audio" "video" "disk" "floppy" "lp" "cdrom" "tape" "dialout" "adm" "input" "systemd-journal" "fudosys" "libvirtd"];
|
|
group = "users";
|
|
home = "/home/reaper";
|
|
hashedPassword = "$6$YVCI6kiGcG5EVMT$t9lYEXjAhbnh7YkvJJPAbrzL8XE/AASsKFlWWeS.fDjBi/8S7zwXTHF0j41nDUfC//3viysn0tIOQKyZTHhzG.";
|
|
};
|
|
fudo = {
|
|
isSystemUser = true;
|
|
uid = 888;
|
|
description = "Fudo System User";
|
|
group = "fudosys";
|
|
};
|
|
};
|
|
|
|
}
|