diff --git a/smtprelay/Dockerfile b/smtprelay/Dockerfile new file mode 100644 index 0000000..3cbeb4c --- /dev/null +++ b/smtprelay/Dockerfile @@ -0,0 +1,4 @@ +FROM alpine:edge +RUN apk --update --no-cache add opensmtpd && \ + install -d -m 0711 -v /var/spool/smtpd +ENTRYPOINT smtpd -d diff --git a/smtprelay/docker-compose.yml b/smtprelay/docker-compose.yml new file mode 100644 index 0000000..3f51911 --- /dev/null +++ b/smtprelay/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3' + +volumes: + spool: + +services: + smtprelay: + container_name: smtprelay + build: . + restart: on-failure + volumes: + - ./smtpd:/etc/smtpd:ro + - spool:/var/spool/smtpd + ports: + - 587:587 diff --git a/smtprelay/smtpd/cert.pem b/smtprelay/smtpd/cert.pem new file mode 100644 index 0000000..01ee787 --- /dev/null +++ b/smtprelay/smtpd/cert.pem @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUYh+iI3IuwVOOeFMAKvcKQPyqjvMwDQYJKoZIhvcNAQEL +BQAwaTELMAkGA1UEBhMCREUxFDASBgNVBAgMC0JyYW5kZW5idXJnMREwDwYDVQQH +DAhSYXRoZW5vdzEWMBQGA1UECgwNU3RlZmZlbiBMYW5nZTEZMBcGA1UEAwwQc2Vh +cnguY29kZWhhbC5kZTAeFw0yMTA2MDUyMzI3MDVaFw0yMjA2MDUyMzI3MDVaMGkx +CzAJBgNVBAYTAkRFMRQwEgYDVQQIDAtCcmFuZGVuYnVyZzERMA8GA1UEBwwIUmF0 +aGVub3cxFjAUBgNVBAoMDVN0ZWZmZW4gTGFuZ2UxGTAXBgNVBAMMEHNlYXJ4LmNv +ZGVoYWwuZGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6L7nh35kn +HsxIyewws66bQrym+zb7RAA+NlyySjO68lUhLdboZdYPxwTy6FXxr4N876CI0NOs +ieNMhnZR6pGH8mVeyou+v8nW+qwG7V8ldL4uGwFjaORSGTaJsAaIIpQALusZfxTD +W9nKPG8TUTdbkytC9Ze2/khH57kX8HOBZwxV9D63WOmyL9jnGoiSCNc7SMiZXPzB +aGA8IS41Slz+8imdfyTFq5QxM87fWIyxy/9887d+l1+eODd6fhD3lTF52nuwoiMZ +P/JWP18h4gqXwvJfddjdJP15C44h9dcMYqsyNitdn3Wx2IhZdtKQrASo+4SticmV +VySIXF0nvOfYBsJqWdKzqnTlH2BpHmG9/JsyviH0kLgsTu9kHcKrIWGzhqPzUMqI +8zcmaSk69wRJxpo7Rm55T7hhyJ4SyKDMcx025/vrF5xx80N8EImm9u/UXyPEyLFq +m6AiIQF64vgXFPlbLzZ71TSvTT7DdtD2/QYxTZfnpSvNCTUD3gmKjQEplBiLNX/G +w74V4/4qcVaHe79V+FfRj0bZfpTgIVQx5Dz6rPAyCUl5sZ5Slovzty+POPwCD3Uz +7MQQG66qbFdido0U8nbtVq8Qo97uncjLo6u4VD/3cZhlXORWOZoi06mEwPkf440y +xp5bwzlJflX80MD6E6pCb0xEpC5r/d7hPQIDAQABo1MwUTAdBgNVHQ4EFgQUSPma +mbPk39bZwtBK7YaVMRI7Yu0wHwYDVR0jBBgwFoAUSPmambPk39bZwtBK7YaVMRI7 +Yu0wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEANJN8N8KVC5g0 +bNxbRszF6Aj4GDkKjwS68JNVggoavkqQNLHq5pqwg8ZbfNH3Rsz4OaTIYbTcMRtL +2jAks05KFMkh0WBGo80tEhu/1nWCdRE5UbdwqQWJjHcFMlx33wbM4qz9pAMJ9VvN +ZS3PcOWCbhrb5cjgkDuC+lEO/Cu/joG9DrigOWO/T1rfutATzWRYz/6nlj8KmKv+ +JZ6vwrC8C3vsn5M0BXzWp/o5Og0o7B7s2mWIyWVQXrkhz8sISwCEiGM7a05exHoz +XqWNSjsq/DtXwc3XxppyLtAR0r+WhFCWzV4RSBSMpKowHQfRCAQNQIH1glOGkzCD +X8k+l8BcgdVRynGtrlpPrTf25uRtCrg8G+wgP/aVi+UzjnjZq3HLgSfONfXQrc+S +M+OIVopsxtbUNrvl7F1GuZdFBBAC45MkIdg1gJEyypgoNZewo/fdfnQrDAXVnf2M +krRNwR/uen8hKHAlvqkIHkLtqa3zj8bGlINPQk/Lz5dJUEb0Gu0igqHLSvcHf8ZK +5rfjuuJsLDKFbsAHTMwRk57anChheBeWhGaHYDcuvzTiFr2jwumAw41fBEWc7ja1 +5f0T3gp6bHwurI2g1XvwQ7rftfVW7/siHGgXbfjYaexvoAvHKZy3sNf1ZySqCwy5 +s59sUAWupASpxRNxB6MdgJAnAe6uz1k= +-----END CERTIFICATE----- diff --git a/smtprelay/smtpd/creds b/smtprelay/smtpd/creds new file mode 100644 index 0000000..c41d7e2 --- /dev/null +++ b/smtprelay/smtpd/creds @@ -0,0 +1,2 @@ +user1 $6$kHKLoDIKs/glvw9v$NlERi0VTXJw1Nxa6DQWv9k5DXZ5pvRIJo77j3CqpwJxhZkmvURClviSwyD1RLY7Y0EAlF44qFx7T1IfMwoGwl0 +user2 $6$MJI.2JXCp88rZbFg$Z5aiK3d001yycF21tXnWBbwsCyfDCLHPs0X1INM2Amj4GP/GxkV/NG.ZTELaD.BP3YOaCFo6PKqb2ns.Nmril. diff --git a/smtprelay/smtpd/key.pem b/smtprelay/smtpd/key.pem new file mode 100644 index 0000000..025030d --- /dev/null +++ b/smtprelay/smtpd/key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +bXrg+CeLXkHyZ28y2ulOO2pMvSQso08= +-----END PRIVATE KEY----- diff --git a/smtprelay/smtpd/smtpd.conf b/smtprelay/smtpd/smtpd.conf new file mode 100644 index 0000000..8530a55 --- /dev/null +++ b/smtprelay/smtpd/smtpd.conf @@ -0,0 +1,11 @@ +pki "server" cert "/etc/smtpd/cert.pem" +pki "server" key "/etc/smtpd/key.pem" + +table creds file:/etc/smtpd/creds + +listen on eth0 port 587 tls-require pki "server" auth hostname smtprelay.codehal.de + +action "relay" relay + +match from auth for any action "relay" +