「Qmail over SSL でメール通信を暗号化する」 は6編に分けてあります。他の記事は ▼ をご参照ください。
Vpopmail-5.4.33 の設置
CentOS7 で運用中の Qmail1.03 の設置及び設定方法をメモっておきます。主な特徴は、smtps と imaps を利用して メール通信の暗号化 を実現、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/images/qmailadmin/help
問題がなければ、次のようなログインウィンドウが表示されます。
コメント