docs/masqmail-cs

diff 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 diff
     1.1 --- a/masqmail.tex	Tue Mar 03 13:40:07 2009 +0100
     1.2 +++ b/masqmail.tex	Thu Mar 05 23:01:54 2009 +0100
     1.3 @@ -62,18 +62,18 @@
     1.4  
     1.5  \frame{\ft{markus schnalke}
     1.6  
     1.7 -\textbf{past}
     1.8 +past:
     1.9  
    1.10 -Business Information Systems\\
    1.11 -at University of Applied Sciences, Ulm
    1.12 +\qquad Business Information Systems\\
    1.13 +\qquad at University of Applied Sciences, Ulm
    1.14  
    1.15 -Diploma Thesis about masqmail
    1.16 +\qquad Diploma Thesis about masqmail
    1.17  
    1.18  
    1.19 -\textbf{future}
    1.20 +future:
    1.21  
    1.22 -Master in Informatics\\
    1.23 -here at University, Ulm
    1.24 +\qquad Master in Informatics\\
    1.25 +\qquad here at University, Ulm
    1.26  
    1.27  }
    1.28  
    1.29 @@ -104,7 +104,7 @@
    1.30  
    1.31  3) the thesis (xx\%)
    1.32  
    1.33 -4) help me to help masqmail (xx\%)
    1.34 +4) help wanted (xx\%)
    1.35  
    1.36  }
    1.37  
    1.38 @@ -186,7 +186,7 @@
    1.39  
    1.40  GPL
    1.41  
    1.42 -about 9\,000 SLOC
    1.43 +about 9\,000 lines of C
    1.44  
    1.45  }
    1.46  
    1.47 @@ -256,37 +256,44 @@
    1.48  \secframe{when I met masqmail}
    1.49  
    1.50  
    1.51 -\frame{\ft{using unmaintained software}
    1.52 +\frame{\ft{Fall 2007}
    1.53  
    1.54 -Fall 2007: started to use masqmail
    1.55 +started to use masqmail
    1.56  
    1.57 -Spring 2008: realized it is unmaintained in Debian
    1.58 +}
    1.59 +
    1.60 +\frame{\ft{Spring 2008}
    1.61 +
    1.62 +problem: realized it is unmaintained in Debian
    1.63  
    1.64  A situation to be changed ... but by whom?
    1.65  
    1.66 -... me? No!
    1.67 +\dots me? No!
    1.68  
    1.69  }
    1.70  
    1.71  
    1.72 -\frame{\ft{solving two problems}
    1.73 -
    1.74 -Summer 2008:
    1.75 +\frame{\ft{Summer 2008}
    1.76  
    1.77  problem: find a topic for the diploma thesis
    1.78  
    1.79 +}
    1.80 +
    1.81 +
    1.82 +\frame{\ft{while lying in bed some night}
    1.83 +
    1.84  the great idea: solve both problems in once
    1.85  
    1.86 -- \textbf{use the diploma thesis to revive masqmail}
    1.87 +1) \textbf{use the diploma thesis to revive masqmail}
    1.88  
    1.89 -- \textbf{use masqmail to do a great diploma thesis}
    1.90 +2) \textbf{use masqmail to do a great diploma thesis}
    1.91  
    1.92  }
    1.93  
    1.94  
    1.95  \frame{\ft{advising professor}
    1.96  
    1.97 -Professor Sch\"affter
    1.98 +professor Markus Sch\"affter
    1.99  
   1.100  thanks!
   1.101  
   1.102 @@ -295,19 +302,19 @@
   1.103  
   1.104  
   1.105  
   1.106 -\frame{\ft{motivation}
   1.107 +\frame{\ft{logical decisions}
   1.108  
   1.109 -\textbf{motivation}
   1.110 +motivation:
   1.111  
   1.112 -- for myself
   1.113 +\qquad for myself
   1.114  
   1.115 -- for the community
   1.116 +\qquad for the community
   1.117  
   1.118 -\textbf{thus}
   1.119 +thus:
   1.120  
   1.121 -- in English
   1.122 +\qquad write in English
   1.123  
   1.124 -- free available
   1.125 +\qquad make the thesis free available
   1.126  
   1.127  }
   1.128  
   1.129 @@ -461,11 +468,17 @@
   1.130  
   1.131  \frame{\ft{MTAs}
   1.132  
   1.133 -- relay-only MTAs (forwarders): nullmailer, ssmtp
   1.134 +relay-only MTAs (forwarders):
   1.135  
   1.136 -- groupware: Lotus Notes, Exchange, opengroupware.org
   1.137 +\qquad nullmailer, ssmtp
   1.138  
   1.139 -- ``real'' MTAs: sendmail, exim, qmail, postfix, masqmail
   1.140 +groupware:
   1.141 +
   1.142 +\qquad Lotus Notes, Exchange, opengroupware.org
   1.143 +
   1.144 +``real'' MTAs:
   1.145 +
   1.146 +\qquad sendmail, exim, qmail, postfix, masqmail
   1.147  
   1.148  }
   1.149  
   1.150 @@ -519,6 +532,8 @@
   1.151  
   1.152  - too large
   1.153  
   1.154 +- too complex
   1.155 +
   1.156  - not designed for masqmail's scenario
   1.157  
   1.158  }
   1.159 @@ -583,11 +598,15 @@
   1.160  
   1.161  \frame{\ft{further development}
   1.162  
   1.163 -- improve existing code
   1.164 +1) improve existing code
   1.165  
   1.166 -- add wrappers and interposition filters
   1.167 +2) add wrappers and interposition filters
   1.168  
   1.169 -- redesign and rewrite from scratch
   1.170 +3) redesign and rewrite from scratch
   1.171 +
   1.172 +\quad
   1.173 +
   1.174 +$1) + 2) = 13$ \quad vs. \quad $3) = 17$
   1.175  
   1.176  }
   1.177  
   1.178 @@ -609,16 +628,17 @@
   1.179  hence: different strategies for different goals
   1.180  
   1.181  short-term goal: keep masqmail usable\\
   1.182 -\quad\quad$\rightarrow$ improve existing code
   1.183 +\qquad $\rightarrow$ improve existing code
   1.184  
   1.185  long-term goal: make masqmail future-proof\\
   1.186 -\quad\quad$\rightarrow$ recreate it from scratch
   1.187 +\qquad $\rightarrow$ recreate it from scratch
   1.188  
   1.189  disadvantage: more work
   1.190  
   1.191  }
   1.192  
   1.193  
   1.194 +\oneline{questions?}
   1.195  
   1.196  
   1.197  
   1.198 @@ -631,16 +651,43 @@
   1.199  
   1.200  
   1.201  
   1.202 -\frame{\ft{masqmail's code base}
   1.203 +\frame{\ft{TODO 1: Encryption}
   1.204  
   1.205 -C
   1.206 +STARTTLS
   1.207  
   1.208 -~ 9,000 SLOC
   1.209 +qmail patch as template
   1.210 +
   1.211 +affected files: smtp\_in.c, smtp\_out.c, conf.c
   1.212  
   1.213  }
   1.214  
   1.215  
   1.216  
   1.217 +\frame{\ft{TODO 2: Authentication}
   1.218 +
   1.219 +static: TCP Wrapper
   1.220 +
   1.221 +dynamic: SMTP-AUTH with SASL
   1.222 +
   1.223 +affected files: smtp\_in.c, smtp\_out.c, conf.c
   1.224 +
   1.225 +}
   1.226 +
   1.227 +
   1.228 +
   1.229 +\frame{\ft{TODO 3: Security}
   1.230 +
   1.231 +mail security layers
   1.232 +
   1.233 +\begin{center}
   1.234 +\includegraphics[width=\textwidth]{fig/proxy-setup.eps}
   1.235 +\end{center}
   1.236 +
   1.237 +}
   1.238 +
   1.239 +
   1.240 +\oneline{questions?}
   1.241 +
   1.242  
   1.243  
   1.244  
   1.245 @@ -649,19 +696,149 @@
   1.246  
   1.247  \secframe{in detail: ch05.2 new design}
   1.248  
   1.249 -\frame{\ft{FIXME}
   1.250 +\frame{\ft{design goals}
   1.251 +
   1.252 +throughout compartmentalization
   1.253 +
   1.254 +free internal system from in and out channels
   1.255 +
   1.256 +single point for scanning
   1.257 +
   1.258 +concentrate on mail transfer
   1.259 +
   1.260 +keep it simple, clear, and general
   1.261  
   1.262  }
   1.263  
   1.264 +\frame{\ft{incoming channels}
   1.265  
   1.266 +arbitrary protocol handlers
   1.267  
   1.268 +one single module that puts the mail into the queue
   1.269  
   1.270 +}
   1.271  
   1.272 +\frame{\ft{queueing}
   1.273  
   1.274 -\secframe{HELP!}
   1.275 +reliable queue
   1.276  
   1.277 +preferably the system's native format
   1.278  
   1.279 -\frame{\ft{FIXME}
   1.280 +}
   1.281 +
   1.282 +\frame{\ft{mail sanitizing}
   1.283 +
   1.284 +qmail: ``don't parse'' $\rightarrow$ parse very carefully
   1.285 +
   1.286 +Jon Postel's robustness principle
   1.287 +
   1.288 +}
   1.289 +
   1.290 +\frame{\ft{authentication and encryption}
   1.291 +
   1.292 +in receiving and sending modules (?)
   1.293 +
   1.294 +with library code
   1.295 +
   1.296 +}
   1.297 +
   1.298 +\frame{\ft{spam and malware handling}
   1.299 +
   1.300 +receiving modules vs. a scanning module
   1.301 +
   1.302 +in both places?
   1.303 +
   1.304 +}
   1.305 +
   1.306 +\frame{\ft{route management}
   1.307 +
   1.308 +the thing special to masqmail
   1.309 +
   1.310 +done just before the outgoing modules
   1.311 +
   1.312 +}
   1.313 +
   1.314 +\frame{\ft{outgoing channels}
   1.315 +
   1.316 +modules for each protocol
   1.317 +
   1.318 +no own MDA, only a pipe module
   1.319 +
   1.320 +}
   1.321 +
   1.322 +\frame{\ft{the proposed architecture}
   1.323 +
   1.324 +\begin{center}
   1.325 +\includegraphics[width=0.9\textwidth]{fig/masqmail-arch-new.eps}
   1.326 +\end{center}
   1.327 +
   1.328 +}
   1.329 +
   1.330 +
   1.331 +\oneline{questions?}
   1.332 +
   1.333 +
   1.334 +
   1.335 +
   1.336 +
   1.337 +\secframe{help wanted!}
   1.338 +
   1.339 +
   1.340 +\frame{\ft{work to do}
   1.341 +
   1.342 +add encryption, authentication, security
   1.343 +
   1.344 +fix bugs
   1.345 +
   1.346 +documentation
   1.347 +
   1.348 +user guides and ``marketing''
   1.349 +
   1.350 +create the new masqmail
   1.351 +
   1.352 +}
   1.353 +
   1.354 +
   1.355 +\frame{\ft{current team}
   1.356 +
   1.357 +\tiny me
   1.358 +
   1.359 +}
   1.360 +
   1.361 +
   1.362 +\frame{\ft{}
   1.363 +
   1.364 +project site:
   1.365 +
   1.366 +\qquad \url{http://prog.marmaro.de/masqmail}
   1.367 +
   1.368 +mailing list:
   1.369 +
   1.370 +\qquad masqmail@marmaro.de
   1.371 +
   1.372 +}
   1.373 +
   1.374 +
   1.375 +\frame{\ft{Debian}
   1.376 +
   1.377 +I search for a DD to sponsor my masqmail work
   1.378 +
   1.379 +please contact me!
   1.380 +
   1.381 +}
   1.382 +
   1.383 +
   1.384 +\frame{\ft{you!}
   1.385 +
   1.386 +I welcome your help!
   1.387 +
   1.388 +I appreciate your advice!
   1.389 +
   1.390 +I am thankful for your comments!
   1.391 +
   1.392 +\quad
   1.393 +
   1.394 +\textbf{help masqmail}
   1.395  
   1.396  }
   1.397  
   1.398 @@ -695,6 +872,8 @@
   1.399  
   1.400  Vim, latexmk, and Mercurial
   1.401  
   1.402 +diagrams: PIC and groff
   1.403 +
   1.404  \vfill
   1.405  
   1.406  {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }