docs/masqmail-cs
view masqmail.tex @ 5:282b52d9de09
wrote parts about ch05 and about help; cleanups
author | meillo@marmaro.de |
---|---|
date | Thu, 05 Mar 2009 23:01:54 +0100 |
parents | 1197518aa221 |
children | 00207c2995ae |
line source
1 % chaos seminar talk about masqmail
2 %
3 % markus schnalke <meillo@marmaro.de>
4 % since 2009-02-24
7 \documentclass{beamer}
9 \title{masqmail}
10 \author{markus schnalke}
11 \date{2009-03-09}
13 \usepackage[utf8]{inputenc}
14 \usepackage{url}
15 \usepackage{graphicx}
16 \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex}
18 \newcommand{\secframe}[1]{
19 \section{#1}
20 \frame{ \vfill\vfill \centerline{ \huge #1 } \vfill }
21 }
23 \newcommand{\ft}[1]{
24 \frametitle{#1}
25 }
27 \newcommand{\oneline}[1]{
28 \frame{
29 \vfill\vfill
30 \centerline{#1}
31 \vfill
32 }
33 }
37 \begin{document}
40 \frame{
42 \vspace{8em}
43 \begin{center}
45 {\huge\bf masqmail}
47 a mail transfer agent for workstations and small networks
49 \vspace{6em}
51 { \tiny
52 markus schnalke \textless{}meillo@marmaro.de\textgreater{}
53 }
55 \end{center}
56 }
60 \secframe{about me}
63 \frame{\ft{markus schnalke}
65 past:
67 \qquad Business Information Systems\\
68 \qquad at University of Applied Sciences, Ulm
70 \qquad Diploma Thesis about masqmail
73 future:
75 \qquad Master in Informatics\\
76 \qquad here at University, Ulm
78 }
81 \frame{\ft{I am interested in}
83 Unix Philosophy
85 suckless software
87 Free Software
89 Debian
91 }
96 \secframe{this talk}
99 \frame{ \ft{overview}
101 1) prerequisites (xx\%)
103 2) about masqmail (xx\%)
105 3) the thesis (xx\%)
107 4) help wanted (xx\%)
109 }
118 \secframe{email? MTA? \dots}
121 \frame{\ft{What are MTAs}
123 MTA = Mail Transfer Agent
125 the post offices of email
127 MTAs transfer mail from senders to recipients
129 }
132 \frame{\ft{mail agents}
134 \begin{center}
135 \includegraphics[width=0.8\textwidth]{fig/mail-agents.eps}
136 \end{center}
138 }
141 \oneline{questions?}
153 \secframe{about masqmail}
157 \frame{ \ft{what is masqmail}
159 an MTA
161 a small one
163 one for special setups
165 }
168 \frame{ \ft{masqmail's niche}
170 non-permanent online connections
172 over multiple providers
174 especially for workstations and small networks
176 also notebooks
178 }
181 \frame{ \ft{history}
183 written by Oliver Kurth
185 1999 -- 2003
187 GPL
189 about 9\,000 lines of C
191 }
194 \frame{\ft{guessed}
196 initially written to use masqdialer-controlled online connections
198 thus: source of the name (``masq\dots'') (not ``\dots qmail'')
200 }
204 \frame{ \ft{masqmail today}
206 development stopped in 2003
208 not maintained
210 even its website is down
212 but included in Debian, Ubuntu, Arch, Mandriva, FreeBSD
214 }
217 \frame{ \ft{value of masqmail}
219 covers a niche
221 has unique features
223 has users!
225 }
228 \frame{ \ft{problems of masqmail}
230 no further development
232 unfixed bugs
234 emailing has changed
236 }
239 \oneline{questions?}
256 \secframe{when I met masqmail}
259 \frame{\ft{Fall 2007}
261 started to use masqmail
263 }
265 \frame{\ft{Spring 2008}
267 problem: realized it is unmaintained in Debian
269 A situation to be changed ... but by whom?
271 \dots me? No!
273 }
276 \frame{\ft{Summer 2008}
278 problem: find a topic for the diploma thesis
280 }
283 \frame{\ft{while lying in bed some night}
285 the great idea: solve both problems in once
287 1) \textbf{use the diploma thesis to revive masqmail}
289 2) \textbf{use masqmail to do a great diploma thesis}
291 }
294 \frame{\ft{advising professor}
296 professor Markus Sch\"affter
298 thanks!
300 }
305 \frame{\ft{logical decisions}
307 motivation:
309 \qquad for myself
311 \qquad for the community
313 thus:
315 \qquad write in English
317 \qquad make the thesis free available
319 }
323 \frame{\ft{guiding principle}
325 \begin{center}
326 \it
327 Do what you think is interesting,\\
328 do something that you think is fun and worthwhile,\\
329 because otherwise you won't do it well anyway.
331 ---Brian~W.\ Kernighan---
332 \end{center}
334 }
342 \secframe{the thesis in short}
346 %\frame{\ft{planned was}
347 %
348 %1) purpose and structure of an MTA/of masqmail
349 %
350 %2) security analysis
351 %
352 %3) code improvements
353 %
354 %4) documentation, test, distribution
355 %
356 %With the goal to release a new version and get it into Debian
357 %
358 %}
359 %
360 %
361 %\frame{\ft{however, it resulted in}
362 %
363 %1) introduction
364 %
365 %2) market analysis
366 %
367 %3) mail transfer agents
368 %
369 %4) masqmail's present and future
370 %
371 %5) improvement plans
372 %
373 %Became pretty theoretic (I don't worry)
374 %
375 %}
383 \frame{ \ft{ch01: introduction}
385 general prerequisites
387 the masqmail project
389 value and problems of masqmail
391 \textbf{$\Rightarrow$ reasons to do this thesis}
393 }
397 \frame{ \ft{ch02: market analysis}
399 classification, life cycle, and trends of electronic communication
401 SWOT and trends for email
403 \textbf{$\Rightarrow$ show that email is expected to survive}
405 }
408 \frame{ \ft{ch03: mail transfer agents}
410 classification of MTAs
412 masqmail's competitors
414 short comparison
416 \textbf{$\Rightarrow$ provide knowledge for following chapters}
418 }
423 \frame{ \ft{ch04: masqmail's present and future}
425 the goal (revive masqmail)
427 requirements
429 \quad\quad fulfilled requirements
431 \quad\quad work to do
433 ways for further development
435 result
437 \textbf{$\Rightarrow$ the core of the thesis: a plan to revive masqmail}
439 }
443 \frame{ \ft{ch05: improvement plans}
445 more detailed descriptions of the work tasks
447 \textbf{$\Rightarrow$ recommendations how to do the proposed changes}
449 }
452 \oneline{questions?}
465 \secframe{in detail: ch03 MTAs}
469 \frame{\ft{MTAs}
471 relay-only MTAs (forwarders):
473 \qquad nullmailer, ssmtp
475 groupware:
477 \qquad Lotus Notes, Exchange, opengroupware.org
479 ``real'' MTAs:
481 \qquad sendmail, exim, qmail, postfix, masqmail
483 }
487 \frame{\ft{market shares}
489 \input{tbl/mta-market-share.tbl}
491 }
495 \frame{\ft{comparison}
497 \input{tbl/mta-comparison.tbl}
499 }
503 \frame{\ft{why not sendmail}
505 - too large
507 - too complex
509 - structurally insecure
511 - simply obsolete
513 }
515 \frame{\ft{why not exim}
517 - too large
519 - designed for always online hosts
521 }
523 \frame{\ft{why not qmail}
525 - outdated
527 - designed for always online hosts with fast connections
529 }
531 \frame{\ft{why not postfix}
533 - too large
535 - too complex
537 - not designed for masqmail's scenario
539 }
541 \frame{\ft{in summary}
543 - other MTAs are bad substitutes for masqmail
545 - though they seem to be generally able to be substitutes
547 }
550 \oneline{comments and annotations?}
566 \secframe{in detail: ch04 present and future}
569 \frame{\ft{functional requirements}
571 \input{tbl/func-requirements.tbl}
573 }
575 \frame{\ft{non-functional requirements}
577 \input{tbl/nonf-requirements.tbl}
579 }
581 \frame{\ft{work tasks}
583 TODO\,1: Encryption
585 TODO\,2: Authentication
587 TODO\,3: Security
589 TODO\,4: Reliability
591 TODO\,5: Spam handling
593 TODO\,6: Extendability
596 }
599 \frame{\ft{further development}
601 1) improve existing code
603 2) add wrappers and interposition filters
605 3) redesign and rewrite from scratch
607 \quad
609 $1) + 2) = 13$ \quad vs. \quad $3) = 17$
611 }
614 \frame{\ft{architecture}
616 \begin{center}
617 \includegraphics[width=0.8\textwidth]{fig/callgraph.eps}
618 \end{center}
620 }
624 \frame{\ft{the result}
626 ``one fits all'' is not possible
628 hence: different strategies for different goals
630 short-term goal: keep masqmail usable\\
631 \qquad $\rightarrow$ improve existing code
633 long-term goal: make masqmail future-proof\\
634 \qquad $\rightarrow$ recreate it from scratch
636 disadvantage: more work
638 }
641 \oneline{questions?}
649 \secframe{in detail: ch05.1 existing code}
654 \frame{\ft{TODO 1: Encryption}
656 STARTTLS
658 qmail patch as template
660 affected files: smtp\_in.c, smtp\_out.c, conf.c
662 }
666 \frame{\ft{TODO 2: Authentication}
668 static: TCP Wrapper
670 dynamic: SMTP-AUTH with SASL
672 affected files: smtp\_in.c, smtp\_out.c, conf.c
674 }
678 \frame{\ft{TODO 3: Security}
680 mail security layers
682 \begin{center}
683 \includegraphics[width=\textwidth]{fig/proxy-setup.eps}
684 \end{center}
686 }
689 \oneline{questions?}
697 \secframe{in detail: ch05.2 new design}
699 \frame{\ft{design goals}
701 throughout compartmentalization
703 free internal system from in and out channels
705 single point for scanning
707 concentrate on mail transfer
709 keep it simple, clear, and general
711 }
713 \frame{\ft{incoming channels}
715 arbitrary protocol handlers
717 one single module that puts the mail into the queue
719 }
721 \frame{\ft{queueing}
723 reliable queue
725 preferably the system's native format
727 }
729 \frame{\ft{mail sanitizing}
731 qmail: ``don't parse'' $\rightarrow$ parse very carefully
733 Jon Postel's robustness principle
735 }
737 \frame{\ft{authentication and encryption}
739 in receiving and sending modules (?)
741 with library code
743 }
745 \frame{\ft{spam and malware handling}
747 receiving modules vs. a scanning module
749 in both places?
751 }
753 \frame{\ft{route management}
755 the thing special to masqmail
757 done just before the outgoing modules
759 }
761 \frame{\ft{outgoing channels}
763 modules for each protocol
765 no own MDA, only a pipe module
767 }
769 \frame{\ft{the proposed architecture}
771 \begin{center}
772 \includegraphics[width=0.9\textwidth]{fig/masqmail-arch-new.eps}
773 \end{center}
775 }
778 \oneline{questions?}
784 \secframe{help wanted!}
787 \frame{\ft{work to do}
789 add encryption, authentication, security
791 fix bugs
793 documentation
795 user guides and ``marketing''
797 create the new masqmail
799 }
802 \frame{\ft{current team}
804 \tiny me
806 }
809 \frame{\ft{}
811 project site:
813 \qquad \url{http://prog.marmaro.de/masqmail}
815 mailing list:
817 \qquad masqmail@marmaro.de
819 }
822 \frame{\ft{Debian}
824 I search for a DD to sponsor my masqmail work
826 please contact me!
828 }
831 \frame{\ft{you!}
833 I welcome your help!
835 I appreciate your advice!
837 I am thankful for your comments!
839 \quad
841 \textbf{help masqmail}
843 }
851 \frame{
852 \vfill\vfill
853 \centerline{\textbf{Thanks for your attention}}
854 \vfill
855 }
858 \frame{\ft{links}
860 --all urls--
862 }
867 \frame{ \ft{software used}
869 Debian GNU/Linux
871 \LaTeX\ with the beamer classes
873 Vim, latexmk, and Mercurial
875 diagrams: PIC and groff
877 \vfill
879 {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }
881 }
886 \end{document}
892 \url{http://ulm.ccc.de/ChaosSeminar/2009/03_masqmail}