Cloudflare Email Routingを使って、Gmailでカスタムドメインのメールを受信する

最近、Emailネタが多くなっている気がしますが。Gmailをカスタムドメインで使用する機能が有料化されて、メールシステムをどうしようか思っているのが関係しているのだと思う。 今までは、メールシステムを自分で作って、運用するという構成法を見てきました。 Docker MailserverでEmailサーバーを10分で立てる Docker MailserverからMailjetにrelayさせてEmailの送信をする Docker Mailserverのメールアカウント管理 ただ、この場合、ホストマシンが必要になるのでやや面倒。無料のクラウドサービスで閉じる方法はないのかと思って見ていたら、多分Cloudflare Email Routingを使うのが一番簡単、安く、早そうだ。理屈はこうだ。 カスタムドメインを確保して Cloudflrare Email Routingでカスタムドメイン宛のメールを全部Gmailに転送する Gmailでメールの受信・管理・閲覧をする 今までGmailで使っていたカスタムドメインをそのまま使うことにすれば良いので、Cloudflareのアカウントを作れば良い。 1. カスタムドメインをCloudflareに登録する Email Routingを使うには、持っているドメインをCloudflareに登録する必要がある。Cloudflareのメニュー「Webサイト」から登録できる。 ちなみに、CloudflareはDNSサービス(無料)や、レジストリサービス(ドメイン保有・管理、卸値価格)もやっているが、Email Routingを使う場合、これらのサービスを使っていなくも問題ない。これらのサービスについては、以下の記事でまとめいる。 Cloudflareで権威DNSサーバを使って独自ドメインの管理をする この記事では、例としてmk01.xyzというカスタムドメインを使う(初年99円くらいで買えるので)。 2. Email Routingの設定 Cloudflareのメニューから、上記で登録したカスタムドメインのページを開く。そうすると、メニューに「メールアドレス」が出てくるので、設定ページにジャンプする。 2.1 転送先のメールアドレスの登録 転送先のEmailアドレス(Gmailのアドレス)を登録する。登録すると、確認メールが届き、認証リンクをクリックするまでは使えない。転送先は複数登録できるようになっている。 2.2 カスタムドメインのDNSにMXレコードを追加 Cloudflareの画面上にMXとSPFレコードが出てくるので、これをカスタムドメインのDNSに登録する。ちなみに、Cloudflare DNSを使っている場合は、自動でやってくれる(さすが)。 今回は、別のDNSサービスを使ってみて、動作するか確認してみた(結論、問題なく動作する。当たり前か。) DNS登録した後は、digで確認してみる。 ### MXレコード $ dig mk01.xyz mx ; <<>> DiG 9.10.6 <<>> mk01.xyz mx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13446 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mk01....

February 23, 2022

Cloudflareで権威DNSサーバを使って独自ドメインの管理をする

独自ドメイン(カスタムドメイン)を取得した後は、ドメインのDNS(権威サーバ)をどこかに立てて運用していくことになる。たいていはドメイン取得業者(レジストラ代行, お名前.comなど)が無料でDNSサービスを提供しているが、おまけ程度なので、貧弱なことが多い。 そこで他のクラウドサービスが提供するDNSサービスを検討してみることになる。 その中でメジャーどころでいうと、AWS Route53だろう。けど、こちらは有償になってくる。個人的に使うのであれば、そこまでSLAも必要ないし、無償で使えるものがいい。 自分が使っているクラウド系で調べてみる、以下のDNSサービスが無償で使える感じだった。 Cloudflare DNS DigitalOcean DNS Cloudflareは珍しくFree TierがあるCDNサービスがベースになっていて、よってCDNと関係の深いDNSサービスも無償で提供される。一方で、Digital OceanはIaaSサービスの一つでDNSサービスがあり、その部分は課金がないということで無償で使える。 どちらも使ったことあるので、個人的な観点で見た特徴を挙げておく。 Cloudflare DNS 無償 CDNサービスと一体感がある(例えば、このAレコードのHTTPSトラフィックはCDNを通してサービスするか、などのオプションがあり、スイッチひとつでサイトがCDN化できる) メールサービスと一体感がある(メールを転送してくれるサービス Cloudflare mailとの連携) DNSのトラフィックモニタが使える カスタムドメインのルート部分から全てCloudflare DNSに預けることになる(サブドメイン階層からCloudflare DNSを使うことはできない) ドメインのレジストラサービスがあり、ドメインの更新料が卸売り値で提供されている(儲けをのせていないので安い) Digital Ocean 無償 シンプルなDNSサービス サブドメイン階層からでもDNSを使うことができる ということで、ドメインの運命を全てCloudflareに預ける形になることをいとわなければ、Cloudflare DNSで良いと思う。 Cloudflare DNSの設定方法 ステップごとに見ていく。ここでは既にCloudflareへのサインアップが完了している段階とする。 登録 自分の持っているドメインのDNS設定をするだけなのだが、先ほども触れたように、Cloudflareはドメイン全体(の運命)を全て預ける形になるため、Websitesとしてドメインを登録する。これによって、ドメインのDNS設定も可能になる。 Cloudflareにログインして、メニューからWebsitesに行く。 その後、ドメインを入力して、Add siteをする。 その後、現状のこのドメインが持っているDNSレコードが全てスキャンされて、自動的にCloudflare DNSに登録されるようになっている。 後は、指示に従って進むと、一段上のドメイン階層(com.)に登録するべきNSレコードの情報が出てくる。 レジストラへのNSレコード変更リクエスト 先ほどの続きで、以下の2つのレコードを一段上のドメイン階層(ここでの例はcom.)に登録すれば良い。 maciej.ns.cloudflare.com natasha.ns.cloudflare.com これはドメインを購入したサービス経由(ひいてはレジストラ経由)で実施する。 Cloudflareではちゃんと登録できたかをチェックする機能もある(抜かりがない?)。...

February 6, 2022

「どうやって子どもたちにネットを開放していくか」問題

こんばんわ。今回は、Cloudflareが無償で提供しているDNSサービス"1.1.1.1 for Families“を使って、家族が誤って変なサイトに接続しないようにする方法について取り上げます。 家族(子ども)とネット 家庭に子どもができるとインターネット環境へのアクセスを考えることが度々あります。 まず、デバイスから。初めのうちは、TV内蔵のYoutubeを見始めて、次いで、親のスマホをちょっと触り、どんどん「通常」のインターネットに近寄っていきます。ちょっと学校の宿題を調べたいからスマホ使わせてよ。iPadでAmazonの検索を始めるとか。 ここまでくるとやはり心配になります。変なコンテンツ(アダルト・フィッシングサイト)にアクセスしてないか、とかです。Appleとか使っていると、Parental Controlという機能があって、子どもが変な操作したり・コンテンツにアクセスする制限がある程度できるようになっているのですが、あくまでApple系サービスとかに限った話になります。Safariブラウザ開いてでどんなコンテンツにアクセスしているのかとかまでは見てくれません。 そういった問題への一つの対策としてCloudflareが無償で提供しているDNSサービスの"1.1.1.1 for Families"が使えます。 DNSでブロックするサービス “1.1.1.1 for Families” 簡単にいうと、怪しいサイトへアクセスするときに、名前解決時点で「このサイト怪しいのでブロックするぜ」というサービスです。設定方法は簡単で、PCもしくは家庭内のルーターでDNSサーバ(リゾルバ)の設定を以下に設定するだけです。 1.1.1.3 1.0.0.3 # IPv6なら 2606:4700:4700::1113 2606:4700:4700::1003 このDNSを使用しているときに、ブラウザでアダルトサイトにアクセスすると以下のようになります。 以上が概要です。以下、このサービスの仕組みと家庭内のルーターに設定する方法などを見ていきます。 仕組み 先ほど触れた通り、仕組みは名前解決を使用したアクセス制限になります。名前解決とは、インターネットのサイト名(例: www.google.com)からそのサイトのウェブサーバのIPアドレスを調べる仕組みになります。通常インターネットの世界ではIPアドレスで通信を行います。例えば、192.168.1.1とか8.8.8.8などの表記を見かけることがあると思いますが、これがIPアドレスです(今回の例はIP version4というのもので略してIPv4と書きます)。 私の環境からwww.google.comのIPアドレスを調べると、 % dig www.google.com +short 216.58.197.196 となって、216.58.197.196となります。 この、サイト名とIPアドレスの変換をしてくれるのがDNSです。通常、このDNSはデフォルトで使っているプロバイダ(ISP)指定のDNSになっているのですが、今回はそれを上記のCloudFlareが提供するDNSに変更するということになります。 そうすると、普段ネットでどこかのサイトを開くときに、この名前解決のリクエストがCloudFlareのDNS上に届き、このDNS上で「怪しい」もしくは「アダルトサイト」と判断されたサイトの場合にはそのサイトのIPアドレスに変換しない(応答しない)ことでサイトへの接続を遮断してくれるのです。その結果がさっきのスクショになります。 家庭内のルーターへの設定例 家庭内のネット接続では家の中にルーターがあって、そこにプロバイダ指定のDNSがデフォルトで設定されています。私の家だとNuroを契約していて、プロバイダ(Nuroのプロバイダは実質So-net)が送ってきたルーター(ZTE製F660A: 実質レンタル品)に設定方法を書いていきます。他者の場合でもほとんど同じように設定できると思います。 まず、ブラウザでルーターの管理を開きます。大抵192.168.0.1もしくは192.168.1.1になっていることが多いと思います。 このルータの場合、メニューから アプリケーション»DNSサービス»DNS に行くと、DNS設定の項目があるので、上記のDNSを設定します。 もしくは、DNS設定はDHCPという項目に含まれることが多いので、他のルータの場合も探してみてください。 あとは設定ボタンを押せば完了です。設定直後は、PCやタブレット・スマホの場合、一度Wifi・ネットワークをOFFにしてら再度ONにするなどしないとDNS設定が変わらないかもしれません。 テスト テストは簡単です。ブラウザを開いて、怪しいサイトを開いてみれば分かります。サイトの判定は全部CloudFlareがやっています。 誤判定 正規のサイトに行っているのに遮断されることがたまにあります。今まで発見した誤遮断されたサイトとして楽天カードの申込ページなどがありました。まあ、変なサイトにつなぎに行くより(False negative)、正規のサイトに繋ぎに行かない(False positive)方が安全といえば安全かもしれませんが。 その他 上記で詳しく書きませんでしたが、この"1.1.1.1 for Families"には2つのモードがあります。「マルウェアサイトのみをブロック」するモードと「マルウェアサイトとアダルトサイトをブロック」するモードです。違いは設定するDNSサーバのIPアドレスなので、切り替えも簡単です。詳しくは公式サイトのアドレス設定を見てください。 あと、ブロックされるサイトの名前解決クエリに対してどのようなレスポンスが返ってきているのかを見てみましょう。 % dig jp.pornhub.com @1.1.1.3 ; <<>> DiG 9....

May 24, 2020