rev |
line source |
meillo@0
|
1 % chaos seminar talk about masqmail
|
meillo@0
|
2 %
|
meillo@0
|
3 % markus schnalke <meillo@marmaro.de>
|
meillo@0
|
4 % since 2009-02-24
|
meillo@0
|
5
|
meillo@0
|
6
|
meillo@0
|
7 \documentclass{beamer}
|
meillo@0
|
8
|
meillo@0
|
9 \title{masqmail}
|
meillo@0
|
10 \author{markus schnalke}
|
meillo@0
|
11 \date{2009-03-09}
|
meillo@0
|
12
|
meillo@0
|
13 \usepackage[utf8]{inputenc}
|
meillo@0
|
14 \usepackage{url}
|
meillo@0
|
15 \usepackage{graphicx}
|
meillo@0
|
16 \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex}
|
meillo@0
|
17
|
meillo@0
|
18 \newcommand{\secframe}[1]{
|
meillo@0
|
19 \section{#1}
|
meillo@0
|
20 \frame{ \vfill\vfill \centerline{ \huge #1 } \vfill }
|
meillo@0
|
21 }
|
meillo@0
|
22
|
meillo@0
|
23 \newcommand{\ft}[1]{
|
meillo@0
|
24 \frametitle{#1}
|
meillo@0
|
25 }
|
meillo@0
|
26
|
meillo@1
|
27 \newcommand{\oneline}[1]{
|
meillo@1
|
28 \frame{
|
meillo@1
|
29 \vfill\vfill
|
meillo@3
|
30 \centerline{#1}
|
meillo@1
|
31 \vfill
|
meillo@1
|
32 }
|
meillo@1
|
33 }
|
meillo@1
|
34
|
meillo@1
|
35
|
meillo@0
|
36
|
meillo@0
|
37 \begin{document}
|
meillo@0
|
38
|
meillo@0
|
39
|
meillo@0
|
40 \frame{
|
meillo@0
|
41
|
meillo@0
|
42 \vspace{8em}
|
meillo@0
|
43 \begin{center}
|
meillo@0
|
44
|
meillo@0
|
45 {\huge\bf masqmail}
|
meillo@0
|
46
|
meillo@0
|
47 a mail transfer agent for workstations and small networks
|
meillo@0
|
48
|
meillo@0
|
49 \vspace{6em}
|
meillo@0
|
50
|
meillo@0
|
51 { \tiny
|
meillo@0
|
52 markus schnalke \textless{}meillo@marmaro.de\textgreater{}
|
meillo@0
|
53 }
|
meillo@0
|
54
|
meillo@0
|
55 \end{center}
|
meillo@0
|
56 }
|
meillo@0
|
57
|
meillo@0
|
58
|
meillo@0
|
59
|
meillo@2
|
60 \secframe{about me}
|
meillo@0
|
61
|
meillo@0
|
62
|
meillo@2
|
63 \frame{\ft{markus schnalke}
|
meillo@0
|
64
|
meillo@5
|
65 past:
|
meillo@0
|
66
|
meillo@5
|
67 \qquad Business Information Systems\\
|
meillo@5
|
68 \qquad at University of Applied Sciences, Ulm
|
meillo@2
|
69
|
meillo@5
|
70 \qquad Diploma Thesis about masqmail
|
meillo@2
|
71
|
meillo@2
|
72
|
meillo@5
|
73 future:
|
meillo@2
|
74
|
meillo@5
|
75 \qquad Master in Informatics\\
|
meillo@5
|
76 \qquad here at University, Ulm
|
meillo@0
|
77
|
meillo@0
|
78 }
|
meillo@0
|
79
|
meillo@0
|
80
|
meillo@2
|
81 \frame{\ft{I am interested in}
|
meillo@0
|
82
|
meillo@2
|
83 Unix Philosophy
|
meillo@0
|
84
|
meillo@2
|
85 suckless software
|
meillo@0
|
86
|
meillo@0
|
87 Free Software
|
meillo@0
|
88
|
meillo@0
|
89 Debian
|
meillo@0
|
90
|
meillo@2
|
91 }
|
meillo@0
|
92
|
meillo@2
|
93
|
meillo@2
|
94
|
meillo@2
|
95
|
meillo@2
|
96 \secframe{this talk}
|
meillo@2
|
97
|
meillo@2
|
98
|
meillo@2
|
99 \frame{ \ft{overview}
|
meillo@2
|
100
|
meillo@6
|
101 1) prerequisites (5\%) %3
|
meillo@2
|
102
|
meillo@6
|
103 2) about masqmail (25\%) %15
|
meillo@2
|
104
|
meillo@6
|
105 3) the thesis (60\%) %6 + 9 + 7 + 4 + 6 = 32
|
meillo@2
|
106
|
meillo@6
|
107 4) help wanted (10\%) %5
|
meillo@6
|
108
|
meillo@6
|
109 %== 55
|
meillo@0
|
110
|
meillo@0
|
111 }
|
meillo@0
|
112
|
meillo@0
|
113
|
meillo@0
|
114
|
meillo@0
|
115
|
meillo@0
|
116
|
meillo@0
|
117
|
meillo@2
|
118
|
meillo@2
|
119
|
meillo@3
|
120 \secframe{email? MTA? \dots}
|
meillo@2
|
121
|
meillo@2
|
122
|
meillo@2
|
123 \frame{\ft{What are MTAs}
|
meillo@2
|
124
|
meillo@2
|
125 MTA = Mail Transfer Agent
|
meillo@2
|
126
|
meillo@2
|
127 the post offices of email
|
meillo@2
|
128
|
meillo@3
|
129 MTAs transfer mail from senders to recipients
|
meillo@2
|
130
|
meillo@2
|
131 }
|
meillo@2
|
132
|
meillo@2
|
133
|
meillo@2
|
134 \frame{\ft{mail agents}
|
meillo@2
|
135
|
meillo@2
|
136 \begin{center}
|
meillo@2
|
137 \includegraphics[width=0.8\textwidth]{fig/mail-agents.eps}
|
meillo@2
|
138 \end{center}
|
meillo@2
|
139
|
meillo@2
|
140 }
|
meillo@2
|
141
|
meillo@2
|
142
|
meillo@2
|
143 \oneline{questions?}
|
meillo@2
|
144
|
meillo@2
|
145
|
meillo@2
|
146
|
meillo@2
|
147
|
meillo@2
|
148
|
meillo@2
|
149
|
meillo@3
|
150
|
meillo@3
|
151
|
meillo@3
|
152
|
meillo@3
|
153
|
meillo@3
|
154
|
meillo@0
|
155 \secframe{about masqmail}
|
meillo@0
|
156
|
meillo@0
|
157
|
meillo@0
|
158
|
meillo@0
|
159 \frame{ \ft{what is masqmail}
|
meillo@0
|
160
|
meillo@2
|
161 an MTA
|
meillo@0
|
162
|
meillo@1
|
163 a small one
|
meillo@0
|
164
|
meillo@2
|
165 one for special setups
|
meillo@0
|
166
|
meillo@0
|
167 }
|
meillo@0
|
168
|
meillo@0
|
169
|
meillo@0
|
170 \frame{ \ft{masqmail's niche}
|
meillo@0
|
171
|
meillo@0
|
172 non-permanent online connections
|
meillo@0
|
173
|
meillo@0
|
174 over multiple providers
|
meillo@0
|
175
|
meillo@1
|
176 especially for workstations and small networks
|
meillo@1
|
177
|
meillo@2
|
178 also notebooks
|
meillo@0
|
179
|
meillo@0
|
180 }
|
meillo@0
|
181
|
meillo@0
|
182
|
meillo@0
|
183 \frame{ \ft{history}
|
meillo@0
|
184
|
meillo@0
|
185 written by Oliver Kurth
|
meillo@0
|
186
|
meillo@2
|
187 1999 -- 2003
|
meillo@0
|
188
|
meillo@2
|
189 GPL
|
meillo@0
|
190
|
meillo@5
|
191 about 9\,000 lines of C
|
meillo@0
|
192
|
meillo@0
|
193 }
|
meillo@0
|
194
|
meillo@0
|
195
|
meillo@2
|
196 \frame{\ft{guessed}
|
meillo@2
|
197
|
meillo@2
|
198 initially written to use masqdialer-controlled online connections
|
meillo@2
|
199
|
meillo@2
|
200 thus: source of the name (``masq\dots'') (not ``\dots qmail'')
|
meillo@2
|
201
|
meillo@2
|
202 }
|
meillo@2
|
203
|
meillo@2
|
204
|
meillo@2
|
205
|
meillo@0
|
206 \frame{ \ft{masqmail today}
|
meillo@0
|
207
|
meillo@0
|
208 development stopped in 2003
|
meillo@0
|
209
|
meillo@0
|
210 not maintained
|
meillo@0
|
211
|
meillo@7
|
212 even its original website is down
|
meillo@0
|
213
|
meillo@1
|
214 but included in Debian, Ubuntu, Arch, Mandriva, FreeBSD
|
meillo@0
|
215
|
meillo@0
|
216 }
|
meillo@0
|
217
|
meillo@0
|
218
|
meillo@0
|
219 \frame{ \ft{value of masqmail}
|
meillo@0
|
220
|
meillo@0
|
221 covers a niche
|
meillo@0
|
222
|
meillo@0
|
223 has unique features
|
meillo@0
|
224
|
meillo@0
|
225 has users!
|
meillo@0
|
226
|
meillo@0
|
227 }
|
meillo@0
|
228
|
meillo@0
|
229
|
meillo@0
|
230 \frame{ \ft{problems of masqmail}
|
meillo@0
|
231
|
meillo@0
|
232 no further development
|
meillo@0
|
233
|
meillo@7
|
234 emailing has changed
|
meillo@7
|
235
|
meillo@0
|
236 unfixed bugs
|
meillo@0
|
237
|
meillo@0
|
238 }
|
meillo@0
|
239
|
meillo@0
|
240
|
meillo@3
|
241 \oneline{questions?}
|
meillo@0
|
242
|
meillo@0
|
243
|
meillo@1
|
244
|
meillo@2
|
245
|
meillo@2
|
246
|
meillo@2
|
247
|
meillo@2
|
248
|
meillo@2
|
249
|
meillo@2
|
250
|
meillo@2
|
251
|
meillo@2
|
252
|
meillo@2
|
253
|
meillo@2
|
254
|
meillo@2
|
255
|
meillo@2
|
256
|
meillo@2
|
257
|
meillo@3
|
258 \secframe{when I met masqmail}
|
meillo@1
|
259
|
meillo@1
|
260
|
meillo@5
|
261 \frame{\ft{Fall 2007}
|
meillo@0
|
262
|
meillo@5
|
263 started to use masqmail
|
meillo@0
|
264
|
meillo@7
|
265 because of its small size
|
meillo@7
|
266
|
meillo@5
|
267 }
|
meillo@5
|
268
|
meillo@5
|
269 \frame{\ft{Spring 2008}
|
meillo@5
|
270
|
meillo@5
|
271 problem: realized it is unmaintained in Debian
|
meillo@0
|
272
|
meillo@1
|
273 A situation to be changed ... but by whom?
|
meillo@0
|
274
|
meillo@5
|
275 \dots me? No!
|
meillo@0
|
276
|
meillo@0
|
277 }
|
meillo@0
|
278
|
meillo@0
|
279
|
meillo@5
|
280 \frame{\ft{Summer 2008}
|
meillo@0
|
281
|
meillo@1
|
282 problem: find a topic for the diploma thesis
|
meillo@0
|
283
|
meillo@5
|
284 }
|
meillo@5
|
285
|
meillo@5
|
286
|
meillo@5
|
287 \frame{\ft{while lying in bed some night}
|
meillo@5
|
288
|
meillo@7
|
289 the great idea: solve both problems at once
|
meillo@0
|
290
|
meillo@5
|
291 1) \textbf{use the diploma thesis to revive masqmail}
|
meillo@3
|
292
|
meillo@5
|
293 2) \textbf{use masqmail to do a great diploma thesis}
|
meillo@0
|
294
|
meillo@0
|
295 }
|
meillo@0
|
296
|
meillo@0
|
297
|
meillo@1
|
298 \frame{\ft{advising professor}
|
meillo@1
|
299
|
meillo@5
|
300 professor Markus Sch\"affter
|
meillo@1
|
301
|
meillo@1
|
302 thanks!
|
meillo@1
|
303
|
meillo@1
|
304 }
|
meillo@1
|
305
|
meillo@1
|
306
|
meillo@1
|
307
|
meillo@2
|
308
|
meillo@5
|
309 \frame{\ft{logical decisions}
|
meillo@2
|
310
|
meillo@5
|
311 motivation:
|
meillo@2
|
312
|
meillo@5
|
313 \qquad for myself
|
meillo@2
|
314
|
meillo@5
|
315 \qquad for the community
|
meillo@2
|
316
|
meillo@5
|
317 thus:
|
meillo@2
|
318
|
meillo@5
|
319 \qquad write in English
|
meillo@2
|
320
|
meillo@5
|
321 \qquad make the thesis free available
|
meillo@2
|
322
|
meillo@2
|
323 }
|
meillo@2
|
324
|
meillo@2
|
325
|
meillo@2
|
326
|
meillo@0
|
327 \frame{\ft{guiding principle}
|
meillo@0
|
328
|
meillo@0
|
329 \begin{center}
|
meillo@2
|
330 \it
|
meillo@2
|
331 Do what you think is interesting,\\
|
meillo@2
|
332 do something that you think is fun and worthwhile,\\
|
meillo@2
|
333 because otherwise you won't do it well anyway.
|
meillo@0
|
334
|
meillo@2
|
335 ---Brian~W.\ Kernighan---
|
meillo@0
|
336 \end{center}
|
meillo@0
|
337
|
meillo@0
|
338 }
|
meillo@0
|
339
|
meillo@0
|
340
|
meillo@0
|
341
|
meillo@0
|
342
|
meillo@1
|
343
|
meillo@1
|
344
|
meillo@1
|
345
|
meillo@2
|
346 \secframe{the thesis in short}
|
meillo@0
|
347
|
meillo@0
|
348
|
meillo@0
|
349
|
meillo@4
|
350 %\frame{\ft{planned was}
|
meillo@4
|
351 %
|
meillo@4
|
352 %1) purpose and structure of an MTA/of masqmail
|
meillo@4
|
353 %
|
meillo@4
|
354 %2) security analysis
|
meillo@4
|
355 %
|
meillo@4
|
356 %3) code improvements
|
meillo@4
|
357 %
|
meillo@4
|
358 %4) documentation, test, distribution
|
meillo@4
|
359 %
|
meillo@4
|
360 %With the goal to release a new version and get it into Debian
|
meillo@4
|
361 %
|
meillo@4
|
362 %}
|
meillo@4
|
363 %
|
meillo@4
|
364 %
|
meillo@4
|
365 %\frame{\ft{however, it resulted in}
|
meillo@4
|
366 %
|
meillo@4
|
367 %1) introduction
|
meillo@4
|
368 %
|
meillo@4
|
369 %2) market analysis
|
meillo@4
|
370 %
|
meillo@4
|
371 %3) mail transfer agents
|
meillo@4
|
372 %
|
meillo@4
|
373 %4) masqmail's present and future
|
meillo@4
|
374 %
|
meillo@4
|
375 %5) improvement plans
|
meillo@4
|
376 %
|
meillo@4
|
377 %Became pretty theoretic (I don't worry)
|
meillo@4
|
378 %
|
meillo@4
|
379 %}
|
meillo@1
|
380
|
meillo@1
|
381
|
meillo@1
|
382
|
meillo@1
|
383
|
meillo@0
|
384
|
meillo@0
|
385
|
meillo@0
|
386
|
meillo@0
|
387 \frame{ \ft{ch01: introduction}
|
meillo@0
|
388
|
meillo@0
|
389 general prerequisites
|
meillo@0
|
390
|
meillo@0
|
391 the masqmail project
|
meillo@0
|
392
|
meillo@0
|
393 value and problems of masqmail
|
meillo@0
|
394
|
meillo@1
|
395 \textbf{$\Rightarrow$ reasons to do this thesis}
|
meillo@0
|
396
|
meillo@0
|
397 }
|
meillo@0
|
398
|
meillo@0
|
399
|
meillo@0
|
400
|
meillo@0
|
401 \frame{ \ft{ch02: market analysis}
|
meillo@0
|
402
|
meillo@0
|
403 classification, life cycle, and trends of electronic communication
|
meillo@0
|
404
|
meillo@0
|
405 SWOT and trends for email
|
meillo@0
|
406
|
meillo@1
|
407 \textbf{$\Rightarrow$ show that email is expected to survive}
|
meillo@0
|
408
|
meillo@0
|
409 }
|
meillo@0
|
410
|
meillo@0
|
411
|
meillo@0
|
412 \frame{ \ft{ch03: mail transfer agents}
|
meillo@0
|
413
|
meillo@0
|
414 classification of MTAs
|
meillo@0
|
415
|
meillo@0
|
416 masqmail's competitors
|
meillo@0
|
417
|
meillo@0
|
418 short comparison
|
meillo@0
|
419
|
meillo@1
|
420 \textbf{$\Rightarrow$ provide knowledge for following chapters}
|
meillo@0
|
421
|
meillo@0
|
422 }
|
meillo@0
|
423
|
meillo@0
|
424
|
meillo@0
|
425
|
meillo@0
|
426
|
meillo@0
|
427 \frame{ \ft{ch04: masqmail's present and future}
|
meillo@0
|
428
|
meillo@0
|
429 the goal (revive masqmail)
|
meillo@0
|
430
|
meillo@0
|
431 requirements
|
meillo@0
|
432
|
meillo@0
|
433 \quad\quad fulfilled requirements
|
meillo@0
|
434
|
meillo@0
|
435 \quad\quad work to do
|
meillo@0
|
436
|
meillo@0
|
437 ways for further development
|
meillo@0
|
438
|
meillo@0
|
439 result
|
meillo@0
|
440
|
meillo@1
|
441 \textbf{$\Rightarrow$ the core of the thesis: a plan to revive masqmail}
|
meillo@0
|
442
|
meillo@0
|
443 }
|
meillo@0
|
444
|
meillo@0
|
445
|
meillo@0
|
446
|
meillo@1
|
447 \frame{ \ft{ch05: improvement plans}
|
meillo@1
|
448
|
meillo@1
|
449 more detailed descriptions of the work tasks
|
meillo@1
|
450
|
meillo@1
|
451 \textbf{$\Rightarrow$ recommendations how to do the proposed changes}
|
meillo@1
|
452
|
meillo@1
|
453 }
|
meillo@1
|
454
|
meillo@1
|
455
|
meillo@1
|
456 \oneline{questions?}
|
meillo@1
|
457
|
meillo@1
|
458
|
meillo@1
|
459
|
meillo@1
|
460
|
meillo@1
|
461
|
meillo@2
|
462
|
meillo@6
|
463 \oneline{\it we're half way through :-) }
|
meillo@2
|
464
|
meillo@2
|
465
|
meillo@2
|
466
|
meillo@2
|
467
|
meillo@2
|
468
|
meillo@2
|
469
|
meillo@2
|
470 \secframe{in detail: ch03 MTAs}
|
meillo@2
|
471
|
meillo@2
|
472
|
meillo@1
|
473
|
meillo@1
|
474 \frame{\ft{MTAs}
|
meillo@1
|
475
|
meillo@5
|
476 relay-only MTAs (forwarders):
|
meillo@1
|
477
|
meillo@5
|
478 \qquad nullmailer, ssmtp
|
meillo@1
|
479
|
meillo@5
|
480 groupware:
|
meillo@5
|
481
|
meillo@5
|
482 \qquad Lotus Notes, Exchange, opengroupware.org
|
meillo@5
|
483
|
meillo@5
|
484 ``real'' MTAs:
|
meillo@5
|
485
|
meillo@5
|
486 \qquad sendmail, exim, qmail, postfix, masqmail
|
meillo@1
|
487
|
meillo@1
|
488 }
|
meillo@1
|
489
|
meillo@1
|
490
|
meillo@1
|
491
|
meillo@1
|
492 \frame{\ft{market shares}
|
meillo@1
|
493
|
meillo@4
|
494 \input{tbl/mta-market-share.tbl}
|
meillo@4
|
495
|
meillo@4
|
496 }
|
meillo@4
|
497
|
meillo@4
|
498
|
meillo@4
|
499
|
meillo@4
|
500 \frame{\ft{comparison}
|
meillo@4
|
501
|
meillo@4
|
502 \input{tbl/mta-comparison.tbl}
|
meillo@1
|
503
|
meillo@1
|
504 }
|
meillo@1
|
505
|
meillo@1
|
506
|
meillo@1
|
507
|
meillo@1
|
508 \frame{\ft{why not sendmail}
|
meillo@1
|
509
|
meillo@1
|
510 - too large
|
meillo@1
|
511
|
meillo@1
|
512 - too complex
|
meillo@1
|
513
|
meillo@1
|
514 - structurally insecure
|
meillo@1
|
515
|
meillo@1
|
516 - simply obsolete
|
meillo@1
|
517
|
meillo@1
|
518 }
|
meillo@1
|
519
|
meillo@1
|
520 \frame{\ft{why not exim}
|
meillo@1
|
521
|
meillo@1
|
522 - too large
|
meillo@1
|
523
|
meillo@1
|
524 - designed for always online hosts
|
meillo@1
|
525
|
meillo@1
|
526 }
|
meillo@1
|
527
|
meillo@1
|
528 \frame{\ft{why not qmail}
|
meillo@1
|
529
|
meillo@1
|
530 - outdated
|
meillo@1
|
531
|
meillo@1
|
532 - designed for always online hosts with fast connections
|
meillo@1
|
533
|
meillo@1
|
534 }
|
meillo@1
|
535
|
meillo@1
|
536 \frame{\ft{why not postfix}
|
meillo@1
|
537
|
meillo@1
|
538 - too large
|
meillo@1
|
539
|
meillo@5
|
540 - too complex
|
meillo@5
|
541
|
meillo@1
|
542 - not designed for masqmail's scenario
|
meillo@1
|
543
|
meillo@1
|
544 }
|
meillo@1
|
545
|
meillo@1
|
546 \frame{\ft{in summary}
|
meillo@1
|
547
|
meillo@1
|
548 - other MTAs are bad substitutes for masqmail
|
meillo@1
|
549
|
meillo@1
|
550 - though they seem to be generally able to be substitutes
|
meillo@1
|
551
|
meillo@1
|
552 }
|
meillo@1
|
553
|
meillo@1
|
554
|
meillo@1
|
555 \oneline{comments and annotations?}
|
meillo@1
|
556
|
meillo@1
|
557
|
meillo@1
|
558
|
meillo@1
|
559
|
meillo@1
|
560
|
meillo@1
|
561
|
meillo@1
|
562
|
meillo@1
|
563
|
meillo@1
|
564
|
meillo@2
|
565
|
meillo@2
|
566
|
meillo@2
|
567
|
meillo@2
|
568
|
meillo@2
|
569
|
meillo@2
|
570
|
meillo@2
|
571 \secframe{in detail: ch04 present and future}
|
meillo@2
|
572
|
meillo@2
|
573
|
meillo@2
|
574 \frame{\ft{functional requirements}
|
meillo@2
|
575
|
meillo@4
|
576 \input{tbl/func-requirements.tbl}
|
meillo@4
|
577
|
meillo@2
|
578 }
|
meillo@2
|
579
|
meillo@2
|
580 \frame{\ft{non-functional requirements}
|
meillo@2
|
581
|
meillo@4
|
582 \input{tbl/nonf-requirements.tbl}
|
meillo@2
|
583
|
meillo@2
|
584 }
|
meillo@2
|
585
|
meillo@4
|
586 \frame{\ft{work tasks}
|
meillo@4
|
587
|
meillo@4
|
588 TODO\,1: Encryption
|
meillo@4
|
589
|
meillo@4
|
590 TODO\,2: Authentication
|
meillo@4
|
591
|
meillo@4
|
592 TODO\,3: Security
|
meillo@4
|
593
|
meillo@4
|
594 TODO\,4: Reliability
|
meillo@4
|
595
|
meillo@4
|
596 TODO\,5: Spam handling
|
meillo@4
|
597
|
meillo@4
|
598 TODO\,6: Extendability
|
meillo@4
|
599
|
meillo@2
|
600
|
meillo@2
|
601 }
|
meillo@2
|
602
|
meillo@4
|
603
|
meillo@4
|
604 \frame{\ft{further development}
|
meillo@4
|
605
|
meillo@5
|
606 1) improve existing code
|
meillo@4
|
607
|
meillo@5
|
608 2) add wrappers and interposition filters
|
meillo@4
|
609
|
meillo@5
|
610 3) redesign and rewrite from scratch
|
meillo@5
|
611
|
meillo@5
|
612 \quad
|
meillo@5
|
613
|
meillo@5
|
614 $1) + 2) = 13$ \quad vs. \quad $3) = 17$
|
meillo@2
|
615
|
meillo@2
|
616 }
|
meillo@2
|
617
|
meillo@2
|
618
|
meillo@4
|
619 \frame{\ft{architecture}
|
meillo@4
|
620
|
meillo@4
|
621 \begin{center}
|
meillo@4
|
622 \includegraphics[width=0.8\textwidth]{fig/callgraph.eps}
|
meillo@4
|
623 \end{center}
|
meillo@2
|
624
|
meillo@2
|
625 }
|
meillo@2
|
626
|
meillo@2
|
627
|
meillo@4
|
628
|
meillo@1
|
629 \frame{\ft{the result}
|
meillo@0
|
630
|
meillo@0
|
631 ``one fits all'' is not possible
|
meillo@0
|
632
|
meillo@0
|
633 hence: different strategies for different goals
|
meillo@0
|
634
|
meillo@0
|
635 short-term goal: keep masqmail usable\\
|
meillo@5
|
636 \qquad $\rightarrow$ improve existing code
|
meillo@0
|
637
|
meillo@0
|
638 long-term goal: make masqmail future-proof\\
|
meillo@5
|
639 \qquad $\rightarrow$ recreate it from scratch
|
meillo@0
|
640
|
meillo@0
|
641 disadvantage: more work
|
meillo@0
|
642
|
meillo@0
|
643 }
|
meillo@0
|
644
|
meillo@0
|
645
|
meillo@5
|
646 \oneline{questions?}
|
meillo@0
|
647
|
meillo@0
|
648
|
meillo@0
|
649
|
meillo@0
|
650
|
meillo@0
|
651
|
meillo@0
|
652
|
meillo@0
|
653
|
meillo@2
|
654 \secframe{in detail: ch05.1 existing code}
|
meillo@2
|
655
|
meillo@2
|
656
|
meillo@2
|
657
|
meillo@2
|
658
|
meillo@5
|
659 \frame{\ft{TODO 1: Encryption}
|
meillo@2
|
660
|
meillo@5
|
661 STARTTLS
|
meillo@2
|
662
|
meillo@5
|
663 qmail patch as template
|
meillo@5
|
664
|
meillo@5
|
665 affected files: smtp\_in.c, smtp\_out.c, conf.c
|
meillo@2
|
666
|
meillo@2
|
667 }
|
meillo@2
|
668
|
meillo@2
|
669
|
meillo@2
|
670
|
meillo@5
|
671 \frame{\ft{TODO 2: Authentication}
|
meillo@5
|
672
|
meillo@5
|
673 static: TCP Wrapper
|
meillo@5
|
674
|
meillo@5
|
675 dynamic: SMTP-AUTH with SASL
|
meillo@5
|
676
|
meillo@5
|
677 affected files: smtp\_in.c, smtp\_out.c, conf.c
|
meillo@5
|
678
|
meillo@5
|
679 }
|
meillo@5
|
680
|
meillo@5
|
681
|
meillo@5
|
682
|
meillo@5
|
683 \frame{\ft{TODO 3: Security}
|
meillo@5
|
684
|
meillo@5
|
685 mail security layers
|
meillo@5
|
686
|
meillo@5
|
687 \begin{center}
|
meillo@5
|
688 \includegraphics[width=\textwidth]{fig/proxy-setup.eps}
|
meillo@5
|
689 \end{center}
|
meillo@5
|
690
|
meillo@5
|
691 }
|
meillo@5
|
692
|
meillo@5
|
693
|
meillo@5
|
694 \oneline{questions?}
|
meillo@5
|
695
|
meillo@2
|
696
|
meillo@2
|
697
|
meillo@2
|
698
|
meillo@2
|
699
|
meillo@2
|
700
|
meillo@2
|
701
|
meillo@2
|
702 \secframe{in detail: ch05.2 new design}
|
meillo@2
|
703
|
meillo@5
|
704 \frame{\ft{design goals}
|
meillo@5
|
705
|
meillo@5
|
706 throughout compartmentalization
|
meillo@5
|
707
|
meillo@5
|
708 free internal system from in and out channels
|
meillo@5
|
709
|
meillo@5
|
710 single point for scanning
|
meillo@5
|
711
|
meillo@5
|
712 concentrate on mail transfer
|
meillo@5
|
713
|
meillo@5
|
714 keep it simple, clear, and general
|
meillo@2
|
715
|
meillo@2
|
716 }
|
meillo@2
|
717
|
meillo@6
|
718 \frame{\ft{incoming and outgoing}
|
meillo@2
|
719
|
meillo@6
|
720 in/out:
|
meillo@2
|
721
|
meillo@6
|
722 \qquad arbitrary protocol handlers (incoming/outgoing)
|
meillo@6
|
723
|
meillo@6
|
724 \qquad one queue-in module; one queue-out module
|
meillo@6
|
725
|
meillo@6
|
726 \qquad no own MDA, only a pipe module
|
meillo@6
|
727
|
meillo@6
|
728 route management:
|
meillo@6
|
729
|
meillo@6
|
730 \qquad the thing special to masqmail
|
meillo@6
|
731
|
meillo@6
|
732 \qquad done just before the outgoing modules
|
meillo@2
|
733
|
meillo@5
|
734 }
|
meillo@2
|
735
|
meillo@2
|
736
|
meillo@6
|
737 \frame{\ft{within the queue}
|
meillo@2
|
738
|
meillo@6
|
739 mail sanitizing:
|
meillo@6
|
740
|
meillo@6
|
741 \qquad qmail: ``don't parse'' $\rightarrow$ parse very carefully
|
meillo@6
|
742
|
meillo@6
|
743 \qquad Jon Postel's robustness principle
|
meillo@6
|
744
|
meillo@6
|
745 spool files:
|
meillo@6
|
746
|
meillo@6
|
747 \qquad preferably in the system's native format
|
meillo@2
|
748
|
meillo@5
|
749 }
|
meillo@5
|
750
|
meillo@5
|
751
|
meillo@6
|
752 \frame{\ft{auth, enc, spam}
|
meillo@5
|
753
|
meillo@6
|
754 auth and enc:
|
meillo@6
|
755
|
meillo@6
|
756 \qquad in receiving and sending modules (?)
|
meillo@6
|
757
|
meillo@6
|
758 \qquad with library code
|
meillo@6
|
759
|
meillo@6
|
760 spam and malware:
|
meillo@6
|
761
|
meillo@6
|
762 \qquad receiving modules vs. a scanning module
|
meillo@6
|
763
|
meillo@6
|
764 \qquad in both places?
|
meillo@6
|
765
|
meillo@6
|
766 \qquad malware scanning is not the MTA's job
|
meillo@5
|
767
|
meillo@5
|
768 }
|
meillo@5
|
769
|
meillo@5
|
770
|
meillo@5
|
771
|
meillo@5
|
772 \frame{\ft{the proposed architecture}
|
meillo@5
|
773
|
meillo@5
|
774 \begin{center}
|
meillo@5
|
775 \includegraphics[width=0.9\textwidth]{fig/masqmail-arch-new.eps}
|
meillo@5
|
776 \end{center}
|
meillo@5
|
777
|
meillo@5
|
778 }
|
meillo@5
|
779
|
meillo@5
|
780
|
meillo@5
|
781 \oneline{questions?}
|
meillo@5
|
782
|
meillo@5
|
783
|
meillo@5
|
784
|
meillo@5
|
785
|
meillo@5
|
786
|
meillo@5
|
787 \secframe{help wanted!}
|
meillo@5
|
788
|
meillo@5
|
789
|
meillo@5
|
790 \frame{\ft{work to do}
|
meillo@5
|
791
|
meillo@5
|
792 add encryption, authentication, security
|
meillo@5
|
793
|
meillo@5
|
794 fix bugs
|
meillo@5
|
795
|
meillo@5
|
796 documentation
|
meillo@5
|
797
|
meillo@5
|
798 user guides and ``marketing''
|
meillo@5
|
799
|
meillo@5
|
800 create the new masqmail
|
meillo@5
|
801
|
meillo@5
|
802 }
|
meillo@5
|
803
|
meillo@5
|
804
|
meillo@5
|
805 \frame{\ft{current team}
|
meillo@5
|
806
|
meillo@5
|
807 \tiny me
|
meillo@5
|
808
|
meillo@5
|
809 }
|
meillo@5
|
810
|
meillo@5
|
811
|
meillo@5
|
812 \frame{\ft{}
|
meillo@5
|
813
|
meillo@5
|
814 project site:
|
meillo@5
|
815
|
meillo@5
|
816 \qquad \url{http://prog.marmaro.de/masqmail}
|
meillo@5
|
817
|
meillo@5
|
818 mailing list:
|
meillo@5
|
819
|
meillo@5
|
820 \qquad masqmail@marmaro.de
|
meillo@5
|
821
|
meillo@5
|
822 }
|
meillo@5
|
823
|
meillo@5
|
824
|
meillo@5
|
825 \frame{\ft{Debian}
|
meillo@5
|
826
|
meillo@5
|
827 I search for a DD to sponsor my masqmail work
|
meillo@5
|
828
|
meillo@5
|
829 please contact me!
|
meillo@5
|
830
|
meillo@5
|
831 }
|
meillo@5
|
832
|
meillo@5
|
833
|
meillo@5
|
834 \frame{\ft{you!}
|
meillo@5
|
835
|
meillo@5
|
836 I welcome your help!
|
meillo@5
|
837
|
meillo@5
|
838 I appreciate your advice!
|
meillo@5
|
839
|
meillo@5
|
840 I am thankful for your comments!
|
meillo@5
|
841
|
meillo@5
|
842 \quad
|
meillo@5
|
843
|
meillo@5
|
844 \textbf{help masqmail}
|
meillo@2
|
845
|
meillo@2
|
846 }
|
meillo@0
|
847
|
meillo@0
|
848
|
meillo@0
|
849
|
meillo@0
|
850
|
meillo@0
|
851
|
meillo@0
|
852
|
meillo@0
|
853
|
meillo@0
|
854 \frame{
|
meillo@0
|
855 \vfill\vfill
|
meillo@0
|
856 \centerline{\textbf{Thanks for your attention}}
|
meillo@0
|
857 \vfill
|
meillo@0
|
858 }
|
meillo@0
|
859
|
meillo@0
|
860
|
meillo@1
|
861 \frame{\ft{links}
|
meillo@1
|
862
|
meillo@6
|
863 \footnotesize
|
meillo@6
|
864
|
meillo@6
|
865 my diploma thesis\\
|
meillo@6
|
866 \qquad \url{http://marmaro.de/docs\#diploma}
|
meillo@6
|
867
|
meillo@6
|
868
|
meillo@6
|
869 masqmail's website\\
|
meillo@6
|
870 \qquad \url{http://prog.marmaro.de/masqmail}
|
meillo@6
|
871
|
meillo@6
|
872
|
meillo@6
|
873 masqmail mailing list\\
|
meillo@6
|
874 \qquad \url{masqmail@marmaro.de}\\
|
meillo@6
|
875 \qquad \url{minimalist@marmaro.de?subject=subscribe\%20masqmail}
|
meillo@6
|
876
|
meillo@6
|
877
|
meillo@6
|
878 suckless software\\
|
meillo@6
|
879 \qquad \url{http://www.suckless.org}
|
meillo@6
|
880
|
meillo@1
|
881
|
meillo@1
|
882 }
|
meillo@1
|
883
|
meillo@1
|
884
|
meillo@1
|
885
|
meillo@0
|
886
|
meillo@0
|
887 \frame{ \ft{software used}
|
meillo@0
|
888
|
meillo@0
|
889 Debian GNU/Linux
|
meillo@0
|
890
|
meillo@0
|
891 \LaTeX\ with the beamer classes
|
meillo@0
|
892
|
meillo@0
|
893 Vim, latexmk, and Mercurial
|
meillo@0
|
894
|
meillo@5
|
895 diagrams: PIC and groff
|
meillo@5
|
896
|
meillo@6
|
897 call graph: Egypt and dot
|
meillo@6
|
898
|
meillo@0
|
899 \vfill
|
meillo@0
|
900
|
meillo@0
|
901 {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }
|
meillo@0
|
902
|
meillo@0
|
903 }
|
meillo@0
|
904
|
meillo@0
|
905
|
meillo@0
|
906
|
meillo@0
|
907
|
meillo@0
|
908 \end{document}
|
meillo@0
|
909
|
meillo@0
|
910
|
meillo@0
|
911
|
meillo@0
|
912
|
meillo@0
|
913
|
meillo@0
|
914 \url{http://ulm.ccc.de/ChaosSeminar/2009/03_masqmail}
|