Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strips sender details (IP, client, user agent) when sending #91

Merged
merged 4 commits into from
Feb 17, 2021

Conversation

dgraziotin
Copy link
Contributor

This PR enables, when the env variable SMF_SENDERPRIVACY is defined, stripping of headers related to the sender, when SMF is used to send e-mails (outgoing e-mail).

In particular, IP, client, and user agent will be removed, but only from the first Received instance, for sending.

The first Received: header (the one below) will be rewritten as so:

Received: from smfdomain.com ( smfdomain.com [123.123.123.123])
	(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by mail-tester.com (Postfix) with ESMTPS id XXX
Received: from 127.0.0.1 (localhost [127.0.0.1])
	by smfdomain.com (Postfix) with ESMTPSA id XXX

where smfdomain.com is SMF rDNS entry. In other words, only SMF IP address will be visible to the receiver but not the client (home) IP address.

@dgraziotin
Copy link
Contributor Author

@huan sorry for not telling in advance. I needed this feature so I simply went and implemented it. What do you think?

@huan
Copy link
Owner

huan commented Feb 16, 2021

I think this feature is useful in some scenarios, thanks for adding it!

Could you please invite someone to review your code and approve it for us?

It will be enough confidence for me after at least one approvement and I'll be very happy to merge it then!

BTW: Please also bump the patch version number in the VERSION file in the root, it will be used when publishing docker images as its version number.

@dgraziotin
Copy link
Contributor Author

Well, I know that @petslane likely uses SMF for sending. Otherwise I do not know the community here, sorry!

@petslane
Copy link
Contributor

LGTM

@huan huan merged commit acef3d7 into huan:master Feb 17, 2021
@huan
Copy link
Owner

huan commented Feb 17, 2021

@dgraziotin Thank you very much for add this new feature to SMF!
@petslane Thank you very much for review the PR and approve it!

SMF growth in recent years based on pure community efforts, without helps from the community the SMF can not move forward like this. appreciate!

@dgraziotin
Copy link
Contributor Author

@huan thank YOU for this awesome image.

haratosan pushed a commit to haratosan/docker-simple-mail-forwarder that referenced this pull request Apr 5, 2021
* Strips sender's IP, client, and user agent headers

* Bumping patch verison number
huan added a commit that referenced this pull request Jul 6, 2021
…103)

* Use alpine:latest as base image

* Roll back to sillelien/base-alpine:0.10 (#23)

* fix doc

* Update README.md

* Update README.md

* Update Base to Alpine 3.8

* Update base image to Alpine 3.8
* Install s6 process manager directly
* Upgraded BATS to 1.1.0
* Install syslog-ng for postfix logging to stdout

* syslog-ng: Disable statistic messages

These spam the console too much, so disable them.

* Fix typo in README

couse => course

* Upgrade circleci from v1 to v2

* add ide config

* fix circleci config

* fix circleci config

* fix circleci config

* fix circleci config

* fix yml

* fix yml add docker run type

* fix yml add machine run type

* fix yml

* year 2019

* Add voice from Paweł Czochański

* EC key support (#51)

* Fix nickname typo

* Add support for EC keys

* Update README.md

* Update README.md

* add ec key support

* Fix layout

* Timezone tzdata packagge (#57)

Add custom timezone support

* make circler yaml linter happy

* Fix leak of EC Cert/Key problem (#58)

* code clean

* only generate not existing files (#51 #58)

* one line -> one-line

* Timezone supported

* Update author & copyright

* Update master changelog

* fix chinese charactor bug

* v1.1

* Update README.md timezone (#59)

Update README.md for Timezone support

* clean doc

* Fix H1 title

* Update README.md

* Update README.md

* Fix typo (#66)

* add auth for relayhost (#68)

* add auth for relayhost

* indent fix

* example for AUTH

* remove excess line

* environment var typo fix

* fix for mail log not displaying

* Enable GitHub Actions

* Add Actions Badge

* basic "proofreading" (#69)

* basic "proofreading"

fixed some grammatical and spelling errors, made the descriptions flow a little better

* PR revisions

* Update README.md

* add hall of flame

* Upgrade BATS & S6, with multiple-platform docker image published with version 1.2 (#76)

* v1.2

* Upgrade Alpine to 3.8 (#77)

* upgrade base image to alpine 3.8

* v1.3

* Deploy docker image arm platform from github action

* test

* test

* checkout before deploy

* clean

* use buildx as default bugild

* republish v1.2 for amd64 with s6 fix (#79)

* republish v1.3 for amd64 with s6 fix

* fix comment

* v1.2

* Add test for deleting test user (#82)

* Add makefile

* makefile

* makefile

* makefile

* 1.2.14

* add make version

* 1.2.15

* v1.3.0 for multi platforms image

* Use script to install s6 with right platforms (arm/x86) (#76)

* use aarch64 for s6 release (#76)

* v1.3.1

* Add DKIM support (#83)

* Add DKIM support

* 1.2.11

Co-authored-by: Huan (李卓桓) <[email protected]>

* generating a DKIM key for all virtualDomains

* including HOSTNAME in folder of domains for DKIM

* KeyTable, SigningTable, TrustedHosts for HOSTNAME and all virtualDomain

* Generate new DKIM data only if keys do not exist yet

* disabled opendkim.conf settings for single domain, added KeyTable,SigningTable,ExternalIgnoreList,InternalHosts

* Correct permissions of DKIM files regardless of prior creation

* Added test for multiple domains and DKIM. Ready for #88

* Updated README on DKIM for multiple domains

* Fixed indentation on entrypoint

* Fixed wrong indentation (style)

* Cleaner handling of multiple DKIM keys. No settings required. Renders #83 redundant

* Making sure we never insert the same config twice #89

* Forgot one last mention of SMF_DKIM_ALL

* Better tld naming for DKIM in README

Co-authored-by: Peeter N <[email protected]>

* DKIM test no longer changes working directory

Co-authored-by: Peeter N <[email protected]>

* More elegant generation of DKIM entries for HOSTNAME and virtual domains

* Correct switch to suppress grep complains when files miss

* Update VERSION

* Strips sender details (IP, client, user agent) when sending (#91)

* Strips sender's IP, client, and user agent headers

* Bumping patch verison number

* Allow for setting any Postfix variables in the config file (both main.cf and master.cf) (#93)

* Strips sender's IP, client, and user agent headers

* Bumping patch verison number

* SMF_POSTFIXMAIN_* to set custom postfix main.cf entries

* SMF_POSTFIXMASTER_* to set custom postfix master.cf entries

* Using sed to handle master.cf custom variables

* README.md explains env variables for custom main.cf and master.cf

* Tests for custom main.cf and master.cf

* Fixes #92

* Simplify docker run command with SMF_CONFIG

* v1.4.3 (#94)

* Add VERSION & Update README.md (#94)

* fix ignore

* 1.4.4

* add v1.4 changelog

* clean

* show version

* 1.4.5

* layout

* Update configuration after variables has been injected to the main configuration (#98)

* Add an option to override postfix's default logging configuration

* Add tests

* Update README.md

* push to build

* fix overwriting variable

* update with postfix-configuration

* delete drone for pull request

Co-authored-by: Tamaro Skaljic <[email protected]>

* Add an option to override postfix's default logging configuration (#97)

* Add an option to override postfix's default logging configuration

* Add tests

* Update README.md

* v1.4.6

* Change Postfix logging configuration tests behaviour (#99)

* fix default postfix logging configuration test

* Change logfile path in custom postfix logging configuration test

* Make postfix logging configuration tests restore the preconditions

* start PostSRSd and generate Secret

* start PostSRSd and generate Secret

* start PostSRSd if  is set

* start PostSRSd if  is set

* only start PostSRSd if  is set

* only start PostSRSd if  is set

* Updated README.md

* Updated README.md

* spelling...

* spelling...

* Updated the if-statement for PostSRSd

* Updated the if-statement for PostSRSd

Co-authored-by: Martijn Rondeel <[email protected]>
Co-authored-by: Huan LI <[email protected]>
Co-authored-by: Chris Blake <[email protected]>
Co-authored-by: universeroc <[email protected]>
Co-authored-by: Paweł Czochański <[email protected]>
Co-authored-by: me1299 <[email protected]>
Co-authored-by: David Gonzalez <[email protected]>
Co-authored-by: Choon-Siang Lai <[email protected]>
Co-authored-by: Bailey <[email protected]>
Co-authored-by: Peeter N <[email protected]>
Co-authored-by: Daniel Graziotin <[email protected]>
Co-authored-by: Daniel Graziotin <[email protected]>
Co-authored-by: Cenk Kılıç <[email protected]>
Co-authored-by: Tamaro Skaljic <[email protected]>
Co-authored-by: Linux User <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants