Ключевые слова:qmail, install, mail, virtual, (найти похожие документы)
From: MDMA <mdma at mcgate.net>
Newsgroups: email
Date: Mon, 28 Jun 2004 14:31:37 +0000 (UTC)
Subject: Автоматизация установки qmail + vpopmail + патчи
qmail-1.03 & ucspi-tcp-0.88 & vpopmail-5.4.0 + all needed patches
-------------------
Посвящается людям, кого совершенно не прильщает часами сидеть и ковыряться
в чужих плодах творчества, браузить сеть в поисках информации, патчей
для текущих версий программного обеспечения.
В поледний раз, когда мне нужно было переносить почтовыю систему с сервера
из-за переезда с канала на канал я потратил больше чем пол суток, после
чего все опять заработало как надо (при том, что я уже ставил подобную
связку месяц назад) ... и решил дай ка напишу .sh скрипт для полной
инсталляции виртуальной почтовой системы с применением всех патчей.
Врядли найдете аналоги, но могу точно гарантировать, что это вполне рабочий
вариант =)
Данная связка представляет собой следующее:
qmail-1.03 включает патчи:
- qmail-badmailunk.patch
- qmail-1.03.errno.patch
- qmail-badmailunk.patch
- qmail-date-localtime.patch
- qmail-maildir++.patch
- qmail-outgoingip.patch
- qmail-smtpd-auth-0.31.tar
ucspi-tcp-0.88 включает патчи:
- ucspi-tcp-0.88-mysql.patch
- ucspi-tcp-0.88.errno.patch
vpopmail-5.4.0
В итоге у нас получается следующее:
qmail c + vpopmail + виртуальная почтовая система с базой данных в mysql
и авторизацией пользоватей для отсылки сообщений через smtp посредством
пропатченного ucspi-tcp, открывающего romaing доступ пользователю,
авторизовавшемуся по схеме "POP прежде SMTP" ...
Написана для RedHat систем ... точно будет работать на RH 7.3/ RH 9.0
Перед инсталляцией читать: qmail.install.readme
Для инсталляции прочитать, изменить под себя и запустить:
qmail.install.sh
Слить все это добро в одном флаконе можно отсюда:
http://www.dnsmap.org/qmail-mysql-vpopmail.mdma.tar.gz
Соображения на е-mail: mdma at mcgate.net
#!/bin/bash
#
# After installation you got the following working scheme:
# QMail-1.03 & UcSpi-Tcp-0.88 & VpopMail-5.4.0 + All Needed Patches
#
# Before installation it's needed to do the following steps:
# 1. To install mysql database software greater than v.3.22
# 2. To make sure that current installation is running only once
# 3. To run current installation as "root"
# 4. To crate the mysql database "vpopmail" manually
# 5. To create table "relay" using the following sturcture:
# CREATE TABLE relay (
# ip_addr char(40) NOT NULL default '',
# timestamp char(12) default NULL,
# PRIMARY KEY (ip_addr)
# ) TYPE=MyISAM;
# 6. To create mysql user, same as in configuration settings
# with this all privileges over the database "vpopmail"
# 7. To change the following settings:
#
# Your default domain name
domainname=ymenyadomena.net
#
# Your default administrator's mailbox name at domain
adminmailbox=daddy
#
# Your qmail outgoing ip address
qmailoutgoingip=127.0.0.1
#
# Your mysql user to access mysql database "vpopmail"
myvpopuser=vpopmail
#
# Your user's password to access mysql database "vpopmail"
myvpoppass=userpass
#
# Your mysql "lib" directory installation path
mysqllibdir=/etc/soft/mysql/lib/mysql
#
# Your mysql "include" directory installation path
mysqlincdir=/etc/soft/mysql/include/mysql
#
# The below lines are only for professional's modification, let's start ...
#
echo "removing old distributions ..."
#
rm -fr ucspi-tcp-0.88 qmail-1.03 vpopmail-5.4.0
#
echo "patching and installing ucspi-tcp-0.88 ..."
#
cp $mysqlincdir/* /usr/includes
cp $mysqllibdir/* /usr/lib
tar -xf ucspi-tcp-0.88.tar
cd ucspi-tcp-0.88
patch -p0 < ../ucspi-tcp-0.88-mysql.patch
patch -p1 < ../ucspi-tcp-0.88.errno.patch
echo "/usr" > conf-home
echo "" >> conf-home
echo "This is the ucspi-tcp home directory. Programs will be installed in" >> conf-home
echo ".../bin." >> conf-home
make
make setup check
cd ..
#
echo "patching and installing qmail-1.03 ..."
#
groupadd -g 81 nofiles
useradd -c "Mail Server" -d /var/qmail -g nofiles -s /bin/false -u 81 qmaild
useradd -c "Mail Server" -d /var/qmail -g nofiles -s /bin/false -u 82 alias
useradd -c "Mail Server" -d /var/qmail -g nofiles -s /bin/false -u 86 qmaill
useradd -c "Mail Server" -d /var/qmail -g nofiles -s /bin/false -u 87 qmailp
groupadd -g 82 qmail
useradd -c "Mail Server" -d /var/qmail -g qmail -s /bin/false -u 83 qmailq
useradd -c "Mail Server" -d /var/qmail -g qmail -s /bin/false -u 84 qmailr
useradd -c "Mail Server" -d /var/qmail -g qmail -s /bin/false -u 85 qmails
echo "/bin/false" >> /etc/shells
tar -xf qmail-1.03.tar
tar -xf qmail-smtpd-auth-0.31.tar
mv qmail-smtpd-auth-0.31/auth.patch qmail-1.03/
mv qmail-smtpd-auth-0.31/base64.c qmail-1.03/
mv qmail-smtpd-auth-0.31/base64.h qmail-1.03/
mv qmail-smtpd-auth-0.31/README.auth qmail-1.03/
rm -fr qmail-smtpd-auth-0.31/
cd qmail-1.03/
patch -p0 < auth.patch
patch -p1 < ../qmail-date-localtime.patch
patch -p1 < ../qmail-badmailunk.patch
patch -p1 < ../qmail-maildir++.patch
patch -p0 < ../qmail-outgoingip.patch
patch -p1 < ../qmail-1.03.errno.patch
mkdir /var/qmail
chown root.qmail /var/qmail
mkdir -p /etc/mail/alias
mkdir -p /etc/mail/control
mkdir -p /etc/mail/users
ln -fs /etc/mail/alias /var/qmail
ln -fs /etc/mail/control /var/qmail
ln -fs /etc/mail/users /var/qmail
ln -fs /usr/bin /var/qmail/bin
ln -fs /usr/man /var/qmail/man
make
make setup check
cd ..
cp qmail.executable /etc/init.d/qmail
chmod 755 /etc/init.d/qmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
echo "" > /var/qmail/control/badmailfrom-unknown
echo "$domainname" > /var/qmail/control/defaultdomain
echo "$domainname" > /var/qmail/control/defaulthost
echo "localhost" > /var/qmail/control/locals
echo "$domainname" > /var/qmail/control/me
echo "$qmailoutgoingip" > /var/qmail/control/outgoingip
echo "$domainname" > /var/qmail/control/plusdomain
echo "localhost" > /var/qmail/control/rcpthosts
echo "$domainname" >> /var/qmail/control/rcpthosts
echo "server localhost" > /var/qmail/control/sql
echo "port 3306" >> /var/qmail/control/sql
echo "database vpopmail" >> /var/qmail/control/sql
echo "table relay" >> /var/qmail/control/sql
echo "user $myvpopuser" >> /var/qmail/control/sql
echo "pass $myvpoppass" >> /var/qmail/control/sql
echo "time 1800" >> /var/qmail/control/sql
echo "$domainname" > /var/qmail/control/virtualdomains
chmod 644 /var/qmail/control/*
echo "./Maildir/" > /etc/mail/dot-qmail
chmod 511 /etc/mail/dot-qmail
chown root.root /etc/mail/dot-qmail
#
echo "configuring and installing vpopmail-5.4.0 ..."
#
groupadd -g 83 vchkpw
useradd -c "VMail Server" -g 83 -s /bin/false -u 88 vpopmail
mkdir -p /home/vpopmail
chown 88.83 /home/vpopmail
tar -xf vpopmail-5.4.0.tar
cd vpopmail-5.4.0
mkdir /home/vpopmail/etc
chmod 775 /home/vpopmail/etc
chown vpopmail:vchkpw /home/vpopmail/etc
echo "" > /home/vpopmail/etc/open-smtp
chmod 664 /home/vpopmail/etc/open-smtp
echo "127.:allow,RELAYCLIENT=\"\"" > /home/vpopmail/etc/tcp.smtp
chmod 664 /home/vpopmail/etc/tcp.smtp
echo "localhost|0|$myvpopuser|$myvpoppass|vpopmail" > /home/vpopmail/etc/vpopmail.mysql
chmod 640 /home/vpopmail/etc/vpopmail.mysql
chown vpopmail:vchkpw /home/vpopmail/etc/*
./configure --enable-roaming-users --enable-logging=e --disable-ip-alias-domains --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-many-domains --enable-auth-logging --enable-mysql-logging --enable-valias --disable-mysql-limits --enable-incdir=$mysqlincdir --enable-libdir=$mysqllibdir
make
make install-strip
cd ..
/home/vpopmail/bin/vadddomain $domainname
/home/vpopmail/bin/vadduser $adminmailbox@$domainname
/home/vpopmail/bin/vdeluser postmaster@$domainname
/home/vpopmail/bin/valias -i $adminmailbox@$domainname postmaster@$domainname
/home/vpopmail/bin/valias -i $adminmailbox@$domainname mailer-daemon@$domainname
/home/vpopmail/bin/valias -i $adminmailbox@$domainname root@$domainname
echo "From: Postmaster <postmaster@$domainname>" > /home/vpopmail/domains/.quotawarn.msg
echo "Reply-To: postmaster@$domainname" >> /home/vpopmail/domains/.quotawarn.msg
echo "To: User:;" >> /home/vpopmail/domains/.quotawarn.msg
echo " Subject: Mail quota exceeding" >> /home/vpopmail/domains/.quotawarn.msg
echo " MIME-Version: 1.0" >> /home/vpopmail/domains/.quotawarn.msg
echo " Content-Type: text/plain; charset=koi8-r" >> /home/vpopmail/domains/.quotawarn.msg
echo " Content-Transfer-Encoding: 8bit" >> /home/vpopmail/domains/.quotawarn.msg
echo "" >> /home/vpopmail/domains/.quotawarn.msg
echo " Dear User," >> /home/vpopmail/domains/.quotawarn.msg
echo "" >> /home/vpopmail/domains/.quotawarn.msg
echo " The size of your mailbox has exceeded a warning threshold," >> /home/vpopmail/domains/.quotawarn.msg
echo " that is set by the system administrator." >> /home/vpopmail/domains/.quotawarn.msg
echo "" >> /home/vpopmail/domains/.quotawarn.msg
echo " Please contact our IT Department" >> /home/vpopmail/domains/.quotawarn.msg
echo "" >> /home/vpopmail/domains/.quotawarn.msg
echo "Message rejected. Not enough storage space in user's mailbox to accept message." > /home/vpopmail/domains/.over-quota.msg
chown vpopmail.vchkpw /home/vpopmail/domains/.*msg
chmod 644 /home/vpopmail/domains/.*msg
#
echo "all done ... to start qmail now type \"/etc/init.d/qmail start\"" ...
#
# p.s. Really hope is was helpfull =) (c) 2004 MDMA <mdma@mcgate.net>, MDMA CORP.
#
Вообще аналоги есть :)
Я полгода назад одну из них даже переделывал и дополнял некоторымии пакетами. Получилось: qmail + many_patches + vpopmail + sqwebmail + qmailadmin + ezmlm + courier-imap + autorespond. Забавная шткуковина получилась. Правда затачивал я ее на Slackware 9.1. Работоспособность на других системах не гарантированна. :)