Use postfix options for routing mails through tunnel #45

Closed
esavkin wants to merge 15 commits from enable-mail-proxy-and-tunnel into master
1 changed files with 14 additions and 10 deletions
Showing only changes of commit bbfee50b53 - Show all commits

View File

@ -270,8 +270,8 @@ in
interfaces.intl0 = { interfaces.intl0 = {
ipv4.addresses = [ ipv4.addresses = [
{ {
address = "10.47.3.2"; address = "10.47.3.1";
prefixLength = 30; prefixLength = 31;
} }
]; ];
ipv4.routes = [ ipv4.routes = [
@ -405,7 +405,7 @@ in
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
ExecStart = "${pkgs.iproute2}/bin/ip rule add from 10.47.3.0/30 table 3"; ExecStart = "${pkgs.iproute2}/bin/ip rule add from 10.47.3.0/31 table 3";
ExecStop = "${pkgs.iproute2}/bin/ip rule del table 3"; ExecStop = "${pkgs.iproute2}/bin/ip rule del table 3";
}; };
}; };
@ -1305,14 +1305,14 @@ in
}; };
}; };
services.postfix.mapFiles.sender_relay = pkgs.writeText "sender_relay" '' services.postfix.mapFiles.sender_transport = pkgs.writeText "sender_transport" ''
m-labs-intl.com smtptun: @m-labs-intl.com intltunnel:
* : * :
''; '';
systemd.services.postfix-rebuild-sender-relay = { systemd.services.postfix-rebuild-sender-relay = {
description = "Postfix Rebuild Sender Dependent Relayhost Maps"; description = "Postfix Rebuild Sender Dependent Transport Maps";
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.postfix}/sbin/postmap /var/lib/postfix/conf/sender_relay"; ExecStart = "${pkgs.postfix}/sbin/postmap /var/lib/postfix/conf/sender_transport";
}; };
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
}; };
@ -1328,12 +1328,16 @@ in
} // (import /etc/nixos/secret/email_settings.nix); } // (import /etc/nixos/secret/email_settings.nix);
services.postfix = { services.postfix = {
config = { config = {
sender_dependent_relayhost_maps = "hash:/var/lib/postfix/conf/sender_relay"; sender_dependent_default_transport_maps = "hash:/var/lib/postfix/conf/sender_transport";
}; };
masterConfig."smtptun" = { masterConfig."intltunnel" = {
type = "unix"; type = "unix";
command = "smtp"; command = "smtp";
args = [ "-o" "smtp_bind_address=10.47.3.2" ]; args = [
"-o" "smtp_bind_address=10.47.3.1"
"-o" "inet_interfaces=10.47.3.1"
"-o" "inet_protocols=ipv4"
];
}; };
}; };