コンピュータセキュリティに過度に神経質な方なら、標準的なDNSがそれほど安全ではないことをご存知でしょう。なぜでしょうか?それは、DNSクエリがデフォルトで暗号化されていないためです。つまり、DNSは(そして多くの場合実際に)悪用される可能性があります。この弱点を回避するには、すべてのDNSクエリが暗号化されたTLS(Transport Layer Secure)プロトコルを介して処理されるDNSを使用することが可能です。ほとんどのオペレーティングシステムは、そのままではDNS over TLSに対応していません。
Linux を使用している場合、これを実現することは可能であるだけでなく、実際には非常に簡単です。
Ubuntu 18.04にDNS over TLSを追加するのがいかに簡単かをお見せします。そのために、オープンソースのDNSスタブリゾルバであるStubbyを使用します。Stubbyは、クライアントマシンからDNSプライバシーリゾルバに送信されるDNSクエリを暗号化し、エンドユーザーのプライバシーを向上させます。Ubuntu Desktop 18.04へのインストール手順を説明します。必要なのは、最新のUbuntuプラットフォームの実行インスタンスとsudo権限を持つユーザーだけです。
インストールしてみましょう。
参照: ネットワーク セキュリティ ポリシー (Tech Pro Research)
インストール
Stubbyのインストールは簡単です。ターミナルウィンドウを開き、以下のコマンドを実行してください。
sudo apt-get update
sudo apt-get install stubby
インストールが完了したら、次のコマンドで Stubby を起動して有効にします。
sudo systemctl start stubby
sudo systemctl enable stubby
インストールのテスト
Stubby が listen しているかどうかを確認するには、netstat ツールを使用します。netstat がインストールされていない可能性があります。インストールするには、次のコマンドを実行します。
sudo apt-get install net-tools
インストールが完了したら、次のコマンドを発行します。
sudo netstat -lnptu | grep stubby
stubby がポート 53 でローカルホスト (127.0.0.1) をリッスンしていることがわかります (図 A )。
図A
Stubbyの設定
Stubbyはそのままでも問題なく動作します。設定を変更したい場合は、設定ファイルは/etc/stubby/stubby.ymlにあります。このファイルを見ると、Stubbyが(デフォルトで)TLSをサポートする以下のDNSサービスを使用していることがわかります。
- dnsovertls.sinodun.com
- dnsovertls1.sinodun.com
- getdnsapi.net
その下に、コメントアウトされている「追加サーバー」セクションがあります。ここでは、他にも利用可能なDNS over TLSサーバーが多数あります。例えば、以下のようなものがあります。
- dns.quad9.net
- ユニキャスト.censurfridns.dk
- dnsovertls3.sinodun.com
- dnsovertls2.sinodun.com
- dns.cmrg.net
- dns.larsdebruin.net
- securens.eu
追加サーバーの一部には、脆弱性や動作しない機能に関する条件が記載されています。このセクションでは、DNS over TLSサーバーを追加することもできます。例えば、CloudflareのDNS over TLSサーバーは以下のように追加できます。
#CloudFlare DNS over TLS servers
- address_data: 1.1.1.1
tls_auth_name: "cloudflare-dns.com"
- address_data: 1.0.0.1
tls_auth_name: "cloudflare-dns.com"
Stubbyの使用
この時点で、SystemdにDNSクエリにStubbyを使用するように指示する必要があります。そのためには、ネットワーク設定アプリを開き、ネットワーク接続に関連付けられた歯車アイコンをクリックします。表示されたウィンドウで「IPv4」タブをクリックし、「DNS自動」を「オフ」に設定します。次に、DNSテキストエリアに「127.0.0.1」と入力します(図B)。「保存」をクリックして変更を適用します。
図B
システムに変更を認識させるには、次のコマンドを発行します。
sudo systemctl restart NetworkManager
DNS暗号化
これで完了です。Stubby が DNS over TLS の処理を担当するようになりました。DNS クエリが暗号化されるので、Ubuntu デスクトップのセキュリティがさらに強化されるはずです。