#author("2022-07-30T06:56:06+09:00","default:dramsukohome","dramsukohome") #author("2022-07-31T08:43:51+09:00","default:dramsukohome","dramsukohome") [[Linux]]~ #shadowheader(1,mail,courie-imap,postfix); #shadowheader(2,目次); #contents * 簡単なpostfix の設定 [#r1b8edce] [[参考ページ:http://easyramble.com/install-setting-postfix.html]] ** インストール [#ped79eff] sudo yum install postfix -インストール後の選択は「インターネット。。。」を選択。 ** 設定 [#y173bdb8] *** sendmail のストップ [#w2fd481d] service sendmail stop chkconfig sendmail off ++ mta の設定 alternatives --config mta ++ chkconfig 関連の設定 chkconfig --add postfix chkconfig postfix on *** main.cf の設定 [#ub952443] ++ 設定ファイル sudo vi /etc/postfix/main.cf ++ メーサーバーのhostname myhostname = mail.example.com ++ メールサーバーのドメイン名 mydomain = example.com ++ 差出人のメールアドレスに使用されるドメイン名~ $myhostname と $ を先頭につけると、変数として上で設定した myhostname の値を参照できます myorigin = $myhostname ++ メール受信を許可するアドレス~ 127.0.0.1 を指定してローカルから外部への配送のみを許可 inet_interfaces = 127.0.0.1 ++ IPv4 のみを有効にする inet_protocols = ipv4 ++ メールサーバー自身に配送されたとみなすドメインのリスト mydestination = $myhostname, localhost.$mydomain, localhost ++ メールのリレー(転送)を許可するネットワーク~ 127.0.0.0/8 を指定してローカルからのメールのみ転送を許可 mynetworks = 127.0.0.0/8 ++ mail を外に送る時、既にあるローカルのメールサーバーを経由する場合 relayhost = [mail.example.com] --- port no の指定 relayhost = [mail.example.com]:25 *** 差出人アドレスの設定 [#cef1e29c] - sudo vi /etc/mailname -- 例) hostname.tar3.net ** postfix の起動 [#se909be2] sudo /etc/init.d/postfix start ** test [#p0ec288e] mail example@example.com . や .. 、ctrl + d で送信。 ** もし mail コマンドが使えない場合 [#if1fd961] *** ubuntu [#xcea883e] sudo apt-get install mailutils *** RedHat(CentOS) [#pb05fd17] yum install mailx ** root に届いたメールの転送。aliases の設定 [#j6383867] - sudo vi /etc/aliases root : mailaddress@hogehoge.com - aliases を反映させる sudo newaliases ** mail user 追加、削除 [#kb727263] - [[参考サイト(メールサーバー構築(Postfix+Dovecot)):http://centossrv.com/postfix.shtml]] (2)メールユーザ追加(SSHによるリモート接続もできるようにする場合) ※例としてユーザ名をcentosとする [root@centos ~]# useradd centos ← ユーザ追加 [root@centos ~]# passwd centos ← パスワード設定 Changing password for user centos. New UNIX password: ← パスワード応答 Retype new UNIX password: ← パスワード応答(確認) passwd: all authentication tokens updated successfully. 以下はSMTP-Auth用ユーザ名、パスワードとシステムのユーザ名、パスワードを別々にする場合のみ [root@centos ~]# echo "パスワード" | saslpasswd2 -p -u linux.hoge.com -c centos ← SMTP-Auth用ユーザ/パスワード登録 [root@centos ~]# sasldblistusers2 ← SMTP-Auth用ユーザ名、パスワード確認 centos@linux.hoge.com: userPassword [root@centos ~]# chgrp postfix /etc/sasldb2 ← sasldb2所有グループをpostfixに変更※最初の1回のみ ※SMTP-Auth用ユーザ名、パスワードを削除する場合 [root@centos ~]# saslpasswd2 -d centos -u linux.hoge.com ← SMTP-Auth用ユーザ名、パスワード削除 ** テストメールの送信 [#z3824604] *** echo mail [#fb6eedd6] echo test | mail root *** mail (mailaddress) [#s956d5f3] mail mailaddress@example.net -編集の終了、送信 ++ . ピリオド ++ .. ピリオドピリオド ++ ctrl + d のどれか -ubuntu の mail コマンドは以下の3つ。 ++ mailutils --- 「ctrl + d」 で終了。 ++heirloom-mailx --- . で終了。 --- cc が最後に付く。 ++bsd-mailx --- . で終了。 --mail コマンドの変更 sudo update-alternatives --config mailx *** /var/log/maillog が再作成されない時。 [#j4225a00] - service rsyslog restart * 外部向けメールサーバ設定(CentOS6) [#e921ce53] ** 参考サイト [#o6ff0d18] - [[メールサーバー構築(Postfix+Dovecot):https://centossrv.com/postfix.shtml]] - [[はじめての自宅サーバ構築 - Fedora/CentOS -:http://kajuhome.com/postfix.shtml]] ** postfix [#d04f25a3] *** postfix Install [#s0ab592b] - yum install postfix *** postfix 設定ファイルの編集 [#d1487bb0] - vi /etc/postfix/main.cf -- 変更 myhostname = mail.tar3.net mydomain = tar3.net myorigin = $mydomain inet_interfaces = all inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 192.168.1.0/24, 127.0.0.0/8 relay_domains = $mydestination relayhost = [smtp.hoge.com]:(portno) 例) [smtp.hoge.com]:587 home_mailbox = Maildir/ -- 追加 #SMTPのVRFYコマンドを使用禁止 #VRFYはアカウントが実在するか確認するコマンド #でたらめなユーザ問い合わせを行う悪質なプログラムによる #アカウント流出を防ぐ disable_vrfy_command = yes #メール送信時にアカウント名・パスワードをサーバに通知し #メールサーバから認証を受ける(SASL認証) smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/authinfo smtp_sasl_mechanism_filter = plain #sasl認証に対応していないメーラは拒否 broken_sasl_auth_clients = yes #クライアントに対しての認証設定 smtp_sasl_tls_security_options = noanonymous smtpd_sasl_security_options = noanonymous #認証に使用するサーバを指定 smtpd_sasl_local_domain = $myhostname #ホストの接続に関しての設定 #permit_mynetworks :クライアントIPが $mynetworks に属していた場合は要求を許可 #reject_rbl_client :RBLサイトに登録されているブラックサイトを拒否 #reject_unknown_client:クライアントIPが DNS に PTR レコードを持たない場合等に # 要求を拒否 smtpd_client_restrictions = permit_mynetworks, #reject_rhsbl_client rhsbl.ahbl.org, reject_rbl_client spamcop.net, reject_rbl_client dynablock.wirehub.net, reject_rbl_client sbl.spamhaus.org, reject_unknown_client, permit #メール中継の設定 #permit_sasl_authenticated:SMTP_AUTHに認証されたクライアントを許可 #reject_unauth_destination:以下のアドレスにマッチするものは許可 # $inet_interfaces # $mydestination # $virtual_alias_domains # $virtual_mailbox_domains # 以下のドメイン・サブドメインは許可 # $relay_domains # 上記以外は全て拒否 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination #message 上限サイズの変更 message_size_limit = 10485760 #tls setting smtp_use_tls = yes smtpd_tls_cert_file = /etc/postfix/tls_key/server.crt smtpd_tls_key_file = /etc/postfix/tls_key/server.key.plain smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache *** メールボックスの作成 [#zdab33ff] - 新規ユーザー作成時 -- 自動で Maildir ディレクトリを作成する設定 mkdir /etc/skel/Maildir chmod 700 /etc/skel/Maildir - 既存ユーザー -- ディレクトリ作成 mkdir /home/linux/Maildir -- 作成したディレクトリのパーミッション変更 chmod 700 /home/linux/Maildir -- オーナ・グループ変更 chown linux:linux /home/linux/Maildir *** gmail関連の設定 [#l5b938e0] - 参考サイト(外部):[[【2021年版】PostfixからGmail経由でメールを送信する方法:https://codeforfun.jp/how-to-send-email-with-postfix-and-gmail/#2]] + アプリパスワードの取得 ++ 2段階認証プロセスのオン +++ gmailを開く +++ ユーザー設定画面に入る ++++ 一番右上、ユーザーのアイコンをクリック、 ++++ 「Googleアカウントを管理」をクリック +++ 左側のメニューから「セキュリティ」を選択 +++ 「Googleへのログイン」から「2段階認証プロセス」をオンにする ++ アプリパスワードの取得 +++ 2段階認証プロセスをオンにするとその下に「アプリパスワード」という項目が増える。~ クリックする。 +++ 「アプリを選択」から「その他(名前を入力)」を選択 +++ 「Postfix」などわかりやすい名前を入力して「生成」ボタンを押す +++ アプリパスワードを安全な場所にメモする *** SMTP-Auth パスワードの設定 [#w3fe86e9] - smtp パスワードの模式図 (isp smtp server) <- 認証1 <- (lan内 smtp server) <- 認証2 <- PC <- thunderbird - 認証1と認証2で別のパスワードを設定する。 - sasl install yum install cyrus-sasl - vi /etc/sasl2/smtpd.conf -- 先頭に「#」を付けてコメント化 pwcheck_method: auxprop #mech_list: plain login - 上記、認証1のパスワード設定 -- vi /etc/postfix/authinfo 以下の例は google の場合。goole のアカウントをx, アプリパスワードを y の部分に入れる [smtp.gmail.com]:587 xxxxxxxx:yyyyyyyy -- hash 化 postmap /etc/postfix/authinfo - 上記、認証2のパスワード設定~ 既存ユーザ(linux)のSMTP-Auth(送信認証)パスワード設定 -- saslpasswd2 -u hoge.com -c linux パスワードを入力 Password: 確認入力(上記のパスワードと同じ物を入れる) Again (for verification): - SMTP-Authユーザの確認 - sasldblistusers2 linux@hoge.com: userPassword - sasldb2のパーミッション・グループ変更 --ll /etc/sasldb2 -rw------- 1 root root 12288 7月 21 05:21 /etc/sasldb2 ↑ ↑ グループ読取(なし) グループ(root) --パーミッション変更 ---chmod 640 /etc/sasldb2 --グループ変更 --- chgrp postfix /etc/sasldb2 --sasldb2の確認 --- ll /etc/sasldb2 -rw-r----- 1 root postfix 12288 7月 21 05:21 /etc/sasldb2 *** master.cf の編集 [#oa93b452] - vi /etc/postfix/master.cf -- 以下をコメントアウト(と追加)~ 特に submission 行のコメントアウト忘れに注意! smtp inet n - n - - smtpd submission inet n - n - - smtpd # -o smtpd_tls_security_level=encrypt # -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject *** 自動起動設定 [#r46cfe99] chkconfig postfix on chkconfig saslauthd on *** 起動 [#f69bac77] service postfix start service saslauthd start ** ルーターport の開放 [#e3eed93a] - tcp 25 - tcp 110 - tcp 143 - tcp 587 ** dovecot [#l0c4ef93] *** dovecot Install [#v15a4926] - yum install dovecot *** dovecot 設定 [#c227ae04] - vi /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:~/Maildir - vi /etc/dovecot/conf.d/10-ssl.conf ssl = yes ssl_cert = </etc/postfix/tls_key/server.crt ssl_key = </etc/postfix/tls_key/server.key.plain #プレインテキスト認証を許可しない disable_plaintext_auth = yes - vi /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = yes auth_mechanisms = plain *** dovecot の起動 [#oef6ad2d] service dovecot start *** dovecot の自動起動設定 [#kd16e85a] chkconfig dovecot on ** thunderbird の設定 [#od3aa8b9] *** thunderbird smtp [#v90e4dc4] -サーバ名:今回たてたサーバ名 -ポート:587 -ユーザ名:上記認証2のユーザ名(full mail address) -認証方式:暗号化されたパスワード認証 -接続の保護:なし *** thunderbird pop3 [#u6ff26fc] -サーバ名:今回たてたサーバ名 -ポート:995 -ユーザ名:今回たてたサーバのユーザー名(@ マークの前) -認証方式:通常のパスワード認証 -接続の保護:SSL/TLS *** thunderbird imap [#lbdc12c0] -サーバ名:今回たてたサーバ名 -ポート:993 -ユーザ名:今回たてたサーバのユーザー名(@ マークの前) -認証方式:通常のパスワード認証 -接続の保護:SSL/TLS ** WebMail(squirrelmail) 化 [#i021529a] ※PHP5.4から文字化け関連のトラブルがしんどいです。~ 自分は諦めてrainloopというWebMailソフトを使用することにしました。 *** 文字化け参考サイト [#zb1400ee] ここのサイトが詳しかったですが、~ 自分の環境では直りませんでした。。。 -[[Webメールソフト SquirrelMail の PHP5.4対応:http://taka2.info/20120705/squirrelmail-php54/]] -[[Webmailシステム構築(SquirrelMail):http://centossrv.com/squirrelmail.shtml]] *** 使用ソフト [#r601bdfc] -- [[squirrelmail:http://squirrelmail.org/]] *** 簡単な設定の参考サイト [#gb31d469] ++ [[http://www.aconus.com/~oyaji/centos/squirrelmail_centos.htm:http://www.aconus.com/~oyaji/centos/squirrelmail_centos.htm]] ++ [[http://centossrv.com/squirrelmail.shtml:http://centossrv.com/squirrelmail.shtml]] *** 問題対応 [#a6cde91d] + Error opening ../data/default_pref 対応~ (以下すべて root 権限) cd /usr/share/squirrelmail/ mkdir data chown :[apache group] data/ cd data/ ln -s /etc/squirrelmail/default_pref default_pref + CREATE "Sent" Reason Given: Invalid mailbox name. 対応~ (以下すべて root 権限) ++ WebMail のメインページから「オプション」 ++ 「フォルダの設定」 ++ 「Trash」「Draft」「Sent」のフォルダーを選ぶ + 「メール上限サイズ」 と 「php.ini の上限サイズ」を合わせる -- 参考 + 「このページにアクセスするにはアカウントが必要です。」対応 -- 参考サイト:[[squirrelmail で「このページにアクセスするにはアカウントが必要です。」が出る:http://u-tamax.jp/2011/11/squirrelmail-%E3%81%A7%E3%80%8C%E3%81%93%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3/]] -- apache(httpd) 実行のユーザー権限を変更している場合に起きる -- php.ini の session.save_path のパーミッションを確認 session.save_path = "/var/lib/php/session" -- パーミッションを変更 cd /var/lib/php/ chown -R :ApacheGroup session + PHP5.4,文字化け編(参考サイト) --[[Webメールソフト SquirrelMail の PHP5.4対応:http://taka2.info/20120705/squirrelmail-php54/]] --[[Webmailシステム構築(SquirrelMail):http://centossrv.com/squirrelmail.shtml]] + ** WebMail(rainloop)化 [#p2e42b02] -squirrelmailが、php5.4以降、文字化けたり色々トラブルが多いので、~ squirrelmailに見切りをつけ「rainloop」というソフトでWebMail環境を構築してみました(^^) *** install[#xc9a984a] wget http://repository.rainloop.net/v2/webmail/rainloop-latest.zip mkdir /var/www/html/rainloop unzip rainloop-latest.zip -d /var/www/html/rainloop find /var/www/html/rainloop -type d -exec chmod 755 {} \; find /var/www/html/rainloop -type f -exec chmod 644 {} \; chown -R apache. /var/www/html/rainloop *** 設定 [#d3747cd5] -httpd.conf でPHPを実行可能にします。 -/etc/httpd/conf.d/rainloop.conf Alias /rainloop /var/www/rainloop <Directory /var/www/rainloop> AllowOverride AuthConfig order allow,deny allow from all </Directory> <Directory /var/www/rainloopi/data> Require all denied </Directory> *** 初回アクセスと設定 [#gfa782ae] -[[https://server.tar3.net/rainloop/?admin]] -デフォルトアカウント --User name : admin --Password : 12345 -adminパスワードの変更 -言語の変更 -受信するメールサーバーの設定 -- Domains -- Add Domain --- あとは普通にメールサーバーの設定をします~ (gmailなどは初めから設定が入ってました) -[Login]-[Default Domain] -- 例) tar3.net *** ユーザーでの確認 [#ff5e3ed9] -[[https://server.tar3.net/rainloop/]] -メールサーバに登録してあるユーザーでログイン *** その他の設定 [#j2031de9] -連絡帳 -- mysql に rainloop のデータベースを作成し権限を与えれば使えます。 -テーマ -- 適当に変えて見た目よく ** その他Webmailソフト [#ab4cdab4] + Roundcube