QMAIL Install - by BlueLightning Pentru instalarea lui QMAIL va trebuiesc urmatoarele pachete: netqmail-1.04.tar.gz (netqmail-1.05.tar.gz ultima versiune) ucspi-tcp-0.88.tar.gz daemontools-0.76.tar.gz iar pentru a putea utiliza serviciile de POP3 cu utilizatori virtuali, aveti nevoie de: vpopmail-5.2.2.tar.gz (vpopmail-5.4.0.tar.gz ultima versiune) autorespond-2.0.2.tar.gz (autorespond-2.0.5.tar.gz ultima versiune) maildrop-1.6.3.tar.bz2 pentru a porni/opri/afisa starea lui qmail, aveti nevoie de scriptul qmailctl Toate aceste pachete le gasiti pe linux.mantech.ro. Acestea sunt cele 6 pachete cu care am lucrat si am instalat QMail-ul. 1. Copiati toate pachetele de mai sus in /usr/local/src # mv netqmail-1.04.tar.gz /usr/local/src (sau mv netqmail-1.05.tar.gz /usr/local/src pentru versiunea noua) # mv ucspi-tcp-0.88.tar.gz /usr/local/src # mv daemontools-0.76.tar.gz /usr/local/src # mv vpopmail-5.2.2.tar.gz /usr/local/src (sau mv vpopmail-5.2.2.tar.gz /usr/local/src pentru versiunea noua) # mv autorespond-2.0.2.tar.gz /usr/local/src (sau mv autorespond-2.0.5.tar.gz /usr/local/src pentru versiunea noua) # mv maildrop-1.6.3.tar.bz2 /usr/local/src # cd /usr/local/src 2. Dezarhivati toate pachetele: # tar xzf netqmail-1.04.tar.gz (sau tar xzf netqmail-1.05.tar.gz pentru versiunea noua) # tar xzf ucspi-tcp-0.88.tar.gz # tar xzf daemontools-0.76.tar.gz # tar xzf vpopmail-5.2.2.tar.gz (sau tar xzf vpopmail-5.4.0.tar.gz pentru versiunea noua) # tar xzf autorespond-2.0.2.tar.gz (sau tar xzf autorespond-2.0.5.tar.gz pentru versiunea noua) # bzip2 -dc maildrop-1.6.3.tar.bz2| tar x netqmail-1.04/netqmail-1.05 contine versiunea 1.03 a lui qmail-1.03 cu un patch. Acest patch este foarte util (de altfel nu aveti cum sa-l instalati) pe sistem RedHat, Fedora Core 1 sau Mandrake. Pe Debian 3.0 r2 - Woody am putut sa-l compilez fara pacth, dar va statuiesc sa puteti patch-ul. 3. Aplicarea patch-urilor: # cd netmail-1.04 (sau cd netmail-1.05 pentru versiunea noua) # tar xzf qmail-1.03.tar.gz La dezarhivarea pachetelor am dezarhivar netqmail-1.04 care contine o arhiva qmail-1.03.tar.gz. Mai sus am dezarhivat qmail-ul propriu zis: qmail-1.03.tar.gz Acum vom copia si vom aplica patch-urile pt. fiecare pachet: qmail-1.03, ucspi-tcp-0.88 si daemontools-0.76 # patch -p0 < netqmail-1.04.patch # cp other-patches/daemontools-0.76.errno.patch ../admin/ # cp other-patches/ucspi* ../ucspi-tcp-0.88 # cd ../admin/ # patch -p0 < daemontools-0.76.errno.patch # cd ../ucspi-tcp-0.88 # patch -p1 < ucspi-tcp-0.88.a_record.patch # patch -p1 < ucspi-tcp-0.88.errno.patch # patch -p1 < ucspi-tcp-0.88.nodefaultrbl.patch P.S.: pentru cei care nu inteleg comanda "patch" sa sape ne net, ca si eu m-am lovit de ea, si am gasit raspunsul. Poate va intrebati de ce la qmail si la daemontools am folosit "patch -p0", iar pentru ucspi-tcp-0.88 am folosit "patch -p1". Sapati internetul. 4. Incepe distractia: instalarea propriu-zisa: Mai intai vom modifica niste optiuni ale lui QMAIL: Daca inca mai sunteti in directorul /usr/local/src/ucspi-tcp-0.88: # cd ../netqmail-1.04/qmail-1.03 (cd ../netqmail-1.05/qmail-1.03 versiunea noua) Editati fisierele conf-split si conf-spawn: # vi conf-split Inlocuiti valoarea initiala cu 200 # vi conf-spawn Inlocuiti valoarea initiala cu 255 4.1 Creati userii si grupurile pentru qmail (altfel nu aveti cum sa-l instalati!!!): Este bine sa creati directorul /var/qmail inainte de a adauga useri: # mkdir -p /var/qmail Va rog sa va uitati in fisierul INSTALL.ids pentru alte sisteme de operare. Eu voi continua pentru sisteme Linux RedHat, Mandrake si DEBIAN. # groupadd nofiles # useradd -g nofiles -d /var/qmail/alias alias # useradd -g nofiles -d /var/qmail qmaild # useradd -g nofiles -d /var/qmail qmaill # useradd -g nofiles -d /var/qmail qmailp # groupadd qmail # useradd -g qmail -d /var/qmail qmailq # useradd -g qmail -d /var/qmail qmailr # useradd -g qmail -d /var/qmail qmails 4.2 Compilati si instalati qmail: # make setup check 4.3 Configurati qmail sa ruleze pe serverul restpectiv: # ./config-fast mail.server.com In loc de mail.server.com trebuie sa puneti un nume de DNS al serverului: ex. am domeniul mantech.ro, iar in DNS am un nume mail care are ca IP serverul de mail (adica serverul pe care este instalat si va fnctiona qmailul) - ex: x.y.z.1. Deci mail.server.com va deveni mail.mantech.ro. NU PUTETI UN NUME DE DNS care sa ai IP catre alt server!!!Adica serverul are IP-ul 192.168.0.1 si numele de DNS de exemplu mail.network.ro reurneaza un IP 192.168.0.2! Qmail nu va rula! Nu garantez nimic. Pentru mai multe detalii consultati documnetatia de bind (pentru nameserver) de la www.isc.org. comanda de mai sus va afisa pe ecran: Your fully qualified host name is mail.server.com. Putting mail.server.com into control/me... Putting server.com into control/defaultdomain... Putting server.com into control/plusdomain... Putting mail.server.com into control/locals... Putting mail.server.com into control/rcpthosts... Now qmail will refuse to accept SMTP messages except to mail.server.com. Make sure to change rcpthosts if you add hosts to locals or virtualdomains! 4.4 Inlocuieste sendmail cu qmail: # chmod 0 /usr/sbin/sendmail # mv /usr/sbin/sendmail //usr/sbin/sendmail.deb3 # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail Atentie: daca nu aveti instalat sendmail-ul primele 2 linii vor genera o eroare de genul: chmod: cannot access `/usr/sbin/sendmail': No such file or directory sau pentru comanda mv: mv: cannot stat `/usr/sbin/sendmail': No such file or directory Nu va faceti probleme deoarece nu este nimic grav! Ultima linie (ln -s ...) inlocuieste vechiul sendmail cu MTA-ul lui qmail. 4.5 Mai seteaza cativa parametrii ai lui qmail: # echo 20 > /var/qmail/control/concurrencyincoming # chmod 644 /var/qmail/control/concurrencyincoming Seteaza aliasurile catre root, postmaster etc. (username fiind contul administratorului sistemului; puteti crea un user la care sa faceti legatura sau pur si simplu puneti root, dar nu prea este recomandat) # echo username > /var/qmail/alias/.qmail-root # echo username > /var/qmail/alias/.qmail-postmaster # echo username > /var/qmail/alias/.qmail-mailer-daemon # chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster 4.6 Creati/downloadati scriptul de pornire/oprire/restart/statistici ale lui qmail si puneti-l in /var/qmail/bin Fa-l executabil: # chmod 755 /var/qmail/bin/qmailctl Fa-l vizibil de oriunde: # ln -s /var/qmail/bin/qmailctl /usr/bin/qmailctl 4.7 Creati/editati fisierul /etc/tcp.smtp in felul urmator: # vi /etc/tcp.smtp 127.0.0.1:allow,RELAYCLIENT="" Daca lasati doar 127.0.0.1, qmail va trimite doar de la statia pe care este instalat. Pentru a trimite de pe alte statii, adaugati urmatorele linii: ip_statie:allow,RELAYCLIENT="" pentru o singura statie. Daca se doreste doar o clasa C, atunci adaugati linia urmatoare, unde in loc de x.y.z. puneti doar primele 3 cifre din clasa de IP-uri, ex: 192.168.0. (punctul de la sfarsit este obligatoriu). Se poate adauga si o clasa b, introducad doar primele 2 cifre, ex: 192.168. x.y.z.:allw,RELAYCLIENT="" 5. Compileaza si instaleaza ucspi-tcp.0.88: # cd ../../ucspi-tcp.0.88 # make # make setup check 5.1 Reincarca tcp.smtp-ul: # qmailctl cdb 6. Compileaza si instaleaza daemontools-0.76 # cd ../admin/daemontools-0.76 # package/install 7. Instaleaza VPOPMail: # cd ../../vpopmail-5.2.2 (sau cd ../../vpopmail-5.4.0 pentru versiunea noua) Creaza grupul si userul pt VPOPMAIL: # groupadd -g 89 vchkpw # useradd -g vchkpw -u 89 vpopmail Compileaza vpopmail: # ./configure --enable-roaming-users=y --enable-logging=p --enable-apop=y # make # make install-strip Pune eveniment in crontab: # crontab -e 40 * * * * /usr/home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null 8. Instaleaza Autoresponde # cd ../autorespond-2.0.2 (cd ../autorespond-2.0.5) # make # cp autorespond /usr/local/bin/ 9. Instaleaza maildrop: # cd ../maildrop-1.6.3 # ./configure --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota # make # make install-strip 10. Creati scripturile de supervizare (sunt raspunzatoare de rularea lui qmail!!!): # cd /var/qmail # mkdir -p /var/qmail/supervise/qmail-send/log # mkdir -p /var/qmail/supervise/qmail-smtpd/log # mkdir -p /var/qmail/supervise/qmail-pop3d/log 10.1 Creati /var/qmail/supervise/qmail-send/run cu continutul ( vi /var/qmail/supervise/qmail-send/run ): #!/bin/sh exec /var/qmail/rc Creati /var/qmail/supervise/qmail-send/log/run cu continutul ( vi /var/qmail/supervise/qmail-send/log/run ): #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/qmail-send Creati /var/qmail/rc ( vi /var/qmail/rc ): #!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" qmail-start '| /usr/local/bin/maildrop' 10.2 Creati /var/qmail/supervise/qmail-smtpd/run cu continutul ( vi /var/qmail/supervise/qmail-smtpd/run ): #!/bin/sh QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` LOCAL=`head -1 /var/qmail/control/me` if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in echo /var/qmail/supervise/qmail-smtpd/run exit 1 fi if [ ! -f /var/qmail/control/rcpthosts ]; then echo "No /var/qmail/control/rcpthosts!" echo "Refusing to start SMTP listener because it'll create an open relay" exit 1 fi exec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 Creati /var/qmail/supervise/qmail-smtpd/log/run cu continutul ( vi /var/qmail/supervise/qmail-smtpd/log/run ): #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/qmail-smtpd 10.3 Creati /var/qmail/supervise/qmail-pop3d/run cu continutul ( vi /var/qmail/supervise/qmail-pop3d/run ): #!/bin/sh exec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \ SERVER.NUMEDOMENIU.COM /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 ATENTIE!!! In loc de SERVER.NUMEDOMENIU.COM puneti numele de DNS al serverul (uitati-va la ./config-fast ce ati pus!!!) Creati /var/qmail/supervise/qmail-pop3d/log/run cu continutul ( vi /var/qmail/supervise/qmail-pop3d/log/run ): #!/bin/sh PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin export PATH exec setuidgid qmaill multilog t s100000 n20 /var/log/qmail/qmail-pop3d 2>&1 10.4 Faceti scripturile executabile: # chmod 755 /var/qmail/rc # chmod 755 /var/qmail/supervise/qmail-send/run # chmod 755 /var/qmail/supervise/qmail-send/log/run # chmod 755 /var/qmail/supervise/qmail-smtpd/run # chmod 755 /var/qmail/supervise/qmail-smtpd/log/run # chmod 755 /var/qmail/supervise/qmail-pop3d/run # chmod 755 /var/qmail/supervise/qmail-pop3d/log/run 10.5 Creaza directoarele de log-uri: # mkdir -p /var/log/qmail/qmail-send # mkdir -p /var/log/qmail/qmail-smtpd # mkdir -p /var/log/qmail/qmail-pop3d # chown qmaill /var/log/qmail/qmail-send # chown qmaill /var/log/qmail/qmail-smtpd # chown qmaill /var/log/qmail/qmail-pop3d 10.6 Creaza legatura intre scripturile de supervizare si /service # ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-pop3d /service 11. Porneste qmail-ul: # qmailctl start Ar trebui sa va arate ca toate servicile ruleaza de mai mult de 1 secunda. Daca SMTPD-ul nu indica acest fapt, uitati-va in /var/log/qmail/qmail-smtpd/current si va apare "fatal: unable to bind: address already used, incercati un restart. Este bine sa verificati daca nu cumva au mai ramas urme de sendmail.