LINUX-BG   Адрес : http://www.linux-bg.org
Професионален мейл сървър (Част 2)
От: Mordeth
Публикувана на: 9-04-2004
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=programs&key=360505332
Здравейте отново.

Това е продължението на "Професионален майл сървър".
Ако сте изпълнили всичко това което съм написал в Част 1ва, значи е време за SMTP.

Here we go again...

11.4 smtp

Влизаме във файл /var/qmail/supervise/qmail-smtpd/run и добавяме следните редове:

#!/bin/sh
exec /usr/local/bin/tcpserver -p -R -x /home/vpopmail/etc/tcp.smtp.cdb -u92 -g91 -v -c100 0 smtp rblsmtpd -r relays.ordb.org /var/qmail/bin/qmail-smtpd 2>&1

По този начин ние ще "извикваме" SMTP сървъра чрез "tcpserver-a". Малко допълнителни настройки според всички нужди:

-u : user id which will be used by qmail-smtpd
-g : group id which will be used by qmail-smtpd
-p : paranoid mode (check if the remote host in the DNS matches with the client address)
-R : don't try to get $TCPREMOTEINFO
-v : verbose
-c : number of simultaneous handled connections
0 : the ip address of the server (0 means allow connections to any local IP address)
smtp : the port used (here, defined in /etc/services but can be an integer)
rblsmtpd : this program blocks mail from RBL-listed sites (I use relays.ordb.org) and call a program (here qmail-smtpd)

Следват настройките на правата.
Моля изпълнете този ред в кознолата:

chmod 755 /var/qmail/supervise/qmail-smtpd/run

Отворете файл следният файл - /var/qmail/supervise/qmail-smtpd/log/run.
Въведете следните редове в него:

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s100000 n20 /var/log/qmail/qmail-smtpd 2>&1

Сега, отново правата за този файл:

chmod 755 /var/qmail/supervise/qmail-smtpd/log
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

pico /var/qmail/supervise/qmail-send/run
В този файл добавяме:

#!/bin/sh
exec env - PATH="/var/qmail/bin:/usr/local/bin" \
qmail-start ./Maildir/

след това отново:
chmod 755 /var/qmail/supervise/qmail-send/run

pico chmod 755 /var/qmail/supervise/qmail-send/run
Добавяме:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s100000 n20 /var/log/qmail/qmail-send 2>&1

След това отново трябва да се погрижим за правата:
chmod 755 /var/qmail/supervise/qmail-send/log
chmod 755 /var/qmail/supervise/qmail-send/log/run

Ако използвате дебиан можете да направите следното:
/var/qmail/bin/maildirmake /etc/skel/Maildir
Ефекта на тази команда е следния:
При създаване на нов потребител на системата в неговата домашна директория ще се създава dir-a "Maildir".

Най-накрая създаваме стартов скрипт.
Местоположението на файла зависи според дистрибуцията.

За дебиан създаваме /etc/init.d/qmail.
Във него добавяме следните редове:

#!/bin/sh

case "$1" in
start)
echo -n "Starting qmail: svscan"
if cd /var/qmail/supervise; then
env - PATH="/var/qmail/bin:/usr/local/bin:/usr/bin:/bin" svscan &
echo $! > /var/run/svscan.pid
fi
echo "."
;;
stop)
echo -n "Stopping qmail: svscan"
kill `cat /var/run/svscan.pid`
echo -n " qmail"
svc -dx /var/qmail/supervise/*
echo -n " logging"
svc -dx /var/qmail/supervise/*/log
echo "."
;;
stat)
cd /var/qmail/supervise
svstat * */log
;;
doqueue|alrm)
echo "Sending ALRM signal to qmail-send."
svc -a /var/qmail/supervise/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /var/qmail/supervise/qmail-send
echo "Sending HUP signal to qmail-pop3d."
svc -h /var/qmail/supervise/qmail-pop3d
;;
pause)
echo "Pausing qmail-send"
svc -p /var/qmail/supervise/qmail-send
echo "Pausing qmail-smtpd"
svc -p /var/qmail/supervise/qmail-smtpd
echo "Pausing qmail-pop3d"
svc -p /var/qmail/supervise/qmail-pop3d
;;
cont)
echo "Continuing qmail-send"
svc -c /var/qmail/supervise/qmail-send
echo "Continuing qmail-smtpd"
svc -c /var/qmail/supervise/qmail-smtpd
echo "Continuing qmail-pop3d"
svc -c /var/qmail/supervise/qmail-pop3d
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /var/qmail/supervise/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /var/qmail/supervise/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /var/qmail/supervise/qmail-smtpd
echo "* Sending qmail-pop3d SIGTERM and restarting."
svc -t /var/qmail/supervise/qmail-pop3d
;;
cdb)
tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp > /home/vpopmail/etc/inc_deps

След това опитайте отново!

Ако пък получите qmailadmin.o(.text+0xc6): In function `main':
/package/qmailadmin-1.0.6/qmailadmin.c:240: undefined reference to `vclose'
qmailadmin.o(.text+0x17b):/package/qmailadmin-1.0.6/qmailadmin.c:199: undefined reference to `vget_assign'
qmailadmin.o(.text+0x1cd):/package/qmailadmin-1.0.6/qmailadmin.c:210: undefined reference to `vauth_user'

Проверете дали /home/vpopmail/etc/lib_deps съдържа :
-L/home/vpopmail/lib -lvpopmail -L/usr/include/mysql/ -lmysqlclient -lz

Сега е време да конфигурираме уеб сървъра (в моя случай apache).

Добавете следните редове в httpd.conf:


   ServerAdmin (емайл адрес на администратора)
   DocumentRoot /var/www
   ServerName субдомайн.домайн
   ErrorLog logs/qmailadmin.avence.info-error.log
   CustomLog logs/qmailadmin.avence.info-access.log combined
   
        AllowOverride AuthConfig Limit
        Options SymLinksIfOwnerMatch Includes
   
   ScriptAlias /cgi-bin/ /var/www/cgi-bin/
   ScriptAlias /global-cgi/ /usr/lib/cgi-bin/


За да работят картинктие на qmailadmina трябва да направите следните неща:
1)Предварително премахнете следният ред от httpd.confa:
Alias /images/ /usr/share/images/

2) изпълнете следнтие команди:
cd /var/www/images/ (в моя случай, дебиан).
mkdir qmailadmin
mv *.png qmailadmin/

Това ще е достатъчно.
За да тръгне qmailadmina е нужно да направите още едно нещо.
Отидете в директория /var/www/cgi-bin (в дебиан).
Там ще намерите един файл "qmailadmin". Преименувайте го на qmailadmin.cgi.

А ето как да направите това:
cd /var/www/cgi-bin/
mv qmailadmin qmailadmin.cgi

13. vQadmin

wget http://www.inter7.com/vqadmin/vqadmin-2.3.2.tar.gz
tar -zxvf vqadmin-2.3.2.tar.gz
cd vqadmin-2.3.2
./configure --enable-cgibindir=/var/www/cgi-bin
make
make install-strip


Добавете тези редове в httpd.conf-a.

   deny from all
   Options ExecCGI
   AllowOverride AuthConfig
   Order deny,allow


Ще се наложите да направите .htaccess файл в /var/www/cgi-bin/vqadmin/:

pico /var/www/cgi-bin/vqadmin/.htaccess
В него добавете:

AuthType Basic
AuthUserFile /etc/apache/vqadmin.passwd
AuthName vQadmin
require valid-user
satisfy any

chown www-data:www-data .htaccess #За RedHat потребителя и потребителската група ще е nobody/nogroup.
chmod 600 .htaccess
htpasswd -bc /etc/apache/vqadmin.passwd admin adminpass

14. Courier

wget http://unc.dl.sourceforge.net/sourceforge/courier/courier-imap-3.0.3.tar.bz2
tar -jxvf courier-imap-3.0.3.tar.bz2
cd courier-imap-3.0.3
export CFLAGS="-DHAVE_OPEN_SMTP_RELAY -DHAVE_VLOGAUTH"
./configure --prefix=/usr/local/courier-imap --disable-root-check --without-authpam --without-authldap --without-authpwd --without-authmysql --without-authpgsql --without-authshadow --without-authuserdb --without-authcustom --without-authcram --without-authdaemon --with-authvchkpw --with-ssl [ Quite long ]
make
make install
make install-configure
cp courier-imap.sysvinit /etc/init.d/courier-imap
chmod +x /etc/init.d/courier-imap
mkdir -p /var/lock/subsys/
Once the server is launched :
chown vpopmail:vchkpw /usr/local/courier-imap/share/imapd.pem

Ако получите следната грешка:
tlspasswordcache.c:9:25: openssl/ssl.h: No such file or directory
tlspasswordcache.c:10:25: openssl/err.h: No such file or directory
tlspasswordcache.c:11:26: openssl/rand.h: No such file or directory

Инсталирайте libssl. (apt-get install libssl-dev под Debian)

В случай, че възникнат някакви проблеми с vpopmail-ски библиотеки моля изпълнете следните команди:

echo "-I/home/vpopmail/include/" > /home/vpopmail/etc/inc_deps
echo "-L/home/vpopmail/lib -lvpopmail" > /home/vpopmail/etc/lib_deps

След инсталацията е необходимо да едитнем някои файлове.

В /usr/local/courier-imap/etc/imapd трябва да сменим редовете
TCPDOPTS / AUTHMODULES
с
TCPDOPTS="-nodnslookup -noidentlookup -user=vpopmail -group=vchkpw"
AUTHMODULES="authvchkpw"

Накрая, не забравяйте да смените този ред:
IMAPDSTART=NO на IMAPDSTART=YES.

Този файл също трябва да бъде едитнат:
/usr/local/courier-imap/etc/imapd.cnf .

В него сложете:
[...]
[ req_dn ]
C=FR
ST=PA
L=Paris
O=Courier Mail Server
OU=Automatically-generated IMAP SSL key
CN=vladimir.avence.info
emailAddress=tech@avenceprod.com
[...]

За поп3:
едитваме /usr/local/courier-imap/etc/pop3d-ssl:
POP3DSSLSTART=YES

За да стартираме сървъра (под дебиан)
изпълняваме следната команда:

/etc/init.d/courier-imap start #Първият път това може да отнеме известно време! Не се шашкайте ;-)

След тази команда има вероятност да срещнете тези редове:
Dec 23 13:01:59 nw-tel2-mail-2 imapd: couriertls: /usr/local/courier-imap/var/couriersslcache: Permission denied
Dec 23 13:01:59 nw-tel2-mail-2 imapd: couriertls: /usr/local/courier-imap/share/imapd.pem: error:0200100D:system library:fopen:Permission denied

Това се оправя, чрез:
chown vpopmail:vchkpw /usr/local/courier-imap/var/
chown vpopmail:vchkpw /usr/local/courier-imap/share/imapd.pem
chown vpopmail:vchkpw /usr/local/courier-imap/share/pop3d.pem

15. IMAP Proxy  

wget http://freshmeat.net/redir/imapproxy/35569/url_tgz/up-imapproxy-1.2.1.tar.gz
tar -zxvf up-imapproxy-1.2.1.tar.gz
cd up-imapproxy-1.2.1
./configure
make
make install
make install-conf
make install-init

За да компилирате IMAP Proxy са ви необходими lib ncurses 5 dev. Ако се опитате да стартирате проксито и то ви даде следните грешки:
/etc/init.d/imapproxy: line 1: /bin/basename: No such file or directory
: Starting IMAP proxy server.
Моля едитнете /etc/init.d/imapproxy и сменете ред 58 (Pgm=`/bin/basename $0`) с Pgm=`/usr/bin/basename $0` (Това не е задължително под дебиан.)
Едитнете /etc/imapproxy.conf, за да адаптирате всичките си конфигурационни файлоиве към системата. В повечето случай е необходимо да смените само тези редове:
server_hostname zion.ma3x.org #сменете това с вашият хост
proc_groupname nobody Под debian, е "nogroup"
listen_port 144 Ако това прокси работи на съшия сървър кадето е имап-а , сменете този порт (например не 143) иначе прокси-то няма да работи!

16. Squirrelmail

wget http://twtelecom.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.2.tar.gz
tar xzvf squirrelmail-1.4.2.tar.gz
cd squirrelmail-1.4.2
mkdir attachments
chown -R www-data data attachments
chmod go-w data attachments
chgrp www-data data attachments
cd config
./conf.pl

След всичко това, добавете подобни редове в httpd.conf-a си:
VirtualHost ип/хост>
  ServerAdmin емайл-на админа
  DocumentRoot /var/www/webmail.avence.info
  ServerName webmail.ma3x.org
  ServerAlias mail.ma3x.org
  ErrorLog logs/webmail.avence.info-error.log
  CustomLog logs/webmail.avence.info-access.log combined


Ако сте направили всичко правилно не би трябвало да имате проблеми. Можете да изпробвате майл-а чрез http://webmail.XXX.XXX

17. Isoqlog

wget http://www.enderunix.org/isoqlog/isoqlog-2.1.1.tar.gz
tar -zxvf isoqlog-2.1.1.tar.gz
cd isoqlog-2.1.1
./configure
make
make install
ln -s /var/qmail/control/rcpthosts /usr/local/etc/isoqlog.domains
mkdir -p /var/www/qmail-stats/isoqlog

Така горе долу трябва да ви изглежда: /usr/local/etc/isoqlog.conf

logtype = "qmail-multilog"
logstore = "/var/log/qmail/qmail-send"
domainsfile = "/usr/local/etc/isoqlog.domains"
outputdir = "/var/www/qmail-stats/isoqlog"
htmldir = "/usr/local/share/isoqlog/htmltemp"
langfile = "/usr/local/share/isoqlog/lang/french"
hostname = "vladimir.avence.info" #Сменете този хост с вашият.

maxsender = 100
maxreceiver = 100
maxtotal = 100

maxbyte = 100

В кронтабът добавете следният ред:
58 * * * * /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null

Е, това беше. Надявам се да съм помогнал максимално.

Ето официалните линкове на оказаните приложения в тази статия:

qmailadmin - http://inter7.com/qmailadmin/
Vqadmin - http://inter7.com/vqadmin.html
courier-imap - http://www.inter7.com/courierimap/
IMAP Proxy - http://freshmeat.net/projects/imapproxy/
squirrelmail - http://www.squirrelmail.org/
IsoqLog - http://www.enderunix.org/isoqlog/





<< Slackware for dummies | Професионален пощенски сървър (Част 1) >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 0 wallclock secs ( 0.17 usr + 0.02 sys = 0.19 CPU)