Mail

メール

SMTPサーバー、POPサーバーなど、メールサーバーに関する情報

 

SMTPメールサーバー

 

qmail

役立つ情報

 

  • Lifw with qmail

http://www.lifewithqmail.org/

 

 

 

  • sqmail install guide for Debian 9 (stretch)

System vorbereiten, sqmail mit Abhängigkeiten installieren

https://www.oliwel.de/basissystem-und-sqmail/

 

  • The updated qmailrocks.org qmail Installation guide for Debian 8 (Jessie)

http://qmailrocks.thibs.com/

Install Ezmlm-idx

https://qmailrocks.thibs.com/ezmlm-idx.php

 

  • qmailを使った学校内メールシステム事例

E-mail: The SUNY Potsdam Model: Scalable Open-Source Infrastructure

http://www.fritzhardy.com/projects/email/

 

  • qmailのインストール設定事例

series of “Nifty and Minimally Invasive qmail Tricks”

https://schmonz.com/2017/01/18/qmail-smtp-auth-tls-redux/

Amitai's qmail stuff

https://schmonz.com/qmail/

 

  • notqmailのインストール設定事例

What is notqmail?   https://github.com/notqmail/notqmail/wiki#what-are-the-projects-goals

notqmail 1.07  https://github.com/notqmail/notqmail/wiki/notqmail-1.07#how-to-install

binary install script, for exampl Debian, Ubuntu, CentOS others

https://software.opensuse.org//download.html?project=home%3Anotqmail&pac...

 

Debian でのバイナリーのAPTインストール手順

https://software.opensuse.org//download.html?project=home%3Anotqmail&pac...

 

 

  • qmailのインストール設定事例 qmail + vpopmail + Dovecot | Roberto's qmail notes

http://notes.sagredo.eu/

qmail + vpopmail + Dovecot   http://notes.sagredo.eu/node/8

 

  • eQmail

eQmail

https://blog.dyndn.es/doku.php/blog/2014/10/18_eqmail_1.08

 

  • CentOSにQmailをインストール

qmail(with smtp auth) + vpopmail + ezmlm-idx + dovecot + qmailadminなサーバ構築

https://jw7.org/2015/06/21/qmail/

 

  • qmail + vpopmail + qmailadmin インストール

http://www.ksknet.net/qmail/qmail_vpopmail.html

 

  • Installing ezmlm on Debian squeeze with existing qmail and vpopmail system

http://geroyblog.blogspot.jp/2013/04/installing-ezmlm-on-debian-squeeze-...

 

  • The updated qmailrocks.org qmail Installation guide for Debian 8 (Jessie)

http://qmailrocks.thibs.com/

 

日本語での情報

  • qmail によるメールサーバ構築(日本語)

http://www.ep.sci.hokudai.ac.jp/~epmail/y2011/dvlop/qmail.html

http://www.ep.sci.hokudai.ac.jp/~epmail/y2012/dvlop/qmail.html

http://www.ep.sci.hokudai.ac.jp/~epmail/y2013/

http://www.ep.sci.hokudai.ac.jp/~epmail/y2014/

http://www.ep.sci.hokudai.ac.jp/~epmail/y2014/dvlop/qmail.html

 

(Debian GNU/Linux 8.0 Jessie) netqmail + pop tcpserver + imap Devecot + smtp tcpserver + ezmlm

http://www.ep.sci.hokudai.ac.jp/~epmail/

http://www.ep.sci.hokudai.ac.jp/~epmail/y2017/dvlop/qmail.html

上記ページで説明と実際の修正内容(2021年7月に作業、環境:Debian10)

詳細は「netqmailインストールを参照https://gennai3.com/techinfo/oss/mail/qmail/netqmail

qmail のソースダウンロード: wget http://www.netqmail.org/netqmail-1.06.tar.gz

qmail SMTP relay rejectのソースダウンロード: wget http://vps-tora.com/src/qmail-smtpd-relay-reject

「OpenSSLの導入」

wget http://www.openssl.org/source/openssl-1.1.1j.tar.gz

swにコマンドオプションのーをつける  sudo make install -sw

 

 

(Debian GNU/Linux 8.0 Jessie) 

http://www.ep.sci.hokudai.ac.jp/~epmail/y2020/

 

  • 「実用qmailサーバ運用・管理術」

http://www.atmarkit.co.jp/flinux/index/indexfiles/qmailindex.html

 

  • Install and use qmqtool

Qmqtool is a utility designed for viewing and safely modifying the contents of a qmail queue.

http://qmailrocks.thibs.com/qmqtool.php

 

  • Free Email-related Packages Andrew Richards

http://free.acrconsulting.co.uk/email/index.html

 

  • openQmail

http://openqmail.org/doku.php

 

  • qmail のインストールと設定

https://itpass.scitec.kobe-u.ac.jp/hiki/hiki.cgi?%5BITPASS2018%5Dqmail+%...

 

  • qmail Add-on software

https://acrconsulting.co.uk/email/freesw.html

 

  • Qmail over SSLでメール通信を暗号化する(CentOS) 第 1 篇〜第 6 篇

https://www.jacepark.com/building-mail-servers-with-qmail-over-ssl-in-ce...

 

  • qmail + vpopmail + smtpauth + courier-imap インストール(福岡大学)

http://okkun-lab.fu-u.jp/wiki/?Tips/Linux/qmail/smtpauth

 

  • Qmail (netqmail) for CentOS 7. and vpopmail,tcpserver,daemontools

https://server-recipe.com/1194/

https://server-recipe.com/qmail/

 

ezmlm-idx

https://untroubled.org/ezmlm/

 

 

Postfix

Debian 11でのインストール手順は ここから

PostfixAdmin インストール手順 ここから

 

 

タグ: 

オープンソースソフトウェア: 

Postfix インストール手順

Postfixのインストール

 

インストール

環境: Debian 11.1.0 Postfix asl2-bin amd64 2.1.27+dfsg-2.1+deb11u1   postfix amd64 3.5.13-0+deb11u1

参照したサイト https://www.server-world.info/query?os=Debian_11&p=mail&f=1

バイナリーパッケージのインストール #apt -y install postfix sasl2-bin

Postfix Configuration はNo Configuration を選択

参考にしたサイト:

Build Email Server From Scratch on Debian – Basic Postfix Setup 

 

Tips
  • Postfixのパラメーター myorigin について

From: ドメイン名は、myhostname パラメータではなく、Postfix の myorigin パラメータ (別名システム メール名) によって決定されます。

 

  • TelnetでTCPポート25(outbound)がブロックされてるか確認

sudo apt install telnet

sudo apt install telnet
telnet gmail-smtp-in.l.google.com 25
(Type in quit and press Enter to close the connection)

 

  • Postfixで必要になる主なTCPポートは

sudo ufw allow 25,80,110,143,443,587,465,143,993,995/tcp

 

  • TCPポートスキャン

https://www.ipvoid.com/port-scan/

 

  • Postfix のバージョン確認(postconfコマンド)

$ sudo postconf | grep mail_version
mail_version = 3.5.13
milter_macro_v = $mail_name $mail_version

 

  • Postfixのデフォルトサイズの値確認(postconfコマンド)

$ sudo postconf | grep size_limit
body_checks_size_limit = 51200
bounce_size_limit = 50000
header_size_limit = 102400
mailbox_size_limit = 51200000
message_size_limit = 10240000

 

  • postfix[2199]: fatal: bad string length 0 < 1: html_directory = のエラー

main.cf で html_directory = no

 

  • dovecotでユーザ認証ができない場合

デフォルトがユーザーID500 以上です。/etc/dovecot/conf.d/10-mail.confにて確認しましょう。

# Valid UID range for users, defaults to 500 and above. 
# be done even if first_valid_uid is set to 0.
first_valid_uid = 600
#last_valid_uid = 0

dovecotのステータスの確認  sudo journalctl -eu dovecot

ログの確認 /var/log/mail.log

ログにも記録がない場合はdovecotのジャーナルを確認  sudo journalctl -eu dovecot

 

  • dovecotでメールボックスを使えるユーザ一覧表示

sudo doveadm user '*'

 

  • dovecotを自動的にリスタートさせる

新規にディレクトリを作成 sudo mkdir -p /etc/systemd/system/dovecot.service.d/

以下のリスタート設定ファイルを作成(dovecotが停止後5秒後に自動的にdovecotを再起動)

sudo nano /etc/systemd/system/dovecot.service.d/restart.conf
[Service]
Restart=always
RestartSec=5s

デーモンを再起動 sudo systemctl daemon-reload

動作検証 dovecotを強制停止 sudo pkill dovecot  その後ステータス確認 systemctl status dovecot

 

  • 電子メールとSMTPサーバーの設定を確認

email checker で確認します。 https://network-tools.com/email-tests/

 

  • Virtualドメインの設定

/etc/postfix/main.cf に以下の行を追加

virtual_alias_maps = hash:/etc/postfix/virtual

mydomain  mydestination に指定したドメインを virtual_alias_domains に含めない、メール配送先ユーザーアカウントが存在することが条件です。

/etc/postfix/virtual に以下の内容を記載
# Virtual Domains
hogehoge.jp     virtual
# Virtual alias
noreplay@hogehoge.jp      user1
webmaster@hogehoge.jp    user2

# postmap /etc/postfix/virtual

ハッシュ化された中身を見る場合は  # strings /etc/postfix/virtual.db

 

  • Apacheのデフォルトドメインを停止する(仮想ドメインを使う場合)

他の仮想ホストに干渉する可能性があるため、デフォルトの仮想ホストを無効にします。

sudo a2dissite 000-default.conf

 

  • CertbotコマンドでLetsencryptの証明書を取得(Apacheの場合)

$ sudo certbot certonly -a apache --agree-tos --no-eff-email --staple-ocsp --email 名前@gmail.com -d mail.ドメイン名.biz
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Account registered.
Requesting a certificate for mail.ドメイン名.biz
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mail.ドメイン名.biz/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mail.ドメイン名.biz/privkey.pem

  • CertbotコマンドでLetsencryptの証明書を取得(Nginxの場合)

$ sudo certbot certonly -a nginx --agree-tos --no-eff-email --staple-ocsp --email 名前@gmail.com -d mail.ドメイン名.biz
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Account registered.
Requesting a certificate for mail.ドメイン名.biz
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mail.ドメイン名.biz/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mail.ドメイン名.biz/privkey.pem

 

  • Certbotの証明書再発行を自動化

crontabに毎日certbot renew を実行し、postfixとdovecot を再起動、Apacheの場合

sudo crontab -e
@daily certbot renew --quiet && systemctl reload postfix dovecot apache2

Nginxの場合

sudo crontab -e
@daily certbot renew --quiet && systemctl reload postfix dovecot nginx

 

  • PostfixとDovecotで複数のドメインの証明書を設定

一つのTLS証明書で複数のドメインの証明書をまとめる場合

TLS証明書を取得 Apacheの場合

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.ドメイン1.com,mail.ドメイン2.com --cert-name mail.ドメイン1.com --email you@example.com

TLS証明書を取得 Nginxの場合

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d mail.ドメイン1.com,mail.ドメイン2.com --cert-name mail.ドメイン1.com --email you@example.com

Certbotで既存の証明書を更新して新しいドメインを含めるかどうかを尋ねられたら、U (Update)と答えて Enter キーを押します。

※ 上記のコマンドでは、最初のメール ドメイン1を使用して証明書名を指定したことに注意してください。これはファイル パスで使用されるため、Postfix または Dovecot 構成ファイルでファイル パスを変更する必要はありません。

sudo systemctl reload apache2
sudo systemctl reload nginx 
sudo systemctl reload postfix dovecot

 

各ドメインごとでTLS証明書を取得して設定する場合(複数のTLS証明書)

この設定はまだ動作未検証です!

次のコマンドを使用するだけで、2 番目のメール ドメイン用の別の TLS 証明書を取得できます。

Apacheの場合 sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.ドメイン2.com

Nginxの場合 sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d mail.ドメイン2.com

1. Postfixの設定(Postfixバージョン3.4以上)

sudo nano /etc/postfix/main.cf

最後に以下の行を追加

tls_server_sni_maps = hash:/etc/postfix/sni_maps

sudo nano /etc/postfix/sni_maps

mail.ドメイン1.com   /etc/letsencrypt/live/mail.ドメイン1.com/privkey.pem    /etc/letsencrypt/live/mail.ドメイン1.com/fullchain.pem
mail.ドメイン2.com   /etc/letsencrypt/live/mail.ドメイン2.com/privkey.pem     /etc/letsencrypt/live/mail.ドメイン2.com/fullchain.pem

※ 最初のドメインの証明書が /etc/postfix/main.cf ファイルで既に使用されている場合は、それを sni_maps ファイルに再度含める必要はありません。

sudo postmap -F /etc/postfix/sni_maps

sudo systemctl restart postfix

2. Dovecotの設定

sudo nano /etc/dovecot/conf.d/10-ssl.conf

既存の以下の行を変更します。

ssl_cert =</etc/letsencrypt/live/mail.ドメイン1.com/fullchain.pem 
ssl_key =</etc/letsencrypt/live/mail.ドメイン1.com/privkey.pem

次のように変更します。

local_name mail.ドメイン1.com {
ssl_cert =</etc/letsencrypt/live/mail.ドメイン1.com/fullchain.pem
ssl_key =</etc/letsencrypt/live/mail.ドメイン1.com/privkey.pem
}
local_name mail.ドメイン2.com {
ssl_cert =</etc/letsencrypt/live/mail.ドメイン2.com/fullchain.pem
ssl_key =</etc/letsencrypt/live/mail.ドメイン2.com/privkey.pem
}

sudo systemctl restart dovecot

 

  • マイクロソフト社のOutlookをメールソフトとして使う場合のSMTPサブミッションサービスの設定(master.cf)

一般的な設定とOutlook用を追加します。 sudo vim /etc/postfix/master.cf

一般的な設定

submission     inet     n    -    y    -    -    smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_tls_wrappermode=no
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth

Outlook用の設定

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth

 

  • メールサイズとメールボックス容量の設定

message_size_limit = 20480000
メッセージサイズを20MBに変更
mailbox_size_limit = 0
メールボックス容量を無制限に。message_size_limit を変更する場合、mailbox_size_limit を超えないようにしないといけない。
message_size_limit が mailbox_size_limit より大きい場合、メールが一切受信できなくなる。
mailbox_size_limit のデフォルトは51200000(50MB)。

 

 

 

タグ: 

オープンソースソフトウェア: 

Mailman

Mailman3

 

インストール

環境: Debian11 Postfix MariaDB Postfixadmin Apache Mailman3(3.3.3-1)

install :  sudo apt install mailman3-full

インストール写真1

インストール写真2

インストール写真3

インストール写真4

インストール後の設定:

/etc/postfix/main.cf に以下の設定を最後の行に追加します。

# Mailman related settings
owner_request_special = no
transport_maps = hash:/var/lib/mailman3/data/postfix_lmtp
local_recipient_maps = proxy:unix:passwd.byname $alias_maps hash:/var/lib/mailman3/data/postfix_lmtp
relay_domains = ${{$compatibility_level} < {2} ? {$mydestination} : {}} hash:/var/lib/mailman3/data/postfix_domains

 

サイトオーナーのメールアドレスを設定します。 /etc/mailman3/mailman.cfg

site_owner: changeme@example.com ー> 自分のメールアドレスに変更

 

apache2のproxy_uwsgiを有効にします。

sudo a2enmod proxy_uwsgi
sudo systemctl restart apache2

もし、/etc/apache2/conf-enabled/mailman3-web.confというapacheのシンボリックリンクができていなければ、新規作成する。

ln -s /etc/mailman3/apache.conf /etc/apache2/conf-enabled/mailman3-web.conf

/etc/mailman3/apache.confの編集、以下の行の最後の /  を削除する

ProxyPass /mailman3 unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost

 

 

インストール後の設定

super user のadminアカウントでログインして、そのadminアカウントの登録したメールアドレスへ確認のメールを送信して、本人確認のサイトリンクをクリックして、承認状態になります。Mailmanインストール後に、このadminの登録確認が最初に必要です。

 

メーリングリストの作成

 

Mass operationsの設定

登録するメールアドレスは、以下のような形式で登録します。
 John Doe <jdoe@example.com>
 "John Doe" <jdoe@example.com>
 jdoe@example.com (John Doe)

※Mailman3(3.3.3-1)ではこのMass operations で「Pre Verified」で配信した場合は、最初のWelcomeメッセージは届きましたが、メーリングリストへ投稿できませんでした。機能していないように思います。Mass operationsのデフォルト設定で運用してみます。

 

テンプレートの修正

標準が英語のテンプレートなので、よく使うテンプレートを日本語化します。テンプレートの概要はこのページにて確認できます。https://rohhie.net/ubuntu20-04-building-a-multi-domain-mailing-list-with... 

  • 会員がメーリングリストの登録を解除する際に送られる通知

 [list:user:notice:goodbye]

  • メンバーがメーリングリストに登録されたときに送られる通知

 [list:user:notice:welcome]

  • 購読者がリストに招待されたときに送られるメッセージ

 [list:user:action:invite]

  • 会員がメーリングリストの登録を解除する際に送られる通知

 [list:user:notice:goodbye]

  • 購読確認が必要な場合に購読者に送られるメッセージ

 [list:user:action:subscribe]

 

 

 

FAQ
  • Q:メーリングリストを作成すると公開状態になるので、非公開にしたい。

 A:作成したメーリングリストで、「設定」ー>「List Identity」ー>「Show list on index page」ー>「No」をチェックします。アーカイブは「設定」ー>「Archiving」ー>「Private archives」もしくは「Do not archive this list」を選択します。

  • Q:Mailman3の再起動は

 A: systemctl restart mailman3 と systemctl restart mailman3-web

 

タグ: 

オープンソースソフトウェア: 

PostfixAdmin

PostfixAdminについて

概要 

オープンソース(GPL-2.0)のWebベースのPostfixメールサーバー向け仮想ユーザー管理インタフェースです。

開発コミュニティ: https://github.com/postfixadmin/postfixadmin

 

インストール

参考:Debian 11、Apacheでのインストール https://www.rosehosting.com/blog/how-to-set-up-a-mail-server-with-postfi...

Debian 11、Nginxでのインストール https://www.linuxbabe.com/mail-server/postfixadmin-create-virtual-mailbo...

 

アップデート

Postfixadmin 3.3.11 から 3.3.13へアップデート

ダウンロード 3.3.13  wget https://github.com/postfixadmin/postfixadmin/archive/refs/tags/postfixad...

現在の3.3.11の /var/www/postfixadmin ディレクトリを丸ごと名前を変更して保存

解凍後、/var/www/postfixadmin へ入れ替えます

templates_c を3.3.11のバックアップからコピーして /var/www/postfixadmin/templates_c へ保存

config.local.php を3.3.11のバックアップからコピーして /var/www/postfixadmin/config.local.php へ保存

config.inc.php を編集して、バージョンを修正します $CONF['version'] = '3.3.11'; ---> $CONF['version'] = '3.3.13';

 

 

タグ: 

オープンソースソフトウェア: 

PostfixでのSPF、DKIM、DMARCの設定

PostfixでのSPF、DKIM、DMARC

 

SPF

 

 

FAQ

Q: digやnslookupコマンドでSPF設定内容を確認する方法

A: digコマンドの場合 dig ドメイン名 tx

A: nslookupコマンドの場合  nelookup ドメイン名 txt

 

 

 

DKIM

 

作成したDKIMのドメインキーをDebian11のbind9に設定する場合は、以下のようなドメインキーを表示させ、そのまま、bind9のゾーン設定ファイルに張り付けてBind9再起動で設定されます。コメントは削除しますが、キーのところはそのままのフォーマットでOKです。 その貼り付けを間違えるとBind9の文法エラーになります。

sudo cat /etc/opendkim/keys/ドメイン名/default.txt
default._domainkey      IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEXXXXXAQ8AMIIBCgKCAQEAvaotoiwmXASZTXXXXXFf1y3H0DCWmnA45vz8oAffQmPrU2YSEOzyKVKLF0g4fPMi7fxsDue+CHCBdUZerzxx4esU8x8SLn9KBb9az3TJf5FeirwJMatBe/DQP5NEUA25tnusyNG9dXXXXXtSoE9aexe/5YPLl7yzblj5fFB8B5fY8LakjfnSVBlULjr0qzottr7RbavlupEhK3"
          "zZSQT2/2SdV3KgybPWSxwgweZpxcv5XXXXXRIr+S7zUh0mTFmFWwE4W7Sx5vuHcN1Wtn9A3roM/7Y0IzgZFDAExC7KkiQq9ByCgW6lMWkPSKIkrTW2sIlAOzz8myV91DINF4/IbQIDAQAB" )  ; ----- DKIM key default for ドメイン名

 

 

FAQ

Q: digやnslookupコマンドでDKIM設定内容を確認する方法

A: digコマンドの場合 dig selector._domainkey.ドメイン名 txt

A: nslookupコマンドの場合  nslookup selector._domainkey.ドメイン名 txt

 

 

 

DMARC

 

FAQ

Q: digやnslookupコマンドでDMARC設定内容を確認する方法

A: digコマンドの場合 dig _dmarc.ドメイン名 txt

A: nslookupコマンドの場合  nelookup _dmarc.ドメイン名 txt

タグ: 

オープンソースソフトウェア: 

qmail install

qmailのインストール

qmail、netqmail, notqmail などのインストール方法

 

qmail 1.03 によるインストール

環境:

このインストール作業は、以下のサイトを参考にしました。

 

環境

qmail 1.03+ vpopmail + ezmlm + ezmlm-idx

Debian 10 buster で、2021年7月25日に実施。なるべく2021年7月時点での最新版ソースを使ったインストールになります。

事前に、Psotfixやexim4などのSMTPサーバーがアンインストールされていることを確認して、インストールしました。

設定サンプルとして、サーバー名 host.example.jp  ホスト名 host ドメイン名 example.jp で説明します。

 

opensslの導入

opensslのインストール

事前にSSL証明書(インストールしたサーバー独自の)をインストールした環境で行います。

例えば、OpenSSLを使って、秘密鍵、サーバー証明書、公開鍵など。OpenSSLはqmail関連のソースプログラムと連携するために、コンパイルする関係でソースからコンパイルしてインストールします。

OpenSSLのソースダウンロード: https://www.openssl.org/source/ にて最新版をダウンロード  $ wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz

openssl-OpenSSL_1_1_1kのダウンロードとインストール

不明 ーー>

qmailadminをインストールするために、Webサーバー(Apache)とSSL証明書を設定します。サーバーのIPアドレスでSSL証明書を使う場合はサーバー自身の証明書を使い、もし、ドメイン名でSSL証明書を使う場合は、Let’s Encryptの   https://certbot.eff.org/ を設定してからインストールします。 今回はサーバーのIPアドレスを使う方法でインストールします。

<ーー ここまで 

$ tar zxvf openssl-1.1.1k.tar.gz
$ cd openssl-1.0.1k
$ ./config --prefix=/usr --openssldir=/usr/local/openssl shared
$ make
$ sudo make install

ucspi-tcpのソースパッケージにsslのパッチを適用

ucspi-tcpソースのダウンロード: $ wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

参考資料: tcpserverやucspi-tcp関連の情報 http://www.emaillab.org/djb/tools/ucspi-tcp/top.html

ダウンロード後、tar.gzを展開し、続けてSSL化パッチとその他のパッチをダウンロード

$ gzip -d ucspi-tcp-ssl-20050405.patch.gz

ucspi-tcpにパッチを適用する

$cd ucspi-tcp-0.88

  • $ patch -p0 < ../ucspi-tcp-ssl-20050405.patch
  • $ patch -p1 < ../ucspi-tcp-0.88.a_record.patch
  • $ patch -p1 < ../ucspi-tcp-0.88.nobase.patch
  • $ make実行   make

tcpserver実行ファイルをコピーする

$ sudo cp tcpserver /usr/local/bin/tcpserver-ssl

 

- - - 

※以下の作業はnetqmailのインストール時にも実行させているので重複を確認する

smtp over ssl を使用する場合のために, qmail にsmtp-auth のパッチをあてる

以前qmail のソースを展開したディレクトリに移動し, パッチをあてる。

tar zxvf netqmail-1.06.tar.gz

cp -ar netqmail-1.06 netqmail-1.06_smtps

cd netqmail-1.06_smtps

- - - 

 

※ここからはrootで作業します。

qmailのインストール前にqmailで必要なグループ・ユーザーの作成

# mkdir /var/qmail
# addgroup --gid 710 nofiles
# useradd -M -u 710 -g nofiles -s /bin/false -d /var/qmail/alias alias
# useradd -M -u 711 -g nofiles -s /bin/false -d /var/qmail qmaild
# useradd -M -u 712 -g nofiles -s /bin/false -d /var/qmail qmaill
# useradd -M -u 713 -g nofiles -s /bin/false -d /var/qmail qmailp
# addgroup --gid 711 qmail
# useradd -M -u 714 -g qmail -s /bin/false -d /var/qmail qmailq
# useradd -M -u 715 -g qmail -s /bin/false -d /var/qmail qmailr
# useradd -M -u 716 -g qmail -s /bin/false -d /var/qmail qmails

Debian 10では、addgroup --gid を使って設定しました。ディレクトリ /var/qmail/alias もmkdirで手動作成。

vpopmail用のユーザーも作成します。

# addgroup --gid 721 vchkpw
# useradd -g vchkpw -u 721 vpopmail -M -s /bin/false
# mkdir /home/vpopmail
# chown vpopmail:vchkpw /home/vpopmail

 

qmailのインストール

qmailがソースプログラムからコンパイルしてインストール

qmail 1.03のソースダウンロード: wget https://cr.yp.to/software/qmail-1.03.tar.gz

パッチのインストール

qmail-1.03.tar.gzを解凍し、# cd qmail-1.03 で以下のパッチを適用する

  • # patch -p1 < ../qmail-date-localtime.patch
  • # patch -p1 < ../qmail-103.patch
  • # patch -p1 < ../qmail-smtpd-relay-reject

パッチの内容は

  • qmail-103.patch (DNS応答に関するパッチ)
  • qmail-date-localtime.patch (ローカルタイムに関するパッチ)
  • qmail-smtpd-relay-reject (リレーサーバとして利用させないためのパッチ)
  • これは迄です。qmail-smtpd-auth-0.31.tar.gz (SMTP認証をqmail-smtpdに追加、smtp-auth のためのパッチ, 後ほど適用する. 詳しくは, こちらを参照)

 qmail-103.patch ダウンロード: wget http://www.ckdhr.com/ckd/qmail-103.patch

 qmail-date-localtime.patchダウンロード: wget http://www.asahi-net.or.jp/~aa4t-nngk/codes/qmail-date-localtime.patch

 qmail SMTP relay rejectダウンロード: wget http://vps-tora.com/src/qmail-smtpd-relay-reject

 qmail-smtpd-auth-0.31.tar.gzダウンロード: wget http://tomclegg.net/qmail/qmail-smtpd-auth-0.31.tar.gz

 qmail-smtpd-auth-0.31を解凍: tar zxvf qmail-smtpd-auth-0.31.tar.gz

 

qmailのパッチ適用、ビルド・インストール

qmailのソースプログラムerror.h で extern int errno; を #include <errno.h> に変更してからコンパイルします。

# cd qmail-1.03
# make setup check 
# ./config-fast host.example.jp (サーバー名のFQDN)

実行結果

# ./config-fast host.example.jp
Your fully qualified host name is host.example.jp.
Putting host.example.jp into control/me...
Putting example.jp into control/defaultdomain...
Putting example.jp into control/plusdomain...
Putting host.example.jp into control/locals...
Putting host.example.jp into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to host.example.jp.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!

 

インストール後の /var/qmail

# ls -la /var/qmail/
合計 40
drwxr-xr-x 10 root   qmail 4096  7月 27 12:30 .
drwxr-xr-x 13 root   root  4096  7月 27 12:30 ..
drwxr-sr-x  2 alias  qmail 4096  7月 27 12:30 alias
drwxr-xr-x  2 root   qmail 4096  7月 27 12:30 bin
drwxr-xr-x  2 root   qmail 4096  7月 27 12:30 boot
drwxr-xr-x  2 root   qmail 4096  7月 27 12:30 control
drwxr-xr-x  2 root   qmail 4096  7月 27 12:30 doc
drwxr-xr-x 10 root   qmail 4096  7月 27 12:30 man
drwxr-x--- 11 qmailq qmail 4096  7月 27 12:30 queue
drwxr-xr-x  2 root   qmail 4096  7月 27 12:30 users

 

コントロールファイルの設定

/var/qmail/control にはqmailの動作で必要な設定として、以下のように記載します。

  • defaultdomain

example.jp

to ヘッダなどにドメイン名が省略された場合に保管されるドメイン名

  • locals

localhost
localhost.example.jp
host.example.jp
example.jp

qmailがメールを受け取るドメインを指定するファイルです。受信するホスト名・ドメイン名の設定 qmail-send が使用します。

  • rcpthosts

localhost
example.jp
.example.jp

SMTPのメールアドレス宛先を伝えるRCPTコマンドを許可するドメインを指定します。ここで指定されないドメインへのメール送信はsmtpサービスが拒否。他のSMTPサーバーより自ドメイン宛に送信されてきたメールや、ローカル内で送受信しているメールは受け取りますが、このSMTPサーバーを使って他のドメインへのメール送信はできません。これによりスパムメールの中継に利用出来なくなります。但し、/home/vpopmail/etc/tcp.smtpのRELAYCLIENT の設定によりここで指定しないドメインへのメール送信を可能にします。 受信するホスト名・ドメイン名の設定 qmail-smtpd が使用します。

  • me

host.example.jp

インストールしたサーバーのFQDN

  • plusdomain

example.jp

ドメイン名が+で終わっている場合に付加されるドメイン名。例えば、「user@host+」なら「user@host.example.jp」と置換。 qmail-inject が使用します。

上記の設定で、不正中継対策も含んだ最小限の動作環境になります。

そのほかの設定項目として、パーミッションは他のファイルと同様な chmod 644

 /var/qmail/control/databytes 内容は 100000000 100MB以上のメールは拒否

/var/qmail/control/queuelifetime 内容は 259200

登録したドメイン名を確認できます。 # /var/qmail/bin/qmail-showctl

 

tcpserverのインストール

tcpserverは詳細なアクセス制御が行えるサーバーツールです。qmailはこのtcpserverを使って起動させます。

/usr/local/src にダウンロード: # wget http://www.emaillab.org/djb/tools/ucspi-tcp/ucspi-tcp-0.88.tar.gz

パッチucspi-tcp-0.88.errno.patchをダウンロード

# wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch

ucspi-tcp-0.88.tar.gzを解凍し、そのディレクトリに移動 # cd ucspi-tcp-0.88

パッチ ucspi-tcp-0.88.errno.patch を適用

patch < ../ucspi-tcp-0.88.errno.patch

make setup check

tcpserver は /usr/local/bin/ にインストールされます。

ls -la /usr/local/bin
..........
-rwxr-xr-x  1 root root 55912 Aug 13 17:05 tcpserver
-rwxr-xr-x  1 root root 64232 Aug 12 18:22 tcpserver-ssl

 

 

vpopmailのインストール

vpopmailをインストール。POP認証後の有効時間は10分と指定。今回使用するバージョンではAPOPが有効になっていますが、バージョンが異なるとAPOPが有効でない場合があるようです。

詳細はここのサイトで確認できます: Installing and configuring vpopmail https://notes.sagredo.eu/en/qmail-notes-185/installing-and-configuring-v...

2021年8月13日時点では、vpopmail-5.4.33.tar.gzが最新のようですが、バージョンで差異があるようです。

ダウンロード一覧: https://sourceforge.net/projects/vpopmail/     ここはダウンロードエラーが起きました:https://ja.osdn.net/projects/sfnet_vpopmail/releases/

vpopmail-5.4.33のインストールとそのパッチ適用

# wget https://notes.sagredo.eu/files/qmail/tar/vpopmail-5.4.33.tar.gz
# wget https://notes.sagredo.eu/files/qmail/patches/vpopmail/roberto_vpopmail-5...
# tar xzf vpopmail-5.4.33.tar.gz
# cd vpopmail-5.4.33
# patch -p1 < ../roberto_vpopmail-5.4.33.patch

 

解凍後、解凍したディレクトリに移動し、インストールします。POP Before SMTPに対応させるには、configure --enable-roaming-users=y の設定になります。 --enable-relay-clear-minutes=指定分数 は、POP Before SMTPで、最後のPOP接続からSMTPのRelayを許可する制限時間より短くする場合となります。

/home/vpopmail/etc/tcp.smtpを使うために、tcp.smtpを追加作成します。

# vim /home/vpopmail/etc/tcp.smtp

127.:allow,RELAYCLIENT=""

# chown -R vpopmail:vchkpw /home/vpopmail/etc/tcp.smtp

cabファイルの作成

# /usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp

# chown -R vpopmail:vchkpw /home/vpopmail/etc/tcp.smtp.cdb

# ls -la /home/vpopmail/etc/
total 24
drwxr-xr-x 2 vpopmail vchkpw 4096 Aug 13 18:27 .
drwxr-xr-x 3 vpopmail vchkpw 4096 Aug 13 17:49 ..
-rw-r--r-- 1 root     root     25 Aug 13 18:06 inc_deps
-rw-r--r-- 1 root     root     32 Aug 13 18:06 lib_deps
-rw-r--r-- 1 vpopmail vchkpw   26 Aug 13 18:25 tcp.smtp
-rw-r--r-- 1 vpopmail vchkpw 2090 Aug 13 18:27 tcp.smtp.cdb

その後vpopmailの.configure 設定

# ./configure --enable-roaming-users=y --enable-relay-clear-minutes=10 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp --enable-logging=y
# make install-strip

デフォルトのドメイン名の設定は、/home/vpopmail/etc/defaultdomain で設定します。

 

POP before SMTP

POP before SMTP とは、送信の前にPOPで認証を行い、それからSMTPリレーを許可する仕組みです。POP3デーモン自体はqmailのインストールと同時にインストールされますす。/var/qmail/bin/qmail-pop3dがそれに当たります。しかし、このデーモン自体には認証を行う機能がないため、認証機能を補う必要があります。平文パスワードによる最も簡単な認証確認の手段としては、D. J. Bernstein氏がqmailとともに提供しているcheckpasswordがあります。

 

APOP(Authenticated Post Office Protocol)について

APOPはPOP3のログイン認証を行うコマンドです。POP3同様qmail-pop3dを使用しますが、認証機能を付加するにはAPOPに対応しているものを選択する必要があります。OHIRA, Shinya氏が提供しているcheckpwはその一つです。

checkpasswordでは/etc/shadowに登録されているパスワードを基に認証(PAM)を行いましたが、checkpwではパスワードを管理するために外部ファイルを使います。仮にPOPパスワードが漏れてしまってもシステムのパスワードまで盗まれるのを防げるため、ほかのサービスへの被害を最小限に抑えられます。

checkpwの場合、ユーザーのPOPパスワードはユーザーが各自で管理できるように、ユーザーのMaildir/下にファイルを保存します。

 

POP before SMTPの設定

SMTPのアクセスコントロールにはtcp.smtp.cdbファイルを利用します。 tcp.smtp.cdbの作成には、/home/vpopmail/etc/tcp.smtpファイルを作成し、続けてtcpserverのtcprulesを実行します。

/home/vpopmail/etc/tcp.smtpを作成します。内容は

127.:allow,RELAYCLIENT=""

tcprulesを実行し、tcp.smtp.cdbファイルを作成し、パーミッションを変更します。

# tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp
# chown -R vpopmail:vchkpw tcp.smtp.cdb

このファイルの指定内容では、127.x.x.xのネットワークからアクセスに限り、/var/qmail/control/rcpthostsで指定した設定は無視されます。全てのドメインへメール送信が可能になります。
通常、メールユーザーがPOP認証を行うとそのユーザーのIPアドレスがRELAYCLIENT=""の設定と共にこのファイルに追加されます。これにより、そのIPアドレスからは/var/qmail/control/rcpthostsの制限を受けずにメール送信が出来るようになります。追加されたIPアドレスは一定時間経過すると次に説明するclearopensmtpによりこのファイルより削除されます。これにより、POP認証後の一定時間に限りメール送信が可能になります。

POP認証が済んだクライアント情報を定期的に削除する為、クーロンに削除スクリプトを以下の手順で登録します。毎時間0,10,20,30,40,50分に削除スクリプトが起動。

# crontab -e
0,10,20,30,40,50 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

※clearopensmtpが起動した際に、POP認証後、vpopmailのconfigure時に"--enable-relay-clear-minutes"オプションで指定した時間が過ぎているとPOP認証の情報が削除されます。この状態が、POP認証後の有効時間切れです。しかし、clearopensmtpを呼び出さないと一度認証したクライアントからは永遠にPOP認証済み状態になります!。忘れず起動させます。

 

仮想ドメイン・ユーザーの作成

qmailインストールした正規ドメイン example.jp を仮想ドメインとして作成します。その仮想ドメイン内に、必要なメールアカウントを作成します。理由は、OSのユーザーとメールのユーザーを切り離して管理する事が可能になります。

# cd /home/vpopmail/bin/
# ./vadddomain example.jp
Please enter password for postmaster:
enter password again:

作成した仮想ドメインは、/home/vpopmail/domains/仮想ドメイン名で作成されます。

# cd /home/vpopmail/domains/
# ls -la
total 16
drwx------ 3 vpopmail vchkpw 4096 Aug 14 18:07 .
drwxr-xr-x 8 vpopmail vchkpw 4096 Aug 13 18:31 ..
-rw------- 1 vpopmail vchkpw   34 Aug 14 18:07 .dir-control
drwx------ 3 vpopmail vchkpw 4096 Aug 14 18:07 it-school.biz
root@mail:/home/vpopmail/domains# ls -la ./example.jp/
total 28
drwx------ 3 vpopmail vchkpw 4096 Aug 14 18:07 .
drwx------ 3 vpopmail vchkpw 4096 Aug 14 18:07 ..
-rw------- 1 vpopmail vchkpw   34 Aug 14 18:07 .dir-control
-rw------- 1 vpopmail vchkpw   44 Aug 14 18:07 .qmail-default
-rw------- 1 vpopmail vchkpw    0 Aug 14 18:07 .vpasswd.lock
drwx------ 3 vpopmail vchkpw 4096 Aug 14 18:07 postmaster
-rw------- 1 vpopmail vchkpw  127 Aug 14 18:07 vpasswd
-rw------- 1 vpopmail vchkpw 2197 Aug 14 18:07 vpasswd.cdb
root@mail:/home/vpopmail/domains# ls -la ./example.jp/postmaster/
total 16
drwx------ 3 vpopmail vchkpw 4096 Aug 14 18:07 .
drwx------ 3 vpopmail vchkpw 4096 Aug 14 18:07 ..
drwx------ 5 vpopmail vchkpw 4096 Aug 14 18:07 Maildir
-rw------- 1 vpopmail vchkpw    7 Aug 14 18:07 lastauth

仮想ユーザーの作成

# /home/vpopmail/bin/vadduser name@example.jp
Please enter password for name@example.jp:
enter password again:

管理者向けメールの転送設定

postmasterやroot宛のメールの転送設定を行います。この作業は必須ではありませんが、エラーなどでroot宛などに送られたメールも自分のメールユーザーで受信でき、便利です。root宛のメールをhoge@example.jpに転送する設定です。

/home/vpopmail/domains/仮想ドメイン名のディレクトリに、.qmail-rootファイルを作成し、以下の内容を記述します。ファイル名先頭の"."は必須です。パーミッションを修正。ファイルの命名は".qmail-"+ユーザー名です。

&hoge@example.jp
# chown vpopmail:vchkpw .qmail-root

ユーザーは仮想ユーザーとして作成していなくてもかまいません。webでよく使うwebmaster@example.jpなどもこの転送指定のファイルで可能です。

また、/var/qmail/alias/以下に.qmail-root、.qmail-postmaster、.qmail-mailer-daemonファイルを同じ内容で作成し、パーミッションを修正しす。

# vim /var/qmail/alias/.qmail-root
# vim /var/qmail/alias/.qmail-postmaster
# vim /var/qmail/alias/.qmail-mailer-daemon
# ls -la /var/qmail/alias/
total 20
drwxr-sr-x  2 alias qmail 4096 Aug 14 18:43 .
drwxr-xr-x 10 root  qmail 4096 Aug 12 20:14 ..
-rw-r--r--  1 root  qmail   22 Aug 14 18:43 .qmail-mailer-daemon
-rw-r--r--  1 root  qmail   22 Aug 14 18:42 .qmail-postmaster
-rw-r--r--  1 root  qmail   22 Aug 14 18:41 .qmail-root

 

起動スクリプト

qmailに付属していたサンプルのファイルを元にrcファイルを作成します。rcファイルで、MailboxからMaildir形式に変更します。

# cd /var/qmail
# cp /var/qmail/boot/home /var/qmail/rc
# vim rc

qmail-start ./Mailbox splogger qmail <--この行のMailboxをMaildir/に変更
                         ↓ 最後の/を忘れずに
qmail-start ./Maildir/ splogger qmail

/etc/init.d/qmailファイルを作成します。 711710はqmaildのユーザーIDとグループIDです。

#!/bin/sh
[ -f /var/qmail/rc ] || exit 0
PATH=$PATH:/var/qmail/bin:/usr/local/bin
case "$1" in
    start)
        echo -n "Starting... qmail"
        csh -cf '/var/qmail/rc &'
        /usr/local/bin/tcpserver -H -R -l host.example.jp -v \
        -x /home/vpopmail/etc/tcp.smtp.cdb -u 711 -g 710 0 smtp \
        /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 &

        /usr/local/bin/tcpserver -H -R -l host.example.jp -v 0 pop3 \
        /var/qmail/bin/qmail-popup mail.it-school.biz /home/vpopmail/bin/vchkpw \
        /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 2 &
        touch /var/lock/qmail
        ;;
    stop)
        echo "Shutting down qmail."
        PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
        if [ ! -z "$PID" ] ; then
            /bin/kill ${PID} 1> /dev/null 2>&1
        fi
        rm -f /var/lock/qmail
        ;;
    *)
        echo "Usage: "$0" {start|stop}"
        exit 1
esac
exit 0

実行権のパーミッション設定します。

# chmod +x /etc/init.d/qmail

csh(Cシェル)をDebianで使う場合は、 # apt install csh  を実行します。

サブミッションポートで実行する場合

 

#!/bin/sh


[ -f /var/qmail/rc ] || exit 0

PATH=$PATH:/var/qmail/bin:/usr/local/bin


case "$1" in

    start)

        echo -n "Starting... qmail"

        csh -cf '/var/qmail/rc &'


        /usr/local/bin/tcpserver -H -R -l mail.it-school.biz -v \

        -x /home/vpopmail/etc/tcp.smtp.cdb -u 711 -g 710 0 25 smtp \

        /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 &


/usr/local/bin/tcpserver -H -R -l mail.it-school.biz -v \

        -x /home/vpopmail/etc/tcp.smtp.cdb -u 711 -g 710 0 587 smtp \

        /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 &


        /usr/local/bin/tcpserver -H -R -l mail.it-school.biz -v 0 pop3 \

        /var/qmail/bin/qmail-popup mail.it-school.biz /home/vpopmail/bin/vchkpw \

        /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 2 &


        touch /var/lock/qmail

        ;;

    stop)

        echo "Shutting down qmail."

        PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`

        if [ ! -z "$PID" ] ; then

            /bin/kill ${PID} 1> /dev/null 2>&1

        fi

        rm -f /var/lock/qmail

        ;;

    *)

        echo "Usage: "$0" {start|stop}"

        exit 1

esac

exit 0

 

 

 

 

 

 

 

 

 

 

 

////////////// 未作業です

qmailに smtp-auth のパッチ

念のために smtp over ssl を使うときのために、qmailに smtp-auth のパッチを適用させます。

qmailのソースをダウンロードしたディレクトリに、qmail-smtpd-auth-0.31.tar.gz (smtp-auth のためのパッチ)をダウンロードします。

wget http://tomclegg.net/qmail/qmail-smtpd-auth-0.31.tar.gz

qmailを解凍後、そのqmailを同じディレクトリ内に netqmail-1.06_smtps というディレクトリ名でコピーします。

その netqmail-1.06_smtps に移動して、qmail-103.patch (DNS応答に関するパッチ)と、qmail-date-localtime.patch (ローカルタイムに関するパッチ)
と、qmail-smtpd-relay-reject (リレーサーバとして利用させないためのパッチ)の3つのパッチを適用させます。

qmailのディレクトリにある qmail-smtpd-auth-0.31 パッチプログラムを、netqmail-1.06_smtpディレクトリ内にコピーし、make 実行し、できたqmail-smtpd を/var/qmail/bin/qmail-smtpd-authへコピーします。

tar zxvf netqmail-1.06.tar.gz
cp -r netqmail-1.06 netqmail-1.06_smtps
cd netqmail-1.06_smtps
patch -p1 < ../qmail-103.patch
patch -p1 < ../qmail-date-localtime.patch
patch -p1 < ../qmail-smtpd-relay-reject
cp -r ../qmail-smtpd-auth-0.31/* ./
make
cp qmail-smtpd /var/qmail/bin/qmail-smtpd-auth

////////////// ここまで未作業です

 

 

//////  未設定です。

システムのエイリアスアドレス設定

以下のファイルを、ファイル名 alias.sh として作成し、実行権を付加。chmod u+x alias.sh

root 宛のメールをフォワードする先に 「例えば、自分のメールアドレス」 を指定する。「転送」行は'&'で始めます。残りの部分はメイルアドレスです。

 cd /var/qmail/alias
 echo '&自分のメールアドレスを記入' > .qmail-root
 echo '&root' > .qmail-postmaster
 echo '&root' > .qmail-mailer-daemon
 echo '&root' > .qmail-bin
 echo '&root' > .qmail-daemon
 echo '&root' > .qmail-games
 echo '&root' > .qmail-ingres
 echo '&root' > .qmail-nobody
 echo '&root' > .qmail-system
 echo '&root' > .qmail-toor
 echo '&root' > .qmail-uucp
 echo '&root' > .qmail-usenet
 echo '&root' > .qmail-anonymous
 echo '&root' > .qmail-mail
 echo '&root' > .qmail-www
 echo '&root' > .qmail-dns
 chmod 644 .qmail-*

 

~/Mailbox への配送

Mailboxへ配送するために、/etc/profile の最後の行に以下を書き加える。

MAIL="$HOME/Mailbox"
MAILDROP="$HOME/Mailbox"
export MAIL MAILDROP

cshユーザーのために、/etc/csh.cshrc ファイルを作成し、最後の行に以下を書き加える。

setenv MAIL $HOME/Mailbox
setenv MAILDROP $HOME/Mailbox

※各ユーザーのホームディレクトリのパーミッションは755でないとメール配送時にエラーになるようです。

 

インストールした実行ファイルへのPATHの設定

/var/qmail/bin 以下のコマンドにパスを通す設定として、bash ユーザのために/etc/profile のPATH= の行(2 行ごとに)に/var/qmail/bin を付け加える。

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/qmail/bin"
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/var/qmail/bin"

cshユーザーのために、/etc/csh.cshrc ファイルに、同様のPATH設定を書き加える。

setenv PATH /usr/local/bin:/usr/bin:/bin:/var/qmail/bin

 

マニュアルのmanを有効にする

/etc/manpath.config に以下の行を追加する。

MANDATORY_MANPATH                  /var/qmail/man
MANPATH_MAP        /var/qmail/bin  /var/qmail/man
MANDB_MAP          /var/qmail/man  /var/qmail/man

 

qmailの起動

qmailを起動する設定とスタートスクリプトの作成。

cp /var/qmail/boot/home /var/qmail/rc

qmailファイルを /etc/init.d/ へコピー  cp qmail /etc/init.d/qmail

そのqmailファイルに実行権を設定  chmod +x /etc/init.d/qmail

 

スタートスクリプト qmail  を作成、内容は以下のとおり。

#!/bin/bash
#
# /etc/init.d/qmail : start or stop the qmail mail subsystem.
#
# source from http://www.atmarkit.co.jp/ait/articles/0211/02/news001.html
#
#
# updated by MIKAMI Takashi (2015/12/15)
# updated by MIKAMI Takashi (2014/06/12)
# created by MIKAMI Takashi (2014/06/11)

### BEGIN INIT INFO
# Provides:          qmail
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Should-Start:      $network $syslog
# Should-Stop:       $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop qmail
# Description:       qmail is qmail
### END INIT INFO

PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin

#[ -f /var/qmail/rc ] || exit 0
[ -f /var/qmail/bin/qmail-start ] || exit 0
[ -f /var/qmail/bin/qmail-send ] || exit 0

case "$1" in
    start)
# Start daemons.
echo "Startig mail-transfer agent: qmail."
sh -c '/var/qmail/rc &'

# For SMTP
#        sh -c " /sbin/start-stop-daemon --start --quiet --user qmaild \
#        --pidfile /var/run/tcpserver_smtpd.pid --make-pidfile \
#        --exec /usr/local/bin/tcpserver -- -HRv -u ` id -u qmaild ` \
#        -g ` id -g qmaild ` -x /etc/tcp.smtp.cdb 0 smtp \
#        /usr/local/bin/rblsmtpd -r bl.spamcop.net \
# /var/qmail/bin/qmail-smtpd 2>&1 \
# | /var/qmail/bin/splogger smtpd 3 > /dev/null 2>&1 &"

# For SMTP over SSL
#       sh -c "/sbin/start-stop-daemon --start --quiet --user qmaild \
#       --pidfile /var/run/tcpserver_ssmtp.pid --make-pidfile \
#       --exec /usr/local/bin/tcpserver-ssl -- -s -HRv -u \
#       ` id -u qmaild ` -g ` id -g qmaild ` -x /etc/tcp.smtp.cdb \
#        -n /var/qmail/server.key/qmail.pem 0 ssmtp \
#        /usr/local/bin/rblsmtpd -r bl.spamcop.net \
# /var/qmail/bin/qmail-smtpd-auth usuzumi.ep.sci.hokudai.ac.jp \
#        /bin/checklocalpwd /bin/true 2>&1 \
# | /var/qmail/bin/splogger smtpd 3 > /dev/null 2>&1 &"

# For POP3
# sh -c "/sbin/start-stop-daemon --start --quiet --user root \
# --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \
# --exec /usr/local/bin/tcpserver -- -v -u 0 -g 0 0 pop3 \
# /var/qmail/bin/qmail-popup \
# usuzumi.ep.sci.hokudai.ac.jp /bin/checkapoppw \
# /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
# | /var/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &"

# For POP3 over SSL
# sh -c "/sbin/start-stop-daemon --start --quiet --user root \
# --pidfile /var/run/tcpserver_pop3s.pid --make-pidfile \
# --exec /usr/local/bin/tcpserver-ssl -- -s \
#       -n /var/qmail/server.key/qmail.pem \
#      -v -u 0 -g 0 0 pop3s \
# /var/qmail/bin/qmail-popup \
# usuzumi.ep.sci.hokudai.ac.jp /bin/checkapoppw \
# /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
# | /var/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &"

;;

    stop)
# Stop daemons.
echo "Stopping mail-transfer agent: qmail"
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
    /bin/kill ${PID} 1> /dev/null 2>&1
fi

# /sbin/start-stop-daemon --user qmails --stop --quiet --oknodo --exec /var/qmail/bin/qmail-send # qmail-send
# /sbin/start-stop-daemon --user qmaild --stop --quiet --oknodo --pidfile /var/run/tcpserver_smtpd.pid --exec /usr/local/bin/tcpserver # smtp
#        /sbin/start-stop-daemon --user root --stop --quiet --oknodo --pidfile /var/run/tcpserver_pop3d.pid --exec /usr/local/bin/tcpserver # pop3
# /sbin/start-stop-daemon --user qmaild --stop --quiet --oknodo --pidfile /var/run/tcpserver_ssmtp.pid --exec /usr/local/bin/tcpserver-ssl # smtp over SSL
# /sbin/start-stop-daemon --user root --stop --quiet --oknodo --pidfile /var/run/tcpserver_pop3s.pid --exec /usr/local/bin/tcpserver-ssl # pop3s

;;

# ===modified by Mikami Takashi (2014/06/11)===
    restart)
$0 stop
$0 start
;;

# ===modified by Mikami Takashi (2014/06/11)===
    cdb)
echo "Rebuilding tcp.smtp.cdb"
cd /etc
/usr/local/bin/tcprules /etc/tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
;;

    *)
echo 'Usage: /etc/init.d/qmail {start|stop|restart|cdb}'
exit 1
esac

exit 0

 

ブート時に自動的に起動するように、 以下のコマンドで各/etc/rc.X ディレクトリからシンボリックリンクを設定する。

update-rc.d qmail defaults

qmailを実行する   /etc/init.d/qmail start

qmailの実行を確認

ps aux | grep qmail

$ ps aux | grep qmail
avahi      349  0.0  0.3   8284  3788 ?        Ss   15:00   0:00 avahi-daemon: running [netqmail.local]
qmails     454  0.0  0.0   2340   744 ?        S    15:00   0:00 qmail-send
qmaill     455  0.0  0.0   2292   736 ?        S    15:00   0:00 splogger qmail
root       456  0.0  0.0   2292   680 ?        S    15:00   0:00 qmail-lspawn ./Mailbox
qmailr     457  0.0  0.0   2284   740 ?        S    15:00   0:00 qmail-rspawn
qmailq     458  0.0  0.0   2284   740 ?        S    15:00   0:00 qmail-clean
hodota     891  0.0  0.0   4332   888 pts/0    S+   15:02   0:00 grep qmail

service qmail status

$ sudo service qmail status
● qmail.service - LSB: Start and stop qmail
   Loaded: loaded (/etc/init.d/qmail; generated)
   Active: active (running) since Thu 2021-07-29 15:00:52 JST; 1min 54s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 5 (limit: 1138)
   Memory: 3.1M
   CGroup: /system.slice/qmail.service
           tq454 qmail-send
           tq455 splogger qmail
           tq456 qmail-lspawn ./Mailbox
           tq457 qmail-rspawn
           mq458 qmail-clean

 7月 29 15:00:52 netqmail systemd[1]: Starting LSB: Start and stop qmail...
 7月 29 15:00:52 netqmail qmail[451]: Startig mail-transfer agent: qmail.
 7月 29 15:00:52 netqmail systemd[1]: Started LSB: Start and stop qmail.
 7月 29 15:00:52 netqmail qmail[455]: 1627538452.172180 status: local 0/10 remote 0/20

 

動作検証

ローカル配送テストその1

自分に送る準備

echo ./Mailbox > ~/.qmail
touch ~/Mailbox

自分へメールを送ります。下記のhogeは自分のLinuxユーザーアカウント名に変更して実行します。~hoge/Mailbox にメールが送られることを確認

echo to: hoge | qmail-inject

確認する

lv ~/Mailbox

From hoge@netqmail.ijinden.jp Thu Jul 29 06:08:02 2021
Return-Path: <hoge@netqmail.ijinden.jp>
Delivered-To: hoge@netqmail.ijinden.jp
Received: (qmail 911 invoked by uid 1000); 29 Jul 2021 15:08:02 +0900
Date: 29 Jul 2021 15:08:02 +0900
Message-ID: <20210729060802.910.qmail@netqmail.ijinden.jp>
From: hoge@netqmail.ijinden.jp
to: hoge@netqmail.ijinden.jp

 

ローカル配送テストその2

存在しない宛先に送る。バウンスメールが~hoge/Mailbox に送られてくれば大丈夫です。

echo to: nonexisten | qmail-inject
lv ~/Mailbox

From hoge@netqmail.ijinden.jp Thu Jul 29 06:08:02 2021
Return-Path: <hoge@netqmail.ijinden.jp>
Delivered-To: hoge@netqmail.ijinden.jp
Received: (qmail 911 invoked by uid 1000); 29 Jul 2021 15:08:02 +0900
Date: 29 Jul 2021 15:08:02 +0900
Message-ID: <20210729060802.910.qmail@netqmail.ijinden.jp>
From: hoge@netqmail.ijinden.jp
to: hoge@netqmail.ijinden.jp

From MAILER-DAEMON Thu Jul 29 07:00:04 2021
Return-Path: <>
Delivered-To: hoge@netqmail.ijinden.jp
Received: (qmail 1044 invoked for bounce); 29 Jul 2021 16:00:04 +0900
Date: 29 Jul 2021 16:00:04 +0900
From: MAILER-DAEMON@netqmail.ijinden.jp
To: hoge@netqmail.ijinden.jp
Subject: failure notice

Hi. This is the qmail-send program at netqmail.ijinden.jp.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

<nonexisten@netqmail.ijinden.jp>:
Sorry, no mailbox here by that name. (#5.1.1)

--- Below this line is a copy of the message.

Return-Path: <hoge@netqmail.ijinden.jp>
Received: (qmail 1041 invoked by uid 1000); 29 Jul 2021 16:00:04 +0900
Date: 29 Jul 2021 16:00:04 +0900
Message-ID: <20210729070004.1040.qmail@netqmail.ijinden.jp>
From: hoge@netqmail.ijinden.jp
to: nonexisten@netqmail.ijinden.jp

 

ローカル配送テストその3

他のホストのメールアカウントへ送信してみます。メールの主題や本文などは無記入の状態です。届いていればOKです。届かいない場合は、/var/log/syslogを見て原因を見つけます。

echo to: メールアドレス | /var/qmail/bin/qmail-inject

 

ローカル配送テストその4

他のホストの存在しないメールアカウントへ送信してみます。メールの主題や本文などは無記入の状態です。-f オプションでバウンスの送り先を指定します。詳細は、/var/log/syslogでも確認できます。

echo to: 存在しないメールアドレス | /var/qmail/bin/qmail-inject -f hoge@netqmail.ijinden.jp

hoge@netqmail.ijinden.jp にバウンスが来ていることを確認する.

lv ~hoge/Mailbox

 

POP IMAP SMTP ezmlmのインストール

次のページへ

POP / tcpserver
SMTP / tcpserver
VMailMgr
ezmlm
imap dovecot
notqmail install
qmail FAQ
qmailadmin
vpopmail

 

 

タグ: 

オープンソースソフトウェア: 

POP / tcpserver

POP(tcpserver)のインストール

POPはtcpserverから起動されます。tcpserverはucspi-tcpパッケージの一部として提供されており、inetdなどの従来のサービス起動プロセスよりもDoS攻撃などにも対応できるように同時接続制限が設定できる、制御ファイルは独自データベースファイル(cdb)を採用しているため、高速な処理が可能、設定変更にサービス再起動が必要ない、などメリットがあります。

POPでメールを読む際にパスワードの暗号化でapopをインストールします。

 

POPソース、コンパイル

checkpw-1.03.tar.gzをダウンロード、コンパイル、インストール

wget http://sourceforge.net/projects/checkpw/files/checkpw/checkpw-1.03/check...

解凍後 cd chekpw-1.03/

make
make setup check

/bin/checkapoppw が出来ているか確認します。

ls -al /bin/checkapoppw
-rwx------ 1 root root 18784  7月 30 17:27 /bin/checkapoppw

 

tcpserverのインストール

wget http://www.emaillab.org/djb/tools/ucspi-tcp/ucspi-tcp-0.88.tar.gz

パッチucspi-tcp-0.88.errno.patchをダウンロード

wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch

ucspi-tcp-0.88.tar.gzを解凍し、そのディレクトリに移動 cd ucspi-tcp-0.88

パッチ ucspi-tcp-0.88.errno.patch を適用

patch < ../ucspi-tcp-0.88.errno.patch

make 
make setup check

その後、tcpserver を起動するためにLinux再起動

 

設定

tcpserverからの呼び出し

tcpserver からPOPを呼び出すために、起動スクリプト /etc/init.d/qmail のPOPの以下の行コメントを外します。

 # For POP3
#       sh -c "/sbin/start-stop-daemon --start --quiet --user root \
#       --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \
#       --exec /usr/local/bin/tcpserver -- -v -u 0 -g 0 0 pop3 \
#       /var/qmail/bin/qmail-popup \
#       usuzumi.ep.sci.hokudai.ac.jp /bin/checkapoppw \
#       /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
#       | /var/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &"

以下のstopの部分もコメントを外します。

#        /sbin/start-stop-daemon --user root --stop --quiet --oknodo --pidfile /var/run/tcpserver_pop3d.pid --exec /usr/local/bin/tcpserver # pop3

以下のようになります。hoge.jp /bin/checkapoppw \     hoge.jpにはホスト名を記載します。

# For POP3
        sh -c "/sbin/start-stop-daemon --start --quiet --user root \
        --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \
        --exec /usr/local/bin/tcpserver -- -v -u 0 -g 0 0 pop3 \
        /var/qmail/bin/qmail-popup \
        hoge.jp /bin/checkapoppw \
        /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
        | /var/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &"

/sbin/start-stop-daemon --user root --stop --quiet --oknodo --pidfile /var/run/tcpserver_pop3d.pid --exec /usr/local/bin/tcpserver # pop3

qmailの再起動: /etc/init.d/qmail restart

 

この時点、qmailの動作ステータスを確認するとワーニングが出ていて、'systemctl daemon-reload' を実行すればワーニングはなくなります。

Warning: The unit file, source configuration file or drop-ins of qmail.service changed on disk. Run 'systemctl daemon-reload' to reload units.
● qmail.service - LSB: Start and stop qmail
   Loaded: loaded (/etc/init.d/qmail; generated)
   Active: active (exited) since Fri 2021-07-30 17:57:22 JST; 16min ago
     Docs: man:systemd-sysv-generator(8)

 7月 30 17:57:22 netqmail systemd[1]: Starting LSB: Start and stop qmail...
 7月 30 17:57:22 netqmail qmail[449]: Startig mail-transfer agent: qmail.
 7月 30 17:57:22 netqmail systemd[1]: Started LSB: Start and stop qmail.
 7月 30 17:57:23 netqmail qmail[453]: 1627635443.017296 status: local 0/10 remote 0/20

systemctl daemon-reload

qmailの動作ステータスを確認し、ワーニングがないことを確認します。

 systemctl status qmail
● qmail.service - LSB: Start and stop qmail
   Loaded: loaded (/etc/init.d/qmail; generated)
   Active: active (exited) since Fri 2021-07-30 17:57:22 JST; 17min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0 (limit: 1138)
   Memory: 0B
   CGroup: /system.slice/qmail.service

 7月 30 17:57:22 netqmail systemd[1]: Starting LSB: Start and stop qmail...
 7月 30 17:57:22 netqmail qmail[449]: Startig mail-transfer agent: qmail.
 7月 30 17:57:22 netqmail systemd[1]: Started LSB: Start and stop qmail.
 7月 30 17:57:23 netqmail qmail[453]: 1627635443.017296 status: local 0/10 remote 0/20

POP3動作の確認

 ps aux | grep qmail
qmails     851  0.0  0.0   2340   680 pts/0    S    18:13   0:00 qmail-send
qmaill     853  0.0  0.0   2292   744 pts/0    S    18:13   0:00 splogger qmail
root       854  0.0  0.0   2292   676 pts/0    S    18:13   0:00 qmail-lspawn ./Mailbox
qmailr     855  0.0  0.0   2284   736 pts/0    S    18:13   0:00 qmail-rspawn
qmailq     856  0.0  0.0   2284   740 pts/0    S    18:13   0:00 qmail-clean
root       857  0.0  0.1   2404  1732 pts/0    S    18:13   0:00 /usr/local/bin/tcpserver -v -u 0 -g 0 0 pop3 /var/qmail/bin/qmail-popup netqmail.ijinden.jp /bin/checkapoppw /var/qmail/bin/qmail-pop3d Maildir
root       858  0.0  0.0   2292   736 pts/0    S    18:13   0:00 /var/qmail/bin/splogger pop3d 3
root       898  0.0  0.0   4332   888 pts/0    S+   18:19   0:00 grep qmail

 

~/Maildir/ への配送

環境変数の設定

POPによるメールの呼び出しは、Maildir形式で行います。/etc/profile に次の 2 行を追加します。

MAILDIR="$HOME/Maildir/"
export MAILDIR

cshは /etc/csh.cshrc に次の 1 行を追加します。

setenv MAILDIR $HOME/Maildir/

 

配送テスト

配送テストのために、一般ユーザーで以下の設定を行う。

~/Maildir の作成

maildirmake のスクリプトでMaildir ディレクトリを作成する。

$ maildirmake ~/Maildir

.qmail の編集

~/Maildir への配送を qmail に指示する (.qmail へ配送先ディレクトリを記述)

$ echo ./Maildir/ >> ~/.qmail
$ chmod 600 ~/.qmail

$ ls -la ~/.qmail
-rw------- 1 hodota hodota 21  7月 31 12:51 /home/hodota/.qmail

.qmail のパーミッションは、600 か 644 でなければならない。実行許可が出ていないことと、オーナー以外に書き込みが許可されていないことが要求される。

以上の作業は各ユーザごとに行わねばならなので、/etc/skel/ 以下 に .qmail や Maildir/ を置いておけば、adduser コマンドを用いてアカウ ントを新規に作ったときにできるホームディレクトリ内にこれらは自動で入ります。 新規にアカウントを取得する一般ユーザは、以上の作業が不要になります。

cp -ar /home/hodota/.qmail /etc/skel/
chown -R root:root /etc/skel/.qmail
cp -ar /home/hodota/Maildir /etc/skel/
chown -R root:root /etc/skel/Maildir/

認証パスワードの設定

~/Maildir/.password ファイルを作成します。 APOPPASSWORDは自分で考えたパスワードに変更します。APOPPASSWORDがPOP でメールを読むときの認証パスワードとなり、パーミッションを600としないとPOPが機能しません。

$ echo 'APOPPASSWORD' > ~/Maildir/.password
$ chmod 600 ~/Maildir/.password

テスト

配送テストを行う. 自分に送ってみる. 以下のコマンドを実行する.

$ echo to: chikuwaXX | /var/qmail/bin/qmail-inject

メールソフトで受信テストします。

受信サーバ: POP3
サーバのホスト名: mail.xxxxxx.jp
受信サーバのポート番号: 110
受信サーバの SSL: 接続の保護なし
認証方式: 暗号化されたパスワード認証 

 

 

 

タグ: 

オープンソースソフトウェア: 

SMTP / tcpserver

SMTP (tcpserver)

tcpserverの設定

 

タグ: 

オープンソースソフトウェア: 

VMailMgr

仮想ドメイン環境のVMailMgr

qmailを仮想ドメインで使う場合の認証プログラムとしてVMailMgr、VPopMailなどがあります。

VPopMail は以下のページが参考になります。sqmailとVPopMailのインストールです。

https://www.oliwel.de/vpopmail/

VPopMailのダウンロード: wget https://sourceforge.net/projects/vpopmail/files/vpopmail-stable/5.4.33/v...

 

VMailMgrのインストール

以下のサイトに過去のソースがあります。

http://untroubled.org/vmailmgr/current/

ソースのダウンロード: wget http://untroubled.org/vmailmgr/current/vmailmgr-0.97.tar.gz

 

 

 

タグ: 

オープンソースソフトウェア: 

ezmlm and ezmlm-idx

ezmlm

ezmlmは、qmailの開発者D. J. Bernstein氏により作成された大規模対応のメーリングリストで、qmailのMaildirにも対応し、fmlやMajordomoに比べ管理も容易です。

 

ezmlmのインストール

環境: Debian 10 buster 

ダウンロード:  # wget http://cr.yp.to/software/ezmlm-0.53.tar.gz

解凍後、cd ezmlm-0.53   error.h のファイルを編集し、extern int errno; を #include <errno.h> に書き換える

ezmlm-manage.c と ezmlm-return.c の 先頭に #include "log.h" を書き込む。

# make
# make man
# make setup

/usr/local/bin/ezmlm/ 以下にインストールされました。

# ls -la /usr/local/bin/ezmlm/
合計 324
drwxr-xr-x 2 root root  4096  8月 21 17:09 .
drwxr-sr-x 3 root root  4096  8月 21 17:09 ..
-rwxr-xr-x 1 root root 22832  8月 21 17:09 ezmlm-list
-rwxr-xr-x 1 root root 31056  8月 21 17:09 ezmlm-make
-rwxr-xr-x 1 root root 43640  8月 21 17:09 ezmlm-manage
-rwxr-xr-x 1 root root 22808  8月 21 17:09 ezmlm-reject
-rwxr-xr-x 1 root root 35184  8月 21 17:09 ezmlm-return
-rwxr-xr-x 1 root root 35248  8月 21 17:09 ezmlm-send
-rwxr-xr-x 1 root root 26896  8月 21 17:09 ezmlm-sub
-rwxr-xr-x 1 root root 26896  8月 21 17:09 ezmlm-unsub
-rwxr-xr-x 1 root root 39480  8月 21 17:09 ezmlm-warn
-rwxr-xr-x 1 root root 23056  8月 21 17:09 ezmlm-weed

/usr/local/bin/ezmlm/ 以下の ezmlm のコマンドバイナリ群にパスが使えるように設定します。 /etc/profile を編集してPATHに :/usr/local/bin/ezmlm  を追加します。

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin/ezmlm"

Profileを反映させます。 # source /etc/profile

テストは qmaildamin 導入後に行います。

 

設定

メーリングリストのタイトルに、連番でメーリングリストの番号を表示させるには、qmailadminの画面で、メーリングリストのプレフックスに、メーリングリストの名前の後に :# を追加します。

ezmlmのメーリングリストのタイトルに連番で番号を表示させる設定

 

 

ezmlm-idx

ezmlm-idxは、ezmlmを拡張するパッチプログラムで、Frederik P.Lindberg氏によって開発・メンテナンスされています。ダイジェストリストを作成したり、Subjectを加工したりできるようになります。

詳しい情報: http://untroubled.org/ezmlm/

 

ezmlm-idxのインストール

ezmlm-idxの情報: http://untroubled.org/ezmlm/

ダウンロード: # wget http://untroubled.org/ezmlm/archive/7.2.2/ezmlm-idx-7.2.2.tar.gz

ezmlm-0.53.tar.gzと同じディレクトリに保存し、インストールします。

# tar xvfz ezmlm-idx-7.2.2.tar.gz
# mv ezmlm-idx-7.2.2/* ezmlm-0.53/
# cd ezmlm-0.53 

# ln -s /.../.../ezmlm-0.53/lang/ja /.../.../ezmlm-0.53/lang/default
# make clean

# make
# make man
# ./ezmlm-test

# make install
# cp /.../.../ezmlm-0.53/ezmlm-cgi /usr/lib/cgi-bin/
# chmod 4555 /usr/lib/cgi-bin/ezmlm-cgi

※ezmlm-idx-7.2.2のインストールで参考にしたURL: https://qmailrocks.thibs.com/ezmlm-idx.php ただしこのサイトでは、インストール先がezmlm-idx-7.2.2を解凍したディレクトリになっているので、ezmlm-0.53へ変更しました。

 

http://untroubled.org/ezmlm からフォークしたezmlm-idx の情報:https://github.com/mbhangui/ezmlm-idx

Easy Mailing List Manager for indimail-mta, qmail

 

Webツール

ezmlm-browseのインストール

ダウンロード: wget http://untroubled.org/ezmlm-browse/ezmlm-browse-0.20.tar.gz

ソースデータ: https://github.com/bruceg/ezmlm-browse

インストール手順

# cat INSTALL
Building the Sources
====================
- Unpack the ezmlm-browse sources into a non-web-visible directory.  If
  you are using the setuid wrapper (see below), this is the directory
  from which ezmlm-browse will execute.
- Make sure all the conf-* files have values appropriate for your
  system (they contain notes about what they are used for).  They are
  set to appropriate defaults for most systems using GCC.
- If your python program is not in the path, put the full path to it in
  the first line of a file called "auto-python".
  If in doubt, skip this step.
- Run "make".
Simple Installation
===================
- As a user that has read access to the list archives, run:
  ./ezmlm-browse-setup --apache DESTPATH TARGET.cgi
  where: DESTPATH is the destination directory into which the files will
  be installed, TARGET.cgi is the CGI filename to install.  For the
  simplest usage this target will be "index.cgi", but if you have other
  CGI scripts in the same directory you may name it something else.
Generic Installation
====================
- Copy either "ezmlm-browse" (if your web server is using Apache suexec
  or equivalent) or "wrapper" (for setuid execution) into a location
  where CGI programs may be executed.  Usually this is either something
  in a "cgi-bin" directory or a file elsewhere named "something.cgi".
  The destination name does not need to be either "wrapper" or
  "ezmlm-browse" as the script will automatically determine its own name
  for the links it creates.
- Make sure the resulting program is executable and owned by the a that
  has read access to the list archives.
- If your web server runs as a user that cannot read the mailing list
  archives (normally true) and does not use the Apache suexec or
  equivalent module, make the copy of the "wrapper" program setuid to a
  user that has read access to the mailing list archive files.  Do *NOT*
  make any Python script setuid.
- Copy in the "ezmlm-browse.ini" file and edit it as appropriate for
  your site and lists.
- If using Apache with the program in a directory other then "cgi-bin",
  make sure CGI execution is enabled in that directory by adding the
  following lines to a ".htaccess" file in the same directory:
        Options +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex index.cgi
  Other server software should be similarly configured.
Configuration
=============
- Edit ezmlm-browse.ini in the destination directory to declare which
  mailing lists are visible to the web, and set the other defaults as
  appropriate.
- Mailing lists should have the ezmlm-make "-i" option enabled to keep
  the necessary indices up to date.  If this is not enabled, run the
  following command for each list:
        ezmlm-make -+ -i /path/to/list

ただし、Webでメーリングリストが閲覧できるのは便利ですが、アクセス権限などを厳格に設定しないと、メーリングリストの内容が公開されてしまいます。

なので、過去のメーリングリストのデータを見たい場合は、ezmlmのコマンドで取得したほうが、安全、安心だと思います。

ダイジェストメールの有効化

ダイジェストメールの場合は「ml2-digest-subscribe@example.jp」になります。同様に、ダイジェストメールをやめるには「ml2-digest-usubscribe@example.jp」に空メッセージを送信します。

※メッセージやタイトルなどで文字化けが起きる場合は、メールソフトでのテキストエンコーディングで、Unicodeに設定します。

123 から145のメッセージを取得 メーリングリスト名-get.123_145@example.jp

123 から145のインデック付のメッセージを取得 メーリングリスト名-index.123_145@example.jp

 

 

autoresponderのインストール

参照したURL: https://www.atmarkit.co.jp/ait/articles/0203/09/news002_2.html

適当な作業ディレクトリにダウンロードして展開します。

ダウンロード: wget https://sourceforge.net/projects/qmailadmin/files/autorespond/2.0.4/auto...

# tar xvfz autorespond-2.0.4.tar.gz
# cd autorespond-2.0.4/
# make
# make install

※これで/usr/local/bin/autorespondがインストールされました。qmailadminから使用することが目的ですから、直接autorespondを使用する機会は少ないと思いますが概要だけ確認しておきます。

autoresponderの使用方法は、「.qmail」ファイルに次の1行を記述します。

| /usr/local/bin/autorespond time num message dir [ flag arsender ]

引数やオプションの意味
time:numに使う受付時間(単位:秒)
num:timeで指定された時間以内に受け付けるメールの最大数
message:応答メッセージファイル
dir:ログを作成するディレクトリ
flag(送信されてきたメッセージの扱い方)
0:応答メッセージに添付しない
1:応答メッセージに添付(デフォルト指定)
arsender(応答メッセージ中の差出人)
+:Fromを空にする
$:送られてきたメッセージ中の「To:」を使用

 

 

 

 

 

タグ: 

オープンソースソフトウェア: 

imap dovecot

imap (Dovecot)インストール
Dovecotインストール

 

 

 

タグ: 

オープンソースソフトウェア: 

notqmail install

notqmailインストール

このページは古い内容です、2022年7月の最新版のページへ ここから

notqmaiのインストールは、事前にSSL証明書(インストールしたサーバー独自の)をインストールした環境で行います。

例えば、OpenSSLを使って、秘密鍵、サーバー証明書、公開鍵など。

qmailadminをインストールするために、Webサーバー(Apache)とSSL証明書を設定します。サーバーのIPアドレスでSSL証明書を使う場合はサーバー自身の証明書を使い、もし、ドメイン名でSSL証明書を使う場合は、Let’s Encryptの   https://certbot.eff.org/  を設定してからインストールします。 今回はサーバーのIPアドレスを使う方法でインストールします。

参考にしたサイト: 

 

notqmailのインストール

インストール作業はrootアカウントです。OSはDebian 10 busterです。

自ホストを host.example.jp、自ドメインをexample.jp としています。メールサーバを運用する場合、DNSの設定が必須です。DNSに下記のようにドメインに対するMXを設定してください。

IN      MX      10    host.example.jp. 

とりあえず動かすだけならMXは必須ではありませんが、その場合user@example.jpではサーバへの配送は行われません。user@host.example.jpのようなFQDN(Fully Qualified Domain Name:完全修飾ドメイン名)を用いてテストしてください。また、その場合、host.example.jp自体はDNSに登録されている必要があります。

念のために、サーバーのホスト名 host.example.jp を /etc/hosts に設定します。

 

ユーザーグループやユーザー追加設定

コンパイルの前に、インストール先のディレクトリ作成(/var/qmail)とqmailを稼働させるのに必要なユーザーとグループの登録をします。

# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails

 

コンパイル

自分のホームのワーキングディレクトリにソースをダウンロード

notqmailのダウンロード: wget https://github.com/notqmail/notqmail/archive/refs/tags/notqmail-1.08.tar.gz

解凍後、make してインストールします。   # make setup  # make check

最初のメールサーバー名(host.example.jp)とそのドメイン設定(example.jp)  # ./config-fast host.example.jp

# ./config-fast host.example.jp
Your fully qualified host name is example.jp.
Putting example.jp into control/me...
Putting example.jp into control/defaultdomain...
Putting example.jp into control/plusdomain...
Putting example.jp into control/locals...
Putting example.jp into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to example.jp.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!

 

コントロールファイルの設定

/var/qmail/control にはqmailの動作で必要な設定として、以下のように記載します。

  • defaultdomain

example.jp

to ヘッダなどにドメイン名が省略された場合に保管されるドメイン名

  • locals

localhost
localhost.example.jp
host.example.jp
example.jp

受信するホスト名・ドメイン名の設定 qmail-send が使用します。

  • rcpthosts

localhost
example.jp
.example.jp

受信するホスト名・ドメイン名の設定 qmail-smtpd が使用します。

  • me

host.example.jp

インストールしたサーバーのFQDN

  • plusdomain

example.jp

ドメイン名が+で終わっている場合に付加されるドメイン名。例えば、「user@host+」なら「user@host.example.jp」と置換。 qmail-inject が使用します。

上記の設定で、不正中継対策も含んだ最小限の動作環境になります。

登録したドメイン名を確認できます。

 

起動の準備

初期の管理アカウント設定

# cd ~alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*

postmaster、MAILER-DAEMON、rootあてのメールは/var/qmail/aliasに保存ではなく、別のメールアドレスへ送信する設定にします。各ファイルにメールアドレスを設定します。echoで代入すると文字のごみができることがあるので、ファイルをエディタで編集するほうが安全のようです。

# echo -n ‘xxx@example.com’ > .qmail-root
# echo -n ‘xxx@example.com’ > .qmail-postmaster
# echo -n ‘xxx@example.com’ > .qmail-mailer-daemon

 

Maildirへの移行設定

ユーザーごとにmboxかMaildirかを選択するよりは、Maildirをデフォルトで対応するように設定します。

rcファイルのコピー

# cp ./home /var/qmail/rc
# chmod 0755 /var/qmail/rc

コピーしたrcファイル /var/qmail/rc を書き替えます。

qmail-start ./Mailbox --->  ./Maildir/

 

mboxでは各ユーザーのホームディレクトリにMailboxファイルが作成されますが、各自のMaildirディレクトリは各自が手動で生成する必要があります。例えば、以下の手順で

# /var/qmail/bin/maildirmake ~alias/Maildir
# chown -R alias /var/qmail/alias/Maildir

# ls -la
total 24
drwxr-sr-x  3 alias qmail 4096 Aug  8 19:03 .
drwxr-xr-x 10 root  qmail 4096 Aug  8 12:40 ..
-rw-r--r--  1 root  qmail   21 Aug  8 13:06 .qmail-mailer-daemon
-rw-r--r--  1 root  qmail   21 Aug  8 13:06 .qmail-postmaster
-rw-r--r--  1 root  qmail   21 Aug  8 13:06 .qmail-root
drwx--S---  5 alias qmail 4096 Aug  8 19:03 Maildir
# ls -la Maildir/
total 20
drwx--S--- 5 alias qmail 4096 Aug  8 19:03 .
drwxr-sr-x 3 alias qmail 4096 Aug  8 19:03 ..
drwx--S--- 2 alias qmail 4096 Aug  8 19:03 cur
drwx--S--- 2 alias qmail 4096 Aug  8 19:03 new
drwx--S--- 2 alias qmail 4096 Aug  8 19:03 tmp

 

ただし、各自のMaildirディレクトリは各自が手動で生成する必要があります。各ユーザーのアカウントで、例えば、以下の手順

$ /var/qmail/bin/maildirmake ~/Maildir

各自でMaildirが出来ているか確認

$ cd
$ ls -la
total 40
drwxr-xr-x 6 hodota hodota 4096 Aug  8 19:06 .
drwxr-xr-x 3 root   root   4096 Aug  6 16:09 ..
-rw------- 1 hodota hodota  176 Aug  8 13:52 .bash_history
-rw-r--r-- 1 hodota hodota  220 Aug  6 16:09 .bash_logout
-rw-r--r-- 1 hodota hodota 3526 Aug  6 16:09 .bashrc
drwx------ 3 hodota hodota 4096 Aug  7 15:39 .gnupg
-rw-r--r-- 1 hodota hodota  807 Aug  6 16:09 .profile
drwx------ 5 hodota hodota 4096 Aug  8 19:06 Maildir
drwxr-xr-x 3 hodota hodota 4096 Aug  6 17:12 snap
drwxr-xr-x 3 hodota hodota 4096 Aug  7 15:42 work
$ ls -la ./Maildir/
total 20
drwx------ 5 hodota hodota 4096 Aug  8 19:06 .
drwxr-xr-x 6 hodota hodota 4096 Aug  8 19:06 ..
drwx------ 2 hodota hodota 4096 Aug  8 19:06 cur
drwx------ 2 hodota hodota 4096 Aug  8 19:06 new
drwx------ 2 hodota hodota 4096 Aug  8 19:06 tmp

もし、root権限で実行した場合は、chownでMaildirディレクトリのオーナーが各ユーザーにに変更します。

また、新規のユーザーについては、/etc/skelディレクトリにMaildirのひな型を設定し、adduserコマンドなどでユーザーを作成した際に自動でMaildirディレクトリが生成するようにします。

# /var/qmail/bin/maildirmake /etc/skel/Maildir

# ls -la /etc/skel
total 24
drwxr-xr-x  3 root root 4096 Aug  8 19:29 .
drwxr-xr-x 77 root root 4096 Aug  7 16:16 ..
-rw-r--r--  1 root root  220 Apr 18  2019 .bash_logout
-rw-r--r--  1 root root 3526 Apr 18  2019 .bashrc
-rw-r--r--  1 root root  807 Apr 18  2019 .profile
drwx------  5 root root 4096 Aug  8 19:29 Maildir

 

qmailの動作確認

暫定的に動作確認するために、qmailサーバーを起動(pop3やsmtpは起動しない)します。実際は、 tcpserverを使って起動します。 

仮のqmailの起動とメール配信の確認

# sh /var/qmail/rc &

動作確認

# ps -aef | grep qmail
qmails    1304  1098  0 12:50 pts/0    00:00:00 qmail-send
qmaill    1305  1304  0 12:50 pts/0    00:00:00 splogger qmail
root      1306  1304  0 12:50 pts/0    00:00:00 qmail-lspawn ./Maildir/
qmailr    1307  1304  0 12:50 pts/0    00:00:00 qmail-rspawn
qmailq    1308  1304  0 12:50 pts/0    00:00:00 qmail-clean

メールの送信

# echo to: root@host.example.jp | /var/qmail/bin/qmail-inject

 

tcpserverのインストール

tcpserverは、qmailを起動するサービスプロセスとして、ucspi-tcpパッケージの一部として提供されています。ユーザー名・IPアドレス・ドメイン名を基に接続制限がかけられる、特定のIPアドレスでのみサービス受付できる、ハッシュを用いた独自データベースファイル(cdb)なので高速処理可能、設定編変更でもサービス再起動が必要ない、などのメリットがあります。

新規にディレクトリを作成してダウンロード: wget https://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

vi error.h で extern int errno; を #include <errno.h>に変更します。

make してインストールします。 # make setup check

インストール後に、/usr/local/bin/にtcpserver関連が設置されます。

# ls -la /usr/local/bin/tcpserver
-rwxr-xr-x 1 root root 55912 Aug  9 12:54 /usr/local/bin/tcpserver

 

cdbの基になるファイルの作成

/etc/tcp.smtp というファイルを作成し、設定します。

# vim /etc/tcp.smtp
IPアドレス.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT="" 

1行目の設定は「IPアドレスからの接続は環境変数RELAYCLIENTに設定し、接続を許可する」となります。

次に、cdbファイルを作成します。

# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

# ls -la /etc/tcp.*
-rw-r--r-- 1 root root   65 Aug  9 13:02 /etc/tcp.smtp
-rw-r--r-- 1 root root 2144 Aug  9 16:10 /etc/tcp.smtp.cdb

 

tcpserverによるqmailの起動(動作検証中!)

qmailを暫定的に起動させます  # sh /var/qmail/rc &

tcpserver経由でqmailを起動します。-u1002 はqmaildのユーザーID(UID)、-g1001はnofilesのユーザーID(GID)です。-x /etc/tcp.smtp.cdbはIPアドレス制御cdbファイルを使う場合です。

# tcpserver -v -u1002 -g1001 -x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
# tcpserver -v -u1002 -g1001 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &

tcpserver から qmail-smtpd を起動する場合

# tcpserver -u 1002 -g 1001 -x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd &

tcpserverの代表的なオプション

-v  すべてのメッセージを出す
-u  uid ユーザーIDをuidに切り替える
-g  gid グループIDをgidに切り替える
-H  逆引きをしない(リモートホスト名を調べない)
-R  ident(接続したサーバのユーザー情報について、付加的な情報を返す)しない
-x  /etc/tcp.cdb cdbデータベース(/etc/tcp.cdb)で制御する
-c  limit 最大同時接続数をlimitに設定する(デフォルトは40)
-P  逆引き、正引きで相手の正当性を調査する

 

vpopmailのインストール

vpopmailは、バーチャルドメインやバーチャルユーザーを実現し、APOP認証やPOP Before SMTPにも対応しています。

まず、vpopmailのアカウントを作成します。

# groupadd vchkpw
# useradd -g vchkpw -s /bin/false -M vpopmail
# mkdir /home/vpopmail
# chown vpopmail:vchkpw /home/vpopmail
# mkdir /home/vpopmail/etc
# chown vpopmail:vchkpw /home/vpopmail/etc

新規にディレクトリを作成してダウンロード: wget http://jaist.dl.sourceforge.net/project/vpopmail/vpopmail-stable/5.4.33/...

解凍後、解凍したディレクトリに移動し、インストールします。POP Before SMTPに対応させるには、configure --enable-roaming-users=y の設定になります。 --enable-relay-clear-minutes=指定分数 は、POP Before SMTPで、最後のPOP接続からSMTPのRelayを許可する制限時間より短くする場合となります。

# ./configure -enable-roaming-users=y -enable-relay-clear-minutes=10
# make
# make install-strip

 

/etc/tcp.smtpや/etc/tcp.smtp.cdbファイルは、tcpserverのデフォルト位置のものではなく、vpopmailが用の/home/vpopmail/etc/tcp.smtpを追加作成し、/home/vpopmail/etc/tcp.smtp.cdbを作成し使用します。

# cat tcp.smtp
127.:allow,RELAYCLIENT=""

cabファイルの作成

# /usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp

 

crontabに設定

POP Before SMTPの仕組みがrelay-ctrlと同じように、POP接続してきた端末IPアドレスの記録も同じように行われ、それを定期的に消す作業も同じく必要です。vpopmailでも、cronデーモンを利用し、crontabでpop before smtpのデータを10分ごとにリフレッシュします。

crontab -e  で以下の行を追加します。毎時10分にIPアドレスを整理して、接続から3時間以上経過したものを除外します。configure時に「--enable-relay-clear-minutes」を付加した場合は、そこで指定された分数になります。

# crontab -e
10 * * * * /home/vpopmail/bin/clearopensmtp > /dev/null 2>&1

 

ドメインと仮想ドメインの追加

vpopmailにドメインを(xxx.com)追加します。仮想ドメイン(xxx.com)を作成します。
ここでは、正規ドメイン(xxx.com)を仮想ドメインとして作成しています。
そして、その仮想ドメイン内に、必要なメールアカウントを作成していきます。
この様にする事で、OSのユーザーとメールのユーザーを切り離して管理する事が可能になります。

# /home/vpopmail/bin/vadddomain xxx.com

Please enter password for postmaster: パスワード追加

※最初のドメインを登録すると、次のワーニングが出ます。Please enter password for postmaster:
enter password again:
NOTICE: Out of order entries found in /var/qmail/control/rcpthosts
   Sorting...

vadddomainコマンドにより、次のファイルに設定が追加されます。設定ファイルが存在しない場合は自動的に作成されます。

/var/qmail/control/locals
/var/qmail/control/rcpthosts
(rcphostsが50行以上の場合は/var/qmail/control/morercpthostsになる)
/var/qmail/control/virtualdomains
/var/qmail/users/assign
/var/qmail/users/cdb

以下のファイルやディレクトリは新規に作成されます。

~vpopmail/domains/xxx.com
~vpopmail/domains/xxx.com/postmaster/Maildir
~vpopmail/domains/xxx.com/vpasswd
~vpopmail/domains/xxx.com/vpasswd.cdb

/var/qmail/control下のファイルを修正したので、変更を有効にするために、qmail-sendプロセスを再起動します。

# ps aux | grep qmail-send
qmails プロセスID  0.0  0.1  1088  368 ?  S Jan31  0:00 qmail-send
# kill -HUP プロセスID

最初のバーチャルユーザーとしてpostmasterが用意され、.qmail-defaultには、の1行が追加され、あて先不明メールは「Sorry, no mailbox here by that name. vpopmail」というメッセージとともに返信されます。

# cat .qmail-default
| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox

 

仮想ドメインのユーザー追加・削除(この時点では動作検証が未完成です!)

ユーザーを追加(ユーザー追加できませんでした)

# /home/vpopmail/bin/vadduser user@xxx.com

「@」以降のドメインが登録されたものでない場合はエラーになります。ここで設定したパスワードを変更する場合は、vpasswdコマンドを使用します。

バーチャルユーザーを削除する場合は、vdeluserコマンドを使用します。

# cd ~vpopmail/bin
# ./vdeluser xxx@xxx.com

バーチャルドメインを削除する場合は、vdeldomainコマンドを使用します。

# cd ~vpopmail/bin
# ./vdeldomain xxx.com

※一般的には「@」以前がユーザー名になりますが、vpopmailを使用した場合は「メールアドレスそのものがユーザー名」になります。

 

 

貼り付け

////////////////////  以下は未検証です、作業中 

vpopmailのユーザーでログイン  # su – vpopmail

postmasterの設定

$ cd /home/vpopmail/domains/example.com/postmaster/
$ echo -n ‘xxx@example.com’ > .qmail

パーミッションは vpopmail vchkpw になっているか確認し、なっていなければ 

chown -R vpopmail:vchkpw .qmail

chmod -R 600 .qmail

もしこの設定がない場合は、/home/vpopmail/domains/example.com/postmaster/Maildir/ へのローカル配送される

 

rootアカウントのメールの設定

$ cd /home/vpopmail/domains/example.com/
$ echo -n ‘xxx@example.com’ > .qmail-root

パーミッションは vpopmail vchkpw になっているか確認し、なっていなければ 

chown -R vpopmail:vchkpw .qmail-root

chmod -R 600 .qmail-root

/////////////////////////////    <---- ここまで

 

 

exim4 やPostfixのアンインストールとqmail設定

dpkg -l | grep exim       dpkg -l | grep postfix

もし存在すれば # apt-get remove --purge exim4

 

メール関連のコマンドをシンボリックリンクで設定

# ln -s /var/qmail/bin/qmail-qstat /usr/bin/mailq
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

 

内部メール送信のテスト

暫定的qmailを起動: # sh /var/qmail/rc &  停止 psコマンドでプロセス確認、kill コマンドで停止

テスト、ローカルのメール配信で内部の配信が動いてるか確認します。

echo to: xxx@xxxx.com | /var/qmail/bin/qmail-inject

echo "Hallo" | /var/qmail/bin/sendmail  -v xxxx@xxx.com

 

Daemontoolsインストール

展開したディレクトリが実行ファイルの環境になり、/command/からシンボリックリンクとなるため、ダウンロードは/usr/local/にする。

cd /usr/local

ダウンロード # wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

/usr/local/admin/daemontools-0.76/src/error.h を編集 extern int errno; を #include <errno.h> に変更

cd /usr/local/admin/daemontools-0.76

daemontools-0.76.tar.gz の場合は、コンパイル(Make)は必要ないようです。 package/install   の実行

以上の作業で、以下のディレクトリとファイルが作成されます。

新たに作成されるディレクトリ
/service
/command
作成されるファイルおよびそのシンボリックリンク
/usr/local/admin/daemontools/下に実行ファイル
/command/下にそのシンボリックリンク
/usr/local/bin/下にさらにシンボリックリンク

systemctl 用のdaemontools を設定します

/etc/systemd/system/daemontools.service 以下の内容でファイルdaemontools.serviceを新規作成

[Unit]
Description=daemontools Start supervise
After=getty.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/command/svscanboot /dev/ttyS0
TimeoutSec=0

[Install]
WantedBy=multi-user.target

サービスとして登録と起動

# systemctl enable daemontools
# systemctl start daemontools

Daemontoolsで smtp:qmail/pop3:vpoopmail の待ち受けのtcpserverを設定します。

/var/superviseに以下のディレクトリを作成します。

# mkdir -p /var/supervise/qmail
# mkdir -p /var/supervise/smtpd
# mkdir -p /var/supervise/pop3

/var/supervise/qmail/run runファイルを作成し、以下の内容を追加します。

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail

/var/supervise/smtpd/run runファイルを作成し、以下の内容を追加します。

変更するところは、hostname、id -u vpopmail、id -g vpopmail です。hostnameは [サーバのFQDN]、vpopmailのユーザーIDとグループIDは、/etc/passwd で確認します。-u xxxx  -g xxxx  と明記します。

#!/bin/sh
/usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb \
/home/vpopmail/etc/tcp.smtp.tmp \
< /home/vpopmail/etc/tcp.smtp
exec env - PATH="/var/qmail/bin:$PATH" \
/usr/local/bin/tcpserver -HRl `hostname` -v -x /home/vpopmail/etc/tcp.smtp.cdb -u `id -u vpopmail` -g `id -g vpopmail` 0 smtp \
qmail-smtpd 2>&1  | splogger smtp 3

/var/supervise/pop3/run runファイルを作成し、以下の内容を追加します。 hostnameは [サーバのFQDN]

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
/usr/local/bin/tcpserver -HRl `hostname` -v 0 pop3 qmail-popup `hostname` /home/
vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1  | splogger pop3 3

実行権のパーミッションを設定します。

# chmod 0755 /var/supervise/qmail/run
# chmod 0755 /var/supervise/smtpd/run
# chmod 0755 /var/supervise/pop3/run

/serviceにリンボリックリンクを設定します。

# cd /service
# ln -s /var/supervise/qmail .
# ln -s /var/supervise/smtpd .
# ln -s /var/supervise/pop3 .

サービスで起動されているか確認するには

# svstat /service/*
/service/pop3: up (pid 359) 3944 seconds
/service/qmail: up (pid 361) 3944 seconds
/service/smtpd: up (pid 360) 3944 seconds

 

念のために、システム再起動して、動作確認します。

以上のメールは受信できましたが、POP、SMTPは検証中です。まだ未完成

 

 

 

タグ: 

オープンソースソフトウェア: 

notqmailインストール修正版

notqmailインストール修正版(2022年7月)

notqmaiのインストールは、事前にSSL証明書(インストールしたサーバー独自の)をインストールした環境で行います。

例えば、OpenSSLを使って、秘密鍵、サーバー証明書、公開鍵など。

qmailadminをインストールするために、Webサーバー(Apache)とSSL証明書を設定します。サーバーのIPアドレスでSSL証明書を使う場合はサーバー自身の証明書を使い、もし、ドメイン名でSSL証明書を使う場合は、Let’s Encryptの   https://certbot.eff.org/  を設定してからインストールします。 今回はサーバーのIPアドレスを使う方法でインストールします。

参考にしたサイト: 

 

ネットワーク環境

自ホストを host.example.jp、自ドメインをexample.jp としています。メールサーバを運用する場合、DNSの設定が必須です。DNSに下記のようにドメインに対するMXを設定してください。

IN      MX      10    host.example.jp. 

とりあえず動かすだけならMXは必須ではありませんが、その場合user@example.jpではサーバへの配送は行われません。user@host.example.jpのようなFQDN(Fully Qualified Domain Name:完全修飾ドメイン名)を用いてテストしてください。また、その場合、host.example.jp自体はDNSに登録されている必要があります。

念のために、サーバーのホスト名 host.example.jp を /etc/hosts に設定します。

 

notqmailのインストール(バイナリーパッケージの場合)

Debian11のバイナリーパッケージは notqmail_1.08-1.1+10.5_amd64.deb  aptインストール設定は https://software.opensuse.org//download.html?project=home%3Anotqmail&pac...

インストール作業はrootアカウントです。OSはDebian 11です。

 

ユーザーグループやユーザー追加設定はDebian11バイナリーの場合必要なし

Debian11のnotqmailをインストールでは、インストール先のディレクトリ作成(/var/qmail)とqmailを稼働させるのに必要なユーザーとグループの登録を自動で設定します。

# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails

バイナリーパッケージのインストール後のディレクトリ構成

$ ls -la /var/qmail
total 36
drwxr-xr-x  9 root   qmail 4096 Jul 25 19:20 .
drwxr-xr-x 14 root   root  4096 Jul 25 21:18 ..
drwxr-sr-x  3 alias  qmail 4096 Jul 26 13:42 alias
drwxr-xr-x  2 root   qmail 4096 Jul 25 19:20 bin
drwxr-xr-x  2 root   qmail 4096 Jul 25 20:59 boot
drwxr-xr-x  2 root   qmail 4096 Jul 26 13:40 control
lrwxrwxrwx  1 root   root    23 Jul 10 13:24 doc -> /usr/share/doc/notqmail
drwxr-xr-x 10 root   qmail 4096 Jul 25 19:20 man
drwxr-x--- 11 qmailq qmail 4096 Jul 25 19:20 queue
drwxr-xr-x  2 root   qmail 4096 Jul 10 13:24 users

$ ls -la /var/qmail/alias/
total 24
drwxr-sr-x 3 alias qmail 4096 Jul 26 13:42 .
drwxr-xr-x 9 root  qmail 4096 Jul 25 19:20 ..
-rw-r--r-- 1 root  qmail   26 Jul 25 19:20 .qmail-mailer-daemon
-rw-r--r-- 1 root  qmail   26 Jul 25 19:20 .qmail-postmaster
-rw-r--r-- 1 root  qmail   26 Jul 25 19:20 .qmail-root
drwxr-sr-x 5 alias qmail 4096 Jul 25 19:20 Maildir

$ ls -la /var/qmail/bin
total 1072
drwxr-xr-x 2 root   qmail  4096 Jul 25 19:20 .
drwxr-xr-x 9 root   qmail  4096 Jul 25 19:20 ..
-rwxr-xr-x 1 root   qmail 14584 Jul 10 13:24 bouncesaying
-rwxr-xr-x 1 root   qmail 22936 Jul 10 13:24 condredirect
-rwxr-xr-x 1 root   qmail   126 Jul 10 13:24 datemail
-rwxr-xr-x 1 root   qmail   229 Jul 10 13:24 elq
-rwxr-xr-x 1 root   qmail 14584 Jul 10 13:24 except
-rwxr-xr-x 1 root   qmail 22936 Jul 10 13:24 forward
-rwxr-xr-x 1 root   root  31048 Jul 10 13:24 instchown
-rwxr-xr-x 1 root   qmail 27032 Jul 10 13:24 maildir2mbox
-rwxr-xr-x 1 root   qmail 14568 Jul 10 13:24 maildirmake
-rwxr-xr-x 1 root   qmail 27096 Jul 10 13:24 maildirwatch
-rwxr-xr-x 1 root   qmail   179 Jul 10 13:24 mailsubj
-rwxr-xr-x 1 root   qmail   230 Jul 10 13:24 pinq
-rwxr-xr-x 1 root   qmail 23064 Jul 10 13:24 predate
-rwxr-xr-x 1 root   qmail 22920 Jul 10 13:24 preline
-rwxr-xr-x 1 root   qmail   230 Jul 10 13:24 qail
-rwxr-xr-x 1 root   qmail 18872 Jul 10 13:24 qbiff
-rwx--x--x 1 root   qmail 18848 Jul 10 13:24 qmail-clean
-rwx--x--x 1 root   qmail 14576 Jul 10 13:24 qmail-getpw
-rwxr-xr-x 1 root   qmail 51848 Jul 10 13:24 qmail-inject
-rwx--x--x 1 root   qmail 47752 Jul 10 13:24 qmail-local
-rwx------ 1 root   qmail 27112 Jul 10 13:24 qmail-lspawn
-rwx------ 1 root   qmail 22840 Jul 10 13:24 qmail-newmrh
-rwx------ 1 root   qmail 18744 Jul 10 13:24 qmail-newu
-rwxr-xr-x 1 root   qmail 27376 Jul 10 13:24 qmail-pop3d
-rwx--x--x 1 root   qmail 23056 Jul 10 13:24 qmail-popup
-rwx--x--x 1 root   qmail 27072 Jul 10 13:24 qmail-pw2u
-rwxr-xr-x 1 root   qmail 27032 Jul 10 13:24 qmail-qmqpc
-rwxr-xr-x 1 root   qmail 22976 Jul 10 13:24 qmail-qmqpd
-rwxr-xr-x 1 root   qmail 31208 Jul 10 13:24 qmail-qmtpd
-rwxr-xr-x 1 root   qmail 27016 Jul 10 13:24 qmail-qread
-rwxr-xr-x 1 root   qmail   371 Jul 10 13:24 qmail-qstat
-rws--x--x 1 qmailq qmail 23064 Jul 10 13:24 qmail-queue
-rwx--x--x 1 root   qmail 39448 Jul 10 13:24 qmail-remote
-rwx--x--x 1 root   qmail 22960 Jul 10 13:24 qmail-rspawn
-rwx--x--x 1 root   qmail 55952 Jul 10 13:24 qmail-send
-rwxr-xr-x 1 root   qmail 27112 Jul 10 13:24 qmail-showctl
-rwxr-xr-x 1 root   qmail 39688 Jul 10 13:24 qmail-smtpd
-rwx------ 1 root   qmail 14792 Jul 10 13:24 qmail-start
-rwxr-xr-x 1 root   qmail 14584 Jul 10 13:24 qmail-tcpok
-rwxr-xr-x 1 root   qmail 18712 Jul 10 13:24 qmail-tcpto
-rwxr-xr-x 1 root   qmail 35400 Jul 10 13:24 qreceipt
-rwxr-xr-x 1 root   qmail 18760 Jul 10 13:24 qsmhook
-rwxr-xr-x 1 root   qmail 18776 Jul 10 13:24 sendmail
-rwx--x--x 1 root   qmail 14664 Jul 10 13:24 splogger
-rwxr-xr-x 1 root   qmail 31048 Jul 10 13:24 tcp-env

$ ls -la /var/qmail/boot/
total 48
drwxr-xr-x 2 root qmail 4096 Jul 25 20:59 .
drwxr-xr-x 9 root qmail 4096 Jul 25 19:20 ..
-rwxr-xr-x 1 root qmail  347 Jul 10 13:24 binm1
-rwxr-xr-x 1 root qmail  431 Jul 10 13:24 binm1+df
-rwxr-xr-x 1 root qmail  316 Jul 10 13:24 binm2
-rwxr-xr-x 1 root qmail  400 Jul 10 13:24 binm2+df
-rwxr-xr-x 1 root qmail  314 Jul 10 13:24 binm3
-rwxr-xr-x 1 root qmail  398 Jul 10 13:24 binm3+df
-rwxr-xr-x 1 root qmail  204 Jul 10 13:24 home
-rwxr-xr-x 1 root qmail  292 Jul 10 13:24 home+df
-rwxr-xr-x 1 root qmail  223 Jul 10 13:24 proc
-rwxr-xr-x 1 root qmail  309 Jul 10 13:24 proc+df

$ ls -la /var/qmail/control/
total 32
drwxr-xr-x 2 root qmail 4096 Jul 26 13:40 .
drwxr-xr-x 9 root qmail 4096 Jul 25 19:20 ..
-rw-r--r-- 1 root root     5 Jul 25 19:20 me

$ sudo ls -la /var/qmail/queue/
[sudo] password for gennai:
total 44
drwxr-x--- 11 qmailq qmail 4096 Jul 25 19:20 .
drwxr-xr-x  9 root   qmail 4096 Jul 25 19:20 ..
drwx------  2 qmails qmail 4096 Jul 10 13:24 bounce
drwx------ 25 qmails qmail 4096 Jul 25 19:20 info
drwx------  2 qmailq qmail 4096 Jul 10 13:24 intd
drwx------ 25 qmails qmail 4096 Jul 25 19:20 local
drwxr-x---  2 qmailq qmail 4096 Jul 25 19:20 lock
drwxr-x--- 25 qmailq qmail 4096 Jul 25 19:20 mess
drwx------  2 qmailq qmail 4096 Jul 10 13:24 pid
drwx------ 25 qmails qmail 4096 Jul 25 19:20 remote
drwxr-x---  2 qmailq qmail 4096 Jul 10 13:24 todo

$ ls -la /var/qmail/users/
total 8
drwxr-xr-x 2 root qmail 4096 Jul 10 13:24 .
drwxr-xr-x 9 root qmail 4096 Jul 25 19:20 ..

 

Maildirへの移行設定

ユーザーごとにmboxかMaildirかを選択するよりは、Maildirをデフォルトで対応するように設定します。

rcファイルのコピー

# cp ./home /var/qmail/rc
# chmod 0755 /var/qmail/rc

コピーしたrcファイル /var/qmail/rc を書き替えます。

qmail-start ./Mailbox --->  ./Maildir/

 

mboxでは各ユーザーのホームディレクトリにMailboxファイルが作成されますが、各自のMaildirディレクトリは各自が手動で生成する必要があります。例えば、以下の手順で

# /var/qmail/bin/maildirmake ~alias/Maildir
# chown -R alias /var/qmail/alias/Maildir

# ls -la
total 24
drwxr-sr-x  3 alias qmail 4096 Aug  8 19:03 .
drwxr-xr-x 10 root  qmail 4096 Aug  8 12:40 ..
-rw-r--r--  1 root  qmail   21 Aug  8 13:06 .qmail-mailer-daemon
-rw-r--r--  1 root  qmail   21 Aug  8 13:06 .qmail-postmaster
-rw-r--r--  1 root  qmail   21 Aug  8 13:06 .qmail-root
drwx--S---  5 alias qmail 4096 Aug  8 19:03 Maildir
# ls -la Maildir/
total 20
drwx--S--- 5 alias qmail 4096 Aug  8 19:03 .
drwxr-sr-x 3 alias qmail 4096 Aug  8 19:03 ..
drwx--S--- 2 alias qmail 4096 Aug  8 19:03 cur
drwx--S--- 2 alias qmail 4096 Aug  8 19:03 new
drwx--S--- 2 alias qmail 4096 Aug  8 19:03 tmp

 

ただし、各自のMaildirディレクトリは各自が手動で生成する必要があります。各ユーザーのアカウントで、例えば、以下の手順

$ /var/qmail/bin/maildirmake ~/Maildir

各自でMaildirが出来ているか確認

$ cd
$ ls -la
total 40
drwxr-xr-x 6 hodota hodota 4096 Aug  8 19:06 .
drwxr-xr-x 3 root   root   4096 Aug  6 16:09 ..
-rw------- 1 hodota hodota  176 Aug  8 13:52 .bash_history
-rw-r--r-- 1 hodota hodota  220 Aug  6 16:09 .bash_logout
-rw-r--r-- 1 hodota hodota 3526 Aug  6 16:09 .bashrc
drwx------ 3 hodota hodota 4096 Aug  7 15:39 .gnupg
-rw-r--r-- 1 hodota hodota  807 Aug  6 16:09 .profile
drwx------ 5 hodota hodota 4096 Aug  8 19:06 Maildir
drwxr-xr-x 3 hodota hodota 4096 Aug  6 17:12 snap
drwxr-xr-x 3 hodota hodota 4096 Aug  7 15:42 work
$ ls -la ./Maildir/
total 20
drwx------ 5 hodota hodota 4096 Aug  8 19:06 .
drwxr-xr-x 6 hodota hodota 4096 Aug  8 19:06 ..
drwx------ 2 hodota hodota 4096 Aug  8 19:06 cur
drwx------ 2 hodota hodota 4096 Aug  8 19:06 new
drwx------ 2 hodota hodota 4096 Aug  8 19:06 tmp

もし、root権限で実行した場合は、chownでMaildirディレクトリのオーナーが各ユーザーにに変更します。

また、新規のユーザーについては、/etc/skelディレクトリにMaildirのひな型を設定し、adduserコマンドなどでユーザーを作成した際に自動でMaildirディレクトリが生成するようにします。

# /var/qmail/bin/maildirmake /etc/skel/Maildir

# ls -la /etc/skel
total 24
drwxr-xr-x  3 root root 4096 Aug  8 19:29 .
drwxr-xr-x 77 root root 4096 Aug  7 16:16 ..
-rw-r--r--  1 root root  220 Apr 18  2019 .bash_logout
-rw-r--r--  1 root root 3526 Apr 18  2019 .bashrc
-rw-r--r--  1 root root  807 Apr 18  2019 .profile
drwx------  5 root root 4096 Aug  8 19:29 Maildir

 

コントロールファイルの設定

/var/qmail/control にはqmailの動作で必要な設定として、以下のように記載します。

  • defaultdomain

example.jp

to ヘッダなどにドメイン名が省略された場合に保管されるドメイン名

  • locals

localhost
localhost.example.jp
host.example.jp
example.jp

受信するホスト名・ドメイン名の設定 qmail-send が使用します。

  • rcpthosts

localhost
example.jp
.example.jp

受信するホスト名・ドメイン名の設定 qmail-smtpd が使用します。

  • me

host.example.jp

インストールしたサーバーのFQDN

  • plusdomain

example.jp

ドメイン名が+で終わっている場合に付加されるドメイン名。例えば、「user@host+」なら「user@host.example.jp」と置換。 qmail-inject が使用します。

上記の設定で、不正中継対策も含んだ最小限の動作環境になります。

登録したドメイン名を確認できます。

追加機能で必要な設定もこのコントロールファイルで設定します。

  • virtualdomains

example.com:example.com

  • spfbehavior

1

 

 

 

起動の準備

必要ないかも ここから ー->

初期の管理アカウント設定

# cd ~alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*

postmaster、MAILER-DAEMON、rootあてのメールは/var/qmail/aliasに保存ではなく、別のメールアドレスへ送信する設定にします。各ファイルにメールアドレスを設定します。echoで代入すると文字のごみができることがあるので、ファイルをエディタで編集するほうが安全のようです。

# echo -n ‘xxx@example.com’ > .qmail-root
# echo -n ‘xxx@example.com’ > .qmail-postmaster
# echo -n ‘xxx@example.com’ > .qmail-mailer-daemon

<--- ここまで 

 

qmailの動作確認

暫定的に動作確認するために、qmailサーバーを起動(pop3やsmtpは起動しない)します。実際は、 tcpserverを使って起動します。 

仮のqmailの起動とメール配信の確認

# sh /var/qmail/rc &

動作確認

# ps -aef | grep qmail
qmails    1304  1098  0 12:50 pts/0    00:00:00 qmail-send
qmaill    1305  1304  0 12:50 pts/0    00:00:00 splogger qmail
root      1306  1304  0 12:50 pts/0    00:00:00 qmail-lspawn ./Maildir/
qmailr    1307  1304  0 12:50 pts/0    00:00:00 qmail-rspawn
qmailq    1308  1304  0 12:50 pts/0    00:00:00 qmail-clean

メールの送信

# echo to: root@host.example.jp | /var/qmail/bin/qmail-inject

 

tcpserverのインストール

tcpserverは、qmailを起動するサービスプロセスとして、ucspi-tcpパッケージの一部として提供されています。ユーザー名・IPアドレス・ドメイン名を基に接続制限がかけられる、特定のIPアドレスでのみサービス受付できる、ハッシュを用いた独自データベースファイル(cdb)なので高速処理可能、設定編変更でもサービス再起動が必要ない、などのメリットがあります。

新規にディレクトリを作成してダウンロード: wget https://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

vi error.h で extern int errno; を #include <errno.h>に変更します。

make してインストールします。 # make setup check

インストール後に、/usr/local/bin/にtcpserver関連が設置されます。

# ls -la /usr/local/bin/tcpserver
-rwxr-xr-x 1 root root 55912 Aug  9 12:54 /usr/local/bin/tcpserver

tcpserverの設定

ユーザー qmaild のユーザーID(UID) と グループ nofiles グループID(GID)を調べます。UIDとGIDはインストール環境により異なります。

# id -u qmaild
109
# id -g qmaild
115

 

tcpserverにおけるリレー設定: cdbの基になるファイルの作成

/etc/tcp.smtp というファイルを作成し、設定します。

# vim /etc/tcp.smtp
Sever IP address:allow,RELAYCLIENT=""
127.0.0.1:allow,RELAYCLIENT="" 

1行目の設定は「IPアドレスからの接続は環境変数RELAYCLIENTに設定し、接続を許可する」となります。Server IP address にサーバーのIPアドレスを記入。

次に、cdbファイルを作成します。

# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

# ls -la /etc/tcp.*
-rw-r--r-- 1 root root   65 Aug  9 13:02 /etc/tcp.smtp
-rw-r--r-- 1 root root 2144 Aug  9 16:10 /etc/tcp.smtp.cdb

 

----> ここから必要ないかも

tcpserverによるqmailの起動(動作検証中!)

qmailを暫定的に起動させます  # sh /var/qmail/rc &

tcpserver経由でqmailを起動します。-u1002 はqmaildのユーザーID(UID)、-g1001はnofilesのユーザーID(GID)です。-x /etc/tcp.smtp.cdbはIPアドレス制御cdbファイルを使う場合です。

# tcpserver -v -u1002 -g1001 -x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
# tcpserver -v -u1002 -g1001 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &

tcpserver から qmail-smtpd を起動する場合

# tcpserver -u 1002 -g 1001 -x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd &

tcpserverの代表的なオプション

-v  すべてのメッセージを出す
-u  uid ユーザーIDをuidに切り替える
-g  gid グループIDをgidに切り替える
-H  逆引きをしない(リモートホスト名を調べない)
-R  ident(接続したサーバのユーザー情報について、付加的な情報を返す)しない
-x  /etc/tcp.cdb cdbデータベース(/etc/tcp.cdb)で制御する
-c  limit 最大同時接続数をlimitに設定する(デフォルトは40)
-P  逆引き、正引きで相手の正当性を調査する

 

<-- ここまで 必要ないかも

 

vpopmailのインストール

vpopmailは、バーチャルドメインやバーチャルユーザーを実現し、APOP認証やPOP Before SMTPにも対応しています。

まず、vpopmailのアカウントを作成します。

# groupadd vchkpw
# useradd -g vchkpw -s /bin/false -M vpopmail
# mkdir /home/vpopmail
# chown vpopmail:vchkpw /home/vpopmail
# mkdir /home/vpopmail/etc
# chown vpopmail:vchkpw /home/vpopmail/etc

新規にディレクトリを作成してダウンロード: wget http://jaist.dl.sourceforge.net/project/vpopmail/vpopmail-stable/5.4.33/...

解凍後、解凍したディレクトリに移動し、インストールします。POP Before SMTPに対応させるには、configure --enable-roaming-users=y の設定になります。 --enable-relay-clear-minutes=指定分数 は、POP Before SMTPで、最後のPOP接続からSMTPのRelayを許可する制限時間より短くする場合となります。

# cd vpopmail-5.4.33 
# ./configure -enable-roaming-users=y -enable-relay-clear-minutes=10
# make
# make install-strip

参考メモ

vpopmail の ./configure 実行後に現在の設定が表示されました。

config.status: executing depfiles commands

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

vpopmail directory = /home/vpopmail
 domains directory = /home/vpopmail/domains
               uid = 1001
               gid = 1001
     roaming users = ON  --enable-roaming-users
    tcpserver file = /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 = ON  --enable-clear-passwd (default)
 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)

 

/etc/tcp.smtpや/etc/tcp.smtp.cdbファイルは、tcpserverのデフォルト位置のものではなく、vpopmailが用の/home/vpopmail/etc/tcp.smtpを追加作成し、/home/vpopmail/etc/tcp.smtp.cdbを作成し使用します。

# cat tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""

もしくは、tcpserverのtcp.smtpの設定と同じにします。どちらが良いのかわかりませんが。

Sever IP address:allow,RELAYCLIENT=""
127.0.0.1:allow,RELAYCLIENT="" 

cabファイルの作成

# /usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp

# ls -la /home/vpopmail/etc/tcp.*
-rw-r--r-- 1 root root   70 Jul 26 17:30 /home/vpopmail/etc/tcp.smtp
-rw-r--r-- 1 root root 2148 Jul 26 17:37 /home/vpopmail/etc/tcp.smtp.cdb

 

crontabに設定

POP Before SMTPの仕組みがrelay-ctrlと同じように、POP接続してきた端末IPアドレスの記録も同じように行われ、それを定期的に消す作業も同じく必要です。vpopmailでも、cronデーモンを利用し、crontabでpop before smtpのデータを10分ごとにリフレッシュします。

crontab -e  で以下の行を追加します。毎時10分にIPアドレスを整理して、接続から3時間以上経過したものを除外します。configure時に「--enable-relay-clear-minutes」を付加した場合は、そこで指定された分数になります。

# crontab -e
10 * * * * /home/vpopmail/bin/clearopensmtp > /dev/null 2>&1

 

ドメインと仮想ドメインの追加

vpopmailにドメインを(xxx.com)追加します。仮想ドメイン(xxx.com)を作成します。
ここでは、正規ドメイン(xxx.com)を仮想ドメインとして作成しています。
そして、その仮想ドメイン内に、必要なメールアカウントを作成していきます。
この様にする事で、OSのユーザーとメールのユーザーを切り離して管理する事が可能になります。

# /home/vpopmail/bin/vadddomain xxx.com

Please enter password for postmaster: パスワード追加

※最初のドメインを登録すると、次のワーニングが出ます。Please enter password for postmaster:
enter password again:
NOTICE: Out of order entries found in /var/qmail/control/rcpthosts
   Sorting...

vadddomainコマンドにより、次のファイルに設定が追加されます。設定ファイルが存在しない場合は自動的に作成されます。

/var/qmail/control/locals
/var/qmail/control/rcpthosts
(rcphostsが50行以上の場合は/var/qmail/control/morercpthostsになる)
/var/qmail/control/virtualdomains
/var/qmail/users/assign
/var/qmail/users/cdb

~vpopmail/domains以下のファイルやディレクトリは新規に作成されます。

drwx------ 3 vpopmail vchkpw 4096 Jul 26 17:45 .
drwx------ 3 vpopmail vchkpw 4096 Jul 26 17:45 ..
-rw------- 1 vpopmail vchkpw   34 Jul 26 17:45 .dir-control
-rw------- 1 vpopmail vchkpw   55 Jul 26 17:45 .qmail-default
-rw------- 1 vpopmail vchkpw    0 Jul 26 17:45 .vpasswd.lock
drwx------ 3 vpopmail vchkpw 4096 Jul 26 17:45 postmaster
-rw------- 1 vpopmail vchkpw  126 Jul 26 17:45 vpasswd
-rw------- 1 vpopmail vchkpw 2196 Jul 26 17:45 vpasswd.cdb
# ls -la ドメイン名/postmaster/
total 16
drwx------ 3 vpopmail vchkpw 4096 Jul 26 17:45 .
drwx------ 3 vpopmail vchkpw 4096 Jul 26 17:45 ..
drwx------ 5 vpopmail vchkpw 4096 Jul 26 17:45 Maildir
-rw------- 1 vpopmail vchkpw    7 Jul 26 17:45 lastauth

 

ここから未確認です ----> 

/var/qmail/control下のファイルを修正したので、変更を有効にするために、qmail-sendプロセスを再起動します。

# ps aux | grep qmail-send
qmails プロセスID  0.0  0.1  1088  368 ?  S Jan31  0:00 qmail-send
# kill -HUP プロセスID

最初のバーチャルユーザーとしてpostmasterが用意され、.qmail-defaultには、の1行が追加され、あて先不明メールは「Sorry, no mailbox here by that name. vpopmail」というメッセージとともに返信されます。

# cat .qmail-default
| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox

ここまで 未確認です <---

 

 

仮想ドメインのユーザー追加・削除(この時点ではユーザー追加まで動作検証がOKですが、それ以外は未完成です!)

ユーザーを追加(ユーザー追加できませんでした)

# /home/vpopmail/bin/vadduser user@xxx.com

「@」以降のドメインが登録されたものでない場合はエラーになります。ここで設定したパスワードを変更する場合は、vpasswdコマンドを使用します。

バーチャルユーザーを削除する場合は、vdeluserコマンドを使用します。

# cd ~vpopmail/bin
# ./vdeluser xxx@xxx.com

バーチャルドメインを削除する場合は、vdeldomainコマンドを使用します。

# cd ~vpopmail/bin
# ./vdeldomain xxx.com

※一般的には「@」以前がユーザー名になりますが、vpopmailを使用した場合は「メールアドレスそのものがユーザー名」になります。

 

ここから 必要ないかも --->

貼り付け

////////////////////  以下は未検証です、作業中 

vpopmailのユーザーでログイン  # su – vpopmail

postmasterの設定

$ cd /home/vpopmail/domains/example.com/postmaster/
$ echo -n ‘xxx@example.com’ > .qmail

パーミッションは vpopmail vchkpw になっているか確認し、なっていなければ 

chown -R vpopmail:vchkpw .qmail

chmod -R 600 .qmail

もしこの設定がない場合は、/home/vpopmail/domains/example.com/postmaster/Maildir/ へのローカル配送される

 

rootアカウントのメールの設定

$ cd /home/vpopmail/domains/example.com/
$ echo -n ‘xxx@example.com’ > .qmail-root

パーミッションは vpopmail vchkpw になっているか確認し、なっていなければ 

chown -R vpopmail:vchkpw .qmail-root

chmod -R 600 .qmail-root

/////////////////////////////    <---- ここまで

 

 

exim4 やPostfixのアンインストールとqmail設定

dpkg -l | grep exim       dpkg -l | grep postfix

もし存在すれば # apt-get remove --purge exim4

 

メール関連のコマンドをシンボリックリンクで設定

# ln -s /var/qmail/bin/qmail-qstat /usr/bin/mailq
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

 

内部メール送信のテスト

暫定的qmailを起動: # sh /var/qmail/rc &  停止 psコマンドでプロセス確認、kill コマンドで停止

テスト、ローカルのメール配信で内部の配信が動いてるか確認します。

echo to: xxx@xxxx.com | /var/qmail/bin/qmail-inject

echo "Hallo" | /var/qmail/bin/sendmail  -v xxxx@xxx.com

<-----  ここまで 必要ないかも

 

 

Daemontoolsインストール

展開したディレクトリが実行ファイルの環境になり、/command/からシンボリックリンクとなるため、ダウンロードは/usr/local/にする。

cd /usr/local

ダウンロード # wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

/usr/local/admin/daemontools-0.76/src/error.h を編集 extern int errno; を #include <errno.h> に変更

cd /usr/local/admin/daemontools-0.76

daemontools-0.76.tar.gz の場合は、コンパイル(Make)は必要ないようです。 package/install   の実行

以上の作業で、以下のディレクトリとファイルが作成されます。

新たに作成されるディレクトリ
/service
/command
作成されるファイルおよびそのシンボリックリンク
/usr/local/admin/daemontools/下に実行ファイル
/command/下にそのシンボリックリンク
/usr/local/bin/下にさらにシンボリックリンク

systemctl 用のdaemontools を設定します

/etc/systemd/system/daemontools.service 以下の内容でファイルdaemontools.serviceを新規作成

[Unit]
Description=daemontools Start supervise
After=getty.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/command/svscanboot /dev/ttyS0
TimeoutSec=0

[Install]
WantedBy=multi-user.target

サービスとして登録と起動

# systemctl enable daemontools
# systemctl start daemontools

Daemontoolsで smtp:qmail/pop3:vpoopmail の待ち受けのtcpserverを設定します。

/var/superviseに以下のディレクトリを作成します。

# mkdir -p /var/supervise/qmail
# mkdir -p /var/supervise/smtpd
# mkdir -p /var/supervise/pop3

/var/supervise/qmail/run runファイルを作成し、以下の内容を追加します。

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail

/var/supervise/smtpd/run runファイルを作成し、以下の内容を追加します。

変更するところは、hostname、id -u vpopmail、id -g vpopmail です。hostnameは [サーバのFQDN]、vpopmailのユーザーIDとグループIDは、/etc/passwd で確認します。-u xxxx  -g xxxx  と明記します。

#!/bin/sh
/usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb \
/home/vpopmail/etc/tcp.smtp.tmp \
< /home/vpopmail/etc/tcp.smtp
exec env - PATH="/var/qmail/bin:$PATH" \
/usr/local/bin/tcpserver -HRl `hostname` -v -x /home/vpopmail/etc/tcp.smtp.cdb -u `id -u vpopmail` -g `id -g vpopmail` 0 smtp \
qmail-smtpd 2>&1  | splogger smtp 3

/var/supervise/pop3/run runファイルを作成し、以下の内容を追加します。 hostnameは [サーバのFQDN]

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
/usr/local/bin/tcpserver -HRl `hostname` -v 0 pop3 qmail-popup `hostname` /home/
vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1  | splogger pop3 3

実行権のパーミッションを設定します。

# chmod 0755 /var/supervise/qmail/run
# chmod 0755 /var/supervise/smtpd/run
# chmod 0755 /var/supervise/pop3/run

/serviceにリンボリックリンクを設定します。

# cd /service
# ln -s /var/supervise/qmail .
# ln -s /var/supervise/smtpd .
# ln -s /var/supervise/pop3 .

サービスで起動されているか確認するには

# svstat /service/*
/service/pop3: up (pid 359) 3944 seconds
/service/qmail: up (pid 361) 3944 seconds
/service/smtpd: up (pid 360) 3944 seconds

 

念のために、システム再起動して、動作確認します。

以上のメールは受信できましたが、POP、SMTPは検証中です。まだ未完成

 

 

 

タグ: 

オープンソースソフトウェア: 

qmail FAQ

qmail 便利なコマンド
  • qmail-queue

受け取ったメールをキューに保存し、qmail-sendに配送を依頼する

  • qmail-clean

クラッシュした時のキュー内の残っているごみファイルを削除します。

  • qmail-qstat

現在キューにたまっているメールの数を表示

  • qmail-qread

キューにたまっているメールの情報を表示

参考にしたURL: https://japanrock-pg.hatenablog.com/entry/20090414/1239695108

 

便利な機能

 

.qmail ファイル

ホームディレクトリに .qmail というファイルを 作成・編集することで、配送されてきたメールに対してさまざまなことができます。

./Maildir/

を.qmailファイルに記述することで、Maildir形式をるようできるようになります。パーミッション権限も調整が必要です。

注意事項: .qmail の処理は行単位で実行されてますが, たとえ文字が書かれてなくても その行をみて処理しようとして失敗します. また改行したところから行頭とみ なして正しい処理を行なってくれません. さらに, 行の処理は上から順々に行な われるので行の順序にも気をつけましょう.

.qmail ファイルの編集

  • 空の行を作らない
  • エディタ編集時にひとつの指示が数行にわたってしまうときでも改行はしてはいけない。
  • .qmail のパーミッションは 600 にする

詳細は http://www.ep.sci.hokudai.ac.jp/~epnetfan/tebiki/server-mail/usage/dot-q...

 

qmail install FAQ

qmailのインストールなどに関するFAQ

インストール前の環境設定

参考にしたURL: https://www.atmarkit.co.jp/ait/articles/0109/04/news002_2.html

グループとユーザーの設定(インストール先が/var/qmailの場合)

# mkdir /var/qmail
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails

 

DNSサーバーにMXレコードが設定済みであること

 IN      MX      5    host.example.jp. 

※テスト目的など、とりあえず動かしてみるだけならMXは必須ではありませんが、その場合user@example.jpではサーバへの配送は行われません。user@host.example.jpのようなFQDN(Fully Qualified Domain Name:完全修飾ドメイン名)を用いてテストしてください。また、最低限host.example.jp自体はDNSに登録されている必要があります

 

qmailコンパイル時の設定

# make setup
# make check
# ./config

コンパイルは必ずgccを使用します。最後の./configは自ホストがDNSに登録されていない場合は、以下のエラーになります。

Your hostname is host.example.jp.
hard error
Sorry, I couldn't find your host's canonical name in DNS.

つまり、./config の設定は以下のようにします。

# ./config-fast host.example.jp

これで、/var/qmailにqmailの動作に必要なファイルやディレクトリが作成されます。

 

qmailのコントロールファイルの設定

/var/qmail/control の設定

defaultdomain

example.jp

※toヘッダなどにドメイン名が省略された場合、補完されるドメイン名

locals

localhost
localhost.example.jp
host.example.jp
example.jp

※受信するホスト名・ドメイン名:qmail-sendが利用

rcpthosts

localhost
example.jp
.example.jp

※受信するホスト名・ドメイン名:qmail-smtpdが利用

me

host.example.jp

※自サーバのFQDN

plusdomain

example.jp

※ドメイン部が+で終わっている場合に付加されるドメイン。「user@host+」なら「user@host.example.jp」と置換される(qmal-injectが利用)

 

起動の準備

postmaster、MAILER-DAEMON、rootといった重要なアカウントに対する配信の設定です。

# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail* 

※postmaster、MAILER-DAEMON、rootあてのメールは/var/qmail/aliasに保存されます。

 

qmailの動作検証

qmailサーバを起動してみましょう。ここで紹介する方法は、動作を確認するためのものです。実際の運用では、後半で紹介するtcpserverを使った起動方法を使ってください。
起動スクリプトを用意し、実行します。/var/qmail/boot/homeを/var/qmailにrcという名前でコピーします。

# cp /var/qmail/boot/home /var/qmail/rc
# /var/qmail/rc &

/etc/inetd.confファイルに次の行を追加してinetdデーモンを再起動

smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd

※もしほかに「smtp」で始まる行があれば「#」を行頭に付けてコメントアウト

# /etc/rc.d/init.d/inet restart

動作確認

# ps -aef | grep qmail 
qmails   14540 13180  0 00:54 pts/4    00:00:00 qmail-send 
qmaill   14541 14540  0 00:54 pts/4    00:00:00 splogger qmail 
root     14542 14540  0 00:54 pts/4    00:00:00 qmail-lspawn ./Mailbox 
qmailr   14543 14540  0 00:54 pts/4    00:00:00 qmail-rspawn 
qmailq   14544 14540  0 00:54 pts/4    00:00:00 qmail-clean

テストメールの送信

# echo to: root@host.example.jp | /var/qmail/bin/qmail-inject

これで、空のメールが/var/qmail/alias/のMailboxファイルに届いているはずです。

 

Maildirへの設定

/var/qmail/rcファイルの内容を下記のように編集します。

qmail-start ./Mailbox splogger qmail
        ↓
qmail-start ./Maildir/ splogger qmail

Mailboxでは各ユーザーのホームディレクトリにMailboxファイルが作成されますが、Maildirディレクトリは手動で生成します。

# /var/qmail/bin/maildirmake ~alias/Maildir
# chown -R alias /var/qmail/alias/Maildir

qmailでは、Maildirを使用するように設定するのに、手動で設定が必要です。 各ユーザーのアカウントで

$ /var/qmail/bin/maildirmake ~/Maildir

※root権限で実行した場合は、chownでMaildirディレクトリのオーナーが各ユーザーになるように変更します。

 

新規のユーザーについては、/etc/skelディレクトリにMaildirのひな型を置いておくと、adduserコマンドなどでユーザーを作成した際に自動でMaildirディレクトリが生成されるようになります。

# /var/qmail/bin/maildirmake /etc/skel/Maildir

 

Maildir対応版でqmailを起動し直します。現在起動している各qmailプロセスをkillコマンドで終了させ、psコマンドでqmailプロセスが残っていないことを確認してください。その後もう1度、起動させ、再度配送のテストで確認します。

# /var/qmail/rc &

# echo to: root@host.example.jp | /var/qmail/bin/qmail-inject

※Maildir/newディレクトリにファイルが1つできています。

 

 

 

 

 

タグ: 

オープンソースソフトウェア: 

qmailadmin

qmailadminのインストールと設定

qmailadmin-1.0.2.tar.gzを適当な作業ディレクトリにダウンロードして展開します。その後、ディレクトリを移動してconfigureを行います。vpopmailやautorespondのパスは、紹介したインストール方法であれば自動的に組み込まれます。

 

事前にautorespondのインストール

参照したURL: https://www.atmarkit.co.jp/ait/articles/0203/09/news002_2.html

適当な作業ディレクトリにダウンロードして展開します。

ダウンロード: wget https://sourceforge.net/projects/qmailadmin/files/autorespond/2.0.4/auto...

# tar xvfz autorespond-2.0.4.tar.gz
# cd autorespond-2.0.4/
# make
# make install

※これで/usr/local/bin/autorespondがインストールされました。qmailadminから使用することが目的ですから、直接autorespondを使用する機会は少ないと思いますが概要だけ確認しておきます。

autoresponderの使用方法は、「.qmail」ファイルに次の1行を記述します。

| /usr/local/bin/autorespond time num message dir [ flag arsender ]

引数やオプションの意味
time:numに使う受付時間(単位:秒)
num:timeで指定された時間以内に受け付けるメールの最大数
message:応答メッセージファイル
dir:ログを作成するディレクトリ
flag(送信されてきたメッセージの扱い方)
0:応答メッセージに添付しない
1:応答メッセージに添付(デフォルト指定)
arsender(応答メッセージ中の差出人)
+:Fromを空にする
$:送られてきたメッセージ中の「To:」を使用

 

 

事前にApacheのインストール

cgiの設定 : /usr/lib/cgi-bin/ 

 

qmailadminのインストール

ダウンロード: wget https://sourceforge.net/projects/qmailadmin/files/qmailadmin-stable/1.2.... <-- コンパイルエラーが起きました。

ダウンロード: wget https://sourceforge.net/projects/qmailadmin/files/qmailadmin-devel/qmail...

1.2.16.tar.gzを適当な作業ディレクトリにダウンロードして展開します。その後、ディレクトリを移動してconfigureを行います。vpopmailやautorespondのパスは、紹介したインストール方法であれば自動的に組み込まれます。Apacheのデフォルトディレクトリは /var/www/html  CGIのデフォルトディレクトリは /usr/bin/cgi-bin で設定します。

# tar xvfz qmailadmin-1.2.16.tar.gz
# cd qmailadmin-1.2.15
# ./configure --enable-htmldir=/var/www/html/ --enable-cgibindir=/usr/lib/cgi-bin/

主なオプション
--prefix={PREFIX}
qmailadminパッケージのインストール先。デフォルトは/usr/local
--enable-vpopmaildir={dir}
vpopmailをインストールしたディレクトリ(vpopmailユーザーのホームディレクトリ)
--enable-qmaildir={dir}
qmailのインストール先
--enable-cgipath={/cgi-bin/qmailadmin}
qmailadmin CGIのURL
--enable-vpopuser={vpopmail}
vpopmailをインストールした際のユーザー名
--enable-vpopgroup={vchkpw}
vpopmailをインストールした際のグループ名
--enable-autoresponder-bin={path}
autorespondのパス。使用しない場合は「n」を指定
--enable-ezmlmdir={dir}
ezmlmのインストール先
--enable-maxpopusers=unlimited
1バーチャルドメイン当たりの最大ユーザー数(「-1」は無制限。機能を利用しない場合は「0」を指定)
--enable-maxaliases=unlimited
1バーチャルドメイン当たりの最大エイリアス数(同上)
--enable-maxforwards=unlimited
1バーチャルドメイン当たりの最大転送設定数(同上)
--enable-maxautoresponders=unlimited
1バーチャルドメイン当たりの最大自動応答設定数(同上)
--enable-maxmailinglists=unlimited
1バーチャルドメイン当たりの最大ML数(同上)
--enable-maxusersperpage=15
Web 1ページ当たりに表示するユーザー数(デフォルトは15)
--enable-maxaliasesperpage=25
Web 1ページ当たりに表示するエイリアス数(デフォルトは25)

 qmailadmin 1.2.13
            Current settings
---------------------------------------
       cgi-bin dir = /var/www/html/cgi-bin/
          html dir = /var/www/html/
         image dir = /var/www/html//images/qmailadmin
         image URL = /images/qmailadmin
      template dir = /usr/local/share/qmailadmin
         qmail dir = /var/qmail
      vpopmail dir = /home/vpopmail
   autorespond dir = /usr/bin
         ezmlm dir = /usr/local/bin/ezmlm
         ezmlm idx = yes
   mysql for ezmlm = yes
              help = no
      modify quota = no
   domain autofill = no
 catchall accounts = yes
 trivial passwords = yes
 modify spam check = no

インストール

# make
# make install-strip

http://サーバのアドレス/cgi-bin/qmailadmin

qmailadmin 1.2.16 login

 

Webではできなことは、詳しくはこのURLで確認 https://www.atmarkit.co.jp/ait/articles/0203/09/news002_2.html

  • 新規にバーチャルドメインを追加したり削除する場合
  • バーチャルドメインごとに機能を制限
  • 機能の無効化
  • ディスク使用量を制限する(quotaの設定)
  • すでに作成したアカウントの制限を変更する場合

 

設定

メーリングリストのタイトルに連番で番号を表示させたい。

メーリングリストのプレフィックスに、メーリングリストのタイトルの後に :# を追加します。

qmailadminにメーリングリストの連番設定 ezmlm

 

 

 

vpopmail

vpopmail

 

コマンド
  • ドメイン名の追加

# /home/vpopmail/bin/vadddomain ドメイン名

  • ドメイン名の削除

# /home/vpopmail/bin/vdeldomain ドメイン名

  • ドメイン情報の確認

# /home/vpopmail/bin/vdominfo ドメイン名

  • メールアドレスの作成と追加

# /home/vpopmail/bin/vadduser メールアドレス

  • メールアカウントの削除 

# /home/vpopmail/bin/vdeluser メールアドレス

  • パスワード変更 

# /home/vpopmail/bin/vpasswd メールアドレス(強制的に変更)
# /home/vpopmail/bin/vchangepw メールアドレス(旧パスワード必須)

ユーザー情報の確認

# /home/vpopmail/bin/vuserinfo
-v (バージョン情報を表示)
-a (すべての項目を表示する。デフォルト)
-n (名前を表示する)
-p (暗号されたパスワードを表示する)
-u (uidを表示する)
-g (gidを表示する)
-c (コメントを表示する)
-d (ディレクトリを表示する)
-q (quotaを表示する)
-Q (quotaの利用内容を表示する)
-C (パスワードを平文で表示する)
-D ドメイン名 (指定したドメインの利用ユーザーを表示する)

転送設定

# /home/vpopmail/bin/valias オプション

-i (追加・転送先→転送元)
-d (削除)
-s (一覽)

その他

# /home/vpopmail/bin/vsetuserquota
# /home/vpopmail/bin/vmoddomlimits
# /home/vpopmail/bin/vmoduser

 

参考にしたURL: https://wiki.inamuu.com/?vpopmail%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4...

 

 

 

タグ: 

オープンソースソフトウェア: