自分のサイトのsendmail経由のメールサーバー

少し前まで、私は自分のカタログに登録された、 産業自動車 、および不動産の主題、私のドメインの名前を持つ個人的なメールボックスの編成を提供するタスクに直面しました。 カタログのユーザーに直接連絡先情報を提供する代わりに、私のドメイン名の連絡先情報を提供する方が生産性が高いと判断されました。 これにより、ユーザー間および組織自体の間で出席率が向上します。

ユーザーは、個人用メールボックスから企業にメッセージを書き込んで、アドレス帳に保存したり、その他の便利な方法でメッセージを保存したりできます。 そして、組織は彼からの回答を余儀なくされ、それは出席を増やし、それに応じて私のプロジェクトを収益化するでしょう。

残念ながら、この問題をRunetの最大のフォーラムで解決し始めた途端、私は期待したほどの答えを受け取りませんでした。 同時に、最良の提案は、完全に機能するsendmailを破壊し、PostfixとDovecotをインストールすることであり、これにより他の依存関係も引き出されました。 インストールパッケージは、Exim4、Exim4-base、Exim4-config、Exim4-daemon-heavy、dovecot-common、dovecot-imapd、dovecot-pop3d、php5-imapのようになります。 最悪の場合、すばらしい金額が2000ドルも規定されているか、名誉pass損ではなく通過するように勧められました。

残念ながら、長い間恥はありませんでした。 ネットワーク上の私のニーズや他の同様の解決策を満足させる明白な指示はなかったので、このマニュアルを最も歓迎することにしました。

設定したタスクは、古き良きsendmailとその構成の小さな設定の助けを借りて解決されました。

まず、DNSゾーンに設定を登録する必要があります。

MXの場合:

@ IN MX 10 mx.site.ru. 

AAAAの場合:

 @ IN AAAA 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

Aの場合:

 mx.site.ru. IN A <IP> 

DNS CSで指定されたアドレスは、 / etc / hostsにも登録する必要があります

 <IP> mail.site.ru 

次に、sendmailの構成に直接渡します。

ファイル/etc/mail/sendmail.mcから始めましょう。 デフォルトではsmtpポートは配布用にのみ開かれているため、最初に全員のドアを開きます。 ウイルス、スパム、DOS攻撃の問題については、後で説明します。 これは次のように行われます。

 DAEMON_OPTIONS(`Port=smtp,Addr=<ip>, Name=MTA-ext')dnl 

録音直後:

 FEATURE(`use_cw_file')dnl 

仮想ユーザーとドメインのテーブルを追加します。

 FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')dnl 

次に、メールを配置するファイルを作成します。

 touch "/home/site.ru/public_html/mail" 

そして、彼に所有者の権利とエージェントsendmailグループを割り当てます。

 chown user:mail /home/site.ru/public_html/mail 

パスとファイル名は条件付きであり、ランダムユーザーのアクセスゾーン外にファイルを作成することをお勧めします。

ファイル/ etc /エイリアスには 、メッセージの送信先の仮想ユーザーの名前書き込みます。

 user: /home/site.ru/public_html/mail 


この場合、すべてのメールは/home/site.ru/public_html/mailファイルに蓄積されます

大きなファイルを解析することは難しく、sendmail自体とは別にアクセスするのは不便です。 したがって、最も便利なオプションは、すぐに処理するPHPスクリプトをすぐに送信することです。

 user: "|php5-cgi -c /path/to/php.ini /site.ru/public_html/mail.php" 


可能なすべてのユーザーからの手紙がファイル/site.ru/public_html/mail.phpに送信されるように

ファイル/ etc / mail / virtusertableに命令を書き込みます:

 @site.ru user 

この指示は、site.ruサイトのすべての可能なユーザーを、以前にメールを保存する場所を特定したユーザーユーザーとして定義することを通知します。 将来的には、誰が誰のメールに属しているかを確認し、それをサイトの実際の所有者に渡すだけで済みます。

最後の手順は、ファイル内のsendmailが受け入れるホスト名のみをリストすることです。
/ etc / mail / local-host-names

既存の追加:

 mx.site.ru site.ru (   ) 

sendmailconfigコマンドで変更を有効にします。

DDoS保護


DOS攻撃から保護するために、役に立ついくつかの設定を示します。 それらは/etc/mail/sendmail.mcファイルに書かれなければなりません:

 #     .   ,       ( ). Define(confCONNECTION_RATE_THROTTLE',43')dnl #    sendmail.     ,       ( ). Define(confMAX_DAEMON_CHILDREN',40')dnl #      ,      .   - 100. Define(4configSIN_FREE_BLOCKS',100')dnl #    ,  . Define(confMAX HEADERS LENGTH', 4024')dnl #    .     4  (4 194 302 ).      ,         (attachments). Define(confMAX_MESSAGE_SIZE',4194304')dnl 

次に、 sendmailconfigコマンドを使用して変更を再度アクティブにします。

スパム対策とウイルス対策


Dr.Webをアンチウイルスプログラムとして使用します。 また、スパムへの対処にも役立ちます。 追加のスパムフィルターは使用しませんでした。なぜなら、gmail.comサービスでは、必要な文字が絶えずスパムされていたという事実に悩まされていたからです。 yandexに切り替えることにしました。 したがって、私はスパムが個々の問題をクリーンアップすることを検討し、スパムリストとフィルターの使用はかなり怪しい喜びです。

キーをインストールします。

 wget -O - http://officeshield.drweb.com/drweb/drweb.key | apt-key add 

リポジトリを接続します。

 nano /etc/apt/sources.list deb http://officeshield.drweb.com/drweb/debian stable non-free 

リポジトリの更新:

 aptitude update 

Dr.Webをインストールします。

 aptitude install drweb-sendmail-av-as 

メインのスパム対策設定ファイルは/etc/drweb/plugin_vaderetro.confです。 その中で、特にブラックリストとホワイトリストに興味があります。

 WhiteList = /home/site.ru/public_html/mail/WhiteList BlackList = /home/site.ru/public_html/mail/BlackList 

また、対応する制限と安全性を忘れずに、サイトのセクション、または編集のためにアクセス可能な他の場所に持ち出すことができます。

以上です。 次の出版物では、保存されたフォームを分析し、データベース用のテーブルを作成して、サイトまたはディレクトリのユーザーにリンクします。

使用材料


www.pettingers.org/code/sendmail-local.html
www.sendmail.com/sm/open_source/docs/m4/features.html
it-e.ru/blogs/administrirovanie/nastrojka-mta-sendmail
www.freebsd.org/doc/en/books/handbook/sendmail.html
Progress0.livejournal.com/15919.html
adatum.ru/ustanovka-sendmail-dovecot-drweb-na-ubuntu.html

Source: https://habr.com/ru/post/J260429/


All Articles