9 inherit (config.services) openvpn;
10 apiUrl = "https://api.black.riseup.net/3/cert";
11 key-cert = "/run/openvpn-${netns}/key+cert.pem";
14 services.openvpn.servers.${netns} = {
17 # HowTo(maint/update):
18 # curl -Ls https://api.black.riseup.net/3/config/eip-service.json |
19 # jq .gateways.'[]'.host
21 "vpn01-sea.riseup.net"
22 "vpn02-par.riseup.net"
23 "vpn03-par.riseup.net"
24 "vpn04-ams.riseup.net"
25 "vpn05-par.riseup.net"
26 "vpn06-ams.riseup.net"
27 "vpn07-par.riseup.net"
28 "vpn08-par.riseup.net"
29 "vpn10-mtl.riseup.net"
30 "vpn11-par.riseup.net"
31 "vpn12-nyc.riseup.net"
32 "vpn13-ams.riseup.net"
33 "vpn14-par.riseup.net"
34 "vpn15-sea.riseup.net"
35 "vpn16-sea.riseup.net"
36 "vpn18-mtl.riseup.net"
37 "vpn19-ams.riseup.net"
38 "vpn20-par.riseup.net"
39 "vpn21-par.riseup.net"
40 "vpn22-mia.riseup.net"
41 "vpn23-mia.riseup.net"
48 url = "https://black.riseup.net/ca.crt";
49 hash = "sha256-+kzojhwMbFwcf9W6CzXcCaLzBtgeOgXp19XPrP3ZhFM=";
72 remote-cert-tls = "server";
75 tls-cipher = "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384";
77 tls-version-min = "1.2";
83 systemd.services."openvpn-${netns}" = {
87 ${pkgs.curl}/bin/curl -v -X POST --cacert ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt -o ${key-cert} -Ls ${apiUrl}
92 StartLimitIntervalSec = 0;
95 RuntimeDirectory = [ "openvpn-${netns}" ];
96 RuntimeDirectoryMode = "0700";
99 environment.systemPackages = [
102 networking.nftables.ruleset = ''
105 skuid root ${openvpn.servers.${netns}.settings.proto} dport ${
106 openvpn.servers.${netns}.settings.port
107 } counter accept comment "OpenVPN Riseup"
111 services.netns.namespaces.${netns} = {
112 nftables = lib.mkBefore ''
113 include "${../networking/nftables.nft}"