# HG changeset patch # User meillo@marmaro.de # Date 1236290514 -3600 # Node ID 282b52d9de097fda5aabeadd3d7cdc076466b423 # Parent 1197518aa22142da074f575a91398760f05d798f wrote parts about ch05 and about help; cleanups diff -r 1197518aa221 -r 282b52d9de09 masqmail.tex --- a/masqmail.tex Tue Mar 03 13:40:07 2009 +0100 +++ b/masqmail.tex Thu Mar 05 23:01:54 2009 +0100 @@ -62,18 +62,18 @@ \frame{\ft{markus schnalke} -\textbf{past} +past: -Business Information Systems\\ -at University of Applied Sciences, Ulm +\qquad Business Information Systems\\ +\qquad at University of Applied Sciences, Ulm -Diploma Thesis about masqmail +\qquad Diploma Thesis about masqmail -\textbf{future} +future: -Master in Informatics\\ -here at University, Ulm +\qquad Master in Informatics\\ +\qquad here at University, Ulm } @@ -104,7 +104,7 @@ 3) the thesis (xx\%) -4) help me to help masqmail (xx\%) +4) help wanted (xx\%) } @@ -186,7 +186,7 @@ GPL -about 9\,000 SLOC +about 9\,000 lines of C } @@ -256,37 +256,44 @@ \secframe{when I met masqmail} -\frame{\ft{using unmaintained software} +\frame{\ft{Fall 2007} -Fall 2007: started to use masqmail +started to use masqmail -Spring 2008: realized it is unmaintained in Debian +} + +\frame{\ft{Spring 2008} + +problem: realized it is unmaintained in Debian A situation to be changed ... but by whom? -... me? No! +\dots me? No! } -\frame{\ft{solving two problems} - -Summer 2008: +\frame{\ft{Summer 2008} problem: find a topic for the diploma thesis +} + + +\frame{\ft{while lying in bed some night} + the great idea: solve both problems in once -- \textbf{use the diploma thesis to revive masqmail} +1) \textbf{use the diploma thesis to revive masqmail} -- \textbf{use masqmail to do a great diploma thesis} +2) \textbf{use masqmail to do a great diploma thesis} } \frame{\ft{advising professor} -Professor Sch\"affter +professor Markus Sch\"affter thanks! @@ -295,19 +302,19 @@ -\frame{\ft{motivation} +\frame{\ft{logical decisions} -\textbf{motivation} +motivation: -- for myself +\qquad for myself -- for the community +\qquad for the community -\textbf{thus} +thus: -- in English +\qquad write in English -- free available +\qquad make the thesis free available } @@ -461,11 +468,17 @@ \frame{\ft{MTAs} -- relay-only MTAs (forwarders): nullmailer, ssmtp +relay-only MTAs (forwarders): -- groupware: Lotus Notes, Exchange, opengroupware.org +\qquad nullmailer, ssmtp -- ``real'' MTAs: sendmail, exim, qmail, postfix, masqmail +groupware: + +\qquad Lotus Notes, Exchange, opengroupware.org + +``real'' MTAs: + +\qquad sendmail, exim, qmail, postfix, masqmail } @@ -519,6 +532,8 @@ - too large +- too complex + - not designed for masqmail's scenario } @@ -583,11 +598,15 @@ \frame{\ft{further development} -- improve existing code +1) improve existing code -- add wrappers and interposition filters +2) add wrappers and interposition filters -- redesign and rewrite from scratch +3) redesign and rewrite from scratch + +\quad + +$1) + 2) = 13$ \quad vs. \quad $3) = 17$ } @@ -609,16 +628,17 @@ hence: different strategies for different goals short-term goal: keep masqmail usable\\ -\quad\quad$\rightarrow$ improve existing code +\qquad $\rightarrow$ improve existing code long-term goal: make masqmail future-proof\\ -\quad\quad$\rightarrow$ recreate it from scratch +\qquad $\rightarrow$ recreate it from scratch disadvantage: more work } +\oneline{questions?} @@ -631,16 +651,43 @@ -\frame{\ft{masqmail's code base} +\frame{\ft{TODO 1: Encryption} -C +STARTTLS -~ 9,000 SLOC +qmail patch as template + +affected files: smtp\_in.c, smtp\_out.c, conf.c } +\frame{\ft{TODO 2: Authentication} + +static: TCP Wrapper + +dynamic: SMTP-AUTH with SASL + +affected files: smtp\_in.c, smtp\_out.c, conf.c + +} + + + +\frame{\ft{TODO 3: Security} + +mail security layers + +\begin{center} +\includegraphics[width=\textwidth]{fig/proxy-setup.eps} +\end{center} + +} + + +\oneline{questions?} + @@ -649,19 +696,149 @@ \secframe{in detail: ch05.2 new design} -\frame{\ft{FIXME} +\frame{\ft{design goals} + +throughout compartmentalization + +free internal system from in and out channels + +single point for scanning + +concentrate on mail transfer + +keep it simple, clear, and general } +\frame{\ft{incoming channels} +arbitrary protocol handlers +one single module that puts the mail into the queue +} +\frame{\ft{queueing} -\secframe{HELP!} +reliable queue +preferably the system's native format -\frame{\ft{FIXME} +} + +\frame{\ft{mail sanitizing} + +qmail: ``don't parse'' $\rightarrow$ parse very carefully + +Jon Postel's robustness principle + +} + +\frame{\ft{authentication and encryption} + +in receiving and sending modules (?) + +with library code + +} + +\frame{\ft{spam and malware handling} + +receiving modules vs. a scanning module + +in both places? + +} + +\frame{\ft{route management} + +the thing special to masqmail + +done just before the outgoing modules + +} + +\frame{\ft{outgoing channels} + +modules for each protocol + +no own MDA, only a pipe module + +} + +\frame{\ft{the proposed architecture} + +\begin{center} +\includegraphics[width=0.9\textwidth]{fig/masqmail-arch-new.eps} +\end{center} + +} + + +\oneline{questions?} + + + + + +\secframe{help wanted!} + + +\frame{\ft{work to do} + +add encryption, authentication, security + +fix bugs + +documentation + +user guides and ``marketing'' + +create the new masqmail + +} + + +\frame{\ft{current team} + +\tiny me + +} + + +\frame{\ft{} + +project site: + +\qquad \url{http://prog.marmaro.de/masqmail} + +mailing list: + +\qquad masqmail@marmaro.de + +} + + +\frame{\ft{Debian} + +I search for a DD to sponsor my masqmail work + +please contact me! + +} + + +\frame{\ft{you!} + +I welcome your help! + +I appreciate your advice! + +I am thankful for your comments! + +\quad + +\textbf{help masqmail} } @@ -695,6 +872,8 @@ Vim, latexmk, and Mercurial +diagrams: PIC and groff + \vfill {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }