Diverses:



  1. Sendmail auf einen anderen Port legen

    1. Warum?

        Alle Daemonen die auf einem Port <=1024 laufen werden bei unices zunächst einmal mit rootrechten gestartet, es wäre also garnicht so schlecht sendmail auf einenanderen Port zu legen, so dass er in einem anderen sicherheitskontext läuft, was das system gegen eventuell in Zukunft auftretende neue Sicherheitslücken besser schützt. Hier gibt es im Prinzip 2 Varianten:

        1. wir lassen sendmail nur auf dem neuen port erreichbar, was durchaus Sinnvoll sein kann, wenn er eh nur aus dem Lokalen Netz erreicht werden soll.

        2. Wir routen Anfragen auf port 25 auf den tatsächlichen SM Port.

    2. Wie?

        Die MSA Einstellungen ermöglichen uns dies:

        DAEMON_OPTIONS(`Port=2525,Name=MSA,M=E')dnl

            lässt sendmail nur Anfragen auf Port 2525 entgegennehmen

        DAEMON_OPTIONS(`Port=2525,Addr=192.168.0.1,Name=MSA,M=E')dnl

            z.B. lässt sendmail nur auf dem Port 2525 der IP 192.168.0.1 Anfragen entgegennehmen, (Anfragen auf 127.0.0.1 werden hiermit ebenfalls verweigert!!)

        DAEMON_OPTIONS(`Port=25,Addr=127.0.0.1,Name=MSA,M=E')dnl

            lässt sendmail nur Anfragen auf die lokale Loopbackadresse annehmen.

Es sind auch mehrere derartige Zeilen möglich:

DAEMON_OPTIONS(`Port=2525,Addr=192.168.0.1,Name=MSA,M=E')dnl

DAEMON_OPTIONS(`Port=2525,Addr=127.0.0.1,Name=MSA,M=E')dnl

IPTABLES::



  1. Was sagen die anderen Daemonen dazu?

    1. Fetchmail

          fetchmail leitet automatisch alle Mail an die Adresse 127.0.0.1 Port 25 weiter, wenn dort kein MTA erreichbar ist führt dies zum Verlust sämtlicher auszuliefernder Email :-(

          Um fetchmail die Mail richtig zustellen zu lassen ist er folgendermassen zu starten:

            fetchmail --port 110 -S localhost/2525 -f /etc/fetchmailrc

            -S gibt den Zielserver an man beachte die ungewöhnliche schreibweise: [IP]/[Port] ohne Leerzeichen. fetchmail kann auf diese Weise auch gleich die Mail an einen anderen Host weiterschicken, z.B. -S 192.168.0.101, ist kein Port angegeben wird 25 angenommen. Dies hat aber noch einen klitzekleinen Nachteil: sendmail übernimmt den gesammten Textstring localhost/2525 als Adresse damit sendmail die Annahme nicht verweigert muss man ihm sagen, das er Mail an localhost/2525 annehmen soll!! z.B. indem man in der Datei local-host-names die Zeile localhost/2525 anfügt oder den Cw Eintrag auf z.B. Cw localhost localhost/2525 mailhost.lan erweitert.

    2. ein anderer sendmail

          angenommen in unserem Netz steht ein weiterer Mailserver(1), der Email an den von uns auf Port 2525 gelegten sendmail(2) schicken soll, von alleine schickt sendmail natürlich keine Post an einen Port 2525, hierzu ist eine Modifikation der mc datei nötig

        1. wenn der Mailserver(1) nur an den Server (2) Email versenden soll geht dies folgendermassen:

              define(`SMTP_MAILER_ARGS',`TCP $h 2525')dnl

              veranlasst den smtp Mailler generell alle Mail an Port 2525 zuzustellen

              define(`SMART_HOST', `smtp:mailhost.lan')dnl

              und legt einen Smarthost für alle Email fest

        2. wenn der Server(2) einer von vielen ist:

              define(`RELAY_MAILER_ARGS',`TCP $h 2525')dnl

              lässt den relay Mailer Port 2525 adressieren (der smtp Mailer adressiert weiterhin Port 25)

              Da der auf Port 2525 lauschende Server (2) mailhost.lan in unserem beispiel für die TLD .lan zuständig sein soll sieht unsere mailertable dann folgendermassen aus:

              .lan relay:mailhost.lan

              . smtp:mail.server.woauchimmer.tld

              (ich selbst habe diese Variante nur einmal genutzt und hierbei die tlds (.de .com .ch .net ...) einzeln angegeben, normalerweise sollte das mit dem Punkt (nach Aussage von jhf) aber funktionieren.

              dies ist natürlich nur möglich, wenn man selbst jederzeit die mailertable anpassen kann wenn man z.B. eine Mail an mailhost.huinet.ru schicken will und .ru in der Mailertable nicht vorhanden ist.