This repository has no description
8.1 kB
363 lines
1{
2 self,
3 config,
4 lib,
5 pkgs,
6 ...
7}:
8let
9
10 to = lib.concatStringsSep "," [
11 "lass@green.r"
12 ];
13
14 mails = [
15 "postmaster@lassul.us"
16 "lassulus@lassul.us"
17 "test@lassul.us"
18 "outlook@lassul.us"
19 "steuer@aidsballs.de"
20 "lass@aidsballs.de"
21 "wordpress@ubikmedia.de"
22 "finanzamt@lassul.us"
23 "netzclub@lassul.us"
24 "nebenan@lassul.us"
25 "feed@lassul.us"
26 "art@lassul.us"
27 "irgendwas@lassul.us"
28 "polo@lassul.us"
29 "shack@lassul.us"
30 "nix@lassul.us"
31 "c-base@lassul.us"
32 "paypal@lassul.us"
33 "patreon@lassul.us"
34 "steam@lassul.us"
35 "securityfocus@lassul.us"
36 "radio@lassul.us"
37 "btce@lassul.us"
38 "raf@lassul.us"
39 "apple@lassul.us"
40 "coinbase@lassul.us"
41 "tomtop@lassul.us"
42 "aliexpress@lassul.us"
43 "business@lassul.us"
44 "payeer@lassul.us"
45 "github@lassul.us"
46 "bitwala@lassul.us"
47 "bitstamp@lassul.us"
48 "bitcoin.de@lassul.us"
49 "ableton@lassul.us"
50 "dhl@lassul.us"
51 "sipgate@lassul.us"
52 "coinexchange@lassul.us"
53 "verwaltung@lassul.us"
54 "gearbest@lassul.us"
55 "binance@lassul.us"
56 "bitfinex@lassul.us"
57 "alternate@lassul.us"
58 "redacted@lassul.us"
59 "mytaxi@lassul.us"
60 "pizza@lassul.us"
61 "robinhood@lassul.us"
62 "drivenow@lassul.us"
63 "aws@lassul.us"
64 "reddit@lassul.us"
65 "banggood@lassul.us"
66 "immoscout@lassul.us"
67 "gmail@lassul.us"
68 "amazon@lassul.us"
69 "humblebundle@lassul.us"
70 "meetup@lassul.us"
71 "gebfrei@lassul.us"
72 "github@lassul.us"
73 "ovh@lassul.us"
74 "hetzner@lassul.us"
75 "allygator@lassul.us"
76 "immoscout@lassul.us"
77 "elitedangerous@lassul.us"
78 "boardgamegeek@lassul.us"
79 "qwertee@lassul.us"
80 "zazzle@lassul.us"
81 "hackbeach@lassul.us"
82 "transferwise@lassul.us"
83 "cis@lassul.us"
84 "afra@lassul.us"
85 "ksp@lassul.us"
86 "ccc@lassul.us"
87 "neocron@lassul.us"
88 "osmocom@lassul.us"
89 "lesswrong@lassul.us"
90 "nordvpn@lassul.us"
91 "csv-direct@lassul.us"
92 "nintendo@lassul.us"
93 "overleaf@lassul.us"
94 "box@lassul.us"
95 "paloalto@lassul.us"
96 "subtitles@lassul.us"
97 "lobsters@lassul.us"
98 "fysitech@lassul.us"
99 "threema@lassul.us"
100 "ubisoft@lassul.us"
101 "kottezeller@lassul.us"
102 "pie@lassul.us"
103 "vebit@lassul.us"
104 "vcvrack@lassul.us"
105 "epic@lassul.us"
106 "microsoft@lassul.us"
107 "stickers@lassul.us"
108 "nextbike@lassul.us"
109 "mytello@lassul.us"
110 "camp@lassul.us"
111 "urlwatch@lassul.us"
112 "lidl@lassul.us"
113 "geizhals@lassul.us"
114 "auschein@lassul.us"
115 "tleech@lassul.us"
116 "durstexpress@lassul.us"
117 "acme@lassul.us"
118 "antstore@lassul.us"
119 "openweather@lassul.us"
120 "lobsters@lassul.us"
121 "rewe@lassul.us"
122 "spotify@lassul.us"
123 "mojang@lassul.us"
124 # "telekom@lassul.us"
125 "doctolib@lassul.us"
126 "dragonbox@lassul.us"
127 "scalable@lassul.us"
128 "remarkable@lassul.us"
129 "lenovo@lassul.us"
130 "lapstars@lassul.us"
131 "simplywall@lassul.us"
132 "vytal@lassul.us"
133 "haftpflicht@lassul.us"
134 "dji@lassul.us"
135 "sparkasse@lassul.us"
136 "ikea@lassul.us"
137 "blizzard@lassul.us"
138 "azure@lassul.us"
139 "engadin@lassul.us"
140 "jameda@lassul.us"
141 "flaschenpost@lassul.us"
142 "irc@lassul.us"
143 "dlive*@lassul.us"
144 "bunq@lassul.us"
145 "telegram@lassul.us"
146 "ryanair@lassul.us"
147 "phone@lassul.us"
148 "bitmex@lassul.us"
149 "matrix@lassul.us"
150 "itch@lassul.us"
151 "revolut@lassul.us"
152 "coronatest@lassul.us"
153 "dcso@lassul.us"
154 "easyjet@lassul.us"
155 "flipper@lassul.us"
156 "figma@lassul.us"
157 "psiram@lassul.us"
158 "wahl@lassul.us"
159 "instagram@lassul.us"
160 "poinbit@lassul.us"
161 "vvs@lassul.us"
162 "juicy@lassul.us"
163 "auth0@lassul.us"
164 "opodo@lassul.us"
165 "mytrip@lassul.us"
166 "kraken@lassul.us"
167 "swisspass@lassul.us"
168 "heise@lassul.us"
169 "dplf@lassul.us"
170 "rc3@lassul.us"
171 "booking@lassul.us"
172 "mozilla@lassul.us"
173 "bolt@lassul.us"
174 "wolt@lassul.us"
175 "independesk@lassul.us"
176 "oracle@lassul.us"
177 "dev@lassul.us"
178 "nebula@lassul.us"
179 "golem@lassul.us"
180 "planet@lassul.us"
181 "zerotier@lassul.us"
182 "coqui@lassul.us"
183 "numtide@lassul.us"
184 "linkedin@lassul.us"
185 "kaggle@lassul.us"
186 "lastfm@lassul.us"
187 "obi@lassul.us"
188 "aok@lassul.us"
189 "sevdesk@lassul.us"
190 "penta@lassul.us"
191 "solarisbank@lassul.us"
192 "tinder@lassul.us"
193 "vodafone@lassul.us"
194 "42keebs@lassul.us"
195 "pcb@lassul.us"
196 "splitkb@lassul.us"
197 "brackethq@lassul.us"
198 "fosdem@lassul.us"
199 "nreal@lassul.us"
200 "packaging@lassul.us"
201 "ebay@lassul.us"
202 "fusion@lassul.us"
203 "uber@lassul.us"
204 "consulting@lassul.us"
205 "steuer@lassul.us"
206 "versicherung@lassul.us"
207 "satellite@lassul.us"
208 "doodle@lassul.us"
209 "epost@lassul.us"
210 "gog@lassul.us"
211 "post@lassul.us"
212 "buhl@lassul.us"
213 "xxx@lassul.us"
214 "chess@lassul.us"
215 "thainix@lassul.us"
216 "volders@lassul.us"
217 "namecheap@lassul.us"
218 "clanlol@lassul.us"
219 "harvest@lassul.us"
220 "bauhaus@lassul.us"
221 "bahn@lassul.us"
222 "framework@lassul.us"
223 "bsdex@lassul.us"
224 "expressvpn@lassul.us"
225 "airvpn@lassul.us"
226 "prog@lassul.us"
227 "eventphone@lassul.us"
228 "startgg@lassul.us"
229 "ferdium@lassul.us"
230 "start@lassul.us"
231 "pad@lassul.us"
232 "ups@lassul.us"
233 "zalando@lassul.us"
234 "trip@lassul.us"
235 "git@lassul.us"
236 "archive@lassul.us"
237 "bybit@lassul.us"
238 "okcupid@lassul.us"
239 "ing@lassul.us"
240 "hornbach@lassul.us"
241 "huk@lassul.us"
242 "kleinanzeigen@lassul.us"
243 "nzbgeek@lassul.us"
244 "bonify@lassul.us"
245 "bitpanda@lassul.us"
246 "schufa@lassul.us"
247 ];
248
249in
250{
251 imports = [
252 self.inputs.stockholm.nixosModules.exim-smarthost
253 ];
254
255 clan.core.vars.generators."lassul.us-dkim" = {
256 files."lassul.us.dkim.priv" = { };
257 files."lassul.us.dkim.pub".secret = false;
258 migrateFact = "lassul.us-dkim";
259 runtimeInputs = with pkgs; [
260 coreutils
261 openssl
262 ];
263 script = ''
264 openssl genrsa -out "$out"/lassul.us.dkim.priv 2048
265 openssl rsa -in "$out"/lassul.us.dkim.priv -pubout -outform der 2>/dev/null | openssl base64 -A > "$out"/lassul.us.dkim.pub
266 '';
267 };
268
269 krebs.exim-smarthost = {
270 enable = true;
271 dkim = [
272 {
273 domain = "lassul.us";
274 private_key = config.clan.core.vars.generators."lassul.us-dkim".files."lassul.us.dkim.priv".path;
275 }
276 ];
277 ssl_cert = "/var/lib/acme/mail.lassul.us/fullchain.pem";
278 ssl_key = "/var/lib/acme/mail.lassul.us/key.pem";
279 primary_hostname = "lassul.us";
280 sender_domains = [
281 "lassul.us"
282 ];
283 relay_from_hosts = map (host: host.nets.retiolum.ip6.addr) [
284 config.krebs.hosts.aergia
285 config.krebs.hosts.ignavia
286 config.krebs.hosts.coaxmetal
287 config.krebs.hosts.green
288 config.krebs.hosts.mors
289 ];
290 internet-aliases = map (from: { inherit from to; }) mails ++ [
291 ];
292 system-aliases = [
293 {
294 from = "mailer-daemon";
295 to = "postmaster";
296 }
297 {
298 from = "postmaster";
299 to = "root";
300 }
301 {
302 from = "nobody";
303 to = "root";
304 }
305 {
306 from = "hostmaster";
307 to = "root";
308 }
309 {
310 from = "usenet";
311 to = "root";
312 }
313 {
314 from = "news";
315 to = "root";
316 }
317 {
318 from = "webmaster";
319 to = "root";
320 }
321 {
322 from = "www";
323 to = "root";
324 }
325 {
326 from = "ftp";
327 to = "root";
328 }
329 {
330 from = "abuse";
331 to = "root";
332 }
333 {
334 from = "noc";
335 to = "root";
336 }
337 {
338 from = "security";
339 to = "root";
340 }
341 {
342 from = "root";
343 to = "lass";
344 }
345 ];
346 };
347 krebs.iptables.tables.filter.INPUT.rules = [
348 {
349 predicate = "-p tcp --dport smtp";
350 target = "ACCEPT";
351 }
352 ];
353
354 security.acme.certs."mail.lassul.us" = {
355 group = "lasscert";
356 webroot = "/var/lib/acme/acme-challenge";
357 };
358 users.groups.lasscert.members = [
359 "dovecot2"
360 "exim"
361 "nginx"
362 ];
363}