Configure single-client OpenVPN
This commit is contained in:
parent
006e96421c
commit
e9decbda68
@ -62,6 +62,8 @@
|
|||||||
./nix/system/dns.nix
|
./nix/system/dns.nix
|
||||||
./nix/system/hardware.nix
|
./nix/system/hardware.nix
|
||||||
./nix/system/nix-conf.nix
|
./nix/system/nix-conf.nix
|
||||||
|
./nix/system/network.nix
|
||||||
|
./nix/system/openvpn.nix
|
||||||
./nix/system/security.nix
|
./nix/system/security.nix
|
||||||
./nix/system/system.nix
|
./nix/system/system.nix
|
||||||
./nix/system/virtualisation.nix
|
./nix/system/virtualisation.nix
|
||||||
|
15
nix/system/network.nix
Normal file
15
nix/system/network.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ ... }: {
|
||||||
|
networking = {
|
||||||
|
hostName = "eve-psr-nix0";
|
||||||
|
firewall = {
|
||||||
|
allowedTCPPorts = [ 22 80 443 ];
|
||||||
|
allowedUDPPorts = [ 22 80 443 53 1194 ];
|
||||||
|
trustedInterfaces = [ "tun0" ];
|
||||||
|
};
|
||||||
|
nat = {
|
||||||
|
enable = true;
|
||||||
|
externalInterface = "enp1s0";
|
||||||
|
internalInterfaces = [ "tun0" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
56
nix/system/openvpn.nix
Normal file
56
nix/system/openvpn.nix
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
client-key = "/home/sezycei/srv/sec/openvpn/James/laptop.key";
|
||||||
|
domain = "matri.cx";
|
||||||
|
port = 1194;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.openvpn.servers.laptop.config = ''
|
||||||
|
dev tun0
|
||||||
|
proto udp
|
||||||
|
ifconfig 10.8.0.1 10.8.0.2
|
||||||
|
secret ${client-key}
|
||||||
|
port ${toString port}
|
||||||
|
|
||||||
|
cipher AES-256-CBC
|
||||||
|
auth-nocache
|
||||||
|
|
||||||
|
comp-lzo
|
||||||
|
keepalive 10 60
|
||||||
|
ping-timer-rem
|
||||||
|
persist-tun
|
||||||
|
persist-key
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.etc."openvpn/laptop-client.ovpn" = {
|
||||||
|
text = ''
|
||||||
|
dev tun
|
||||||
|
remote "${domain}"
|
||||||
|
ifconfig 10.8.0.2 10.8.0.1
|
||||||
|
port ${toString port}
|
||||||
|
redirect-gateway def1
|
||||||
|
|
||||||
|
cipher AES-256-CBC
|
||||||
|
auth-nocache
|
||||||
|
|
||||||
|
comp-lzo
|
||||||
|
keepalive 10 60
|
||||||
|
resolv-retry infinite
|
||||||
|
nobind
|
||||||
|
persist-key
|
||||||
|
persist-tun
|
||||||
|
secret [inline]
|
||||||
|
|
||||||
|
'';
|
||||||
|
mode = "600";
|
||||||
|
};
|
||||||
|
system.activationScripts.openvpn-addkey = ''
|
||||||
|
f="/etc/openvpn/laptop-client.ovpn"
|
||||||
|
if ! grep -q '<secret>' $f; then
|
||||||
|
echo "appending secret key"
|
||||||
|
echo "<secret>" >> $f
|
||||||
|
cat ${client-key} >> $f
|
||||||
|
echo "</secret>" >> $f
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
}
|
@ -2,6 +2,7 @@
|
|||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
security = {
|
security = {
|
||||||
sudo.wheelNeedsPassword = false;
|
sudo.wheelNeedsPassword = false;
|
||||||
acme = {
|
acme = {
|
||||||
|
@ -5,15 +5,7 @@
|
|||||||
loader.efi.canTouchEfiVariables = true;
|
loader.efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ git pciutils vim wget ];
|
environment.systemPackages = with pkgs; [ git pciutils openvpn vim wget ];
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostName = "eve-psr-nix0";
|
|
||||||
firewall = {
|
|
||||||
allowedTCPPorts = [ 22 80 443 ];
|
|
||||||
allowedUDPPorts = [ 22 80 443 53 ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.ssh.knownHosts = {
|
programs.ssh.knownHosts = {
|
||||||
selbeiskami = {
|
selbeiskami = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user