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