メール, Linux

qmail + vpopmail + qmailadmin + CentOS6.9

 

環境

  • CentOS6.9

 

必要なユーザの作成

su -
groupadd nofiles
groupadd qmail
useradd -g nofiles -s /sbin/nologin -u 490 alias -m -d /var/qmail/alias -k /dev/null
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 491 -M qmaild
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 492 -M qmaill
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 493 -M qmailp
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 494 -M qmailq
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 495 -M qmailr
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 496 -M qmails

 

ソースファイルの取得

# cd /usr/local/src
# wget https://www.yuulinux.tokyo/httpdocs/delivery/qmailSet.zip
# unzip qmailSet.zip

------------------------------------------------------------------------------
wget http://tomclegg.net/qmail/qmail-1.03.tar.gz
wget http://tomclegg.net/qmail/qmail-smtpd-auth-0.31.tar.gz
wget http://www.itheart.com/phpgw/qmail-date-localtime.patch
wget http://tomclegg.net/qmail/qmail-remote-auth.patch
wget http://www.qmail.org/qmail-smtpd-relay-reject
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://www.qmail.org/rpms/patches/ucspi-tcp-0.88.errno.patch
wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
wget http://ezmlm.sericyb.com.au/archive/5.1.2/ezmlm-idx-5.1.2.tar.gz
wget http://notes.sagredo.eu/files/qmail/tar/autorespond-2.0.5.tar.gz

https://sourceforge.net/projects/vpopmail/postdownload
# mv vpopmail-5.4.33.tar.gz /usr/local/src/
------------------------------------------------------------------------------

 

tcpserverのインストール

# tar zxvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# patch < /usr/local/src/ucspi-tcp-0.88.errno.patch
# make && make setup check


./load instcheck hier.o auto_home.o unix.a byte.a
./install
./instcheck

 

qmailのインストール

mkdir /var/qmail/
cd /var/qmail
tar zxvf /usr/local/src/qmail-1.03.tar.gz
tar zxvf /usr/local/src/qmail-smtpd-auth-0.31.tar.gz

# mv qmail-smtpd-auth-0.31/* qmail-1.03/
mv: overwrite `qmail-1.03/CHANGES'? ye
yum install patch gcc
cd qmail-1.03
patch -p1 < /usr/local/src/qmail-date-localtime.patch
patch < auth.patch
patch < /usr/local/src/qmail-smtpd-relay-reject
patch < /usr/local/src/qmail-1.03.errno.patch
make setup check

 

# hostname example.net

# hostname
example.net

 

設定

# ./config-fast `hostname`

 

vpopメールのインストール

cd /usr/local/src/
tar zxvf /usr/local/src/vpopmail-5.4.33.tar.gz
cd vpopmail-*
groupadd vchkpw
useradd -g vchkpw -s /sbin/nologin -d /var/qmail/vpopmail -M vpopmail
chown vpopmail:vchkpw /var/qmail/vpopmail/
./configure --enable-loggin=y --enable-roaming-users=y --enable-relay-clear-minutes=10 --enable-tcpserver-file=/var/qmail/vpopmail/etc/tcp.smtp  --enable-clear-passwd=n



           vpopmail 5.4.33
            Current settings
---------------------------------------

vpopmail directory = /var/qmail/vpopmail
 domains directory = /var/qmail/vpopmail/domains
               uid = 500
               gid = 502
     roaming users = ON  --enable-roaming-users
    tcpserver file = /var/qmail/vpopmail/etc/tcp.smtp
    open_smtp file = /var/qmail/vpopmail/etc/open-smtp
rebuild tcpserver file = ON  --enable-rebuild-tcpserver-file (default)
 password learning = OFF --disable-learn-passwords (default)
     md5 passwords = ON  --enable-md5-passwords (default)
      file locking = ON  --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
     make seekable = ON  --enable-make-seekable (default)
      clear passwd = OFF --disable-clear-passwd
 user dir hashing  = ON  --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
          ip alias = OFF --disable-ip-alias-domains (default)
   onchange script = OFF --disable-onchange-script (default)
     domain quotas = OFF --disable-domainquotas (default)
       auth module = cdb --enable-auth-module=cdb (default)
          auth inc = -Icdb
          auth lib =
  system passwords = OFF --disable-passwd (default)
        pop syslog = show only failed attempts --enable-logging=e (default)
      auth logging = ON  --enable-auth-logging (default)
      spamassassin = OFF --disable-spamassassin (default)
          maildrop = OFF --disable-maildrop (default)
make install-strip

chown root:root /var/qmail/vpopmail/bin/vchkpw
chmod 4755 /var/qmail/vpopmail/bin/vchkpw
useradd -s /sbin/nologin vpopmail
groupadd vpopmail
chown -R vpopmail:vpopmail /var/qmail/vpopmail/etc/
mkdir /var/qmail/vpopmail
chmod 755 /var/qmail/vpopmail
mkdir -p /var/qmail/vpopmail/etc

 

リレーの設定

# vi /var/qmail/vpopmail/etc/tcp.smtp


127.:allow,RELAYCLIENT=""
:allow

繁栄

# tcprules /var/qmail/vpopmail/etc/tcp.smtp.cdb /var/qmail/vpopmail/etc/tcp.smtp.tmp < /var/qmail/vpopmail/etc/tcp.smtp

 

メールアドレスの設定

ドメインの作成

# /var/qmail/vpopmail/bin/vadddomain example.net

Please enter password for postmaster:
enter password again:

ユーザの作成

# /var/qmail/vpopmail/bin/vadduser yuu@example.net

 

qmailの起動スクリプト設定

Postfixの停止と無効化

# /etc/rc.d/init.d/postfix status
# /etc/rc.d/init.d/postfix stop
# chkconfig postfix off

 

qmail起動スクリプト作成

# vi /etc/init.d/qmail


#!/bin/bash
#
# qmail
#
# chkconfig: 2345 80 30
# description: qmail start/stop script

# Source function library.
. /etc/rc.d/init.d/functions
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
start() {

# Start daemons.
if [ -z $(/sbin/pidof qmail-send) ]; then
echo -n "Starting qmail"

# qmail
csh -cf '/var/qmail/rc &' 2>&1 > /dev/null

# SMTP(21)
tcpserver -qv -l0 -HR -u id -u qmaild -g id -g qmaild -x /var/qmail/vpopmail/etc/tcp.smtp.cdb 0 smtp fixcrio qmail-smtpd hostname /bin/true 2>&1| splogger smtp &

# SMTP(587)
tcpserver -qv -l0 -HR -u id -u qmaild -g id -g qmaild -x /var/qmail/vpopmail/etc/tcp.smtp.cdb 0 587 fixcrio qmail-smtpd hostname /bin/true 2>&1|splogger smtp &

# POP3
tcpserver -H -R -l $HOSTNAME -v 0 pop3 /var/qmail/bin/qmail-popup $HOSTNAME /var/qmail/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3 &
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/qmail
return $RETVAL
else
echo "qmail is already started"
fi
}
stop() {

# Stop daemons.
if [ ! -z $(/sbin/pidof qmail-send) ]; then
echo -n "Shutting down qmail"
/bin/kill $(/sbin/pidof tcpserver)
/bin/kill $(/sbin/pidof qmail-send)
until [ -z $(/sbin/pidof qmail-send) ] && [ -z $(/sbin/pidof tcpserver) ]; do :; done
echo
rm -f /var/lock/subsys/qmail
else
echo "qmail is not running"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
if [ ! -z $(/sbin/pidof qmail-send) ] ; then
echo -n "qmail (pid"
echo -n " /sbin/pidof qmail-send"
echo -n " /sbin/pidof tcpserver"
echo ") is running..."
else
echo "qmail is stopped"
fi
;;
*)
echo "Usage: qmail {start|stop|restart|status}"
exit 1
esac
exit 0

 

# chmod +x /etc/init.d/qmail
# cp /var/qmail/boot/home /var/qmail/rc
# sed -i 's/Mailbox/Maildir\//g' /var/qmail/rc
# chmod o+w /var/qmail/rc

 

起動開始

 

# /etc/rc.d/init.d/qmail start
Starting qmail

 

ここでメールクライアントからメールを送信します。

確認

# ls -laht /var/qmail/vpopmail/domains/example.net/yuu/Maildir/new/

total 12K
drwx------ 2 vpopmail vchkpw 4.0K Nov  8 13:19 .
-rw------- 1 vpopmail vchkpw 1.4K Nov  8 13:19 1541650784.8395.example.net,S=1407
drwx------ 5 vpopmail vchkpw 4.0K Nov  8 13:17 ..

メールが届いています。

 

不正中継チェックを行いましょう

 

qmailadmin

yum install nkf
cd /usr/local/src/
wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
wget http://ezmlm.sericyb.com.au/archive/5.1.2/ezmlm-idx-5.1.2.tar.gz

 

tar zxvf ezmlm-0.53.tar.gz
tar zxvf ezmlm-idx-5.1.2.tar.gz
mv -f /usr/local/src/ezmlm-idx-5.1.2/* /usr/local/src/ezmlm-0.53/
cd ezmlm-0.53
patch < idx.patch
make && make setup

 

wget http://notes.sagredo.eu/files/qmail/tar/autorespond-2.0.5.tar.gz
tar xzf autorespond-2.0.5.tar.gz
cd /usr/local/src/autorespond-*

 

# vi /usr/local/src/autorespond-2.0.5/autorespond.c


        fprintf(fdm,"Date: %u %s %u %02u:%02u:%02u -0000\nMessage-ID: <%lu.%u.blah>\n"
                ,dt->tm_mday,montab[dt->tm_mon],dt->tm_year+1900,dt->tm_hour,dt->tm_min,dt->tm_sec,msgwhen,getpid() );

        mfp = fopen( msg, "rb" );

↓変更

        fprintf(fdm,"Date: %u %s %u %02u:%02u:%02u -0000\nMessage-ID: <%lu.%u.blah>\n"
                ,dt->tm_mday,montab[dt->tm_mon],dt->tm_year+1900,dt->tm_hour,dt->tm_min,dt->tm_sec,msgwhen,getpid() );
        fprintf(fdm,"Content-Type: text/plain; charset=\"ISO-2022-JP\"\n" );
        mfp = fopen( msg, "rb" );

 

# gcc -Wall -o autorespond autorespond.c
# cp autorespond /var/qmail/bin/

 

 

mv qmailadmin-1.2.16.tar.gz /usr/local/src/
tar xvzf qmailadmin-1.2.16.tar.gz
cd qmailadmin-*
./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-cgipath=/cgi-bin/qmailadmin --enable-imagedir=/var/www/icons/qmailadmin --enable-imageurl=/icons/qmailadmin --enable-ezmlmdir=n

make && make install-strip

 

# vi /etc/httpd/conf.d/qmailadmin.conf

<VirtualHost *:80>
    ServerName example.net
    DocumentRoot /var/www/html
</VirtualHost

 

# vi /etc/httpd/conf/httpd.conf


<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

↓
<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    #AllowOverride None
    AllowOverride AuthConfig Limit
    Order allow,deny
    Allow from all
</Directory>

 

# httpd -t
# service httpd restart

 

http://ドメイン名/cgi-bin/qmailadmin

 

  • ユーザアカウント
    postmaster
  • ドメイン
    example.net
  • パスワード
    パスワードを入力

 

 

 

qmail設定ファイル

 

# ls -laht /var/qmail/control


total 28K
drwxr-xr-x 13 root qmail 4.0K Nov  8 13:18 ..
drwxr-xr-x  2 root qmail 4.0K Nov  8 13:16 .
-rw-r--r--  1 root root     0 Nov  8 13:16 locals
-rw-r--r--  1 root root    28 Nov  8 13:16 virtualdomains
-rw-r--r--  1 root root    14 Nov  8 13:16 rcpthosts
-rw-------  1 root root     0 Nov  8 13:15 locals.lock
-rw-------  1 root root     0 Nov  8 13:15 rcpthosts.lock
-rw-------  1 root root     0 Nov  8 13:15 virtualdomains.lock
-rw-r--r--  1 root root    14 Nov  8 11:24 plusdomain
-rw-r--r--  1 root root    14 Nov  8 11:24 defaultdomain
-rw-r--r--  1 root root    14 Nov  8 11:24 me

 

 

ファイル 初期値 役割 記述例
locals me qmailが受信するメールホスト名、ドメイン名
me *必須 me qmailが稼働するホストのFQDN exaple.net
virtualdomains none example.net:example.net
rcpthosts *必須 none qmailが受信するメールホスト名、ドメイン名 exaple.net
plusdomain me 追加ドメイン名 yuutest.space
defaultdomain * me メールの送信先に(TO:)がない時に補完するドメイン名 yuutest.space

他にも追加出来るファイルは20種類ぐらいあるので、マニュアルを見て要件に合わせて追加していく。

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)