28.10. Az SMTP hitelesítése

Írta: James Gorham.

Levelező szerverünkön az SMTP protokoll hitelesítésének (SMTP Authentication) engedélyezése több szempontból is előnyökkel bír. Az SMTP hitelesítésének bekapcsolása egy újabb réteget képez a sendmail védelmében, és az olyan állandóan mozgásban levő felhasználók számára is megoldást nyújt, akik anélkül képesek használni ugyanazt a levelező szervert, hogy minden alkalommal újrakonfigurálnák a levelező kliensüket.

  1. Telepítsük fel a security/cyrus-sasl2 portot. A security/cyrus-sasl2 port több fordítási idejű beállítást támogat. Itt most az SMTP hitelesítését fogjuk használni, ezért gondoskodjunk a LOGIN opció engedélyezéséről.

  2. A security/cyrus-sasl2 telepítés után nyissuk meg szerkesztésre a /usr/local/lib/sasl2/Sendmail.conf állományt (vagy ha még nem létezne, hozzuk létre), és benne vegyük fel a következő sort:

    pwcheck_method: saslauthd
  3. Ezt követően telepítsük a security/cyrus-sasl2-saslauthd portot, és tegyük bele az /etc/rc.conf állományba ezt a sort:

    saslauthd_enable="YES"

    Végezetül indítsuk el a saslauthd démont:

    # /usr/local/etc/rc.d/saslauthd start

    Ez a démon fog közvetíteni a sendmail és a FreeBSD passwd adatbázisa közti hitelesítésben. Ezzel elkerülhetjük az új felhasználói nevek és jelszavak felvételét az SMTP hitelesítés használatához, így a hozzáférések és a levelezés jelszava ugyanaz marad.

  4. Most pedig írjuk hozzá az alábbi sorokat az /etc/make.conf állományhoz:

    SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
    SENDMAIL_LDFLAGS=-L/usr/local/lib
    SENDMAIL_LDADD=-lsasl2

    Ezek a sorok állítják be a sendmail számára, hogy fordítás közben a cyrus-sasl2 függvényeit használja. A sendmail újrafordítása előtt mindenképpen legyen fenn a cyrus-sasl2 port.

  5. A sendmail újrafordítását a következő parancsok végrehajtásával intézhetjük el:

    # cd /usr/src/lib/libsmutil
    # make cleandir && make obj && make
    # cd /usr/src/lib/libsm
    # make cleandir && make obj && make
    # cd /usr/src/usr.sbin/sendmail
    # make cleandir && make obj && make && make install

    A sendmail fordítása esetén semmilyen problémának nem szabadna előfordulnia, kivéve ha a /usr/src könyvtárat és a szükséges osztott könyvtárakat nem változtatjuk időközben túlságosan gyakran.

  6. A sendmail lefordítása és újratelepítése után szerkesszük át az /etc/mail/freebsd.mc állományt (vagy azt az .mc állományt, amelyet éppen használunk). Sok rendszergazda a hostname(1) parancs válaszát használja fel az .mc típusú állományok egyedi elnevezéséhez). Írjuk bele a következő sorokat:

    dnl set SASL options
    TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl

    Ezek állítják be a sendmail számára a felhasználók hitelesítésére alkalmas különböző módszereket. Ha a pwcheck módszer helyett valami mást akarunk használni, akkor járjunk utána a dokumentációban.

  7. Zárásul futassuk le a make(1) parancsot az /etc/mail könyvtárban. Így lefut az új .mc állományunk és létrejön egy freebsd.cf (vagy amilyen nevet az .mc állománynak megadtunk) .cf állomány. Ezután a make install restart parancs kiadásával másoltassuk át ezt a sendmail.cf helyére és szabályosan indítassuk újra a sendmail szolgáltatást. A folyamatról részletesebb tájékoztatást az /etc/mail/Makefile állomány tud nyújtani.

Ha eddig minden a legnagyobb rendben történt, akkor most már képesek vagyunk bejelentkezési információt is átadni a levelező kliensnek és elküldeni egy tesztüzenetet. A hibák kiszűréséhez állítsuk a sendmail LogLevel opcióját az 13 értékre és figyeljük a /var/log/maillog állományt.

További felvilágosításért olvassuk el a sendmail SMTP hitelesítéssel foglalkozó oldalát (angolul).

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.