Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
centos:mail_c6:mta_14 [18.03.2014 16:55. ] – [SRS-Deamon] djangocentos:mail_c6:mta_14 [28.03.2014 10:38. ] – [SRS-Deamon] django
Zeile 235: Zeile 235:
  
 ==== SRS-Deamon ==== ==== SRS-Deamon ====
-Das Programm-Archiv von **PostSRSd** laden wir uns nun auf unseren Rechner. Ob dies nun gleich der eigentliche Mailserver sein muss, muß natürlich entsprechend hinterfragt werden. Wer will schon Entwicklerwerkzeuge, wie **cmake** auf einem produktiven Mailserver installieren.+Als laden wir uns das aktuelle RPM auf unseren Server 
 +   # cd /usr/local/src/packages
  
-In unserem Beispielsfall wurde die Installation von **cmake** und die Übersetzung von **PostSRSd** auf einem Entwicklungsrechner vorgenommen. Das übersetzte Programmpaket wurde anschließend auf den Mailserver kopiert und ist auch im Repository von nausch.org unter der [[http://repository.nausch.org/public/postsrsd|URL]] herunterladbar.+   # wget http://repository.nausch.org/public/x86_64/postsrsd-1.0.1-1.el6.x86_64.rpm
  
-Wollen wir das Paket selbst übersetzen, dann laden wir uns das entsprechende aktuelle ZIP-Archiv von **PostSRSd** auf unseren (Entwicklungs-)Rechner.  +Dann installieren wir das Paket.  
-   # wget https://github.com/roehling/postsrsd/archive/master.zip+   # yum localinstall postsrsd-1.0.1-1.el6.x86_64.rpm
  
-Anschließend entpacken wir das ZIP-Archiv. +Altenativ können wir das Paket natürlich auch direkt von [[http://repository.nausch.org/public/|Djangos Repository]] aus installieren.  
-   # unzip master +   # yum localinstall http://repository.nausch.org/public/x86_64/postsrsd-1.0.1-1.el6.x86_64.rpm
-<code>Archive master +
-6c0be7c5b306a354f082e4fc2bbc7b517361157f +
-   creating: postsrsd-master/ +
-  inflating: postsrsd-master/.gitignore   +
- extracting: postsrsd-master/.travis.yml   +
-  inflating: postsrsd-master/CMakeLists.txt   +
-  inflating: postsrsd-master/LICENSE   +
-  inflating: postsrsd-master/README.md   +
-  inflatingpostsrsd-master/main.cf.ex   +
-  inflating: postsrsd-master/makefile   +
-  inflating: postsrsd-master/postinstall.cmake.in   +
-  inflating: postsrsd-master/postsrsd.apparmor.in   +
-  inflating: postsrsd-master/postsrsd.c   +
-  inflating: postsrsd-master/postsrsd.default   +
-  inflating: postsrsd-master/postsrsd.lsb_init.in   +
-  inflating: postsrsd-master/postsrsd.rh_init.in   +
-  inflating: postsrsd-master/postsrsd.upstart.in   +
-  inflating: postsrsd-master/sha1.c   +
-  inflating: postsrsd-master/srs2.c   +
-  inflating: postsrsd-master/srs2.h +
-</code> +
-Bevor wir das Programm übersetzen, wechseln wirnoch in das entsprechende Programmarchiv. +
-   # cd postsrsd-master+
  
-Nun übersetzen wir das Programm mit folgendem Aufruf. +Ein Update des Paketes geht entsprechend der Installation.  
-   # make +   # yum localupdate http://repository.nausch.org/public/x86_64/postsrsd-1.0.1-1.el6.x86_64.rpm
- +
-Das wars dann auch schon mit der Installation. Wir kopieren das erhaltene Binary an die entsprechende Stelle //**/usr/local/sbin/postsrsd**//.  +
-   # cp build/postsrsd /usr/local/sbin/ +
- +
-Wollen wir das Binary aus dem Repository von nausch.org nutzen, wechseln wir in das Zielverzeichnis und holen uns das Binary auf unseren Mailserver und passen zum Schluß noch die Dateioptionen an. +
-   # cd /usr/local/sbin/ +
- +
-   # wget http://repository.nausch.org/public/postsrsd +
- +
-   # chmod +x /usr/local/sbin/postsrsd+
  
 +Was uns das Paket alles mitbringt, zeigt uns wie immer der Aufruf von **rpm -qil <paketname>**.
 +   # rpm -qil postsrsd
 +<code>Name        : postsrsd                     Relocations: (not relocatable)
 +Version     : 1.0.1                             Vendor: django
 +Release     : 1.el6                         Build Date: Fri 28 Mar 2014 11:08:53 AM CET
 +Install Date: Fri 28 Mar 2014 11:14:34 AM CET      Build Host: vml010039.intra.nausch.org
 +Group       : System Environment/Daemons    Source RPM: postsrsd-1.0.1-1.el6.src.rpm
 +Size        : 41781                            License: GPLV2+
 +Signature   : RSA/SHA1, Fri 28 Mar 2014 11:08:54 AM CET, Key ID 31b4758f7c65ab27
 +Packager    : Django <django@nausch.org>
 +URL         : https://github.com/roehling/postsrsd/archive/1.0.1.tar.gz
 +Summary     : PostSRSd provides the Sender Rewriting Scheme (SRS) via TCP-based lookup tables for Postfix.
 +Description :
 +PostSRSd provides the Sender Rewriting Scheme (SRS) via TCP-based
 +lookup tables for Postfix. SRS is needed if your mail server acts
 +as forwarder.
 +/etc/rc.d/init.d/postsrsd
 +/etc/sysconfig/postsrsd
 +/usr/sbin/postsrsd
 +/usr/share/doc/postsrsd-1.0.1
 +/usr/share/doc/postsrsd-1.0.1/README.md
 +/usr/share/doc/postsrsd-1.0.1/main.cf.ex
 +/var/lib/postsrsd
 +</code>
  
 ===== Konfiguration ===== ===== Konfiguration =====
Zeile 383: Zeile 375:
 RUN_AS=nobody RUN_AS=nobody
 </file> </file>
 +
 +Zum Signieren der umgeschriebenen Adressen benötigen wir noch einen secret-key, den wir nun anlegen.
 +   # dd if=/dev/urandom bs=18 count=1 | base64  > /etc/postsrsd.secret
 +
 +Anschließend setzen wir die Dateirechte unseres privat-keys, damit diese nicht von unpreviligierten Usern ausgelesen werden kann. Der **PostSRSd** hat damit keine Probleme, da er den Schlüssel einliest, bevor diese seine Rechte abtritt/dropped.
 +   # chmod 400 /etc/postsrsd.secret
 +
 +
 ==== Postfix ==== ==== Postfix ====
-FIXME //... coming soon...// FIXME+In der Postfix-Konfigurationsdatei //**/etc/postfix/main.cf**// tragen wir nun noch die Erweiterungen für die TCP Lookup Tabellen nach. 
 + 
 +<file bash /etc/postfix/main.cf>... 
 + 
 +# Django : 2014-03-18 
 +# Lookup-Tabelle zum Umschreibungen von Absender eMail-Adressen im SMTP-Envelop und im Header der eMail 
 +sender_canonical_maps = btree:/etc/postfix/sender_canonical_maps, tcp:127.0.0.1:10001 
 +
 +# Definition welche Adressen umgeschrieben werden sollen 
 +sender_canonical_classes = envelope_sender 
 +
 +# Lookup-Tabelle zum Umschreibungen von Empfänger eMail-Adressen im SMTP-Envelop und im Header der eMail 
 +recipient_canonical_maps = btree:/etc/postfix/recipient_canonical_maps, tcp:127.0.0.1:10002 
 +
 +# Definition welche Adressen umgeschrieben werden sollen 
 +recipient_canonical_classes = envelope_recipient 
 + 
 +...</file> 
 + 
 +===== Programmstart ===== 
 +==== erster manueller Start des Daemon ==== 
 +Nun können wir das erste mal **PostSRSd** anstarten. 
 +   # service postsrsd start 
 + 
 +  Starting Postfix Sender Rewriting Scheme Daemon:            OK  ] 
 + 
 +In der Prozessliste finden wir mindestens einen neuen Prozess, der gestartet wurde: 
 +   # ps aux | grep postsrsd 
 + 
 +  nobody    5185  0.0  0.0   6184   344 ?        S    20:46   0:00 /usr/local/sbin/postsrsd -4 -f10001 -r10002 -dnausch.org -s/etc/postsrsd.secret -unobody -p -c -X -D 
 + 
 +Mittels **netstat** können wir überpfüfen, ob die beiden Ports **10001** und **10002** geöffnet wurden. 
 +   # netstat -tulpen | grep 1000 
 + 
 +  tcp        0      0 127.0.0.1:10001             0.0.0.0:                  LISTEN      0          40632      5185/postsrsd        
 +  tcp        0      0 127.0.0.1:10002             0.0.0.0:                  LISTEN      0          40634      5185/postsrsd 
 + 
 +Läuft unser Daemon kann mit Hilfe von **lsof** sehen wir nicht nur den geöffneten port, sondern auch die Verbindungen die dort anliegen. 
 +   # lsof -i :10002 
 +<code>COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME 
 +postsrsd 5185  nobody    6u  IPv4  40634      0t0  TCP localhost:documentum (LISTEN) 
 +smtpd    5364 postfix   39u  IPv4  43230      0t0  TCP localhost:48910->localhost:documentum (ESTABLISHED) 
 +postsrsd 5367  nobody    0u  IPv4  43231      0t0  TCP localhost:documentum->localhost:48910 (ESTABLISHED) 
 +postsrsd 5367  nobody    6u  IPv4  40634      0t0  TCP localhost:documentum (LISTEN) 
 +cleanup  5369 postfix   23u  IPv4  43281      0t0  TCP localhost:48917->localhost:documentum (ESTABLISHED) 
 +postsrsd 5370  nobody    6u  IPv4  40634      0t0  TCP localhost:documentum (LISTEN) 
 +postsrsd 5371  nobody    0u  IPv4  43282      0t0  TCP localhost:documentum->localhost:48917 (ESTABLISHED) 
 +postsrsd 5371  nobody    6u  IPv4  40634      0t0  TCP localhost:documentum (LISTEN) 
 +</code> 
 +   # lsof -i :10001 
 +<code>COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME 
 +postsrsd 5185  nobody    5u  IPv4  40632      0t0  TCP localhost:scp-config (LISTEN) 
 +postsrsd 5367  nobody    5u  IPv4  40632      0t0  TCP localhost:scp-config (LISTEN) 
 +cleanup  5369 postfix   22u  IPv4  43278      0t0  TCP localhost:56006->localhost:scp-config (ESTABLISHED) 
 +postsrsd 5370  nobody    0u  IPv4  43279      0t0  TCP localhost:scp-config->localhost:56006 (ESTABLISHED) 
 +postsrsd 5370  nobody    5u  IPv4  40632      0t0  TCP localhost:scp-config (LISTEN) 
 +postsrsd 5371  nobody    5u  IPv4  40632      0t0  TCP localhost:scp-config (LISTEN) 
 +</code> 
 + 
 +==== automatisches Starten des Dienste beim Systemstart  ==== 
 +Damit der Deamon **PostSRSd** automatisch bei jedem Systemstart startet, denn ohne laufenden **postsrsd** verweigert nun unser **postfix** die Annahme der Nachrichten, kann die Einrichtung des Start-Scripte über folgenden Befehle erreicht werden: 
 +   # chkconfig postsrsd on 
 + 
 +Die Überprüfungung ob postsrsd wirklich bei jedem Systemstart automatisch mit gestartet werden, kann durch folgenden Befehle erreicht werden: 
 +   # chkconfig --list | grep postsrsd 
 + 
 +   postsrsd        0:off 1:off 2:on 3:on 4:on 5:on 6:off 
 +Wichtig sind jeweils die Schalter **on** bei den Runleveln - **2 3 4 5**.  
 + 
 +===== Umschreibungen / Logging ===== 
 +Im Maillog unseres Mailservers werden die Umschreibungen entsprechend dokumentiert. 
 +   # less /var/log/maillog 
 + 
 +  Mar 18 21:01:59 vml000080 postsrsd[5806]: srs_forward: <honeypot_for_spam@web.de> rewritten as <SRS0+BaCI=YT=web.de=honeypot_for_spam@nausch.org> 
 + 
 +Im Header zugestellten eMail beim Empfänger wird dies auch im **Return-Path**hinterlegt. 
 +  Return-Path: <SRS0+BaCI=YT=web.de=honeypot_for_spam@nausch.org> 
 + 
 +Bounced das Zielsystem die Nachricht, weil dieses z.B. die Nachricht wegen einer vollen Mailbox nicht zustellen kann, kann das relayende System nun problemlos den eigentlichen Absender informieren, da der **PostSRSd** die Zieladresse wieder ermitteln und umschreiben (**srs_reverse**) kann. 
 + 
 +  Mar 13 21:27:25 vml000080 postsrsd[6883]: srs_reverse: <SRS0+bCev=YT=web.de=honeypot_for_spam@nausch.org> rewritten as <honeypot_for_spam@web.de> 
 +  ... 
 +  ... 
 +  Mar 18 21:27:26 vml000080 postfix/smtp[6884]: 8413383: to=<honeypot_for_spam@web.de>, orig_to=<SRS0+bCev=YT=web.de=honeypot_for_spam@nausch.org>, relay=mx-ha03.web.de[213.165.67.104]:25, delay=0.75, delays=0.06/0/0.41/0.29, dsn=2.0.0, status=sent (250 Requested mail action okay, completed: id=0LtrOf-1X9H7q3CS5-011BDN) 
 + 
 +====== Links ====== 
 +  * **[[centos:mail_c6:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 6<<]]** 
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]** 
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]** 
 + 
 +~~DISCUSSION~~ 
  • centos/mail_c6/mta_14.txt
  • Zuletzt geändert: 21.11.2022 20:53.
  • von django