SMTP Postfix SASLauth kérdés

Fórumok

Sziasztok! Egy kis segítséget kérnék SMTP auth-al kapcsolatban.
Egy saját SMTP -t csinálok levél küldéshez, hogy ne a szolgáltatóét kelljen használnom.
Azt szeretném elérni, hogy csak a saját hálózatból fogadjon leveleket, user/password-el authentikáljon és ezután közvetlen küldje ki a netre (nem pedig másik SMTP-nek)

Most ott akadtam el hogy:
- Postfix és saslauthd fut
- Telnet kapcsolattal tesztelve jó az auth.
- ha a postfixben az enyémtől eltérő hálózatot adok meg , ahogy kell eldobja...
- levelező kliensből amennyiben beállítom hogy a levélküldéshez kiszolgáló hitelesítés kell és ott megadom a user/password párost rendben hitelesít és elküld, ha rossz adatokat adok meg akkor ahogy elvárom, eldobja a leveleket.

A GOND ott van hogy ha a levelező kliensnek NEM adok meg olyat, hogy hitelesítsen a kimenő levél kiszolgálón simán elküldi a levelet!?!?
Valakinek ötlet?

Debian + Postfix + saslauthd az alábbi részletekkel:
*****************************************
Postfix main.cf érintett sorai:

relayhost =
mynetworks = 192.168.0.0/24

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains

*****************************************
/etc/postfix/sasl/smtpd.conf tartalma:

saslauthd_path: /var/run/saslauthd/mux
pwcheck_method: saslauthd
mech_list: plain login

*****************************************
az /etc/default/saslauthd érintett sorai:
MECHANISMS="pam"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

*****************************************
az /etc/pam.d/smtp tartalma:

@include common-auth
@include common-account
@include common-password

Hozzászólások

Szerintem reject_unauth_destination kell neked az smtpd_recipient_restrictions (vagy 2.10+ esetén inkább az smtpd_relay_restrictions)-be.

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

Hátha segít:



1. A szukseges csomagok telepitese

    $ aptitude install sasl2-bin libsasl2-2 libsasl2-modules

2. A postfix megfelelo forditasanak ellenorzese
   (Elerheto auth tipusok)

    $ postconf -a

3. Hozd letre a /etc/postfix/sasl/smtpd.conf fajlt a kovetkezo tartalommal:

    pwcheck_method: saslauthd
    mech_list: PLAIN LOGIN

4. Modositsd a /etc/default/saslauthd fajlt a kovetkezok szerint

   START=yes
   MECHANISMS="pam"
   OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"


5. A postfix chroot miatt at kell helyezni a saslauthd konyvtarat
   (a konfigban megadhato hogy mashol legyen de akkor esetleg
    mas programok nem erik el a szokott helyen)

    $ rm -r /var/run/saslauthd/ &&  mkdir -p /var/spool/postfix/var/run/saslauthd && ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
    $ chgrp sasl /var/spool/postfix/var/run/saslauthd && adduser postfix sasl


6. SMTP felhasznalo lerehozasa

    $ adduser --firstuid 10000 --gid 65534 --gecos "Full_Name,Room_Number,Work_Phone,Home_Phone,Other" --home /dev/null --shell /bin/false --no-create-home --force-badname USERNAME

7. A sasl auth mukodesenek ellenorzese

    $ testsaslauthd -u username -p password
    0: OK "Success."

8. Modositsd a /etc/postfix/main.cf fajlt a kovetkezok szerint

    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination



Ellenorzes
~~~~~~~~~~

$ perl -MMIME::Base64 -e 'print encode_base64("username");'
dXNlcm5hbWU=

$ perl -MMIME::Base64 -e 'print encode_base64("password");'
cGFzc3dvcmQ=

$ telnet 1.2.3.4 25
Trying 1.2.3.4...
Connected to 1.2.3.4.
Escape character is '^]'.
220 smtp.domain.com
EHLO teszt.hu
250-smtp.domain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN
334 VXNlcm5hbWU6
c210cDAwMQ==
334 UGFzc3dvcmQ6
RnV3dW1qYWxXZWIx
235 2.7.0 Authentication successful

Ha van permit_mynetworks, akkor onnan bárki küldhet azonosítás nélkül.

Ezt cseréld ki permit_sasl_authenticated-re

http://www.postfix.org/SMTPD_ACCESS_README.html

Persze így bárhonnan elfogad authentikálás után leveleket. (Ez általában jó így, csak ne fogadjon el titkosítatlan kapcsolaton cleartext jelszót).

Ha csak kifelé menő levelek kellenek, nem kell fogadnia, akkor a postfixnek mondd meg, hogy csak azon az interfészen figyeljen + a csomagszűrőben állítsd be, hogy a submission porton csak a belső hálóból fogadjon el kapcsolatot. SMTP porton meg sehonnan.

Azt hogy érted, hogy: "ezután közvetlen küldje ki a netre (nem pedig másik SMTP-nek)"?
Manapság egy szolgáltató nem engedi, hogy bármely user csak úgy kifele küldözgessen email-eket. Valószínűleg be kell állítanod a szolgáltatód SMTP szerverét smarthost-nak, hogy kimenjen majd az email. Az már más kérdés, hogy hogy fog bejönni az email.

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

Ez esetben a userek gépei egyenként hitelesítenek a szolgáltató viszont csak 1db felhasználónevet biztosít ehhez (bérelt vonal!). A probléma pont az volt hogy a szolgáltató (DIGI) óránkét 30db küldést (hitelesítést) engedélyez csak. Ez annyi hitelesítés ahány címre küldeném kifelé, azaz ha 1 címzett meg 1 másolat az már 2 db. Ez így meg vicces limit.... A cégen belüli hálóból nem úgy szerettem volna hogy az én SMTP szerverem átdobja mondjuk a szolgáltató SMTP-re (esetleg másik SMTP szerverhez) és az küldi tovább a címzett felé (a netre), hanem így ahogy most működik a saját SMTP hitelesít és huss kimegy a levél, a megfelelő domain MX rekord meg majd oda irányítja ahová kell.

A bejövő levelek fogadását másik szerver végzi ez adott volt,majd eljön az idő amikor ezt egybe kell hegeszteni :)