#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS