Fix CVE-2016-1531
[exim.git] / test / confs / 5651
index e38043f3edf6f4a8f01816cb8efcbcf36fe89d46..fe9d3bcebf24194a70c5977b15597bae134c0f00 100644 (file)
@@ -4,9 +4,9 @@
 SERVER =
 
 exim_path = EXIM_PATH
+keep_environment =
 host_lookup_order = bydns
 primary_hostname = server1.example.com
-rfc1413_query_timeout = 0s
 spool_directory = DIR/spool
 log_file_path = DIR/spool/log/SERVER%slog
 gecos_pattern = ""
@@ -18,6 +18,8 @@ gecos_name = CALLER_NAME
 domainlist local_domains = test.ex : *.test.ex
 
 acl_smtp_rcpt = check_recipient
+acl_smtp_data = check_data
+
 log_selector = +tls_peerdn
 remote_max_parallel = 1
 
@@ -44,6 +46,11 @@ check_recipient:
   accept  domains = +local_domains
   deny    message = relay not permitted
 
+check_data:
+  warn   condition   = ${if def:h_X-TLS-out:}
+         logwrite = client claims: $h_X-TLS-out:
+  accept
+
 
 # ----- Routers -----
 
@@ -54,8 +61,9 @@ client:
   condition = ${if eq {SERVER}{server}{no}{yes}}
   retry_use_local_part
   transport = send_to_server${if eq{$local_part}{nostaple}{1} \
-                               {${if eq{$local_part}{smtps} {3}{2}}} \
-                            }
+                               {${if eq{$local_part}{norequire} {2} \
+                               {${if eq{$local_part}{smtps} {4}{3}}} \
+                            }}}
 
 server:
   driver = redirect
@@ -80,10 +88,27 @@ send_to_server1:
   hosts = HOSTIPV4
   port = PORT_D
   tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/CA/CA.pem
+  tls_verify_cert_hostnames =
   hosts_require_tls = *
-# note no ocsp here
+  hosts_request_ocsp = :
+  headers_add = X-TLS-out: OCSP status $tls_out_ocsp \
+    (${listextract {${eval:$tls_out_ocsp+1}} \
+               {notreq:notresp:vfynotdone:failed:verified}})
 
 send_to_server2:
+  driver = smtp
+  allow_localhost
+  hosts = HOSTIPV4
+  port = PORT_D
+  tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/CA/CA.pem
+  tls_verify_cert_hostnames =
+  hosts_require_tls = *
+# note no ocsp mention here
+  headers_add = X-TLS-out: OCSP status $tls_out_ocsp \
+    (${listextract {${eval:$tls_out_ocsp+1}} \
+               {notreq:notresp:vfynotdone:failed:verified}})
+
+send_to_server3:
   driver = smtp
   allow_localhost
   hosts = 127.0.0.1
@@ -91,10 +116,15 @@ send_to_server2:
   helo_data = helo.data.changed
   #tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/server1.example.com/ca_chain.pem
   tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/CA/CA.pem
+  tls_try_verify_hosts =
+  tls_verify_cert_hostnames =
   hosts_require_tls =  *
   hosts_require_ocsp = *
+  headers_add = X-TLS-out: OCSP status $tls_out_ocsp \
+    (${listextract {${eval:$tls_out_ocsp+1}} \
+               {notreq:notresp:vfynotdone:failed:verified}})
 
-send_to_server3:
+send_to_server4:
   driver = smtp
   allow_localhost
   hosts = 127.0.0.1
@@ -102,9 +132,13 @@ send_to_server3:
   helo_data = helo.data.changed
   #tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/server1.example.com/ca_chain.pem
   tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/CA/CA.pem
+  tls_verify_cert_hostnames =
   protocol =           smtps
   hosts_require_tls =  *
   hosts_require_ocsp = *
+  headers_add = X-TLS-out: OCSP status $tls_out_ocsp \
+    (${listextract {${eval:$tls_out_ocsp+1}} \
+               {notreq:notresp:vfynotdone:failed:verified}})
 
 
 # ----- Retry -----