Mailumleitung nach Client
Klaus Tachtler
klaus at tachtler.net
Mi Jul 2 12:46:35 CEST 2025
Hallo,
eine etwas aufwendigere Möglichkeit → KI generiert =
1. Inhalt der CIDR-Zuordnung (Custom Map)
/etc/postfix/ip_to_address.map
1.2.3.4/32 ziel at example.com
2. Python-Policy-Skript: ip_rewriter.py
#!/usr/bin/env python3
import sys
from ipaddress import ip_network, ip_address
MAP_FILE = '/etc/postfix/ip_to_address.map'
def load_cidr_map(filepath):
cidr_map = {}
with open(filepath, 'r') as f:
for line in f:
line = line.strip()
if not line or line.startswith('#'):
continue
try:
cidr, address = line.split()
cidr_map[cidr] = address
except ValueError:
continue # Zeile überspringen, falls sie ungültig ist
return cidr_map
def get_rewrite_address(client_ip, cidr_map):
for cidr, address in cidr_map.items():
if ip_address(client_ip) in ip_network(cidr):
return address
return None
def main():
attrs = {}
while True:
line = sys.stdin.readline()
if not line or line == '\n':
break
name, _, value = line.strip().partition('=')
attrs[name] = value
client_ip = attrs.get('client_address', '')
sender = attrs.get('sender', '')
cidr_map = load_cidr_map(MAP_FILE)
rewrite = get_rewrite_address(client_ip, cidr_map)
if rewrite:
print(f"sender={rewrite}")
else:
print("DUNNO")
print("") # Ende der Antwort
if __name__ == '__main__':
main()
3. chmod +x /etc/postfix/ip_rewriter.py
4. /etc/postfix/master.cf erweitern
policy/ip_rewriter unix - n n - - spawn
user=nobody argv=/etc/postfix/ip_rewriter.py
5. Postfix Neustart
Grüße
Klaus.
> Moin zusammen,
>
> ich möchte ein Mailumleitung für einen Client einrichten. Wenn
> dieser Client einliefert, soll die Mail immer hart verdrahtet an
> eine bestimmte Adresse gehen, egal wohin sie ursprünglich adressiert
> war.
>
> So dachte ich, dass es funktionieren sollte:
>
> main.cf:
> check_client_access = hash:/etc/postfix/check_client_access
>
> und /etc/postfix/check_client_access:
> 1.2.3.4 REDIRECT ziel at example.com
>
> Wenn also der Client mit IP 1.2.3.4 kommt, soll immer an
> ziel at example.com umgeleitet werden. Hintergrund: das ist ein
> Testsystem, dessen Mails nicht rausgehen sollen.
>
> Kurz: so funktionierts nicht. Was mache ich falsch?
>
>
> --
> Andre Tann
----- Ende der Nachricht von Andre Tann via Postfixbuch-users
<postfixbuch-users at listen.jpberlin.de> -----
--
---------------------------------------
e-Mail : klaus at tachtler.net
Homepage: https://www.tachtler.net
DokuWiki: https://dokuwiki.tachtler.net
---------------------------------------
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : nicht verfügbar
Dateityp : application/pgp-keys
Dateigröße : 3121 bytes
Beschreibung: Öffentlicher PGP-Schlüssel
URL : <https://listi.jpberlin.de/pipermail/postfixbuch-users/attachments/20250702/2fd3221c/attachment.skr>
Mehr Informationen über die Mailingliste Postfixbuch-users