Project

General

Profile

DKIM-DMARC-SPF » History » Version 1

Simone Piccardi, 08/12/2016 03:16 PM

1 1 Simone Piccardi
h1. Installazione di DKIM/DMARC/SPF & C
2 1 Simone Piccardi
3 1 Simone Piccardi
Per gestire la posta in uscita per SPF non occorre fare altro che creare il
4 1 Simone Piccardi
relativo record TXT sul proprio dominio, se però si vuole verificare la
5 1 Simone Piccardi
validità della posta in ingresso e prendere eventuali provvedimenti, occorrerà
6 1 Simone Piccardi
installare (dal pacchetto omonimo) e configurare @postfix-policyd-spf-python@.
7 1 Simone Piccardi
8 1 Simone Piccardi
Il file di configurazione è
9 1 Simone Piccardi
@/etc/postfix-policyd-spf-python/policyd-spf.conf@, in cui inserire un
10 1 Simone Piccardi
contenuto del tipo:
11 1 Simone Piccardi
12 1 Simone Piccardi
<pre>
13 1 Simone Piccardi
#HELO_reject = SPF_Not_Pass
14 1 Simone Piccardi
#Mail_From_reject = Fail
15 1 Simone Piccardi
HELO_reject = False
16 1 Simone Piccardi
Mail_From_reject = False
17 1 Simone Piccardi
18 1 Simone Piccardi
Authserv_Id = holland
19 1 Simone Piccardi
Header_Type = SPF
20 1 Simone Piccardi
</pre>
21 1 Simone Piccardi
22 1 Simone Piccardi
in cui di commentano le istruzioni che farebbero respingere la posta, si
23 1 Simone Piccardi
indica la macchina che esegue i controlli (indicando l'hostname con
24 1 Simone Piccardi
@Authserv_Id@) e si indica con @Header_Type@ di inserire un header coi
25 1 Simone Piccardi
risultati di autenticazione. Le due possibilità sono @AR@ e @SPF@, il primo
26 1 Simone Piccardi
sarebbe lo standard preferito da @opendmarc@, ma non funziona.
27 1 Simone Piccardi
28 1 Simone Piccardi
Occorre poi configurare postfix per usare il programma come policy service,
29 1 Simone Piccardi
pertanto si dovrà prima configurarne l'avvio in @master.cf@ aggiungendo le
30 1 Simone Piccardi
righe:
31 1 Simone Piccardi
32 1 Simone Piccardi
<pre>
33 1 Simone Piccardi
# for SPF check
34 1 Simone Piccardi
policyd-spf  unix  -       n       n       -       0       spawn
35 1 Simone Piccardi
  user=nobody argv=/usr/bin/python /usr/bin/policyd-spf /etc/postfix-policyd-spf
36 1 Simone Piccardi
-python/policyd-spf.conf
37 1 Simone Piccardi
</pre>
38 1 Simone Piccardi
39 1 Simone Piccardi
e poi abilitarne l'uso in @main.cf@ con:
40 1 Simone Piccardi
41 1 Simone Piccardi
<pre>
42 1 Simone Piccardi
smtpd_recipient_restrictions =
43 1 Simone Piccardi
        ...
44 1 Simone Piccardi
        reject_unauth_destination,
45 1 Simone Piccardi
        check_policy_service unix:private/policyd-spf,
46 1 Simone Piccardi
        ...
47 1 Simone Piccardi
48 1 Simone Piccardi
policyd-spf_time_limit = 3600
49 1 Simone Piccardi
</pre>
50 1 Simone Piccardi
51 1 Simone Piccardi
Per Debian Wheezy. Installare OpenDKIM:
52 1 Simone Piccardi
53 1 Simone Piccardi
<pre>
54 1 Simone Piccardi
apt-get install opendkim opendkim-tools
55 1 Simone Piccardi
</pre>
56 1 Simone Piccardi
57 1 Simone Piccardi
modificare il file di configurazione @/etc/opendkim.conf@ aggiungendo:
58 1 Simone Piccardi
59 1 Simone Piccardi
<pre>
60 1 Simone Piccardi
## Added configurations
61 1 Simone Piccardi
62 1 Simone Piccardi
KeyTable           /etc/opendkim/key_table
63 1 Simone Piccardi
SigningTable       /etc/opendkim/signing_table
64 1 Simone Piccardi
ExternalIgnoreList /etc/opendkim/trusted_hosts
65 1 Simone Piccardi
InternalHosts      /etc/opendkim/trusted_hosts
66 1 Simone Piccardi
AutoRestart             Yes
67 1 Simone Piccardi
AutoRestartRate         10/1h
68 1 Simone Piccardi
Mode                    sv
69 1 Simone Piccardi
PidFile                 /var/run/opendkim/opendkim.pid
70 1 Simone Piccardi
SignatureAlgorithm      rsa-sha256
71 1 Simone Piccardi
Canonicalization        relaxed/simple
72 1 Simone Piccardi
UserID                  opendkim:opendkim
73 1 Simone Piccardi
74 1 Simone Piccardi
# Added to write headers
75 1 Simone Piccardi
AuthservID     HOSTNAME
76 1 Simone Piccardi
</pre>
77 1 Simone Piccardi
78 1 Simone Piccardi
Dove l'ultima riga è essenziale se si vuole che @opendkim@ controllando le
79 1 Simone Piccardi
firme dei messaggi in arrivo costruisca un corretto header di autenticazione
80 1 Simone Piccardi
ad uso sia di @opendmarc@ che del debug dei relativi problemi, la parola
81 1 Simone Piccardi
chiave @HOSTNAME@ assegna un identificativo di chi ha eseguito il controllo
82 1 Simone Piccardi
automaticamente inizializzato all'hostname della macchina su cui lo si esegue. 
83 1 Simone Piccardi
84 1 Simone Piccardi
Occorre poi creare la directory @/etc/opendkim/@ ed una sottodirectory per
85 1 Simone Piccardi
ciascun dominio che si vuole utilizzare:
86 1 Simone Piccardi
87 1 Simone Piccardi
<pre>
88 1 Simone Piccardi
mkdir /etc/opendkim
89 1 Simone Piccardi
mkdir /etc/opendkim/truelite.it
90 1 Simone Piccardi
mkdir /etc/opendkim/fountainpen.it
91 1 Simone Piccardi
...
92 1 Simone Piccardi
</pre>
93 1 Simone Piccardi
94 1 Simone Piccardi
per ciascun dominio creare una chiave RSA con:
95 1 Simone Piccardi
96 1 Simone Piccardi
<pre>
97 1 Simone Piccardi
cd /etc/opendkim/truelite.it
98 1 Simone Piccardi
opendkim-genkey -b 2048 -s mail -d truelite.it
99 1 Simone Piccardi
</pre>
100 1 Simone Piccardi
101 1 Simone Piccardi
oppure, se non si è paranoici e ci si accontenta della sicurezza
102 1 Simone Piccardi
standard che nel caso, non avendo da cifrare dati ma solo da inserire
103 1 Simone Piccardi
un token di reputazione per la firma è senz'altro sufficiente:
104 1 Simone Piccardi
105 1 Simone Piccardi
<pre>
106 1 Simone Piccardi
opendkim-genkey -s mail -d truelite.it
107 1 Simone Piccardi
</pre>
108 1 Simone Piccardi
109 1 Simone Piccardi
che genera una chiave RSA da 1024 bit, che comunque é la dimensione
110 1 Simone Piccardi
raccomandata dalle specifiche di DKIM e che è anche più semplice da
111 1 Simone Piccardi
gestire con il DNS. (occorre verificare se si può usare la stessa
112 1 Simone Piccardi
chiave per più domini)
113 1 Simone Piccardi
114 1 Simone Piccardi
Questo crea due file usando come nome il selettore (l'argomento
115 1 Simone Piccardi
dell'opzione @-s@), nel caso @mail.private@ con la chiave privata e
116 1 Simone Piccardi
@mail.txt@ che contiene il record TXT da aggiungere al DNS (ma questo
117 1 Simone Piccardi
fa fatto solo dopo aver verificato che la firma con DKIM funziona) con
118 1 Simone Piccardi
la chiave pubblica.
119 1 Simone Piccardi
120 1 Simone Piccardi
Si tenga conto che con la configurazione precedente opendkim viene eseguito
121 1 Simone Piccardi
con un utente non privilegiato, per cui occorrerà cambiare il permesso della
122 1 Simone Piccardi
chiave privata con:
123 1 Simone Piccardi
124 1 Simone Piccardi
<pre>
125 1 Simone Piccardi
chown opendkim mail.private
126 1 Simone Piccardi
</pre>
127 1 Simone Piccardi
128 1 Simone Piccardi
Occorre poi inserire in @/etc/opendkim/trusted_host@ la lista degli
129 1 Simone Piccardi
IP/host/reti che si considerano fidate sia per la ricezione, che per la
130 1 Simone Piccardi
spedizione, in particolare usando questa lista con @ExternalIgnoreList@ si
131 1 Simone Piccardi
dice a OpenDKIM di ignorarle nella verifica delle email in ingresso, mentre
132 1 Simone Piccardi
con @InternalHosts@ si dice che la posta che arriva da detti IP deve essere
133 1 Simone Piccardi
firmata.
134 1 Simone Piccardi
135 1 Simone Piccardi
Occorre fare attenzione in particolare a @InternalHosts@ in quanto se non si
136 1 Simone Piccardi
indica nulla viene abilitata comunque la firma delle email inviata passando
137 1 Simone Piccardi
dal @localhost@ (o meglio da @127.0.0.1@, se come su Debian @localhost@
138 1 Simone Piccardi
risolve in IPv6 su @::1@ l'invio di email fatto con connessioni a @localhost@
139 1 Simone Piccardi
non sarà firmato) ma se si indica un file, questo default sparisce e 127.0.0.1
140 1 Simone Piccardi
deve essere esplicitamente inserito nel file. Un esempio è il seguente:
141 1 Simone Piccardi
142 1 Simone Piccardi
<pre>
143 1 Simone Piccardi
# localhost
144 1 Simone Piccardi
127.0.0.1
145 1 Simone Piccardi
::1
146 1 Simone Piccardi
localhost
147 1 Simone Piccardi
# other hosts
148 1 Simone Piccardi
holland.truelite.it
149 1 Simone Piccardi
144.76.13.157
150 1 Simone Piccardi
144.76.13.137
151 1 Simone Piccardi
136.243.5.189
152 1 Simone Piccardi
136.243.5.190
153 1 Simone Piccardi
136.243.5.137
154 1 Simone Piccardi
# local subnet
155 1 Simone Piccardi
192.168.1.0/24
156 1 Simone Piccardi
</pre>
157 1 Simone Piccardi
158 1 Simone Piccardi
Avendola dichiarata in @KeyTable@ occorre inserire nel file
159 1 Simone Piccardi
@/etc/opendkim/key_table@ la tabella che indicizza le chiavi da utilizzare; la
160 1 Simone Piccardi
tabella è realizzata con due campi testuali separati da uno spazio.
161 1 Simone Piccardi
162 1 Simone Piccardi
Il primo campo è la chiave di indicizzazione e può essere una stringa
163 1 Simone Piccardi
qualsiasi (nel caso si è deciso di usare, per essere univoci, il nome del
164 1 Simone Piccardi
record TXT che metteremo nel DNS, ma poteva anche essere qualunque cosa).
165 1 Simone Piccardi
166 1 Simone Piccardi
Il secondo campo è il valore associato alla chiave che indica come effettuare
167 1 Simone Piccardi
la firma, e prevede tre valori che vanno scritti di seguito separati dal
168 1 Simone Piccardi
carattere ":" e senza spazi. Il primo valore indica il dominio che si vuole
169 1 Simone Piccardi
sia inserito nella firma (quello indicato come argomento di -d quando si è
170 1 Simone Piccardi
creata la chiave), il secondo indica il selettore (quello usato come argomento
171 1 Simone Piccardi
di -s quando si è creata la chiave), ed il terzo il file (con il pathname
172 1 Simone Piccardi
assoluto, per semplicità) contenente la chiave privata con cui eseguire la
173 1 Simone Piccardi
firma; nel nostro caso si è usato (corripondendo ai parametri usati nel creare
174 1 Simone Piccardi
la chiave):
175 1 Simone Piccardi
176 1 Simone Piccardi
177 1 Simone Piccardi
178 1 Simone Piccardi
<pre>
179 1 Simone Piccardi
mail._domainkey.truelite.it truelite.it:mail:/etc/opendkim/truelite.it/mail.private
180 1 Simone Piccardi
mail._domainkey.truelite.eu truelite.eu:mail:/etc/opendkim/truelite.it/mail.private
181 1 Simone Piccardi
</pre>
182 1 Simone Piccardi
183 1 Simone Piccardi
ma poteva anche essere qualcosa del tipo:
184 1 Simone Piccardi
185 1 Simone Piccardi
<pre>
186 1 Simone Piccardi
pinco   truelite.it:mail:/etc/opendkim/truelite.it/mail.private
187 1 Simone Piccardi
pluto   truelite.eu:mail:/etc/opendkim/truelite.it/mail.private
188 1 Simone Piccardi
</pre>
189 1 Simone Piccardi
190 1 Simone Piccardi
La firma dei messaggi in uscita è controllata, avendolo impostato con
191 1 Simone Piccardi
@SigningTable@, dal contenuto del @/etc/opendkim/signing_table@, il file
192 1 Simone Piccardi
contiene la tabella, con due campi separati da spaziature delle corrispondenze
193 1 Simone Piccardi
che consentono di selezionare, sulla base dell'indirizzo di posta del
194 1 Simone Piccardi
mittente, quale chiave crittografica usare per la firma, da indicare con
195 1 Simone Piccardi
l'etichetta usata in @/etc/opendkim/key_table@.
196 1 Simone Piccardi
197 1 Simone Piccardi
Se si usa come nell'esempio un file ordinario il valore campo from viene
198 1 Simone Piccardi
confrontato con la chiave (il primo campo di @/etc/opendkim/signing_table@) e se
199 1 Simone Piccardi
viene trovata una corrispondenza, la email viene firmata con la chiave
200 1 Simone Piccardi
crittografica indicata dal secondo campo (usata come indice in
201 1 Simone Piccardi
@/etc/opendkim/key_table@). La corrispondenza deve essere esatta, ma viene
202 1 Simone Piccardi
cercata prima sul mittente completo, e poi sul dominio (e poi per il mittente
203 1 Simone Piccardi
su eventuali sottodomini).
204 1 Simone Piccardi
205 1 Simone Piccardi
Di default, a meno di non aver abilitato firme multiple, l'esame del file si
206 1 Simone Piccardi
ferma alla prima corrispondenza. Nel nostro caso si è usato:
207 1 Simone Piccardi
208 1 Simone Piccardi
<pre>
209 1 Simone Piccardi
truelite.it    mail._domainkey.truelite.it
210 1 Simone Piccardi
truelite.eu    mail._domainkey.truelite.eu
211 1 Simone Piccardi
</pre>
212 1 Simone Piccardi
213 1 Simone Piccardi
Se serve una corripondenza più complessa si può indicare nella
214 1 Simone Piccardi
configurazione di @opendkim.conf@ il file come:
215 1 Simone Piccardi
216 1 Simone Piccardi
<pre>
217 1 Simone Piccardi
SigningTable refile:/etc/opendkim/signing_table
218 1 Simone Piccardi
</pre>
219 1 Simone Piccardi
220 1 Simone Piccardi
ed in tal caso la chiave viene usata come pattern in cui si può usare un "*"
221 1 Simone Piccardi
come carattere jolly.
222 1 Simone Piccardi
223 1 Simone Piccardi
Una volta configurati i vari domini, le relative chiavi, e le modalità del
224 1 Simone Piccardi
relativo uso nella firma, si potrà avviare il servizio. Nel nostro caso si è
225 1 Simone Piccardi
preferito per semplicità, farlo ascoltare su un socket su localhost, questo si
226 1 Simone Piccardi
fa scommentando la seguente riga in @/etc/default/opendkim@:
227 1 Simone Piccardi
228 1 Simone Piccardi
<pre>
229 1 Simone Piccardi
SOCKET="inet:12345@localhost" # listen on loopback on port 12345
230 1 Simone Piccardi
</pre>
231 1 Simone Piccardi
232 1 Simone Piccardi
è possibile anche usare un socket locale, che però andrà creato nel chroot di
233 1 Simone Piccardi
postfix (ad esempio in @/var/spool/postfix/private/opendkim@) e con permessi
234 1 Simone Piccardi
adeguati a far si che postfix possa operarvi. Si ricordi di riavviare il
235 1 Simone Piccardi
servizio con:
236 1 Simone Piccardi
237 1 Simone Piccardi
<pre>
238 1 Simone Piccardi
service opendkim restart
239 1 Simone Piccardi
</pre>
240 1 Simone Piccardi
241 1 Simone Piccardi
Per poter usare il servizio di OpenDKIM da postfix occorre configurarne l'uso
242 1 Simone Piccardi
come milter, aggiungendo a @/etc/postfix/main.cf@ le seguenti righe:
243 1 Simone Piccardi
244 1 Simone Piccardi
<pre>
245 1 Simone Piccardi
# DKIM/DMARK addition
246 1 Simone Piccardi
milter_protocol = 6
247 1 Simone Piccardi
milter_default_action = accept
248 1 Simone Piccardi
smtpd_milters = inet:localhost:12345
249 1 Simone Piccardi
non_smtpd_milters = inet:localhost:12345
250 1 Simone Piccardi
</pre>
251 1 Simone Piccardi
        
252 1 Simone Piccardi
e conviene inoltre modificare la configurazione di amavis-new in
253 1 Simone Piccardi
@/etc/postfix/master.cf@ aggiungendo:
254 1 Simone Piccardi
255 1 Simone Piccardi
<pre>
256 1 Simone Piccardi
127.0.0.1:10025 inet n  -       y       -       -  smtpd
257 1 Simone Piccardi
    -o content_filter=
258 1 Simone Piccardi
    ...
259 1 Simone Piccardi
    -o smtpd_hard_error_limit=1000
260 1 Simone Piccardi
    -o smtpd_milters=
261 1 Simone Piccardi
</pre>
262 1 Simone Piccardi
263 1 Simone Piccardi
per evitare di fagli eseguire due volte il filtro.
264 1 Simone Piccardi
265 1 Simone Piccardi
266 1 Simone Piccardi
A questo punto si potrà riavviare postfix e verificare, inviando una email,
267 1 Simone Piccardi
che questa sia correttamente firmata, riportando negli header qualcosa del
268 1 Simone Piccardi
tipo:
269 1 Simone Piccardi
A questo punto si potrà riavviare postfix e verificare, inviando una email,
270 1 Simone Piccardi
che questa sia correttamente firmata, riportando negli header qualcosa del
271 1 Simone Piccardi
tipo:
272 1 Simone Piccardi
273 1 Simone Piccardi
<pre>
274 1 Simone Piccardi
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=truelite.it; s=mail;
275 1 Simone Piccardi
        t=1449592614; bh=73owTq/o58W9zoPsclFWibqVtDP8ZlpL+oASguLeSqM=;
276 1 Simone Piccardi
        h=To:From:Subject:Date:From;
277 1 Simone Piccardi
        b=QwEiNmvmmTGuwI+0j5Z9Too4jnAwswQ2orR1mcOoRGapCP3Tc8FSftzJm9Y0i4HR+
278 1 Simone Piccardi
         DpQJJXfEHPuB20hohsMm1ttMyoyokqPxoAMSuC/pnzkITjgn+/RZH1nqpeRKwvnTKC
279 1 Simone Piccardi
         OBQOewHKiH5DnPyEIIqv3ATKn9CTb04DlFCpwHfXe97xLZm0n69DS9YFSJtVxtMCEa
280 1 Simone Piccardi
         5S67bV8kELwuOGqXK7GJ3KvWdMmYcEmubdgIOOnrbjn61lMztXLdifatDMKw1YZblp
281 1 Simone Piccardi
         b5WRAhHHYe222lCimLE6CS2RF6+82jeqqgUHrq3WLNRYlvhc7qG/MlqVqZC1qzxMmy
282 1 Simone Piccardi
         32uYD888clI4A==
283 1 Simone Piccardi
</pre>
284 1 Simone Piccardi
285 1 Simone Piccardi
Il passo finale per completare la configurazione di DKIM è impostare il DNS
286 1 Simone Piccardi
per pubblicare la propria chiave. Il record da inserire nel proprio dominio è
287 1 Simone Piccardi
direttamente disponibile nel file @mail.txt@, ma inserire direttamente il
288 1 Simone Piccardi
contenuto di questo file in un file di zona darà luogo ad errore in quanto la
289 1 Simone Piccardi
stringa di testo che indica la chiave è più lunga (per chiavi di 2048 bit come
290 1 Simone Piccardi
quella utilizzata) del massimo di 256 caratteri supportati da bind, questo si
291 1 Simone Piccardi
può risolvere spezzando la stringa, pertanto si dovrà inserire nel file di
292 1 Simone Piccardi
zona qualcosa del tipo:
293 1 Simone Piccardi
294 1 Simone Piccardi
<pre>
295 1 Simone Piccardi
mail._domainkey IN TXT  ( 
296 1 Simone Piccardi
    "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2MfnM"
297 1 Simone Piccardi
    "zbBCutJTkkZQe+5kAZlls5MZzsSzRVMtOn/FS6fS14wB0+Qn+SIXbewZxcg/37+iJ/"
298 1 Simone Piccardi
    "qiOe5Xf7GF4IzvVSlXKswLVtiLdZU//0Dkq5YByL9pEQwtgsEJOnV+cHUEyjDRfoFk"
299 1 Simone Piccardi
    "Qp0GdZXw/V42Pa7RzIAGFlJAPRAwCrEOYcMCPvu243PLjUhjV8Dl79EEipaZKLAAdyK"
300 1 Simone Piccardi
    "2XsyDOGTTuBHiQ5Y06IV7BTi9cS76limReZcAGUBds/cwRvzZNhnq8V+sEEe05p0TrD"
301 1 Simone Piccardi
    "0HcPwDCLT7M6tvb8q+1KDqBQzZF5xtILOPiEYFUEaBuBSkh2BNTQaa8UnlYnXUjJ5Ed"
302 1 Simone Piccardi
    "Q5AQIDAQAB" )
303 1 Simone Piccardi
</pre>
304 1 Simone Piccardi
305 1 Simone Piccardi
per verificare la firma si installi:
306 1 Simone Piccardi
307 1 Simone Piccardi
<pre>
308 1 Simone Piccardi
apt-get install python-dkim
309 1 Simone Piccardi
</pre>
310 1 Simone Piccardi
311 1 Simone Piccardi
e poi si potrà effettuare la verifica con:
312 1 Simone Piccardi
313 1 Simone Piccardi
<pre>
314 1 Simone Piccardi
dkimverify < /path/to/email/message
315 1 Simone Piccardi
</pre>
316 1 Simone Piccardi
317 1 Simone Piccardi
Come passo ulteriore si può installare OpenDMARC per abilitare la verifica di
318 1 Simone Piccardi
DMARC su postfix, ma serve solo per la ricezione, per cui se non si intende
319 1 Simone Piccardi
usarlo, si può saltare questa parte. Per Wheezy il pacchetto è disponibile
320 1 Simone Piccardi
nei backports, e si installa con:
321 1 Simone Piccardi
322 1 Simone Piccardi
<pre>
323 1 Simone Piccardi
apt-get install -t wheezy-backports install opendmarc
324 1 Simone Piccardi
</pre>
325 1 Simone Piccardi
326 1 Simone Piccardi
per la configurazione si aggiunga a @/etc/opendmark.conf@ le seguenti righe:
327 1 Simone Piccardi
328 1 Simone Piccardi
<pre>
329 1 Simone Piccardi
##
330 1 Simone Piccardi
## Added values
331 1 Simone Piccardi
##
332 1 Simone Piccardi
AuthservID HOSTNAME
333 1 Simone Piccardi
TrustedAuthservIDs HOSTNAME
334 1 Simone Piccardi
#TrustedAuthservIDs jojo.truelite.it holland.truelite.it
335 1 Simone Piccardi
IgnoreHosts /etc/opendmarc/ignore.hosts
336 1 Simone Piccardi
HistoryFile /var/run/opendmarc/opendmarc.dat
337 1 Simone Piccardi
# for test
338 1 Simone Piccardi
SoftwareHeader true
339 1 Simone Piccardi
</pre>
340 1 Simone Piccardi
341 1 Simone Piccardi
nel file @/etc/opendmarc/ignore.hosts@ va messo l'elenco delle
342 1 Simone Piccardi
macchine per le quali non si vuole effettuare il controllo della posta
343 1 Simone Piccardi
ricevuta con DMARC. Questo vale per il server stesso (ed infatti in
344 1 Simone Piccardi
genere vi si mette il @localhost@) ma anche per le reti locali del
345 1 Simone Piccardi
@mynetworks@ di Postfix, che in genere non vengono elencate nei record
346 1 Simone Piccardi
di SPF. In questo modo si evita che il server, pur spedendo
347 1 Simone Piccardi
correttamente verso l'esterno, classifiche le email provenienti dai
348 1 Simone Piccardi
suddetti indirizzi come @fail@ per DMARC quando le controlla. Un
349 1 Simone Piccardi
esempio del file è il seguente:
350 1 Simone Piccardi
351 1 Simone Piccardi
<pre>
352 1 Simone Piccardi
# localhost
353 1 Simone Piccardi
127.0.0.1
354 1 Simone Piccardi
holland.truelite.it
355 1 Simone Piccardi
192.168.2.0/24
356 1 Simone Piccardi
192.168.1.0/24
357 1 Simone Piccardi
358 1 Simone Piccardi
# other hosts
359 1 Simone Piccardi
jojo.truelite.it
360 1 Simone Piccardi
</pre>
361 1 Simone Piccardi
362 1 Simone Piccardi
Invece in @/var/run/opendmarc/opendmarc.dat@ verranno salvati i dati
363 1 Simone Piccardi
dei controlli eventualmente usabili per inviare i rapporti ai mittenti
364 1 Simone Piccardi
(non ancora configurati). 
365 1 Simone Piccardi
366 1 Simone Piccardi
Le configurazioni di @AuthservID@ e @TrustedAuthservIDs@ con @HOSTNAME@ sono
367 1 Simone Piccardi
necessarie perché il programma possa generare un header con i risultati
368 1 Simone Piccardi
dell'autenticazione di DMARC. Invece @SPFSelfValidate@ dovrebe richiedergli di
369 1 Simone Piccardi
controllare il risultato di SPF se non lo trova negli header. 
370 1 Simone Piccardi
371 1 Simone Piccardi
Per poter usare il servizio occorrerà attivare l'uso di un socket inserendo in
372 1 Simone Piccardi
@/etc/default/opendmark@ la riga:
373 1 Simone Piccardi
374 1 Simone Piccardi
<pre>
375 1 Simone Piccardi
SOCKET="inet:54321@localhost" # listen on loopback on port 12345
376 1 Simone Piccardi
</pre>
377 1 Simone Piccardi
378 1 Simone Piccardi
e modificare la configurazione di postfix in @/etc/postfix/main.cf@ in:
379 1 Simone Piccardi
380 1 Simone Piccardi
<pre>
381 1 Simone Piccardi
# DKIM/DMARK addition
382 1 Simone Piccardi
milter_protocol = 6
383 1 Simone Piccardi
milter_default_action = accept
384 1 Simone Piccardi
smtpd_milters = inet:localhost:12345,inet:localhost:54321
385 1 Simone Piccardi
non_smtpd_milters = ${smtpd_milters}
386 1 Simone Piccardi
</pre>
387 1 Simone Piccardi
388 1 Simone Piccardi
ricordandosi di riavviare i servizi:
389 1 Simone Piccardi
390 1 Simone Piccardi
<pre>
391 1 Simone Piccardi
service opendmarc restart
392 1 Simone Piccardi
service postfix restart
393 1 Simone Piccardi
</pre>