summaryrefslogtreecommitdiff
path: root/test/confs/2102
blob: 804a846bf0e11c4961c98c92cd181d81542312fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Exim test configuration 2102

exim_path = EXIM_PATH
host_lookup_order = bydns
primary_hostname = myhost.test.ex
spool_directory = DIR/spool
log_file_path = DIR/spool/log/%slog
gecos_pattern = ""
gecos_name = CALLER_NAME
timezone = UTC

# ----- Main settings -----

acl_smtp_rcpt = check_recipient

log_selector = +tls_peerdn

queue_only
queue_run_in_order

tls_advertise_hosts = 127.0.0.1 : HOSTIPV4

tls_certificate = DIR/aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.pem
tls_privatekey = DIR/aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key

tls_verify_hosts = HOSTIPV4
tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/server2.example.com/ca_chain.pem


# ------ ACL ------

begin acl

check_recipient:
  accept  hosts = :
  deny    hosts = HOSTIPV4
         !encrypted = AES256-SHA : \
                      AES256-GCM-SHA384 : \
                      AES128-GCM-SHA256 : \
                      IDEA-CBC-MD5 : \
                      DES-CBC3-SHA : \
		      DHE-RSA-AES256-SHA : \
		      DHE-RSA-AES256-GCM-SHA384 : \
                      DHE_RSA_AES_256_CBC_SHA1 : \
                      DHE_RSA_3DES_EDE_CBC_SHA : \
                      ECDHE-RSA-AES256-GCM-SHA384 : \
                      ECDHE-RSA-AES128-GCM-SHA256
  warn    logwrite =  ${if def:tls_in_ourcert \
		{Our cert SN: <${certextract{subject}{$tls_in_ourcert}}>} \
		{We did not present a cert}}
  accept  condition = ${if !def:tls_in_peercert}
	  logwrite =  Peer did not present a cert
  accept  logwrite =  Peer cert:
          logwrite =  ver ${certextract {version}{$tls_in_peercert}}
	  logwrite =  SR  <${certextract {serial_number}{$tls_in_peercert}}>
	  logwrite =  SN  <${certextract {subject}	{$tls_in_peercert}}>
          logwrite =  IN  <${certextract {issuer}	{$tls_in_peercert}}>
          logwrite =  IN/O <${certextract {issuer,O}	{$tls_in_peercert}}>
          logwrite =  NB/r <${certextract {notbefore,raw}	{$tls_in_peercert}}>
          logwrite =  NB   <${certextract {notbefore}	{$tls_in_peercert}}>
          logwrite =  NB/i <${certextract {notbefore,int}{$tls_in_peercert}}>
          logwrite =  NA  <${certextract {notafter}	{$tls_in_peercert}}>
          logwrite =  SA  <${certextract {sig_algorithm}{$tls_in_peercert}}>
          logwrite =  SG  <${certextract {signature}	{$tls_in_peercert}}>
	  logwrite =       ${certextract {subj_altname} {$tls_in_peercert} {SAN <$value>}{(no SAN)}}
	  logwrite =       ${certextract {ocsp_uri}	{$tls_in_peercert} {OCU <$value>}{(no OCU)}}
	  logwrite =       ${certextract {crl_uri}	{$tls_in_peercert} {CRU <$value>}{(no CRU)}}
	  logwrite =  md5    fingerprint ${md5:$tls_in_peercert}
	  logwrite =  sha1   fingerprint ${sha1:$tls_in_peercert}
	  logwrite =  sha256 fingerprint ${sha256:$tls_in_peercert}


# ----- Routers -----

begin routers

abc:
  driver = accept
  retry_use_local_part
  transport = local_delivery
  headers_add = tls-certificate-verified: $tls_certificate_verified


# ----- Transports -----

begin transports

local_delivery:
  driver = appendfile
  file = DIR/test-mail/$local_part
  headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
  user = CALLER

# End