comparison thesis/tex/4-MasqmailsFuture.tex @ 161:18b7b517e2dd

wrote about discussion on architecture
author meillo@marmaro.de
date Wed, 17 Dec 2008 18:48:17 +0100
parents 0b17f6e5edae
children 5681a18270b5
comparison
equal deleted inserted replaced
160:d8ad54f11e88 161:18b7b517e2dd
58 58
59 \subsubsection*{Spam handling} 59 \subsubsection*{Spam handling}
60 Spam is a major threat. According to the \NAME{SWOT} analysis, the goal is to reduce it to a bearable level. Spam fighting is a war are where the good guys tend to lose. Putting too much effort there will result in few gain. Real success will only be possible with new---better---protocols and abandonning the weak legacy technologies. Hence \masqmail\ should be able to provide state-of-the-art spam protection, but not more. 60 Spam is a major threat. According to the \NAME{SWOT} analysis, the goal is to reduce it to a bearable level. Spam fighting is a war are where the good guys tend to lose. Putting too much effort there will result in few gain. Real success will only be possible with new---better---protocols and abandonning the weak legacy technologies. Hence \masqmail\ should be able to provide state-of-the-art spam protection, but not more.
61 61
62 62
63 \subsubsection*{Security}
64 \MTA{}s are critical points for computer security, as they are accessable from external networks. They must be secured with high effort. Properties like high priviledge level, work load influenced from extern, work on unsafe data, and demand for reliability, increase the security needed. Unsecure and unreliable \mta{}s are of no value. \masqmail\ needs to b e secure enough for its target field of operation.
65
66
63 \subsubsection*{Easy configuration} 67 \subsubsection*{Easy configuration}
64 Having \mta{}s on many home servers and clients, requires easy and standardized configuration. The common setups should be configurable with single actions by the user. Complex configuration should be possible, but focused must be the most common form of configuration: choosing one of several standard setups. 68 Having \mta{}s on many home servers and clients, requires easy and standardized configuration. The common setups should be configurable with single actions by the user. Complex configuration should be possible, but focused must be the most common form of configuration: choosing one of several standard setups.
65 69
66 70
67 71
68 72
69 73
70 74
71 75 \section{Discussion on architecture}
72 \section{Directions to go} 76
73 77 A program's architecture is maybe the most influencing design decision, and has the greatest impact on the program's future capabilities. %fixme: search quote ... check if good
74 This section discusses about what shapes \masqmail\ could have---which directions the development could go to. 78
75 79 \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.
76
77
78
79 \subsection{Access and Auth}
80
81 easiest: restricting by static IP addresses (Access control via hosts.allow/hosts.deny)
82 if dynamic remote hosts need access: some auth is needed
83 - SASL
84 - POP/IMAP: pop-before-smtp, DRAC, WHOSON
85 - TLS (certificates)
86
87 ``None of these add-ons is an ideal solution. They require additional code compiled into your existing daemons that may then require special write accesss to system files. They also require additional work for busy system administrators. If you cannot use any of the nonauthenticating alternatives mentioned earlier, or your business requirements demand that all of thyour users' mail pass through your system no matter where they are on the Internet, SASL is probably the solution that offers the most reliable and scalable method to authenticate users.'' (Dent: Postfix, page 44, ch04)
88
89
90
91 postfix: after-queue-content-filter (smtp communication)
92 exim: content-scan-feature
93 sendmail: milter (tcp or unix sockets)
94
95 checks while smtp dialog (pre-queue): in MTA implemented (need to be fast)
96 checks when mail is accepted and queued: external (amavis, spamassassin)
97
98 anti-virus: clamav
99
100 AMaViS (amavisd-new): email filter framework to integrate spam and virus scanner
101 internet -->25 MTA -->10024 amavis -->10025 MTA --> reciptient
102 | |
103 +----------------------------+
104 mail scanner:
105 incoming queue --> mail scanner --> outgoing queue
106
107 mimedefang: uses milter interface with sendmail
108
109
110
111 \subsection{Architecture}
112
113 The programs architecture is maybe the most influencing design decision with the greatest impact on the programs further capabilities. %fixme: search quote ... check if good
114
115 \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, 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.
116 80
117 Figure \ref{fig:masqmail-arch} is an attempt to depict \masqmail's internal structure. 81 Figure \ref{fig:masqmail-arch} is an attempt to depict \masqmail's internal structure.
118 82
119 \begin{figure} 83 \begin{figure}
120 \begin{center} 84 \begin{center}
122 \end{center} 86 \end{center}
123 \caption{Internal architecture of \masqmail} 87 \caption{Internal architecture of \masqmail}
124 \label{fig:masqmail-arch} 88 \label{fig:masqmail-arch}
125 \end{figure} 89 \end{figure}
126 90
91 \sendmail\ improved its old architecture, for example by adding the milter interface. \exim\ was designed and is carefully maintained with a modular-like code structure in mind. \qmail\ started from scratch with a security-first approach, \postfix\ improved on it, and \name{sendmail X}/\name{MeTA1} tries to adopt the best of \qmail\ and \postfix, to completely replace the old \sendmail\ architecture. \person{Hafiz} \cite{hafiz05}. describes this evolution of \mta\ architecture very well.
92
93 Every one of the popular \MTA{}s is more modular, or became more modular, than \masqmail. The logical step is to rewrite \masqmail\ using a modern, modular architecture to get a modern \MTA\ satisfying nowadays needs. But how is the effort of this complete rewrite compared to what is gained afterwards?
94
95
96
97
98 A secure architecture is of need.
99
100
101
102
103
127 104
128 105
129 (ssl) 106 (ssl)
130 -> msg-in (local or remote protocol handlers) 107 -> msg-in (local or remote protocol handlers)
131 -> spam-filter (and more) 108 -> spam-filter (and more)
138 << what would be needed (effort) >> 115 << what would be needed (effort) >>
139 116
140 << would one create it at all? >> 117 << would one create it at all? >>
141 118
142 << should it be done? >> 119 << should it be done? >>
120
143 121
144 http://fanf.livejournal.com/50917.html %how not to design an mta - the sendmail command 122 http://fanf.livejournal.com/50917.html %how not to design an mta - the sendmail command
145 http://fanf.livejournal.com/51349.html %how not to design an mta - partitioning for security 123 http://fanf.livejournal.com/51349.html %how not to design an mta - partitioning for security
146 http://fanf.livejournal.com/61132.html %how not to design an mta - local delivery 124 http://fanf.livejournal.com/61132.html %how not to design an mta - local delivery
147 http://fanf.livejournal.com/64941.html %how not to design an mta - spool file format 125 http://fanf.livejournal.com/64941.html %how not to design an mta - spool file format
157 135
158 136
159 137
160 138
161 139
140 \subsection{Access and Auth}
141
142 easiest: restricting by static IP addresses (Access control via hosts.allow/hosts.deny)
143 if dynamic remote hosts need access: some auth is needed
144 - SASL
145 - POP/IMAP: pop-before-smtp, DRAC, WHOSON
146 - TLS (certificates)
147
148 ``None of these add-ons is an ideal solution. They require additional code compiled into your existing daemons that may then require special write accesss to system files. They also require additional work for busy system administrators. If you cannot use any of the nonauthenticating alternatives mentioned earlier, or your business requirements demand that all of thyour users' mail pass through your system no matter where they are on the Internet, SASL is probably the solution that offers the most reliable and scalable method to authenticate users.'' (Dent: Postfix, page 44, ch04)
149
150
151
152 postfix: after-queue-content-filter (smtp communication)
153 exim: content-scan-feature
154 sendmail: milter (tcp or unix sockets)
155
156 checks while smtp dialog (pre-queue): in MTA implemented (need to be fast)
157 checks when mail is accepted and queued: external (amavis, spamassassin)
158
159 anti-virus: clamav
160
161 AMaViS (amavisd-new): email filter framework to integrate spam and virus scanner
162 internet -->25 MTA -->10024 amavis -->10025 MTA --> reciptient
163 | |
164 +----------------------------+
165 mail scanner:
166 incoming queue --> mail scanner --> outgoing queue
167
168 mimedefang: uses milter interface with sendmail
169
170
171
172
173
162 174
163 175
164 \subsection{spam and malicious content} 176 \subsection{spam and malicious content}
165 177
166 The same for malicious content (\name{malware}) like viruses, worms, trojan horses. They are related to spam, but affect the \MTA less, as they are in the mail body. 178 The same for malicious content (\name{malware}) like viruses, worms, trojan horses. They are related to spam, but affect the \MTA less, as they are in the mail body.
173 185
174 186
175 187
176 188
177 189
190 \section{Directions to go}
191
192 This section discusses about what shapes \masqmail\ could have---which directions the development could go to.
193
178 194
179 195
180 196
181 197
182 \subsubsection*{\masqmail\ in five years} 198 \subsubsection*{\masqmail\ in five years}