Sveiki, galiu parašyti totorial'a kaip paruošti linux serverį, kad jis galėtų siųti el. laiškus per Teo SMTP serverį (tam žinoma reikia būti TEO klientu).
Jums tai būtų įdomu? :)
Aprašysiu kaip naudotis Teo SMTP serveriu laiškų siuntimui (ne gavimui). Zebra klientai turi galimybę nemokamai išsiųsti 1000 laiškų/mėn. Kodėl negalima siųsti laiškų tiesiai kitiems pašto serveriam? Todėl, kad beveik garantuotai tokie laiškai bus palaikyti brukalu, arba nebus iš vis priimami.
Konfigūruosiu šviežiai instaliuotą CentOS6. Kai bus baigta, laiškai bus siunčiami tokiu keliu:
(CentOS Linux) ---> (smtp.zebra.lt) ----> (kiti SMPT servai: google, yahoo ir t.t.)
smarthost relayhost
Kad šitai suveiktų, reikia:
- turėti kokį nors domeną, nukreiptą į IP adresą, už kuriuo bus konfigūruojamas šis linux pašto servas (užtenka ir tik MX įrašo nukreipimo į šitą IP).
- turėti priėjimą prie manoteo.lt savitarnos.
- turėti realų arba virtualų CentOS kompą.
- mokėti nukreipti portus jei servas stovės už ugniasienės (http://portforward.com/).
Aš naudosiuosi domenu 'manodomenas.lt', o iš šio serverio išsiųsti laiškai atrodys kaip gauti nuo '
[email protected]'.
Šis aprašymas susideda iš tokių dalių:
1. Minimalus Linux konfigūravimas laiško gavimui. To reikia, kad TEO galėtų atsiųsti vieną patvirtinimo laišką, mums jo reikės registracijai užbaigti.
2. Pašto adreso registravimas www.manoteo.lt svetainėje.
3. Linux konfigūravimas laiškų siuntimui. Jeigu norėsite pajungti daugiau serverių, kartoti reiks tik šitą punktą.
1. MINIMALUS CENTOS KONFIGŪRAVIMAS LAIŠKO GAVIMUI
Instaliuojame CentOS ir keletą naudingų paketų, atnaujiname:
[root@localhost ~]# yum install mailx man -y
[root@localhost ~]# yum update -y
Norėdami priimt laišką adresu
[email protected], sukuriame naudotoją 'pastas':
# adduser pastas
Kartu su CentOS6 instaliuojamas ir postfix. Nuo jo konfigūravimo ir pradedame:
# cd /etc/postfix
# cp main.cf main.cf.orig
# vi main.cf
Surandam šiuos parametrus ir atkomentuojam arba pakeičiam juos maždaug taip:
myhostname = manodomenas.lt
mydomain = manodomenas.lt
local_recipient_maps = unix:passwd.byname $alias_maps
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
mail.$mydomain, www.$mydomain, ftp.$mydomain
Perkrauname postfix:
# postfix reload
Išbandome ar nueina vietinis paštas. Siunčiame laišką nuo 'root' vartotojui 'pastas':
# mail pastas
Subject: bandymas
bandymas
. <-- čia yra taškas
EOT
#
Tikrinames vartotojo 'pastas' pašto dėžę:
# su - pastas
$ mail
Turi parodyti kažką panašaus:
>N 1 root Wed Sep 14 20:05 18/538 "bandymas"
Galim paspaust 1 ir enter, atidaromas laiškas:
& 1
Message 1:
From
[email protected] Wed Sep 14 20:05:34 2011
Return-Path: <
[email protected]>
...
From:
[email protected] (root)
Status: R
bandymas
&
Išeinam iš pašto ir iš naudotojo 'pastas':
& q
$ exit
Jeigu (bet kuriuo metu) problemos su laiškų pristatymu, reikia tikrinti /var/log/maillog failą. Jo gale rašomi naujausi pranešimai/klaidos.
Jeigu serveris prie interneto prijungtas per NAT, nukreipiam (port forward) TCP 25 portą į jį. Čia nerašysiu kaip tai padaryti.
Savo pašto serve atidarom 25 portą:
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
Jeigu servą perkrausite, šitą komandą reiks pakartoti. Specialiai nerodau kaip išsaugoti iptables lenteles. Jeigu spameriai atras jūsų šitą SMTP servą, pradės per jį siuntinėti, ir turėsite problemų.
Patikrinam:
# iptables -L -nv
Sąrašo viršuje turi matytis maždaug toks įrašas:
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
Perkraunam postfix:
# service postfix restart
Su komanda
# netstat -taup
..patikrinam kad būtų maždaug tokia eilutė (svarbiausia '*:smpt'):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:smtp *:* LISTEN 1447/master
Jei viskas kaip turi būti, tikrinam (geriausia iš kito kompo), ar pasiekiamas šviežias SMTP serveris:
$ nc www.manodomenas.lt 25
Jeigu matom maždaug
220 manodomenas.lt ESMTP Postfix
..spaudžiam ctrl+c ir nusprendžiam, kad viskas veikia :)
Galite dar iš kokios nors pašto dėžutės atsisiųsti laišką į
[email protected], ir su naudotoju 'pastas' pasitikrinti ar jis tikrai atėjo (aukščiau parašyta kaip tai padaryti). Tada jau bus viskas kas tik įmanoma patikrinta. Galima tikėtis kad toliau esančių žingsnių nereiks kartoti keletą kartų :)
2. PAŠTO ADRESO REGISTRAVIMAS TEO SISTEMOJE
Keliaujam į https://www.manoteo.lt/ --> Paslaugų užsakymas --> Kitos paslaugos --> Zebra paštas --> SMTP valdymas
Spaudžiam 'Prijungti el. p. adresą'.
Įvedam '
[email protected]'.
Susigalvojam sisteminį slaptažodį. Jį vėliau reiks įrašyti į mūsų servo konfigūraciją.
Spaudžiam OK ir gaunam pranešimą kad registracijos patvirtinimo laiškas išsiųstas.
Grįžtam į naujo servo kosolę, jei esam 'root', patampam naudotoju 'pastas' ir tikrinamės savo dežė:
# su - pastas
$ mail
Turėtų matytis kažkas panašaus:
N 8 MANO TEO Thu Sep 15 00:13 64/3090 "Zebra SMTP dėžutės patvirtinimas"
Spaudžiam numeriuką ir skaitom:
& 8
Laiško tekste bus nuoroda, kurią reiks nukopijuoti į naršyklę. Turi parodyti pranešimą kad adresas sėkmingai užregistruotas.
3. LINUX KONFIGŪRAVIMAS LAIŠKŲ SIUNTIMUI
Instaliuojame papildomą autentifikacijos mechanizmą:
# yum install cyrus-sasl cyrus-sasl-plain -y
Konfigūruojam postfix:
# cd /etc/postfix/
# vi main.cf
Atkomentuojame arba pridedame tokias eilutes:
myorigin = $mydomain
relay_domains =
relayhost = [smtp.zebra.lt]:587
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_type = cyrus
smtp_sasl_auth_enable = yes
smtp_cname_overrides_servername = no
smtp_sasl_security_options = noanonymous
Kataloge /etc/postfix sukuriam failiuką sasl_passwd:
# cd /etc/postfix
# vi sasl_passwd
Jame įrašome vieną eilutę:
[smtp.zebra.lt]:587
[email protected]:slaptazodis
'slaptazodis' pakeičiate į tai ką įvedėte manoteo.lt.
# chmod 700 sasl_passwd
# postmap hash:/etc/postfix/sasl_passwd
# postmap -q [smtp.zebra.lt]:587 /etc/postfix/sasl_passwd
[email protected]:slaptazodis
Paskutinė komanda turi išmesti jūsų registruotą pašto adresą ir slaptažodį, kaip parodžiau eilute aukščiau.
Bandom siųsti laišką iš dabar jau tikiuosi veikiančio servo:
# echo testas3 | mail -s testas3 -r
[email protected] [email protected] Pasitikriname
[email protected], jei laiškas atkeliavo, perkrauname linux serverį ir pasiplojam sau, priimam aplinkinių sveikinimus :)
Jei neatkeliavo, tikrinam /var/log/maillog.
Del visa ko padarom kad niekas negaletu prisijungti vardu 'pastas'. Faile /etc/passwd susirandam naudotojo 'pastas' įrašą
pastas:x:500:500::/home/pastas:/bin/bash
ir /bin/bash pakeičiam į /sbin/nologin, kad atrodytų taip:
pastas:x:500:500::/home/pastas:/sbin/nologin
Dėkui už gerus atsiliepimus/reputaciją ;)
--
ignasr