Ключевые слова:qmail, imap, mail, spam, virtual, (найти похожие документы)
From: Александр Тварадзе <hozain@pisem.net.>
Newsgroups: email
Date: Mon, 21 Feb 2005 14:31:37 +0000 (UTC)
Subject: Построение полнофункционального почтового сервра на базе QMAIL
QMAIL + Vpopmail + courier-imap + Qmailadmin + MySql + Spamassassin +
clamav + Squirrelmail + stats (Isoqlog, qms-analog, qmailanalog & qmail
MRTG) на платформе Linux
Автор Ledru Sylvestre <sylvestre@ledru.info.>
перевод Александр Тварадзе <hozain@pisem.net.>
Оригинал статьи находится здесь http://sylvestre.ledru.info/howto/howto_qmail_vpopmail.php
Это руководство создано с целью описать, что требуется для построения
почтового сервера на базе qmail с поддержкой протоколов SMTP, POP3, IMAP.
Администрирование и мониторинг работы данного сервера будет
производиться через web-интерфейс. Почта, проходящая через сервер, будет
проверяться на наличие вирусов и спама.
Для установки потребуются следующие программы:
- qmail (http://www.qmail.org)
- vpopmail как POP3 сервер (http://www.inter7.com/?page=vpopmail)
- courier-imap как IMAP сервер (http://www.inter7.com/courierimap/INSTALL.html)
- spamassassin как спам-фильтр (http://www.spamassassin.org)
- tcpserver как замена inetd (http://cr.yp.to/ucspi-tcp/tcpserver.html)
- qmail-scanner ( http://qmail-scanner.sourceforge.net/)
- qmail-scanner ( http://xoomer.virgilio.it/j.toribio/qmail-scanner/)
- qms-analog ( http://www.qms-analog.teel.ws/)
- ezmlm в качестве рассыльщика почты (http://www.ezmlm.org/)
- qmailadmin для администрирования почтовых аккаунтов (http://inter7.com/qmailadmin/)
- vqadmin для администрирования почтовых доменов (http://www.inter7.com/vqadmin.html)
- qmailmrtg для отслеживания работы сервера(http://inter7.com/mrtg.html)
- isoqlog для детальных отчетов использования сервера(http://www.enderunix.org/isoqlog/)
- squirrelmail в качестве web-интерфейса к почте (http://www.squirrelmail.org/)
- IMAP Proxy для кеширования IMAP запросов (http://freshmeat.net/projects/imapproxy)
Данное руководство применимо для построения почтового сервера без особых
изменений на разных дистрибутивах Linuxa и *BSD системах.
1. Qmail
1.1 Создание пользователей и групп
1.2 Создание каталогов
1.3 Установка qmailа
2. Установка Daemon tools
2.1 Maildrop
3. TcpServer
4. Vpopmail
5. Autorespond
6. GDBM
7. Ezmlm
8. Spamassassin
9. Clamav - Antivirus
10. qmail-scanner
11. Скрипты и каталоги
11.1 Синонимы и каталоги по умолчанию
11.2 Запуск Supervise/Svscan
11.3 Скрипты для POP сервера
11.4 Скрипты для SMTP сервера
12. QmailAdmin
13. VQAdmin
14. Courier
15. IMAP Proxy
16. Squirrelmail
17. Isoqlog
18. Qmailmrtg
19. Утилиты
20. Замечания для дистрибутива RedHat Linux
21. Файлы
22. Ссылки
1. Установка Qmail
http://www.qmail.org
1.1 Создание пользователей и групп для Qmailа и Vpopmailа.
Создадим группы и пользователей под отдельными идентификаторами
(соответственно для групп gid, для пользователей uid). Это делается из
соображений безопасности.
mkdir /var/qmail
groupadd -g 98 vchkpw
useradd -u 98 -g 98 -c Vpopmail-Master -d /home/vpopmail -s /bin/false vpopmail
groupadd -g 91 nofiles
groupadd -g 92 qmail
useradd -u 91 -g 91 -d /var/qmail/alias -s /bin/false alias
useradd -u 92 -g 91 -d /var/qmail -s /bin/false qmaild
useradd -u 93 -g 91 -d /var/qmail -s /bin/false qmaill
useradd -u 94 -g 91 -d /var/qmail -s /bin/false qmailp
useradd -u 95 -g 92 -d /var/qmail -s /bin/false qmailq
useradd -u 96 -g 92 -d /var/qmail -s /bin/false qmailr
useradd -u 97 -g 92 -d /var/qmail -s /bin/false qmails
# Для дистрибутивов RedHat/Fedora uid 97 заменим на 90,
# поскольку программа dovecot использует данный uid в этих дистрибутивах.
Если в файле /etc/shells нет строки /bin/false, то добавим ее.
echo "/bin/false" >> /etc/shells
1.2 Создание каталогов для логов и модулей.
mkdir /var/log/qmail
mkdir /var/log/qmail/qmail-send
mkdir /var/log/qmail/qmail-smtpd
mkdir /var/log/qmail/qmail-pop3d
chown -R qmaill.root /var/log/qmail
chmod -R 750 /var/log/qmail
1.3 Установка qmail / netqmail.
В данном случае используем netqmail, который представляет собой qmail с
набором патчей (http://qmail.agarik.com/netqmail/CHANGES).
Почему они не включены в поставку qmailа?
Таковы требования лицензионного соглашения автора Qmailа профессора
Бернштейна.
wget http://qmail.agarik.com/netqmail-1.05.tar.gz
tar -zxvf netqmail-1.05.tar.gz
cd netqmail-1.05/
./collate.sh
cd netqmail-1.05
Вы получите сообщение похожее на это:
You should see 7 lines of text below. If you see anything
else, then something might be wrong.
[1] Extracting qmail-1.03...
tar: Read 1024 bytes from -
[2] Patching qmail-1.03 into netqmail-1.05. Look for errors below:
24
[4] The previous line should say 24 if you used GNU patch.
[5] Renaming qmail-1.03 to netqmail-1.05...
[6] Continue installing qmail using the instructions found at:
[7] http://www.lifewithqmail.org/lwq.html#installation
Редактируем файл conf-split (увеличиваем количество подкаталогов, на
которые разделяется очередь) Если очередь хранится в разделе с ReiserFS,
то установим значение conf-split равным 1.
23
Заменяем 23 на 199
затем редактируем файл conf-spawn
120
Заменяем 120 на 255
Компилируем qmail:
wget http://www.qmail.org/qmail-1.03-mfcheck.3.patch
wget http://sylvestre.ledru.info/howto/qmail/netqmail-maildir++.patch
patch -p1 < qmail-1.03-mfcheck.3.patch
patch -p1 < netqmail-maildir++.patch Применяем патч для поддержки квот на почтовые ящики
make WITH_QMAILQUEUE_PATCH=yes setup check Компилируем qmail с поддержкой
WITH_QMAILQUEUE_PATCH, который необходим для работы qmail-scanner
./config-fast vladimir.avence.info Заменяем vladimir.avence.info на DNS имя вашего сервера
echo 255 > /var/qmail/control/concurrencyremote
chmod 644 /var/qmail/control/concurrencyremote
Если требуется проверять наличие DNS записи для IP адреса
подключающегося по smtp клиента, то выполняем следующую команду
echo 1 > /var/qmail/control/mfcheck
2. Установка Daemon tools
http://cr.yp.to/daemontools.html
Для компиляции daemontools с библиотеками Glib версии 2.3.1 требуется
использовать патч.
mkdir /package
chmod 1755 /package
cd /package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar -zxvf daemontools-0.76.tar.gz
mv admin/daemontools-0.76/ daemontools-0.76
rmdir admin/
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
patch -p0 < daemontools-0.76.errno.patch
cd daemontools-0.76/
./package/install
cd ..
rm daemontools-0.76.tar.gz daemontools-0.76.errno.patch
Для проверки установилось ли все правильно, проверьте есть ли ссылки в
каталоге /command/ в каталог /package/daemontools/command/.
2.1 Maildrop
http://www.flounder.net/~mrsam/maildrop/
wget http://mesh.dl.sourceforge.net/sourceforge/courier/maildrop-1.8.0.tar.bz2
tar -jxvf maildrop-1.8.0.tar.bz2
cd maildrop-1.8.0/
./configure
make
make install
Для проверки правильности установки проверьте, существует ли файл
/usr/local/bin/maildrop.
3. TCPServer
http://cr.yp.to/ucspi-tcp.html
TCPserver используется для управления сетевыми подключениями.
Список сетей которым доступна пересылка писем через почтовый сервер
может храниться двумя путями:
- классический путь использование файла ~vpopmail/etc/tcp.smtp
- список сетей, которым доступна пересылка писем, хранятся в базе Mysql
(информация по установке патча)
Какой способ лучше?
Это зависит от того, что Вам нужно. Решение с использованием Mysql
позволяет более гибко и легче настраивать список сетей, которым
разрешена пересылка писем.
Общие для обоих вариантов действия:
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
tar -zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
Установка патчей для решения проблем при компиляции с qlibc.
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.a_record.patch
patch -p1 < ucspi-tcp-0.88.a_record.patch
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
patch -p1 < ucspi-tcp-0.88.errno.patch
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.nobase.patch
patch -p1 < ucspi-tcp-0.88.nobase.patch
Вариант 1: Классический путь (использование файла ~vpopmail/tcp.smtp) :
make
make setup check
mkdir -p /home/vpopmail/etc/
Установка списка сетей, которым разрешена пересылка писем, производится
путем редактирования файла /home/vpopmail/etc/tcp.smtp.
127.0.0.1:allow,RELAYCLIENT=""
198.168.1.:allow,RELAYCLIENT="" Поменяйте адрес 192.168.х.х на адреса Вашей сети
:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
/usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb \
/home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp
chmod 644 /home/vpopmail/etc/tcp.smtp.cdb
Вариант 2: Использование базы MySQL:
wget http://sylvestre.ledru.info/howto/qmail/ucspi-tcp-0.88-mysql.patch
patch -p0 < ucspi-tcp-0.88-mysql.patch
Нужно сконфигурировать параметры доступа к базе mysql. Для этого
отредактируем файл /var/qmail/control/sql.
server sql.mailserver.com
port 3306
database vpopmail
table relay
user vpopmail_edit
pass vpass
time 1800
Создаем таблицу:
CREATE TABLE relay (
ip_addr char(18) NOT NULL default '',
timestamp char(12) default NULL,
PRIMARY KEY (ip_addr)
);
В качестве примера конфигурации с использованием mysql, рассмотрим
несколько записей.
Если требуется наличие адреса, которому постоянно разрешена пересылка
через сервер, то нужно вручную добавить запись об этом. Например, для
постоянного разрешения пересылки с адреса 127.0.0.1 нужно дать следующие
команды:
mysql> insert into relay (ip_addr) values ('127.0.0.1');
mysql> select * from relay;
ip_addr timestamp
62.210.141.XX 1094032768
217.167.120. NULL
80.201.115.XX 1094032739
212.239.131.XX 1094027678
127.0.0.1 NULL
5 rows in set (0.00 sec)
4. vpopmail
http://www.inter7.com/?page=vpopmail
Vpopmail используется в качестве виртуального POP сервера (т.е. не
привязанного к файлу /etc/passwd).
Создадим базу vpopmail и двух пользователей. Первый пользователь имеет
доступ к базе , другой может ее модифицировать. Например, подключаемся к
mysql (mysql -u root -p) и даем следующие команды :
mysql> create database vpopmail;
mysql> grant update, create, delete, insert, select on vpopmail.*
to vpopmail_edit@localhost identified by "vpass";
-- Поменяйте localhost на имя сервера с vpopmail
mysql> flush privileges;
Если ниже следующая команда проходит без ошибок, то база vpopmail будет
нормально работать.
[sly@reloaded] ~$ mysql -h localhost -u vpopmail_edit -pvpass vpopmail
Усли появляются сообщения об ошибках, то обратитесь к документации по
mysqlу. Для vpopmail 5.4.X, последней версии vpopmail (выпущена 1
февраля 2004) делаем следущее.
wget http://heanet.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.9.tar.gz
tar -zxvf vpopmail-5.4.9.tar.gz
mkdir -p ~vpopmail/etc/
cd vpopmail-5.4.9/
echo "localhost|0|vpopmail_edit|vpass|vpopmail" > ~vpopmail/etc/vpopmail.mysql
chown vpopmail.vchkpw ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql
apt-get install libmysqlclient10-dev Если вы используете дистрибутив
Debian, могут потребоваться исходники mysql
apt-get install zlib1g-dev Если вы используете дистрибутив
Debian, могут потребоваться исходники mysql (Спасибо Ken MacFerrin).
./configure --enable-roaming-users=y --enable-logging=y --enable-ip-alias-domains=y\
--enable-auth-module=mysql --enable-clear-passwd=n --enable-libdir=/usr/include/mysql/\
--enable-tcpserver-path=/home/vpopmail/etc/ --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
--enable-qmail-ext --enable-logging=e --enable-tcprules-prog=/usr/local/bin/tcprules \
--enable-rebuild-tcpserver-file --enable-mysql-limits --enable-domainquotas
# Для дистрибутивов Redhat/Fedora, поменяйте /usr/include/mysql на /usr/lib/mysql
Если вы используете вариант контроля доступа на базе mysql, то удалите
опцию --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp
make
make install-strip
Опция roaming означает, что если пользователь проверяет свой ящик, то
это открывает smtp соединение только для этого пользователя.
Теперь отредактируем список задач для планировщика:
crontab -e
и добавим следующую сточку :
40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
Каждый раз скрипт clearopensmtp запускается, проверяя список IP-адресов,
которые имеют право на пересылку через smtp сервер, находя те, чья
отметка о времени старее, чем указанно в опции
--enable-relay-clear-minutes (По умолчанию 3 часа). Найденные устаревшие
соединения удаляются.
Для проверки правильности установки, дайте команду
/home/vpopmail/bin/vadddomain. Если в ответ получите, что-то вроде
"vmysql: sql error[c]: MySQL server has gone away" or "Failed while
attempting to add user to auth backend", значит у вас проблемы с
пользователем в mysql. (Если не получили похожего сообщения, то значит
все работает)
5. Autorespond
http://www.inter7.com/index.php?page=software
Данный пакет предназначен для реализации функции автоответчика на
приходящие письма.
wget http://www.inter7.com/devel/autorespond-2.0.2.tar.gz
tar -zxvf autorespond-2.0.2.tar.gz
cd autorespond-2.0.2
make
make install
6. gdbm (операции с базами данных)
http://www.gnu.org/software/gdbm/
wget ftp://mirrors.kernel.org/gnu/gdbm/gdbm-1.8.3.tar.gz
tar -zxvf gdbm-1.8.3.tar.gz
cd gdbm-1.8.3/
./configure
make
make install
7. Ezmlm (Easy Mailing List manager)
http://www.ezmlm.org/
Ezmlm это пакет управления списками рассылки.
wget http://sylvestre.ledru.info/howto/qmail/ezmlm-idx-0.40.tar.gz
wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/ezmlm-idx-0.53.400.unified_41.patch
tar -zxvf ezmlm-0.53.tar.gz
tar -zxvf ezmlm-idx-0.40.tar.gz
mv ezmlm-idx-0.40/* ezmlm-0.53/
cd ezmlm-0.53
patch < idx.patch
patch < ../ezmlm-idx-0.53.400.unified_41.patch
отредактируйте файл sub_mysql/conf-sqlld
replace:
-L/usr/lib/mysql -lmysqlclient -lnsl -lm
by:
-L/usr/local/lib/mysql -lmysqlclient -lm
make clean
make
make man
make setup
8. Spamassassin
http://spamassassin.apache.org/
Некоторая информация о связке spamassassin с qmail.
Spamassassin это мощный пакет проверки писем на наличие спама. В основе
принципа работы использование полученных письмом балов. Если сумма
полученных письмом балов в ходе анализа превысило определенное значение
(например, 5), то письмо помечается как спам (строчка ****SPAM**** в
заголовок).
Это дает возможность далее легко создать правило, которое будет
отправлять такие сообщения в определенный каталог (например, для
удаления).
apt-get install spamassassin Если используете дистриутив Debian sarge (тестируется)
wget http://old.spamassassin.org/released/Mail-SpamAssassin-2.64.tar.gz
tar -zxvf Mail-SpamAssassin-2.64.tar.gz
cd Mail-SpamAssassin-2.64
perl Makefile.PL
make
make install
cp spamd/debian-rc-script.sh /etc/init.d/spamassassin
# Можете заменить debian на redhat, solaris, netbsd, suse ..
# в зависимости от используемого вами дистрибутива и операционной системы
chmod +x /etc/init.d/spamassassin
Отредактируйте файл /etc/init.d/spamassassin
change DAEMON=/usr/sbin/spamd to :
DAEMON=/usr/bin/spamd
Создайте файл /etc/default/spamassassin и добавьте в него 2 строчки:
ENABLED=1
OPTIONS="-v -m 50 --auto-whitelist"
Этим самым вы указываете что нужно запускать сервер spamd базовый сервис
spamassassinа (это дает лучшую производительность).
-m 50: 50 потоков
-v: работа с vpopmail
--auto-whitelist: использование whitelist (белого списка сетей)
Потом отредактируем файл /etc/mail/spamassassin/local.cf
required_hits 6.0
rewrite_subject 1
report_header 1
use_terse_report 1
defang_mime 1
dns_available yes
dcc_add_header 1
use_pyzor 1 (Только в случае если у вас установлен pyzor)
use_razor2 1 (Только в случае если у вас установлен razor2)
use_dcc 1
Затем запускаем spamassassin сервер и тестируем его:
/etc/init.d/spamassassin start
spamc < sample-spam.txt Выдаст результат реакции на обнаружение спама в сообщении
spamc < sample-nonspam.txt Выдаст исходное письмо (чисто от спама)
Для тестового сообщения, содержащего спам, получим что-то вроде:
X-Spam-Level: **************************************************
X-Spam-Status: Yes, hits=1000.0 required=6.0 tests=GTUBE autolearn=no version=2.60
Теперь можно использовать SpamAssassin в системе.
9. Clamav - Antivirus
http://www.clamav.net/
Перед установкой clamav, вы должны установить unzoo, lha, arj и unzip
(требуются для распаковки почтовых приложений).
Under debian : apt-get install clamav
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
[ Установите clamav из исходников ]
10. qmail-scanner
http://qmail-scanner.sourceforge.net/, http://www.qms-analog.teel.ws/
(включая: http://xoomer.virgilio.it/j.toribio/qmail-scanner/)
Qmail-scanner это разборщик почтовых сообщений (похож на Amavis).
Qmail-scanner разбирает каждое почтовое сообщение и вызывает
spamassassin и/или clamav для проверки.
Я использую новую версию qmail-scannerа, которая имеет следующие
возможности: авто удаление/возврат/помещение в карантин сообщений со
спамом, а также возможности выбора набора антивирусных сканеров для
каждого домена и пользователя.
Вам потребуется установить пакет perl-suid. (Например, apt-get install
perl-suid)
wget http://unc.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.24.tgz
wget http://optusnet.dl.sourceforge.net/sourceforge/qms-analog/qms-analog-0.4.0.tar.gz
wget http://untroubled.org/qlogtools/qlogtools-3.1.tar.gz
wget http://cr.yp.to/software/qmailanalog-0.70.tar.gz
wget http://mirrors.kangaroot.net/qmail/rpms/glibc-2.3.1/qmailanalog-0.70.errno.patch
wget http://www.qmailrocks.org/downloads/patches/qlogtools_errno.patch
tar -zxvf qmailanalog-0.70.tar.gz
cd qmailanalog-0.70
patch < ../qmailanalog-0.70.errno.patch
make setup check
cd ..
tar -zxvf qlogtools-3.1.tar.gz
cd qlogtools-3.1
patch < ../qlogtools_errno.patch
make
cp tai64n2tai /usr/local/bin/
cd ..
tar -zxvf qms-analog-0.4.0.tar.gz
cd qms-analog-0.4.0
make install
cp qmailstats /var/qmail/bin/ qmailstats это скрипт, который вызывает
qms-analog и qmailanalog. Отредактируйте для изменения адреса назначения:
## этот адрес будет использоватся в заголовке сообщения
cd ..
tar -zxvf qmail-scanner-1.24.tgz
cp qms-analog-0.4.0/qmail-scanner-1.24-st-qms-20041102.patch qmail-scanner-1.24
cd qmail-scanner-1.24/
patch -p1 < qmail-scanner-1.24-st-qms-20041102.patch
groupadd qscand
useradd -c "Qmail-Scanner Account" -g qscand -s /bin/false qscand
Отредактируйте файл qms-config-monitor и измените в нем то, что вам
необходимо. Например, мой файл выглядит так:
./configure --domain trunks.ecranbleu.org \
--admin postmaster \
--local-domains "`cat /var/qmail/control/rcpthosts | tr "\n" ","`" \
--add-dscr-hdrs yes \
--dscr-hdrs-text "X-Antivirus-ecranbleu" \
--ignore-eol-check yes \
--sa-quarantine 0 \
--admin-fromname "Mail admin" \
--scanners-per-domain yes \
--sa-delete 5 \
--sa-reject no \
--sa-subject "*****SPAM*****" \
--sa-alt no \
--sa-debug no \
--notify sender,recips \
--redundant yes \
--qms-monitor yes \
--qms-monitor-accts "sly@hitomi.ecranbleu.org" \
--qms-monitor-dests "domain.org/sylvestre/Maildir/new" \
"$INSTALL"
./qms-config-monitor
./qms-config-monitor install
Если вы хотите включить/отключить какие-либо сканеры, то отредактируйте
файл /var/spool/qmailscan/scanners_per_domain.txt
Для обновления файла со списками сканеров для доменов выполните:
/var/qmail/bin/qmail-scanner-queue.pl -p
Для обновления списка разрешенных/запрещенных приложений в электронных
письмах выполните: /var/qmail/bin/qmail-scanner-queue.pl -g
Например:
trunks.ecranbleu.org:sa,ps,clamdscan_scanner
# sa = spamassassin
# ps = perl scanner
11. Скрипты и каталоги
11.1 Синонимы и каталоги
mkdir ~alias
chown alias.qmail ~alias
echo tech > /var/qmail/alias/.qmail-root
echo tech > /var/qmail/alias/.qmail-postmaster
echo tech > /var/qmail/alias/.qmail-mailer-daemon
chmod 2755 ~alias
chmod 644 ~alias/.qmail*
Отредактируйте файл /var/qmail/users/assign
+avence.info-:avence.info:98:98:/home/vpopmail/domains/avence.info:-::
# Измените имя домена avence.info на требуемое вам.
.
Не забудьте точку в конце файла.
11.2 Запуск Supervise/Svscan
mkdir /service
chmod 755 /service
mkdir /var/qmail/supervise
chmod 755 /var/qmail/supervise
mkdir /var/qmail/supervise/qmail-smtpd
mkdir /var/qmail/supervise/qmail-smtpd/log
chmod +t /var/qmail/supervise/qmail-smtpd
mkdir /var/qmail/supervise/qmail-send
mkdir /var/qmail/supervise/qmail-send/log
chmod +t /var/qmail/supervise/qmail-send
mkdir /var/qmail/supervise/qmail-pop3d
mkdir /var/qmail/supervise/qmail-pop3d/log
chmod +t /var/qmail/supervise/qmail-pop3d
ln -s /var/qmail/supervise/* /service/
Отредактируйте файл /var/qmail/rc
#!/bin/sh
exec env - PATH="/var/qmail/bin:/usr/local/bin" \
qmail-start ./Maildir/
Затем:
chmod 700 /var/qmail/rc
11.3 pop3
Отредактируйте файл /var/qmail/supervise/qmail-pop3d/run
#!/bin/sh
exec /usr/local/bin/tcpserver -H -R -v -c100 0 pop3 /var/qmail/bin/qmail-popup \
vladimir.avence.info /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1
#Измените имя домена vladimir.avence.info на требуемое вам.
Вызывается pop сервер посредством пакета tcpserver с проверкой
логина/пароля пользователя (используются qmail-popup и vchkpw).
-R : не нужно запрашивать значение $TCPREMOTEINFO
-H : не нужно проверять имя узла
-v : verbose
-c : количество одновременно обслуживаемых подключений
0 : IP-адрес сервера (0 означает разрешить подключения на любые локальные адреса)
pop3 : используемый порт (может быть определен в файле /etc/services, а также введен как целое число)
qmail-popup : эта программа читает логин и пароль POP пользователя и вызывает программу
(в данном случае программу vchkpw)
vchkpw : эта программа производит аутенфикацию POP пользователя и предоставляет ему
доступ в его pop каталог
qmail-pop3d : эта программа обеспечивает доставку писем посредством протокола POP3
затем :
chmod 755 /var/qmail/supervise/qmail-pop3d/run
Отредактируйте файл /var/qmail/supervise/qmail-pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s100000 n20 \
/var/log/qmail/qmail-pop3d 2>&1
Вызов программы multilog под тем же uid (идентификатор пользователя) и
gid (идентификатор группы) который используется при вызове программы
qmail-pop3d.
Опция t означает что в лог-файле будут временные отметки в начале каждой
записи (формат tai64n).
s100000: размер лог-файла (в данном случае размер файла будет 100 000
байт). Значение может быть от 4096 до 16777215.
n20: количество лог-файлов (в данном случае 20). Минимальное значение 2.
Затем:
chmod 755 /var/qmail/supervise/qmail-pop3d/log
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
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
Если вы используете вариант контроля доступа на базе mysql базы для
tcpserver, замените -x /home/vpopmail/etc/tcp.smtp.cdb опцией -S
Запуск smtp сервера через пакет tcpserver с проверкой RBL-списка (список плохих сетей).
-u: идентификатор пользователя от имени которого будет работать qmail-smtpd
-g: идентефикатор группы которая будет использоваться qmail-smtpd
-p : режим паранои (проверяется совпадает ли адрес удаленного узла с записью в DNS)
-R : не пытаться получить значение $TCPREMOTEINFO
-v : verbose
-c : количество одновременно обслуживаемых соединений
0 : IP адрес сервера (0 означает разрешить подключения на любые локальные адреса)
smtp : используемый порт (может быть определен в файле /etc/services,
а также введен как целое число)
rblsmtpd: эта программа блокирует прием почты из сетей занесенных в RBL-список
(Я использую список с сайта relays.ordb.org) и вызывает программу (в данном случае 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
Вызов программы multilog под тем же uid (идентификатор пользователя) и
gid (идентификатор группы) который используется при вызове программы
qmail-smtpd.
Опция t означает что в лог-файле будут временные отметки в начале каждой
записи (формат tai64n).
s100000: размер лог-файла (в данном случае размер файла будет 100 000
байт). Значение может быть от 4096 до 16777215.
n20: количество лог-файлов (в данном случае 20). Минимальное значение 2.
Затем:
chmod 755 /var/qmail/supervise/qmail-smtpd/log
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
отредактируйте файл /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
отредактируйте файл /var/qmail/supervise/qmail-send/log/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
Следующей командой вы генерируете стандартный Maildir (т.е когда вы
создаете нового пользователя, каталог Maildir будет скопирован
автоматически) :
/var/qmail/bin/maildirmake /etc/skel/Maildir Зависит от дистрибутива Linuxа
Наконец нужна создать скрипт для запуска серверов при загрузке.
В дистрибутиве Debian, он должен быть в каталоге /etc/init.d/. Например
это может быть /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/tcp.smtp
chmod 644 /home/vpopmail/etc/tcp.smtp*
echo "Reloaded /home/vpopmail/etc/tcp.smtp."
;;
*)
echo "Usage: $0
{start|stop|restart|doqueue|reload|stat|pause|cont|cdb|queue}"
exit 1
esac
exit 0
chmod 750 /etc/init.d/qmail
12. Qmailadmin
http://www.inter7.com/?page=qmailadmin/
QmailAdmin это web-интерфейс для управления пользователями.
wget http://heanet.dl.sourceforge.net/sourceforge/qmailadmin/qmailadmin-1.2.3.tar.gz
tar -zxvf qmailadmin-1.2.3.tar.gz
cd qmailadmin-1.2.3/
./configure --enable-htmldir=/var/www/qmailadminhtml --enable-imagedir=/var/www/images \
--enable-imageurl=/images --enable-cgibindir=/var/www/cgi-bin/ \
--enable-autoresponder-bin=/usr/local/bin --enable-vpopuser=vpopmail \
--enable-ezmlmdir=/usr/local/bin/ezmlm/ --enable-ezmlmidx=y \
--enable-modify-quota --disable-ipauth --enable-help
Измените каталоги применительно к конфигурации вашего сервера
make
make install-strip
Если при компиляции qmailadmin вы получаете сообщение похожее на
нижеследующее:
gcc -I. -g -O2 -c qmailadmin.c
qmailadmin.c:29:22: vpopmail.h: No such file or directory
qmailadmin.c:30:19: vauth.h: No such file or directory
попробуйте выполнить следующую команду:
echo "-I/home/vpopmail/include" >> /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
Теперь нужно сконфигурировать web-сервер, указав каталог cgi-bin для
qmailadmin. Например, для web-сервера Apache :
<VirtualHost 217.167.120.134>
ServerAdmin sylvestre@ecranbleu.org
DocumentRoot /var/www/
ServerName qmailadmin.avence.info
ErrorLog logs/qmailadmin.avence.info-error.log
CustomLog logs/qmailadmin.avence.info-access.log combined
<Directory /var/www/>
AllowOverride AuthConfig Limit
Options SymLinksIfOwnerMatch Includes
</Directory>
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
ScriptAlias /global-cgi/ /usr/lib/cgi-bin/
</VirtualHost>
Если в логе web-сервера Apache появляется ошибка, похожая на
нижеследующую:
[Tue Aug 10 18:10:23 2004] [error] [client xx.xx.xx.xx]
Premature end of script headers: /var/www/cgi-bin/qmailadmin
то это может быть связанно с конфигурацией вашего web-сервера Apache.
Похожая проблема всречалась у меня, был активирован suexecin:
закомментируйте строчки User/Group (Спасибо Julien Lefevre).
13. Vqadmin
http://inter7.com/vqadmin.html
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
Добавим все следующие директивы в конфигурацию web-сервера Apache -
httpd.conf (например это может быть виртуальный домен qmailadmin) :
<Directory "/var/www/cgi-bin/vqadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>
Вы можете добавить авторизацию для входа на страницы при помощи htaccess.
Для этого отредактируйте файл /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 /var/www/cgi-bin/vqadmin/.htaccess
# Для дистрибутивов RedHat Linux значения user/group соответственно
# будут nobody/nogroup
chmod 600 /var/www/cgi-bin/vqadmin/.htaccess
htpasswd -bc /etc/apache/vqadmin.passwd admin adminpass
14. Courier
http://www.inter7.com/courierimap/INSTALL.htmlhttp://www.courier-mta.org/download.php#imap
Пакет Сourier используется в нашем случае как IMAP сервер. Начиная с
новой версии в ней используется сторонняя библиотека authlib, которая
реализовывает функции авторизации.
wget http://unc.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.52.tar.bz2
tar -jxvf courier-authlib-0.52.tar.bz2
cd courier-authlib-0.52
./configure --without-authpam --without-authldap --without-authpwd \
--without-authmysql --without-authpgsql --without-authshadow \
--without-authuserdb --without-authcustom --without-authcram \
--without-authdaemon --with-authvchkpw
make
make install
make install-configure
wget http://unc.dl.sourceforge.net/sourceforge/courier/courier-imap-4.0.0.tar.bz2
tar -jxvf courier-imap-4.0.0.tar.bz2
cd courier-imap-4.0.0
export CFLAGS="-DHAVE_OPEN_SMTP_RELAY -DHAVE_VLOGAUTH"
./configure --prefix=/usr/local/courier-imap --disable-root-check \
--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
то проинсталлируйте библиотеки ssl-development (Для дистрибутивов
Debian Linux apt-get install libssl-dev)
Если вы получаете сообщения об ошибках в библиотеках vpopmail,
воспользуйтесь следующими двумя командами (спасибо Alberto Manzoni)
echo "-I/home/vpopmail/include/" > /home/vpopmail/etc/inc_deps
echo "-L/home/vpopmail/lib -lvpopmail" > /home/vpopmail/etc/lib_deps
Но если получаете ошибки из vpopmail похожие на нижеследующую:
/home/vpopmail/lib/libvpopmail.a(vauth.o) in function `vauth_open_update':
то проверьте наличие в файле /home/vpopmail/etc/lib_deps строчек вида:
-L/home/vpopmail/lib -lvpopmail -L/usr/include/mysql/ -lmysqlclient -lz -lcrypt
После установки вы можете отредактировать некоторые конфигурационные файлы.
В файле /usr/local/courier-imap/etc/imapd, поменяйте строчки TCPDOPTS /
AUTHMODULES на нижеследующие:
TCPDOPTS="-nodnslookup -noidentlookup -user=vpopmail -group=vchkpw"
В заключение не забудьте поменять в нижеследующей строчке значение (она
находится в конце файла)
IMAPDSTART=NO
На YES
Если нужна поддержка шифрации протокола IMAP используем imap-ssl, в
файле /usr/local/courier-imap/etc/imapd-ssl указываем
IMAPDSSLSTART=YES
В файле /usr/local/courier-imap/etc/imapd.cnf SSL сертификаты:
[...]
[ 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
[...]
Для поддержки шифрации протокола POP3 используем pop3d-ssl, в файле
/usr/local/courier-imap/etc/pop3d-ssl указываем
POP3DSSLSTART=YES
Если вы хотите запустить IMAP сервер:
/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
Если вы хотите изменить сертификат вы должны использовать следующие
команды (после удаления pem-файла):
/usr/local/courier-imap/share/mkimapdcert
/usr/local/courier-imap/share/mkpop3dcert
15. IMAP Proxy
http://freshmeat.net/projects/imapproxy/
Пакет Imapproxy используем для уменьшения времени соединения между
imap-клиентом и сервером (IMAP Proxy)
wget http://www.imapproxy.org/downloads/up-imapproxy-1.2.2.tar.gz
tar -zxvf up-imapproxy-1.2.2.tar.gz
cd up-imapproxy-1.2.2
./configure
make
make install
make install-conf
make install-init
Для компиляции пакета imapproxy вам потребуются библиотека ncurses-5-dev
(apt-get install libncurses5-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` (возможно это
требуется только для дистрибутивов Debian)
Отредактируйте файл /etc/imapproxy.conf применительно к вашей
конфигурации. В большинстве случаев достаточно поменять только
нижеследующие строки:
- server_hostname vladimir.avence.info Поменяйте на название вашего сервера
- proc_groupname nobody Для дистибутивов Debian поменяйте на "nogroup"
- listen_port 144 Если вы будете запускать пакет imap proxy на том же
сервере где будет работать courier-imap, то поменяйте данную строку
(т.е. значение не должно быть равным 143, это порт IMAP сервера) . В
противном случае IMAP proxy работать не будет
16. Squirrelmail
http://www.squirrelmail.org/
wget http://heanet.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.3a.tar.gz
tar xzvf squirrelmail-1.4.3a.tar.gz
cd squirrelmail-1.4.3a
mkdir attachments
chown -R www-data data attachments
chmod go-w data attachments
chgrp www-data data attachments
cd config
./conf.pl
Поменяйте следующие параметры (вы также можете использовать большое
количество дополнений для пакета squirremail):
ORGANIZATION PREFERENCES
Измените название.
SERVER SETTINGS
Измените название домена
Измените IMAP сервер
# Не забудьте установить ip-адрес/порт для пакета IMAP Proxy
# (иначе наличие пакета потеряет всякий смысл)
Измените SMTP сервер
GENERAL OPTIONS
Измените каталог данных (необязательно).
Измените каталог для хранения приложений к письмам
Установите предопределенные значения для определенных et IMAP серверов
Select courier = Courier IMAP server
Select courier = Courier IMAP server
Добавьте виртуальный домен в конфигурацию вашего web-сервера и
перезапустите его:
<VirtualHost 217.167.120.134>
ServerAdmin sylvestre@ecranbleu.org
DocumentRoot /var/www/webmail.avence.info
ServerName webmail.avence.info
ServerAlias mail.avence.info
ErrorLog logs/webmail.avence.info-error.log
CustomLog logs/webmail.avence.info-access.log combined
</VirtualHost>
Пакет webmail установлен. Протестируйте его по адресу
http://webmail.xxxxxxxxxxxxx.xxx/.17. Isoqlog
http://www.enderunix.org/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
Отредактируйте таблицу заданий crontab, поместив в нее следующую строку
(программа isoqlog будет запускаться каждые 58 минут):
58 * * * * /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null
Просмотреть полученные отчеты: http://yourhost/qmail-stats/isoqlog/18. QmailMrtg
http://www.inter7.com/?page=qmailmrtg7 Здесь можно увидеть примеры выдаваемых отчетов
Если у вас не установлен пакет mrtg, то вы должны его установить.
wget http://www.inter7.com/qmailmrtg7/qmailmrtg7-4.2.tar.gz
tar -zxvf qmailmrtg7-4.2.tar.gz
cd qmailmrtg7-4.2
make
make install
mkdir -p /var/www/qmail-stats/mrtg/
cp index.html /var/www/qmail-stats/mrtg/
Сохраните этот файл в каталог /etc/. Он представляет собой измененный
конфигурационный файл с правильными путями к лог-файлам. Измените эти
пути согласно вашей конфигурации.
Выполните эту командуRun 3 раза:
/usr/bin/mrtg /etc/qmail.mrtg.cfg
Вы можете получить сообщения об ошибках. Не беспокойтесь об этом. В
любом случае вы можете проверить создались ли новые файлы в каталоге
/var/www/qmail-stats/mrtg/
Отредактируйте таблицу заданий crontab, поместив в нее следующую
2-57/5 * * * * /usr/bin/mrtg /etc/qmail.mrtg.cfg > /dev/null
Просмотреть полученные отчеты: http://yourhost/qmail-stats/mrtg/19. Утилиты
В данном разделе приводится пример утилиты позволяющей просматривать
содержимое почтовой очереди qmail и определять от кого и кому посылается
письмо. Данная утилита называется qmhandle
wget http://cesnet.dl.sourceforge.net/sourceforge/qmhandle/qmhandle-1.2.0.tar.gz
tar -zxvf qmhandle-1.2.0.tar.gz
Ниже приведен пример выдаваемой утилитой информации при запуске ее с
параметром l (qmHandle -l):
109816 (167, R)
Return-path: 294drowzow@sentry33221.com
From: "Johnny Champion"
To: at@choum.com
Subject: *****SPAM***** A platinum card who cares? dpplo
Date: Sun, 04 Jan 04 08:41:16 GMT
Size: 8009 bytes
Вы также можете изменять содержимое почтовой очереди при помощи данной утилиты:
-a : попробовать передать сообщения, находящиеся в очереди (qmail должен быть запущен)
-l : получить список сообщений, находящихся в почтовой очереди
-L : получить список локальных сообщений, находящихся в очереди
-R : получить список не локальных сообщений, находящихся в очереди
-s : получение некоторой статистики
-mN : показать сообщение номер N
-dN : удалить сообщение номер N
-Stext : удалить все сообщения с темой содержащей образец text
-D : удалить все сообщения из очереди (локальные и не локальные)
20. RedHat
В дистрибутивах RedHat/Fedora вам потребуется установить следующие пакеты:
yum update
yum upgrade
yum install mysql
yum install mysql-server
yum install mysql-devel
yum install php-mysql
yum install expect
yum install perl-Time-HiRes
yum install perl-suidperl
Не забудьте отредактировать файл /etc/sysconfig/network для указания
правильного имени сервера.
Так же важно выполнить следующие действия:
- Поменять идентефикатор пользователя (uid) qmails на 90 (вместо 97).
- Изменить каталог mysql с /usr/include/mysql/ на /usr/lib/mysql
21. Файлы
/etc/tcp.smtp [ Tcpserver ]
/etc/mail/spamassassin/local.cf [ Spamassassin ]
/etc/default/spamassassin [ Spamassassin ]
/var/qmail/supervise/qmail-pop3d/run [ qmai ]
/var/qmail/supervise/qmail-pop3d/log/run [ qmail ]
/var/qmail/supervise/qmail-smtpd/run [ qmail ]
/var/qmail/supervise/qmail-smtpd/log/run [ qmail ]
/var/qmail/supervise/qmail-send/run[ qmail ]
/var/qmail/supervise/qmail-send/log/run[ qmail ]
/usr/local/courier-imap/etc/imapd [ courier-imap ]
/etc/init.d/qmail [ qmail ]
/usr/local/etc/isoqlog.conf [ isoqlog ]
/etc/qmail.mrtg.cfg [ qmailmrtg ]
Ниже приведен список наиболее важных файлов:
Control Default Used by Purpose
badmailfrom none qmail-smtpd "Черный список" почтовых адресов (поле From)
bouncefrom MAILER-DAEMON qmail-send Имя пользователя посылающего сообщение об ошибке
bouncehost me qmail-send Название сервера пользователя посылающего сообщение об ошибке
concurrencyincoming none /service/qmail-smtpd/run Максимальное количество
одновременных входящих SMTP соединений
concurrencylocal 10 qmail-send Максимальное количество одновременных
локальных доставок
concurrencyremote 20 qmail-send Максимальное количество одновременных
нелокальных доставок
defaultdelivery none /var/qmail/rc Файл .qmail по умолчанию
defaultdomain me qmail-inject Файл, содержащий имя домена по умолчанию
defaulthost me qmail-inject Файл, содержащий имя сервера по умолчанию
databytes 0 qmail-smtpd Максимальный размер сообщения в байтах (0 - без
ограничения)
doublebouncehost me qmail-send Имя сервера отсылающего сообщения о
вторичной ошибке
doublebounceto postmaster qmail-send Пользователь, получающий сообщение
о повторной ошибке
envnoathost me qmail-send Домен по умолчанию для адресов без "@"
helohost me qmail-remote Имя сервера, используемое в команде SMTP HELO
idhost me qmail-inject Имя сервера для Message-ID's
localiphost me qmail-smtpd Имя, подставляемое для локальных IP адресов
locals me qmail-send Список доменов почта, для которых будет
доставляться локально
me FQDN of system Various Умолчание для управляющих файлов
morercpthosts none qmail-smtpd Вторая база rcpthosts
percenthack none qmail-send Домены для которых используется трансляция,
базирующаяся на использовании символа "%"
plusdomain me qmail-inject Домен используемый для отслеживания "+"
qmqpservers none qmail-qmqpc IP адреса QMQP-серверов
queuelifetime 604800 qmail-send Время (в секундах) которое сообщение
может оставаться в очереди
rcpthosts none qmail-smtpd Список доменов, для которых принимается почта
smtpgreeting me qmail-smtpd Приветственное сообщение для SMTP сессии
smtproutes none qmail-remote Дополнительные маршруты передачи
SMTP-сообщений
timeoutconnect 60 qmail-remote Таймаут ожидания (в секундах)
SMTP-соединения
timeoutremote 1200 qmail-remote Таймаут ожидания (в секундах) ответа
удаленного сервера
timeoutsmtpd 1200 qmail-smtpd Таймаут ожидания (в секундах) ответа
SMTP-клиента
virtualdomains none qmail-send Список виртуальных доменов и пользователей
22. Ссылки
----------
- QMAIL + Vpopmail + Sqwebmail + Qmailadmin + MySql : How-To for FreeBSD
4.x (v2.0) By Flattie McGee (ZA) 2001 Globelinks Communications.
http://howto.globelinks.com/qmail-howto-freebsd.html
- Life with qmail
http://web.infoave.net/~dsill/lwq.html
- REDHAT + QMAIL + OPENSSL + APACHE + PHP + MYSQL + VPOPMAIL (with MySQL
accounts) + COURIER-IMAP + SQUIRRELMAIL (with MySQL prefs/addrbook),
QMAIL-SCANNER + SPAMASSASSIN
http://www.pipeline.com.au/staff/mbowe/isp/webmail-server.htm
- Howto Qmail met vpopmail, qmailadmin, imapcourier, squirrelmail + vele extra's
http://www.euronet.nl/users/erhnam/linux/qmail/qmail.htm
>почему-то vpopmail не компилится
gcc -g -O2 -Wall -o vchkpw vchkpw.o md5.o hmac_md5.o libvpopmail.a -lcrypt
libvpopmail.a(vpopmail.o)(.text+0x791): In function 'vdeldomain':
/usr/src/vpopmail-5.4.9/vpopmail.c:379: undefined reference to 'vdel_limits'
libvpopmail.a(vpopmail.o)(.text+0xa55): In function 'vadduser':
/usr/src/vpopmail-5.4.9/vpopmail.c:479: undefined reference to 'vget_limits'
libvpopmail.a(vlimits.o)(.text+0x917): In function 'vlimits_setflags':
/usr/src/vpopmail-5.4.9/vlimits.c:377: undefined reference to 'vget_limits'
libvpopmail.a(maildirquota.o)(.text+0xa1): In function 'domain_over_maildirquota':
/usr/src/vpopmail-5.4.9/maildirquota.c:94: undefined reference to 'vget_limits'
collect2: ld returned 1 exit status
>Courier-imap-4.0.0.tar.bz2 почему то не ставиться не срабатывает команда make. Система Fedora 3
Читай экран. Там тебе явно написано что надо под Fedora сделать rpm пакет...
Тоже была такая проблема, решается очень просто. Значит забиваем на все apt-get install под фрёй, там где указывается libdir мускула в конфигуре - вырезаем, если будет ругаться что не видит - вставляем обратно и прописываем пути к библиотекам мускула (/usr/lib/mysql /usr/local/lib/mysql ... или что там у вас)
Очень, хорошая статейка... Ставил все вышеуказанное на FreeBSD 5.2
Были проблемки со сборками некоторых програм (autorespond, courier-imap, authlib) пришлось собирать из портов и конфигурировать кое чего ручками.
Relay делал с использованием mysql. И у меня был следующий глюк, когда SquirrelMail обращался к POP3, в таблицу Relay добавлялась запись в которой поле ip_addr было пустым, и соответсвенно, через мой сервер могли пересылать письма все кому не лень.. Так и не понял от чего это и просто подправил код TCPSerever'а, в файле db.c, в запрос из таблицы relay добавил условие where ip_addr <> ''; Пересобрал TCPServer и все заработало как надо...
Спасибо большое за то, что потратили время на написание этой статьи..
Все поставил, настроил, но когда я завожу пользователей через qmailadmin, то squirrelmail потом не дает заходить под этим пользователем. В чем может быть проблема?
Доброго времени суток!
Очень хорошая статейка! Огромное спасибо!
Но на SUSE 9.3 до установки vpopmail-5.4.9.tar.gz
при выполнении команды "make" перед "make install-strip" появляются две ошибки следующего содержания:
make[2]: *** [vchkpw] Error 1
make[2]: Leaving directory '/root/vpopmail-5.4.9'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/root/vpopmail-5.4.9'
make: *** [all] Error 2
Помогите пожалуйста!!!!!!!!!!!!
Заранее спасибо