Levelezőszervereink képesek arra, hogy tetszőleges helyről fogadjanak leveleket, azokat továbbítsák vagy helyben kézbesítsék. A néhány év óta robbanásszerűen terjedő kéretlen reklámlevelek hívták fel a figyelmet arra, hogy nem szabad kiskapukat hagynunk rendszerünkben: míg jó egy évtizeddel ezelőtt nyitva hagytuk mailszerverünket távolról dolgozó kollégáink számára, a mai veszélyes világban keményen korlátoznunk kell azon helyek számát, amelyek átjáróként (relay-ként) használhatják gépünket. Ha ezt elmulasztjuk, akkor szerverünk open relay módban fog működni, vagyis bárki bármilyen címre küldhet levelet rajtunk keresztül, ennek pedig (egyik) katasztrofális következményeként gépünk tiltólistára kerülhet, sokan nem fognak leveleket fogadni tőlünk. Node mégis hogyan biztosítsuk egy-egy otthoni gép számára a levélküldést?A megoldást autentikált SMTP-nek, vagy SMTP auth-nak hívjuk. Lényege, hogy miután a távoli-otthoni gép IP-címe folyamatosan változhat, felhasználónévhez és jelszóhoz kötjük a csatlakozást; amennyiben ez érvényes, úgy a kliens levélküldő szerverként használhatja gépünket. Elsőként egy Debian Sarge alapú megoldást mutatunk be Postfix alapon.Első lépésként telepítsük fel a szükséges csomagokat, melyek a következők:
postfix
postfix-tls
libsasl2
sasl2-bin
libsasl2-modules
A felsorolt csomagok közül nem ismerjük még az sasl összetevőket. Az sasl a Simple Authentication and Security Layer kifejezés rövidítése, segítségével egyszerű és hatékony autentikációs felületet biztosíthatunk egyes alkalmazásaink számára.
Ha végeztünk a telepítéssel, módosítanunk kell a Postfix main.cf állományát. Írjuk bele az alábbi sorokat:
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
inet_interfaces = all
Az opciók nem szorulnak különösebb magyarázatra: engedélyezzük az sasl-alapú autentikálást, valamint engedélyezzük az azonosított kliensek számára történő relay-t. A broken_sasl_auth_clients = yes opció a hibásan működő (elsősorban Outlook Express) kliensek problémáit igyekszik kiküszöbölni. Következő feladatunk az sasl konfigurálása. Hozzuk létre - ha még nem létezne - a /etc/postfix/sasl/smtpd.conf file-t és írjuk bele az alábbiakat:
pwcheck_method: saslauthd
mech_list: plain login
Az sasl a PAM-on (Pluggable Authentication Module) keresztül fogja az autentikációt végezni. Mivel a Postfix biztonsági okokból alapértelmezetten chroot-olt környezetben fut, biztosítanunk kell számára az sasl démon elérhetőségét. Adjuk ki az alábbi parancsokat:
mkdir -p /var/spool/postfix/var/run/saslauthd
rm -fr /var/run/saslauthd
Ezután módosítsuk a /etc/default/saslauthd file-t, melynek tartalma a következő kell legyen:
# This needs to be uncommented before saslauthd will be run automatically
START=yes
PARAMS="-m /var/spool/postfix/var/run/saslauthd"
# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"
MECHANISMS="pam"
A megváltozott könyvtárak miatt módosítanunk kell az saslauthd initscriptjét is. Keressük meg a /etc/init.d/saslauthd állományt, és kommentezzük ki a következő sort:
dir=`dpkg-statoverride --list $PWDIR`
Legvégül módosítsuk a következő sorokat:
PWDIR="/var/spool/postfix/var/run/${NAME}"
PIDFILE="${PWDIR}/saslauthd.pid"
dir="root sasl 755 ${PWDIR}"
Befejezésképpen indítsuk újra a Postfixet és az saslauthd-t: /etc/init.d/postfix restart és /etc/init.d/saslauthd restart. Állítsuk be kliensünket és használjuk az új szolgáltatásunkat!