docs/diploma

diff thesis/tex/4-MasqmailsFuture.tex @ 187:7f4d97584a6f

wrote about work to do
author meillo@marmaro.de
date Mon, 29 Dec 2008 20:16:58 +0100
parents 1611abd5443b
children afb72fb64962
line diff
     1.1 --- a/thesis/tex/4-MasqmailsFuture.tex	Mon Dec 29 14:32:36 2008 +0100
     1.2 +++ b/thesis/tex/4-MasqmailsFuture.tex	Mon Dec 29 20:16:58 2008 +0100
     1.3 @@ -206,17 +206,47 @@
     1.4  
     1.5  \section{Work to do}
     1.6  
     1.7 -What exists, what is missing, what needs to be done?
     1.8 +After \masqmail's features were presented in section \ref{sec:fixme} and the requirements for modern \mta{}s were identified in section \ref{sec:fixme}, here the differences between them are shown.
     1.9  
    1.10 -auth, enc, archiving
    1.11  
    1.12 -\masqmail\ is already able to encrypt outgoing connections, but encryption of incoming connections, using \NAME{STARTTLS} should be implemented. This only affects the \SMTP\ server module.
    1.13 +
    1.14 +\subsubsection*{Fulfilled requirements}
    1.15 +
    1.16 +\masqmail's incoming and outgoing channels are the common ones: the \texttt{sendmail} command and \SMTP\ for incoming mail; local delivery, piping to commands, and \SMTP\ for outgoing mail. Support for other protocols is not available. To add it, modifications at many places in the source are needed.
    1.17 +
    1.18 +One single mail queue is used in \masqmail. The envelope and mail headers are generated when the mail is put into the queue. Aliasing is done on delivery, after the route to be used was determined. Headers may be rewritten then. These parts do all provide the functionality required.
    1.19 +
    1.20 +Static authentication, based on \NAME{IP} addresses, can be set up using the \path{hosts.allow} and \path{hosts.deny} files. Dynamic authentication is supported in form of \NAME{SMTP-AUTH} and \SMTP-after-\NAME{POP}, but only for outgoing connections. The same for encryption which is also only available for outgoing \SMTP\ connections; here a wrapper application like \name{openssl} needs to be used. Support for authentication and encryption of incoming connections is completely missing, but a basic requirement for all secure emailing.
    1.21 +
    1.22 +\masqmail\ does not provide special support for spam filter or content checking. But it is possible to invoke external filter applications by running two independent instances of \masqmail, connected by the filter application. The receiving \MTA\ instance accepts mail and pushes it into the filter. The filter application receives mail, processes it, possible modifies it, and pushes it over to a second \MTA\ instance. The second \MTA\ is responsible for further delivery of the mail. Appendix \ref{app:FIXME} shows configuration files to create such a setup. This is a concept that works in general. However, real spam \emph{prevention}---to not accept spam mail at all---or good filter interfaces are not available, but are nessesary for using \masqmail\ in an unsafe environment.
    1.23 +
    1.24 +There is currently no way of archiving every message going through \masqmail.
    1.25 +
    1.26 +
    1.27 +%fixme: write about non-functional requirements
    1.28 +
    1.29 +
    1.30 +
    1.31 +\subsubsection*{Missing parts}
    1.32 +
    1.33 +Support for other protocols than \SMTP\ seems not to be nessesary at the moment. Adding such support will need lots of work in all parts of \masqmail, hence delaying it until the support is needed appears to be the best solution.
    1.34 +
    1.35 +Authentication of incoming \SMTP\ connections is definately needed and should be added soon. The same applies to encryption of incomming connections. These two features are essential for restricting relaying and providing privacy.
    1.36 +
    1.37 +As authentication can be a guard against spam, filter facilities have lower priority. But basic spam filtering and interfaces for external tools should be implemented in future. Content checking, if really nessesary, should be left over to the \NAME{MDA}, to deal with it in local delivery.
    1.38 +
    1.39 +Archiving again is prefered to be implemented soon. It does not require much work, but enables all kinds of statistical analysis. Also it is a requirement for companies to archive their mail communication.
    1.40 +
    1.41 +%fixme: what about non-functional requirements?
    1.42  
    1.43  
    1.44  
    1.45  
    1.46  \subsubsection*{Discussion on architecture}
    1.47  
    1.48 +%fixme: why is there a need for a new arch??
    1.49 +
    1.50 +
    1.51  A program's architecture is probably the most influencing design decision, and has the greatest impact on the program's future capabilities. %fixme: search quote ... check if good
    1.52  
    1.53  \masqmail's current artitecture is monolitic like \sendmail's and \exim's. But more than the other two, is it one block of interweaved code. \sendmail\ provides now, with its \name{milter} interface, standardized connection channels to external modules. \exim\ has a highly structured code with many internal interfaces, like the one for supported authentication ``modules''. \masqmail\ has none of them; it is what \sendmail\ was in the beginning: a single large block.
    1.54 @@ -259,8 +289,6 @@
    1.55  
    1.56  
    1.57  
    1.58 -\subsubsection*{A design from scratch?}
    1.59 -
    1.60  << what would be needed (effort) >>
    1.61  
    1.62  The next section is a design
    1.63 @@ -720,7 +748,9 @@
    1.64  
    1.65  
    1.66  
    1.67 -\section{Directions to go}
    1.68 +\section{Result}
    1.69 +
    1.70 +Directions to go
    1.71  
    1.72  Now how could \masqmail\ be like in, say, five years?
    1.73