ot Miroslav Iordanov(23-11-2003)

reiting (18)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Suzdavane na virtualni poshtenski kutii s pomoshtta na popa3d i postfix

V tozi dokument shte se opitam da vi obiasnia kak da izpolzvate virtualni poshtenski kutii s pomoshtta na popa3d i postfix. V dopulnenie shte opisha kak da izpolzvate tezi poshti s openwebmail.


Instalirane na popa3d

Poslednata versiia na popa3d mozhete da izteglite ot http://www.openwall.com/popa3d/ . V momenta na pisaneto na tozi dokument poslednata versiia e 0.6.4, taka che po natam shte izpolzvam neia. Purvo razarhiviraite popa3d i vlezte v novosuzdadenata direktoriia:
tar xvfz popa3d-0.6.4.tar.gz
 cd popa3d-0.6.4

Za da mozhete da kompilirate popa3d s podruzhka za virtualni poshtenski kutii, triabva da redaktirate faila params.h. V nego promenete POP_VIRTUAL i VIRTUAL_ONLY ot 0 na 1. Sled tova triabva da posochite putia, kudeto shte se namirat vashite virtualni poshtenski kutii. Za tazi tsel, promenete VIRTUAL_HOME_PATH. Stoinostta po podrazbirane e “/vhome” - vie ia promenete spored vashite iziskvaniia. V nashiia primer, shte zamenia “/vhome” s "/home/virtual/popa3d/". Eto kak triabva da izglezhdat promenenite redove sled redaktsiiata (propuskam komentarite mezhdu tiah):
#define POP_VIRTUAL                     1
 #define VIRTUAL_HOME_PATH               "/home/virtual/popa3d/"
 #define VIRTUAL_ONLY                    1

Sled kato redaktirahme params.h, triabva da se promeni i Makefile-a. V nego razkomentiraite (t.e. mahnete znaka “#” nai-otpred) reda:
#LIBS += -lcrypt

Kompiliraite i instaliraite popa3d s komandite 'make' i 'make install'. Suzdaite neprivilegirovan potrebitel popa3d i grupa popa3d:
groupadd popa3d
 useradd -g popa3d -d /dev/null -s /dev/null popa3d

Suzdaite prazna direktoriia /var/empty v koiato popa3d shte se chroot -va:
mkdir -m 755 /var/empty

Nai-nakraia ostana da startirate popa3d. Ako izpolzvate inetd mozhete da dobavite sledniia red v /etc/inetd.conf:
pop3 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/popa3d

Ako iskate da izpolzvate pop3 s SSL (pop3s), triabva da instalirate stunnel i da dobavite sledniia red v /etc/inetd.conf:
pop3s stream  tcp nowait root /usr/sbin/stunnel 
 stunnel -p /etc/webmin/miniserv.pem -l /usr/local/sbin/popa3d

V sluchaia az izpolzvam sertifikata generiran pri instalatsiiata na webmin.


Dobaviane na pop3-potrebiteli

Predi tova, niakolko obshti prikazki. Po-rano posochihme direktoriiata, v koiato shte se suhraniavat virtualnite poshtenski kutii (/home/virtual/popa3d/). Popa3d ochakva da nameri v tazi direktoriia, koiato suotvetstva na IP-to, na koeto “slusha”. V povecheto sluchai tova e adresut 127.0.0.1. V tazi direktoriia popa3d ochakva da nameri dve drugi direktorii – auth i mail. V mail-direktoriiata sa poshtenskite kutii – vsiaka poshtenska kutiia e s imeto na potrebitelia. V auth-direktoriiata sa failovete, sudurzhashti potrebitelsko ime i kriptirana parola – vseki fail se kazva na imeto na potrebitelia. Za da stane malko po-iasno, eto kakvi direktorii triabva da suzdadete (v nashiia primer):
/home/virtual/popa3d/127.0.0.1/
 /home/virtual/popa3d/127.0.0.1/auth/
 /home/virtual/popa3d/127.0.0.1/mail/

Samoto dobaviane na potrebitelite stava s perl-skripta add-popa3d-user, koito mozhete da izteglite ot http://gene.science.uva.nl/~talerven/software/. Redaktiraite skripta, kato zadadete stoinost na promenlivata $virtual_domain_root_directory. V nashiia primer redut s tazi promenliva triabva da izglezhda taka:
my $virtual_domain_root_directory = "/home/virtual/popa3d/127.0.0.1";

Sushto taka, triabva da posochite potrebitel, koito da e sobstvenik na virtualnite poshti. Neka v nashiia primer da izpolzvame potrebitelia vmail. Mozhete da go suzdadete s komanda, podobna na tazi:
adduser --system --no-create-home vmail

Sega posochete tozi potrebitel za $virtual_mail_owner:
my $virtual_mail_owner = "vmail";

Veche ste gotovi da dobaviate potrebiteli. Izpolzvaite skripta add-popa3d-user direktno ili posochete kato argument imeto na potrebitelia, koito iskate da dobavite. Ako potrebiteliat e realen Unix-potrebitel na sistemata, negoviia mailbox-fail shte bude suzdaden sus sobstvenik realniia potrebitel i grupa mail. Ako niama takuv realen potrebitel, mailbox-failut shte bude suzdaden sus sobstvenik vmail (potrebitelia za virtualnata poshta) i grupa mail.


Konfigurirane na postfix

Nakraia stignahme do nai-interesnata chast – konfiguriraneto na postfix. Tuk niama da opisvam instaliraneto na postfix. Ako iskate da nauchite poveche za postfix prochetete statiiata Postfix - burz, siguren i lesen za upravlenie na N. Antonov. Triabva da dobavite slednite redove vuv faila main.cf (obiknoveno /etc/postfix/main.cf):
virtual_transport = virtual
 virtual_mailbox_base = /home/virtual/popa3d/127.0.0.1/mail
 virtual_mailbox_maps = hash:/etc/postfix/vmailbox
 virtual_mailbox_domains = hash:/etc/postfix/vmaildomains
 virtual_minimum_uid = 100
 virtual_uid_maps = static:112
 virtual_gid_maps = static:8

virtual_mailbox_base – ukazva putia do poshtenskite kutii
virtual_mailbox_maps – putia do map faila s potrebitelite
virtual_mailbox_domains – putia do map-faila s domeinite
virtual_minimum_uid – minimalnoto uid
virtual_uid_maps – potrebiteliat, s chieto ID shte se zapisvat mailbox-failovete. V nashiia primer tova e 112, ID -to na potrebitelia vmail.
virtual_gid_maps – grupata, s chieto ID shte se zapisvat mailbox failovete. V nashiia primer tova e 8 – grupata mail.

Sega suzdaite faila /etc/postfix/vmaildomains i dobavete v nego domeina za virtualnite poshti po sledniia nachin:
domain.name    required to prevent relay access denied errors

Mozhete da dobavite poveche ot edin domein. Sled tova suzdaite faila /etc/postfix/vmailbox i dobavete v nego suzdadenite pop3-virtualni poshtenski kutii. Da priemem, che sme suzdali poshta za potrebitelia test sus skript add-popa3d-user. Togava triabva da zapishem:
test@domain.name test

Kakto se doseshtate, test@domain.name e email-adresut, a test e mailbox-failut, v koito shte se zapazva poshtata. Sled suzdavaneto/promenianeto na map-failovete ne zabraviaite da izpulnite komandata postmap za vseki edin ot tiah:
postmap /etc/postfix/vmailbox
 postmap /etc/postfix/vmaildomains

Proverete dali vuv faila /etc/postfix/master.cf e komentiran redut:
virtual   unix  -       n       n       -       -       virtual

Ako e komentiran, razkomentiraite go. Sega prezaredete konfiguratsiiata na postfix (s komandata 'postfix reload') i veche mozhete da izpolzvate suzdadenite virtualni poshtenski kutii.

Ostava samo edin problem za razreshavane. Kogato popa3d e kompiliran taka, che da izpolzva virtualni poshtenski kutii, togava toi ne mozhe da raboti s poshtenskite kutii na realnite potrebiteli na sistemata (t.e. realnite potrebiteli niama da mogat da si iztegliat poshtata chrez popa3d). Ediniiat ot nachinite tova da stane vuzmozhno e da predstavite realnite potrebiteli kato virtualni. Kak stava tova. Purvo dobaviate realnite potrebiteli sus skripta add-popa3d-user. Toi shte razbere, che sa realni potrebiteli i shte suzdade tehnite mailbox-failove s tehnite si prava. Osven tova, shte poiska da vuvedete druga parola za potrebitelia – niama da se izpolzva realnata parola na potrebitelia v sistemata, koeto e plyus za sigurnostta na vashata sistema. Sled tova triabva da redaktirate main.cf faila na postfix, kato mahnete vashiia hostname ot mydestination. Naprimer, ako vashiiat hostname e example.org, to v momenta vashiia mydestination red izglezhda po podoben nachin:
mydestination = example.org, localhost, $localhost.$mydomain

Sled kato go redaktirate, triabva da izglezhda po lsedniia nachin:
mydestination = localhost, $localhost.$mydomain

Posle dobavete vashiia hostname v /etc/postfix/vmaildomains i realnite potrebiteli v /etc/postfix/vmailbox kakto beshe opisano po gore. Sled redaktiraneto na map failovete, ne zabraviaite da izpulnite komandata 'postmap imeto_na_map_faila' i da prezaredite konfiguratsiiata na postfix.

Zabelezhka
Vuv faila vmailbox niama da mozhete da izpolzvate zapisi ot tipa:
test1@domain.name	other@email.mail

Gorniiat zapis NQMA da preprati poshtata kum other@email.mail (kakto predpolagam ste sviknali sus zapisite vuv faila virtual), a shte suzdade virtualna poshtenska kutiia, koiato shte se kazva other@email.mail . Za da mozhete da preprashtate poshtata kum drug email adres, zapishete slednoto v main.cf:
virtual_alias_maps = hash:/etc/postfix/vmailalias

Sled tova vuv faila /etc/postfix/vmailalias mozhete da dobavite reda:
test1@domain.name	other@email.mail


Zabelezhka 2
Vklyuchete potrebitelite popa3d i vmail v grupata mail, za da mogat da pishat v poshtenskite kutii na realnite potrebiteli na sistemata bez da vuzniknat problemi s pravata.


Konfigurirane na Openwebmail da izpolzva virtualnite poshti

Za da nastroite vashiia openwebmail da raboti s virtualnite poshtenski kutii, triabva da promenite i dobavite niakolko reda v /etc/openwebmail/openwebmail.conf. Promenete redovete s auth_module i mailspooldir po sledniia nachin:
auth_module             auth_pop3.pl
 mailspooldir            /home/virtual/popa3d/127.0.0.1/mail

Sled tova dobavete slednite redove:
use_syshomedir             no
 use_homedirspools          no
 enable_changepwd           no
 enable_autoreply           no
 enable_setforward          no
 enable_pop3             yes
 pop3_authserver         localhost
 pop3_authport           110
 getmail_from_pop3_authserver    yes

Tova e!


V dopulnenie

Posochenata informatsiia ne pretendira da e pulna i absolyutno tochna!
Ima i drugi resheniia za virtualni poshtenski kutii i postfix – naprimer postfix + vm-pop3d. Mozhe te da sa po podhodiashti za vas. Kato dopulnitelna dokumentatsiia mozhe da izpolzvate faila VIRTUAL_README ot dokumentatsiiata na postfix, faila INSTALL paketa na popa3d i pop3-ssl-using-popa3d-HOWTO, v koeto se izpolzva exim za MTA (http://gene.wins.uva.nl/~talerven/software/add-popa3d-user/pop3-ssl-using-popa3d-HOWTO).



<< Kak da pusnem VPN pod Linux | CHudniiat sviat na Linuks 2.6 >>