投稿者「PageMaster」のアーカイブ

パブリックDNSリゾルバ [1.1.1.1]とは

DNS(Domain Name System)は[ドメイン名]を[グローバルIP]に変換してくれるもので、インターネットアクセスには不可欠なものです。

 

1.ISPのDNSリゾルバ

インターネットを開通させるとISPのDNSリゾルバがデフォルトで設定されます。

このISPのDNSリゾルバはセキュリティ的に弱く、アクセス速度は平均で68.23msとあまり早くありません。

貴方が利用しているISPのDNSリゾルバがセキュリティ的に問題があるか否かは下記のサイトをアクセスすると確認できます。

https://isbgpsafeyet.com/

表示された画面で[Test your ISP]を実行すると確認できます。

私の場合は自宅回線とスマホのテザリング回線で試した結果、自宅回線のISPのDNSリゾルバはBGPが実装されてない事が判りました。

 

2.今までのパブリックDNSリゾルバ

そこで登場したのが安全でスピードが速く、誰でもが利用できる[パブリックDNSリゾルバ]です。

Googleの[8.8.8.8]、IBM連合のQuad9[9.9.9.9]及びCiscoの[208.67.222.222]がこれにあたります。

ISPのDNSの速度は平均 68.23ms でしたが、これらに変更する と22から32ms に速度が向上します。

しかし何故、この様な無償のDNSサーバを提供するのでしょうか?

DNSを監視するとユーザが何処のサイトを検索したのかの履歴が全て分かります。

Google社は広告事業で成り立っている企業なので、当然これを利用する事によりお客様が関心を持ちそうな広告を表示させる事に利用できます。

その他の会社は自社では使わないと思いますが、広告業者への販売など、商用的な目的に使用していると言われています。

 

3.Cloudflare社のパブリックDNSリゾルバ

新たに登場したパブリックDNSリゾルバがCloudflare社の[1.1.1.1]です。

これはアジア地区のIPアドレスの元締めの APNIC と Cloudflare社 の共同研究の結果から2018年4月1日から提供を開始したサービスです。

APNICの思いは[APNIC LabsがCloudflareと研究契約を締結]で公開されています。

一方、Cloudflare社は『より良いインターネット環境の構築をサポートする』事を目標に設立された米国の企業です。

よってこのサービスは、DNSの履歴はデバック目的で24時間は保持するがそれ以降は総て破棄し、商用利用はしない事を明言しています。

またこれを立証する為に外部監査も受けいれています。

更にCloudflare社は[1.1.1.1]以外にセキュリティ機能付きDNS

[1.1.1.2]:マルウェアサイトをブロックするDNSリゾルバ

[1.1.1.3]:上記に加えてブラウザのセキュリティサーチ機能を強制するDNSリゾルバ

も無償提供しています。

更に応答スピードは今までのパブリックDNSリゾルバーより更に高速になっています。

下図は全世界のDNSを常時監視している[DNSPerf]の2024年2月のスピード計測結果です。

赤枠で囲んだものが無償のパブリックDNSリゾルバで、[1.1.1.1]が一番性能が良い事が判ります。

■赤枠以外はCloudflare社が無償で提供している[1.1.1.2]や[1.1.1.3]等のセキュリティ機能をサービスとして有償化し、企業やISPに販売しているDNSリゾルバになります。

よって[1.1.1.1]は、高速で一番安全な無償の[パブリックDNSリゾルバ]となります。

 

1.CloudFlareのDNSリゾルバを利用する方法

DNSリゾルバーを利用する上での注意点

ブラウザの設定でセキュアDNSの設定は行わないで下さい。

これを行うと意図しないDNSが使われる事があります。

例えばGoogle Chromeの場合の設定は下記になります。

①[設定→プライバシーとセキュリティ]を実行する。

②画面にある[セキュリティ]をクリックする。

③表示された画面の中にある[セキュアDNSを利用する]をOFFにします。

利用するDNSの設定はデバイスのプロパティのDNS設定で下記を指定する事によって行います。

IPv4 IPv6
プライマリ セカンダリ プライマリ セカンダリ
1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001

しかし、上記のやり方は設定が面倒なので下記のCloudflare社が提供するアプリケーションを利用した方が簡単です。

 

1.プログラムをダウンロードする。

[https://1.1.1.1]をクリックすると下記画面が表示されます。

■上記画面から利用しているデバイスのOSを選択してプログラムをダウンロードします。

■スマホの場合はプログラムがそのままダウンロードされますが、Windowsの場合は対応するインストールプログラム[Cloudflare_WARP_Release-x64.msi]がPCにダウンロードされます。

 

2.セットアップ方法

Windowsの場合はダウンロードしたファイルをダブルクリックする事によるWARPをインストールします。

インストールが完了するとタスクバーにマークが表示されます。

上記のマークをクリックし使用許諾等々に同意すると下図が表示されます。

■歯車をクリックすると[1.1.1.1]と[1.1.1.1 with WARP]の2つのモードのどちらを利用するのか?の選択ができます。

■スマホの場合も画面が少し違いますが、上記と同じように2つのモードを切り替える事ができます。

 

3.[1.1.1.1]モードとは

[1.1.1.1]モードとは、現在利用しているISPの回線を使ってアクセスするモードです。

スライドをONにして[1.1.1.1]を有効にします。

ブラウザはアクセスしたいURLを[1.1.1.1]に問い合わせ、取得したグローバルIPに現在のISPの回線を使ってアクセスし、その結果をブラウザ画面を表示します。

[1.1.1.1]に接続した状態で[現在のプロバイダ]と[現在のIPアドレス]を確認すると、現在の利用回線の情報が表示されます。

この結果が貴方が利用しているIPSになっている筈です。

 

4.[1.1.1.1 with WARP]モードとは

[1.1.1.1 with WARP]モードとは、PCとCloudflare間にVPNトンネルを張り、Cloudflareの所でアクセスするモードです。

スライドをONにして[WARP]を有効にします。

この接続方法は公衆Wi-Fi等のセキュリティ的に弱い環境でも、安全にDNS解決やサイトアクセス中に起こる情報漏洩も防止する事ができます。

[1.1.1.1 with WARP]に接続した状態で[現在のプロバイダ]と[現在のIPアドレス]を確認すると、Cloudflareが表示されます。

 

尚、Cloudflare社は上記の[1.1.1.1]以外にセキュリティ機能を付加した下記のものも提供しています。

パブリックDNSリゾルバ  [1.1.1.2]とは

パブリックDNSリゾルバ  [1.1.1.3]とは

これらも参考にしてください。

 

パブリックDNSリゾルバ [1.1.1.2]とは

このドキュメントを読む前に必ず下記ドキュメントを参照してください。

パブリックDNSリゾルバ [1.1.1.1]とは

 

Cloudflare社はインターネット通信を常時監視しアクセス状況やアタックの状況を[Cloudflare Radar]として公開しています。

[1.1.1.2]はこの[Cloudflare Radar]がアクセスドメインを下記カテゴリに分類したものをブロックします。

カテゴリ 解説
Command and Control & Botnet
[ボットネット]とは、攻撃者やサイバー犯罪者の制御下にある、悪性ソフトウェア(マルウェア)に感染したコンピューターのネットワークのことです。
[コマンド&コントロールサーバ」とは、[ボットネット]や[感染コンピュータのネットワーク]に対し、不正なコマンドを遠隔で頻繁に送信するために利用されるサーバのことです
Cloudflareがこれに該当するサイトと認識したものをブロックします。
Cryptomining [クリプトマイニング]は仮想通貨を取得する手段で、この計算には膨大なCPUリソースを利用します。
標的のコンピュータをマルウェアに感染させ、意図せずクリプトマイニング処理を行わせる攻撃はクリプトジャッキングと呼ばれます。Cloudflareがこれに該当するサイトと認識したものをブロックします。
Malware コンピューターやその利用者に被害をもたらすことを目的とした、悪意のあるソフトウェアを[マルウェア]と呼びます。

もともとコンピューターウイルスやワームなどと呼ばれていましたが、悪意のあるソフトウェアを総称する用語としてマルウェアが広まりました。

Cloudflareがこれに該当するサイトと認識したものをブロックします。

Phishing [フィッシング] とは実在する組織を騙って、ユーザネーム、パスワード、アカウントID、ATMの暗証番号、クレジットカード番号といった個人情報を詐取することです。

電子メールのリンクから偽サイト (フィッシングサイト) に誘導し、そこで個人情報を入力させる手口が一般的に使われています。

Cloudflareがこれに該当するサイトと認識したものをブロックします。

Spam [スパム]とは、受け取り手が望んでいない、要求していない通信を大量に送信することをいいます。

Cloudflareは、不要な懸賞、アンケート、広告でユーザーをターゲットにすることで知られるサイトをブロックします。

 

1. [1.1.1.2]を利用する方法

利用するDNSの設定はデバイスのプロパティの設定で下記を指定する事によって行います。

IPv4 IPv6
プライマリ セカンダリ プライマリ セカンダリ
1.1.1.2 1.0.0.2 2606:4700:4700::1112 2606:4700:4700::1002

しかし、上記は面倒なのでCloudflareの[1.1.1.1]アプリケーションを利用します。

 

1.[1.1.1.2]に切り替える方法

①画面の下にある歯車の隣のアイコンをクリックします。

下図は[1.1.1.1]モードの図ですが[1.1.1.1 with WARP]モードでも操作方法は同じです。

両者の違いは[接続方法の違い]を参照して下さい。

 

②表示された画面から[接続]を選択し、接続先を切り替えます。

■[マルウェアをブロック]を選択します。

以上で[1.1.1.1]モード又は[1.1.1.1 with WARP]モードでも[1.1.1.2]に接続されます。

 

2.確認方法

Cloudflare社では下記の確認サイトを用意しています。安全なのでアクセスして見てください。

カテゴリ URL
Command and Control & Botnet https://commandandcontrolandbotnet.testcategory.com
Cryptomining https://cryptomining.testcategory.com
Malware https://malware.testcategory.com
Phishing https://phishing.testcategory.com
Spam https://spam.testcategory.com

下記画面が表示されたらブロックされている事が確認できます。

下記画面が表示されたらブロックされていません。下図は日本語表示に変えた画面です。

以上でポリシーが適用されたか否かが確認できます。

 

 メモ

上記でブロックできるカテゴリは下記になります。

[Command and Control & Botnet]、[Cryptomining]、[Malware]、[Phishing]、[Spam]です。

 

しかしCloudflareが認識しているセキュリティリスクのカテゴリには下記もあります。

[Anonymizer]、[Brand Embedding]、[DGA Domains ]、[DNS Tunneling]、[Private IP Address]、[Spyware]

これらをブロックする為には[1.1.1.2]接続でなく、ZTNAすなわちゼロトラストに移行する必要があり、Cloudflare社は、これも50名までは無償で提供しています。

 

Cloudflareを経由するSynology Webサイトの訪問者IPの復元

 メモ

このドキュメントは古いドキュメントです。

昔はCloudflareとWebサーバ間をIPv6で接続していましたが、現在はセキュリティ対策の為にトンネル接続に切り替えました。

詳細は[CloudflareのCDNにWebサーバを接続する方法とセキュリティ対策]を参照して下さい。

Synologyの中に構築したWebサーバをCloudflareのCDN経由でアクセスすると[remoteip]がCloudflareのIPアドレスになり誰がアクセスしたのかの情報が取れなくなります。

そこでSynologyのApache2.4に[mod_remoteip]を設定します。

その結果、クライアントのIPアドレスが取得できるようになります。

ここではApache2.4に[mod_remoteip]を設定しアクセス元のIPアドレスを復元させる方法を解説します。

尚、Cloudflareの公式ドキュメントは「Restoring original visitor IPs」を参照して下さい。

1.対策を打つ前に

2.SynologyのApache環境を理解する

3.具体的な対策

1.対策を打つ前に

現在の[remoteip]がどうなっているのか?を知らなければ設定変更の結果の確認ができません。

そこで下記を実行します。

1)header.phpの中に下記コマンドを記述します。

<?php var_dump($_SERVER['REMOTE_ADDR']);?>

■何も手を打たない段階では、この値はCloudflareのIPアドレスになります。

■この値が下記のアクセスデバイスのIPアドレスになると成功です。

 

2.あなたデバイスのIPアドレスを確認します。

IPv4環境の時は「現在のIPアドレス」をクリックして現在のIPアドレスを確認して下さい。

IPv4環境でテストするのが良いのですが、IPv6の時はコマンドプロンプトで「ipconfig」を実行し、現在のIPv6アドレスを確認して下さい。

 メモ

IPv4/IPv6共用環境ではCloudflare経由のアクセスはIPv6通信が優先されます。

IPv6アドレスは下記の様な形式になります。

DSM :240b:12:860:c100:211:32ff:feaf:8e0b

PC  :240b:12:860:c100:18d8:5055:7f3e:2ffe

スマホ:240b:12:860:c100:4a:7308:e653:9a8

赤字の所が接続機器によって異なる部分です。

 

2.SynologyのApache環境を理解する

Synology NAS サーバーには「NGINX」の下に「Apacheサーバー」が位置づけられます。

1)NGINX

NGINXは、NASにインストールする各種アプリケーションのフロントエンドとして機能します。

NGINXは「/etc/nginx/」の下にある各種設定ファイルを使用して実行されます。

 

メインの構成ファイルは「nginx.conf」で、この中の下の方にある下記記述に注目して下さい。

省略
include sites-enabled/*;

■上記は「/etc/nginx/sites-enabled」の中に作成された構成ファイルは読み込みます。という事を意味しています。

■「sites-enabled」の実際の場所は「/usr/local/etc/nginx/sites-enabled」になり、ここはユーザ固有の領域なのでNGINXが更新されても変更されない領域になります。

[WebStation]で色々な設定を行うとユーザ固有の情報としてここに設定情報が登録されますし、リバースプロキシを設定した場合は「server.ReverseProxy.conf」に反映されます。

 

構成ファイルを追加したり変更した場合は、下記のコマンドを使ってNGIXの再起動等を行って下さい。

コマンド 内容
nginx -v NGINX バージョンの確認:
nginx -t 設定ファイルの構文チェック
nginx -s reload 停止せずに設定を適用させる

 

2)Apache2.4

Apache2.4は[/var/packages/Apache2.4/]の下にある各種プログラムや設定ファイルを使用して実行されます。

しかしユーザが利用するディレクトリとして[/usr/local/etc/apache24]が用意されており、[/usr/local/etc/apache24/conf]フォルダの中にある[httpd24.conf]ファイルがメインの構成ファイルになります。

この構成ファイルの下の方にある下記に注目して下さい。

省略
IncludeOptional sites-enabled/*.conf

■上記は[/usr/local/etc/apache24/sites-enabled]の中にあるconfファイルは読み込みます。という事を意味しています。

[WebStation]で仮想ホスト等を作成すると、ここにCONFファイルとして情報が記録されます。
ここに登録されたCONFファイルは、Apache2.4が更新されても削除されません。

■ここに[CloudflareアクセスのCONFファイル]を作成するとApache2.4が更新されても削除される事はありません。

 

構成ファイルを変更した場合は下記のコマンドを使ってApache2.4の再起動等を行います。

コマンド 内容
synopkg start Apache2.4 起動
synopkg restart Apache2.4 再起動
synopkg stop Apache2.4 停止

 

3.具体的な対策

1)SSHのroot権限でログインして下さい。

操作方法の詳細は[Synology NASをSSHでアクセスする方法]を参照して下さい。

 

2)ターゲットディレクトリに移動します。

[cd /usr/local/etc/apache24/sites-enabled]を実行します。

このフォルダにどの様なファイルがあるか?は[ls]で確認して下さい。

 

3)Cloudflare用のCONFファイルを作成します。

・[vi cloudflare.conf]を実行します。

・[i]キーを挿入します。

・下記ファイルを[Ctrl+C]でクリップボードにコピーし[Alt+V]でエディタに貼り付けます。

LoadModule remoteip_module modules/mod_remoteip.so 
RemoteIPHeader X-Forwarded-For
#IP-v4
RemoteIPTrustedProxy 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22
#IP-v6
RemoteIPTrustedProxy 2400:cb00::/32 2606:4700::/32 2803:f800::/32 2405:b500::/32 2405:8100::/32 2a06:98c0::/29 2c0f:f248::/32

・[Esc]キーを挿入します。

・[:wq]でviエディタを終了します。

4)Apache2.4を再起動します。

[synopkg restart Apache2.4]を実行します。

以上で設定した[cloudflare.conf]が反映されます。

 

 メモ

上記で設定したCloudflareのIPアドレスは2023年10月の物になります。

最新の[IP Ranges]はリンク先を参照して下さい。

 

CloudflareにGoogle Adsenceのads.txtを設定する

このサイトのURL(hnw.t-spirits.com/oldies)はCloudflareのDNSで管理されています。

一方、Google Adsenceのサイト登録はサブドメインは受け付けられないのでドメイン名(t-spirits.com)で登録しています。

その結果(ads.txt)ファイルを正規の場所に設置しても下図の様に不明となります。

■上記は[t-spirits.com/ads.txt]を探しに行ったが見つからなかったという事を意味しています。

そこで、ここではこれにどう対処したら良いか?の対策方法を解説します。

0.前提条件

ルートドメイン(t-spirits.com)でアクセスされた時にCloudflareのDNSにアクセスがこないと何も対処できません。

そこでルートドメインのDNSレコードを作成します。

■Cloudflareの当該サイトのDNSレコードで下記を設定します。

・タイプ:AAAA

・名前:@

・IPv6アドレス:このサイトがあるサーバのIPアドレス

※当然、AレコードでもOKです。

以上でルートドメインでアクセスした時にCloudflareのDNS設定にアクセスが来るようになります。

 

1.[ads.txt]ファイルの設置場所を変更する

これが一番簡単な方法です。

①[ads.txt]をWebフォルダ直下に配置する。

以上で[https://t-spirits.com/ads.txt]でアクセスするとAdsennseから指定されたコードが表示されるようになり、Google Adsenceの表示は下図のようになります。

■Adsenseの結果が反映されるまでに1日は待ちましょう!

 

2.Cloudflereのページルール機能を利用するを利用する

この方法は正規の場所に[ads.txt]を配置するが、ページリダイレクト処理でここにアクセスがくるようにリダイレクト処理する方法です。

①[ads.txt]をAdsense対象フォルダの直下に配置する。

②Cloudflareの当該サイトの[ルール→ページルール]を起動し下記を設定する。

■URL欄にGoogleが見に来るURLを設定します。

■設定の選択は[URLの転送]と[301-永久リダイレクト]を設定します。

■転送先にads.txtが設定されているURLを設定します。

■[ページルールを保存およびデプロイ]ボタンを挿入します。

以上でhttps://t-spirits.com/ads.txtでアクセスするとAdsennseから指定されたコードが設定されている場所にリダイレクトされる様になります。

 

3.Quickアプリを利用する方法

この方法はQuickというアプリを利用して[ads.txt]の中身を直接記述する方法になります。

QuickアプリはCloudflareに静的ページを作成するツールです。

①Cloudflareの当該サイトのAppsを起動する。

②検索画面で[Quick]を検索する

■Appsメニュを開き、検索BoxでQuickで検索します。

③下図のQuickをクリックします。

④下記画面が表示されるので[自分のサイトでプレビュー]を実行します。

■[自分のサイトでプレビュー]ボタンを挿入します。

⑤下記画面が表示されます

■FREEを選択して[Install on all page]ボタンを挿入します。

⑥表示された下記画面に必要事項を記述します。

■Route Nameに[ads.txt]を入力します。

■Route UrlにGoogleがアクセスするURLを記述します。

このサイトの場合は[t-spirits.com/ads.txt]

■Show Template Opitionsに✓を付けるとPage Template入力エリアが表示されます。

■ここにGoogle Adsenceから指定されたコードを入力します。

 

サブドメインのads.txtなら上記の設定で良いのすが、ルートドメインの場合は上記のページが検知できません。

そこで下記の設定を追加します。

■Enable Origin Modeに✓を付けます。

■404の欄にもGoogle Adsenceから指定されたコードを入力します。

以上で設定は終了なので下記ボタンを挿入します

■上記のボタンを挿入すると下図が表示されます。

■[Continue]ボタンを挿入します。

⑦インストール済みアプリに下図が表示されます。

以上でhttps://t-spirits.com/ads.txtでアクセスするとAdsennseから指定されたコードが表示されるようになります。

CloudflareのCDNにWebサーバを接続する方法とセキュリティ対策

WebサーバをCloudflareのCDN(DNS)に接続する方法には下記があります。

①IPv4で接続する(Aレコード)

②IPv6で接続する(AAAAレコード)

③Cloudflareのトンネルで接続する(CNAMEレコード)

ここでは①や②よりメリットが多い③のトンネルを使った接続方法を解説します。

■上図はサーバとCloudflare間にトンネルを張り、その中にWebサーバを定義する方法になります。

その結果、CloudflsreのDNSにCNAMEレコードでWebサーバのアドレスが記述されます。

 

下記にその構築方法を解説します。

1.Cloudflare側でトンネルを作成する

2.Webサーバ側で[Docker]を利用してCloudflareと接続する

3.トンネルにWebサーバを追加する

4.トンネル利用のメリットとセキュリティ対策

5.その他(adsence対策等)

1.Cloudflare側でトンネルを作成する

Cloudflare Tunnelは[Zero Trust]の機能の一部で、以前はDNS画面からトンネル作成画面に移動できましたが現在はホーム画面の[Zero Trust]メニュから起動するように変更されています。

 

1.Cloudflareのホーム画面に入ります。

DNS画面に入っていた場合はホーム画面に戻ってください。

左ペインの[zero Trust]をクリックします。

 

2.Team domain名を設定します。

始めて[zero Trust]を起動した時だけ下図の様な[チーム名]を入力する画面が表示されます。

[チーム名]は任意名称ですが、全世界でユニークな名前が求められます。※注意を参照して命名して下さい。

設定後[Next]ボタンを挿入して下さい。

 チーム名作成の注意

チーム名は[zero Trust]環境を構築する上で大変重要なキーです。

この名前の元にユーザ固有の[インターネットアクセスポリシ]や[ローカルネットワーク]及び[アプリケーションアクセスポリシ]等が設定されます。

よって、適当な名前でなく、将来ゼロトラストに移行する事を考えた名前を付けてください。

 

3.[zero Trust]のメニュが表示されます。

下記メニュから[Networks→Tunnel]をクリックします。

 

4.トンネルの作成画面が表示されます。

下記画面の[Add Tunnel]ボタンを挿入します。

■上記画面は過去に作成したトンネルがない画面です。既にトンネルがある場合は[+ Create a tunnnel]ボタンの下にトンネルリストが表示されます。

 

5.トンネル種類の選択

作成するトンネルの種類の選択画面が表示されます。

左側の[Cloudflared]を選択して画面右下にある[Next]ボタンを挿入します。

■右側の[+WARP]はプライベートネットワーク間をトンネルで接続するツールです。

 

6.トンネル名の入力

下記画面でトンネル名を入力しますが、トンネル名はサーバ名で指定する事をお勧めします。

入力後は[Save tunnel]ボタンを挿入します。

■利用ツールの選択画面が表示されます。

 

7.利用ツールの選択

各種OSの専用ツールが用意されていますが、汎用の[Docker]を利用する事もできます。

 メモ

[Docker]は、コンテナ仮想化技術を用いてアプリケーションを開発・配置・実行するためのオープンプラットフォームで各種OSにインストールして利用する事ができます。

私の場合はSynologyのNASの中にWebサイトを構築しているので、Synologyの[Docker]を使ってCloudflareとトンネルを構築する方法で解説します。

①[Docker]を選択する

[Docker]をクリックすると[Docker]用のコマンドが表示されます。

これを[コピーボタン]でクリップボードに取り込み[Emeditor]等のテキストエディタに貼り付けて下さい。

 

②コマンドの編集する

コマンドは2つのコマンドから構成されています。

docker run cloudflare/cloudflared:latest 
tunnel --no-autoupdate run --token eyJhIjoiMGY1YjIxMGNiOTA1OGMxZWM4M2RlZmZk 以下は省略

赤字の所は削除して下さい。

普通は[Docker]機能の中で[Cloudflare/Cloudflared]を起動しているのでこの部分は不要です。

■編集したコマンドをサーバのDockerの実行コマンド欄に貼り付け、これを実行する事により、Cloudflareとサーバの[Docker]間にトンネルが作成されます。

 

2.サーバ側で[Docker]を利用してCloudflareと接続する

Synologyの[Docker]は、DSM7.1までは[Docker]でしたが、DSM7.2から[Container Manager]に名称変更になっています。

ここではDSM7.1の[Docker]環境で説明します。

 

1.[Docker]をインストールして起動します。

下記画面が表示されます。

 

2.左ペインのメニューで [レジストリ] を起動します。

Cloudflareとのトンネル接続は[Cloudflared(cloudflare daemonの略)]を利用します。

検索ボックスで[Cloudflare]を入力して検索する下図の様に画面の先頭に[Cloudflare/Cloudflared]が表示されます。

■画面の右側にリンクマークがあり、これをクリックすると何を行う仮想ホストかの説明文書にジャンプする事ができます。

 

3.Cloudflare/Cloudflaredをダウンロードします。

①Cloudflare/Cloudflaredを選択し[ダウンロード]ボタンを挿入します。

②タグの選択

下記画面の[latest(最新)]を選択し[選択]ボタンを挿入して下さい。

③イメージに1個の仮想ホストが追加されます。

 

4.Cloudflare/Cloudflaredの設定

①[イメージ]メニュをクリックします。

[Cloudflare/Cloudflared]を選択し[起動]ボタンを挿入します。

 

②コンテナをどのネットワーク環境で使うかの選択画面が表示されます。

[同じネットワークをDockerホストとして使う]を選択し[次へ]で先に進みます。

 

③コマンドを登録する画面が表示されます。

[自動再起動]にを付けます。

[詳細設定]をクリックします。

 

④実行コマンドを登録する画面が表示されます。

・[実行コマンド]タブを開きます。

・[コマンド]欄にCloudflareで編集した実行コマンドをコピーしてここに貼り付けます。

・[保存]ボタンを挿入します。

 [Container Manager]の場合

Dockerは[実行コマンド]タブの中で指定しますが、[Container Manager]はタブ形式でなくフラットな入力画面になっています。

その中に実行コマンドを登録する所があります。ここに入力します。

 

⑤全般設定画面に戻ります。

[次へ]のボタンで先に進みます。

 

⑥ボリューム設定画面が開きます。

[次へ]のボタンで先に進みます。

 

⑦確認画面が表示されます。

[完了]ボタンを挿入します。

 

⑧[コンテナ]メニュを見てください。

Cloudflareと接続されている事が確認できます。

 

5.Cloudflare側の接続も確認する

①下図の[Back to tonnel]をクリックします。

 

②下記画面が表示されます。

下図の[Status]がHEALTHY(健康)は、DockerとCloudflare間にトンネルが構築されています。

繋がってない場合はが表示されます。

 メモ

Statusがの場合は、Dockerの下記コンテナ画面のスライドをONにして下さい。

原因は判りませんが、何かの都合で上記がOFFになる事がありました。

[Container Manager]の場合は、コンテナ画面の[開始]ボタンの挿入です。

 

3.トンネルにWebサーバを追加する

Cloudflareと[Docker]間にトンネルが張られたので、これにWebサーバを追加します。

1.トンネルの編集画面に入ります

利用する[トンネル]をクリックし、表示されたダイアログの[configure]をクリックします。

 

2.下記画面が表示されます。

下記画面の[Public hostname]タブをクリックします。

■[Overview]タブは、トンネル名を変更する時に利用します。

■[Private Network]タブは、ローカルネットワークを[Zero Trust]空間に接続する時に利用します。

 

3.下記画面が表示されます。

下記にWebサーバの情報を入力し[Save Hostnames]を実行するとWebサーバが追加されます。

上記の入力内容はこのサイトの事例で説明します。

このサイトのURLは[https://hnw.t-spirits.com/oldies/]になります。

この場合、各項目に入力するデータは下記になります。

Subdomain Domain Path Type URL
hnw t-spirits.com oldies http 192.168.10.120

■上記の設定は下記を意味しています。

[ユーザ]と[Cloudflare]間は、

[https://hnw.t-spirits.com/oldies/]でHTTPSアクセス

[Cloudflare]と[Webサーバ]間は、

[http://192.168.10.120/oldies/]でトンネルアクセス

 メモ

Cloudflareからはトンネル経由で[http://192.168.10.120/oldies/]でアクセスがきますが、サイト自体はWordPressで[https://hnw.t-spirits.com/oldies/xxxxx]で作成されています。

サイト自体をhttpで作成する事ではありません。

尚、上記を設定し[Save Hostnames]を実行するとCloudflareのDNS画面に下記が追加されます。

■[hnw]というサブドメインに[CNAME]アドレスが設定されています。

 メモ

登録したい他のWebサーバが有る場合はここで登録して下さい。

尚、ルータやphpMyAdmin等のアプリケーションはここで登録しないで下さい。

これらをCDNで利用すると、アプリ機能が100%利用できません。

これらは[Zero Trust]のローカル接続にすると、アプリ機能が100%利用できます。

 

4.トンネル利用のメリットとセキュリティ対策

ここではトンネル接続のメリットと、これを利用する事によるセキュリティ強化策を解説します。

WebサーバとCloudflareの接続方法には下記があります。

①IPv4で接続する(Aレコード)

②IPv6で接続する(AAAAレコード)

③Cloudflareのトンネルで接続する(CNAMEレコード)

トンネル接続の③は、回線接続の①②と比べて下記のメリットがあります。

 

1.Webサーバを複数のサーバに分散できる

①や②の接続はIPアドレスを指定するので、ポート番号が[443]という通信が来たら、このWebサーバに転送しなさいという使い方になります。

よって2台目のWebサーバを利用したい場合は上記の[443]は既に利用しているので、[8443]等の別のポート番号が指定しないと利用できません。

しかし③のトンネル接続は、ポート番号は利用しないので何台Webサーバが有っても問題がありません。

 

2.固定IPでなくてもOK

①や②の接続はIPアドレスを指定するので、ISPのIPアドレスが変わった場合はCloudflareのアドレスを更新する必要がありました。

しかし③のトンネル接続は、ISPのIPアドレスが変わってもトンネルソフトが吸収してくれる為にこの様な更新処理は不要です。

 

3.オリジンIPに対する不正アクセスをブロックできる

CloudflareのCDNはオリジンIPは基本的には第3者には判りませんが、これを知りえる手段もあります。

詳細は[オリジンIPに対する攻撃]を参照して下さい。

トンネル接続はポート番号は利用しないので下図の様にファイアウオールで総てのポートをブロックしても問題がありません。

やり方は[ポート開放状況調査とブロック]を参照して下さい。

これからは外部からの通信は総て遮断する時代がきたと思っています。

 

4.参考情報

ファイアウオールで総てのポート番号をブロックするとインターネットからはVPN接続も含めて総て通信がブロックされます。

しかしLAN/WAN内では総てのポート番号を使った通信は可能です。

しかし外部から社内のリソースが利用できないと困ります。

そこに登場するのがCloudflareの[Zero Trust]で、WARPクライアントを利用すると外部からでもファイアウオールを超えて総てのリソースに安全にアクセスできるようになります。

上記の様にこれからは、ファイアウオールで社内を守るという概念自体がなくなります。

 

5.その他(adsence対策等)

4項のセキュリティ対策を行った結果、下記の場合は別の対策が必要になります。

 

このサイトにはGoogle広告が表示されており、これを機能させるためにはGoogleが私のルートドメイン名の

https://t-spirits.com/ads.txt

にアクセスし、私は[ads.txt]情報を返す必要があります。

 

この様なルートドメインもトンネルに追加する事ができます。

これをCNAMEのフラット化と呼びCloudflareはこれに対応しています。

トンネルへの追加方法は下記になります。

Subdomain Domain Path Type URL
t-spirits.com http 192.168.10.120

上記を設定し[Save Hostnames]を実行するとCloudflareのDNS画面に下記が追加されます。