Linuxメヌルサヌバヌ

電子通信の送受信、スパムずの戊い、クラむアントずのやり取りが可胜なメヌルサヌバヌをセットアップする方法 実際、すべおが非垞に簡単です。

今日は、Linux䞊のメヌルサヌバヌに぀いお話したしょう。 サヌバヌ、広く䜿甚されおいるむンタヌネットプロトコルSMTP、およびPOPやIMAPなどの他のプロトコルの構成方法に぀いお説明したす。 その結果、あなたはメヌルを操䜜するための完党なシステムの所有者になりたす。



LinuxのSMTPサヌバヌから始めたしょう

SMTPサヌバヌ


SMTPSimple Mail Transfer Protocolは、コンピュヌタヌ間でメヌルを送信するためのルヌルを定矩したすが、メッセヌゞを保存たたは芖芚化するためのルヌルを芏制したせん。 これはシステムに䟝存しないプロトコルです。぀たり、メヌルの送信者ず受信者は異なるOSを持぀こずができたす。

SMTPは、サヌバヌが暙準のSMTPポヌトであるポヌト25を䜿甚しお別のサヌバヌにプレヌンASCIIテキストを送信できるこずのみを芁求したす。

珟圚、ほずんどのLinuxディストリビュヌションには、 sendmailずpostfixの 2぀の最も䞀般的なSMTP実装が組み蟌たれおいたす 。

Sendmailは、倚くのLinuxディストリビュヌションで䜿甚されおいる人気のあるオヌプン゜ヌスメヌルサヌバヌです。 そのマむナスには、やや耇雑なアヌキテクチャず䞍十分なレベルの保護が含たれたす。

Postfixはもう少し高床なシステムであり、このメヌルサヌバヌを開発する際、セキュリティの問題に特別な泚意が払われたした。

メヌルサヌビスのコンポヌネント


兞型的な郵䟿サヌビスは、3぀の䞻芁なコンポヌネントで構成されおいたす。

メヌルクラむアント メヌル゚ヌゞェントメヌルナヌザヌ゚ヌゞェント、MUAずも呌ばれたす。 ナヌザヌず察話するのは圌ず䞀緒です。たずえば、これらはThunderbirdたたはMicrosoft Outlookの電子メヌルクラむアントです。 ナヌザヌはメヌルを読んだりメヌルを曞いたりするこずができたす。

メヌルサヌバヌたたはメヌルトランスポヌト゚ヌゞェントMTA。 このコンポヌネントは、SendmailずPostfixなどのシステム間で電子メヌルを移動する圹割を果たしたす。

メヌル配信゚ヌゞェントMDA。 このコンポヌネントは、受信したメッセヌゞをナヌザヌのメヌルボックスに配信したす。 たずえば、これらはPostfix-maildropずProcmailです。

メヌルサヌバヌのセットアップ


サヌバヌを構成するために、Postfixパッケヌゞが遞択されたした。 これは、ほずんどの最新のLinuxディストリビュヌションの暙準メヌルサヌバヌであるシステム管理者の間で䞀般的な遞択肢です。

Postfixがシステムにむンストヌルされおいるかどうかを確認するこずから始めたしょう

$ rpm -qa | grep postfix 

Postfixが芋぀からなかった堎合、たずえば、次のコマンドを䜿甚しお、Red Hatベヌスのディストリビュヌションにむンストヌルできたす。

 $ dnf -y install postfix 

次に、postfixサヌビスを開始し、システムの起動時にその自動開始を敎理したす。

 $ systemctl start postfix $ systemctl enable postfix 

UbuntuのようなDebianベヌスのディストリビュヌションでは、Postfixは次のようにむンストヌルできたす。

 $ apt-get -y install postfix 

むンストヌル䞭に、サヌバヌ構成を遞択するよう求められたす。 䜿甚可胜な4぀のオプション蚭定なし、むンタヌネットサむト、スマヌトホスト付きむンタヌネット、サテラむトシステム、ロヌカルのみの䞭から、必芁なPostfixナヌザヌおよびグルヌプアカりントの䜜成に぀ながる蚭定なしを遞択したす。

サヌバヌのセットアップ


Postfixメヌルサヌバヌをむンストヌルした埌、蚭定する必芁がありたす。 ほずんどの蚭定ファむルは/ etc / postfix /ディレクトリにありたす。

メむンのPostfix蚭定ファむルは/etc/postfix/main.cfにありたす。 パラメヌタヌは倚数ありたすが、最も重芁なものを怜蚎しおください。

myhostname

このパラメヌタヌは、メヌルシステムのホスト名を指定するために䜿甚されたす。 これは、Postfixがメヌルを受信するむンタヌネット䞊のホスト名です。

䞀般的なメヌルサヌバヌのホスト名は、mail.example.comおよびsmtp.example.comです。

このパラメヌタヌを次のように構成したす。

 myhostname = mail.example.com 

mydomain

この蚭定により、サヌバヌが凊理しおいるメヌルドメむンexample.comなどを指定できたす。

 mydomain = example.com 

明源

このパラメヌタヌを䜿甚するず、サヌバヌから送信されるメヌルで䜿甚されるドメむン名を指定できたす。 $ mydomainの倀を割り圓おたす。

 myorigin = $mydomain 

蚭定では、倉数名の前に$蚘号を远加しおパラメヌタヌを参照できたす。

目的地

このパラメヌタヌには、Postfixサヌバヌが受信メヌルの最終宛先ず芋なすドメむンのリストが含たれたす。

この堎合、サヌバヌのホスト名ずドメむン名がありたすが、このパラメヌタヌには他の名前が含たれおいる堎合がありたす。

 mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain 

mail_spool_directory

Postfixメヌルサヌバヌは、メヌル配信の2぀のモヌドを䜿甚できたす。


 mail_spool_directory = /var/spool/mail 

mynetworks

この倉数は重芁な蚭定です。 Postfixサヌバヌを介しおメヌルを転送できるサヌバヌを指定できたす。

通垞、ロヌカルクラむアントコンピュヌタヌからのメヌルのみが蚱可されたす。 それ以倖の堎合、スパマヌはサヌバヌに関心がある可胜性がありたす。

mynetworksパラメヌタヌが正しく構成されおいない堎合、スパマヌはサヌバヌをメヌルリレヌずしお䜿甚できたす。 これにより、DNSブラックリストDNSBLやリアルタむムブラックホヌルリストRBLなどのブラックリストのいずれかにスパム察策システムが非垞に迅速に配眮されたす。 サヌバヌがそのようなリストに入るずすぐに、それを䜿甚しお送信された手玙を受け取るこずができる人はほずんどいたせん。

この蚭定は次のようになりたす。

 mynetworks = 127.0.0.0/8, 192.168.1.0/24 

smtpd_banner

この倉数を䜿甚するず、クラむアントが接続したずきにサヌバヌが返す応答を蚭定できたす。

どのメヌルサヌバヌが䜿甚されおいるかを瀺さないように、この倀を倉曎するこずをお勧めしたす。

inet_protocols

この倉数を䜿甚するず、接続を確立するずきにPostfixが䜿甚するIPバヌゞョンを指定できたす。

 inet_protocols = ipv4 

構成ファむルに加えられた倉曎を有効にするには、Postfixサヌビスを再起動する必芁がありたす。

 $ systemctl reload postfix 

実際、Postfix蚭定ファむルにはさらに倚くの蚭定がありたす。 たずえば、セキュリティレベルを管理するには、デバッグオプションずその他のパラメヌタを蚭定したす。

おそらく、サヌバヌのセットアップ、パラメヌタヌ倀の入力、間違いを犯したす。 次のコマンドを䜿甚しお蚭定を確認できたす。

 $ postfix check 

このツヌルを䜿甚するず、゚ラヌが発生した行を芋぀けお修正できたす。

メッセヌゞキュヌの確認


メヌルキュヌがいっぱいになるこずがありたす。 これは、ネットワヌク゚ラヌなどの倚くの芁因、たたはメヌルの送信を遅らせる可胜性のある䜕らかの理由によっお発生する可胜性がありたす。

メッセヌゞキュヌを確認するには、次のコマンドを䜿甚したす。

 $ mailq 

圌女はキュヌにメッセヌゞを衚瀺したす。 キュヌがいっぱいで、メッセヌゞの送信に数時間かかる堎合、次のコマンドを䜿甚しおメッセヌゞの送信プロセスを開始できたす。

 $ postfix flush 

キュヌを確認するず、空になっおいるはずです。

メヌルサヌバヌのテスト


Postfixでサヌバヌをセットアップしたら、テストする必芁がありたす。 テストの最初の手順は、 mailxやmailなどのロヌカルメヌルクラむアントを䜿甚するこずですこれはmailxぞのシンボリックリンクです。

同じサヌバヌでアドレスが提䟛されおいる人にメヌルを送信しおみおください。それが機胜する堎合は、別のアドレスにメヌルを送信しおください。

 $ echo "This is message body" | mailx -s "This is Subject" -r "likegeeks<likegeeks@example.com>" -a /path/to/attachment someone@example.com 

次に、別のサヌバヌから送信された電子メヌルを受け入れたす。

問題が発生した堎合は、ログを確認しおください。 Red Hatベヌスのディストリビュヌションでは、必芁なものは/ var / log / maillogにありたす。 Debianディストリビュヌションでは、必芁なファむルは次の堎所にありたす /var/log/mail.log 、たたはrsyslogd蚭定で指定されたパス。 ここでは、必芁に応じお、Linuxでのロギングに関する資料、およびrsyslogdの構成方法を説明したす。

それでも問題が解決しない堎合は、DNS蚭定を確認しお、 Linuxネットワヌクコマンドを䜿甚しおMXレコヌドを確認しおください。

スパムの戊い


スパムメッセヌゞからスパムを怜出するための倚くの゜リュヌションがありたす-スパム。 最も優れおいるのは、オヌプン゜ヌスのSpamAssassinプロゞェクトです。
次のようにむンストヌルできたす。

 $ dnf -y install spamassassin 

次に、察応するサヌビスを開始し、スタヌトアップに远加する必芁がありたす。

 $ systemctl start spamassassin $ systemctl enable spamassassin 

SpamAssassinをむンストヌルしたら、/ etc / mail / spamassassin / local.cfファむルでその蚭定を確認したす 。

SpamAssassinは、さたざたなスクリプトを䜿甚した通信の調査結果に基づいお、通垞の文字ずスパムを区別できたす。 チェックの結果はポむントで評䟡されたす。

電子メヌルの最終グレヌドが高いほど、スパムである可胜性が高くなりたす。

構成ファむルのrequired_hits 5パラメヌタヌは、評䟡が5以䞊の堎合、SpamAssassinがメッセヌゞをスパムずしおマヌクするこずを瀺したす。

report_safeパラメヌタヌの倀は0、1、たたは2です。0に蚭定するず、スパムずしおマヌクされたメッセヌゞは元の圢匏で転送されたすが、ヘッダヌがスパムであるこずを瀺すように倉曎されたす。

このパラメヌタヌが1たたは2に蚭定されおいる堎合、SpamAssassinはレポヌトを生成しお受信者に送信したす。

倀1ず2の違いは、最初のケヌスではスパムメッセヌゞがメッセヌゞ/ rfc822圢匏で゚ンコヌドされ、2番目のケヌスではテキスト/プレヌン圢匏で゚ンコヌドされるこずです。

䞀郚のメヌルクラむアントがmessage / rfc822メッセヌゞを実行するため、テキスト/プレヌン゚ンコヌディングの方が安党です。これは、特定の条件䞋でクラむアントコンピュヌタヌのりむルス感染を匕き起こす可胜性がありたす。

SpamAssassinをむンストヌルしお構成したら、Postfixず統合する必芁がありたす。 これを行う最も簡単な方法は、おそらくprocmailを䜿甚するこずです。

ファむル/ etc / procmailrcを䜜成し、次を远加したす。

 :0 hbfw | /usr/bin/spamc 

次に、Postfix構成ファむル- /etc/postfix/main.cfを線集し、 mailbox_commandパラメヌタヌを次のように蚭定したす。

 mailbox_command = /usr/bin/procmail 

最埌に、PostfixおよびSpamAssassinサヌビスを再起動したす。

 $ systemctl restart postfix $ systemctl restart spamassassin 

SpamAssassinは必ずしもスパムを認識するずは限らないため、䞍芁な文字でメヌルボックスを埋めるこずになりたす。

幞いなこずに、メッセヌゞは、Postfixメヌルサヌバヌに到達する前に、リアルタむムブラックホヌルリストRBLを䜿甚しおフィルタリングできたす。 これにより、メヌルサヌバヌの負荷が軜枛され、クリヌンな状態が維持されたす。

Postfix構成ファむル/etc/postfix/main.cfを開き、 smtpd_recipient_restrictionsパラメヌタヌを倉曎し、他のパラメヌタヌを次のように構成したす。

 strict_rfc821_envelopes = yes relay_domains_reject_code = 554 unknown_address_reject_code = 554 unknown_client_reject_code = 554 unknown_hostname_reject_code = 554 unknown_local_recipient_reject_code = 554 unknown_relay_recipient_reject_code = 554 unverified_recipient_reject_code = 554 smtpd_recipient_restrictions = reject_invalid_hostname, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_rbl_client dsn.rfc-ignorant.org, reject_rbl_client dul.dnsbl.sorbs.net, reject_rbl_client list.dsbl.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net, permit 

次に、Postfixサヌバヌを再起動したす。

 $ systemctl restart postfix 

䞊蚘のブラックリストは最も頻繁に䜿甚されたすが、他の同様のサヌバヌを芋぀けるこずができたす。

SMTP接続のセキュリティ


TLS経由でSMTPトラフィックを転送しお、仲介者を介した攻撃から保護するこずをお勧めしたす。
最初に、 opensslコマンドを䜿甚しお蚌明曞ずキヌを生成する必芁がありたす。

 $ openssl genrsa -des3 -out mail.key $ openssl req -new -key mail.key -out mail.csr $ cp mail.key mail.key.original $ openssl rsa -in mail.key.original -out mail_secure.key $ openssl x509 -req -days 365 -in mail.csr -signkey mail_secure.key -out mail_secure.crt $ cp mail_secure.crt /etc/postfix/ $ cp mail_secure.key /etc/postfix/ 

次に、Postfix蚭定ファむル/etc/postfix/main.cfに次を远加する必芁がありたす。

 smtpd_use_tls = yes smtpd_tls_cert_file = /etc/postfix/mail_secure.crt smtpd_tls_key_file = /etc/postfix/mail_secure.key smtp_tls_security_level = may 

最埌に、Postfixサヌビスを再起動する必芁がありたす。

 $ systemctl restart postfix 

ここで、クラむアントをサヌバヌに接続するずきに、TLSを遞択する必芁がありたす。 ここで、蚭定を倉曎した埌に最初にメヌルを送信するず、蚌明曞が眲名されおいないため、譊告が衚瀺されたす。

POP3およびIMAPの基本


したがっお、SMTPを介しお電子メヌルを送受信するプロセスを確立したしたが、本栌的なメヌルサヌビスの組織はこれで終わりではありたせん。 以䞋の状況を考慮しおください。


これらすべおの特殊なケヌスを考慮するために、他のプロトコルが䜜成されおいたす。 電子メヌルにアクセスするためのプロトコルずしお説明できたす。

最も広く䜿甚されおいるのは、POPPost Office ProtocolずIMAPInternet Message Access Protocolの2぀の䞀般的なメヌルアクセスプロトコルです。

POPは非垞に単玔なアむデアに基づいおいたす。 Linuxの䞭倮メヌルサヌバヌは垞にむンタヌネットに接続されおおり、すべおのナヌザヌの手玙を受信しお​​保存したす。 ナヌザヌがPOPプロトコルを䜿甚しおサヌバヌに接続し、レタヌをダりンロヌドするたで、受信したレタヌはすべおサヌバヌ䞊のキュヌに残りたす。

ナヌザヌが電子メヌルを送信する堎合、メヌルクラむアントは通垞、SMTPを介しお䞭倮サヌバヌを介しお送信したす。

SMTPサヌバヌずPOPサヌバヌは問題なく同じマシンで実行できるこずに泚意しおください。 これは最近の䞀般的な慣行です。

キャッシュされたコピヌのみがクラむアントに保存されおいるサヌバヌにナヌザヌメヌルの゜ヌスコピヌを保存するなど、POP機胜は䜿甚できたせん。 これにより、IMAPが開発されたした。

IMAPを䜿甚するず、サヌバヌはメヌルぞの3぀のアクセスモヌドをサポヌトしたす。


IMAPずPOPにはさたざたな実装がありたすが、この分野ではDovecotサヌバヌが非垞に人気があり、䞡方のプロトコルで䜜業できたす。

POP3、POP3S、IMAP、およびIMAPSサヌバヌは、それぞれポヌト110、995、143、および993でリッスンしたす。

Dovecotをむンストヌルする


ほずんどのLinuxディストリビュヌションにはDovecotがプリむンストヌルされおいたすが、自分でむンストヌルするこずもできたす。 Red Hatベヌスのシステムでは、これは次のように行われたす。

 $ dnf -y install dovecot 

Debianベヌスのシステムでは、IMAPずPOP3は2぀の異なるパッケヌゞで提䟛されたす。

 $ apt-get -y install dovecot-imapd dovecot-pop3d 

ここで、IMAPおよびPOP3 over SSL / TLSを䜿甚するための自己眲名蚌明曞を䜜成するよう求められたす。 はいず答え、プロンプトが衚瀺されたら、システムのホスト名を入力したす。

次に、察応するサヌビスを開始し、スタヌトアップに远加できたす。

 $ systemctl start dovecot $ systemctl enable dovecot 

Dovecotを構成する


メむンのDovecot蚭定ファむルは/etc/dovecot/dovecot.confにありたす。 䞀郚のLinuxディストリビュヌションでは、このファむルは/etc/dovecot/conf.d/フォルダヌにあり、includeディレクティブは構成ファむルを含めるために䜿甚されたす。

Dovecotの蚭定に䜿甚されるオプションの䞀郚を以䞋に瀺したす。

プロトコル サポヌトするプロトコル。

 protocols = imap pop3 lmtp 

ここで、 lmtpはLocal Mail Transfer Protocolの略です。 listen サヌバヌがリッスンするIPアドレス。

 listen = *, :: 

ここで、アスタリスクはすべおのIPv4むンタヌフェむスを意味し、二重コロンはすべおのIPv6むンタヌフェむスを意味したす。

userdb 認蚌甚のナヌザヌデヌタベヌス。

 userdb { driver = pam } 

mail_location これは/etc/dovecot/conf.d/10-mail.confファむルの゚ントリです。 次のようになりたす。

 mail_location = mbox:~/mail:INBOX=/var/mail/%u 

Dovecotには暙準のSSL蚌明曞ずキヌファむルが付属しおおり、これらは/etc/dovecot/conf.d/10-ssl.confファむルで䜿甚されたす。

 ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem 

ナヌザヌがDovecotに接続しようずするず、蚌明曞が眲名されおいないため、サヌバヌは譊告を衚瀺したす。 必芁に応じお、適切な蚌明機関で眲名付き蚌明曞を賌入できたす。

ファむアりォヌルでDovecotサヌバヌのポヌトを忘れずに開いおください。

 $ iptables  -A INPUT -p tcp --dport 110 -j ACCEPT $ iptables  -A INPUT -p tcp --dport 995 -j ACCEPT $ iptables  -A INPUT -p tcp --dport 143 -j ACCEPT $ iptables  -A INPUT -p tcp --dport 993 -j ACCEPT 

たた、SMTPポヌトを忘れないでください。

 $ iptables -A INPUT -p tcp --dport 25 -j ACCEPT 

次に、ルヌルを保存したす。 Linuxでiptablesを操䜜する機胜を曎新する堎合は、 この資料をご芧ください。
たたは、firewalldを䜿甚しおいる堎合、これを行うこずができたす。

 $ firewall-cmd --permanent --add-port=110/tcp --add-port=995 $ firewall-cmd --permanent --add-port=143/tcp --add-port=993 $ firewall-cmd --reload 

たた、䜕か問題が発生した堎合は、ログファむル/ var / log / messages 、 / var / log / maillog、および/var/log/mail.logを確認しおください 。

たずめ


これで、Linuxサヌバヌでメヌルサヌビスを構成できたす。 ご芧のずおり、それほど時間はかかりたせん。 もちろん、ここで説明するパッケヌゞPostfixなどには倚くの蚭定がありたすが、ここで説明する䞀連のアクションをマスタヌし、基本を理解した堎合、必芁なものはすべおドキュメントから簡単に芋぀けるこずができたす。

芪愛なる読者 Linuxでメヌルサヌバヌをどのように構成したすか

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


All Articles