Last active
December 18, 2015 10:29
-
-
Save pacojp/5768857 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# via http://www.pictnotes.jp/wp/?p=202 | |
# | |
# curl -o /tmp/install_qmail.sh https://gist.github.com/pacojp/5768857/raw | |
# /bin/bash /tmp/install_qmail.sh <HOSTNAME> | |
# | |
if [ "$(id -u)" != "0" ]; then | |
echo "This script must be run as root" 1>&2 | |
exit 1 | |
fi | |
if [ $# -ne 1 ]; then | |
echo "ホスト名を引数で指定して下さい ./install_qmail.sh <HOSTNAME>" 1>&2 | |
exit 1 | |
fi | |
HOSTNAME=$1 | |
yum remove -y postfix | |
yum install -y git autoconf openssl-devel readline-devel zlib-devel curl-devel procps gcc gcc-devel patch | |
yum install -y openssl-devel csh | |
# apacheの用意 | |
yum remove -y httpd httpd-tools | |
yum install -y httpd24 mod24_ssl | |
sed -i "s/\/etc\/pki\/tls\/private\/localhost\.key/\/etc\/httpd\/ssl\/server\.key/g" /etc/httpd/conf.d/ssl.conf | |
sed -i "s/\/etc\/pki\/tls\/certs\/localhost\.crt/\/etc\/httpd\/ssl\/server\.crt/g" /etc/httpd/conf.d/ssl.conf | |
# qmailのインストール | |
mkdir -p /usr/local/src/install_qmail | |
cd /usr/local/src/install_qmail | |
# アカウント作成 | |
groupadd nofiles | |
groupadd qmail | |
#groupadd vchkpw | |
mkdir /var/qmail | |
chgrp nofiles /var/qmail | |
adduser -g nofiles -s /sbin/nologin -d /var/qmail/alias -M alias | |
adduser -g nofiles -s /sbin/nologin -d /var/qmail -M qmaild | |
adduser -g nofiles -s /sbin/nologin -d /var/qmail -M qmaill | |
adduser -g nofiles -s /sbin/nologin -d /var/qmail -M qmailp | |
adduser -g qmail -s /sbin/nologin -d /var/qmail -M qmailq | |
adduser -g qmail -s /sbin/nologin -d /var/qmail -M qmailr | |
adduser -g qmail -s /sbin/nologin -d /var/qmail -M qmails | |
cd /usr/local/src | |
# qmail | |
curl -L -o qmail-1.03.tar.gz http://cr.yp.to/software/qmail-1.03.tar.gz | |
tar xvfz qmail-1.03.tar.gz | |
cd qmail-1.03 | |
curl -L -o qmail-1.03.errno.patch http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch | |
curl -L -o qmail-date-localtime.patch http://www.itheart.com/phpgw/qmail-date-localtime.patch | |
curl -L -o qmail-1.03.qmail_local.patch http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.qmail_local.patch | |
curl -L -o qmail-smtpd-relay-reject http://qmail.org/qmail-smtpd-relay-reject | |
curl -L -o qmail-0.0.0.0.patch http://www.suspectclass.com/~sgifford/qmail/qmail-0.0.0.0.patch | |
curl -L -o qmailqueue-patch http://qmail.org/qmailqueue-patch | |
curl -L -o qmail-smtpd-auth-0.31.tar.gz http://tomclegg.net/qmail/qmail-smtpd-auth-0.31.tar.gz | |
curl -L -o qmail-remote-auth.patch http://tomclegg.net/qmail/qmail-remote-auth.patch | |
tar xvfz qmail-smtpd-auth-0.31.tar.gz | |
/bin/cp -f qmail-smtpd-auth-0.31/* ./ | |
patch < qmail-1.03.errno.patch | |
patch < qmail-date-localtime.patch | |
patch < qmail-1.03.qmail_local.patch | |
patch < qmail-smtpd-relay-reject | |
patch < qmail-0.0.0.0.patch | |
patch < qmailqueue-patch | |
patch < auth.patch | |
patch < qmail-remote-auth.patch | |
make | |
make setup | |
make check | |
./config-fast ${HOSTNAME} | |
echo "export PATH=\$PATH:/var/qmail/bin" >> ~/.bash_profile | |
source ~/.bash_profile | |
which qmail-local | |
# tcp server | |
cd /usr/local/src | |
curl -L -o ucspi-tcp-0.88.tar.gz http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz | |
tar xvfz ucspi-tcp-0.88.tar.gz | |
cd ucspi-tcp-0.88 | |
curl -L -o ucspi-tcp-0.88.errno.patch http://www.qmail.org/rpms/patches/ucspi-tcp-0.88.errno.patch | |
curl -L -o ucspi-tcp-ssl-20050405.patch.gz http://www.nrg4u.com/qmail/ucspi-tcp-ssl-20050405.patch.gz | |
gunzip ucspi-tcp-ssl-20050405.patch.gz | |
# this patch proceed ucspi-tcp-0.88.errno.patch too. | |
patch < ucspi-tcp-ssl-20050405.patch | |
make | |
make setup | |
make check | |
echo '127.:allow,RELAYCLIENT=""' > /etc/tcp.smtp | |
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp | |
# fastforward | |
cd /usr/local/src | |
curl -L -o fastforward-0.51.tar.gz http://cr.yp.to/software/fastforward-0.51.tar.gz | |
tar xvfz fastforward-0.51.tar.gz | |
cd fastforward-0.51 | |
sed -i "s/extern int errno;/#include<errno\.h>/g" error.h | |
make | |
make setup | |
make check | |
# libev for vpopmail | |
cd /usr/local/src/ | |
curl -L -o libev-4.15.tar.gz http://dist.schmorp.de/libev/libev-4.15.tar.gz | |
tar xvzf libev-4.15.tar.gz | |
cd libev-4.15 | |
./configure && make && make install | |
# vpopmail | |
export LDFLAGS='-ldl' | |
cd /usr/local/src | |
curl -L -o vpopmail-5.4.28.tar.gz http://sourceforge.net/projects/vpopmail/files/vpopmail-stable/5.4.28/vpopmail-5.4.28.tar.gz/download | |
tar xvxf vpopmail-5.4.28.tar.gz | |
cd vpopmail-5.4.28 | |
groupadd vchkpw | |
useradd -g vchkpw -s /sbin/nologin -d /var/qmail/vpopmail -M vpopmail | |
mkdir /var/qmail/vpopmail | |
chown vpopmail:vchkpw /var/qmail/vpopmail/ | |
./configure --disable-clear-passwd --enable-logging=y --enable-qmail-ext=n --enable-roaming-users --enable-relay-clear-minutes=10 | |
make | |
make install-strip | |
# error!!! | |
# cd vusaged && ./configure && make | |
mv /etc/tcp.smtp* /var/qmail/vpopmail/etc | |
# autorespond | |
cd /usr/local/src | |
curl -L -o autorespond-2.0.5.tar.gz http://www.inter7.com/devel/autorespond-2.0.5.tar.gz | |
tar zxvf autorespond-2.0.5.tar.gz | |
cd autorespond-2.0.5 | |
make | |
make install | |
# qmailadmin | |
cd /usr/loca/src | |
#mkdir qmailadmin.${HOSTNAME} | |
#mkdir -p /var/www/vhosts/qmailadmin.${HOSTNAME}/html | |
curl -L -o qmailadmin-1.2.15.tar.gz http://sourceforge.net/projects/qmailadmin/files/qmailadmin-stable/1.2.15/qmailadmin-1.2.15.tar.gz/download | |
tar zxvf qmailadmin-1.2.15.tar.gz | |
cd qmailadmin-1.2.15 | |
./configure --enable-htmldir=/var/www/qmailadmin \ | |
--enable-vpopmaildir=/var/qmail/vpopmail \ | |
--enable-vpopuser=vpopmail \ | |
--enable-autoresponder-bin=/usr/bin/autorespond \ | |
--enable-imagedir=/var/www/qmailadmin/images \ | |
--enable-imageurl=/qmailadmin/images \ | |
--disable-ezmlmdir \ | |
--disable-ezmlm-mysql \ | |
--enable-help | |
make | |
make install | |
cat <<EOF > /etc/httpd/conf.d/qmailadmin.conf | |
Alias /qmailadmin /var/www/qmailadmin | |
<Directory "/var/www/cgi-bin"> | |
<Files "qmailadmin"> | |
order deny,allow | |
allow from all | |
</Files> | |
</Directory> | |
EOF | |
curl -L -o /etc/httpd/conf.d/rewrite.conf https://gist.github.com/pacojp/5775144/raw | |
# qmailadmin-help | |
cd /usr/local/src/ | |
curl -L -o qmailadmin-help-1.0.8.tar.gz http://www.inter7.com/devel/qmailadmin-help-1.0.8.tar.gz | |
tar xvfz qmailadmin-help-1.0.8.tar.gz | |
cd qmailadmin-help-1.0.8 | |
mkdir -p /var/www/qmailadmin/images/help | |
cp -rp * /var/www/qmailadmin/images/help | |
# qmail env setup | |
/etc/init.d/sendmail stop | |
chkconfig sendmail off | |
curl -L -o /etc/init.d/qmail https://gist.github.com/pacojp/5773189/raw | |
chmod 755 /etc/init.d/qmail | |
chkconfig --add qmail | |
cp /var/qmail/boot/home /var/qmail/rc | |
sed -i "s/\.\/Mailbox/\.\/Maildir/g" /var/qmail/rc | |
# smtp-auth problem | |
chown root:root /var/qmail/vpopmail/bin/vchkpw | |
chmod 4755 /var/qmail/vpopmail/bin/vchkpw | |
/etc/init.d/httpd start | |
cat <<EOF | |
- you shoud do last few steps by hand. | |
1. create files for ssl(execute each line). | |
mkdir -p /etc/httpd/ssl | |
cd /etc/httpd/ssl/ | |
openssl genrsa -aes128 1024 > server.key | |
openssl req -new -key server.key > server.csr | |
openssl x509 -in server.csr -days 365 -req -signkey server.key > server.crt | |
mv server.key server.key.back | |
openssl rsa -in server.key.back > server.key | |
2. create virtual domain for vpopmail and postmaster user. | |
/var/qmail/vpopmail/bin/vadddomain ${HOSTNAME} | |
3.add user for yor domain | |
/var/qmail/vpopmail/bin/vadduser user1@${HOSTNAME} | |
4. acccess qmailadmin and check if it works. | |
http://*********/cgi-bin/qmailadmin | |
5. open ports 25 110 587 | |
6. start qmail and httpd | |
/etc/init.d/qmail start | |
/etc/init.d/httpd start | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment