docs/masqmail-cs

view masqmail.tex @ 9:b30bdf167fa0

added tables and figures to repo
author meillo@marmaro.de
date Wed, 11 Mar 2009 14:18:28 +0100
parents 3cd8b56b7494
children
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 (5\%) %3
103 2) about masqmail (25\%) %15
105 3) the thesis (60\%) %6 + 9 + 7 + 4 + 6 = 32
107 4) help wanted (10\%) %5
109 %== 55
111 }
120 \secframe{email? MTA? \dots}
123 \frame{\ft{What are MTAs}
125 MTA = Mail Transfer Agent
127 the post offices of email
129 MTAs transfer mail from senders to recipients
131 }
134 \frame{\ft{mail agents}
136 \begin{center}
137 \includegraphics[width=0.8\textwidth]{fig/mail-agents.eps}
138 \end{center}
140 }
143 \oneline{questions?}
155 \secframe{about masqmail}
159 \frame{ \ft{what is masqmail}
161 an MTA
163 a small one
165 one for special setups
167 }
170 \frame{ \ft{masqmail's niche}
172 non-permanent online connections
174 over multiple providers
176 especially for workstations and small networks
178 also notebooks
180 }
183 \frame{ \ft{history}
185 written by Oliver Kurth
187 1999 -- 2003
189 GPL
191 about 9\,000 lines of C
193 }
196 \frame{\ft{guessed}
198 initially written to use masqdialer-controlled online connections
200 thus: source of the name (``masq\dots'') (not ``\dots qmail'')
202 }
206 \frame{ \ft{masqmail today}
208 development stopped in 2003
210 not maintained
212 even its original website is down
214 but included in Debian, Ubuntu, Arch, Mandriva, FreeBSD
216 }
219 \frame{ \ft{value of masqmail}
221 covers a niche
223 has unique features
225 has users!
227 }
230 \frame{ \ft{problems of masqmail}
232 no further development
234 emailing has changed
236 unfixed bugs
238 }
241 \oneline{questions?}
258 \secframe{when I met masqmail}
261 \frame{\ft{Fall 2007}
263 started to use masqmail
265 because of its small size
267 }
269 \frame{\ft{Spring 2008}
271 problem: realized it is unmaintained in Debian
273 A situation to be changed ... but by whom?
275 \dots me? No!
277 }
280 \frame{\ft{Summer 2008}
282 problem: find a topic for the diploma thesis
284 }
287 \frame{\ft{while lying in bed some night}
289 the great idea: solve both problems at once
291 1) \textbf{use the diploma thesis to revive masqmail}
293 2) \textbf{use masqmail to do a great diploma thesis}
295 }
298 \frame{\ft{advising professor}
300 professor Markus Sch\"affter
302 thanks!
304 }
309 \frame{\ft{logical decisions}
311 motivation:
313 \qquad for myself
315 \qquad for the community
317 thus:
319 \qquad write in English
321 \qquad make the thesis free available
323 }
327 \frame{\ft{guiding principle}
329 \begin{center}
330 \it
331 Do what you think is interesting,\\
332 do something that you think is fun and worthwhile,\\
333 because otherwise you won't do it well anyway.
335 ---Brian~W.\ Kernighan---
336 \end{center}
338 }
346 \secframe{the thesis in short}
350 %\frame{\ft{planned was}
351 %
352 %1) purpose and structure of an MTA/of masqmail
353 %
354 %2) security analysis
355 %
356 %3) code improvements
357 %
358 %4) documentation, test, distribution
359 %
360 %With the goal to release a new version and get it into Debian
361 %
362 %}
363 %
364 %
365 %\frame{\ft{however, it resulted in}
366 %
367 %1) introduction
368 %
369 %2) market analysis
370 %
371 %3) mail transfer agents
372 %
373 %4) masqmail's present and future
374 %
375 %5) improvement plans
376 %
377 %Became pretty theoretic (I don't worry)
378 %
379 %}
387 \frame{ \ft{ch01: introduction}
389 general prerequisites
391 the masqmail project
393 value and problems of masqmail
395 \textbf{$\Rightarrow$ reasons to do this thesis}
397 }
401 \frame{ \ft{ch02: market analysis}
403 classification, life cycle, and trends of electronic communication
405 SWOT and trends for email
407 \textbf{$\Rightarrow$ show that email is expected to survive}
409 }
412 \frame{ \ft{ch03: mail transfer agents}
414 classification of MTAs
416 masqmail's competitors
418 short comparison
420 \textbf{$\Rightarrow$ provide knowledge for following chapters}
422 }
427 \frame{ \ft{ch04: masqmail's present and future}
429 the goal (revive masqmail)
431 requirements
433 \quad\quad fulfilled requirements
435 \quad\quad work to do
437 ways for further development
439 result
441 \textbf{$\Rightarrow$ the core of the thesis: a plan to revive masqmail}
443 }
447 \frame{ \ft{ch05: improvement plans}
449 more detailed descriptions of the work tasks
451 \textbf{$\Rightarrow$ recommendations how to do the proposed changes}
453 }
456 \oneline{questions?}
463 \oneline{\it we're half way through :-) }
470 \secframe{in detail: ch03 MTAs}
474 \frame{\ft{MTAs}
476 relay-only MTAs (forwarders):
478 \qquad nullmailer, ssmtp
480 groupware:
482 \qquad Lotus Notes, Exchange, opengroupware.org
484 ``real'' MTAs:
486 \qquad sendmail, exim, qmail, postfix, masqmail
488 }
492 \frame{\ft{market shares}
494 \input{tbl/mta-market-share.tbl}
496 }
500 \frame{\ft{comparison}
502 \input{tbl/mta-comparison.tbl}
504 }
508 \frame{\ft{why not sendmail}
510 - too large
512 - too complex
514 - structurally insecure
516 - simply obsolete
518 }
520 \frame{\ft{why not exim}
522 - too large
524 - designed for always online hosts
526 }
528 \frame{\ft{why not qmail}
530 - outdated
532 - designed for always online hosts with fast connections
534 }
536 \frame{\ft{why not postfix}
538 - too large
540 - too complex
542 - not designed for masqmail's scenario
544 }
546 \frame{\ft{in summary}
548 - other MTAs are bad substitutes for masqmail
550 - though they seem to be generally able to be substitutes
552 }
555 \oneline{comments and annotations?}
571 \secframe{in detail: ch04 present and future}
574 \frame{\ft{functional requirements}
576 \input{tbl/func-requirements.tbl}
578 }
580 \frame{\ft{non-functional requirements}
582 \input{tbl/nonf-requirements.tbl}
584 }
586 \frame{\ft{work tasks}
588 TODO\,1: Encryption
590 TODO\,2: Authentication
592 TODO\,3: Security
594 TODO\,4: Reliability
596 TODO\,5: Spam handling
598 TODO\,6: Extendability
601 }
604 \frame{\ft{further development}
606 1) improve existing code
608 2) add wrappers and interposition filters
610 3) redesign and rewrite from scratch
612 \quad
614 $1) + 2) = 13$ \quad vs. \quad $3) = 17$
616 }
619 \frame{\ft{architecture}
621 \begin{center}
622 \includegraphics[width=0.8\textwidth]{fig/callgraph.eps}
623 \end{center}
625 }
629 \frame{\ft{the result}
631 ``one fits all'' is not possible
633 hence: different strategies for different goals
635 short-term goal: keep masqmail usable\\
636 \qquad $\rightarrow$ improve existing code
638 long-term goal: make masqmail future-proof\\
639 \qquad $\rightarrow$ recreate it from scratch
641 disadvantage: more work
643 }
646 \oneline{questions?}
654 \secframe{in detail: ch05 (1) existing code}
659 \frame{\ft{TODO 1: Encryption}
661 STARTTLS
663 qmail patch as template
665 affected files: smtp\_in.c, smtp\_out.c, conf.c
667 }
671 \frame{\ft{TODO 2: Authentication}
673 static: TCP Wrapper
675 dynamic: SMTP-AUTH with SASL
677 affected files: smtp\_in.c, smtp\_out.c, conf.c
679 }
683 \frame{\ft{TODO 3: Security}
685 mail security layers
687 \begin{center}
688 \includegraphics[width=\textwidth]{fig/proxy-setup.eps}
689 \end{center}
691 }
694 \oneline{questions?}
702 \secframe{in detail: ch05 (2) new design}
704 \frame{\ft{design goals}
706 throughout compartmentalization
708 free internal system from in and out channels
710 single point for scanning
712 concentrate on mail transfer
714 keep it simple, clear, and general
716 }
718 \frame{\ft{incoming and outgoing}
720 in/out:
722 \qquad arbitrary protocol handlers (incoming/outgoing)
724 \qquad one queue-in module; one queue-out module
726 \qquad no own MDA, only a pipe module
728 route management:
730 \qquad the thing special to masqmail
732 \qquad done just before the outgoing modules
734 }
737 \frame{\ft{within the queue}
739 mail sanitizing:
741 \qquad qmail: ``don't parse'' $\rightarrow$ parse very carefully
743 \qquad Jon Postel's robustness principle
745 spool files:
747 \qquad preferably in the system's native format
749 }
752 \frame{\ft{auth, enc, spam}
754 auth and enc:
756 \qquad in receiving and sending modules (?)
758 \qquad with library code
760 spam and malware:
762 \qquad receiving modules vs. a scanning module
764 \qquad in both places?
766 \qquad malware scanning is not the MTA's job
768 }
772 \frame{\ft{the proposed architecture}
774 \begin{center}
775 \includegraphics[width=0.9\textwidth]{fig/masqmail-arch-new.eps}
776 \end{center}
778 }
781 \oneline{questions?}
787 \secframe{help wanted!}
790 \frame{\ft{work to do}
792 add encryption, authentication, security
794 fix bugs
796 documentation
798 user guides and ``marketing''
800 create the new masqmail
802 }
805 \frame{\ft{current team}
807 \tiny me
809 }
812 \frame{\ft{}
814 project site:
816 \qquad \url{http://prog.marmaro.de/masqmail}
818 mailing list:
820 \qquad masqmail@marmaro.de
822 }
825 \frame{\ft{Debian}
827 I search for a DD to sponsor my masqmail work
829 please contact me!
831 }
834 \frame{\ft{you!}
836 I welcome your help!
838 I appreciate your advice!
840 I am thankful for your comments!
842 \quad
844 \textbf{help masqmail}
846 }
854 \frame{
855 \vfill\vfill
856 \centerline{\textbf{Thanks for your attention}}
857 \vfill
858 }
861 \frame{\ft{links}
863 \footnotesize
865 my diploma thesis\\
866 \qquad \url{http://marmaro.de/docs\#diploma}
869 masqmail's website\\
870 \qquad \url{http://prog.marmaro.de/masqmail}
873 masqmail mailing list\\
874 \qquad \url{masqmail@marmaro.de}\\
875 \qquad \url{minimalist@marmaro.de?subject=subscribe\%20masqmail}
878 suckless software\\
879 \qquad \url{http://www.suckless.org}
882 }
887 \frame{ \ft{software used}
889 Debian GNU/Linux
891 \LaTeX\ with the beamer classes
893 Vim, latexmk, and Mercurial
895 diagrams: PIC and groff
897 call graph: Egypt and dot
899 \vfill
901 {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }
903 }
908 \end{document}
914 \url{http://ulm.ccc.de/ChaosSeminar/2009/03_masqmail}