Postfixの設定
外部からWebアクセスできるように追記します。
[root@www ~]# vi /etc/httpd/conf.d/virtualhost-00-centserver.jp.conf <VirtualHost *:80> ServerName centserver.jp DocumentRoot /var/www/html ServerAlias mail.centserver.jp RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.centserver\.jp RewriteRule ^(.*)$ http://centserver.jp/$1 [R=301,L] </VirtualHost>
Postfixをインストールをします。
[root@www ~]# yum install postfix
Postfixを設定します。
[root@www ~]# vi /etc/postfix/main.cf
77行目:メールサーバードメイン名の指定を追記します。
myhostname = mail.centserver.jp
84行目:ドメイン名の指定を追記します。
mydomain = centserver.jp
100行目:送信元メールアドレスにドメイン名の指定を追記します。
myorigin = $mydomain
116行目:外部からのメール受信を許可する設定に変更します。
inet_interfaces = all
164行目:ドメインメールを受信する設定に変更します。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
420行目:メール格納形式をMaildir形式にする設定を追記します。
home_mailbox = Maildir/
574行目:メールサーバーソフト名の隠蔽化する設定を追記します。
smtpd_banner = $myhostname ESMTP unknown
SMTP認証の設定を最終行へ追加します。
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
受信メールサイズを10MB=10*1024*1024に制限する設定を最終行へ追記します。
message_size_limit = 10485760
master.cfを設定します。
[root@www ~]# vi /etc/postfix/master.cf
16行目:行頭の「#」を削除してコメント解除します。
submission inet n - n - - smtpd
19行目:行頭の「#」を削除してコメント解除します。
-o smtpd_sasl_auth_enable=yes
SMTP認証設定
cyrus-saslをインストールします。
[root@www ~]# yum install cyrus-sasl cyrus-sasl-plain
起動します。
[root@www ~]# systemctl start saslauthd
自動起動設定します。
[root@www ~]# systemctl enable saslauthd
Maildir形式メールボックスの作成
新規ユーザー追加時に自動でMaildir形式メールボックス作成する設定をします。
[root@www ~]# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
メールボックスパーミッションを設定します。
[root@www ~]# chmod -R 700 /etc/skel/Maildir/
起動します。
[root@www ~]# systemctl restart postfix
現在のユーザーのMaildir形式メールボックス作成する設定をします。
[root@www ~]# wget https://rcg.jp/perfect_maildir/perfect_maildir.pl -O /usr/local/bin/perfect_maildir.pl [root@www ~]# chmod +x /usr/local/bin/perfect_maildir.pl
Maildir変換に必要なPerlのTimeDateモジュールインストールします。
[root@www ~]# yum -y install perl-TimeDate
Postfixを停止します。
[root@www ~]# systemctl stop postfix
Maildir一括変換スクリプトを作成します。
[root@www ~]# vi migrate-maildir.sh #!/bin/bash # #Maildir一括変換スクリプト # #メールボックス=>Maildir形式変換スクリプト #http://perfectmaildir.home-dn.net/ FOLDERCONVERT=/usr/local/bin/perfect_maildir.pl #一般ユーザリスト USERLIST=`ls /home/` #ログ MIGRATELOG=/tmp/migrate-maildir.log rm -f $MIGRATELOG #引数(変換元メールボックス形式)チェック if [ "$1" != "mbox" ] && [ "$1" != "Mailbox" ]; then echo "Usage: migrate-maildir.sh {mbox|Mailbox}" exit fi #一般ユーザメールボックス移行 for user in $USERLIST; do if [ "$1" = "mbox" ]; then inbox="/var/spool/mail/${user}" else inbox="/home/${user}/Mailbox" fi if [ -f "${inbox}" ]; then newdir="/home/${user}/Maildir/" mkdir -p "$newdir" mkdir -p "$newdir"/cur mkdir -p "$newdir"/new mkdir -p "$newdir"/tmp chmod -R 700 "${newdir}" $FOLDERCONVERT "$newdir" < "${inbox}" >> $MIGRATELOG 2>&1 chown -R ${user}. "$newdir" find "$newdir" -type f -exec chmod 600 {} \; fi done #rootユーザメールボックス移行 user="root" if [ "$1" = "mbox" ]; then inbox="/var/spool/mail/${user}" else inbox="/${user}/Mailbox" fi if [ -f "${inbox}" ]; then newdir="/${user}/Maildir/" mkdir -p "$newdir" mkdir -p "$newdir"/cur mkdir -p "$newdir"/new mkdir -p "$newdir"/tmp chmod -R 700 "${newdir}" $FOLDERCONVERT "$newdir" < "${inbox}" >> $MIGRATELOG 2>&1 chown -R ${user}. "$newdir" find "$newdir" -type f -exec chmod 600 {} \; fi [ -a $MIGRATELOG ] && cat $MIGRATELOG;rm -f $MIGRATELOG
一括変換スクリプトを実行します。
[root@www ~]# sh migrate-maildir.sh mbox
Maildir一括変換スクリプトを削除します。
[root@www ~]# rm -f migrate-maildir.sh
Maildir変換ツールを削除します。
[root@www ~]# rm -f /usr/local/bin/perfect_maildir.pl
起動します。
[root@www ~]# systemctl restart postfix
webmasterユーザーをメール使用する場合は「/etc/aliases」を変更します。
[root@www ~]# vi /etc/aliases
行頭に#を追加して転送を無効にします。
#webmaster: root
転送設定を反映します。
[root@www ~]# newaliases
TCP25番、TCP587番ポート開放
ルーターの設定で、TCP25番、TCP587番ポートを開放します。(設定方法はご自身の環境に合わせて調べてください。)
ポート開放テスト
こちらのサイトで「ホスト名(centserver.jp)」、「ポート番号(25,587)」の開放確認をします。
OP25B対策
Dovecotのインストール
[root@www ~]# yum -y install dovecot
dovecot.confを設定します。
[root@www ~]# vi /etc/dovecot/dovecot.conf
24行目:行頭「#」を削除してコメント解除します。
protocols = imap pop3 lmtp
30行目:行頭「#」を削除してコメント解除し、IPv6を無効にする設定に変更します。
listen = *
10-mail.confを設定します。
[root@www ~]# vi /etc/dovecot/conf.d/10-mail.conf
31行目:メール格納形式をMaildir形式にする設定を追記します。
mail_location = maildir:~/Maildir
10-auth.confを設定します。
[root@www ~]# vi /etc/dovecot/conf.d/10-auth.conf
11行目:プレインテキスト認証を許可する設定を追記します。
disable_plaintext_auth = no
10-ssl.confを設定します。
[root@www ~]# vi /etc/dovecot/conf.d/10-ssl.conf
8行目:SSL接続を無効にする設定に変更します。
ssl = no
起動します。
[root@www ~]# systemctl start dovecot
自動起動を設定します。
[root@www ~]# systemctl enable dovecot
TCP110番またはTCP143番ポート開放
ルーターの設定で、TCP110番またはTCP143番ポートを開放します。(設定方法はご自身の環境に合わせて調べてください。)
ポート開放テスト
こちらのサイトで「ホスト名(centserver.jp)」、「ポート番号(110または143)」の開放確認をします。
メールユーザーの追加
ユーザーを追加します。(ユーザー例:centos)
[root@www ~]# useradd centos
パスワードを設定します。
[root@www ~]# passwd centos Changing password for user centos. New UNIX password: Retype new UNIX password:
「/etc/ssh/sshd_config」を編集して、秘密鍵での認証接続を無効にする
sshd_configを編集します。
[root@www ~]# vi /etc/ssh/sshd_config
65行目:「no」→「yes」に変更します。
PasswordAuthentication yes
SSHを再起動します。
[root@www ~]# systemctl restart sshd
TeraTermにcentosで新しい接続をします。
SSHサーバー公開鍵認証方式接続の設定をします。
sendmailパスの確認
main.cfを開きます。
[root@www ~]# vi /etc/postfix/main.cf
646行目:sendmailパスの確認します。
sendmail_path = /usr/sbin/sendmail.postfix
メールソフトの登録
先にThunderbirdへGmail(送信用メール)を設定します。
Thunderbirdを起動し、メールをクリックします。
あなたのお名前、メールアドレス(centos@centserver.jp)、パスワードを入力し、「続ける」をクリックします。
「手動設定」をクリックします。
サーバーのホスト名 | ポート番号 | SSL | 認証方式 | ||
受信サーバー | POP3 | mail.centserver.jp | 110 | 接続の保護なし | 通常のパスワード認証 |
送信サーバー | SMTP | mail.centserver.jp | 587 | 接続の保護なし | 通常のパスワード認証 |
上の表を参考にして設定し、「完了」をクリックします。
「接続する上での危険性を理解しました」を選択して「完了」をクリックします。
サーバー証明書の取得
Certbotをインストールします。
[root@www ~]# yum --enablerepo=epel -y install certbot
証明書を取得します。
ドキュメントルート:/var/www/html/
メールアドレス:webmaster@centserver.jp
メールサーバー名:mail.centserver.jp
[root@www ~]# certbot certonly --webroot -w /var/www/html/ -m webmaster@centserver.jp -d mail.centserver.jp --agree-tos
証明書自動更新を設定します。
[root@www ~]# vi /etc/cron.d/letsencrypt
下記を追記します。
00 16 * * 2 root /usrobin/certbot renew --post-hook "service httpd restart"
SSLの設定
main.cfを設定します。
[root@www ~]# vi /etc/postfix/main.cf
下記を最終行に追記します。
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.centserver.jp/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.centserver.jp/privkey.pem
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
tls_high_cipherlist = kEECDH:+kEECDH+SHA:kEDH:+kEDH+SHA:+kEDH+CAMELLIA:kECDH:+kECDH+SHA:kRSA:+kRSA+SHA:+kRSA+CAMELLIA:!aNULL:!eNULL:!SSLv2:!RC4:!MD5:!DES:!EXP:!SEED:!IDEA:!3DES
smtp_tls_ciphers = high
smtpd_tls_ciphers = high
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
smtp_tls_mandatory_protocols=!SSLv2,!SSLv3
smtpd_tls_protocols=!SSLv2,!SSLv3
smtp_tls_protocols=!SSLv2,!SSLv3
master.cfを設定します。
[root@www ~]# vi /etc/postfix/master.cf
16行目:行頭に「#」を追加してコメント化し、SUBMISSIONポートを無効化します。
#submission inet n - n - - smtpd
19行目:行頭に「#」を追加してコメント化し、SUBMISSIONポートのSMTP認証を無効化します。
# -o smtpd_sasl_auth_enable=yes
26行目:行頭の「#」を削除してコメント解除し、SMTPSを有効化します。
smtps inet n - n - - smtpd
28行目:行頭の「#」削除してコメント解除し、SMTPSを有効化します。
-o smtpd_tls_wrappermode=yes
29行目:行頭の「#」を削除してコメント解除し、SMTPSを有効化します。
-o smtpd_sasl_auth_enable=yes
41行目:行頭の「#」を削除してコメント解除し、SMTPSを有効化します。
tlsmgr unix - - n 300 1 tlsmgr
再起動します。
[root@www ~]# systemctl restart postfix
TCP465番ポート開放
ルーターの設定で、TCP465番ポートを開放します。(設定方法はご自身の環境に合わせて調べてください。)
ポート開放テスト
こちらのサイトで「ホスト名(mail.centserver.jp)」、「ポート番号(465)」の開放確認をします。
TCP587番ポート閉鎖
ルーターの設定で、TCP587番ポートを閉鎖します。(設定方法はご自身の環境に合わせて調べてください。)
ポート開放テスト
こちらのサイトで「ホスト名(mail.centserver.jp)」、「ポート番号(587)」の開放されていないことを確認をします。
Dovecot設定
10-auth.confを設定します。
[root@www ~]# vi /etc/dovecot/conf.d/10-ssl.conf
8行目:SSL接続を有効にする設定に変更します。
ssl = yes
14行目:サーバー証明書+中間証明書を指定します。
ssl_cert = </etc/letsencrypt/live/mail.centserver.jp/fullchain.pem
15行目:秘密鍵を指定します。
ssl_key = </etc/letsencrypt/live/mail.centserver.jp/privkey.pem
51行目:行頭の「#」を削除してコメント解除し、脆弱性のある暗号化方式(SSLv2,SSLv3)を無効化します。
ssl_protocols = !SSLv2 !SSLv3
54行目:行頭の「#」を削除してコメント解除し、使用する暗号化方法を指定します。
ssl_cipher_list = EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!3DES
再起動します。
[root@www ~]# systemctl restart dovecot
TCP995番またはTCP993番ポート開放
ルーターの設定で、TCP995番またはTCP993番ポートを開放します。(設定方法はご自身の環境に合わせて調べてください。)
ポート開放テスト
こちらのサイトで「ホスト名(mail.centserver.jp)」、「ポート番号(995または993)」の開放確認をします。
メールソフトの設定変更
Thunderbirdを起動し、メールアドレスを選択し、「このアカウントの設定を表示する」をクリックします。
「サーバー設定」をクリックし、「接続の保護」で「SSL/TLS」を選択します。
「送信(SMTP)サーバー」をクリックし、SMTPサーバーを選択して「編集」をクリックします。
「ポート番号」に「465」を入力し、「接続の保護」で「SSL/TLS」を選択して、「OK」をクリックします。
「OK」をクリックします。
アンチウィルスソフトの連携(Clamav+Amavisd)
Amavisd および Clamav Server をインストールします。
[root@www ~]# yum --enablerepo=epel -y install amavisd-new clamav-scanner clamav-scanner-systemd
amavisd.confを設定します。
[root@www ~]# vi /etc/amavisd/amavisd.conf
23行目:ドメイン名を設定します。
$mydomain = 'centserver.jp';
155行目:行頭の「#」を削除してコメント解除し、メールサーバーを設定します。
$myhostname = 'mail.centserver.jp';
157行目、158行目:行頭の「#」を削除してコメント解除します。
$notify_method = 'smtp:[127.0.0.1]:10025';
$forward_method = 'smtp:[127.0.0.1]:10025';
386行目:以下のようになっているか確認します。
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamd.amavisd/clamd.sock"],
qr/\bOK$/m, qr/\bFOUND$/m,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
起動します。
[root@www ~]# systemctl start clamd@amavisd amavisd spamassassin
自動起動を設定します。
[root@www ~]# systemctl enable clamd@amavisd amavisd spamassassin
main.cfの設定です。
[root@www ~]# vi /etc/postfix/main.cf
最終行に追記します。
content_filter=smtp-amavis:[127.0.0.1]:10024
master.cfの設定です。
[root@www ~]# vi /etc/postfix/master.cf
最終行に追記します。
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
再起動します。
[root@www ~]# systemctl restart postfix
コメント