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 }