メールサーバの構築

Debian さくらのVPS

次はメールサーバの構築

sendmail パッケージのインストール

root@sakura:~# apt-get install sendmail
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  liblockfile1 libsigsegv2 lockfile-progs m4 make procmail sendmail-base
  sendmail-bin sendmail-cf sensible-mda
提案パッケージ:
  m4-doc make-doc sendmail-doc rmail logcheck resolvconf sasl2-bin
以下のパッケージが新たにインストールされます:
  liblockfile1 libsigsegv2 lockfile-progs m4 make procmail sendmail
  sendmail-base sendmail-bin sendmail-cf sensible-mda
アップグレード: 0 個、新規インストール: 11 個、削除: 0 個、保留: 0 個。
2,473 kB のアーカイブを取得する必要があります。
この操作後に追加で 6,026 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://ftp.jp.debian.org/debian stretch/main amd64 liblockfile1 amd64 1.14-1+b1 [15.7 kB]
	:
	:
取得:11 http://ftp.jp.debian.org/debian stretch/main amd64 sendmail all 8.15.2-8 [222 kB]
2,473 kB を 0秒 で取得しました (6,754 kB/s)
以前に未選択のパッケージ liblockfile1:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 34289 個のファイルとディレクトリがイン ストールされています。)
	:
	:
sensible-mda (8.15.2-8) を設定しています ...
sendmail (8.15.2-8) を設定しています ...
systemd (232-25+deb9u1) のトリガを処理しています ...
root@sakura:~#

sendmail の設定

sendmail.mc

root@sakura:~# cd /etc/mail
root@sakura:/etc/mail# mv sendmail.mc{,.orig}
root@sakura:/etc/mail# cp sendmail.mc{.orig,}
root@sakura:/etc/mail# vi sendmail.mc

root@sakura:/etc/mail# diff -u sendmail.mc{.orig,}
--- sendmail.mc.orig    2018-02-14 08:51:09.448733373 +0900
+++ sendmail.mc 2018-02-14 08:59:07.216661531 +0900
@@ -54,9 +54,9 @@
 dnl #
 FEATURE(`no_default_msa')dnl
 dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
-DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
+dnl yasunari DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
 dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
-DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
+dnl yasunari DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
 dnl #
 dnl # Be somewhat anal in what we allow
 define(`confPRIVACY_FLAGS',dnl
@@ -97,6 +97,12 @@
 include(`/etc/mail/m4/dialup.m4')dnl
 include(`/etc/mail/m4/provider.m4')dnl
 dnl #
+dnl # Masquerading options
+FEATURE(`always_add_domain')dnl
+MASQUERADE_AS(`yamasita.jp')dnl
+FEATURE(`allmasquerade')dnl
+FEATURE(`masquerade_envelope')dnl
+dnl #
 dnl # Default Mailer setup
 MAILER_DEFINITIONS
 MAILER(`local')dnl
root@sakura:/etc/mail#

local-host-name

root@sakura:/etc/mail# vi local-host-names
	:
	:
root@sakura:/etc/mail# cat !$
cat local-host-names
localhost
sakura.yamasita.jp
yamasita.jp
root@sakura:/etc/mail#

aliases

root@sakura:/etc/mail# vi /etc/aliases
	:
	:
root@sakura:/etc/mail# newaliases
/etc/mail/aliases: 249 aliases, longest 46 bytes, 4839 bytes total
root@sakura:/etc/mail#

sendmail の再起動

root@sakura:/etc/mail# /etc/init.d/sendmail restart
[ ok ] Restarting sendmail (via systemctl): sendmail.service.
root@sakura:/etc/mail#

mailutils のインストール

mailutils をインストールする。
root@sakura:/etc/mail# apt-get install mailutils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  guile-2.0-libs libfribidi0 libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7
  liblzo2-2 libmailutils5 libmariadbclient18 libntlm0 libpython2.7
  mailutils-common mysql-common
提案パッケージ:
  mailutils-mh mailutils-doc
以下のパッケージが新たにインストールされます:
  guile-2.0-libs libfribidi0 libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7
  liblzo2-2 libmailutils5 libmariadbclient18 libntlm0 libpython2.7 mailutils
  mailutils-common mysql-common
アップグレード: 0 個、新規インストール: 14 個、削除: 0 個、保留: 0 個。
7,344 kB のアーカイブを取得する必要があります。
この操作後に追加で 27.6 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://ftp.jp.debian.org/debian stretch/main amd64 libgc1c2 amd64 1:7.4.2-8 [208 kB]
	:
	:
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
root@sakura:/etc/mail#

テスト

gmail に送ってテストする
yasunari@sakura:~$ mail 内緒@gmail.com
Cc:
Subject: test to gmail
test to gmail
迷惑メールボックスには落ちたが、とりあえず gmail には届いた

ポート開放

root@sakura:~# iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
root@sakura:~# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
DROP       tcp  --  anywhere             anywhere             tcp flags:!FIN,SYN,RST,ACK/SYN state NEW
DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:内緒
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
root@sakura:~# /etc/init.d/netfilter-persistent save
[....] Saving netfilter rules...run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
done.
root@sakura:~#
外部からメールを送ってみる
yasunari@av:~$ mail 内緒@sakura.yamasita.jp
Subject: mail to 内緒@sakura.yamasita.jp
mail to 内緒@sakura.yamasita.jp
EOT
yasunari@av:~$
無事届いた

DNS の設定変更

SPF レコードに追加と、mx レコードの追加
root@sakura:~# vi /etc/bind/yamasita.jp-out-zone
	:
        IN      MX      10      sakura.yamasita.jp.
        IN      TXT     "v=spf1 +ip4:122.249.159.72 +ip4:内緒 +ip4:13.230.13.194 -all"
	:
root@sakura:~# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.
root@sakura:~#
テストする
yasunari@sakura:~$ mail 内緒@gmail.com
Cc:
Subject: test to 内緒@gmail.com
test to 内緒@gmail.com
yasunari@sakura:~$
ところが、届いたメールは迷惑メールに
ARC-Authentication-Results: i=1; mx.google.com;
       spf=fail (google.com: domain of 内緒@yamasita.jp does not designate 2401:2500:102:3001:内緒 as permitted sender) smtp.mailfrom=内緒@yamasita.jp
Return-Path: <内緒@yamasita.jp>
Received: from sakura.yamasita.jp (内緒.v6.sakura.ne.jp. [2401:2500:102:3001:内緒])
うーん、IPV6 アドレスから送ってる。。。

前向きには IPV6 向けの設定をすることだが、 いろいろあるので
後ろ向きに IPV6 を無効にする

root@sakura:/etc# mv sysctl.conf{,.orig}
root@sakura:/etc# cp sysctl.conf{.orig,}
root@sakura:/etc# echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf
root@sakura:/etc# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
root@sakura:/etc#
もう一度 gmail に送る
yasunari@sakura:~$ mail 内緒@gmail.com
Cc:
Subject: mail 内緒@gmail.com
mail 内緒@gmail.com
yasunari@sakura:~$
迷惑メールにならず、OK!

DNS サーバの構築
山下康成の
雲の上

Web サーバの構築(1)apache のインストールとセットアップ

Copyright (C) 2003-2018 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市/東京都新宿区