Qmail IMAP over SSLQmail over SSLQmailAdminSMTP over SSLVpopmail

Qmail over SSL でメール通信を暗号化する〜第 3 篇:Vpopmail QmailAdmin 設置〜|CentOS 7

qmail-setup-vpopmail Qmail
スポンサーリンク

「Qmail over SSL でメール通信を暗号化する」 は6編に分けてあります。他の記事は ▼ をご参照ください。

Vpopmail-5.4.33 の設置

CentOS7 で運用中の Qmail1.03 の設置及び設定方法をメモっておきます。主な特徴は、smtpsimaps を利用して メール通信の暗号化 を実現、Vpopmail w/ QmailAdmin 構成で無限の マルチドメインのメールサーバ に、ezmlm との連動で 大量メール の発射台化dnscache でさらに 高速化 が実現します。

Vpopmail を再設置する場合、QmailAdmin も再設置が必要です。

groupadd vchkpw
useradd -g vchkpw -s /sbin/nologin -M vpopmail

mkdir /home/vpopmail
chown vpopmail:vchkpw /home/vpopmail

mkdir /home/vpopmail/etc
chown vpopmail:vchkpw /home/vpopmail/etc

cd /usr/local/src
wget https://sourceforge.net/projects/vpopmail/files/vpopmail-stable/5.4.33/vpopmail-5.4.33.tar.gz
tar xvzf vpopmail-5.4.33.tar.gz
cd vpopmail-5.4.33

# SMTP-AUTH で cram-md5 をサポートするためのパッチ
vi vchkpw.c

# 747 line 変更
hmac_md5( (unsigned char *) challenge, strlen(challenge), (unsigned char *) password, strlen(password), digest);
↓
hmac_md5( (unsigned char *) response, strlen(response), (unsigned char *) password, strlen(password), digest);

# 760 line 変更
return(strcmp(digascii,response));
↓
return(strcmp(digascii,challenge));

Vpopmail のコンパイル方法は、DB を使用するかによってオプションが若干異なります。どちらかを選択します。MySQL オプションを選択した場合、すでに MySQL がインストールされている必要があります。

# ——————————Not Use MySQL-----------------------------------
cd /usr/local/src/vpopmail-5.4.33
./configure \
--enable-roaming-users=y \
--enable-tcprules-prog=/usr/local/bin/tcprules \
--enable-qmail-ext=n \
--enable-relay-clear-minutes=15 \
--enable-ip-alias-domains=y \
--disable-rebuild-tcpserver-file \
--disable-clear-passwd \
--enable-logging=y


# ——————————Use MySQL-----------------------------------

cd /usr/local/src/vpopmail-5.4.33
./configure \
--enable-roaming-users=y \
--enable-tcprules-prog=/usr/local/bin/tcprules \
--enable-relay-clear-minutes=15 \
--enable-ip-alias-domains=y \
--enable-auth-module=mysql \
--enable-many-domains=n \
--enable-qmail-ext=n \       # Enable qmail email address extension support
--disable-clear-passwd \
--enable-sql-logging=y \
--enable-valias=y \
--enable-libdir=/usr/lib64/mysql \
--enable-logging=y

後で Mailing List も設定する予定なので、MySQL と連動して Vpopmail をインストールします。

make
make install-strip

MySQL のインストールは、別の記事 で説明します。
vpopmail-5.4.33 のインストールが完了したら、以下のように、現在の設定内容が表示されます。( 環境によって内容は異なる場合があります。)

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

vpopmail directory = /home/vpopmail
 domains directory = /home/vpopmail/domains
               uid = 1012
               gid = 1007
     roaming users = ON  --enable-roaming-users
    tcpserver file = /home/vpopmail/etc/tcp.smtp
    open_smtp file = /home/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 = ON  --enable-ip-alias-domains
   onchange script = OFF --disable-onchange-script (default)
     domain quotas = OFF --disable-domainquotas (default)
       auth module = mysql --enable-auth-module=mysql
 mysql replication = OFF --disable-mysql-replication (default)
       sql logging = ON  --enable-sql-logging
      mysql limits = OFF --disable-mysql-limits (default)
  SQL valias table = ON  --enable-valias
          auth inc = -I/usr/include/mysql
          auth lib = -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql  -lmysqlclient -lz -lm
  system passwords = OFF --disable-passwd (default)
        pop syslog = show successful and failed login attempts --enable-logging=y
      auth logging = ON  --enable-auth-logging (default)
one domain per SQL table     = --disable-many-domains
      spamassassin = OFF --disable-spamassassin (default)
          maildrop = OFF --disable-maildrop (default)

mail.example.com をデフォルトドメインに設定します。

echo "mail.example.com" > /home/vpopmail/etc/defaultdomain

Vpopmail – MySQL を連動設定

Vpopmail 専用の DB を作成します。

mysql -uroot -p

CREATE DATABASE vpopmail;   # << vpopmail は DB 名(任意)
CREATE USER vpopadmin@localhost IDENTIFIED BY ‘vpopadmin-passwd';
GRANT ALL ON vpopmail.* TO vpopadmin@localhost;

\q

Vpopmail の MySQL 設定ファイルを編集します。

vi /home/vpopmail/etc/vpopmail.mysql

# host|port|user|password|database     #  << ここを参考にして、
localhost|0|vpopadmin|vpopadmin-passwd|vpopmail   #   << 先ほど MySQLで作成した DBとアカウント情報を入力

chown vpopmail.vchkpw ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql

tcpserver の Rule を作成

tcpserver は選択的に TCP コネクションが許容可能かどうかを決めるために規則(ルール)を参照するので、この規則ファイル ( tcp.smtp.cdb ) を下記のように作成します。

vi /home/vpopmail/etc/tcp.smtp

127.:allow,RELAYCLIENT=""           #  << ローカルネットワークのみ動作する。
123.123.123.:allow,RELAYCLIENT=""   #  << 実際のネットワーク帯域を指定。

# tcp.smtp.cdb ファイルを作成します。
tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp

Vpopmail – 仮想ドメイン / ユーザ作成

admin@example.com というメールアカウントを作成します。( admin は任意 )

example.com ドメインと admin ユーザを作成します。

QmailAdmin を設置するとドメイン以外の作業をウェブで行えます。

/home/vpopmail/bin/vadddomain example.com
/home/vpopmail/bin/vadduser admin@example.com

作成した仮想ドメイン example.com の基本設定を変更

vi /home/vpopmail/domains/example.com/.qmail-default

| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox
↓
| /home/vpopmail/bin/vdelivermail '' delete

新規ユーザに適用される基本 QUATA を設定(任意)

有効にすると、全てのドメインに Global 適用されます。

vi /home/vpopmail/etc/vlimits.default

# default quota for newly created users (in bytes)
# example shows a user with a 10MB quota and a limit of 1000 messages
#default_quota          10485760     # << 容量を決めて行頭のコメント(#)を削除(10MB)
#default_maxmsgcount    1000         # << 行頭のコメント(#)を削除(1000メッセージ)

エイリアス ( Alias ) を追加

mailer-daemon, postmaster, root などの メールエイリアスadmin に設定します。(QmailAdminでも設定可能)

[root@centos7 ~]# /home/vpopmail/bin/valias -i admin mailer-daemon@example.com
[root@centos7 ~]# /home/vpopmail/bin/valias -i admin postmaster@example.com
[root@centos7 ~]# /home/vpopmail/bin/valias -i admin root@example.com

qmailadmin-1.2.16 を設置

Vpopmail のウェブインターフェースである QmailAdmin を設置します。
設置前に httpdデーモン を実行しておいてください。

[root@centos7 ~]# /usr/local/apache2/bin/httpd -v
Server version: Apache/2.4.39 (Unix)
Server built:   May 26 2019 16:03:35

[root@centos7 ~]# systemctl status httpd2
● httpd2.service - The Apache HTTP/2 Server
   Loaded: loaded (/etc/systemd/system/httpd2.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-05-26 23:38:45 JST; 1 day 21h ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 8682 ExecStop=/usr/local/apache2/bin/apachectl stop (code=exited, status=0/SUCCESS)
  Process: 26787 ExecReload=/usr/local/apache2/bin/apachectl graceful (code=exited, status=0/SUCCESS)
  Process: 8691 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 8699 (httpd)
   CGroup: /system.slice/httpd2.service
           ├─ 8699 /usr/local/apache2/bin/httpd -k start
           ├─26801 /usr/local/apache2/bin/httpd -k start
           ├─26802 /usr/local/apache2/bin/httpd -k start
           ├─26803 /usr/local/apache2/bin/httpd -k start
           ├─26804 /usr/local/apache2/bin/httpd -k start
           └─27067 /usr/local/apache2/bin/httpd -k start

May 26 23:38:45 centos7 systemd[1]: Starting The Apache HTTP/2 Server...

QmailAdmin がブラウザで正しく動作しない場合、–enable-cgid を追加して再コンパイルして見てください。
なお、ウェブサーバは cgid_module がインストールされており、httpd.conf ファイルで有効にしておく必要があります。
例:LoadModule cgid_module modules/mod_cgid.so

cd /usr/local/src
wget https://sourceforge.net/projects/qmailadmin/files/latest/download/qmailadmin-1.2.16.tar.gz
tar xzvf qmailadmin-1.2.16.tar.gz
cd qmailadmin-1.2.16

./configure --enable-domain-autofill --enable-help

#---- apache2の場合のみ ----#
./configure \
--enable-htmldir=/usr/local/apache2/htdocs \
--enable-cgibindir=/usr/local/apache2/cgi-bin \
--enable-domain-autofill \
--enable-help
#---- apache2の場合のみ ----#

make
make install-strip

qmailadmin-help-1.0.8 を設置

設置すると,
QmailAdmin のログインウィンドウの右下に「ユーザーガイド」「管理者ガイド」「ヘルプインデックス」リンクが追加されます。

cd /usr/local/src
wget https://sourceforge.net/projects/qmailadmin/files/qmailadmin-help/1.0.8/qmailadmin-help-1.0.8.tar.gz
tar xzvf qmailadmin-help-1.0.8.tar.gz
cd qmailadmin-help-1.0.8

mkdir /var/www/html/images/qmailadmin/help
cp -rp * /var/www/html/images/qmailadmin/help

#---- apache2の場合のみ ----#
mkdir /usr/local/apache2/htdocs/images/qmailadmin/help
cp -rp * /usr/local/apache2/htdocs/images/qmailadmin/help
#---- apache2の場合のみ ----#

Postmaster のみアクセスが可能なので、事前にパスワードを生成した後に接続します。

# postmaster 作成
/home/vpopmail/bin/vadduser postmaster@example.com

# ユーザパスワード変更
/home/vpopmail/bin/vchangepw

ブラウザで確認します。

http://example.com/cgi-bin/qmailadmin
http://example.com/images/qmailadmin/help

問題がなければ、次のようなログインウィンドウが表示されます。

QmailAdmin
▲ QmailAdmin : Login

参考文献

QmailAdmin

スポンサーリンク

コメント

タイトルとURLをコピーしました