このチュートリアルは、Falko Timme&Srijan KishoreによるCopyright(c)2014です。これは、http://workaround.orgにあるChristophHaasのチュートリアルから派生しています。このチュートリアルは、クリエイティブコモンズライセンス2.5以降のバージョンで自由に使用できます。
このドキュメントでは、仮想ユーザーとドメイン、つまりMySQLデータベースにあるユーザーとドメインに基づくPostfixメールサーバーをインストールする方法について説明します。また、Courier(Courier-POP3、Courier-IMAP)のインストールと構成を示し、CourierがPostfixが使用するのと同じMySQLデータベースに対して認証できるようにします。
結果として得られるPostfixサーバーはSMTP-AUTHに対応しています およびTLS および割り当て (デフォルトでは、quotaはPostfixに組み込まれていません。Postfixに適切にパッチを適用する方法を説明します)。パスワードは暗号化で保存されます データベース内のフォーム(私が見つけたほとんどのドキュメントは、セキュリティリスクであるプレーンテキストのパスワードを扱っていました)。これに加えて、このチュートリアルでは Amavisdのインストールについて説明します。 、 SpamAssassin およびClamAV 電子メールがスパムやウイルスについてスキャンされるようにします。 SquirrelMailのインストール方法も紹介します ユーザーがメールを読んだり送信したり、パスワードを変更したりできるようにするためのウェブメールインターフェースとして。
このような「仮想」セットアップ(MySQLデータベース内の仮想ユーザーとドメイン)の利点は、「実際の」システムユーザーに基づくセットアップよりもはるかにパフォーマンスが高いことです。この仮想セットアップを使用すると、メールサーバーは数千のドメインとユーザーを処理できます。さらに、新しいユーザー/ドメインを追加したり、既存のユーザー/ドメインを編集したりするときにのみMySQLデータベースを処理する必要があるため、管理が容易です。 dbファイルを作成するためのpostmapコマンド、Postfixのリロードなどはもう必要ありません。MySQLデータベースの管理には、このハウツーにもインストールされるphpMyAdminなどのWebベースのツールを使用できます。 3番目の利点は、ユーザーがユーザー名として(ユーザー名+メールアドレスではなく)メールアドレスを持っていることです。これにより、理解しやすく、覚えやすくなります。
このハウツーは実用的なガイドとして意図されています。理論的背景については説明していません。それらは、Webの他の多くのドキュメントで扱われます。
このドキュメントには、いかなる種類の保証もありません。このようなシステムを構築する方法はこれだけではありません。この目標を達成する方法はたくさんありますが、これが私のやり方です。これがあなたのために働くという保証はありません!
1予備メモ
このチュートリアルはUbuntu14.04サーバー(Trusty Tahr)に基づいているため、このチュートリアルを続行する前に、基本的なUbuntu14.04サーバーのインストールをセットアップする必要があります。システムには静的IPアドレスが必要です。このチュートリアルでは、IPアドレスとして192.168.0.100を使用し、ホスト名としてserver1.example.comを使用しています。
rootとしてログインしていることを確認してください(入力
sudo su
rootになるには)、このチュートリアルのすべての手順をrootユーザーとして実行する必要があるためです。
/ bin/shを/bin/bashへのシンボリックリンクにすることが非常に重要です...
dpkg-ダッシュの再構成
デフォルトのシステムシェル(/ bin / sh)としてダッシュを使用しますか? <-いいえ
...そしてAppArmorを無効にします。apparmor:unrecognized serviceを取得している場合は、update-rc.dから削除します
service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils
2 Postfix、Courier、Saslauthd、MySQL、phpMyAdminをインストールします
Postfix、Courier、Saslauthd、MySQL、およびphpMyAdminをインストールするには、単に実行します
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules -sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass
いくつかの質問があります:
MySQLの「root」ユーザーの新しいパスワード:<-yourrootsqlpassword
MySQLの「root」ユーザーのパスワードを繰り返します:<-yourrootsqlpassword
Webベースの管理用のディレクトリを作成しますか? <-いいえ
メール構成の一般的なタイプ:<-インターネットサイト
システムメール名:<-server1.example.com
SSL証明書が必要です<-OK
自動的に再構成するWebサーバー:<-apache2
dbconfig-commonを使用してphpmyadminのデータベースを構成しますか? <-いいえ
3クォータパッチをPostfixに適用する
Postfixソースを取得し、クォータパッチでパッチを適用し、新しいPostfix .debパッケージをビルドして、それらの.debパッケージをインストールする必要があります。
apt-get build-dep postfix
次のようなエラーが発生する場合があります。-
[メール保護]:〜#apt-get build-dep postfix
パッケージリストの読み取り...完了
依存関係ツリーの構築
状態情報の読み取り...完了
E:あなたいくつかの「ソース」URIをsources.listに配置する必要があります
[メール保護]:〜#
ソースリポジトリを追加することで、次のように修正できます。
vi /etc/apt/sources.list
私の場合のようにエントリを作成します
debhttp://archive.ubuntu.com/ubuntu信頼できるメインの制限付きユニバース
debhttp://archive.ubuntu.com/ubuntutrusty-メインの制限付きユニバースを更新
debhttp://security.ubuntu .com /ubuntutrusty-securityメイン制限付きユニバースマルチバース
debhttp://archive.canonical.com/ubuntutrustyパートナー
deb-src http://archive。 ubuntu.com/ubuntuトラスティメイン制限付きユニバース
deb-srchttp://archive.ubuntu.com/ubuntutrusty-updatesメイン制限付きユニバース
deb-srchttp://security.ubuntu.com/ ubuntutrusty-セキュリティメイン制限付きユニバースマルチバース
deb-srchttp://archive.canonical.com/ubuntu信頼できるパートナー
次へ
apt-get update
apt-get build-dep postfix
cd / usr / src
apt-get source postfix
(次のコマンドで正しいPostfixバージョンを使用していることを確認してください。Postfix2.11.0がインストールされています。実行することでPostfixバージョンを確認できます
postconf -d | grep mail_version
出力は次のようになります。
[メール保護]:/ usr / src#postconf -d | grep mail_version
mail_version =2.11.0
milter_macro_v =$ mail_name $ mail_version
[email protected]:/ usr / src#
wget http://vda.sourceforge.net/VDA/postfix-vda-v13-2.10.0.patch
cd postfix-2.11.0
patch -p1 <../postfix-vda-v13 -2.10.0.patch
次に、debian / rulesを開き、DEB_BUILD_HARDENINGを1から0に変更します。
vi debian / rules
[...] export DEB_BUILD_HARDENING=0 [...] |
これを行わないと、ビルドが失敗し、次のエラーメッセージが表示されます。
maildir.c:関数âdeliver_maildirâ:
maildir.c:974:17:エラー:フォーマットが文字列リテラルではなく、フォーマット引数がない[-Werror =format-security]
maildir.c:977:17 :エラー:フォーマットが文字列ではなく、フォーマット引数がない[-Werror =format-security]
maildir.c:983:17:エラー:フォーマットが文字列ではなく、フォーマット引数がない[-Werror =format-security ]
maildir.c:986:17:エラー:フォーマットは文字列リテラルではなく、フォーマット引数もありません[-Werror =format-security]
maildir.c:関数âsql2fileâ:
maildir。 c:404:25:警告:属性warn_unused_result [-Wunused-result]
maildir.c:417:26で宣言されたâreadâの戻り値を無視します:警告:属性warn_unused_result[-で宣言されたâwriteâの戻り値を無視しますWunused-result]
cc1:エラーとして扱われるいくつかの警告
make:***[maildir.o]エラー1
make:ディレクトリ`/usr/src/postfix-2.11を離れます。 0 / src / virtual'
make [1]:***[update]エラー1
make [1]:ディレクトリ `/ usr / src/postfiを離れますx-2.11.0'
make:***[ビルド]エラー2
dpkg-buildpackage:エラー:debian /rulesビルドでエラー終了ステータス2が発生しました
[メール保護]:/ usr /src/postfix-2.11.0#
これで、新しいPostfix.debパッケージをビルドできます。
dpkg-buildpackage
ここで、1つのディレクトリを上に移動します。ここに、新しい.debパッケージが作成されています。
cd ..
コマンド
ls -l </ P>
利用可能なパッケージを表示します:
[メール保護]:/ usr / src#ls -l <br /> total 6824
drwxr-xr-x 18 root root 4096 Apr 30 04:28 postfix-2.11.0
-rw-r --r--1ルートルート467564月30日04:28postfix-cdb_2.11.0-1_amd64.deb
-rw-r--r--1ルートルート1428424月30日04:28postfix-dev_2.11.0 -1_all.deb
-rw-r--r--1ルートルート8518424月30日04:28postfix-doc_2.11.0-1_all.deb
-rw-r--r--1ルートroot 53898 Apr 30 04:28 postfix-ldap_2.11.0-1_amd64.deb
-rw-r--r-- 1 root root 48500 Apr 30 04:28 postfix-mysql_2.11.0-1_amd64.deb
-rw-r--r-- 1 root root 48610 Apr 30 04:28 postfix-pcre_2.11.0-1_amd64.deb
-rw-r--r-- 1 root root 48324 Apr 30 04:28 postfix-pgsql_2.11.0-1_amd64.deb
-rw-r--r--1ルートルート557012013年6月7日postfix-vda-v13-2.10.0.patch
-rw-r-- r--1ルートルート2678554月30日04:27postfix_2.11.0-1.diff.gz
-rw-r--r--1ルートルート15224月30日04:27postfix_2.11.0-1.dsc
-rw-r--r-- 1 root root 3885 Apr 30 04:28 postfix_2.11.0-1_amd64.changes
-rw-r --r--1ルートルート13292384月30日04:28postfix_2.11.0-1_amd64.deb
-rw-r--r--1ルートルート40347412月12日01:38postfix_2.11.0.orig.tar .gz
[メール保護]:/ usr / src#
postfixおよびpostfix-mysqlパッケージを選択し、次のようにインストールします。
dpkg -i postfix_2.11.0-1_amd64.deb postfix-mysql_2.11.0-1_amd64.deb
4 Postfix/Courier用のMySQLデータベースを作成する
次に、mailというデータベースを作成します:
mysqladmin -u root -p create mail
この質問を求められます:
パスワードを入力してください:<-yourrootsqlpassword
次に、MySQLシェルに移動します:
mysql -u root -p
MySQLシェルでは、メールデータベースに対するSELECT、INSERT、UPDATE、DELETE権限を持つpasswort mail_admin_password(独自のパスワードに置き換えます)を使用してユーザーmail_adminを作成します。このユーザーは、PostfixとCourierがメールデータベースに接続するために使用されます:
GRANT SELECT、INSERT、UPDATE、DELETEONmail。*TO'mail_admin'@'localhost' IDENTIFIED BY'mail_admin_password';
GRANT SELECT、INSERT、UPDATE、DELETEONmail。*TO'mail_admin'@'localhost。 localdomain'IDENTIFIED BY' mail_admin_password';
FLUSH PRIVILEGES;
引き続きMySQLシェルで、PostfixとCourierに必要なテーブルを作成します:
メールを使用する;
CREATE TABLEドメイン(
domain varchar(50)NOT NULL、
PRIMARY KEY(domain))
ENGINE =MyISAM;
CREATE TABLE転送(
source varchar(80)NOT NULL、
destination TEXT NOT NULL、
PRIMARY KEY(source))
ENGINE =MyISAM;
CREATE TABLEユーザー(
email varchar(80)NOT NULL、
password varchar(20)NOT NULL、
quote INT(10)DEFAULT '10485760'、
PRIMARY KEY(email )
)ENGINE =MyISAM;
CREATE TABLEトランスポート(
ドメインvarchar(128)NOT NULLデフォルト''、
トランスポートvarchar(128)NOT NULLデフォルト''、
一意キードメイン(ドメイン)
)エンジン=MyISAM;
やめる;
お気づきかもしれませんが、やめます。コマンドMySQLシェルを終了し、Linuxシェルに戻りました。
ドメイン |
example.com |
ソース | 宛先 |
[メール保護] | [メール保護] |
パスワード | quote | |
[メール保護] | No9.E4skNvGa。 (暗号化された形式の「秘密」) | 10485760 |
domain | 輸送 |
example.com | smtp:[1.2.3.4] |
example.comのすべてのメールを転送します smtpプロトコルを介してIPアドレス
ところで、(メールサーバーシステムのIPアドレスは192.168.0.100だと思います)ブラウザでhttp://192.168.0.100/phpmyadmin/からphpMyAdminにアクセスし、mail_adminとしてログインできます。次に、データベースを確認できます。後で、phpMyAdminを使用してメールサーバーを管理できます。